From 9a9939c11a6778a739de24fa6b70c5f227fb29ad Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Tue, 8 Apr 2014 14:03:42 -0700 Subject: [PATCH] repairs for assignment parsing from command line and JSON --- domain-server/src/DomainServer.cpp | 34 ++++++++---------------------- domain-server/src/DomainServer.h | 2 -- 2 files changed, 9 insertions(+), 27 deletions(-) diff --git a/domain-server/src/DomainServer.cpp b/domain-server/src/DomainServer.cpp index ad531998c3..2f4f4666cc 100644 --- a/domain-server/src/DomainServer.cpp +++ b/domain-server/src/DomainServer.cpp @@ -172,26 +172,6 @@ bool DomainServer::readX509KeyAndCertificate() { 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) { const QString CUSTOM_PORT_OPTION = "port"; @@ -244,20 +224,21 @@ void DomainServer::parseAssignmentConfigs(QSet& excludedTypes) while (configIndex != -1) { // 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]]; if (mapValue.type() == QVariant::String) { + qDebug() << mapValue.toString(); QJsonDocument deserializedDocument = QJsonDocument::fromJson(mapValue.toString().toUtf8()); createStaticAssignmentsForType(assignmentType, deserializedDocument.array()); } else { - createStaticAssignmentsForType(assignmentType, mapValue.toJsonArray()); + createStaticAssignmentsForType(assignmentType, mapValue.toJsonValue().toArray()); } 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; + qDebug() << configArray; + foreach(const QJsonValue& jsonValue, configArray) { if (jsonValue.isObject()) { 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 QStringList payloadStringList; 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); } diff --git a/domain-server/src/DomainServer.h b/domain-server/src/DomainServer.h index 2f570fe5ad..48c77625bb 100644 --- a/domain-server/src/DomainServer.h +++ b/domain-server/src/DomainServer.h @@ -44,8 +44,6 @@ public slots: void nodeKilled(SharedNodePointer node); private slots: - void requestCreationFromDataServer(); - void processCreateResponseFromDataServer(const QJsonObject& jsonObject); void readAvailableDatagrams(); void readAvailableDTLSDatagrams();