make sysinfo provider a setting
This commit is contained in:
@@ -43,6 +43,11 @@ exports = module.exports = {
|
||||
getCloudronToken: getCloudronToken,
|
||||
setCloudronToken: setCloudronToken,
|
||||
|
||||
getSysinfoConfig: getSysinfoConfig,
|
||||
setSysinfoConfig: setSysinfoConfig,
|
||||
|
||||
provider: provider,
|
||||
|
||||
getAll: getAll,
|
||||
|
||||
initCache: initCache,
|
||||
@@ -69,6 +74,7 @@ exports = module.exports = {
|
||||
PLATFORM_CONFIG_KEY: 'platform_config',
|
||||
EXTERNAL_LDAP_KEY: 'external_ldap_config',
|
||||
REGISTRY_CONFIG_KEY: 'registry_config',
|
||||
SYSINFO_CONFIG_KEY: 'sysinfo_config',
|
||||
|
||||
// strings
|
||||
APP_AUTOUPDATE_PATTERN_KEY: 'app_autoupdate_pattern',
|
||||
@@ -133,6 +139,9 @@ let gDefaults = (function () {
|
||||
provider: 'noop'
|
||||
};
|
||||
result[exports.REGISTRY_CONFIG_KEY] = {};
|
||||
result[exports.SYSINFO_CONFIG_KEY] = {
|
||||
provider: 'generic'
|
||||
};
|
||||
result[exports.ADMIN_DOMAIN_KEY] = '';
|
||||
result[exports.ADMIN_FQDN_KEY] = '';
|
||||
result[exports.API_SERVER_ORIGIN_KEY] = 'https://api.cloudron.io';
|
||||
@@ -467,6 +476,30 @@ function setRegistryConfig(registryConfig, callback) {
|
||||
});
|
||||
}
|
||||
|
||||
function getSysinfoConfig(callback) {
|
||||
assert.strictEqual(typeof callback, 'function');
|
||||
|
||||
settingsdb.get(exports.SYSINFO_CONFIG_KEY, function (error, value) {
|
||||
if (error && error.reason === BoxError.NOT_FOUND) return callback(null, gDefaults[exports.SYSINFO_CONFIG_KEY]);
|
||||
if (error) return callback(error);
|
||||
|
||||
callback(null, JSON.parse(value));
|
||||
});
|
||||
}
|
||||
|
||||
function setSysinfoConfig(sysinfoConfig, callback) {
|
||||
assert.strictEqual(typeof sysinfoConfig, 'object');
|
||||
assert.strictEqual(typeof callback, 'function');
|
||||
|
||||
settingsdb.set(exports.SYSINFO_CONFIG_KEY, JSON.stringify(sysinfoConfig), function (error) {
|
||||
if (error) return callback(error);
|
||||
|
||||
notifyChange(exports.REGISTRY_CONFIG_KEY, sysinfoConfig);
|
||||
|
||||
callback(null);
|
||||
});
|
||||
}
|
||||
|
||||
function getLicenseKey(callback) {
|
||||
assert.strictEqual(typeof callback, 'function');
|
||||
|
||||
@@ -554,7 +587,7 @@ function getAll(callback) {
|
||||
result[exports.DEMO_KEY] = !!result[exports.DEMO_KEY];
|
||||
|
||||
// convert JSON objects
|
||||
[exports.BACKUP_CONFIG_KEY, exports.PLATFORM_CONFIG_KEY, exports.EXTERNAL_LDAP_KEY, exports.REGISTRY_CONFIG_KEY ].forEach(function (key) {
|
||||
[exports.BACKUP_CONFIG_KEY, exports.PLATFORM_CONFIG_KEY, exports.EXTERNAL_LDAP_KEY, exports.REGISTRY_CONFIG_KEY, exports.SYSINFO_CONFIG_KEY ].forEach(function (key) {
|
||||
result[key] = typeof result[key] === 'object' ? result[key] : safe.JSON.parse(result[key]);
|
||||
});
|
||||
|
||||
@@ -568,12 +601,15 @@ function initCache(callback) {
|
||||
getAll(function (error, allSettings) {
|
||||
if (error) return callback(error);
|
||||
|
||||
const provider = safe.fs.readFileSync(paths.PROVIDER_FILE, 'utf8');
|
||||
|
||||
gCache = {
|
||||
apiServerOrigin: allSettings[exports.API_SERVER_ORIGIN_KEY],
|
||||
webServerOrigin: allSettings[exports.WEB_SERVER_ORIGIN_KEY],
|
||||
adminDomain: allSettings[exports.ADMIN_DOMAIN_KEY],
|
||||
adminFqdn: allSettings[exports.ADMIN_FQDN_KEY],
|
||||
isDemo: allSettings[exports.DEMO_KEY]
|
||||
isDemo: allSettings[exports.DEMO_KEY],
|
||||
provider: provider ? provider.trim() : 'generic'
|
||||
};
|
||||
|
||||
callback();
|
||||
@@ -614,6 +650,7 @@ function setApiServerOrigin(origin, callback) {
|
||||
});
|
||||
}
|
||||
|
||||
function provider() { return gCache.provider; }
|
||||
function apiServerOrigin() { return gCache.apiServerOrigin; }
|
||||
function webServerOrigin() { return gCache.webServerOrigin; }
|
||||
function adminDomain() { return gCache.adminDomain; }
|
||||
|
||||
Reference in New Issue
Block a user