@optimizely/ocp-cli 1.2.1-beta.0 → 1.2.2
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.
|
@@ -29,7 +29,7 @@ let AbandonCommand = class AbandonCommand {
|
|
|
29
29
|
this.noPrompt = false;
|
|
30
30
|
}
|
|
31
31
|
async abandon() {
|
|
32
|
-
var _a;
|
|
32
|
+
var _a, _b;
|
|
33
33
|
(0, handleInterrupt_1.handleInterrupt)();
|
|
34
34
|
if (!/[\w-]+@\d+\.\d+\.\d+(?:-\w+\.\d+)?/.test(this.appVersion)) {
|
|
35
35
|
(0, die_1.die)('appVersion is required in the format of app@1.0.0');
|
|
@@ -45,29 +45,51 @@ let AbandonCommand = class AbandonCommand {
|
|
|
45
45
|
if (primaryAppVersion && primaryAppVersion.manifestJson) {
|
|
46
46
|
manifest = JSON.parse(primaryAppVersion.manifestJson);
|
|
47
47
|
}
|
|
48
|
-
|
|
48
|
+
const appVersionStates = new Map();
|
|
49
|
+
let shards = [];
|
|
49
50
|
if (manifest && manifest.meta) {
|
|
50
51
|
shards = await (0, Shards_1.shardsFromManifest)(manifest);
|
|
51
52
|
}
|
|
52
53
|
else {
|
|
53
|
-
|
|
54
|
+
const allShards = (await Rivendell_1.Rivendell.shards()).map((s) => s.id);
|
|
55
|
+
for (const shard of allShards) {
|
|
56
|
+
try {
|
|
57
|
+
const appVersion = await Rivendell_1.Rivendell.fetchAppVersion({ appId, version }, shard);
|
|
58
|
+
if (appVersion) {
|
|
59
|
+
appVersionStates.set(shard, appVersion.state);
|
|
60
|
+
shards.push(shard);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
if (error instanceof ApiError && ((_a = error.response) === null || _a === void 0 ? void 0 : _a.status) === http2_1.constants.HTTP_STATUS_NOT_FOUND) {
|
|
65
|
+
continue;
|
|
66
|
+
}
|
|
67
|
+
(0, die_1.die)(`Could not locate the appVersion in region: ${shard}, error: ${(0, formatError_1.formatError)(error)}`);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
54
70
|
}
|
|
55
71
|
let abandonable = false;
|
|
56
|
-
const appVersionStates = new Map();
|
|
57
72
|
for (const shard of shards) {
|
|
58
73
|
try {
|
|
59
|
-
|
|
60
|
-
if (
|
|
74
|
+
let appVersionState;
|
|
75
|
+
if (appVersionStates.get(shard)) {
|
|
76
|
+
appVersionState = appVersionStates.get(shard);
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
const appVersion = await Rivendell_1.Rivendell.fetchAppVersion({ appId, version }, shard);
|
|
80
|
+
appVersionState = appVersion.state;
|
|
81
|
+
appVersionStates.set(shard, appVersionState);
|
|
82
|
+
}
|
|
83
|
+
if (ABANDONABLE_STATES.includes(appVersionState)) {
|
|
61
84
|
abandonable = true;
|
|
62
85
|
}
|
|
63
|
-
else if (
|
|
86
|
+
else if (appVersionState !== AppVersionState.ABANDONED) {
|
|
64
87
|
console.error(chalk.red(`AppVersion must be in a abandonable state in all regions. Exiting..`));
|
|
65
88
|
return;
|
|
66
89
|
}
|
|
67
|
-
appVersionStates.set(shard, appVersion.state);
|
|
68
90
|
}
|
|
69
91
|
catch (error) {
|
|
70
|
-
if (error instanceof ApiError && ((
|
|
92
|
+
if (error instanceof ApiError && ((_b = error.response) === null || _b === void 0 ? void 0 : _b.status) === http2_1.constants.HTTP_STATUS_NOT_FOUND) {
|
|
71
93
|
console.error(chalk.red(`Could not locate the appVersion in region: ${shard}.`));
|
|
72
94
|
if (!await TerminalConfirm_1.TerminalConfirm.ask('Continue with other regions?', this.noPrompt, true)) {
|
|
73
95
|
(0, die_1.die)('Operation cancelled.');
|
|
@@ -101,7 +123,6 @@ let AbandonCommand = class AbandonCommand {
|
|
|
101
123
|
continue;
|
|
102
124
|
}
|
|
103
125
|
await Rivendell_1.Rivendell.abandon(appId, version, shard);
|
|
104
|
-
console.log(chalk.green(`Abandon completed in region ${shard}`));
|
|
105
126
|
}
|
|
106
127
|
catch (error) {
|
|
107
128
|
(0, die_1.die)(`Failed to abandon in region ${shard}, error: ${(0, formatError_1.formatError)(error)}. Exiting...`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Abandon.js","sourceRoot":"","sources":["../../../src/commands/app/Abandon.ts"],"names":[],"mappings":";;;;;;;;;AAAA,mCAA+D;AAC/D,+DAA4D;AAC5D,uCAAoC;AACpC,+BAA+B;AAC/B,mDAAgD;AAChD,6CAAsD;AAEtD,uDAAoD;AACpD,+DAA4D;AAC5D,yDAAoD;AACpD,IAAO,eAAe,GAAG,qBAAS,CAAC,eAAe,CAAC;AACnD,IAAO,QAAQ,GAAG,2BAAY,CAAC,QAAQ,CAAC;AACxC,iCAAiD;AAEjD,MAAM,kBAAkB,GAAG;IACzB,eAAe,CAAC,GAAG;IACnB,eAAe,CAAC,YAAY;IAC5B,eAAe,CAAC,SAAS;CAC1B,CAAC;AAGK,IAAM,cAAc,GAApB,MAAM,cAAc;IAApB;QAQE,aAAQ,GAAY,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"Abandon.js","sourceRoot":"","sources":["../../../src/commands/app/Abandon.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -50,25 +50,45 @@ export class AbandonCommand {
|
|
|
50
50
|
if (primaryAppVersion && primaryAppVersion.manifestJson) {
|
|
51
51
|
manifest = JSON.parse(primaryAppVersion.manifestJson) as AppManifest;
|
|
52
52
|
}
|
|
53
|
-
|
|
53
|
+
const appVersionStates = new Map<string, string>();
|
|
54
|
+
let shards = [];
|
|
54
55
|
if (manifest && manifest.meta) {
|
|
55
56
|
shards = await shardsFromManifest(manifest);
|
|
56
57
|
} else {
|
|
57
|
-
|
|
58
|
+
const allShards = (await Rivendell.shards()).map((s) => s.id);
|
|
59
|
+
for (const shard of allShards) {
|
|
60
|
+
try {
|
|
61
|
+
const appVersion = await Rivendell.fetchAppVersion({ appId, version }, shard);
|
|
62
|
+
if (appVersion) {
|
|
63
|
+
appVersionStates.set(shard, appVersion.state);
|
|
64
|
+
shards.push(shard);
|
|
65
|
+
}
|
|
66
|
+
} catch (error: any) {
|
|
67
|
+
if (error instanceof ApiError && error.response?.status === httpConstants.HTTP_STATUS_NOT_FOUND) {
|
|
68
|
+
continue;
|
|
69
|
+
}
|
|
70
|
+
die(`Could not locate the appVersion in region: ${shard}, error: ${formatError(error)}`);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
58
73
|
}
|
|
59
74
|
|
|
60
75
|
let abandonable = false;
|
|
61
|
-
const appVersionStates = new Map<string, string>();
|
|
62
76
|
for (const shard of shards) {
|
|
63
77
|
try {
|
|
64
|
-
|
|
65
|
-
if (
|
|
78
|
+
let appVersionState;
|
|
79
|
+
if (appVersionStates.get(shard)) {
|
|
80
|
+
appVersionState = appVersionStates.get(shard);
|
|
81
|
+
} else {
|
|
82
|
+
const appVersion = await Rivendell.fetchAppVersion({ appId, version }, shard);
|
|
83
|
+
appVersionState = appVersion.state;
|
|
84
|
+
appVersionStates.set(shard, appVersionState);
|
|
85
|
+
}
|
|
86
|
+
if (ABANDONABLE_STATES.includes(appVersionState as AppVersionState)) {
|
|
66
87
|
abandonable = true;
|
|
67
|
-
} else if (
|
|
88
|
+
} else if (appVersionState as AppVersionState !== AppVersionState.ABANDONED) {
|
|
68
89
|
console.error(chalk.red(`AppVersion must be in a abandonable state in all regions. Exiting..`));
|
|
69
90
|
return;
|
|
70
91
|
}
|
|
71
|
-
appVersionStates.set(shard, appVersion.state);
|
|
72
92
|
} catch (error: any) {
|
|
73
93
|
if (error instanceof ApiError && error.response?.status === httpConstants.HTTP_STATUS_NOT_FOUND) {
|
|
74
94
|
console.error(chalk.red(`Could not locate the appVersion in region: ${shard}.`));
|
|
@@ -103,7 +123,6 @@ export class AbandonCommand {
|
|
|
103
123
|
continue;
|
|
104
124
|
}
|
|
105
125
|
await Rivendell.abandon(appId, version, shard);
|
|
106
|
-
console.log(chalk.green(`Abandon completed in region ${shard}`));
|
|
107
126
|
} catch (error: any) {
|
|
108
127
|
die(`Failed to abandon in region ${shard}, error: ${formatError(error)}. Exiting...`);
|
|
109
128
|
}
|