@optimizely/ocp-cli 1.1.10 → 1.2.1-beta.0

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.
@@ -0,0 +1,5 @@
1
+ export declare class AbandonCommand {
2
+ appVersion: string;
3
+ noPrompt: boolean;
4
+ abandon(): Promise<void>;
5
+ }
@@ -0,0 +1,133 @@
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.AbandonCommand = void 0;
10
+ const oo_cli_1 = require("oo-cli");
11
+ const handleInterrupt_1 = require("../../lib/handleInterrupt");
12
+ const die_1 = require("../../lib/die");
13
+ const chalk = require("chalk");
14
+ const Rivendell_1 = require("../../lib/Rivendell");
15
+ const Shards_1 = require("../../lib/Shards");
16
+ const formatError_1 = require("../../lib/formatError");
17
+ const TerminalConfirm_1 = require("../../lib/TerminalConfirm");
18
+ const RivendellApi_1 = require("../../lib/RivendellApi");
19
+ var AppVersionState = Rivendell_1.Rivendell.AppVersionState;
20
+ var ApiError = RivendellApi_1.RivendellApi.ApiError;
21
+ const http2_1 = require("http2");
22
+ const ABANDONABLE_STATES = [
23
+ AppVersionState.NEW,
24
+ AppVersionState.BUILD_FAILED,
25
+ AppVersionState.PUBLISHED
26
+ ];
27
+ let AbandonCommand = class AbandonCommand {
28
+ constructor() {
29
+ this.noPrompt = false;
30
+ }
31
+ async abandon() {
32
+ var _a;
33
+ (0, handleInterrupt_1.handleInterrupt)();
34
+ if (!/[\w-]+@\d+\.\d+\.\d+(?:-\w+\.\d+)?/.test(this.appVersion)) {
35
+ (0, die_1.die)('appVersion is required in the format of app@1.0.0');
36
+ }
37
+ if (!await TerminalConfirm_1.TerminalConfirm.ask(chalk.red('Abandoning is not reversible. Are you sure you want to abandon? [y/n]'), this.noPrompt, true)) {
38
+ (0, die_1.die)('Operation cancelled.');
39
+ }
40
+ const [appId, version] = this.appVersion.split('@');
41
+ console.log(chalk.gray(`Abandoning version ${this.appVersion} ...`));
42
+ try {
43
+ const primaryAppVersion = await Rivendell_1.Rivendell.fetchAppVersion({ appId, version }, 'us');
44
+ let manifest;
45
+ if (primaryAppVersion && primaryAppVersion.manifestJson) {
46
+ manifest = JSON.parse(primaryAppVersion.manifestJson);
47
+ }
48
+ let shards;
49
+ if (manifest && manifest.meta) {
50
+ shards = await (0, Shards_1.shardsFromManifest)(manifest);
51
+ }
52
+ else {
53
+ shards = ['us'];
54
+ }
55
+ let abandonable = false;
56
+ const appVersionStates = new Map();
57
+ for (const shard of shards) {
58
+ try {
59
+ const appVersion = await Rivendell_1.Rivendell.fetchAppVersion({ appId, version }, shard);
60
+ if (ABANDONABLE_STATES.includes(appVersion.state)) {
61
+ abandonable = true;
62
+ }
63
+ else if (appVersion.state !== AppVersionState.ABANDONED) {
64
+ console.error(chalk.red(`AppVersion must be in a abandonable state in all regions. Exiting..`));
65
+ return;
66
+ }
67
+ appVersionStates.set(shard, appVersion.state);
68
+ }
69
+ catch (error) {
70
+ if (error instanceof ApiError && ((_a = error.response) === null || _a === void 0 ? void 0 : _a.status) === http2_1.constants.HTTP_STATUS_NOT_FOUND) {
71
+ console.error(chalk.red(`Could not locate the appVersion in region: ${shard}.`));
72
+ if (!await TerminalConfirm_1.TerminalConfirm.ask('Continue with other regions?', this.noPrompt, true)) {
73
+ (0, die_1.die)('Operation cancelled.');
74
+ }
75
+ }
76
+ else {
77
+ throw error;
78
+ }
79
+ }
80
+ }
81
+ if (!abandonable) {
82
+ console.log(chalk.yellow(`AppVersion is already in a abandoned state in all regions. Exiting..`));
83
+ return;
84
+ }
85
+ if (!shards.includes('us')) {
86
+ try {
87
+ await Rivendell_1.Rivendell.abandon(appId, version, 'us');
88
+ }
89
+ catch (error) {
90
+ console.error(chalk.red(`Failed to abandon in the primary region, error ${(0, formatError_1.formatError)(error)}`));
91
+ return;
92
+ }
93
+ }
94
+ for (const shard of shards) {
95
+ try {
96
+ if (!appVersionStates.get(shard))
97
+ continue;
98
+ const appVersionState = appVersionStates.get(shard);
99
+ if (appVersionState === AppVersionState.ABANDONED) {
100
+ console.log(chalk.yellow(`Already abandoned in region ${shard}. Skipping...`));
101
+ continue;
102
+ }
103
+ await Rivendell_1.Rivendell.abandon(appId, version, shard);
104
+ console.log(chalk.green(`Abandon completed in region ${shard}`));
105
+ }
106
+ catch (error) {
107
+ (0, die_1.die)(`Failed to abandon in region ${shard}, error: ${(0, formatError_1.formatError)(error)}. Exiting...`);
108
+ }
109
+ }
110
+ console.log(chalk.green('Abandon completed in all regions'));
111
+ }
112
+ catch (error) {
113
+ console.error(chalk.red(`Error while abandoning ${(0, formatError_1.formatError)(error)}`));
114
+ }
115
+ }
116
+ };
117
+ __decorate([
118
+ oo_cli_1.param,
119
+ (0, oo_cli_1.help)('The App ID and version (e.g. my_app@1.0.0)')
120
+ ], AbandonCommand.prototype, "appVersion", void 0);
121
+ __decorate([
122
+ (0, oo_cli_1.flag)('no-prompt'),
123
+ (0, oo_cli_1.help)('Use default answer to any prompt question (default is yes, except for destructive operations)')
124
+ ], AbandonCommand.prototype, "noPrompt", void 0);
125
+ __decorate([
126
+ oo_cli_1.command,
127
+ (0, oo_cli_1.help)('Abandon (cease processing) a specific app version that has not been published yet')
128
+ ], AbandonCommand.prototype, "abandon", null);
129
+ AbandonCommand = __decorate([
130
+ (0, oo_cli_1.namespace)('app')
131
+ ], AbandonCommand);
132
+ exports.AbandonCommand = AbandonCommand;
133
+ //# sourceMappingURL=Abandon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Abandon.js","sourceRoot":"","sources":["../../../src/commands/app/Abandon.ts"],"names":[],"mappings":"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"}
@@ -41,7 +41,8 @@ let ListCommand = class ListCommand {
41
41
  render(appVersions) {
42
42
  const header = ['App ID', 'Version', 'State', 'Created At', 'Updated At'].map((item) => chalk.grey(item));
43
43
  const rows = appVersions
44
- .filter((appVersion) => this.allStatuses || appVersion.state !== AppVersionState.STOPPED)
44
+ .filter((appVersion) => this.allStatuses || (appVersion.state !== AppVersionState.STOPPED
45
+ && appVersion.state !== AppVersionState.ABANDONED))
45
46
  .sort((lhs, rhs) => {
46
47
  let result = lhs.id.appId.localeCompare(rhs.id.appId);
47
48
  if (result === 0) {
@@ -85,7 +86,7 @@ __decorate([
85
86
  ], ListCommand.prototype, "appId", void 0);
86
87
  __decorate([
87
88
  oo_cli_1.flag,
88
- (0, oo_cli_1.help)('Include all statuses. STOPPED is filtered by default')
89
+ (0, oo_cli_1.help)('Include all statuses. STOPPED and ABANDONED is filtered by default')
89
90
  ], ListCommand.prototype, "allStatuses", void 0);
90
91
  __decorate([
91
92
  (0, oo_cli_1.option)('a'),
@@ -1 +1 @@
1
- {"version":3,"file":"List.js","sourceRoot":"","sources":["../../../src/commands/directory/List.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"List.js","sourceRoot":"","sources":["../../../src/commands/directory/List.ts"],"names":[],"mappings":";;;;;;;;;AAAA,+BAA+B;AAC/B,mCAA+E;AAC/E,iCAAiC;AACjC,oCAAoC;AACpC,uCAAkC;AAClC,qEAAgE;AAChE,uDAAyD;AACzD,mDAA8C;AAC9C,uDAAkD;AAElD,IAAO,eAAe,GAAG,qBAAS,CAAC,eAAe,CAAC;AACnD,IAAO,eAAe,GAAG,qBAAS,CAAC,eAAe,CAAC;AAEnD,IAAO,YAAY,GAAG,qBAAS,CAAC,YAAY,CAAC;AAGtC,IAAM,WAAW,GAAjB,MAAM,WAAW;IAAjB;QAQG,gBAAW,GAAY,KAAK,CAAC;QAI7B,iBAAY,GAAW,EAAE,CAAC;IAoElC,CAAC;IAhEY,AAAN,KAAK,CAAC,IAAI;QACf,IAAI;YACF,MAAM,QAAQ,GAA6B;gBACzC,MAAM,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE,eAAe,CAAC,UAAU,CAAC;aAC3D,CAAC;YAEF,IAAI,IAAI,CAAC,KAAK,EAAE;gBACd,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;aAC7B;YACD,IAAI,CAAC,MAAM,CAAC,MAAM,qBAAS,CAAC,iBAAiB,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;SAC7E;QAAC,OAAO,CAAM,EAAE;YACf,IAAA,SAAG,EAAC,IAAA,yBAAW,EAAC,CAAC,CAAC,CAAC,CAAC;SACrB;IACH,CAAC;IAEO,MAAM,CAAC,WAAyB;QACpC,MAAM,MAAM,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC,GAAG,CAC3E,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAC3B,CAAC;QACF,MAAM,IAAI,GAAG,WAAW;aACrB,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CACrB,IAAI,CAAC,WAAW,IAAI,CAAC,UAAU,CAAC,KAAwB,KAAK,eAAe,CAAC,OAAO;eAC/E,UAAU,CAAC,KAAK,KAAK,eAAe,CAAC,SAAS,CAAC,CACrD;aACA,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACjB,IAAI,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;YACtD,IAAI,MAAM,KAAK,CAAC,EAAE;gBAChB,MAAM,UAAU,GAAG,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC;gBAClC,MAAM,UAAU,GAAG,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC;gBAClC,IAAI,UAAU,KAAK,UAAU,EAAE;oBAC7B,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBACrD;aACF;YACD,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;aACD,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC;YACnB,UAAU,CAAC,EAAE,CAAC,KAAK;YACnB,UAAU,CAAC,EAAE,CAAC,OAAO;YACrB,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;YAC5B,UAAU,CAAC,SAAS;YACpB,UAAU,CAAC,SAAS;SACrB,CAAC,CAAC;QAEL,MAAM,CAAC,GAAG,KAAK,CACb;YACE,MAAM;YACN,GAAG,IAAI;SACR,EACD;YACE,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;YACnB,YAAY,EAAE,gCAAkB;SACjC,CACF,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAEO,WAAW,CAAC,UAAsB;QACxC,MAAM,KAAK,GAAG,UAAU,CAAC,KAAwB,CAAC;QAClD,MAAM,YAAY,GAAG,UAAU,CAAC,YAAsC,CAAC;QACvE,MAAM,mBAAmB,GAAG,YAAY,KAAK,YAAY,CAAC,QAAQ,IAAI,YAAY,KAAK,YAAY,CAAC,SAAS,CAAC;QAC9G,OAAO,KAAK,KAAK,eAAe,CAAC,SAAS,IAAI,mBAAmB;YAC/D,CAAC,CAAC,GAAG,IAAA,uCAAkB,EAAC,KAAK,CAAC,KAAK,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG;YAChE,CAAC,CAAC,IAAA,uCAAkB,EAAC,KAAK,CAAC,CAAC;IAChC,CAAC;CACF,CAAA;AA5ED;IAHC,cAAK;IACL,iBAAQ;IACR,IAAA,aAAI,EAAC,iEAAiE,CAAC;0CACjD;AAIvB;IAFC,aAAI;IACJ,IAAA,aAAI,EAAC,qEAAqE,CAAC;gDACvC;AAIrC;IAFC,IAAA,eAAM,EAAC,GAAG,CAAC;IACX,IAAA,aAAI,EAAC,2DAA2D,CAAC;iDAChC;AAIrB;IAFZ,gBAAO;IACP,IAAA,aAAI,EAAC,8BAA8B,CAAC;uCAcpC;AA7BU,WAAW;IADvB,IAAA,kBAAS,EAAC,WAAW,CAAC;GACV,WAAW,CAgFrB;AAhFU,kCAAW"}
@@ -29,9 +29,9 @@ let UpgradeCommand = class UpgradeCommand {
29
29
  console.log(chalk.yellow(`${this.trackerId} is currently at ${this.appId}@${install.version} in ${shard}.`));
30
30
  }
31
31
  else {
32
- await Rivendell_1.Rivendell.upgrade(install.id, this.appId, this.toVersion, shard);
32
+ const result = await Rivendell_1.Rivendell.upgrade(install.id, this.appId, this.toVersion, shard);
33
33
  console.log(`Upgrading ${this.appId} for ${this.trackerId} to ${this.toVersion} in ${shard}`);
34
- await this.watchForCompletion(shard);
34
+ await this.watchForCompletion(shard, result.id);
35
35
  console.log(chalk.green(`Upgraded ${this.trackerId} to ${this.appId}@${this.toVersion} in ${shard}.`));
36
36
  terminal_kit_1.terminal.removeAllListeners('key');
37
37
  }
@@ -40,7 +40,7 @@ let UpgradeCommand = class UpgradeCommand {
40
40
  (0, die_1.die)((0, formatError_1.formatError)(e));
41
41
  }
42
42
  }
43
- watchForCompletion(shard) {
43
+ watchForCompletion(shard, upgradeId) {
44
44
  console.log(chalk.gray(`Upgrade was scheduled in ${shard}, watching for completion... CTRL+C to stop checking.`));
45
45
  return new Promise((resolve, reject) => {
46
46
  let attempts = 0;
@@ -48,14 +48,22 @@ let UpgradeCommand = class UpgradeCommand {
48
48
  const spinner = new TerminalSpinner_1.TerminalSpinner().start('');
49
49
  const checkUpgrade = () => {
50
50
  attempts++;
51
- Rivendell_1.Rivendell.fetchAppInstallation(this.appId, this.trackerId, shard)
52
- .then((install) => {
53
- if (install.version === this.toVersion) {
51
+ Rivendell_1.Rivendell.fetchUpgrade(upgradeId, shard)
52
+ .then((upgrade) => {
53
+ spinner.update(`Upgrade status: ${upgrade.status.toString().replace('_', ' ').toLowerCase()}`);
54
+ if (upgrade.status === Rivendell_1.Rivendell.UpgradeStatus.COMPLETE) {
54
55
  clearInterval(interval);
55
56
  spinner.stop();
56
57
  resolve();
57
58
  }
58
59
  else {
60
+ if (upgrade.status === Rivendell_1.Rivendell.UpgradeStatus.FINALIZING_LIFECYCLE_FAILED.toString() ||
61
+ upgrade.status === Rivendell_1.Rivendell.UpgradeStatus.UPDATING_WEBHOOKS_FAILED.toString() ||
62
+ upgrade.status === Rivendell_1.Rivendell.UpgradeStatus.UPGRADING_LIFECYCLE_FAILED.toString()) {
63
+ clearInterval(interval);
64
+ spinner.stop();
65
+ (0, die_1.die)(`Upgrade failed with status ${upgrade.status}: ${upgrade.message}`);
66
+ }
59
67
  if (attempts > 300) {
60
68
  clearInterval(interval);
61
69
  spinner.stop();
@@ -1 +1 @@
1
- {"version":3,"file":"Uprade.js","sourceRoot":"","sources":["../../../src/commands/directory/Uprade.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Uprade.js","sourceRoot":"","sources":["../../../src/commands/directory/Uprade.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,8 @@ export declare namespace Rivendell {
11
11
  UPGRADING_RUNTIME = "UPGRADING_RUNTIME",
12
12
  STOPPING = "STOPPING",
13
13
  STOP_FAILED = "STOP_FAILED",
14
- STOPPED = "STOPPED"
14
+ STOPPED = "STOPPED",
15
+ ABANDONED = "ABANDONED"
15
16
  }
16
17
  enum ReviewStatus {
17
18
  NOT_STARTED = "NOT_STARTED",
@@ -184,6 +185,21 @@ export declare namespace Rivendell {
184
185
  start?: number;
185
186
  end?: number;
186
187
  }
188
+ interface Upgrade {
189
+ id: number;
190
+ status: UpgradeStatus;
191
+ message?: string;
192
+ }
193
+ enum UpgradeStatus {
194
+ SCHEDULED = "SCHEDULED",
195
+ UPGRADING_LIFECYCLE = "UPGRADING_LIFECYLES",
196
+ UPGRADING_LIFECYCLE_FAILED = "UPGRADING_LIFECYCLE_FAILED",
197
+ UPDATING_WEBHOOKS = "UPDATING_WEBHOOKS",
198
+ UPDATING_WEBHOOKS_FAILED = "UPGRADING_LIFECYCLE_FAILED",
199
+ FINALIZING_LIFECYCLE = "FINALIZING_LIFECYCLE",
200
+ FINALIZING_LIFECYCLE_FAILED = "FINALIZING_LIFECYCLE_FAILED",
201
+ COMPLETE = "COMPLETE"
202
+ }
187
203
  interface AppReview {
188
204
  url: string;
189
205
  }
@@ -321,7 +337,8 @@ export declare namespace Rivendell {
321
337
  /**
322
338
  * Request an upgrade.
323
339
  */
324
- function upgrade(appInstallationId: number, appId: string, version: string, shard: string): Promise<void>;
340
+ function upgrade(appInstallationId: number, appId: string, version: string, shard: string): Promise<Upgrade>;
341
+ function fetchUpgrade(upgradeId: number, shard: string): Promise<Upgrade>;
325
342
  /**
326
343
  * Trigger a publish.
327
344
  */
@@ -330,6 +347,10 @@ export declare namespace Rivendell {
330
347
  * Trigger a unpublish.
331
348
  */
332
349
  function unpublish(appId: string, version: string, shard: string): Promise<void>;
350
+ /**
351
+ * Trigger a abandon.
352
+ */
353
+ function abandon(appId: string, version: string, shard: string): Promise<void>;
333
354
  /**
334
355
  * Set logLevel of an app version or an installation
335
356
  */
@@ -16,6 +16,7 @@ var Rivendell;
16
16
  AppVersionState["STOPPING"] = "STOPPING";
17
17
  AppVersionState["STOP_FAILED"] = "STOP_FAILED";
18
18
  AppVersionState["STOPPED"] = "STOPPED";
19
+ AppVersionState["ABANDONED"] = "ABANDONED";
19
20
  })(AppVersionState = Rivendell.AppVersionState || (Rivendell.AppVersionState = {}));
20
21
  let ReviewStatus;
21
22
  (function (ReviewStatus) {
@@ -76,6 +77,17 @@ var Rivendell;
76
77
  InstallationResolutionType["QUERY_PARAM"] = "QUERY_PARAM";
77
78
  InstallationResolutionType["JSON_BODY_FIELD"] = "JSON_BODY_FIELD";
78
79
  })(InstallationResolutionType = Rivendell.InstallationResolutionType || (Rivendell.InstallationResolutionType = {}));
80
+ let UpgradeStatus;
81
+ (function (UpgradeStatus) {
82
+ UpgradeStatus["SCHEDULED"] = "SCHEDULED";
83
+ UpgradeStatus["UPGRADING_LIFECYCLE"] = "UPGRADING_LIFECYLES";
84
+ UpgradeStatus["UPGRADING_LIFECYCLE_FAILED"] = "UPGRADING_LIFECYCLE_FAILED";
85
+ UpgradeStatus["UPDATING_WEBHOOKS"] = "UPDATING_WEBHOOKS";
86
+ UpgradeStatus["UPDATING_WEBHOOKS_FAILED"] = "UPGRADING_LIFECYCLE_FAILED";
87
+ UpgradeStatus["FINALIZING_LIFECYCLE"] = "FINALIZING_LIFECYCLE";
88
+ UpgradeStatus["FINALIZING_LIFECYCLE_FAILED"] = "FINALIZING_LIFECYCLE_FAILED";
89
+ UpgradeStatus["COMPLETE"] = "COMPLETE";
90
+ })(UpgradeStatus = Rivendell.UpgradeStatus || (Rivendell.UpgradeStatus = {}));
79
91
  let SortDirection;
80
92
  (function (SortDirection) {
81
93
  SortDirection["ASC"] = "ASC";
@@ -225,9 +237,15 @@ var Rivendell;
225
237
  * Request an upgrade.
226
238
  */
227
239
  async function upgrade(appInstallationId, appId, version, shard) {
228
- await RivendellApi_1.RivendellApi.put(path(shard, `installations/${appInstallationId}`), { appId, version });
240
+ const response = await RivendellApi_1.RivendellApi.put(path(shard, `installations/${appInstallationId}`), { appId, version });
241
+ return response.body;
229
242
  }
230
243
  Rivendell.upgrade = upgrade;
244
+ async function fetchUpgrade(upgradeId, shard) {
245
+ const response = await RivendellApi_1.RivendellApi.get(path(shard, `upgrades/${upgradeId}`));
246
+ return response.body;
247
+ }
248
+ Rivendell.fetchUpgrade = fetchUpgrade;
231
249
  /**
232
250
  * Trigger a publish.
233
251
  */
@@ -242,6 +260,13 @@ var Rivendell;
242
260
  await RivendellApi_1.RivendellApi.request('PATCH', path(shard, `versions/${appId}@${version}`), { state: AppVersionState.STOPPED });
243
261
  }
244
262
  Rivendell.unpublish = unpublish;
263
+ /**
264
+ * Trigger a abandon.
265
+ */
266
+ async function abandon(appId, version, shard) {
267
+ await RivendellApi_1.RivendellApi.request('PATCH', path(shard, `versions/${appId}@${version}`), { state: AppVersionState.ABANDONED });
268
+ }
269
+ Rivendell.abandon = abandon;
245
270
  /**
246
271
  * Set logLevel of an app version or an installation
247
272
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Rivendell.js","sourceRoot":"","sources":["../../src/lib/Rivendell.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Rivendell.js","sourceRoot":"","sources":["../../src/lib/Rivendell.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
1
  import { AppManifest } from '@zaiusinc/app-sdk';
2
2
  export declare function applicableShards(availability?: string, fromManifest?: AppManifest): Promise<string[]>;
3
+ export declare function shardsFromManifest(fromManifest: AppManifest): Promise<string[]>;
3
4
  export declare function targetShards(): Promise<string[]>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.targetShards = exports.applicableShards = void 0;
3
+ exports.targetShards = exports.shardsFromManifest = exports.applicableShards = void 0;
4
4
  const AppContext_1 = require("./AppContext");
5
5
  const Config_1 = require("./Config");
6
6
  const Rivendell_1 = require("./Rivendell");
@@ -15,6 +15,10 @@ async function applicableShards(availability = '', fromManifest) {
15
15
  return resolveShards(manifest);
16
16
  }
17
17
  exports.applicableShards = applicableShards;
18
+ async function shardsFromManifest(fromManifest) {
19
+ return resolveShards(fromManifest);
20
+ }
21
+ exports.shardsFromManifest = shardsFromManifest;
18
22
  async function targetShards() {
19
23
  return await resolveShards((0, AppContext_1.readAppYaml)());
20
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Shards.js","sourceRoot":"","sources":["../../src/lib/Shards.ts"],"names":[],"mappings":";;;AACA,6CAA2C;AAC3C,qCAAkC;AAClC,2CAAwC;AAEjC,KAAK,UAAU,gBAAgB,CAAC,YAAY,GAAG,EAAE,EAAE,YAA0B;IAClF,IAAI,IAAA,eAAM,GAAE,KAAK,SAAS,EAAE;QAC1B,OAAO,CAAC,IAAI,CAAC,CAAC;KACf;IAED,IAAI,YAAY,EAAE;QAChB,OAAO,CAAC,YAAY,CAAC,CAAC;KACvB;IAED,MAAM,QAAQ,GAAG,YAAY,IAAI,IAAA,wBAAW,GAAE,CAAC;IAC/C,OAAO,aAAa,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC;AAXD,4CAWC;AAEM,KAAK,UAAU,YAAY;IAChC,OAAO,MAAM,aAAa,CAAC,IAAA,wBAAW,GAAE,CAAC,CAAC;AAC5C,CAAC;AAFD,oCAEC;AAED,KAAK,UAAU,aAAa,CAAC,QAAqB;IAChD,IAAI,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,CAAC;IAClD,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;QAC1B,MAAM,GAAG,CAAC,MAAM,qBAAS,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;KACtD;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAC1B,IAAI,CAAC,KAAK,IAAI,EAAE;YACd,OAAO,CAAC,CAAC,CAAC;SACX;QAED,IAAI,CAAC,KAAK,IAAI,EAAE;YACd,OAAO,CAAC,CAAC;SACV;QAED,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"Shards.js","sourceRoot":"","sources":["../../src/lib/Shards.ts"],"names":[],"mappings":";;;AACA,6CAA2C;AAC3C,qCAAkC;AAClC,2CAAwC;AAEjC,KAAK,UAAU,gBAAgB,CAAC,YAAY,GAAG,EAAE,EAAE,YAA0B;IAClF,IAAI,IAAA,eAAM,GAAE,KAAK,SAAS,EAAE;QAC1B,OAAO,CAAC,IAAI,CAAC,CAAC;KACf;IAED,IAAI,YAAY,EAAE;QAChB,OAAO,CAAC,YAAY,CAAC,CAAC;KACvB;IAED,MAAM,QAAQ,GAAG,YAAY,IAAI,IAAA,wBAAW,GAAE,CAAC;IAC/C,OAAO,aAAa,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC;AAXD,4CAWC;AAEM,KAAK,UAAU,kBAAkB,CAAC,YAAyB;IAChE,OAAO,aAAa,CAAC,YAAY,CAAC,CAAC;AACrC,CAAC;AAFD,gDAEC;AAEM,KAAK,UAAU,YAAY;IAChC,OAAO,MAAM,aAAa,CAAC,IAAA,wBAAW,GAAE,CAAC,CAAC;AAC5C,CAAC;AAFD,oCAEC;AAED,KAAK,UAAU,aAAa,CAAC,QAAqB;IAChD,IAAI,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,CAAC;IAClD,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;QAC1B,MAAM,GAAG,CAAC,MAAM,qBAAS,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;KACtD;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAC1B,IAAI,CAAC,KAAK,IAAI,EAAE;YACd,OAAO,CAAC,CAAC,CAAC;SACX;QAED,IAAI,CAAC,KAAK,IAAI,EAAE;YACd,OAAO,CAAC,CAAC;SACV;QAED,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -25,6 +25,8 @@ function formatVersionState(state) {
25
25
  return chalk.red('UNPUBLISHED');
26
26
  case Rivendell_1.Rivendell.AppVersionState.UPGRADING_RUNTIME:
27
27
  return chalk.yellow('UPGRADING_RUNTIME');
28
+ case Rivendell_1.Rivendell.AppVersionState.ABANDONED:
29
+ return chalk.gray('ABANDONED');
28
30
  default: {
29
31
  console.error(chalk.red(`Unrecognized AppVersionState ${state} `));
30
32
  return chalk.red('UNKNOWN');
@@ -1 +1 @@
1
- {"version":3,"file":"formatVersionState.js","sourceRoot":"","sources":["../../src/lib/formatVersionState.ts"],"names":[],"mappings":";;;AAAA,+BAA+B;AAC/B,2CAAsC;AAEtC,SAAgB,kBAAkB,CAAC,KAAgC;IACjE,QAAQ,KAAK,EAAE;QACb,KAAK,qBAAS,CAAC,eAAe,CAAC,GAAG;YAChC,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7B,KAAK,qBAAS,CAAC,eAAe,CAAC,SAAS;YACtC,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC/B,KAAK,qBAAS,CAAC,eAAe,CAAC,YAAY;YACzC,OAAO,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACnC,KAAK,qBAAS,CAAC,eAAe,CAAC,QAAQ;YACrC,OAAO,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACpC,KAAK,qBAAS,CAAC,eAAe,CAAC,YAAY;YACzC,OAAO,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QACxC,KAAK,qBAAS,CAAC,eAAe,CAAC,OAAO;YACpC,OAAO,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAClC,KAAK,qBAAS,CAAC,eAAe,CAAC,QAAQ;YACrC,OAAO,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QACtC,KAAK,qBAAS,CAAC,eAAe,CAAC,WAAW;YACxC,OAAO,KAAK,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QAC1C,KAAK,qBAAS,CAAC,eAAe,CAAC,OAAO;YACpC,OAAO,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAClC,KAAK,qBAAS,CAAC,eAAe,CAAC,iBAAiB;YAC9C,OAAO,KAAK,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;QAC3C,OAAO,CAAC,CAAC;YACP,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,gCAAgC,KAAK,GAAG,CAAC,CAAC,CAAC;YACnE,OAAO,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;SAC7B;KACF;AACH,CAAC;AA3BD,gDA2BC"}
1
+ {"version":3,"file":"formatVersionState.js","sourceRoot":"","sources":["../../src/lib/formatVersionState.ts"],"names":[],"mappings":";;;AAAA,+BAA+B;AAC/B,2CAAsC;AAEtC,SAAgB,kBAAkB,CAAC,KAAgC;IACjE,QAAQ,KAAK,EAAE;QACb,KAAK,qBAAS,CAAC,eAAe,CAAC,GAAG;YAChC,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7B,KAAK,qBAAS,CAAC,eAAe,CAAC,SAAS;YACtC,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC/B,KAAK,qBAAS,CAAC,eAAe,CAAC,YAAY;YACzC,OAAO,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACnC,KAAK,qBAAS,CAAC,eAAe,CAAC,QAAQ;YACrC,OAAO,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACpC,KAAK,qBAAS,CAAC,eAAe,CAAC,YAAY;YACzC,OAAO,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QACxC,KAAK,qBAAS,CAAC,eAAe,CAAC,OAAO;YACpC,OAAO,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAClC,KAAK,qBAAS,CAAC,eAAe,CAAC,QAAQ;YACrC,OAAO,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QACtC,KAAK,qBAAS,CAAC,eAAe,CAAC,WAAW;YACxC,OAAO,KAAK,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QAC1C,KAAK,qBAAS,CAAC,eAAe,CAAC,OAAO;YACpC,OAAO,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAClC,KAAK,qBAAS,CAAC,eAAe,CAAC,iBAAiB;YAC9C,OAAO,KAAK,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;QAC3C,KAAK,qBAAS,CAAC,eAAe,CAAC,SAAS;YACtC,OAAO,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACjC,OAAO,CAAC,CAAC;YACP,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,gCAAgC,KAAK,GAAG,CAAC,CAAC,CAAC;YACnE,OAAO,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;SAC7B;KACF;AACH,CAAC;AA7BD,gDA6BC"}
@@ -51,6 +51,38 @@
51
51
  "app": {
52
52
  "namespaces": {},
53
53
  "commands": [
54
+ {
55
+ "path": "commands/app/Abandon.js",
56
+ "className": "AbandonCommand",
57
+ "key": "abandon",
58
+ "command": "abandon",
59
+ "aliases": [],
60
+ "help": "Abandon (cease processing) a specific app version that has not been published yet",
61
+ "documentation": "TBD",
62
+ "flags": [
63
+ {
64
+ "name": "noPrompt",
65
+ "key": "noPrompt",
66
+ "aliases": [
67
+ "no-prompt"
68
+ ],
69
+ "invertedAliases": [],
70
+ "help": "Use default answer to any prompt question (default is yes, except for destructive operations)",
71
+ "defaultValue": false,
72
+ "invertible": false
73
+ }
74
+ ],
75
+ "options": [],
76
+ "params": [
77
+ {
78
+ "name": "appVersion",
79
+ "key": "appVersion",
80
+ "help": "The App ID and version (e.g. my_app@1.0.0)",
81
+ "optional": false,
82
+ "multiple": false
83
+ }
84
+ ]
85
+ },
54
86
  {
55
87
  "path": "commands/app/GetLogLevel.js",
56
88
  "className": "GetLogLevelCommand",
@@ -700,7 +732,7 @@
700
732
  "key": "allStatuses",
701
733
  "aliases": [],
702
734
  "invertedAliases": [],
703
- "help": "Include all statuses. STOPPED is filtered by default",
735
+ "help": "Include all statuses. STOPPED and ABANDONED is filtered by default",
704
736
  "defaultValue": false,
705
737
  "invertible": false
706
738
  }
@@ -1324,7 +1356,7 @@
1324
1356
  },
1325
1357
  "commands": [],
1326
1358
  "package": {
1327
- "version": "1.1.10",
1359
+ "version": "1.2.1-beta.0",
1328
1360
  "name": "@optimizely/ocp-cli",
1329
1361
  "license": "Apache-2.0",
1330
1362
  "executable": "ocp"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@optimizely/ocp-cli",
3
- "version": "1.1.10",
3
+ "version": "1.2.1-beta.0",
4
4
  "description": "Optimizely Connect Platform command line interface",
5
5
  "repository": "https://github.com/ZaiusInc/ocp-cli",
6
6
  "license": "Apache-2.0",
@@ -28,7 +28,7 @@
28
28
  "build": "npx rimraf remove ./dist/ && npx tsc -p . && node ./node_modules/oo-cli/dist/build.js",
29
29
  "build-watch": "npx rimraf remove ./dist/ && npx nodemon -e ts,json --watch src --exec 'tsc -p . && node ./node_modules/oo-cli/dist/build.js'",
30
30
  "lint": "npx tslint --project .",
31
- "test": "npx jest",
31
+ "test": "npx jest --passWithNoTests",
32
32
  "release": "release-it"
33
33
  },
34
34
  "dependencies": {
@@ -0,0 +1,116 @@
1
+ import { command, flag, help, namespace, param } from 'oo-cli';
2
+ import { handleInterrupt } from '../../lib/handleInterrupt';
3
+ import { die } from '../../lib/die';
4
+ import * as chalk from 'chalk';
5
+ import { Rivendell } from '../../lib/Rivendell';
6
+ import { shardsFromManifest } from '../../lib/Shards';
7
+ import { AppManifest } from '@zaiusinc/app-sdk';
8
+ import { formatError } from '../../lib/formatError';
9
+ import { TerminalConfirm } from '../../lib/TerminalConfirm';
10
+ import {RivendellApi} from '../../lib/RivendellApi';
11
+ import AppVersionState = Rivendell.AppVersionState;
12
+ import ApiError = RivendellApi.ApiError;
13
+ import {constants as httpConstants} from 'http2';
14
+
15
+ const ABANDONABLE_STATES = [
16
+ AppVersionState.NEW,
17
+ AppVersionState.BUILD_FAILED,
18
+ AppVersionState.PUBLISHED
19
+ ];
20
+
21
+ @namespace('app')
22
+ export class AbandonCommand {
23
+
24
+ @param
25
+ @help('The App ID and version (e.g. my_app@1.0.0)')
26
+ public appVersion !: string;
27
+
28
+ @flag('no-prompt')
29
+ @help('Use default answer to any prompt question (default is yes, except for destructive operations)')
30
+ public noPrompt: boolean = false;
31
+
32
+ @command
33
+ @help('Abandon (cease processing) a specific app version that has not been published yet')
34
+ public async abandon() {
35
+ handleInterrupt();
36
+
37
+ if (!/[\w-]+@\d+\.\d+\.\d+(?:-\w+\.\d+)?/.test(this.appVersion)) {
38
+ die('appVersion is required in the format of app@1.0.0');
39
+ }
40
+ if (!await TerminalConfirm.ask(
41
+ chalk.red('Abandoning is not reversible. Are you sure you want to abandon? [y/n]'), this.noPrompt, true)) {
42
+ die('Operation cancelled.');
43
+ }
44
+
45
+ const [appId, version] = this.appVersion.split('@');
46
+ console.log(chalk.gray(`Abandoning version ${this.appVersion} ...`));
47
+ try {
48
+ const primaryAppVersion = await Rivendell.fetchAppVersion({ appId, version }, 'us');
49
+ let manifest;
50
+ if (primaryAppVersion && primaryAppVersion.manifestJson) {
51
+ manifest = JSON.parse(primaryAppVersion.manifestJson) as AppManifest;
52
+ }
53
+ let shards;
54
+ if (manifest && manifest.meta) {
55
+ shards = await shardsFromManifest(manifest);
56
+ } else {
57
+ shards = ['us'];
58
+ }
59
+
60
+ let abandonable = false;
61
+ const appVersionStates = new Map<string, string>();
62
+ for (const shard of shards) {
63
+ try {
64
+ const appVersion = await Rivendell.fetchAppVersion({ appId, version }, shard);
65
+ if (ABANDONABLE_STATES.includes(appVersion.state as AppVersionState)) {
66
+ abandonable = true;
67
+ } else if (appVersion.state as AppVersionState !== AppVersionState.ABANDONED) {
68
+ console.error(chalk.red(`AppVersion must be in a abandonable state in all regions. Exiting..`));
69
+ return;
70
+ }
71
+ appVersionStates.set(shard, appVersion.state);
72
+ } catch (error: any) {
73
+ if (error instanceof ApiError && error.response?.status === httpConstants.HTTP_STATUS_NOT_FOUND) {
74
+ console.error(chalk.red(`Could not locate the appVersion in region: ${shard}.`));
75
+ if (!await TerminalConfirm.ask('Continue with other regions?', this.noPrompt, true)) {
76
+ die('Operation cancelled.');
77
+ }
78
+ } else {
79
+ throw error;
80
+ }
81
+ }
82
+ }
83
+
84
+ if (!abandonable) {
85
+ console.log(chalk.yellow(`AppVersion is already in a abandoned state in all regions. Exiting..`));
86
+ return;
87
+ }
88
+
89
+ if (!shards.includes('us')) {
90
+ try {
91
+ await Rivendell.abandon(appId, version, 'us');
92
+ } catch (error: any) {
93
+ console.error(chalk.red(`Failed to abandon in the primary region, error ${formatError(error)}`));
94
+ return;
95
+ }
96
+ }
97
+ for (const shard of shards) {
98
+ try {
99
+ if (!appVersionStates.get(shard)) continue;
100
+ const appVersionState = appVersionStates.get(shard);
101
+ if (appVersionState as AppVersionState === AppVersionState.ABANDONED) {
102
+ console.log(chalk.yellow(`Already abandoned in region ${shard}. Skipping...`));
103
+ continue;
104
+ }
105
+ await Rivendell.abandon(appId, version, shard);
106
+ console.log(chalk.green(`Abandon completed in region ${shard}`));
107
+ } catch (error: any) {
108
+ die(`Failed to abandon in region ${shard}, error: ${formatError(error)}. Exiting...`);
109
+ }
110
+ }
111
+ console.log(chalk.green('Abandon completed in all regions'));
112
+ } catch (error: any) {
113
+ console.error(chalk.red(`Error while abandoning ${formatError(error)}`));
114
+ }
115
+ }
116
+ }
@@ -21,7 +21,7 @@ export class ListCommand {
21
21
  private appId!: string;
22
22
 
23
23
  @flag
24
- @help('Include all statuses. STOPPED is filtered by default')
24
+ @help('Include all statuses. STOPPED and ABANDONED is filtered by default')
25
25
  private allStatuses: boolean = false;
26
26
 
27
27
  @option('a')
@@ -51,7 +51,8 @@ export class ListCommand {
51
51
  );
52
52
  const rows = appVersions
53
53
  .filter((appVersion) =>
54
- this.allStatuses || appVersion.state as AppVersionState !== AppVersionState.STOPPED
54
+ this.allStatuses || (appVersion.state as AppVersionState !== AppVersionState.STOPPED
55
+ && appVersion.state !== AppVersionState.ABANDONED)
55
56
  )
56
57
  .sort((lhs, rhs) => {
57
58
  let result = lhs.id.appId.localeCompare(rhs.id.appId);
@@ -40,9 +40,10 @@ export class UpgradeCommand {
40
40
  chalk.yellow(`${this.trackerId} is currently at ${this.appId}@${install.version} in ${shard}.`)
41
41
  );
42
42
  } else {
43
- await Rivendell.upgrade(install.id, this.appId, this.toVersion, shard);
43
+ const result = await Rivendell.upgrade(install.id, this.appId, this.toVersion, shard);
44
+
44
45
  console.log(`Upgrading ${this.appId} for ${this.trackerId} to ${this.toVersion} in ${shard}`);
45
- await this.watchForCompletion(shard);
46
+ await this.watchForCompletion(shard, result.id);
46
47
  console.log(
47
48
  chalk.green(`Upgraded ${this.trackerId} to ${this.appId}@${this.toVersion} in ${shard}.`));
48
49
  terminal.removeAllListeners('key');
@@ -52,7 +53,7 @@ export class UpgradeCommand {
52
53
  }
53
54
  }
54
55
 
55
- private watchForCompletion(shard: string) {
56
+ private watchForCompletion(shard: string, upgradeId: number) {
56
57
  console.log(chalk.gray(`Upgrade was scheduled in ${shard}, watching for completion... CTRL+C to stop checking.`));
57
58
  return new Promise<void>((resolve, reject) => {
58
59
  let attempts = 0;
@@ -60,13 +61,21 @@ export class UpgradeCommand {
60
61
  const spinner = new TerminalSpinner().start('');
61
62
  const checkUpgrade = () => {
62
63
  attempts++;
63
- Rivendell.fetchAppInstallation(this.appId, this.trackerId, shard)
64
- .then((install) => {
65
- if (install.version === this.toVersion) {
64
+ Rivendell.fetchUpgrade(upgradeId, shard)
65
+ .then((upgrade) => {
66
+ spinner.update(`Upgrade status: ${upgrade.status.toString().replace('_', ' ').toLowerCase()}`);
67
+ if (upgrade.status === Rivendell.UpgradeStatus.COMPLETE) {
66
68
  clearInterval(interval);
67
69
  spinner.stop();
68
70
  resolve();
69
71
  } else {
72
+ if (upgrade.status === Rivendell.UpgradeStatus.FINALIZING_LIFECYCLE_FAILED.toString() ||
73
+ upgrade.status === Rivendell.UpgradeStatus.UPDATING_WEBHOOKS_FAILED.toString() ||
74
+ upgrade.status === Rivendell.UpgradeStatus.UPGRADING_LIFECYCLE_FAILED.toString()) {
75
+ clearInterval(interval);
76
+ spinner.stop();
77
+ die(`Upgrade failed with status ${upgrade.status}: ${upgrade.message}`);
78
+ }
70
79
  if (attempts > 300) {
71
80
  clearInterval(interval);
72
81
  spinner.stop();
@@ -14,7 +14,8 @@ export namespace Rivendell {
14
14
  UPGRADING_RUNTIME = 'UPGRADING_RUNTIME',
15
15
  STOPPING = 'STOPPING',
16
16
  STOP_FAILED = 'STOP_FAILED',
17
- STOPPED = 'STOPPED'
17
+ STOPPED = 'STOPPED',
18
+ ABANDONED = 'ABANDONED'
18
19
  }
19
20
 
20
21
  export enum ReviewStatus {
@@ -211,6 +212,23 @@ export namespace Rivendell {
211
212
  end?: number;
212
213
  }
213
214
 
215
+ export interface Upgrade {
216
+ id: number;
217
+ status: UpgradeStatus;
218
+ message?: string;
219
+ }
220
+
221
+ export enum UpgradeStatus {
222
+ SCHEDULED = 'SCHEDULED',
223
+ UPGRADING_LIFECYCLE = 'UPGRADING_LIFECYLES',
224
+ UPGRADING_LIFECYCLE_FAILED = 'UPGRADING_LIFECYCLE_FAILED',
225
+ UPDATING_WEBHOOKS = 'UPDATING_WEBHOOKS',
226
+ UPDATING_WEBHOOKS_FAILED = 'UPGRADING_LIFECYCLE_FAILED',
227
+ FINALIZING_LIFECYCLE = 'FINALIZING_LIFECYCLE',
228
+ FINALIZING_LIFECYCLE_FAILED = 'FINALIZING_LIFECYCLE_FAILED',
229
+ COMPLETE = 'COMPLETE'
230
+ }
231
+
214
232
  export interface AppReview {
215
233
  url: string;
216
234
  }
@@ -467,8 +485,15 @@ export namespace Rivendell {
467
485
  appId: string,
468
486
  version: string,
469
487
  shard: string
470
- ): Promise<void> {
471
- await RivendellApi.put(path(shard, `installations/${appInstallationId}`), {appId, version});
488
+ ): Promise<Upgrade> {
489
+ const response = await RivendellApi.put<Upgrade>(
490
+ path(shard, `installations/${appInstallationId}`), {appId, version});
491
+ return response.body;
492
+ }
493
+
494
+ export async function fetchUpgrade(upgradeId: number, shard: string): Promise<Upgrade> {
495
+ const response = await RivendellApi.get<Upgrade>(path(shard, `upgrades/${upgradeId}`));
496
+ return response.body;
472
497
  }
473
498
 
474
499
  /**
@@ -485,6 +510,14 @@ export namespace Rivendell {
485
510
  await RivendellApi.request('PATCH', path(shard, `versions/${appId}@${version}`), {state: AppVersionState.STOPPED});
486
511
  }
487
512
 
513
+ /**
514
+ * Trigger a abandon.
515
+ */
516
+ export async function abandon(appId: string, version: string, shard: string): Promise<void> {
517
+ await RivendellApi.request('PATCH', path(shard, `versions/${appId}@${version}`),
518
+ {state: AppVersionState.ABANDONED});
519
+ }
520
+
488
521
  /**
489
522
  * Set logLevel of an app version or an installation
490
523
  */
package/src/lib/Shards.ts CHANGED
@@ -16,6 +16,10 @@ export async function applicableShards(availability = '', fromManifest?: AppMani
16
16
  return resolveShards(manifest);
17
17
  }
18
18
 
19
+ export async function shardsFromManifest(fromManifest: AppManifest): Promise<string[]> {
20
+ return resolveShards(fromManifest);
21
+ }
22
+
19
23
  export async function targetShards(): Promise<string[]> {
20
24
  return await resolveShards(readAppYaml());
21
25
  }
@@ -23,6 +23,8 @@ export function formatVersionState(state: Rivendell.AppVersionState): string {
23
23
  return chalk.red('UNPUBLISHED');
24
24
  case Rivendell.AppVersionState.UPGRADING_RUNTIME:
25
25
  return chalk.yellow('UPGRADING_RUNTIME');
26
+ case Rivendell.AppVersionState.ABANDONED:
27
+ return chalk.gray('ABANDONED');
26
28
  default: {
27
29
  console.error(chalk.red(`Unrecognized AppVersionState ${state} `));
28
30
  return chalk.red('UNKNOWN');