summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBernd Weimer <bernd.weimer@pelagicore.com>2020-03-18 12:39:55 +0100
committerBernd Weimer <bernd.weimer@pelagicore.com>2020-03-20 00:28:18 +0100
commit875f524db55b4a7e9fc40d149429b9a2f9ed6c52 (patch)
tree2cef3fab53f268cdd7ee97991057a81e21286097
parentf02cbab80c0ca0a21c7dc91bddf0b6a2430e2c8c (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.cpp20
-rw-r--r--src/main-lib/configuration.cpp26
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({