@optimizely/ocp-cli 1.0.0 → 1.0.1-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/app/GetLogLevel.d.ts +7 -0
- package/dist/commands/app/GetLogLevel.js +63 -0
- package/dist/commands/app/GetLogLevel.js.map +1 -0
- package/dist/commands/app/SetLogLevel.d.ts +9 -0
- package/dist/commands/app/SetLogLevel.js +84 -0
- package/dist/commands/app/SetLogLevel.js.map +1 -0
- package/dist/commands/directory/Publish.js +16 -13
- package/dist/commands/directory/Publish.js.map +1 -1
- package/dist/commands/directory/Unpublish.js +9 -6
- package/dist/commands/directory/Unpublish.js.map +1 -1
- package/dist/lib/Rivendell.d.ts +21 -0
- package/dist/lib/Rivendell.js +23 -0
- package/dist/lib/Rivendell.js.map +1 -1
- package/dist/oo-cli.manifest.json +105 -1
- package/package.json +1 -1
- package/src/commands/app/GetLogLevel.ts +48 -0
- package/src/commands/app/SetLogLevel.ts +71 -0
- package/src/commands/directory/Publish.ts +18 -14
- package/src/commands/directory/Unpublish.ts +12 -8
- package/src/lib/Rivendell.ts +43 -0
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.GetLogLevelCommand = void 0;
|
|
10
|
+
const chalk = require("chalk");
|
|
11
|
+
const oo_cli_1 = require("oo-cli");
|
|
12
|
+
const AppContext_1 = require("../../lib/AppContext");
|
|
13
|
+
const die_1 = require("../../lib/die");
|
|
14
|
+
const Rivendell_1 = require("../../lib/Rivendell");
|
|
15
|
+
const formatError_1 = require("../../lib/formatError");
|
|
16
|
+
let GetLogLevelCommand = class GetLogLevelCommand {
|
|
17
|
+
constructor() {
|
|
18
|
+
this.availability = '';
|
|
19
|
+
}
|
|
20
|
+
async getLogLevel() {
|
|
21
|
+
try {
|
|
22
|
+
const context = (0, AppContext_1.appContext)(this.appVersion);
|
|
23
|
+
if (!context.appId || !context.version) {
|
|
24
|
+
return (0, die_1.die)('App ID and version are required');
|
|
25
|
+
}
|
|
26
|
+
const logLevelRecord = await Rivendell_1.Rivendell.getLogLevel(this.availability, context.appId, context.version, this.trackerId);
|
|
27
|
+
this.render(logLevelRecord);
|
|
28
|
+
}
|
|
29
|
+
catch (e) {
|
|
30
|
+
(0, die_1.die)((0, formatError_1.formatError)(e));
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
render(record) {
|
|
34
|
+
if (record.trackerId) {
|
|
35
|
+
console.log(chalk.green(`install log level is currently set to ${record.logLevel}`));
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
console.log(chalk.green(`${this.appVersion} log level is currently set to ${record.logLevel}`));
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
__decorate([
|
|
43
|
+
oo_cli_1.param,
|
|
44
|
+
oo_cli_1.required,
|
|
45
|
+
(0, oo_cli_1.help)('The App ID and version')
|
|
46
|
+
], GetLogLevelCommand.prototype, "appVersion", void 0);
|
|
47
|
+
__decorate([
|
|
48
|
+
(0, oo_cli_1.option)('trackerId'),
|
|
49
|
+
(0, oo_cli_1.help)('The Tracker ID of the installed account. If not provided, returns default log level for the app version')
|
|
50
|
+
], GetLogLevelCommand.prototype, "trackerId", void 0);
|
|
51
|
+
__decorate([
|
|
52
|
+
(0, oo_cli_1.option)('a'),
|
|
53
|
+
(0, oo_cli_1.help)('The availability zone that will be targeted (default: us)')
|
|
54
|
+
], GetLogLevelCommand.prototype, "availability", void 0);
|
|
55
|
+
__decorate([
|
|
56
|
+
(0, oo_cli_1.command)('get-log-level'),
|
|
57
|
+
(0, oo_cli_1.help)('Get the logLevel of a particular app version or an installation')
|
|
58
|
+
], GetLogLevelCommand.prototype, "getLogLevel", null);
|
|
59
|
+
GetLogLevelCommand = __decorate([
|
|
60
|
+
(0, oo_cli_1.namespace)('app')
|
|
61
|
+
], GetLogLevelCommand);
|
|
62
|
+
exports.GetLogLevelCommand = GetLogLevelCommand;
|
|
63
|
+
//# sourceMappingURL=GetLogLevel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GetLogLevel.js","sourceRoot":"","sources":["../../../src/commands/app/GetLogLevel.ts"],"names":[],"mappings":";;;;;;;;;AAAA,+BAA+B;AAC/B,mCAAyE;AACzE,qDAAgD;AAChD,uCAAkC;AAClC,mDAA8C;AAC9C,uDAAkD;AAI3C,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAAxB;QAYG,iBAAY,GAAW,EAAE,CAAC;IA0BpC,CAAC;IAtBc,AAAN,KAAK,CAAC,WAAW;QACtB,IAAI;YACF,MAAM,OAAO,GAAG,IAAA,uBAAU,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC5C,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;gBACtC,OAAO,IAAA,SAAG,EAAC,iCAAiC,CAAC,CAAC;aAC/C;YAED,MAAM,cAAc,GAAG,MAAM,qBAAS,CAAC,WAAW,CAChD,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YACrE,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;SAC7B;QAAC,OAAO,CAAM,EAAE;YACf,IAAA,SAAG,EAAC,IAAA,yBAAW,EAAC,CAAC,CAAC,CAAC,CAAC;SACrB;IACH,CAAC;IAEO,MAAM,CAAC,MAAsB;QACnC,IAAI,MAAM,CAAC,SAAS,EAAE;YACpB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,yCAAyC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;SACtF;aAAM;YACL,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,UAAU,kCAAkC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;SACjG;IACH,CAAC;CACF,CAAA;AAlCC;IAHC,cAAK;IACL,iBAAQ;IACR,IAAA,aAAI,EAAC,wBAAwB,CAAC;sDACJ;AAI3B;IAFC,IAAA,eAAM,EAAC,WAAW,CAAC;IACnB,IAAA,aAAI,EAAC,yGAAyG,CAAC;qDACtF;AAI1B;IAFC,IAAA,eAAM,EAAC,GAAG,CAAC;IACX,IAAA,aAAI,EAAC,2DAA2D,CAAC;wDAChC;AAIrB;IAFZ,IAAA,gBAAO,EAAC,eAAe,CAAC;IACxB,IAAA,aAAI,EAAC,iEAAiE,CAAC;qDAcvE;AA7BU,kBAAkB;IAD9B,IAAA,kBAAS,EAAC,KAAK,CAAC;GACJ,kBAAkB,CAsC9B;AAtCY,gDAAkB"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.SetLogLevelCommand = void 0;
|
|
10
|
+
const chalk = require("chalk");
|
|
11
|
+
const oo_cli_1 = require("oo-cli");
|
|
12
|
+
const parse_duration_1 = require("parse-duration");
|
|
13
|
+
const AppContext_1 = require("../../lib/AppContext");
|
|
14
|
+
const die_1 = require("../../lib/die");
|
|
15
|
+
const Rivendell_1 = require("../../lib/Rivendell");
|
|
16
|
+
const formatError_1 = require("../../lib/formatError");
|
|
17
|
+
var LogLevel = Rivendell_1.Rivendell.LogLevel;
|
|
18
|
+
let SetLogLevelCommand = class SetLogLevelCommand {
|
|
19
|
+
constructor() {
|
|
20
|
+
this.availability = '';
|
|
21
|
+
}
|
|
22
|
+
async setLogLevel() {
|
|
23
|
+
try {
|
|
24
|
+
const context = (0, AppContext_1.appContext)(this.appVersion);
|
|
25
|
+
if (!context.appId || !context.version) {
|
|
26
|
+
return (0, die_1.die)('App ID and version are required');
|
|
27
|
+
}
|
|
28
|
+
const level = this.getLogLevel(this.logLevel);
|
|
29
|
+
const ttlSeconds = (0, parse_duration_1.default)(this.timeToLive, 'second');
|
|
30
|
+
if (!ttlSeconds) {
|
|
31
|
+
(0, die_1.die)(chalk.red('Invalid "--ttl" input, should be relative string (i.e. "5m" for 5 minutes.'));
|
|
32
|
+
}
|
|
33
|
+
await Rivendell_1.Rivendell.setLogLevel(this.availability, context.appId, context.version, level.toString(), ttlSeconds, this.trackerId);
|
|
34
|
+
if (this.trackerId) {
|
|
35
|
+
console.log(chalk.green(`Successfully set log level for tracker ${this.trackerId} of the app version ${this.appVersion}`));
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
console.log(chalk.green(`Successfully set log level for the app version ${this.appVersion}`));
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
catch (e) {
|
|
42
|
+
(0, die_1.die)((0, formatError_1.formatError)(e));
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
getLogLevel(logLevel) {
|
|
46
|
+
const key = logLevel.toUpperCase();
|
|
47
|
+
if (!LogLevel[key]) {
|
|
48
|
+
(0, die_1.die)(`${logLevel} is not a valid LogLevel`);
|
|
49
|
+
}
|
|
50
|
+
return LogLevel[key];
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
__decorate([
|
|
54
|
+
oo_cli_1.param,
|
|
55
|
+
oo_cli_1.required,
|
|
56
|
+
(0, oo_cli_1.help)('The App ID and version')
|
|
57
|
+
], SetLogLevelCommand.prototype, "appVersion", void 0);
|
|
58
|
+
__decorate([
|
|
59
|
+
oo_cli_1.param,
|
|
60
|
+
oo_cli_1.required,
|
|
61
|
+
(0, oo_cli_1.help)(`The desired logLevel to set. Possible values: ${Object.values(LogLevel).join(', ')}`)
|
|
62
|
+
], SetLogLevelCommand.prototype, "logLevel", void 0);
|
|
63
|
+
__decorate([
|
|
64
|
+
(0, oo_cli_1.option)('trackerId'),
|
|
65
|
+
(0, oo_cli_1.help)('The Tracker ID of the installed account. If not provided, log level is set for the app version')
|
|
66
|
+
], SetLogLevelCommand.prototype, "trackerId", void 0);
|
|
67
|
+
__decorate([
|
|
68
|
+
(0, oo_cli_1.option)('ttl'),
|
|
69
|
+
(0, oo_cli_1.help)('LogLevel expiration period (TTL) as relative string (i.e. "5m" for 5 minutes). Default: 2h'),
|
|
70
|
+
(0, oo_cli_1.defaultValue)('2h')
|
|
71
|
+
], SetLogLevelCommand.prototype, "timeToLive", void 0);
|
|
72
|
+
__decorate([
|
|
73
|
+
(0, oo_cli_1.option)('a'),
|
|
74
|
+
(0, oo_cli_1.help)('The availability zone that will be targeted (default: us)')
|
|
75
|
+
], SetLogLevelCommand.prototype, "availability", void 0);
|
|
76
|
+
__decorate([
|
|
77
|
+
(0, oo_cli_1.command)('set-log-level'),
|
|
78
|
+
(0, oo_cli_1.help)('Set the logLevel of a particular app version or an installation')
|
|
79
|
+
], SetLogLevelCommand.prototype, "setLogLevel", null);
|
|
80
|
+
SetLogLevelCommand = __decorate([
|
|
81
|
+
(0, oo_cli_1.namespace)('app')
|
|
82
|
+
], SetLogLevelCommand);
|
|
83
|
+
exports.SetLogLevelCommand = SetLogLevelCommand;
|
|
84
|
+
//# sourceMappingURL=SetLogLevel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SetLogLevel.js","sourceRoot":"","sources":["../../../src/commands/app/SetLogLevel.ts"],"names":[],"mappings":";;;;;;;;;AAAA,+BAA+B;AAC/B,mCAAuF;AACvF,mDAAwD;AACxD,qDAAgD;AAChD,uCAAkC;AAClC,mDAA8C;AAC9C,uDAAkD;AAClD,IAAO,QAAQ,GAAG,qBAAS,CAAC,QAAQ,CAAC;AAG9B,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAAxB;QAsBG,iBAAY,GAAW,EAAE,CAAC;IAsCpC,CAAC;IAlCc,AAAN,KAAK,CAAC,WAAW;QACtB,IAAI;YACF,MAAM,OAAO,GAAG,IAAA,uBAAU,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC5C,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;gBACtC,OAAO,IAAA,SAAG,EAAC,iCAAiC,CAAC,CAAC;aAC/C;YAED,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC9C,MAAM,UAAU,GAAG,IAAA,wBAAa,EAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAC5D,IAAI,CAAC,UAAU,EAAE;gBACf,IAAA,SAAG,EAAC,KAAK,CAAC,GAAG,CAAC,4EAA4E,CAAC,CAAC,CAAC;aAC9F;YAED,MAAM,qBAAS,CAAC,WAAW,CACzB,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,UAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YACpG,IAAI,IAAI,CAAC,SAAS,EAAE;gBAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,0CAA0C,IAAI,CAAC,SAAS,uBAAuB,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;aAC5H;iBAAM;gBACL,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,kDAAkD,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;aAC/F;SAEF;QAAC,OAAO,CAAM,EAAE;YACf,IAAA,SAAG,EAAC,IAAA,yBAAW,EAAC,CAAC,CAAC,CAAC,CAAC;SACrB;IACH,CAAC;IAEO,WAAW,CAAC,QAAgB;QAChC,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;QACnC,IAAI,CAAC,QAAQ,CAAC,GAAgB,CAAC,EAAE;YAC/B,IAAA,SAAG,EAAC,GAAG,QAAQ,0BAA0B,CAAC,CAAC;SAC5C;QACD,OAAO,QAAQ,CAAC,GAAgB,CAAC,CAAC;IACtC,CAAC;CAEF,CAAA;AAxDC;IAHC,cAAK;IACL,iBAAQ;IACR,IAAA,aAAI,EAAC,wBAAwB,CAAC;sDACJ;AAK3B;IAHC,cAAK;IACL,iBAAQ;IACR,IAAA,aAAI,EAAC,iDAAiD,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oDACnE;AAIzB;IAFC,IAAA,eAAM,EAAC,WAAW,CAAC;IACnB,IAAA,aAAI,EAAC,gGAAgG,CAAC;qDAC7E;AAK1B;IAHC,IAAA,eAAM,EAAC,KAAK,CAAC;IACb,IAAA,aAAI,EAAC,4FAA4F,CAAC;IAClG,IAAA,qBAAY,EAAC,IAAI,CAAC;sDACQ;AAI3B;IAFC,IAAA,eAAM,EAAC,GAAG,CAAC;IACX,IAAA,aAAI,EAAC,2DAA2D,CAAC;wDAChC;AAIrB;IAFZ,IAAA,gBAAO,EAAC,eAAe,CAAC;IACxB,IAAA,aAAI,EAAC,iEAAiE,CAAC;qDAyBvE;AAlDU,kBAAkB;IAD9B,IAAA,kBAAS,EAAC,KAAK,CAAC;GACJ,kBAAkB,CA4D9B;AA5DY,gDAAkB"}
|
|
@@ -26,8 +26,7 @@ const UNPUBLISHABLE_STATES = [AppVersionState.RUNNING, AppVersionState.START_FAI
|
|
|
26
26
|
const PUBLISHABLE_STATES = [
|
|
27
27
|
AppVersionState.NEW,
|
|
28
28
|
AppVersionState.PUBLISHED,
|
|
29
|
-
AppVersionState.START_FAILED
|
|
30
|
-
AppVersionState.STOPPED
|
|
29
|
+
AppVersionState.START_FAILED
|
|
31
30
|
];
|
|
32
31
|
let PublishCommand = class PublishCommand {
|
|
33
32
|
async publish() {
|
|
@@ -38,16 +37,20 @@ let PublishCommand = class PublishCommand {
|
|
|
38
37
|
const [appId, version] = this.appVersion.split('@');
|
|
39
38
|
console.log(chalk.gray(`Publishing ${this.appVersion} to the directory...`));
|
|
40
39
|
try {
|
|
41
|
-
const
|
|
42
|
-
|
|
43
|
-
throw new Error(`AppVersion must be in a publishable state. ` +
|
|
44
|
-
`Currently: ${(0, formatVersionState_1.formatVersionState)(appVersion.state)}`);
|
|
45
|
-
}
|
|
46
|
-
const manifest = JSON.parse(appVersion.manifestJson);
|
|
40
|
+
const primaryAppVersion = await Rivendell_1.Rivendell.fetchAppVersion({ appId, version }, 'us');
|
|
41
|
+
const manifest = JSON.parse(primaryAppVersion.manifestJson);
|
|
47
42
|
const shards = await (0, Shards_1.applicableShards)('', manifest);
|
|
48
|
-
const errors = [];
|
|
49
43
|
for (const shard of shards) {
|
|
50
44
|
try {
|
|
45
|
+
const appVersion = await Rivendell_1.Rivendell.fetchAppVersion({ appId, version }, shard);
|
|
46
|
+
if (appVersion.state === AppVersionState.RUNNING) {
|
|
47
|
+
console.log(chalk.green(`Already published in ${shard}. Skipping...`));
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
50
|
+
if (!PUBLISHABLE_STATES.includes(appVersion.state)) {
|
|
51
|
+
throw new Error(`AppVersion must be in a publishable state. ` +
|
|
52
|
+
`Currently: ${(0, formatVersionState_1.formatVersionState)(appVersion.state)}`);
|
|
53
|
+
}
|
|
51
54
|
await Rivendell_1.Rivendell.publish(appId, version, shard);
|
|
52
55
|
console.log(chalk.green(`Success. ${this.appVersion} is being published to ${shard}.`));
|
|
53
56
|
const context = { appId, version };
|
|
@@ -56,12 +59,12 @@ let PublishCommand = class PublishCommand {
|
|
|
56
59
|
terminal_kit_1.terminal.removeAllListeners('key');
|
|
57
60
|
}
|
|
58
61
|
catch (error) {
|
|
59
|
-
|
|
62
|
+
console.error(chalk.red(`Error publishing in shard ${shard}: ${(0, formatError_1.formatError)(error)}`));
|
|
63
|
+
if (shards[shards.length - 1] !== shard && !await TerminalConfirm_1.TerminalConfirm.ask('Continue with other shards?')) {
|
|
64
|
+
break;
|
|
65
|
+
}
|
|
60
66
|
}
|
|
61
67
|
}
|
|
62
|
-
if (errors.length) {
|
|
63
|
-
console.error(chalk.red(errors.join('\n')));
|
|
64
|
-
}
|
|
65
68
|
const pre = (0, semver_1.prerelease)(version);
|
|
66
69
|
if (pre && pre[0] !== 'dev') {
|
|
67
70
|
await this.checkOrphanedDeploys(appId, shards);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Publish.js","sourceRoot":"","sources":["../../../src/commands/directory/Publish.ts"],"names":[],"mappings":";;;;;;;;;AAAA,+BAA+B;AAC/B,mCAA6D;AAC7D,+CAAsC;AAEtC,uCAAkC;AAClC,qEAAgE;AAChE,+DAA0D;AAC1D,+DAA0D;AAC1D,mDAA8C;AAC9C,uDAAkD;AAClD,IAAO,eAAe,GAAG,qBAAS,CAAC,eAAe,CAAC;AACnD,6CAAkD;AAElD,mCAA8C;AAC9C,2CAA+C;AAC/C,+DAA4D;AAE5D,MAAM,cAAc,GAAG,CAAC,eAAe,CAAC,YAAY,EAAE,eAAe,CAAC,OAAO,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC;AAC5G,MAAM,oBAAoB,GAAG,CAAC,eAAe,CAAC,OAAO,EAAE,eAAe,CAAC,YAAY,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC;AAClH,MAAM,kBAAkB,GAAG;IACzB,eAAe,CAAC,GAAG;IACnB,eAAe,CAAC,SAAS;IACzB,eAAe,CAAC,YAAY;
|
|
1
|
+
{"version":3,"file":"Publish.js","sourceRoot":"","sources":["../../../src/commands/directory/Publish.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,7 @@ var AppVersionState = Rivendell_1.Rivendell.AppVersionState;
|
|
|
19
19
|
var SortDirection = Rivendell_1.Rivendell.SortDirection;
|
|
20
20
|
const formatError_1 = require("../../lib/formatError");
|
|
21
21
|
const Shards_1 = require("../../lib/Shards");
|
|
22
|
+
const TerminalConfirm_1 = require("../../lib/TerminalConfirm");
|
|
22
23
|
const UNPUBLISHABLE_STATES = [AppVersionState.RUNNING, AppVersionState.START_FAILED, AppVersionState.STOP_FAILED];
|
|
23
24
|
let UnpublishCommand = class UnpublishCommand {
|
|
24
25
|
constructor() {
|
|
@@ -33,12 +34,14 @@ let UnpublishCommand = class UnpublishCommand {
|
|
|
33
34
|
try {
|
|
34
35
|
const appVersion = await Rivendell_1.Rivendell.fetchAppVersion({ appId, version }, 'us');
|
|
35
36
|
if (!UNPUBLISHABLE_STATES.includes(appVersion.state)) {
|
|
36
|
-
throw new Error(`AppVersion must be in an unpublishable state. ` +
|
|
37
|
+
throw new Error(`AppVersion must be in an unpublishable state in the primary shard. ` +
|
|
37
38
|
`Currently: ${(0, formatVersionState_1.formatVersionState)(appVersion.state)}`);
|
|
38
39
|
}
|
|
39
40
|
const manifest = JSON.parse(appVersion.manifestJson);
|
|
40
41
|
const shards = await (0, Shards_1.applicableShards)(this.availability, manifest);
|
|
41
|
-
|
|
42
|
+
if (!(await TerminalConfirm_1.TerminalConfirm.ask(chalk.red('Unpublishing is not reversible. Are you sure you want to unpublish? [y/n]')))) {
|
|
43
|
+
(0, die_1.die)('Operation cancelled.');
|
|
44
|
+
}
|
|
42
45
|
for (const shard of shards) {
|
|
43
46
|
if (!(await this.uninstallEverywhere(appId, version, shard))) {
|
|
44
47
|
process.exit();
|
|
@@ -49,12 +52,12 @@ let UnpublishCommand = class UnpublishCommand {
|
|
|
49
52
|
await this.watchForCompletion({ appId, version }, shard);
|
|
50
53
|
}
|
|
51
54
|
catch (error) {
|
|
52
|
-
|
|
55
|
+
console.error(chalk.red(`Error unpublishing in shard ${shard}: ${(0, formatError_1.formatError)(error)}`));
|
|
56
|
+
if (shards[shards.length - 1] !== shard && !await TerminalConfirm_1.TerminalConfirm.ask('Continue with other shards?')) {
|
|
57
|
+
break;
|
|
58
|
+
}
|
|
53
59
|
}
|
|
54
60
|
}
|
|
55
|
-
if (errors.length) {
|
|
56
|
-
console.log(chalk.red(errors.join('\n')));
|
|
57
|
-
}
|
|
58
61
|
}
|
|
59
62
|
catch (e) {
|
|
60
63
|
(0, die_1.die)((0, formatError_1.formatError)(e));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Unpublish.js","sourceRoot":"","sources":["../../../src/commands/directory/Unpublish.ts"],"names":[],"mappings":";;;;;;;;;AAAA,+BAA+B;AAC/B,mCAAqE;AACrE,+CAAsC;AAEtC,uCAAkC;AAClC,qEAAgE;AAChE,+DAA0D;AAC1D,+DAA0D;AAC1D,mDAA8C;AAC9C,IAAO,eAAe,GAAG,qBAAS,CAAC,eAAe,CAAC;AACnD,IAAO,aAAa,GAAG,qBAAS,CAAC,aAAa,CAAC;AAE/C,uDAAkD;AAClD,6CAAkD;
|
|
1
|
+
{"version":3,"file":"Unpublish.js","sourceRoot":"","sources":["../../../src/commands/directory/Unpublish.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/Rivendell.d.ts
CHANGED
|
@@ -50,6 +50,13 @@ export declare namespace Rivendell {
|
|
|
50
50
|
IMMEDIATE = "IMMEDIATE",
|
|
51
51
|
RECURRING = "RECURRING"
|
|
52
52
|
}
|
|
53
|
+
enum LogLevel {
|
|
54
|
+
DEBUG = "DEBUG",
|
|
55
|
+
INFO = "INFO",
|
|
56
|
+
WARN = "WARN",
|
|
57
|
+
ERROR = "ERROR",
|
|
58
|
+
NEVER = "NEVER"
|
|
59
|
+
}
|
|
53
60
|
interface AppVersionId {
|
|
54
61
|
appId: string;
|
|
55
62
|
version: string;
|
|
@@ -212,6 +219,12 @@ export declare namespace Rivendell {
|
|
|
212
219
|
url: string;
|
|
213
220
|
live: boolean;
|
|
214
221
|
}
|
|
222
|
+
interface LogLevelRecord {
|
|
223
|
+
appId: string;
|
|
224
|
+
version: string;
|
|
225
|
+
trackerId?: string;
|
|
226
|
+
logLevel: string;
|
|
227
|
+
}
|
|
215
228
|
interface JwtResponse {
|
|
216
229
|
jwt: string;
|
|
217
230
|
}
|
|
@@ -307,6 +320,14 @@ export declare namespace Rivendell {
|
|
|
307
320
|
* Trigger a unpublish.
|
|
308
321
|
*/
|
|
309
322
|
function unpublish(appId: string, version: string, shard: string): Promise<void>;
|
|
323
|
+
/**
|
|
324
|
+
* Set logLevel of an app version or an installation
|
|
325
|
+
*/
|
|
326
|
+
function setLogLevel(shard: string, appId: string, version: string, logLevel: string, timeToLive: number, trackerId?: string): Promise<void>;
|
|
327
|
+
/**
|
|
328
|
+
* Get logLevel of an app version or an installation
|
|
329
|
+
*/
|
|
330
|
+
function getLogLevel(shard: string, appId: string, version: string, trackerId?: string): Promise<LogLevelRecord>;
|
|
310
331
|
/**
|
|
311
332
|
* Fetch a build by id.
|
|
312
333
|
*/
|
package/dist/lib/Rivendell.js
CHANGED
|
@@ -61,6 +61,14 @@ var Rivendell;
|
|
|
61
61
|
JobTriggerType["IMMEDIATE"] = "IMMEDIATE";
|
|
62
62
|
JobTriggerType["RECURRING"] = "RECURRING";
|
|
63
63
|
})(JobTriggerType = Rivendell.JobTriggerType || (Rivendell.JobTriggerType = {}));
|
|
64
|
+
let LogLevel;
|
|
65
|
+
(function (LogLevel) {
|
|
66
|
+
LogLevel["DEBUG"] = "DEBUG";
|
|
67
|
+
LogLevel["INFO"] = "INFO";
|
|
68
|
+
LogLevel["WARN"] = "WARN";
|
|
69
|
+
LogLevel["ERROR"] = "ERROR";
|
|
70
|
+
LogLevel["NEVER"] = "NEVER";
|
|
71
|
+
})(LogLevel = Rivendell.LogLevel || (Rivendell.LogLevel = {}));
|
|
64
72
|
let SortDirection;
|
|
65
73
|
(function (SortDirection) {
|
|
66
74
|
SortDirection["ASC"] = "ASC";
|
|
@@ -222,6 +230,21 @@ var Rivendell;
|
|
|
222
230
|
await RivendellApi_1.RivendellApi.request('PATCH', path(shard, `versions/${appId}@${version}`), { state: AppVersionState.STOPPED });
|
|
223
231
|
}
|
|
224
232
|
Rivendell.unpublish = unpublish;
|
|
233
|
+
/**
|
|
234
|
+
* Set logLevel of an app version or an installation
|
|
235
|
+
*/
|
|
236
|
+
async function setLogLevel(shard, appId, version, logLevel, timeToLive, trackerId) {
|
|
237
|
+
await RivendellApi_1.RivendellApi.put(path(shard, `runtime-config/log-levels`), { appId, version, trackerId, logLevel, timeToLive });
|
|
238
|
+
}
|
|
239
|
+
Rivendell.setLogLevel = setLogLevel;
|
|
240
|
+
/**
|
|
241
|
+
* Get logLevel of an app version or an installation
|
|
242
|
+
*/
|
|
243
|
+
async function getLogLevel(shard, appId, version, trackerId) {
|
|
244
|
+
const response = await RivendellApi_1.RivendellApi.post(path(shard, `runtime-config/log-levels/search`), { appId, version, trackerId });
|
|
245
|
+
return response.body;
|
|
246
|
+
}
|
|
247
|
+
Rivendell.getLogLevel = getLogLevel;
|
|
225
248
|
/**
|
|
226
249
|
* Fetch a build by id.
|
|
227
250
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Rivendell.js","sourceRoot":"","sources":["../../src/lib/Rivendell.ts"],"names":[],"mappings":";;;AAAA,iDAA4C;AAI5C,IAAiB,SAAS,
|
|
1
|
+
{"version":3,"file":"Rivendell.js","sourceRoot":"","sources":["../../src/lib/Rivendell.ts"],"names":[],"mappings":"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"}
|
|
@@ -51,6 +51,49 @@
|
|
|
51
51
|
"app": {
|
|
52
52
|
"namespaces": {},
|
|
53
53
|
"commands": [
|
|
54
|
+
{
|
|
55
|
+
"path": "commands/app/GetLogLevel.js",
|
|
56
|
+
"className": "GetLogLevelCommand",
|
|
57
|
+
"key": "getLogLevel",
|
|
58
|
+
"command": "getLogLevel",
|
|
59
|
+
"aliases": [
|
|
60
|
+
"get-log-level"
|
|
61
|
+
],
|
|
62
|
+
"help": "Get the logLevel of a particular app version or an installation",
|
|
63
|
+
"documentation": "TBD",
|
|
64
|
+
"flags": [],
|
|
65
|
+
"options": [
|
|
66
|
+
{
|
|
67
|
+
"name": "trackerId",
|
|
68
|
+
"key": "trackerId",
|
|
69
|
+
"aliases": [
|
|
70
|
+
"trackerId"
|
|
71
|
+
],
|
|
72
|
+
"help": "The Tracker ID of the installed account. If not provided, returns default log level for the app version",
|
|
73
|
+
"optional": true,
|
|
74
|
+
"multiple": false
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"name": "availability",
|
|
78
|
+
"key": "availability",
|
|
79
|
+
"aliases": [
|
|
80
|
+
"a"
|
|
81
|
+
],
|
|
82
|
+
"help": "The availability zone that will be targeted (default: us)",
|
|
83
|
+
"optional": true,
|
|
84
|
+
"multiple": false
|
|
85
|
+
}
|
|
86
|
+
],
|
|
87
|
+
"params": [
|
|
88
|
+
{
|
|
89
|
+
"name": "appVersion",
|
|
90
|
+
"key": "appVersion",
|
|
91
|
+
"help": "The App ID and version",
|
|
92
|
+
"optional": false,
|
|
93
|
+
"multiple": false
|
|
94
|
+
}
|
|
95
|
+
]
|
|
96
|
+
},
|
|
54
97
|
{
|
|
55
98
|
"path": "commands/app/Init.js",
|
|
56
99
|
"className": "CreateCommand",
|
|
@@ -323,6 +366,67 @@
|
|
|
323
366
|
}
|
|
324
367
|
]
|
|
325
368
|
},
|
|
369
|
+
{
|
|
370
|
+
"path": "commands/app/SetLogLevel.js",
|
|
371
|
+
"className": "SetLogLevelCommand",
|
|
372
|
+
"key": "setLogLevel",
|
|
373
|
+
"command": "setLogLevel",
|
|
374
|
+
"aliases": [
|
|
375
|
+
"set-log-level"
|
|
376
|
+
],
|
|
377
|
+
"help": "Set the logLevel of a particular app version or an installation",
|
|
378
|
+
"documentation": "TBD",
|
|
379
|
+
"flags": [],
|
|
380
|
+
"options": [
|
|
381
|
+
{
|
|
382
|
+
"name": "trackerId",
|
|
383
|
+
"key": "trackerId",
|
|
384
|
+
"aliases": [
|
|
385
|
+
"trackerId"
|
|
386
|
+
],
|
|
387
|
+
"help": "The Tracker ID of the installed account. If not provided, log level is set for the app version",
|
|
388
|
+
"optional": true,
|
|
389
|
+
"multiple": false
|
|
390
|
+
},
|
|
391
|
+
{
|
|
392
|
+
"name": "timeToLive",
|
|
393
|
+
"key": "timeToLive",
|
|
394
|
+
"aliases": [
|
|
395
|
+
"ttl"
|
|
396
|
+
],
|
|
397
|
+
"help": "LogLevel expiration period (TTL) as relative string (i.e. \"5m\" for 5 minutes). Default: 2h",
|
|
398
|
+
"defaultValue": "2h",
|
|
399
|
+
"optional": true,
|
|
400
|
+
"multiple": false
|
|
401
|
+
},
|
|
402
|
+
{
|
|
403
|
+
"name": "availability",
|
|
404
|
+
"key": "availability",
|
|
405
|
+
"aliases": [
|
|
406
|
+
"a"
|
|
407
|
+
],
|
|
408
|
+
"help": "The availability zone that will be targeted (default: us)",
|
|
409
|
+
"optional": true,
|
|
410
|
+
"multiple": false
|
|
411
|
+
}
|
|
412
|
+
],
|
|
413
|
+
"params": [
|
|
414
|
+
{
|
|
415
|
+
"name": "appVersion",
|
|
416
|
+
"key": "appVersion",
|
|
417
|
+
"help": "The App ID and version",
|
|
418
|
+
"optional": false,
|
|
419
|
+
"multiple": false
|
|
420
|
+
},
|
|
421
|
+
{
|
|
422
|
+
"name": "logLevel",
|
|
423
|
+
"key": "logLevel",
|
|
424
|
+
"help": "The desired logLevel to set. Possible values: DEBUG, INFO, WARN, ERROR, NEVER",
|
|
425
|
+
"optional": false,
|
|
426
|
+
"multiple": false
|
|
427
|
+
}
|
|
428
|
+
]
|
|
429
|
+
},
|
|
326
430
|
{
|
|
327
431
|
"path": "commands/app/Validate.js",
|
|
328
432
|
"className": "ValidateCommand",
|
|
@@ -1134,7 +1238,7 @@
|
|
|
1134
1238
|
},
|
|
1135
1239
|
"commands": [],
|
|
1136
1240
|
"package": {
|
|
1137
|
-
"version": "1.0.
|
|
1241
|
+
"version": "1.0.1-beta.1",
|
|
1138
1242
|
"name": "@optimizely/ocp-cli",
|
|
1139
1243
|
"license": "Apache-2.0",
|
|
1140
1244
|
"executable": "ocp"
|
package/package.json
CHANGED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import * as chalk from 'chalk';
|
|
2
|
+
import {command, help, namespace, param, required, option} from 'oo-cli';
|
|
3
|
+
import {appContext} from '../../lib/AppContext';
|
|
4
|
+
import {die} from '../../lib/die';
|
|
5
|
+
import {Rivendell} from '../../lib/Rivendell';
|
|
6
|
+
import {formatError} from '../../lib/formatError';
|
|
7
|
+
import LogLevelRecord = Rivendell.LogLevelRecord;
|
|
8
|
+
|
|
9
|
+
@namespace('app')
|
|
10
|
+
export class GetLogLevelCommand {
|
|
11
|
+
@param
|
|
12
|
+
@required
|
|
13
|
+
@help('The App ID and version')
|
|
14
|
+
public appVersion!: string;
|
|
15
|
+
|
|
16
|
+
@option('trackerId')
|
|
17
|
+
@help('The Tracker ID of the installed account. If not provided, returns default log level for the app version')
|
|
18
|
+
public trackerId?: string;
|
|
19
|
+
|
|
20
|
+
@option('a')
|
|
21
|
+
@help('The availability zone that will be targeted (default: us)')
|
|
22
|
+
private availability: string = '';
|
|
23
|
+
|
|
24
|
+
@command('get-log-level')
|
|
25
|
+
@help('Get the logLevel of a particular app version or an installation')
|
|
26
|
+
public async getLogLevel() {
|
|
27
|
+
try {
|
|
28
|
+
const context = appContext(this.appVersion);
|
|
29
|
+
if (!context.appId || !context.version) {
|
|
30
|
+
return die('App ID and version are required');
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
const logLevelRecord = await Rivendell.getLogLevel(
|
|
34
|
+
this.availability, context.appId, context.version, this.trackerId);
|
|
35
|
+
this.render(logLevelRecord);
|
|
36
|
+
} catch (e: any) {
|
|
37
|
+
die(formatError(e));
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
private render(record: LogLevelRecord) {
|
|
42
|
+
if (record.trackerId) {
|
|
43
|
+
console.log(chalk.green(`install log level is currently set to ${record.logLevel}`));
|
|
44
|
+
} else {
|
|
45
|
+
console.log(chalk.green(`${this.appVersion} log level is currently set to ${record.logLevel}`));
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import * as chalk from 'chalk';
|
|
2
|
+
import {command, help, namespace, param, required, option, defaultValue} from 'oo-cli';
|
|
3
|
+
import {default as parseDuration} from 'parse-duration';
|
|
4
|
+
import {appContext} from '../../lib/AppContext';
|
|
5
|
+
import {die} from '../../lib/die';
|
|
6
|
+
import {Rivendell} from '../../lib/Rivendell';
|
|
7
|
+
import {formatError} from '../../lib/formatError';
|
|
8
|
+
import LogLevel = Rivendell.LogLevel;
|
|
9
|
+
|
|
10
|
+
@namespace('app')
|
|
11
|
+
export class SetLogLevelCommand {
|
|
12
|
+
@param
|
|
13
|
+
@required
|
|
14
|
+
@help('The App ID and version')
|
|
15
|
+
public appVersion!: string;
|
|
16
|
+
|
|
17
|
+
@param
|
|
18
|
+
@required
|
|
19
|
+
@help(`The desired logLevel to set. Possible values: ${Object.values(LogLevel).join(', ')}`)
|
|
20
|
+
public logLevel!: string;
|
|
21
|
+
|
|
22
|
+
@option('trackerId')
|
|
23
|
+
@help('The Tracker ID of the installed account. If not provided, log level is set for the app version')
|
|
24
|
+
public trackerId?: string;
|
|
25
|
+
|
|
26
|
+
@option('ttl')
|
|
27
|
+
@help('LogLevel expiration period (TTL) as relative string (i.e. "5m" for 5 minutes). Default: 2h')
|
|
28
|
+
@defaultValue('2h')
|
|
29
|
+
public timeToLive!: string;
|
|
30
|
+
|
|
31
|
+
@option('a')
|
|
32
|
+
@help('The availability zone that will be targeted (default: us)')
|
|
33
|
+
private availability: string = '';
|
|
34
|
+
|
|
35
|
+
@command('set-log-level')
|
|
36
|
+
@help('Set the logLevel of a particular app version or an installation')
|
|
37
|
+
public async setLogLevel() {
|
|
38
|
+
try {
|
|
39
|
+
const context = appContext(this.appVersion);
|
|
40
|
+
if (!context.appId || !context.version) {
|
|
41
|
+
return die('App ID and version are required');
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
const level = this.getLogLevel(this.logLevel);
|
|
45
|
+
const ttlSeconds = parseDuration(this.timeToLive, 'second');
|
|
46
|
+
if (!ttlSeconds) {
|
|
47
|
+
die(chalk.red('Invalid "--ttl" input, should be relative string (i.e. "5m" for 5 minutes.'));
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
await Rivendell.setLogLevel(
|
|
51
|
+
this.availability, context.appId, context.version, level.toString(), ttlSeconds!, this.trackerId);
|
|
52
|
+
if (this.trackerId) {
|
|
53
|
+
console.log(chalk.green(`Successfully set log level for tracker ${this.trackerId} of the app version ${this.appVersion}`));
|
|
54
|
+
} else {
|
|
55
|
+
console.log(chalk.green(`Successfully set log level for the app version ${this.appVersion}`));
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
} catch (e: any) {
|
|
59
|
+
die(formatError(e));
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
private getLogLevel(logLevel: string): LogLevel {
|
|
64
|
+
const key = logLevel.toUpperCase();
|
|
65
|
+
if (!LogLevel[key as LogLevel]) {
|
|
66
|
+
die(`${logLevel} is not a valid LogLevel`);
|
|
67
|
+
}
|
|
68
|
+
return LogLevel[key as LogLevel];
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
}
|
|
@@ -20,8 +20,7 @@ const UNPUBLISHABLE_STATES = [AppVersionState.RUNNING, AppVersionState.START_FAI
|
|
|
20
20
|
const PUBLISHABLE_STATES = [
|
|
21
21
|
AppVersionState.NEW,
|
|
22
22
|
AppVersionState.PUBLISHED,
|
|
23
|
-
AppVersionState.START_FAILED
|
|
24
|
-
AppVersionState.STOPPED
|
|
23
|
+
AppVersionState.START_FAILED
|
|
25
24
|
];
|
|
26
25
|
|
|
27
26
|
@namespace('directory')
|
|
@@ -46,19 +45,24 @@ export class PublishCommand {
|
|
|
46
45
|
console.log(chalk.gray(`Publishing ${this.appVersion} to the directory...`));
|
|
47
46
|
|
|
48
47
|
try {
|
|
49
|
-
const
|
|
48
|
+
const primaryAppVersion = await Rivendell.fetchAppVersion({appId, version}, 'us');
|
|
50
49
|
|
|
51
|
-
|
|
52
|
-
throw new Error(`AppVersion must be in a publishable state. ` +
|
|
53
|
-
`Currently: ${formatVersionState(appVersion.state as AppVersionState)}`);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
const manifest = JSON.parse(appVersion.manifestJson) as AppManifest;
|
|
50
|
+
const manifest = JSON.parse(primaryAppVersion.manifestJson) as AppManifest;
|
|
57
51
|
const shards = await applicableShards('', manifest);
|
|
58
|
-
const errors: string[] = [];
|
|
59
52
|
|
|
60
53
|
for (const shard of shards) {
|
|
61
54
|
try {
|
|
55
|
+
const appVersion = await Rivendell.fetchAppVersion({appId, version}, shard);
|
|
56
|
+
if (appVersion.state as AppVersionState === AppVersionState.RUNNING) {
|
|
57
|
+
console.log(chalk.green(`Already published in ${shard}. Skipping...`));
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
if (!PUBLISHABLE_STATES.includes(appVersion.state as AppVersionState)) {
|
|
62
|
+
throw new Error(`AppVersion must be in a publishable state. ` +
|
|
63
|
+
`Currently: ${formatVersionState(appVersion.state as AppVersionState)}`);
|
|
64
|
+
}
|
|
65
|
+
|
|
62
66
|
await Rivendell.publish(appId, version, shard);
|
|
63
67
|
console.log(chalk.green(`Success. ${this.appVersion} is being published to ${shard}.`));
|
|
64
68
|
const context = {appId, version};
|
|
@@ -66,12 +70,12 @@ export class PublishCommand {
|
|
|
66
70
|
// since we are handling the interrupt, disable the handler so we can exit
|
|
67
71
|
terminal.removeAllListeners('key');
|
|
68
72
|
} catch (error: any) {
|
|
69
|
-
|
|
73
|
+
console.error(chalk.red(`Error publishing in shard ${shard}: ${formatError(error)}`));
|
|
74
|
+
if (shards[shards.length - 1] !== shard && !await TerminalConfirm.ask('Continue with other shards?')) {
|
|
75
|
+
break;
|
|
76
|
+
}
|
|
70
77
|
}
|
|
71
78
|
}
|
|
72
|
-
if (errors.length) {
|
|
73
|
-
console.error(chalk.red(errors.join('\n')));
|
|
74
|
-
}
|
|
75
79
|
|
|
76
80
|
const pre = prerelease(version);
|
|
77
81
|
if (pre && pre[0] !== 'dev') {
|
|
@@ -13,6 +13,7 @@ import AppInstallation = Rivendell.AppInstallation;
|
|
|
13
13
|
import {formatError} from '../../lib/formatError';
|
|
14
14
|
import {applicableShards} from '../../lib/Shards';
|
|
15
15
|
import { AppManifest } from '@zaiusinc/app-sdk';
|
|
16
|
+
import {TerminalConfirm} from '../../lib/TerminalConfirm';
|
|
16
17
|
|
|
17
18
|
const UNPUBLISHABLE_STATES = [AppVersionState.RUNNING, AppVersionState.START_FAILED, AppVersionState.STOP_FAILED];
|
|
18
19
|
|
|
@@ -47,13 +48,18 @@ export class UnpublishCommand {
|
|
|
47
48
|
const appVersion = await Rivendell.fetchAppVersion({appId, version}, 'us');
|
|
48
49
|
|
|
49
50
|
if (!UNPUBLISHABLE_STATES.includes(appVersion.state as AppVersionState)) {
|
|
50
|
-
throw new Error(`AppVersion must be in an unpublishable state. ` +
|
|
51
|
+
throw new Error(`AppVersion must be in an unpublishable state in the primary shard. ` +
|
|
51
52
|
`Currently: ${formatVersionState(appVersion.state as AppVersionState)}`);
|
|
52
53
|
}
|
|
53
54
|
|
|
54
55
|
const manifest = JSON.parse(appVersion.manifestJson) as AppManifest;
|
|
55
56
|
const shards = await applicableShards(this.availability, manifest);
|
|
56
|
-
|
|
57
|
+
|
|
58
|
+
if (!(await TerminalConfirm.ask(
|
|
59
|
+
chalk.red('Unpublishing is not reversible. Are you sure you want to unpublish? [y/n]'))
|
|
60
|
+
)) {
|
|
61
|
+
die('Operation cancelled.');
|
|
62
|
+
}
|
|
57
63
|
|
|
58
64
|
for (const shard of shards) {
|
|
59
65
|
if (!(await this.uninstallEverywhere(appId, version, shard))) {
|
|
@@ -64,14 +70,12 @@ export class UnpublishCommand {
|
|
|
64
70
|
console.log(chalk.green(`${this.appVersion} is being unpublished in ${shard}.`));
|
|
65
71
|
await this.watchForCompletion({appId, version}, shard);
|
|
66
72
|
} catch (error: any) {
|
|
67
|
-
|
|
73
|
+
console.error(chalk.red(`Error unpublishing in shard ${shard}: ${formatError(error)}`));
|
|
74
|
+
if (shards[shards.length - 1] !== shard && !await TerminalConfirm.ask('Continue with other shards?')) {
|
|
75
|
+
break;
|
|
76
|
+
}
|
|
68
77
|
}
|
|
69
78
|
}
|
|
70
|
-
|
|
71
|
-
if (errors.length) {
|
|
72
|
-
console.log(chalk.red(errors.join('\n')));
|
|
73
|
-
}
|
|
74
|
-
|
|
75
79
|
} catch (e: any) {
|
|
76
80
|
die(formatError(e));
|
|
77
81
|
}
|
package/src/lib/Rivendell.ts
CHANGED
|
@@ -61,6 +61,14 @@ export namespace Rivendell {
|
|
|
61
61
|
RECURRING = 'RECURRING'
|
|
62
62
|
}
|
|
63
63
|
|
|
64
|
+
export enum LogLevel {
|
|
65
|
+
DEBUG = 'DEBUG',
|
|
66
|
+
INFO = 'INFO',
|
|
67
|
+
WARN = 'WARN',
|
|
68
|
+
ERROR = 'ERROR',
|
|
69
|
+
NEVER = 'NEVER'
|
|
70
|
+
}
|
|
71
|
+
|
|
64
72
|
export interface AppVersionId {
|
|
65
73
|
appId: string;
|
|
66
74
|
version: string;
|
|
@@ -246,6 +254,13 @@ export namespace Rivendell {
|
|
|
246
254
|
live: boolean;
|
|
247
255
|
}
|
|
248
256
|
|
|
257
|
+
export interface LogLevelRecord {
|
|
258
|
+
appId: string;
|
|
259
|
+
version: string;
|
|
260
|
+
trackerId?: string;
|
|
261
|
+
logLevel: string;
|
|
262
|
+
}
|
|
263
|
+
|
|
249
264
|
export interface JwtResponse {
|
|
250
265
|
jwt: string;
|
|
251
266
|
}
|
|
@@ -455,6 +470,34 @@ export namespace Rivendell {
|
|
|
455
470
|
await RivendellApi.request('PATCH', path(shard, `versions/${appId}@${version}`), {state: AppVersionState.STOPPED});
|
|
456
471
|
}
|
|
457
472
|
|
|
473
|
+
/**
|
|
474
|
+
* Set logLevel of an app version or an installation
|
|
475
|
+
*/
|
|
476
|
+
export async function setLogLevel(
|
|
477
|
+
shard: string,
|
|
478
|
+
appId: string,
|
|
479
|
+
version: string,
|
|
480
|
+
logLevel: string,
|
|
481
|
+
timeToLive: number,
|
|
482
|
+
trackerId?: string
|
|
483
|
+
): Promise<void> {
|
|
484
|
+
await RivendellApi.put(path(shard, `runtime-config/log-levels`), {appId, version, trackerId, logLevel, timeToLive});
|
|
485
|
+
}
|
|
486
|
+
|
|
487
|
+
/**
|
|
488
|
+
* Get logLevel of an app version or an installation
|
|
489
|
+
*/
|
|
490
|
+
export async function getLogLevel(
|
|
491
|
+
shard: string,
|
|
492
|
+
appId: string,
|
|
493
|
+
version: string,
|
|
494
|
+
trackerId?: string
|
|
495
|
+
): Promise<LogLevelRecord> {
|
|
496
|
+
const response = await RivendellApi.post<LogLevelRecord>(
|
|
497
|
+
path(shard, `runtime-config/log-levels/search`), {appId, version, trackerId});
|
|
498
|
+
return response.body;
|
|
499
|
+
}
|
|
500
|
+
|
|
458
501
|
/**
|
|
459
502
|
* Fetch a build by id.
|
|
460
503
|
*/
|