@contrail/cli 2.1.19 → 2.1.21

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.
Files changed (154) hide show
  1. package/README.md +311 -105
  2. package/dist/api/apps.js +15 -15
  3. package/dist/api/event-workflow-action-definition.d.ts +1 -1
  4. package/dist/api/event-workflow-action-definition.js +1 -1
  5. package/dist/api/event-workflow-template-definition.d.ts +4 -3
  6. package/dist/api/event-workflow-templates.d.ts +5 -4
  7. package/dist/api/event-workflow-templates.js +2 -2
  8. package/dist/api/types.d.ts +10 -10
  9. package/dist/api/users.js +4 -2
  10. package/dist/auth/login.js +12 -14
  11. package/dist/commands/app/create.d.ts +2 -2
  12. package/dist/commands/app/create.js +15 -10
  13. package/dist/commands/app/delete.d.ts +2 -2
  14. package/dist/commands/app/delete.js +4 -2
  15. package/dist/commands/app/getApiKey.d.ts +2 -2
  16. package/dist/commands/app/getApiKey.js +17 -11
  17. package/dist/commands/app/install.d.ts +2 -2
  18. package/dist/commands/app/install.js +42 -25
  19. package/dist/commands/app/publish.d.ts +2 -2
  20. package/dist/commands/app/publish.js +26 -11
  21. package/dist/commands/app/uninstall.d.ts +2 -2
  22. package/dist/commands/app/uninstall.js +20 -11
  23. package/dist/commands/app/upgrade.d.ts +2 -2
  24. package/dist/commands/app/upgrade.js +46 -23
  25. package/dist/commands/basecommand.d.ts +7 -0
  26. package/dist/commands/basecommand.js +29 -0
  27. package/dist/commands/colors/deleteAll.d.ts +2 -2
  28. package/dist/commands/colors/deleteAll.js +8 -5
  29. package/dist/commands/colors/load.d.ts +2 -2
  30. package/dist/commands/colors/load.js +10 -7
  31. package/dist/commands/config/list.d.ts +2 -2
  32. package/dist/commands/config/list.js +4 -2
  33. package/dist/commands/config/remove.d.ts +2 -2
  34. package/dist/commands/config/remove.js +4 -2
  35. package/dist/commands/config/set.d.ts +3 -2
  36. package/dist/commands/config/set.js +21 -7
  37. package/dist/commands/groups/export.d.ts +2 -2
  38. package/dist/commands/groups/export.js +20 -8
  39. package/dist/commands/groups/upload.d.ts +3 -3
  40. package/dist/commands/groups/upload.js +44 -32
  41. package/dist/commands/instance/export.d.ts +2 -2
  42. package/dist/commands/instance/export.js +15 -3
  43. package/dist/commands/instance/import.d.ts +2 -2
  44. package/dist/commands/instance/import.js +9 -2
  45. package/dist/commands/loader-process/load.d.ts +2 -2
  46. package/dist/commands/loader-process/load.js +13 -6
  47. package/dist/commands/loader-process/upload-and-load.d.ts +2 -2
  48. package/dist/commands/loader-process/upload-and-load.js +18 -7
  49. package/dist/commands/projects/export.d.ts +2 -2
  50. package/dist/commands/projects/export.js +4 -2
  51. package/dist/commands/projects/list.d.ts +2 -2
  52. package/dist/commands/projects/list.js +6 -4
  53. package/dist/commands/projects/load.d.ts +2 -2
  54. package/dist/commands/projects/load.js +16 -8
  55. package/dist/commands/types/exportOptionSetHierarchies.d.ts +2 -2
  56. package/dist/commands/types/exportOptionSetHierarchies.js +15 -12
  57. package/dist/commands/types/getAll.d.ts +2 -2
  58. package/dist/commands/types/getAll.js +107 -76
  59. package/dist/commands/types/loadAll.d.ts +2 -2
  60. package/dist/commands/types/loadAll.js +12 -4
  61. package/dist/commands/types/mergeOptionSets.d.ts +2 -2
  62. package/dist/commands/types/mergeOptionSets.js +13 -10
  63. package/dist/commands/types/mergeTypeProperties.d.ts +2 -2
  64. package/dist/commands/types/mergeTypeProperties.js +12 -9
  65. package/dist/commands/types/parseOptionSetsHierarchyLocalFile.d.ts +2 -2
  66. package/dist/commands/types/parseOptionSetsHierarchyLocalFile.js +19 -15
  67. package/dist/commands/types/parseOptionSetsHierarchyValuesToKeysLocalFile.d.ts +10 -0
  68. package/dist/commands/types/parseOptionSetsHierarchyValuesToKeysLocalFile.js +102 -0
  69. package/dist/commands/types/parseOptionSetsLocalFiles.d.ts +2 -2
  70. package/dist/commands/types/parseOptionSetsLocalFiles.js +21 -21
  71. package/dist/commands/types/parseOptionSetsToFolderStructure.d.ts +2 -2
  72. package/dist/commands/types/parseOptionSetsToFolderStructure.js +17 -18
  73. package/dist/commands/types/parseTypesFromFiles.d.ts +2 -2
  74. package/dist/commands/types/parseTypesFromFiles.js +14 -8
  75. package/dist/commands/types/parseTypesFromLocalFiles.d.ts +2 -2
  76. package/dist/commands/types/parseTypesFromLocalFiles.js +10 -7
  77. package/dist/commands/types/parseTypesFromTemplateAndDataFromLocalFiles.d.ts +2 -2
  78. package/dist/commands/types/parseTypesFromTemplateAndDataFromLocalFiles.js +11 -8
  79. package/dist/commands/types/parseTypesFromTemplateFromLocalFiles.d.ts +2 -2
  80. package/dist/commands/types/parseTypesFromTemplateFromLocalFiles.js +11 -8
  81. package/dist/commands/types/uploadOptionSetHierarchies.d.ts +2 -2
  82. package/dist/commands/types/uploadOptionSetHierarchies.js +44 -32
  83. package/dist/commands/types/uploadOptionSets.d.ts +2 -2
  84. package/dist/commands/types/uploadOptionSets.js +21 -13
  85. package/dist/commands/types/uploadOptionSetsHierarchyLocalFile.d.ts +2 -2
  86. package/dist/commands/types/uploadOptionSetsHierarchyLocalFile.js +26 -19
  87. package/dist/commands/types/uploadRuleSets.d.ts +2 -2
  88. package/dist/commands/types/uploadRuleSets.js +34 -26
  89. package/dist/commands/types/uploadTypePolicies.d.ts +2 -2
  90. package/dist/commands/types/uploadTypePolicies.js +37 -29
  91. package/dist/commands/types/uploadTypePropertyPolicies.d.ts +2 -2
  92. package/dist/commands/types/uploadTypePropertyPolicies.js +38 -30
  93. package/dist/commands/types/uploadTypes.d.ts +2 -2
  94. package/dist/commands/types/uploadTypes.js +10 -4
  95. package/dist/commands/types/uploadUsageInfo.d.ts +2 -2
  96. package/dist/commands/types/uploadUsageInfo.js +32 -24
  97. package/dist/commands/users/export.d.ts +2 -2
  98. package/dist/commands/users/export.js +15 -4
  99. package/dist/commands/users/upload.d.ts +2 -2
  100. package/dist/commands/users/upload.js +6 -4
  101. package/dist/commands/webhooks/create.d.ts +2 -2
  102. package/dist/commands/webhooks/create.js +8 -6
  103. package/dist/commands/webhooks/delete.d.ts +2 -2
  104. package/dist/commands/webhooks/delete.js +8 -5
  105. package/dist/commands/webhooks/getWebhookTrigger.d.ts +2 -2
  106. package/dist/commands/webhooks/getWebhookTrigger.js +10 -9
  107. package/dist/commands/webhooks/list.d.ts +2 -2
  108. package/dist/commands/webhooks/list.js +8 -6
  109. package/dist/commands/workflow-template-definitions/install.d.ts +2 -2
  110. package/dist/commands/workflow-template-definitions/install.js +4 -2
  111. package/dist/commands/workflow-template-definitions/list.d.ts +2 -2
  112. package/dist/commands/workflow-template-definitions/list.js +4 -2
  113. package/dist/commands/workflow-templates/delete.d.ts +2 -2
  114. package/dist/commands/workflow-templates/delete.js +4 -2
  115. package/dist/commands/workflow-templates/export.d.ts +2 -2
  116. package/dist/commands/workflow-templates/export.js +19 -17
  117. package/dist/commands/workflow-templates/list.d.ts +2 -2
  118. package/dist/commands/workflow-templates/list.js +4 -2
  119. package/dist/commands/workflow-templates/load.d.ts +2 -2
  120. package/dist/commands/workflow-templates/load.js +8 -3
  121. package/dist/common.d.ts +4 -1
  122. package/dist/common.js +10 -1
  123. package/dist/helpers/app/actions-deployer.d.ts +2 -2
  124. package/dist/helpers/app/actions-deployer.js +12 -7
  125. package/dist/helpers/app/app-deployer.d.ts +1 -1
  126. package/dist/helpers/app/app-deployer.js +77 -49
  127. package/dist/helpers/app/app-template-parsers.js +3 -1
  128. package/dist/helpers/app/load-app-config.d.ts +2 -1
  129. package/dist/helpers/app/load-app-config.js +2 -2
  130. package/dist/helpers/app/setup-template.js +4 -3
  131. package/dist/helpers/colors/helpers.d.ts +10 -2
  132. package/dist/helpers/colors/helpers.js +11 -10
  133. package/dist/helpers/config/config.js +15 -10
  134. package/dist/helpers/file-helpers.js +7 -4
  135. package/dist/helpers/loader-process/helpers.js +14 -13
  136. package/dist/helpers/projects/helpers.d.ts +2 -1
  137. package/dist/helpers/projects/helpers.js +16 -15
  138. package/dist/helpers/types/csv-parser.js +17 -14
  139. package/dist/helpers/types/type-extractor.d.ts +1 -1
  140. package/dist/helpers/types/type-extractor.js +3 -2
  141. package/dist/helpers/types/type-parser.js +22 -21
  142. package/dist/helpers/types/type-uploader.js +19 -15
  143. package/dist/helpers/workflow-template-definitions/workflow-template-definition-deployer.d.ts +1 -1
  144. package/dist/helpers/workflow-template-definitions/workflow-template-definition-deployer.js +46 -28
  145. package/dist/helpers/workflow-templates/helper.d.ts +3 -3
  146. package/dist/helpers/workflow-templates/helper.js +33 -23
  147. package/dist/interface-converters.spec.js +15 -15
  148. package/dist/interfaces.d.ts +6 -0
  149. package/dist/logger.d.ts +3 -0
  150. package/dist/logger.js +32 -0
  151. package/dist/templates/typescript/src/actions/logItem.ts +9 -4
  152. package/dist/templates/typescript/src/main.ts +13 -8
  153. package/oclif.manifest.json +861 -31
  154. package/package.json +10 -7
@@ -9,9 +9,12 @@ const fs_1 = tslib_1.__importDefault(require("fs"));
9
9
  const login_1 = require("../../auth/login");
10
10
  const js_yaml_1 = tslib_1.__importDefault(require("js-yaml"));
11
11
  const core_1 = require("@oclif/core");
12
- class ImportGroups extends core_1.Command {
12
+ const basecommand_1 = require("../basecommand");
13
+ const logger_1 = tslib_1.__importDefault(require("../../logger"));
14
+ class ImportGroups extends basecommand_1.BaseCommand {
13
15
  async run() {
14
- const { args } = await this.parse(ImportGroups);
16
+ const { args, flags } = await this.parse(ImportGroups);
17
+ await super.setLogLevel(flags.logLevel);
15
18
  try {
16
19
  await (0, login_1.authUser)();
17
20
  this.log('%s Uploading Groups.', chalk_1.default.blue.bold('START'));
@@ -48,28 +51,30 @@ function getGroupsFile(fileLocation) {
48
51
  }
49
52
  async function uploadGroups(fileLocation) {
50
53
  const existingGroups = await new sdk_1.Entities().get({
51
- entityName: 'group', relations: ['groupPrincipals']
54
+ entityName: 'group',
55
+ relations: ['groupPrincipals'],
52
56
  });
53
57
  const groupsToImport = getGroupsFile(fileLocation);
54
58
  const orgUsers = await new sdk_1.Entities().get({
55
59
  entityName: 'user-org',
56
60
  });
57
- const toDelete = existingGroups.filter(x => !groupsToImport.map(y => y.name).includes(x.name));
58
- const toCreate = groupsToImport.filter(x => !existingGroups.map(y => y.name).includes(x.name));
59
- const toUpdate = groupsToImport.filter(x => existingGroups.map(y => y.name).includes(x.name));
61
+ const toDelete = existingGroups.filter((x) => !groupsToImport.map((y) => y.name).includes(x.name));
62
+ const toCreate = groupsToImport.filter((x) => !existingGroups.map((y) => y.name).includes(x.name));
63
+ const toUpdate = groupsToImport.filter((x) => existingGroups.map((y) => y.name).includes(x.name));
60
64
  const createdGroups = [];
61
65
  // it's important to create all the groups first, to resolve any downstream principal dependencies
62
66
  for (const group of toCreate) {
63
67
  if (!group.groupPrincipals || !group.name) {
64
- console.log('skipping create of invalid group');
68
+ logger_1.default.info('skipping create of invalid group');
65
69
  }
66
70
  createdGroups.push(await new sdk_1.Entities().create({
67
- entityName: 'group', object: { name: group.name }
71
+ entityName: 'group',
72
+ object: { name: group.name },
68
73
  }));
69
74
  }
70
75
  const allGroupsAfterCreate = existingGroups.concat(createdGroups);
71
76
  for (const group of toCreate) {
72
- const createdGroup = createdGroups.find(x => x.name === group.name);
77
+ const createdGroup = createdGroups.find((x) => x.name === group.name);
73
78
  if (!createdGroup) {
74
79
  continue;
75
80
  }
@@ -77,14 +82,14 @@ async function uploadGroups(fileLocation) {
77
82
  }
78
83
  for (const group of toUpdate) {
79
84
  if (!group.groupPrincipals || !group.name) {
80
- console.log('skipping update invalid group');
85
+ logger_1.default.info('skipping update invalid group');
81
86
  }
82
- const existingGroup = existingGroups.find(x => x.name === group.name);
87
+ const existingGroup = existingGroups.find((x) => x.name === group.name);
83
88
  await updateGroup(group.groupPrincipals, orgUsers, existingGroup, allGroupsAfterCreate);
84
89
  }
85
90
  for (const group of toDelete) {
86
91
  if (!group.groupPrincipals || !group.name) {
87
- console.log('skipping delete of invalid group');
92
+ logger_1.default.info('skipping delete of invalid group');
88
93
  }
89
94
  await new sdk_1.Entities().delete({ entityName: 'group', id: group.id });
90
95
  }
@@ -93,49 +98,56 @@ exports.uploadGroups = uploadGroups;
93
98
  async function updateGroup(principals, orgUsers, existingGroup, allGroupsAfterCreate) {
94
99
  var _a;
95
100
  const principalsToUpdate = principals
96
- .map(x => groupPrincipalNameToId(x, allGroupsAfterCreate, orgUsers))
97
- .filter(x => !!x)
98
- .map(x => { return { principalReference: `${x.type}:${x.identifier}`, groupId: existingGroup.id }; });
101
+ .map((x) => groupPrincipalNameToId(x, allGroupsAfterCreate, orgUsers))
102
+ .filter((x) => !!x)
103
+ .map((x) => {
104
+ return { principalReference: `${x.type}:${x.identifier}`, groupId: existingGroup.id };
105
+ });
99
106
  await new sdk_1.Entities().batchCreate({
100
- entityName: 'group-principal', objects: {
101
- principalReferences: principalsToUpdate.map(x => x.principalReference),
102
- groupIds: [existingGroup.id]
103
- }
107
+ entityName: 'group-principal',
108
+ objects: {
109
+ principalReferences: principalsToUpdate.map((x) => x.principalReference),
110
+ groupIds: [existingGroup.id],
111
+ },
104
112
  });
105
113
  // remove principals
106
- const principalsToKeep = principalsToUpdate.map(principal => `${principal.type}:${principal.identifier}`);
114
+ const principalsToKeep = principalsToUpdate.map((principal) => `${principal.type}:${principal.identifier}`);
107
115
  const principalsToDelete = ((_a = existingGroup === null || existingGroup === void 0 ? void 0 : existingGroup.groupPrincipals) !== null && _a !== void 0 ? _a : [])
108
- .map(x => groupPrincipalNameToId(x, allGroupsAfterCreate, orgUsers))
109
- .filter(x => !!x)
110
- .filter(x => !principalsToKeep.includes(`${x.type}:${x.identifier}`));
116
+ .map((x) => groupPrincipalNameToId(x, allGroupsAfterCreate, orgUsers))
117
+ .filter((x) => !!x)
118
+ .filter((x) => !principalsToKeep.includes(`${x.type}:${x.identifier}`));
111
119
  await principalsToDelete.forEach(async (principal) => {
112
120
  await new sdk_1.Entities().delete({
113
- entityName: 'group-principal', id: principal.cloudId
121
+ entityName: 'group-principal',
122
+ id: principal.cloudId,
114
123
  });
115
124
  });
116
125
  }
117
126
  async function createGroupPrincipals(group, principals, orgUsers, allGroupsAfterCreate) {
118
127
  const principalsToCreate = principals
119
- .map(x => groupPrincipalNameToId(x, allGroupsAfterCreate, orgUsers))
120
- .filter(x => !!x)
121
- .map(x => { return { principalReference: `${x.type}:${x.identifier}`, groupId: group.id }; });
128
+ .map((x) => groupPrincipalNameToId(x, allGroupsAfterCreate, orgUsers))
129
+ .filter((x) => !!x)
130
+ .map((x) => {
131
+ return { principalReference: `${x.type}:${x.identifier}`, groupId: group.id };
132
+ });
122
133
  await new sdk_1.Entities().batchCreate({
123
- entityName: 'group-principal', objects: principalsToCreate
134
+ entityName: 'group-principal',
135
+ objects: principalsToCreate,
124
136
  });
125
137
  }
126
138
  function groupPrincipalNameToId(principal, groups, orgUsers) {
127
139
  if (principal.type === 'user') {
128
- const user = orgUsers.map(x => x.user).find(x => x.email === (principal === null || principal === void 0 ? void 0 : principal.email));
140
+ const user = orgUsers.map((x) => x.user).find((x) => x.email === (principal === null || principal === void 0 ? void 0 : principal.email));
129
141
  if (!user) {
130
- console.log(`user ${principal.email} is not in this org's user list`);
142
+ logger_1.default.info(`user ${principal.email} is not in this org's user list`);
131
143
  return undefined;
132
144
  }
133
145
  return { type: 'user', identifier: user.id, cloudId: principal.id };
134
146
  }
135
147
  else if (principal.type === 'group') {
136
- const group = groups.find(x => x.name === principal.name);
148
+ const group = groups.find((x) => x.name === principal.name);
137
149
  if (!group) {
138
- console.log(`group ${principal.name} is not in this org's group list`);
150
+ logger_1.default.info(`group ${principal.name} is not in this org's group list`);
139
151
  return undefined;
140
152
  }
141
153
  return { type: 'group', identifier: group.id, cloudId: principal.id };
@@ -1,5 +1,5 @@
1
- import { Command } from '@oclif/core';
2
- export default class ExportInstance extends Command {
1
+ import { BaseCommand } from '../basecommand';
2
+ export default class ExportInstance extends BaseCommand {
3
3
  static description: string;
4
4
  static examples: string[];
5
5
  static flags: {
@@ -6,9 +6,11 @@ const core_1 = require("@oclif/core");
6
6
  const getAll_1 = require("../types/getAll");
7
7
  const export_1 = require("../users/export");
8
8
  const export_2 = require("../groups/export");
9
- class ExportInstance extends core_1.Command {
9
+ const basecommand_1 = require("../basecommand");
10
+ class ExportInstance extends basecommand_1.BaseCommand {
10
11
  async run() {
11
12
  const { flags } = await this.parse(ExportInstance);
13
+ await super.setLogLevel(flags.logLevel);
12
14
  await (0, getAll_1.getAll)(flags.outDir, flags.overwrite);
13
15
  await (0, export_1.exportUsers)(path.join(flags.outDir, 'users.yml'), flags.overwrite);
14
16
  await (0, export_2.exportGroups)(path.join(flags.outDir, 'groups.yml'), flags.overwrite);
@@ -21,6 +23,16 @@ ExportInstance.examples = [
21
23
  `,
22
24
  ];
23
25
  ExportInstance.flags = {
24
- outDir: core_1.Flags.string({ char: 'd', description: 'The directory to which to export the instance data. Defaults to the current directory', required: false, default: '.' }),
25
- overwrite: core_1.Flags.boolean({ char: 'f', description: 'Replaces any existing export files in outDir', required: false, default: false })
26
+ outDir: core_1.Flags.string({
27
+ char: 'd',
28
+ description: 'The directory to which to export the instance data. Defaults to the current directory',
29
+ required: false,
30
+ default: '.',
31
+ }),
32
+ overwrite: core_1.Flags.boolean({
33
+ char: 'f',
34
+ description: 'Replaces any existing export files in outDir',
35
+ required: false,
36
+ default: false,
37
+ }),
26
38
  };
@@ -1,5 +1,5 @@
1
- import { Command } from '@oclif/core';
2
- export default class ImportInstance extends Command {
1
+ import { BaseCommand } from '../basecommand';
2
+ export default class ImportInstance extends BaseCommand {
3
3
  static description: string;
4
4
  static examples: string[];
5
5
  static flags: {
@@ -8,9 +8,11 @@ const upload_1 = require("../users/upload");
8
8
  const upload_2 = require("../groups/upload");
9
9
  const uploadTypePropertyPolicies_1 = require("../types/uploadTypePropertyPolicies");
10
10
  const uploadTypePolicies_1 = require("../types/uploadTypePolicies");
11
- class ImportInstance extends core_1.Command {
11
+ const basecommand_1 = require("../basecommand");
12
+ class ImportInstance extends basecommand_1.BaseCommand {
12
13
  async run() {
13
14
  const { flags } = await this.parse(ImportInstance);
15
+ await super.setLogLevel(flags.logLevel);
14
16
  await (0, loadAll_1.loadAll)(flags.dir, true);
15
17
  await (0, upload_1.uploadUsers)(path.join(flags.dir, 'users.yml'));
16
18
  await (0, upload_2.uploadGroups)(path.join(flags.dir, 'groups.yml'));
@@ -25,5 +27,10 @@ ImportInstance.examples = [
25
27
  `,
26
28
  ];
27
29
  ImportInstance.flags = {
28
- dir: core_1.Flags.string({ char: 'd', description: 'The directory from which to export the instance data. Defaults to the current directory', required: false, default: '.' }),
30
+ dir: core_1.Flags.string({
31
+ char: 'd',
32
+ description: 'The directory from which to export the instance data. Defaults to the current directory',
33
+ required: false,
34
+ default: '.',
35
+ }),
29
36
  };
@@ -1,5 +1,5 @@
1
- import { Command } from '@oclif/core';
2
- export default class LoadPS extends Command {
1
+ import { BaseCommand } from '../basecommand';
2
+ export default class LoadPS extends BaseCommand {
3
3
  static description: string;
4
4
  static examples: string[];
5
5
  static args: {
@@ -5,21 +5,24 @@ const core_1 = require("@oclif/core");
5
5
  const login_1 = require("../../auth/login");
6
6
  const chalk_1 = tslib_1.__importDefault(require("chalk"));
7
7
  const helpers_1 = require("../../helpers/loader-process/helpers");
8
- class LoadPS extends core_1.Command {
8
+ const basecommand_1 = require("../basecommand");
9
+ const logger_1 = tslib_1.__importDefault(require("../../logger"));
10
+ class LoadPS extends basecommand_1.BaseCommand {
9
11
  async run() {
10
12
  const { args, flags } = await this.parse(LoadPS);
13
+ await super.setLogLevel(flags.logLevel);
11
14
  try {
12
15
  await (0, login_1.authUser)();
13
- console.log('%s Uploading file', chalk_1.default.yellow.bold('LOADER'));
16
+ logger_1.default.info('%s Uploading file', chalk_1.default.yellow.bold('LOADER'));
14
17
  const configFileName = args.configFileName;
15
18
  await (0, helpers_1.loadLocalFile)(configFileName);
16
- console.log('%s Uploaded', chalk_1.default.yellow.bold('LOADER'));
19
+ logger_1.default.info('%s Uploaded', chalk_1.default.yellow.bold('LOADER'));
17
20
  }
18
21
  catch (e) {
19
- console.log(`%s Starting Load Failed. ${e}`, chalk_1.default.red.bold('FAIL'));
22
+ logger_1.default.info(`%s Starting Load Failed. ${e}`, chalk_1.default.red.bold('FAIL'));
20
23
  return;
21
24
  }
22
- console.log('%s Starting Load Complete.', chalk_1.default.green.bold('COMPLETE'));
25
+ logger_1.default.info('%s Starting Load Complete.', chalk_1.default.green.bold('COMPLETE'));
23
26
  }
24
27
  }
25
28
  exports.default = LoadPS;
@@ -29,5 +32,9 @@ LoadPS.examples = [
29
32
  `,
30
33
  ];
31
34
  LoadPS.args = {
32
- configFileName: core_1.Args.string({ char: 'c', description: 'The configuration file location', required: true }),
35
+ configFileName: core_1.Args.string({
36
+ char: 'c',
37
+ description: 'The configuration file location',
38
+ required: true,
39
+ }),
33
40
  };
@@ -1,5 +1,5 @@
1
- import { Command } from '@oclif/core';
2
- export default class UploadAndLoadPS extends Command {
1
+ import { BaseCommand } from '../basecommand';
2
+ export default class UploadAndLoadPS extends BaseCommand {
3
3
  static description: string;
4
4
  static examples: string[];
5
5
  static args: {
@@ -5,22 +5,25 @@ const core_1 = require("@oclif/core");
5
5
  const login_1 = require("../../auth/login");
6
6
  const chalk_1 = tslib_1.__importDefault(require("chalk"));
7
7
  const helpers_1 = require("../../helpers/loader-process/helpers");
8
- class UploadAndLoadPS extends core_1.Command {
8
+ const basecommand_1 = require("../basecommand");
9
+ const logger_1 = tslib_1.__importDefault(require("../../logger"));
10
+ class UploadAndLoadPS extends basecommand_1.BaseCommand {
9
11
  async run() {
10
12
  const { args, flags } = await this.parse(UploadAndLoadPS);
13
+ await super.setLogLevel(flags.logLevel);
11
14
  try {
12
15
  await (0, login_1.authUser)();
13
- console.log('%s Uploading file', chalk_1.default.yellow.bold('LOADER'));
16
+ logger_1.default.info('%s Uploading file', chalk_1.default.yellow.bold('LOADER'));
14
17
  const incomingFileName = args.incomingFile;
15
18
  const configFileName = args.configFileName;
16
19
  await (0, helpers_1.uploadAndLoadLocalFile)(incomingFileName, configFileName);
17
- console.log('%s Uploaded', chalk_1.default.yellow.bold('LOADER'));
20
+ logger_1.default.info('%s Uploaded', chalk_1.default.yellow.bold('LOADER'));
18
21
  }
19
22
  catch (e) {
20
- console.log(`%s Starting Load Failed. ${e}`, chalk_1.default.red.bold('FAIL'));
23
+ logger_1.default.info(`%s Starting Load Failed. ${e}`, chalk_1.default.red.bold('FAIL'));
21
24
  return;
22
25
  }
23
- console.log('%s Starting Load Complete.', chalk_1.default.green.bold('COMPLETE'));
26
+ logger_1.default.info('%s Starting Load Complete.', chalk_1.default.green.bold('COMPLETE'));
24
27
  }
25
28
  }
26
29
  exports.default = UploadAndLoadPS;
@@ -30,6 +33,14 @@ UploadAndLoadPS.examples = [
30
33
  `,
31
34
  ];
32
35
  UploadAndLoadPS.args = {
33
- incomingFile: core_1.Args.string({ char: 'f', description: 'The incoming file location', required: true }),
34
- configFileName: core_1.Args.string({ char: 'c', description: 'The configuration file location', required: true }),
36
+ incomingFile: core_1.Args.string({
37
+ char: 'f',
38
+ description: 'The incoming file location',
39
+ required: true,
40
+ }),
41
+ configFileName: core_1.Args.string({
42
+ char: 'c',
43
+ description: 'The configuration file location',
44
+ required: true,
45
+ }),
35
46
  };
@@ -1,5 +1,5 @@
1
- import { Command } from '@oclif/core';
2
- export default class ExportProjects extends Command {
1
+ import { BaseCommand } from '../basecommand';
2
+ export default class ExportProjects extends BaseCommand {
3
3
  static description: string;
4
4
  static examples: string[];
5
5
  static flags: {};
@@ -5,9 +5,11 @@ const core_1 = require("@oclif/core");
5
5
  const chalk_1 = tslib_1.__importDefault(require("chalk"));
6
6
  const login_1 = require("../../auth/login");
7
7
  const helpers_1 = require("../../helpers/projects/helpers");
8
- class ExportProjects extends core_1.Command {
8
+ const basecommand_1 = require("../basecommand");
9
+ class ExportProjects extends basecommand_1.BaseCommand {
9
10
  async run() {
10
- const { args } = await this.parse(ExportProjects);
11
+ const { args, flags } = await this.parse(ExportProjects);
12
+ await super.setLogLevel(flags.logLevel);
11
13
  try {
12
14
  await (0, login_1.authUser)();
13
15
  this.log('%s Exporting Project.', chalk_1.default.blue.bold('START'));
@@ -1,5 +1,5 @@
1
- import { Command } from '@oclif/core';
2
- export default class ListProjects extends Command {
1
+ import { BaseCommand } from '../basecommand';
2
+ export default class ListProjects extends BaseCommand {
3
3
  static description: string;
4
4
  static examples: string[];
5
5
  run(): Promise<void>;
@@ -2,21 +2,23 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
4
  const sdk_1 = require("@contrail/sdk");
5
- const core_1 = require("@oclif/core");
6
5
  const chalk_1 = tslib_1.__importDefault(require("chalk"));
7
6
  const login_1 = require("../../auth/login");
8
- class ListProjects extends core_1.Command {
7
+ const basecommand_1 = require("../basecommand");
8
+ class ListProjects extends basecommand_1.BaseCommand {
9
9
  async run() {
10
+ const { flags } = await this.parse(ListProjects);
11
+ await super.setLogLevel(flags.logLevel);
10
12
  try {
11
13
  await (0, login_1.authUser)();
12
14
  this.log('%s Getting Projects.', chalk_1.default.blue.bold('START'));
13
15
  const allWorkspaces = await new sdk_1.Entities().get({
14
16
  entityName: 'workspace',
15
- criteria: { isArchived: false }
17
+ criteria: { isArchived: false },
16
18
  });
17
19
  this.log('%s', chalk_1.default.green.bold('PROJECTS:'));
18
20
  //this.log(allWorkspaces.map(w => Object.assign({}, {name: w.name, id: w.id}))); // if we want ids
19
- this.log(allWorkspaces.map(w => w.name));
21
+ this.log(allWorkspaces.map((w) => w.name));
20
22
  this.log('%s Done', chalk_1.default.yellow.bold('PROJECTS'));
21
23
  }
22
24
  catch (e) {
@@ -1,5 +1,5 @@
1
- import { Command } from '@oclif/core';
2
- export default class LoadProject extends Command {
1
+ import { BaseCommand } from '../basecommand';
2
+ export default class LoadProject extends BaseCommand {
3
3
  static description: string;
4
4
  static examples: string[];
5
5
  static args: {
@@ -6,9 +6,12 @@ const chalk_1 = tslib_1.__importDefault(require("chalk"));
6
6
  const login_1 = require("../../auth/login");
7
7
  const helpers_1 = require("../../helpers/projects/helpers");
8
8
  const core_1 = require("@oclif/core");
9
- class LoadProject extends core_1.Command {
9
+ const basecommand_1 = require("../basecommand");
10
+ const logger_1 = tslib_1.__importDefault(require("../../logger"));
11
+ class LoadProject extends basecommand_1.BaseCommand {
10
12
  async run() {
11
- const { args } = await this.parse(LoadProject);
13
+ const { args, flags } = await this.parse(LoadProject);
14
+ await super.setLogLevel(flags.logLevel);
12
15
  try {
13
16
  await (0, login_1.authUser)();
14
17
  this.log('%s Parsing Template.', chalk_1.default.blue.bold('START'));
@@ -32,12 +35,15 @@ LoadProject.examples = [
32
35
  `,
33
36
  ];
34
37
  LoadProject.args = {
35
- templateFileLocation: core_1.Args.string({ description: 'The location to the template file', required: true }),
38
+ templateFileLocation: core_1.Args.string({
39
+ description: 'The location to the template file',
40
+ required: true,
41
+ }),
36
42
  };
37
43
  async function uploadProject(templateFileLocation) {
38
44
  const projectConfigurationFromFile = (0, helpers_1.getProjectFile)(templateFileLocation);
39
45
  const projectConfiguration = getProjectConfiguration(projectConfigurationFromFile);
40
- console.log('Configuring Project.');
46
+ logger_1.default.info('Configuring Project.');
41
47
  await sdk_1.Request.request('/project-configurator', {
42
48
  method: 'POST',
43
49
  body: JSON.stringify(projectConfiguration),
@@ -48,7 +54,9 @@ async function uploadProject(templateFileLocation) {
48
54
  });
49
55
  }
50
56
  function getProjectConfiguration(projectConfigurationFromFile) {
51
- if (!projectConfigurationFromFile.allFolders && !projectConfigurationFromFile.allAssortments && !projectConfigurationFromFile.allAssortmentRelationships) {
57
+ if (!projectConfigurationFromFile.allFolders &&
58
+ !projectConfigurationFromFile.allAssortments &&
59
+ !projectConfigurationFromFile.allAssortmentRelationships) {
52
60
  return projectConfigurationFromFile;
53
61
  }
54
62
  const parsed = parseToProjectConfiguration(projectConfigurationFromFile);
@@ -74,7 +82,7 @@ function parseToProjectConfiguration(projectConfigurationFromFile) {
74
82
  for (const assortmentRelationships of projectConfigurationFromFile.allAssortmentRelationships) {
75
83
  const assortment = assortmentsByIdentifier[assortmentRelationships.identifier];
76
84
  if (!assortment) {
77
- console.warn('Relationship defined for assortment that is not defined.', assortmentRelationships);
85
+ logger_1.default.warn('Relationship defined for assortment that is not defined.', assortmentRelationships);
78
86
  }
79
87
  else {
80
88
  Object.assign(assortment, assortmentRelationships);
@@ -83,7 +91,7 @@ function parseToProjectConfiguration(projectConfigurationFromFile) {
83
91
  for (const assortment of projectConfigurationFromFile.allAssortments) {
84
92
  const folder = foldersByIdentifier[assortment.folderIdentifier];
85
93
  if (!folder) {
86
- console.warn('Assortment defined for folder that is not defined.', assortment);
94
+ logger_1.default.warn('Assortment defined for folder that is not defined.', assortment);
87
95
  }
88
96
  if (!folder.assortments) {
89
97
  folder.assortments = [];
@@ -94,7 +102,7 @@ function parseToProjectConfiguration(projectConfigurationFromFile) {
94
102
  for (const folderSlim of projectConfigurationFromFile.allFolders) {
95
103
  const folder = foldersByIdentifier[folderSlim.folderIdentifier];
96
104
  if (!folder) {
97
- console.warn('Folder defined for folder that is not defined.', folderSlim);
105
+ logger_1.default.warn('Folder defined for folder that is not defined.', folderSlim);
98
106
  }
99
107
  if (!folder.subFolders) {
100
108
  folder.subFolders = [];
@@ -1,5 +1,5 @@
1
- import { Command } from '@oclif/core';
2
- export default class ExportOptionSetsHierarchies extends Command {
1
+ import { BaseCommand } from '../basecommand';
2
+ export default class ExportOptionSetsHierarchies extends BaseCommand {
3
3
  static description: string;
4
4
  static examples: string[];
5
5
  run(): Promise<void>;
@@ -8,10 +8,13 @@ const chalk_1 = tslib_1.__importDefault(require("chalk"));
8
8
  const sdk_1 = require("@contrail/sdk");
9
9
  const login_1 = require("../../auth/login");
10
10
  const util_1 = require("@contrail/util");
11
- const core_1 = require("@oclif/core");
12
- const { Parser } = require('json2csv');
13
- class ExportOptionSetsHierarchies extends core_1.Command {
11
+ const basecommand_1 = require("../basecommand");
12
+ const logger_1 = tslib_1.__importDefault(require("../../logger"));
13
+ const json2csv_1 = require("json2csv");
14
+ class ExportOptionSetsHierarchies extends basecommand_1.BaseCommand {
14
15
  async run() {
16
+ const { flags } = await this.parse(ExportOptionSetsHierarchies);
17
+ await super.setLogLevel(flags.logLevel);
15
18
  await exportOptionSetsHierarchies();
16
19
  }
17
20
  }
@@ -24,15 +27,15 @@ ExportOptionSetsHierarchies.examples = [
24
27
  async function exportOptionSetsHierarchies() {
25
28
  try {
26
29
  await (0, login_1.authUser)();
27
- console.log('%s Exporting local file', chalk_1.default.yellow.bold('OPTION SET HIERARCHY EXPORT'));
30
+ logger_1.default.info('%s Exporting local file', chalk_1.default.yellow.bold('OPTION SET HIERARCHY EXPORT'));
28
31
  await exportOptionSetHierarchies();
29
- console.log('%s Exported', chalk_1.default.yellow.bold('OPTION SET HIERARCHY EXPORT'));
32
+ logger_1.default.info('%s Exported', chalk_1.default.yellow.bold('OPTION SET HIERARCHY EXPORT'));
30
33
  }
31
34
  catch (e) {
32
- console.log(`%s EXPORT Failed. ${e}`, chalk_1.default.red.bold('FAIL'));
35
+ logger_1.default.info(`%s EXPORT Failed. ${e}`, chalk_1.default.red.bold('FAIL'));
33
36
  return;
34
37
  }
35
- console.log('%s EXPORT Complete.', chalk_1.default.green.bold('COMPLETE'));
38
+ logger_1.default.info('%s EXPORT Complete.', chalk_1.default.green.bold('COMPLETE'));
36
39
  }
37
40
  exports.exportOptionSetsHierarchies = exportOptionSetsHierarchies;
38
41
  async function exportOptionSetHierarchies() {
@@ -45,7 +48,7 @@ async function exportOptionSetHierarchies() {
45
48
  for (const optionSetHierarchy of allOptionSetHierarchies) {
46
49
  const levelNameInOrder = [];
47
50
  for (const optionSetId of optionSetHierarchy.hierarchy) {
48
- const os = currentOptionSets.find(os => os.id === optionSetId);
51
+ const os = currentOptionSets.find((os) => os.id === optionSetId);
49
52
  levelNameInOrder.push(util_1.StringUtil.convertToCamelCase(os.name));
50
53
  }
51
54
  transformAndSave(optionSetHierarchy, levelNameInOrder);
@@ -117,14 +120,14 @@ function saveData(name, data, fieldNames) {
117
120
  const separator = (0, common_1.getSeparatorByPlatform)();
118
121
  const opts = { fieldNames };
119
122
  try {
120
- const parser = new Parser(opts);
123
+ const parser = new json2csv_1.Parser(opts);
121
124
  const csv = parser.parse(data);
122
- fs_1.default.mkdirSync(CURRENT_DIR + separator + 'option-set-hierarchies', { recursive: true });
123
- fs_1.default.writeFileSync(CURRENT_DIR + separator + 'option-set-hierarchies' + separator + name + '.csv', csv, {
125
+ fs_1.default.mkdirSync(`${CURRENT_DIR + separator}option-set-hierarchies`, { recursive: true });
126
+ fs_1.default.writeFileSync(`${CURRENT_DIR + separator}option-set-hierarchies${separator}${name}.csv`, csv, {
124
127
  flag: 'w',
125
128
  });
126
129
  }
127
130
  catch (err) {
128
- console.error(err);
131
+ logger_1.default.error(err);
129
132
  }
130
133
  }
@@ -1,4 +1,4 @@
1
- import { Command } from '@oclif/core';
1
+ import { BaseCommand } from '../basecommand';
2
2
  export interface DataHolder {
3
3
  types: any[];
4
4
  optionSets: any[];
@@ -25,7 +25,7 @@ export interface ReducedDataHolder {
25
25
  reducedTypePolicies: any[];
26
26
  reducedTypePolicyLinks: any[];
27
27
  }
28
- export default class GetAllTypes extends Command {
28
+ export default class GetAllTypes extends BaseCommand {
29
29
  static description: string;
30
30
  static examples: string[];
31
31
  static flags: {