@cloudbase/cli 2.0.12 → 2.1.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.
Files changed (277) hide show
  1. package/.history/.gitignore_20220624162613 +84 -0
  2. package/.history/.gitignore_20220627114054 +86 -0
  3. package/.history/package_20220711204706.json +88 -0
  4. package/.history/package_20220711204818.json +88 -0
  5. package/.history/package_20220712151717.json +88 -0
  6. package/.history/package_20220712212537.json +88 -0
  7. package/.history/package_20220722205058.json +88 -0
  8. package/.history/package_20220726110155.json +88 -0
  9. package/.history/package_20220726110201.json +88 -0
  10. package/.history/package_20220728110905.json +88 -0
  11. package/.history/package_20220728110936.json +88 -0
  12. package/.history/package_20220728111531.json +89 -0
  13. package/.history/package_20220728111810.json +89 -0
  14. package/.history/src/commands/lowcode/app_20220728111717.ts +52 -0
  15. package/{src/commands/lowcode/app.ts → .history/src/commands/lowcode/app_20220728112031.ts} +2 -2
  16. package/{src/index.ts → .history/src/index_20220624162613.ts} +0 -0
  17. package/.history/src/index_20220627113609.ts +15 -0
  18. package/.history/src/index_20220627114102.ts +13 -0
  19. package/.vscode/launch.json +10 -0
  20. package/bin/cloudbase.js +0 -0
  21. package/bin/tcb.js +5 -5
  22. package/lib/commands/account/login.js +3 -6
  23. package/lib/commands/env/index.js +0 -1
  24. package/lib/commands/lowcode/app.js +1 -1
  25. package/lib/commands/run/index.js +0 -1
  26. package/lib/commands/run/service/deploy.js +6 -1
  27. package/lib/commands/run/service/index.js +0 -1
  28. package/lib/commands/run/service/update.js +4 -0
  29. package/lib/constant.js +15 -1
  30. package/lib/env/index.js +1 -11
  31. package/lib/run/index.js +0 -1
  32. package/lib/run/service/common.js +20 -7
  33. package/lib/run/service/config.js +2 -3
  34. package/lib/run/service/deployPackage.js +2 -9
  35. package/lib/run/service/index.js +0 -1
  36. package/lib/run/service/update.js +1 -1
  37. package/lib/utils/debug-logger.js +30 -0
  38. package/lib/utils/net/cloud-api-request.js +7 -1
  39. package/lib/utils/net/http-request.js +16 -5
  40. package/package.json +2 -2
  41. package/types/commands/env/index.d.ts +0 -1
  42. package/types/commands/run/index.d.ts +0 -1
  43. package/types/commands/run/service/index.d.ts +0 -1
  44. package/types/env/index.d.ts +0 -6
  45. package/types/run/index.d.ts +0 -1
  46. package/types/run/service/common.d.ts +8 -1
  47. package/types/run/service/index.d.ts +0 -1
  48. package/types/types.d.ts +4 -0
  49. package/types/utils/debug-logger.d.ts +1 -0
  50. package/types/utils/net/http-request.d.ts +6 -2
  51. package/lib/commands/env/create.js +0 -115
  52. package/lib/commands/run/create.js +0 -162
  53. package/lib/commands/run/service/create.js +0 -144
  54. package/lib/run/create.js +0 -19
  55. package/lib/run/service/create.js +0 -67
  56. package/src/auth/index.ts +0 -2
  57. package/src/auth/login.ts +0 -91
  58. package/src/auth/logout.ts +0 -7
  59. package/src/commands/account/index.ts +0 -2
  60. package/src/commands/account/login.ts +0 -192
  61. package/src/commands/account/logout.ts +0 -24
  62. package/src/commands/common.ts +0 -246
  63. package/src/commands/env/base.ts +0 -90
  64. package/src/commands/env/create.ts +0 -92
  65. package/src/commands/env/domain.ts +0 -186
  66. package/src/commands/env/index.ts +0 -4
  67. package/src/commands/env/login.ts +0 -235
  68. package/src/commands/framework/index.ts +0 -124
  69. package/src/commands/functions/alias/getRoute.ts +0 -76
  70. package/src/commands/functions/alias/index.ts +0 -2
  71. package/src/commands/functions/alias/setRoute.ts +0 -82
  72. package/src/commands/functions/code-download.ts +0 -100
  73. package/src/commands/functions/code-update.ts +0 -62
  74. package/src/commands/functions/concurrency/delete.ts +0 -45
  75. package/src/commands/functions/concurrency/index.ts +0 -3
  76. package/src/commands/functions/concurrency/list.ts +0 -58
  77. package/src/commands/functions/concurrency/set.ts +0 -47
  78. package/src/commands/functions/config-update.ts +0 -76
  79. package/src/commands/functions/copy.ts +0 -62
  80. package/src/commands/functions/delete.ts +0 -79
  81. package/src/commands/functions/deploy.ts +0 -293
  82. package/src/commands/functions/detail.ts +0 -138
  83. package/src/commands/functions/index.ts +0 -16
  84. package/src/commands/functions/invoke.ts +0 -121
  85. package/src/commands/functions/layer/bind.ts +0 -182
  86. package/src/commands/functions/layer/common.ts +0 -8
  87. package/src/commands/functions/layer/create.ts +0 -49
  88. package/src/commands/functions/layer/delete.ts +0 -73
  89. package/src/commands/functions/layer/download.ts +0 -92
  90. package/src/commands/functions/layer/index.ts +0 -7
  91. package/src/commands/functions/layer/list.ts +0 -94
  92. package/src/commands/functions/layer/sort.ts +0 -76
  93. package/src/commands/functions/list.ts +0 -68
  94. package/src/commands/functions/log.ts +0 -148
  95. package/src/commands/functions/run.ts +0 -249
  96. package/src/commands/functions/trigger-create.ts +0 -79
  97. package/src/commands/functions/trigger-delete.ts +0 -105
  98. package/src/commands/functions/version/index.ts +0 -2
  99. package/src/commands/functions/version/list.ts +0 -73
  100. package/src/commands/functions/version/publish.ts +0 -43
  101. package/src/commands/gateway/create.ts +0 -109
  102. package/src/commands/gateway/delete.ts +0 -81
  103. package/src/commands/gateway/domain.ts +0 -159
  104. package/src/commands/gateway/index.ts +0 -5
  105. package/src/commands/gateway/list.ts +0 -76
  106. package/src/commands/gateway/switch.ts +0 -107
  107. package/src/commands/helpers/index.ts +0 -3
  108. package/src/commands/helpers/init.ts +0 -431
  109. package/src/commands/helpers/new.ts +0 -117
  110. package/src/commands/helpers/open.ts +0 -67
  111. package/src/commands/hosting/hosting.ts +0 -360
  112. package/src/commands/hosting/index.ts +0 -1
  113. package/src/commands/index.ts +0 -13
  114. package/src/commands/lowcode/comps.ts +0 -325
  115. package/src/commands/lowcode/index.ts +0 -2
  116. package/src/commands/lowcode/utils.ts +0 -25
  117. package/src/commands/run/create.ts +0 -153
  118. package/src/commands/run/delete.ts +0 -77
  119. package/src/commands/run/image/common.ts +0 -8
  120. package/src/commands/run/image/delete.ts +0 -68
  121. package/src/commands/run/image/download.ts +0 -68
  122. package/src/commands/run/image/index.ts +0 -5
  123. package/src/commands/run/image/list.ts +0 -84
  124. package/src/commands/run/image/upload.ts +0 -76
  125. package/src/commands/run/index.ts +0 -7
  126. package/src/commands/run/list.ts +0 -83
  127. package/src/commands/run/service/config.ts +0 -81
  128. package/src/commands/run/service/create.ts +0 -122
  129. package/src/commands/run/service/deploy.ts +0 -125
  130. package/src/commands/run/service/index.ts +0 -5
  131. package/src/commands/run/service/list.ts +0 -94
  132. package/src/commands/run/service/update.ts +0 -108
  133. package/src/commands/run/standalonegateway/common.ts +0 -8
  134. package/src/commands/run/standalonegateway/create.ts +0 -85
  135. package/src/commands/run/standalonegateway/destroy.ts +0 -59
  136. package/src/commands/run/standalonegateway/index.ts +0 -5
  137. package/src/commands/run/standalonegateway/list.ts +0 -53
  138. package/src/commands/run/standalonegateway/package.ts +0 -62
  139. package/src/commands/run/standalonegateway/turn.ts +0 -63
  140. package/src/commands/run/version/common.ts +0 -8
  141. package/src/commands/run/version/create.ts +0 -369
  142. package/src/commands/run/version/delete.ts +0 -64
  143. package/src/commands/run/version/index.ts +0 -5
  144. package/src/commands/run/version/list.ts +0 -91
  145. package/src/commands/run/version/modify.ts +0 -137
  146. package/src/commands/run/version/update.ts +0 -398
  147. package/src/commands/smart.ts +0 -132
  148. package/src/commands/storage/index.ts +0 -1
  149. package/src/commands/storage/storage.ts +0 -464
  150. package/src/commands/third/index.ts +0 -1
  151. package/src/commands/third/thirdAttach.ts +0 -49
  152. package/src/completion/index.ts +0 -13
  153. package/src/constant.ts +0 -154
  154. package/src/decorators/captureError.ts +0 -25
  155. package/src/decorators/constants.ts +0 -12
  156. package/src/decorators/deprecate.ts +0 -25
  157. package/src/decorators/guard.ts +0 -42
  158. package/src/decorators/index.ts +0 -7
  159. package/src/decorators/injectParams.ts +0 -54
  160. package/src/decorators/params/common.ts +0 -28
  161. package/src/decorators/params/index.ts +0 -35
  162. package/src/env/domain.ts +0 -33
  163. package/src/env/index.ts +0 -63
  164. package/src/env/login.ts +0 -80
  165. package/src/error.ts +0 -36
  166. package/src/function/alias.ts +0 -43
  167. package/src/function/base.ts +0 -253
  168. package/src/function/code.ts +0 -55
  169. package/src/function/concurrency.ts +0 -57
  170. package/src/function/create.ts +0 -78
  171. package/src/function/delete.ts +0 -42
  172. package/src/function/index.ts +0 -11
  173. package/src/function/layer/attach.ts +0 -68
  174. package/src/function/layer/create.ts +0 -63
  175. package/src/function/layer/delete.ts +0 -21
  176. package/src/function/layer/download.ts +0 -54
  177. package/src/function/layer/index.ts +0 -7
  178. package/src/function/layer/list.ts +0 -32
  179. package/src/function/layer/sort.ts +0 -24
  180. package/src/function/trigger.ts +0 -97
  181. package/src/function/update.ts +0 -35
  182. package/src/function/version.ts +0 -39
  183. package/src/function/vpc.ts +0 -22
  184. package/src/gateway/index.ts +0 -137
  185. package/src/help.ts +0 -50
  186. package/src/hosting.ts +0 -212
  187. package/src/logger.ts +0 -17
  188. package/src/run/create.ts +0 -23
  189. package/src/run/delete.ts +0 -15
  190. package/src/run/image/build.ts +0 -36
  191. package/src/run/image/delete.ts +0 -14
  192. package/src/run/image/index.ts +0 -4
  193. package/src/run/image/info.ts +0 -27
  194. package/src/run/image/list.ts +0 -23
  195. package/src/run/index.ts +0 -8
  196. package/src/run/list.ts +0 -30
  197. package/src/run/repo.ts +0 -25
  198. package/src/run/service/common.ts +0 -311
  199. package/src/run/service/config.ts +0 -77
  200. package/src/run/service/create.ts +0 -52
  201. package/src/run/service/deployPackage.ts +0 -65
  202. package/src/run/service/index.ts +0 -7
  203. package/src/run/service/list.ts +0 -29
  204. package/src/run/service/showLogs.ts +0 -98
  205. package/src/run/service/update.ts +0 -82
  206. package/src/run/standalonegateway/create.ts +0 -24
  207. package/src/run/standalonegateway/destroy.ts +0 -19
  208. package/src/run/standalonegateway/index.ts +0 -5
  209. package/src/run/standalonegateway/list.ts +0 -74
  210. package/src/run/standalonegateway/package/index.ts +0 -1
  211. package/src/run/standalonegateway/package/list.ts +0 -24
  212. package/src/run/standalonegateway/turn/index.ts +0 -2
  213. package/src/run/standalonegateway/turn/off.ts +0 -19
  214. package/src/run/standalonegateway/turn/on.ts +0 -19
  215. package/src/run/version/create.ts +0 -68
  216. package/src/run/version/delete.ts +0 -16
  217. package/src/run/version/index.ts +0 -6
  218. package/src/run/version/list.ts +0 -17
  219. package/src/run/version/modify.ts +0 -17
  220. package/src/run/version/repo.ts +0 -28
  221. package/src/run/version/update.ts +0 -59
  222. package/src/storage.ts +0 -114
  223. package/src/third/index.ts +0 -13
  224. package/src/types.ts +0 -672
  225. package/src/utils/auth.ts +0 -15
  226. package/src/utils/checkTcbrEnv.ts +0 -69
  227. package/src/utils/cli-table.ts +0 -23
  228. package/src/utils/commonParamsCheck.ts +0 -65
  229. package/src/utils/config.ts +0 -39
  230. package/src/utils/env.ts +0 -244
  231. package/src/utils/fs/del.ts +0 -5
  232. package/src/utils/fs/index.ts +0 -71
  233. package/src/utils/function-packer.ts +0 -97
  234. package/src/utils/index.ts +0 -25
  235. package/src/utils/log.ts +0 -82
  236. package/src/utils/net/cloud-api-request.ts +0 -62
  237. package/src/utils/net/credential.ts +0 -53
  238. package/src/utils/net/http-request.ts +0 -84
  239. package/src/utils/net/index.ts +0 -5
  240. package/src/utils/net/manager-service.ts +0 -36
  241. package/src/utils/net/proxy.ts +0 -6
  242. package/src/utils/notice.ts +0 -28
  243. package/src/utils/output/highlight.ts +0 -5
  244. package/src/utils/output/index.ts +0 -3
  245. package/src/utils/output/link.ts +0 -10
  246. package/src/utils/output/loading.ts +0 -82
  247. package/src/utils/parallel.ts +0 -82
  248. package/src/utils/platform/index.ts +0 -3
  249. package/src/utils/platform/mac.ts +0 -21
  250. package/src/utils/platform/os.ts +0 -64
  251. package/src/utils/platform/port.ts +0 -10
  252. package/src/utils/progress-bar.ts +0 -38
  253. package/src/utils/prompt/index.ts +0 -1
  254. package/src/utils/prompt/select.ts +0 -60
  255. package/src/utils/reporter/agree.ts +0 -20
  256. package/src/utils/reporter/download.ts +0 -26
  257. package/src/utils/reporter/index.ts +0 -3
  258. package/src/utils/reporter/usage.ts +0 -20
  259. package/src/utils/store/auth.ts +0 -49
  260. package/src/utils/store/common.ts +0 -8
  261. package/src/utils/store/db.ts +0 -68
  262. package/src/utils/store/index.ts +0 -5
  263. package/src/utils/store/usage.ts +0 -12
  264. package/src/utils/tcbrApi/callTcbrApi.ts +0 -28
  265. package/src/utils/tcbrApi/index.ts +0 -1
  266. package/src/utils/template.ts +0 -170
  267. package/src/utils/tools/encoding.ts +0 -8
  268. package/src/utils/tools/index.ts +0 -4
  269. package/src/utils/tools/object.ts +0 -33
  270. package/src/utils/tools/time.ts +0 -38
  271. package/src/utils/tools/uid.ts +0 -19
  272. package/src/utils/validator.ts +0 -65
  273. package/types/commands/env/create.d.ts +0 -12
  274. package/types/commands/run/create.d.ts +0 -13
  275. package/types/commands/run/service/create.d.ts +0 -13
  276. package/types/run/create.d.ts +0 -2
  277. package/types/run/service/create.d.ts +0 -7
