mirror of https://gitee.com/bigwinds/arangodb
Warn when versions incompatible.
This commit is contained in:
parent
4826007168
commit
c73b28eaba
|
@ -36,10 +36,11 @@
|
||||||
// -----------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------
|
||||||
|
|
||||||
var R = require("ramda");
|
var R = require("ramda");
|
||||||
var db = require("internal").db;
|
var internal = require("internal");
|
||||||
var fs = require("fs");
|
var fs = require("fs");
|
||||||
var joi = require("joi");
|
var joi = require("joi");
|
||||||
var util = require("util");
|
var util = require("util");
|
||||||
|
var semver = require("semver");
|
||||||
var utils = require("org/arangodb/foxx/manager-utils");
|
var utils = require("org/arangodb/foxx/manager-utils");
|
||||||
var store = require("org/arangodb/foxx/store");
|
var store = require("org/arangodb/foxx/store");
|
||||||
var console = require("console");
|
var console = require("console");
|
||||||
|
@ -50,9 +51,10 @@ var exportApp = require("org/arangodb/foxx/routing").exportApp;
|
||||||
var invalidateExportCache = require("org/arangodb/foxx/routing").invalidateExportCache;
|
var invalidateExportCache = require("org/arangodb/foxx/routing").invalidateExportCache;
|
||||||
var arangodb = require("org/arangodb");
|
var arangodb = require("org/arangodb");
|
||||||
var ArangoError = arangodb.ArangoError;
|
var ArangoError = arangodb.ArangoError;
|
||||||
var cluster = require("org/arangodb/cluster");
|
var db = arangodb.db;
|
||||||
var checkParameter = arangodb.checkParameter;
|
var checkParameter = arangodb.checkParameter;
|
||||||
var errors = arangodb.errors;
|
var errors = arangodb.errors;
|
||||||
|
var cluster = require("org/arangodb/cluster");
|
||||||
var download = require("internal").download;
|
var download = require("internal").download;
|
||||||
var executeGlobalContextFunction = require("internal").executeGlobalContextFunction;
|
var executeGlobalContextFunction = require("internal").executeGlobalContextFunction;
|
||||||
var actions = require("org/arangodb/actions");
|
var actions = require("org/arangodb/actions");
|
||||||
|
@ -306,22 +308,44 @@ var checkManifest = function(filename, manifest) {
|
||||||
if (result.error) {
|
if (result.error) {
|
||||||
var message = result.error.message.replace(/^"value"/, util.format('"%s"', key));
|
var message = result.error.message.replace(/^"value"/, util.format('"%s"', key));
|
||||||
if (value === undefined) {
|
if (value === undefined) {
|
||||||
message = util.format('Manifest "%s": attribute %s.', filename, message);
|
message = util.format(
|
||||||
|
'Manifest "%s": attribute %s.',
|
||||||
|
filename,
|
||||||
|
message
|
||||||
|
);
|
||||||
} else {
|
} else {
|
||||||
message = util.format('Manifest "%s": attribute %s (was "%s").', filename, message, manifest[key]);
|
message = util.format(
|
||||||
|
'Manifest "%s": attribute %s (was "%s").',
|
||||||
|
filename,
|
||||||
|
message,
|
||||||
|
manifest[key]
|
||||||
|
);
|
||||||
}
|
}
|
||||||
validationErrors.push(message);
|
validationErrors.push(message);
|
||||||
console.error(message);
|
console.error(message);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (manifest.engines && manifest.engines.arangodb && !semver.satisfies(internal.version, manifest.engines.arangodb)) {
|
||||||
|
console.warn(
|
||||||
|
'Manifest "%s" for app "%s": ArangoDB version %s probably not compatible with expected version %s.',
|
||||||
|
filename,
|
||||||
|
manifest.name,
|
||||||
|
internal.version,
|
||||||
|
manifest.engines.arangodb
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
// TODO Remove in 2.8
|
// TODO Remove in 2.8
|
||||||
|
|
||||||
if (manifest.setup) {
|
if (manifest.setup) {
|
||||||
console.warn(
|
console.warn(
|
||||||
"Manifest '%s' for app '%s' contains deprecated attribute 'setup', use 'scripts.setup' instead.",
|
(
|
||||||
manifest.name,
|
'Manifest "%s" for app "%s" contains deprecated attribute "setup",'
|
||||||
filename
|
+ ' use "scripts.setup" instead.'
|
||||||
|
),
|
||||||
|
filename,
|
||||||
|
manifest.name
|
||||||
);
|
);
|
||||||
manifest.scripts.setup = manifest.setup;
|
manifest.scripts.setup = manifest.setup;
|
||||||
delete manifest.setup;
|
delete manifest.setup;
|
||||||
|
@ -329,9 +353,12 @@ var checkManifest = function(filename, manifest) {
|
||||||
|
|
||||||
if (manifest.teardown) {
|
if (manifest.teardown) {
|
||||||
console.warn(
|
console.warn(
|
||||||
"Manifest '%s' for app '%s' contains deprecated attribute 'teardown', use 'scripts.teardown' instead.",
|
(
|
||||||
manifest.name,
|
'Manifest "%s" for app "%s" contains deprecated attribute "teardown",'
|
||||||
filename
|
+ ' use "scripts.teardown" instead.'
|
||||||
|
),
|
||||||
|
filename,
|
||||||
|
manifest.name
|
||||||
);
|
);
|
||||||
manifest.scripts.teardown = manifest.teardown;
|
manifest.scripts.teardown = manifest.teardown;
|
||||||
delete manifest.teardown;
|
delete manifest.teardown;
|
||||||
|
@ -339,17 +366,21 @@ var checkManifest = function(filename, manifest) {
|
||||||
|
|
||||||
if (manifest.assets) {
|
if (manifest.assets) {
|
||||||
console.warn(
|
console.warn(
|
||||||
"Manifest '%s' for app '%s' contains deprecated attribute 'assets', use 'files' and an external build tool instead.",
|
(
|
||||||
manifest.name,
|
'Manifest "%s" for app "%s" contains deprecated attribute "assets",'
|
||||||
filename
|
+ ' use "files" and an external build tool instead.'
|
||||||
|
),
|
||||||
|
filename,
|
||||||
|
manifest.name
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Object.keys(manifest).forEach(function (key) {
|
Object.keys(manifest).forEach(function (key) {
|
||||||
if (!manifestSchema[key]) {
|
if (!manifestSchema[key]) {
|
||||||
console.warn(
|
console.warn(
|
||||||
'Manifest "%s": unknown attribute "%s"',
|
'Manifest "%s" for app "%s": unknown attribute "%s"',
|
||||||
filename,
|
filename,
|
||||||
|
manifest.name,
|
||||||
key
|
key
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue