repairs for assignment parsing from command line and JSON

This commit is contained in:
Stephen Birarda 2014-04-08 14:03:42 -07:00
parent c2ff438182
commit 9a9939c11a
2 changed files with 9 additions and 27 deletions

View file

@ -172,26 +172,6 @@ bool DomainServer::readX509KeyAndCertificate() {
return true; return true;
} }
void DomainServer::requestCreationFromDataServer() {
// this slot is fired when we get a valid access token from the data-server
// now let's ask it to set us up with a UUID
JSONCallbackParameters callbackParams;
callbackParams.jsonCallbackReceiver = this;
callbackParams.jsonCallbackMethod = "processCreateResponseFromDataServer";
AccountManager::getInstance().authenticatedRequest("/api/v1/domains/create",
QNetworkAccessManager::PostOperation,
callbackParams);
}
void DomainServer::processCreateResponseFromDataServer(const QJsonObject& jsonObject) {
if (jsonObject["status"].toString() == "success") {
// pull out the UUID the data-server is telling us to use, and complete our setup with it
QUuid newSessionUUID = QUuid(jsonObject["data"].toObject()["uuid"].toString());
setupNodeListAndAssignments(newSessionUUID);
}
}
void DomainServer::setupNodeListAndAssignments(const QUuid& sessionUUID) { void DomainServer::setupNodeListAndAssignments(const QUuid& sessionUUID) {
const QString CUSTOM_PORT_OPTION = "port"; const QString CUSTOM_PORT_OPTION = "port";
@ -244,20 +224,21 @@ void DomainServer::parseAssignmentConfigs(QSet<Assignment::Type>& excludedTypes)
while (configIndex != -1) { while (configIndex != -1) {
// figure out which assignment type this matches // figure out which assignment type this matches
Assignment::Type assignmentType = (Assignment::Type) assignmentConfigRegex.cap().toInt(); Assignment::Type assignmentType = (Assignment::Type) assignmentConfigRegex.cap(1).toInt();
QVariant mapValue = _argumentVariantMap[variantMapKeys[configIndex]]; QVariant mapValue = _argumentVariantMap[variantMapKeys[configIndex]];
if (mapValue.type() == QVariant::String) { if (mapValue.type() == QVariant::String) {
qDebug() << mapValue.toString();
QJsonDocument deserializedDocument = QJsonDocument::fromJson(mapValue.toString().toUtf8()); QJsonDocument deserializedDocument = QJsonDocument::fromJson(mapValue.toString().toUtf8());
createStaticAssignmentsForType(assignmentType, deserializedDocument.array()); createStaticAssignmentsForType(assignmentType, deserializedDocument.array());
} else { } else {
createStaticAssignmentsForType(assignmentType, mapValue.toJsonArray()); createStaticAssignmentsForType(assignmentType, mapValue.toJsonValue().toArray());
} }
excludedTypes.insert(assignmentType); excludedTypes.insert(assignmentType);
configIndex = variantMapKeys.indexOf(assignmentConfigRegex); configIndex = variantMapKeys.indexOf(assignmentConfigRegex, configIndex + 1);
} }
} }
@ -272,6 +253,8 @@ void DomainServer::createStaticAssignmentsForType(Assignment::Type type, const Q
int configCounter = 0; int configCounter = 0;
qDebug() << configArray;
foreach(const QJsonValue& jsonValue, configArray) { foreach(const QJsonValue& jsonValue, configArray) {
if (jsonValue.isObject()) { if (jsonValue.isObject()) {
QJsonObject jsonObject = jsonValue.toObject(); QJsonObject jsonObject = jsonValue.toObject();
@ -295,10 +278,11 @@ void DomainServer::createStaticAssignmentsForType(Assignment::Type type, const Q
// setup the payload as a semi-colon separated list of key = value // setup the payload as a semi-colon separated list of key = value
QStringList payloadStringList; QStringList payloadStringList;
foreach(const QString& payloadKey, jsonObject.keys()) { foreach(const QString& payloadKey, jsonObject.keys()) {
payloadStringList << QString("%1=%2").arg(payloadKey).arg(jsonObject[payloadKey].toString()); QString dashes = payloadKey.size() == 1 ? "-" : "--";
payloadStringList << QString("%1%2 %3").arg(dashes).arg(payloadKey).arg(jsonObject[payloadKey].toString());
} }
configAssignment->setPayload(payloadStringList.join(';').toUtf8()); configAssignment->setPayload(payloadStringList.join(' ').toUtf8());
addStaticAssignmentToAssignmentHash(configAssignment); addStaticAssignmentToAssignmentHash(configAssignment);
} }

View file

@ -44,8 +44,6 @@ public slots:
void nodeKilled(SharedNodePointer node); void nodeKilled(SharedNodePointer node);
private slots: private slots:
void requestCreationFromDataServer();
void processCreateResponseFromDataServer(const QJsonObject& jsonObject);
void readAvailableDatagrams(); void readAvailableDatagrams();
void readAvailableDTLSDatagrams(); void readAvailableDTLSDatagrams();