diff options
author | Bernd Weimer <bernd.weimer@pelagicore.com> | 2020-03-18 12:39:55 +0100 |
---|---|---|
committer | Bernd Weimer <bernd.weimer@pelagicore.com> | 2020-03-20 00:28:18 +0100 |
commit | 875f524db55b4a7e9fc40d149429b9a2f9ed6c52 (patch) | |
tree | 2cef3fab53f268cdd7ee97991057a81e21286097 | |
parent | f02cbab80c0ca0a21c7dc91bddf0b6a2430e2c8c (diff) |
Support legacy configurations
Added support for legacy configuration options, ignored deprecated
ones and fixed caCertificates.
Change-Id: I1f3afd592646744f2786993a202bf51d4ba91385
Reviewed-by: Robert Griebl <robert.griebl@qt.io>
-rw-r--r-- | src/application-lib/yamlpackagescanner.cpp | 20 | ||||
-rw-r--r-- | src/main-lib/configuration.cpp | 26 |
2 files changed, 36 insertions, 10 deletions
diff --git a/src/application-lib/yamlpackagescanner.cpp b/src/application-lib/yamlpackagescanner.cpp index 8b0282d1..0a2e0f4c 100644 --- a/src/application-lib/yamlpackagescanner.cpp +++ b/src/application-lib/yamlpackagescanner.cpp @@ -178,13 +178,31 @@ PackageInfo *YamlPackageScanner::scan(QIODevice *source, const QString &fileName legacyAppInfo->m_allAppProperties.insert(it.key(), it.value()); }); fields.emplace_back("documentUrl", false, YamlParser::Scalar, [](YamlParser *p) { - qCDebug(LogSystem) << " ignoring 'documentUrl'"; + qCDebug(LogSystem) << "ignoring 'documentUrl'"; (void) p->parseScalar(); }); fields.emplace_back("mimeTypes", false, YamlParser::Scalar | YamlParser::List, [&legacyAppInfo](YamlParser *p) { legacyAppInfo->m_supportedMimeTypes = p->parseStringOrStringList(); legacyAppInfo->m_supportedMimeTypes.sort(); }); + fields.emplace_back("logging", false, YamlParser::Map, [&legacyAppInfo](YamlParser *p) { + const QVariantMap logging = p->parseMap(); + if (!logging.isEmpty()) { + if (logging.size() > 1 || logging.firstKey() != qSL("dlt")) + throw YamlParserException(p, "'logging' only supports the 'dlt' key"); + legacyAppInfo->m_dltConfiguration = logging.value(qSL("dlt")).toMap(); + + // sanity check + for (auto it = legacyAppInfo->m_dltConfiguration.cbegin(); it != legacyAppInfo->m_dltConfiguration.cend(); ++it) { + if (it.key() != qSL("id") && it.key() != qSL("description")) + throw YamlParserException(p, "unsupported key in 'logging/dlt'"); + } + } + }); + fields.emplace_back("environmentVariables", false, YamlParser::Map, [](YamlParser *p) { + qCDebug(LogSystem) << "ignoring 'environmentVariables'"; + (void) p->parseMap(); + }); } // ----------------- applications ----------------- diff --git a/src/main-lib/configuration.cpp b/src/main-lib/configuration.cpp index 290ffd7e..6fd6bea6 100644 --- a/src/main-lib/configuration.cpp +++ b/src/main-lib/configuration.cpp @@ -392,7 +392,7 @@ void Configuration::parseWithArguments(const QStringList &arguments) } if (value<bool>("start-session-dbus")) - qCWarning(LogDeployment) << "Option \"--start-session-dbus\" has been deprecated and will be ignored."; + qCDebug(LogDeployment) << "ignoring '--start-session-dbus'"; } ConfigurationData *ConfigurationData::loadFromCache(QDataStream &ds) @@ -647,9 +647,10 @@ ConfigurationData *ConfigurationData::loadFromSource(QIODevice *source, const QS QVariantMap map = v.toMap(); if (map.size() != 1) { - qCWarning(LogSystem) << "The container selection configuration needs to be a list of " - "single mappings, in order to preserve the evaluation " - "order: found a mapping with" << map.size() << "entries."; + qCWarning(LogDeployment) << "The container selection configuration needs to be a " + "list of single mappings, in order to preserve the " + "evaluation order: found a mapping with" + << map.size() << "entries."; } for (auto it = map.cbegin(); it != map.cend(); ++it) @@ -688,7 +689,7 @@ ConfigurationData *ConfigurationData::loadFromSource(QIODevice *source, const QS p->parseFields({ { "disable", false, YamlParser::Scalar, [&cd](YamlParser *p) { cd->installer.disable = p->parseScalar().toBool(); } }, - { "caCertificated", false, YamlParser::Scalar | YamlParser::List, [&cd](YamlParser *p) { + { "caCertificates", false, YamlParser::Scalar | YamlParser::List, [&cd](YamlParser *p) { cd->installer.caCertificates = p->parseStringOrStringList(); } }, { "applicationUserIdSeparation", false, YamlParser::Map, [&cd](YamlParser *p) { p->parseFields({ @@ -746,12 +747,19 @@ ConfigurationData *ConfigurationData::loadFromSource(QIODevice *source, const QS p->parseFields({ { "builtinAppsManifestDir", false, YamlParser::Scalar | YamlParser::List, [&cd](YamlParser *p) { cd->applications.builtinAppsManifestDir = p->parseStringOrStringList(); } }, - { "installedAppsManifestDir", false, YamlParser::Scalar, [](YamlParser *p) { - (void) p->parseScalar(); /* deprecated - ignore */ } }, { "installationDir", false, YamlParser::Scalar | YamlParser::Scalar, [&cd](YamlParser *p) { - cd->applications.installationDir = p->parseScalar().toString(); } }, + cd->applications.installationDir = p->parseScalar().toString(); } }, { "documentDir", false, YamlParser::Scalar | YamlParser::Scalar, [&cd](YamlParser *p) { - cd->applications.documentDir = p->parseScalar().toString(); } } + cd->applications.documentDir = p->parseScalar().toString(); } }, + { "installedAppsManifestDir", false, YamlParser::Scalar, [](YamlParser *p) { + qCDebug(LogDeployment) << "ignoring 'installedAppsManifestDir'"; + (void) p->parseScalar(); } }, + { "database", false, YamlParser::Scalar | YamlParser::Scalar, [](YamlParser *p) { + qCDebug(LogDeployment) << "ignoring 'database'"; + (void) p->parseScalar(); } }, + { "appImageMountDir", false, YamlParser::Scalar | YamlParser::Scalar, [](YamlParser *p) { + qCDebug(LogDeployment) << "ignoring 'appImageMountDir'"; + (void) p->parseScalar(); } } }); } }, { "flags", false, YamlParser::Map, [&cd](YamlParser *p) { p->parseFields({ |