@@ -1,5 +0,0 @@
1
- export * from './list'
2
- export * from './create'
3
- export * from './destroy'
4
- export * from './package'
5
- export * from './turn'
@@ -1,53 +0,0 @@
1
- import { Command, ICommand } from '../../common'
2
- import { listStandalonegateway } from '../../../run/standalonegateway'
3
- import { loadingFactory } from '@cloudbase/toolbox'
4
- import { ArgsOptions, EnvId, InjectParams } from '../../../decorators'
5
- import { standalonegatewayCommonOptions } from './common'
6
- import { printHorizontalTable } from '../../../utils'
7
- import { CloudBaseError } from '../../../error'
8
-
9
- @ICommand()
10
- export class ListStandalonegateway extends Command {
11
- get options() {
12
- return {
13
- ...standalonegatewayCommonOptions('list'),
14
- options: [
15
- {
16
- flags: '-e, --envId <envId>',
17
- desc: '环境 Id'
18
- },
19
- {
20
- flags: '-gN, --gatewayName <gatewayName>',
21
- desc: '网关 name'
22
- },
23
- {
24
- flags: '-gA, --gatewayAlias <gatewayAlias>',
25
- desc: '网关 alias'
26
- }
27
- ],
28
- desc: '查询小租户网关'
29
- }
30
- }
31
-
32
- @InjectParams()
33
- async execute(@EnvId() envId, @ArgsOptions() options) {
34
- let { gatewayName = '', gatewayAlias = '' } = options
35
- gatewayName = String(gatewayName)
36
- gatewayAlias = String(gatewayAlias)
37
-
38
- const loading = loadingFactory()
39
-
40
- loading.start('数据加载中...')
41
-
42
- const data = await listStandalonegateway({
43
- envId,
44
- gatewayName,
45
- gatewayAlias
46
- })
47
-
48
- loading.stop()
49
-
50
- const head = ['名称', '状态', '别名', '套餐版本', '子网', '外网IP', '内网IP', '服务信息']
51
- printHorizontalTable(head, data)
52
- }
53
- }
@@ -1,62 +0,0 @@
1
- import { Command, ICommand } from '../../common'
2
- import { listPackageStandalonegateway } from '../../../run'
3
- import { loadingFactory } from '@cloudbase/toolbox'
4
- import { EnvId, ArgsOptions, ArgsParams, InjectParams } from '../../../decorators'
5
- import { standalonegatewayCommonOptions } from './common'
6
- import { CloudBaseError } from '../../../error'
7
- import { printHorizontalTable } from '../../../utils'
8
-
9
- @ICommand()
10
- export class PackageStandalonegateway extends Command {
11
- get options() {
12
- return {
13
- ...standalonegatewayCommonOptions('package <operation>'),
14
- options: [
15
- {
16
- flags: '-e, --envId <envId>',
17
- desc: '环境 Id'
18
- },
19
- {
20
- flags: '-p, --packageVersion <packageVersion>',
21
- desc: '套餐版本'
22
- }
23
- ],
24
- desc: '套餐操作'
25
- }
26
- }
27
-
28
- @InjectParams()
29
- async execute(@EnvId() envId, @ArgsParams() params, @ArgsOptions() options) {
30
- const operation = params?.[0]
31
- if (!operation || ['list'].indexOf(operation) === -1) {
32
- throw new CloudBaseError('请输入具体操作')
33
- }
34
-
35
- switch (operation) {
36
- case 'list':
37
- {
38
- let { appId, packageVersion = '' } = options
39
- appId = String(appId)
40
- packageVersion = String(packageVersion)
41
-
42
- const loading = loadingFactory()
43
-
44
- loading.start('数据加载中...')
45
-
46
- const data = await listPackageStandalonegateway({
47
- envId,
48
- packageVersion
49
- })
50
-
51
- loading.stop()
52
-
53
- const head = ['CPU', '内存', '版本']
54
-
55
- printHorizontalTable(head, data)
56
- }
57
- break
58
- default:
59
- break
60
- }
61
- }
62
- }
@@ -1,63 +0,0 @@
1
- import { Command, ICommand } from '../../common'
2
- import { turnOffStandalonegateway, turnOnStandalonegateway } from '../../../run'
3
- import { loadingFactory } from '@cloudbase/toolbox'
4
- import { ArgsOptions, ArgsParams, EnvId, InjectParams } from '../../../decorators'
5
- import { standalonegatewayCommonOptions } from './common'
6
- import { CloudBaseError } from '../../../error'
7
-
8
- @ICommand()
9
- export class TurnStandalonegateway extends Command {
10
- get options() {
11
- return {
12
- ...standalonegatewayCommonOptions('turn <status>'),
13
- options: [
14
- {
15
- flags: '-e, --envId <envId>',
16
- desc: '环境 Id'
17
- },
18
- {
19
- flags: '-gN, --gatewayName <gatewayName>',
20
- desc: '网关名'
21
- },
22
- {
23
- flags: '-sL, --serviceList <serviceList...>',
24
- desc: '云托管服务列表'
25
- }
26
- ],
27
- desc: '启停小租户网关'
28
- }
29
- }
30
-
31
- @InjectParams()
32
- async execute(@EnvId() envId, @ArgsParams() params, @ArgsOptions() options) {
33
- const status = params?.[0]
34
- if (!status || ['on', 'off'].indexOf(status) === -1) {
35
- throw new CloudBaseError('请输入启停状态')
36
- }
37
-
38
- let { gatewayName = '', serviceList = [] } = options
39
- gatewayName = String(gatewayName)
40
-
41
- if (gatewayName === '') {
42
- throw new CloudBaseError('请输入网关名')
43
- }
44
-
45
- if (serviceList.length === 0) {
46
- throw new CloudBaseError('请输入云托管服务列表')
47
- }
48
-
49
- const loading = loadingFactory()
50
-
51
- loading.start('数据加载中...')
52
-
53
- await (status === 'on' ? turnOnStandalonegateway : turnOffStandalonegateway)({
54
- envId,
55
- gatewayName,
56
- serviceList
57
- })
58
-
59
- loading.stop()
60
-
61
- console.log('操作执行成功')
62
- }
63
- }
@@ -1,8 +0,0 @@
1
- export const versionCommonOptions = (sub: string) => ({
2
- cmd: 'run:deprecated',
3
- childCmd: {
4
- cmd: 'version',
5
- desc: '云托管版本管理'
6
- },
7
- childSubCmd: sub
8
- })
@@ -1,369 +0,0 @@
1
- import { prompt } from 'enquirer'
2
- import { statSync, writeFileSync, unlinkSync } from 'fs'
3
- import { zipDir } from '@cloudbase/toolbox'
4
- import { Command, ICommand } from '../../common'
5
- import { CloudBaseError } from '../../../error'
6
- import {
7
- uploadZip,
8
- createBuild,
9
- createVersion,
10
- listRepo,
11
- listImage,
12
- listBranch,
13
- basicOperate,
14
- logCreate
15
- } from '../../../run'
16
- import { checkTcbrEnv, loadingFactory, logEnvCheck, pagingSelectPromp, random } from '../../../utils'
17
- import { InjectParams, EnvId, ArgsOptions } from '../../../decorators'
18
- import { versionCommonOptions } from './common'
19
- import { EnumEnvCheck } from '../../../constant'
20
-
21
- const uploadTypeMap = {
22
- 本地代码: 'package',
23
- 代码库拉取: 'repository',
24
- 镜像拉取: 'image'
25
- }
26
-
27
- const memMap = {
28
- 0.25: [2, 8],
29
- 0.5: [2, 8],
30
- 1: [1, 8],
31
- 2: [2, 8],
32
- 4: [2, 8],
33
- 8: [2, 4],
34
- 16: [2, 4]
35
- }
36
-
37
- @ICommand()
38
- export class CreateVersion extends Command {
39
- get options() {
40
- return {
41
- ...versionCommonOptions('create'),
42
- options: [
43
- {
44
- flags: '-e, --envId <envId>',
45
- desc: '环境 Id'
46
- },
47
- {
48
- flags: '-s, --serviceName <serviceName>',
49
- desc: '托管服务 name'
50
- },
51
- {
52
- flags: '-p, --path <path>',
53
- desc: '本地代码路径,选择本地代码上传时使用'
54
- },
55
- {
56
- flags: '--repo <repo>',
57
- desc: '仓库信息,形如 channel|fullName|branch,channel为github、gitlab或gitee,选择代码库拉取时使用'
58
- },
59
- {
60
- flags: '-i, --image <image>',
61
- desc: '镜像url,选择镜像拉取时使用'
62
- },
63
- {
64
- flags: '--port <port>',
65
- desc: '监听端口,默认为80'
66
- },
67
- {
68
- flags: '-f, --flow <flow>',
69
- desc: '流量策略(%),0或100,默认为0'
70
- },
71
- {
72
- flags: '-m, --remark <remark>',
73
- desc: '备注信息,默认为空'
74
- },
75
- {
76
- flags: '-c, --cpu <cpu>',
77
- desc: 'cpu规格(核数),默认为0.5'
78
- },
79
- {
80
- flags: '--mem <mem>',
81
- desc: '内存规格(G),默认为1'
82
- },
83
- {
84
- flags: '--copy <copy>',
85
- desc: '副本个数,格式为最小个数~最大个数,默认为0~50'
86
- },
87
- {
88
- flags: '--policy <policy>',
89
- desc: '扩缩容条件,格式为条件类型|条件比例(%),cpu条件为cpu,内存为条件mem,默认为cpu|60'
90
- },
91
- {
92
- flags: '--dockerFile <dockerFile>',
93
- desc: 'dockerfile名称,非镜像拉取时使用,默认为Dockerfile'
94
- },
95
- {
96
- flags: '-l, --log <log>',
97
- desc: '日志采集路径,默认为stdout'
98
- },
99
- {
100
- flags: '-d, --delay <delay>',
101
- desc: '初始延迟时间(秒),默认为2'
102
- },
103
- {
104
- flags: '--env <env>',
105
- desc: '环境变量,格式为xx=a&yy=b,默认为空'
106
- }
107
- ],
108
- desc: '创建云开发环境下云托管服务的版本'
109
- }
110
- }
111
-
112
- /* eslint complexity: ["error", 40] */
113
- @InjectParams()
114
- async execute(@EnvId() envId, @ArgsOptions() options) {
115
- let envCheckType = await checkTcbrEnv(options.envId, false)
116
- if(envCheckType !== EnumEnvCheck.EnvFit) {
117
- logEnvCheck(envId, envCheckType)
118
- return
119
- }
120
-
121
- let {
122
- serviceName = '',
123
- path: _path = '',
124
- repo: _repo = '',
125
- image: _image = '',
126
- port: _port = '80',
127
- flow: _flow = '0',
128
- remark: _remark = '',
129
- cpu: _cpu = '0.5',
130
- mem: _mem = '1',
131
- copy: _copy = '0~50',
132
- policy: _policy = 'cpu|60',
133
- dockerfile: _dockerfile = 'Dockerfile',
134
- log: _log = 'stdout',
135
- delay: _delay = '2',
136
- env: _env = ''
137
- } = options
138
-
139
- if (!serviceName) {
140
- throw new CloudBaseError('必须输入 serviceName')
141
- }
142
- let path: string
143
- let repositoryType: string
144
- let branch: string
145
- let codeDetail: { Name: { Name: string; FullName: string } }
146
- let imageInfo: { ImageUrl: string }
147
- let containerPort: number
148
- let flowRatio: number
149
- let versionRemark: string
150
- let cpu: number
151
- let mem: number
152
- let minNum: number
153
- let maxNum: number
154
- let policyType: string
155
- let policyThreshold: number
156
- let customLogs = 'stdout'
157
- let dockerfilePath = 'Dockerfile'
158
- let initialDelaySeconds = 2
159
- let envParams = '{}'
160
-
161
- const uid = random(4)
162
-
163
- const loading = loadingFactory()
164
-
165
- // 上传方式
166
- if (_path) {
167
- path = _path
168
-
169
- if (statSync(path).isDirectory()) {
170
- loading.start('正在压缩中')
171
- await zipDir(path, `./code${uid}.zip`)
172
- loading.succeed('压缩完成')
173
- path = `./code${uid}.zip`
174
- }
175
- } else if (_repo) {
176
- const repo = _repo.split('|')
177
-
178
- repositoryType = repo[0]
179
-
180
- codeDetail.Name.FullName = repo[1]
181
- codeDetail.Name.Name = repo[1].split('/')[1]
182
-
183
- branch = repo[2]
184
- } else if (_image) {
185
- imageInfo = {
186
- ImageUrl: _image
187
- }
188
- } else {
189
- throw new CloudBaseError('请至少选择一个上传方式')
190
- }
191
-
192
- // 端口号
193
- containerPort = Number(_port)
194
- if (isNaN(containerPort)) {
195
- throw new CloudBaseError('请输入合法的端口号')
196
- }
197
-
198
- // 流量策略
199
- flowRatio = Number(_flow)
200
- if (![100, 0].includes(flowRatio)) {
201
- throw new CloudBaseError('请输入合法的流量策略')
202
- }
203
-
204
- // 备注
205
- versionRemark = _remark
206
-
207
- // 规格
208
- cpu = Number(_cpu)
209
- mem = Number(_mem)
210
- if (isNaN(cpu) || isNaN(mem)) {
211
- throw new CloudBaseError('请输入合法的cpu和内存规格')
212
- }
213
-
214
- // 副本个数
215
- minNum = Number(_copy.split('~')[0])
216
- maxNum = Number(_copy.split('~')[1])
217
- if (isNaN(maxNum) || isNaN(minNum)) {
218
- throw new CloudBaseError('请输入合法的副本个数')
219
- }
220
-
221
- // 扩缩容条件
222
- policyType = _policy.split('|')[0]
223
- policyThreshold = Number(_policy.split('|')[1])
224
- if (!['cpu', 'mem'].includes(policyType) || isNaN(policyThreshold)) {
225
- throw new CloudBaseError('请输入合法的扩缩容条件')
226
- }
227
-
228
- // dockerfile 名称,在非镜像拉取时使用
229
- dockerfilePath = _dockerfile
230
-
231
- // 日志采集路径
232
- customLogs = _log
233
-
234
- // 初始延迟时间
235
- initialDelaySeconds = Number(_delay)
236
- if (isNaN(initialDelaySeconds)) {
237
- throw new CloudBaseError('请输入合法的延迟时间')
238
- }
239
-
240
- // 环境变量
241
- let _envParams = {}
242
- _env.split('&').forEach((item) => {
243
- _envParams[item.split('=')[0]] = item.split('=')[1]
244
- })
245
- envParams = JSON.stringify(_envParams)
246
-
247
- loading.start('加载中...')
248
-
249
- let res = ''
250
- let runId = ''
251
- if (_path) {
252
- loading.start('正在上传中')
253
- let { PackageName, PackageVersion, UploadHeaders, UploadUrl } = await createBuild({
254
- envId,
255
- serviceName
256
- })
257
- await uploadZip(path, UploadUrl, UploadHeaders[0])
258
- loading.succeed('上传成功')
259
- if (path === `./code${uid}.zip`) {
260
- loading.start('删除本地压缩包')
261
- unlinkSync(path)
262
- loading.succeed('成功删除本地压缩包')
263
- }
264
-
265
- let response = await createVersion({
266
- envId,
267
- serverName: serviceName,
268
- containerPort,
269
- uploadType: 'package',
270
- packageName: PackageName,
271
- packageVersion: PackageVersion,
272
- flowRatio,
273
- versionRemark,
274
-
275
- enableUnion: true,
276
- cpu,
277
- mem,
278
- minNum,
279
- maxNum,
280
- policyType,
281
- policyThreshold,
282
-
283
- customLogs,
284
- dockerfilePath,
285
- envParams,
286
- initialDelaySeconds
287
- })
288
- res = response.Result
289
- runId = response.RunId
290
- } else if (_image) {
291
- let response = await createVersion({
292
- envId,
293
- serverName: serviceName,
294
- containerPort,
295
- uploadType: 'image',
296
- imageInfo,
297
- flowRatio,
298
- versionRemark,
299
-
300
- enableUnion: true,
301
- cpu,
302
- mem,
303
- minNum,
304
- maxNum,
305
- policyType,
306
- policyThreshold,
307
-
308
- customLogs,
309
- envParams,
310
- initialDelaySeconds
311
- })
312
- res = response.Result
313
- runId = response.RunId
314
- } else {
315
- let response = await createVersion({
316
- envId,
317
- serverName: serviceName,
318
- containerPort,
319
- uploadType: 'repository',
320
- repositoryType,
321
- branch,
322
- codeDetail,
323
- flowRatio,
324
- versionRemark,
325
-
326
- enableUnion: true,
327
- cpu,
328
- mem,
329
- minNum,
330
- maxNum,
331
- policyType,
332
- policyThreshold,
333
-
334
- customLogs,
335
- dockerfilePath,
336
- envParams,
337
- initialDelaySeconds
338
- })
339
- res = response.Result
340
- runId = response.RunId
341
- }
342
- if (res !== 'succ') throw new CloudBaseError('提交构建任务失败')
343
-
344
- loading.start('正在部署中')
345
-
346
- while (true) {
347
- let { Percent, Status } = await basicOperate({ envId, runId })
348
-
349
- if (Status === 'build_fail') {
350
- let logs = await logCreate({ envId, runId })
351
- writeFileSync(
352
- `./log${runId}`,
353
- logs.reduce((res, item) => res + item + '\n', '')
354
- )
355
- throw new CloudBaseError(`构建失败,日志写入./log${runId}中`)
356
- } else if (Status !== 'creating') {
357
- break
358
- }
359
-
360
- loading.start(`目前构建进度${Percent}%`)
361
-
362
- await new Promise((resolve) => {
363
- setTimeout((_) => resolve('again'), 2000)
364
- })
365
- }
366
-
367
- loading.succeed('构建成功')
368
- }
369
- }
@@ -1,64 +0,0 @@
1
- import { Command, ICommand } from '../../common'
2
- import { CloudBaseError } from '../../../error'
3
- import { deleteVersion } from '../../../run'
4
- import { checkTcbrEnv, loadingFactory, logEnvCheck } from '../../../utils'
5
- import { InjectParams, EnvId, ArgsOptions } from '../../../decorators'
6
- import { versionCommonOptions } from './common'
7
- import { EnumEnvCheck } from '../../../constant'
8
-
9
- @ICommand()
10
- export class DeleteVersion extends Command {
11
- get options() {
12
- return {
13
- ...versionCommonOptions('delete'),
14
- options: [
15
- {
16
- flags: '-e, --envId <envId>',
17
- desc: '环境 Id'
18
- },
19
- {
20
- flags: '-s, --serviceName <serviceName>',
21
- desc: '托管服务 name'
22
- },
23
- {
24
- flags: '-v, --versionName <versionName>',
25
- desc: '版本名称 Name'
26
- }
27
- ],
28
- desc: '删除云开发环境下云托管服务的版本'
29
- }
30
- }
31
-
32
- @InjectParams()
33
- async execute(@EnvId() envId, @ArgsOptions() options) {
34
- let envCheckType = await checkTcbrEnv(options.envId, false)
35
- if(envCheckType !== EnumEnvCheck.EnvFit) {
36
- logEnvCheck(envId, envCheckType)
37
- return
38
- }
39
-
40
- let { serviceName = '', versionName = '' } = options
41
-
42
- if (versionName.length === 0 || serviceName.length === 0) {
43
- throw new CloudBaseError('必须输入 serviceName 和 versionName')
44
- }
45
-
46
- const loading = loadingFactory()
47
-
48
- loading.start('数据加载中...')
49
-
50
- try {
51
- const res = await deleteVersion({
52
- envId,
53
- serverName: serviceName,
54
- versionName
55
- })
56
-
57
- if (res === 'succ') loading.succeed(`成功删除 ${serviceName} 服务下的 ${versionName} 版本`)
58
- else throw new CloudBaseError('删除失败,请查看版本是否存在, 或者先清空版本灰度流量')
59
- } catch(e) {
60
- throw new CloudBaseError('删除失败,请查看版本是否存在, 或者先清空版本灰度流量')
61
- }
62
-
63
- }
64
- }
@@ -1,5 +0,0 @@
1
- export * from './list'
2
- export * from './delete'
3
- export * from './modify'
4
- export * from './create'
5
- export * from './update'