@ibm-cloud/cd-tools 1.14.1 → 1.15.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.
- package/cmd/copy-toolchain.js +28 -15
- package/cmd/utils/requests.js +3 -0
- package/cmd/utils/terraform.js +23 -1
- package/package.json +1 -1
package/cmd/copy-toolchain.js
CHANGED
|
@@ -270,21 +270,34 @@ async function main(options) {
|
|
|
270
270
|
}
|
|
271
271
|
|
|
272
272
|
await setupTerraformFiles({
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
273
|
+
auth: {
|
|
274
|
+
token: bearer
|
|
275
|
+
},
|
|
276
|
+
source: {
|
|
277
|
+
srcRegion: sourceRegion,
|
|
278
|
+
srcToolchainId: sourceToolchainId
|
|
279
|
+
},
|
|
280
|
+
target: {
|
|
281
|
+
targetRegion: targetRegion,
|
|
282
|
+
targetRgId: targetRgId,
|
|
283
|
+
targetToolchainName: targetToolchainName,
|
|
284
|
+
targetTag: targetTag
|
|
285
|
+
},
|
|
286
|
+
options: {
|
|
287
|
+
disableTriggers: disableTriggers,
|
|
288
|
+
includeS2S: includeS2S,
|
|
289
|
+
isCompact: isCompact,
|
|
290
|
+
skipUserConfirmation: skipUserConfirmation
|
|
291
|
+
},
|
|
292
|
+
paths: {
|
|
293
|
+
tempDir: TEMP_DIR,
|
|
294
|
+
outputDir: outputDir
|
|
295
|
+
},
|
|
296
|
+
additional: {
|
|
297
|
+
gritMapping: gritMapping,
|
|
298
|
+
moreTfResources: moreTfResources,
|
|
299
|
+
timeSuffix: TIME_SUFFIX
|
|
300
|
+
}
|
|
288
301
|
});
|
|
289
302
|
} catch (err) {
|
|
290
303
|
if (err.message && err.stack) {
|
package/cmd/utils/requests.js
CHANGED
|
@@ -13,6 +13,8 @@ import axiosRetry from 'axios-retry';
|
|
|
13
13
|
import mocks from '../../test/data/mocks.js'
|
|
14
14
|
import { logger, LOG_STAGES } from './logger.js';
|
|
15
15
|
|
|
16
|
+
import packageJson from '../../package.json' with { type: 'json' };
|
|
17
|
+
|
|
16
18
|
const CLOUD_PLATFORM = process.env['IBMCLOUD_PLATFORM_DOMAIN'] || 'cloud.ibm.com';
|
|
17
19
|
const DEV_MODE = CLOUD_PLATFORM !== 'cloud.ibm.com';
|
|
18
20
|
const IAM_BASE_URL = DEV_MODE ? process.env['IBMCLOUD_IAM_API_ENDPOINT'] : 'https://iam.cloud.ibm.com';
|
|
@@ -117,6 +119,7 @@ async function getToolchain(bearer, toolchainId, region) {
|
|
|
117
119
|
'Accept': 'application/json',
|
|
118
120
|
'Authorization': `Bearer ${bearer}`,
|
|
119
121
|
'Content-Type': 'application/json',
|
|
122
|
+
'User-Agent': `${packageJson.name}/${packageJson.version}`
|
|
120
123
|
},
|
|
121
124
|
validateStatus: () => true
|
|
122
125
|
};
|
package/cmd/utils/terraform.js
CHANGED
|
@@ -68,7 +68,16 @@ async function initProviderFile(targetRegion, dir) {
|
|
|
68
68
|
return writeFilePromise(`${dir}/provider.tf`, jsonToTf(newProviderTfStr));
|
|
69
69
|
}
|
|
70
70
|
|
|
71
|
-
async function setupTerraformFiles(
|
|
71
|
+
async function setupTerraformFiles(config) {
|
|
72
|
+
const {
|
|
73
|
+
auth: { token },
|
|
74
|
+
source: { srcRegion, srcToolchainId },
|
|
75
|
+
target: { targetRegion, targetRgId, targetToolchainName, targetTag },
|
|
76
|
+
options: { disableTriggers, includeS2S, isCompact, skipUserConfirmation },
|
|
77
|
+
paths: { tempDir, outputDir },
|
|
78
|
+
additional: { gritMapping, moreTfResources, timeSuffix }
|
|
79
|
+
} = config;
|
|
80
|
+
|
|
72
81
|
const promises = [];
|
|
73
82
|
|
|
74
83
|
const writeProviderPromise = await initProviderFile(targetRegion, outputDir);
|
|
@@ -230,6 +239,19 @@ async function setupTerraformFiles({ token, srcRegion, targetRegion, targetTag,
|
|
|
230
239
|
];
|
|
231
240
|
if (targetToolchainName) newTfFileObj['resource']['ibm_cd_toolchain'][newTcId]['name'] = targetToolchainName;
|
|
232
241
|
if (targetRgId) newTfFileObj['resource']['ibm_cd_toolchain'][newTcId]['resource_group_id'] = targetRgId;
|
|
242
|
+
|
|
243
|
+
// set new description
|
|
244
|
+
const oldDesc = newTfFileObj['resource']['ibm_cd_toolchain'][newTcId]['description'];
|
|
245
|
+
let newDesc = `Copied from https://cloud.ibm.com/devops/toolchains/${srcToolchainId}?env_id=ibm:yp:${srcRegion}` +
|
|
246
|
+
(oldDesc && oldDesc != newTfFileObj['resource']['ibm_cd_toolchain'][newTcId]['name'] ?
|
|
247
|
+
`; Original description: ${oldDesc}`
|
|
248
|
+
: '')
|
|
249
|
+
// if greater than 500 chars, truncate to fit within 500 chars and add a marker`
|
|
250
|
+
if (newDesc.length > 500) {
|
|
251
|
+
const marker = ' (truncated)';
|
|
252
|
+
newDesc = newDesc.substring(0, 500 - marker.length) + marker;
|
|
253
|
+
}
|
|
254
|
+
newTfFileObj['resource']['ibm_cd_toolchain'][newTcId]['description'] = newDesc;
|
|
233
255
|
}
|
|
234
256
|
|
|
235
257
|
if (isCompact || resourceName === 'ibm_cd_tekton_pipeline_trigger') {
|