@axway/axway-central-cli 3.5.0 → 3.6.0-rc.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.
|
@@ -28,7 +28,8 @@ const action = async ({
|
|
|
28
28
|
args,
|
|
29
29
|
region,
|
|
30
30
|
cache,
|
|
31
|
-
yes
|
|
31
|
+
yes,
|
|
32
|
+
forceDelete
|
|
32
33
|
} = argv;
|
|
33
34
|
let isCmdError = true; // let's be pessimistic.
|
|
34
35
|
const typedResource = args[0];
|
|
@@ -114,13 +115,27 @@ ${defsManager.getDefsTableForHelpMsg()}`);
|
|
|
114
115
|
process.exit(1);
|
|
115
116
|
}
|
|
116
117
|
}
|
|
118
|
+
|
|
119
|
+
// Ask user if it's okay to delete when "--forceDelete" option is set.
|
|
120
|
+
if (forceDelete) {
|
|
121
|
+
let result = _types.YesNo.Yes;
|
|
122
|
+
result = await (0, _basicPrompts.askList)({
|
|
123
|
+
msg: 'Are you sure you want to force delete this resource?',
|
|
124
|
+
choices: _types.YesNoChoices,
|
|
125
|
+
default: _types.YesNo.No
|
|
126
|
+
});
|
|
127
|
+
if (result === _types.YesNo.No) {
|
|
128
|
+
process.exit(1);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
117
131
|
render.startSpin(`Deleting resources${wait ? ' and waiting for them to be deleted' : ''}`);
|
|
118
132
|
const results = await Promise.all(matchingDefs.map(async defs => client.deleteResourceByName({
|
|
119
133
|
resourceDef: defs.resource,
|
|
120
134
|
resourceName: typedName,
|
|
121
135
|
scopeDef: defs.scope,
|
|
122
136
|
scopeName: scope === null || scope === void 0 ? void 0 : scope.name,
|
|
123
|
-
wait
|
|
137
|
+
wait,
|
|
138
|
+
forceDelete
|
|
124
139
|
})));
|
|
125
140
|
|
|
126
141
|
// considering the command successful if at least 1 response found
|
|
@@ -139,7 +154,7 @@ ${defsManager.getDefsTableForHelpMsg()}`);
|
|
|
139
154
|
const {
|
|
140
155
|
docs
|
|
141
156
|
} = await (0, _utils.loadAndVerifySpecs)(file, defsManager.getAllKindsList());
|
|
142
|
-
bulkResults = await client.bulkDelete(docs, defsManager.getSortedKindsMap(), wait);
|
|
157
|
+
bulkResults = await client.bulkDelete(docs, defsManager.getSortedKindsMap(), wait, forceDelete);
|
|
143
158
|
render.bulkResult(bulkResults, 'has successfully been deleted.');
|
|
144
159
|
isCmdError = !!bulkResults.error.length;
|
|
145
160
|
}
|
|
@@ -66,6 +66,7 @@ class ApiServerClient {
|
|
|
66
66
|
scopeDef,
|
|
67
67
|
scopeName,
|
|
68
68
|
version = ApiServerVersions.v1alpha1,
|
|
69
|
+
forceDelete = false,
|
|
69
70
|
expand,
|
|
70
71
|
langDef
|
|
71
72
|
}) {
|
|
@@ -77,12 +78,13 @@ class ApiServerClient {
|
|
|
77
78
|
const langDefUrl = langDef ? this.buildLanguageDefinitionUrl({
|
|
78
79
|
langCode: langDef
|
|
79
80
|
}) : '';
|
|
81
|
+
const forceDeleteUrl = forceDelete ? `?forceDelete=${forceDelete}` : '';
|
|
80
82
|
if (expand) {
|
|
81
83
|
return `${groupUrl}${scopeUrl}${resourceUrl}${nameUrl}${expandUrl}`;
|
|
82
84
|
} else if (langDef) {
|
|
83
85
|
return `${groupUrl}${scopeUrl}${resourceUrl}${nameUrl}${langDefUrl}`;
|
|
84
86
|
} else {
|
|
85
|
-
return `${groupUrl}${scopeUrl}${resourceUrl}${nameUrl}`;
|
|
87
|
+
return `${groupUrl}${scopeUrl}${resourceUrl}${nameUrl}${forceDeleteUrl}`;
|
|
86
88
|
}
|
|
87
89
|
}
|
|
88
90
|
|
|
@@ -494,7 +496,8 @@ class ApiServerClient {
|
|
|
494
496
|
scopeDef,
|
|
495
497
|
scopeName,
|
|
496
498
|
wait,
|
|
497
|
-
version = ApiServerVersions.v1alpha1
|
|
499
|
+
version = ApiServerVersions.v1alpha1,
|
|
500
|
+
forceDelete = false
|
|
498
501
|
}) {
|
|
499
502
|
log(`deleteResourceByName, spec.kind = ${resourceDef.spec.kind}, name = ${resourceName}, scope.kind = ${scopeDef === null || scopeDef === void 0 ? void 0 : scopeDef.spec.kind}, scope.name = ${scopeName}`);
|
|
500
503
|
const result = {
|
|
@@ -513,7 +516,8 @@ class ApiServerClient {
|
|
|
513
516
|
resourceName,
|
|
514
517
|
scopeDef,
|
|
515
518
|
scopeName,
|
|
516
|
-
version
|
|
519
|
+
version,
|
|
520
|
+
forceDelete
|
|
517
521
|
});
|
|
518
522
|
const response = await service.delete(url);
|
|
519
523
|
// note: delete "response" value from api-server is translated to an empty string currently.
|
|
@@ -987,7 +991,7 @@ class ApiServerClient {
|
|
|
987
991
|
* Order of calls calculated by sorting of the array of resources with "compareResourcesByKindDesc".
|
|
988
992
|
* @param resources array of resources to create
|
|
989
993
|
*/
|
|
990
|
-
async bulkDelete(resources, sortedDefsMap, wait, version) {
|
|
994
|
+
async bulkDelete(resources, sortedDefsMap, wait, forceDelete, version) {
|
|
991
995
|
log(`bulk delete`);
|
|
992
996
|
// sort() is modifying the existing array so cloning it before use.
|
|
993
997
|
const sortedDefsArray = Array.from(sortedDefsMap.values());
|
|
@@ -1026,7 +1030,8 @@ class ApiServerClient {
|
|
|
1026
1030
|
resourceDef,
|
|
1027
1031
|
scopeDef,
|
|
1028
1032
|
scopeName,
|
|
1029
|
-
version
|
|
1033
|
+
version,
|
|
1034
|
+
forceDelete
|
|
1030
1035
|
});
|
|
1031
1036
|
if (res.error) {
|
|
1032
1037
|
for (const nextError of res.error) {
|
|
@@ -57,6 +57,7 @@ const parseAsTable = (response, columns) => {
|
|
|
57
57
|
for (const col of columns) {
|
|
58
58
|
// jsonPath starts with '.' so using the substring
|
|
59
59
|
let value = (0, _get.default)(i, col.jsonPath.substring(1));
|
|
60
|
+
let deletingState = (0, _get.default)(i, "metadata.state");
|
|
60
61
|
if (col.type === 'date') {
|
|
61
62
|
value = (0, _dayjs.default)(value).fromNow();
|
|
62
63
|
} else if (col.type === 'teamGuid' && !value) {
|
|
@@ -64,7 +65,11 @@ const parseAsTable = (response, columns) => {
|
|
|
64
65
|
} else if (value && value.length > _types.MAX_TABLE_STRING_LENGTH + 3) {
|
|
65
66
|
value = value.substring(0, _types.MAX_TABLE_STRING_LENGTH / 2) + '...' + value.substring(value.length - _types.MAX_TABLE_STRING_LENGTH / 2);
|
|
66
67
|
}
|
|
67
|
-
|
|
68
|
+
if (deletingState) {
|
|
69
|
+
t.cell(col.name.toUpperCase(), _chalk.default.yellow(value));
|
|
70
|
+
} else {
|
|
71
|
+
t.cell(col.name.toUpperCase(), value);
|
|
72
|
+
}
|
|
68
73
|
}
|
|
69
74
|
t.newRow();
|
|
70
75
|
}
|
package/dist/common/types.js
CHANGED
|
@@ -269,17 +269,16 @@ let DataPlaneNames = exports.DataPlaneNames = /*#__PURE__*/function (DataPlaneNa
|
|
|
269
269
|
DataPlaneNames["GITHUB"] = "GitHub";
|
|
270
270
|
DataPlaneNames["GITLAB"] = "GitLab";
|
|
271
271
|
DataPlaneNames["AZURE"] = "Azure";
|
|
272
|
-
DataPlaneNames["EDGE"] = "
|
|
272
|
+
DataPlaneNames["EDGE"] = "APIM";
|
|
273
273
|
DataPlaneNames["KAFKA"] = "Kafka";
|
|
274
274
|
DataPlaneNames["GRAYLOG"] = "Graylog";
|
|
275
275
|
DataPlaneNames["IBMAPICONNECT"] = "APIConnect";
|
|
276
276
|
DataPlaneNames["KONG"] = "Kong";
|
|
277
|
-
DataPlaneNames["SOFTWAREAGWEBMETHODS"] = "
|
|
277
|
+
DataPlaneNames["SOFTWAREAGWEBMETHODS"] = "WebMethods";
|
|
278
278
|
DataPlaneNames["SWAGGERHUB"] = "SwaggerHub";
|
|
279
279
|
DataPlaneNames["TRACEABLE"] = "Traceable";
|
|
280
280
|
DataPlaneNames["MULESOFT"] = "Mulesoft";
|
|
281
|
-
DataPlaneNames["
|
|
282
|
-
DataPlaneNames["OTHER"] = "Other";
|
|
281
|
+
DataPlaneNames["OTHER"] = "Unidentified";
|
|
283
282
|
return DataPlaneNames;
|
|
284
283
|
}({});
|
|
285
284
|
const GatewayTypeToDataPlane = exports.GatewayTypeToDataPlane = {
|