@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,25 +0,0 @@
1
- import { CloudBaseError } from '@cloudbase/toolbox'
2
- import { ChildProcess } from 'child_process'
3
-
4
- export function promisifyProcess(p: ChildProcess, pipe = false) {
5
- return new Promise((resolve, reject) => {
6
- let stdout = ''
7
- let stderr = ''
8
-
9
- p.stdout.on('data', (data => {
10
- stdout +=String(data)
11
- }))
12
- p.stderr.on('data', (data => {
13
- stderr += String(data)
14
- }))
15
- p.on('error', reject)
16
- p.on('exit', exitCode => {
17
- exitCode === 0 ? resolve(stdout) : reject(new CloudBaseError(stderr || String(exitCode)))
18
- })
19
-
20
- if (pipe) {
21
- p.stdout.pipe(process.stdout)
22
- p.stderr.pipe(process.stderr)
23
- }
24
- })
25
- }
@@ -1,153 +0,0 @@
1
- import { prompt } from 'enquirer'
2
- import { Command, ICommand } from '../common'
3
- import { CloudBaseError } from '../../error'
4
- import { getImageRepo, createRun } from '../../run'
5
- import { getVpcs, getSubnets } from '../../function'
6
- import { checkTcbrEnv, loadingFactory, logEnvCheck } from '../../utils'
7
- import { InjectParams, EnvId, ArgsOptions } from '../../decorators'
8
- import { validateIp } from '../../utils/validator'
9
- import { EnumEnvCheck } from '../../constant'
10
-
11
- const ZoneMap = {
12
- shanghai: '上海',
13
- guangzhou: '广州'
14
- }
15
-
16
- @ICommand()
17
- export class CreateRun extends Command {
18
- get options() {
19
- return {
20
- cmd: 'run:deprecated',
21
- childCmd: 'create',
22
- options: [
23
- {
24
- flags: '-e, --envId <envId>',
25
- desc: '环境 Id'
26
- },
27
- {
28
- flags: '-n, --name <name>',
29
- desc: '服务名称,必填'
30
- },
31
- {
32
- flags: '-c, --vpc <vpc>',
33
- desc: '云托管网络设置,默认系统创建,选择已有私有网络则填入格式为私有网络Id|子网Id1,...,子网Idn'
34
- },
35
- {
36
- flags: '-p, --repo <repo>',
37
- desc: '镜像仓库名,默认系统创建'
38
- },
39
- // {
40
- // flags: '-l, --log <log>',
41
- // desc: '日志管理设置,默认为系统默认cls,自定义ES则填入格式为Ip=xx&Port=xx&Index=xx&Account=xx&Password=xx'
42
- // },
43
- {
44
- flags: '-m, --remark <remark>',
45
- desc: '备注,默认为空'
46
- },
47
- {
48
- flags: '-a, --publicAccess <publicAccess>',
49
- desc: '是否允许公网访问(Y/N),默认为允许'
50
- }
51
- ],
52
- desc: '创建云托管服务'
53
- }
54
- }
55
-
56
- @InjectParams()
57
- /* eslint complexity: ["error", 40] */
58
- async execute(@EnvId() envId, @ArgsOptions() options) {
59
- let envCheckType = await checkTcbrEnv(options.envId, false)
60
- if(envCheckType !== EnumEnvCheck.EnvFit) {
61
- logEnvCheck(envId, envCheckType)
62
- return
63
- }
64
-
65
- let {
66
- name: _name = '',
67
- vpc: _vpc = '',
68
- repo: _repo = '',
69
- log: _log = '',
70
- remark: _remark = '',
71
- publicAccess: _publicAccess = ''
72
- } = options
73
- let name: string
74
- let remark: string
75
- let vpcInfo: { VpcId: string; SubnetIds: string[]; CreateType: number }
76
- let imageRepo: string
77
- let logType: string
78
- let esInfo: { Ip: string; Port: number; Index: string; Account: string; Password: string }
79
- let publicAccess: number
80
-
81
- const loading = loadingFactory()
82
-
83
- // 服务名称
84
- if (!_name) {
85
- throw new CloudBaseError('请填入服务名')
86
- } else {
87
- name = _name
88
- }
89
-
90
- // 备注
91
- remark = _remark
92
-
93
- // 云托管网络配置
94
- if (!_vpc) {
95
- vpcInfo = {
96
- VpcId: '',
97
- SubnetIds: [],
98
- CreateType: 1
99
- }
100
- } else {
101
- vpcInfo = {
102
- VpcId: _vpc.split('|')[0],
103
- SubnetIds: _vpc.split('|')[1].split(','),
104
- CreateType: 2
105
- }
106
- }
107
-
108
- // 镜像仓库设置
109
- if (!_repo) {
110
- imageRepo = undefined
111
- } else {
112
- imageRepo = _repo
113
- }
114
-
115
- // 日志配置
116
- if (!_log) {
117
- logType = 'cls'
118
- } else {
119
- logType = 'es'
120
-
121
- esInfo = _log.split('&').reduce((pre, item) => {
122
- pre[item.split('=')[0]] = item.split('=')[0] === 'Port' ? Number(item.split('=')[1]) : item.split('=')[1]
123
- return pre
124
- }, {})
125
- }
126
-
127
- // 公网访问服务
128
- if (!_publicAccess) {
129
- publicAccess = 1
130
- } else if (/[^nNyY]/.test(_publicAccess) || _publicAccess.length !== 1) {
131
- throw new CloudBaseError('请输入符合规范的公网访问服务设置')
132
- } else if (_publicAccess === 'N' || _publicAccess === 'n') {
133
- publicAccess = 2
134
- } else {
135
- publicAccess = 1
136
- }
137
-
138
- const res = await createRun({
139
- envId,
140
- name,
141
- remark,
142
- vpcInfo,
143
- imageRepo,
144
- logType,
145
- esInfo,
146
- publicAccess,
147
- isPublic: true
148
- })
149
-
150
- if (res === 'succ') loading.succeed(`云托管服务 ${name} 创建成功!`)
151
- else throw new CloudBaseError('创建失败,请查看是否已经有同名服务')
152
- }
153
- }
@@ -1,77 +0,0 @@
1
- import { prompt } from 'enquirer'
2
- import { Command, ICommand } from '../common'
3
- import { CloudBaseError } from '../../error'
4
- import { describeImageRepo, listVersion, deleteImageRepo, deleteRun } from '../../run'
5
- import { InjectParams, EnvId, ArgsOptions } from '../../decorators'
6
- import { checkTcbrEnv, loadingFactory, logEnvCheck, pagingSelectPromp } from '../../utils'
7
- import { EnumEnvCheck } from '../../constant'
8
-
9
- @ICommand()
10
- export class DeleteRun extends Command {
11
- get options() {
12
- return {
13
- cmd: 'run:deprecated',
14
- childCmd: 'delete',
15
- options: [
16
- {
17
- flags: '-e, --envId <envId>',
18
- desc: '环境 Id'
19
- },
20
- {
21
- flags: '-s, --serviceName <serviceName>',
22
- desc: '云托管服务 name'
23
- },
24
- ],
25
- desc: '删除云托管服务'
26
- }
27
- }
28
-
29
- @InjectParams()
30
- async execute(@EnvId() envId, @ArgsOptions() options) {
31
- let envCheckType = await checkTcbrEnv(options.envId, false)
32
- if(envCheckType !== EnumEnvCheck.EnvFit) {
33
- logEnvCheck(envId, envCheckType)
34
- return
35
- }
36
-
37
- let { serviceName = '' } = options
38
-
39
- if (serviceName.length === 0) {
40
- throw new CloudBaseError('必须输入服务名')
41
- }
42
-
43
- const loading = loadingFactory()
44
-
45
- loading.start('数据加载中...')
46
-
47
- const versions = await listVersion({ envId, serverName: serviceName, limit: 1, offset: 0 })
48
-
49
- if (versions.length > 0)
50
- throw new CloudBaseError('服务下还有版本存在,请先清空版本列表')
51
-
52
- const imageRepo = await describeImageRepo({ envId, serverName: serviceName })
53
-
54
- loading.start('正在删除服务')
55
- const res = await deleteRun({ envId, serverName: serviceName })
56
- if (res === 'succ')
57
- loading.succeed('服务删除完成')
58
- else
59
- throw new CloudBaseError('服务删除失败')
60
-
61
- if ((await prompt<any>({
62
- type: 'select',
63
- name: 'flag',
64
- message: `是否删除绑定的镜像仓库${imageRepo}`,
65
- choices: ['是', '否']
66
- })).flag === '是') {
67
- loading.start('正在删除镜像仓库')
68
- const res = await deleteImageRepo({ imageRepo })
69
- if (res === '') {
70
- loading.succeed('仓库删除完成')
71
- }
72
- else {
73
- throw new CloudBaseError('仓库删除失败')
74
- }
75
- }
76
- }
77
- }
@@ -1,8 +0,0 @@
1
- export const imageCommonOptions = (sub: string) => ({
2
- cmd: 'run:deprecated',
3
- childCmd: {
4
- cmd: 'image',
5
- desc: '云托管镜像管理'
6
- },
7
- childSubCmd: sub
8
- })
@@ -1,68 +0,0 @@
1
- import { Command, ICommand } from '../../common'
2
- import { CloudBaseError } from '../../../error'
3
- import { deleteImage, describeImageRepo } from '../../../run'
4
- import { checkTcbrEnv, loadingFactory, logEnvCheck } from '../../../utils'
5
- import { InjectParams, EnvId, ArgsOptions } from '../../../decorators'
6
- import { imageCommonOptions } from './common'
7
- import { EnumEnvCheck } from '../../../constant'
8
-
9
- @ICommand()
10
- export class DeleteImage extends Command {
11
- get options() {
12
- return {
13
- ...imageCommonOptions('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: '-t, --imageTag <imageTag>',
25
- desc: '镜像 tag'
26
- }
27
- ],
28
- desc: '删除云开发环境下云托管服务的版本'
29
- }
30
- }
31
-
32
- @InjectParams()
33
- async execute(@EnvId() envId, @ArgsOptions() options) {
34
-
35
- let envCheckType = await checkTcbrEnv(options.envId, false)
36
- if(envCheckType !== EnumEnvCheck.EnvFit) {
37
- logEnvCheck(envId, envCheckType)
38
- return
39
- }
40
-
41
- let { serviceName = '', imageTag = '' } = options
42
-
43
- if (serviceName.length === 0 || imageTag.length === 0) {
44
- throw new CloudBaseError('必须输入 serviceName 和 imageTag')
45
- }
46
-
47
- const loading = loadingFactory()
48
-
49
- loading.start('数据加载中...')
50
-
51
- const imageRepo = await describeImageRepo({ envId, serverName: serviceName })
52
-
53
- const imageUrl = `ccr.ccs.tencentyun.com/${imageRepo}:${imageTag}`
54
-
55
- try {
56
- const res = await deleteImage({
57
- envId,
58
- imageUrl: imageUrl as string
59
- })
60
-
61
- if (res === 'success') loading.succeed(`成功删除 ${serviceName} 服务下的 ${imageUrl} 镜像`)
62
- else throw new CloudBaseError('删除失败')
63
- } catch (e) {
64
- throw new CloudBaseError('删除失败')
65
- }
66
-
67
- }
68
- }
@@ -1,68 +0,0 @@
1
- import { exec } from 'child_process'
2
- import * as util from 'util'
3
- import { prompt } from 'enquirer'
4
- import { Command, ICommand } from '../../common'
5
- import { CloudBaseError } from '../../../error'
6
- import { describeImageRepo, getAuthFlag } from '../../../run'
7
- import { loadingFactory, getUin, checkTcbrEnv, logEnvCheck } from '../../../utils'
8
- import { InjectParams, EnvId, ArgsOptions } from '../../../decorators'
9
- import { imageCommonOptions } from './common'
10
- import { EnumEnvCheck } from '../../../constant'
11
-
12
- @ICommand()
13
- export class DownLoadImage extends Command {
14
- get options() {
15
- return {
16
- ...imageCommonOptions('download'),
17
- options: [
18
- {
19
- flags: '-e, --envId <envId>',
20
- desc: '环境 Id'
21
- },
22
- {
23
- flags: '-s, --serviceName <serviceName>',
24
- desc: '托管服务 name'
25
- },
26
- {
27
- flags: '-t, --imageTag <imageTag>',
28
- desc: '镜像 tag'
29
- }
30
- ],
31
- desc: '删除云开发环境下云托管服务的版本'
32
- }
33
- }
34
-
35
- @InjectParams()
36
- async execute(@EnvId() envId, @ArgsOptions() options) {
37
- let envCheckType = await checkTcbrEnv(options.envId, false)
38
- if(envCheckType !== EnumEnvCheck.EnvFit) {
39
- logEnvCheck(envId, envCheckType)
40
- return
41
- }
42
- let { serviceName = '', imageTag = '' } = options
43
-
44
- if (serviceName.length === 0 || imageTag.length === 0) {
45
- throw new CloudBaseError('必须输入 serviceName 和 imageTag')
46
- }
47
-
48
- const loading = loadingFactory()
49
-
50
- const imageRepo = await describeImageRepo({ envId, serverName: serviceName })
51
-
52
- const imageUrl = `ccr.ccs.tencentyun.com/${imageRepo}:${imageTag}`
53
-
54
- if (!(await getAuthFlag())) {
55
- throw new CloudBaseError('无法找到~/.docker/config.json或未登录,需要执行docker login')
56
- }
57
-
58
- let sh = new Promise<{ code: number; info: string }>((resolve, reject) => {
59
- exec(`docker pull ${imageUrl}`, (err, stdout) =>
60
- err ? reject(err) : resolve({ code: 0, info: stdout })
61
- ).stdout.pipe(process.stdout)
62
- })
63
-
64
- await sh
65
-
66
- loading.succeed('拉取成功')
67
- }
68
- }
@@ -1,5 +0,0 @@
1
- export * from './common'
2
- export * from './download'
3
- export * from './upload'
4
- export * from './delete'
5
- export * from './list'
@@ -1,84 +0,0 @@
1
- import { Command, ICommand } from '../../common'
2
- import { CloudBaseError } from '../../../error'
3
- import { listImage } from '../../../run'
4
- import { printHorizontalTable, loadingFactory, checkTcbrEnv, logEnvCheck } from '../../../utils'
5
- import { InjectParams, EnvId, ArgsOptions } from '../../../decorators'
6
- import { imageCommonOptions } from './common'
7
- import { EnumEnvCheck } from '../../../constant'
8
-
9
- @ICommand()
10
- export class ListImage extends Command {
11
- get options() {
12
- return {
13
- ...imageCommonOptions('list'),
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: '-l, --limit <limit>',
25
- desc: '返回数据长度,默认值为 20'
26
- },
27
- {
28
- flags: '-o, --offset <offset>',
29
- desc: '数据偏移量,默认值为 0'
30
- }
31
- ],
32
- desc: '展示选择的云托管服务的版本列表'
33
- }
34
- }
35
-
36
- @InjectParams()
37
- async execute(@EnvId() envId, @ArgsOptions() options) {
38
- let envCheckType = await checkTcbrEnv(options.envId, false)
39
- if(envCheckType !== EnumEnvCheck.EnvFit) {
40
- logEnvCheck(envId, envCheckType)
41
- return
42
- }
43
- let { limit = 20, offset = 0, serviceName = '' } = options
44
- limit = Number(limit)
45
- offset = Number(offset)
46
-
47
- if (!Number.isInteger(limit) || !Number.isInteger(offset)) {
48
- throw new CloudBaseError('limit 和 offset 必须为整数')
49
- }
50
-
51
- if (limit < 0 || offset < 0) {
52
- throw new CloudBaseError('limit 和 offset 必须为大于 0 的整数')
53
- }
54
-
55
- if (serviceName.length === 0) {
56
- throw new CloudBaseError('请输入查询的服务名')
57
- }
58
-
59
- const loading = loadingFactory()
60
-
61
- loading.start('数据加载中...')
62
-
63
- const data = await listImage({
64
- envId,
65
- limit: Number(limit),
66
- offset: Number(offset),
67
- serviceName: serviceName
68
- })
69
-
70
- loading.stop()
71
-
72
- const head: string[] = ['镜像', '大小', '关联服务版本', '创建时间', '更新时间']
73
-
74
- const tableData = data.map((item) => [
75
- item.ImageUrl.split(':')[1],
76
- item.Size,
77
- item.ReferVersions.length > 0 ? item.ReferVersions.reduce((sum, item) => `${sum}|${item.VersionName}`, '') : '-',
78
- item.CreateTime,
79
- item.UpdateTime,
80
- ])
81
-
82
- printHorizontalTable(head, tableData)
83
- }
84
- }
@@ -1,76 +0,0 @@
1
- import { exec } from 'child_process'
2
- import * as util from 'util'
3
- import { prompt } from 'enquirer'
4
- import { Command, ICommand } from '../../common'
5
- import { CloudBaseError } from '../../../error'
6
- import { describeImageRepo, getAuthFlag } from '../../../run'
7
- import { loadingFactory, getUin, checkTcbrEnv, logEnvCheck } from '../../../utils'
8
- import { InjectParams, EnvId, ArgsOptions } from '../../../decorators'
9
- import { imageCommonOptions } from './common'
10
- import { EnumEnvCheck } from '../../../constant'
11
-
12
- @ICommand()
13
- export class UploadImage extends Command {
14
- get options() {
15
- return {
16
- ...imageCommonOptions('upload'),
17
- options: [
18
- {
19
- flags: '-e, --envId <envId>',
20
- desc: '环境 Id'
21
- },
22
- {
23
- flags: '-s, --serviceName <serviceName>',
24
- desc: '托管服务 name'
25
- },
26
- {
27
- flags: '-i, --imageId <imageId>',
28
- desc: '本地镜像 id'
29
- },
30
- {
31
- flags: '-t, --imageTag <imageTag>',
32
- desc: '镜像 tag'
33
- }
34
- ],
35
- desc: '删除云开发环境下云托管服务的版本'
36
- }
37
- }
38
-
39
- @InjectParams()
40
- async execute(@EnvId() envId, @ArgsOptions() options) {
41
-
42
- let envCheckType = await checkTcbrEnv(options.envId, false)
43
- if(envCheckType !== EnumEnvCheck.EnvFit) {
44
- logEnvCheck(envId, envCheckType)
45
- return
46
- }
47
-
48
- const { serviceName = '', imageId = '', imageTag = '' } = options
49
-
50
- if (serviceName.length === 0 || imageId.length === 0 || imageTag.length === 0) {
51
- throw new CloudBaseError('必须输入 serviceName 和 imageId 和 imageTag')
52
- }
53
-
54
- const loading = loadingFactory()
55
-
56
- if (!(await getAuthFlag())) {
57
- throw new CloudBaseError('无法找到~/.docker/config.json或未登录,需要执行docker login')
58
- }
59
-
60
- const imageRepo = await describeImageRepo({ envId, serverName: serviceName })
61
-
62
- await util.promisify(exec)(`docker tag ${imageId} ccr.ccs.tencentyun.com/${imageRepo}:${imageTag}`)
63
-
64
- let sh = new Promise<{ code: number, info: string }>(
65
- (resolve, reject) => {
66
- exec(
67
- `docker push ccr.ccs.tencentyun.com/${imageRepo}:${imageTag}`,
68
- (stderr, stdout) => stderr ? reject(stderr) : resolve({ code: 0, info: stdout })
69
- ).stdout.pipe(process.stdout)
70
- })
71
-
72
- await sh
73
-
74
- loading.succeed('上传成功')
75
- }
76
- }
@@ -1,7 +0,0 @@
1
- export * from './list'
2
- export * from './create'
3
- export * from './version'
4
- export * from './delete'
5
- export * from './image'
6
- export * from './standalonegateway'
7
- export * from './service'
@@ -1,83 +0,0 @@
1
- import { Command, ICommand } from '../common'
2
- import { CloudBaseError } from '../../error'
3
- import { listRun } from '../../run'
4
- import { printHorizontalTable, loadingFactory, checkTcbrEnv, logEnvCheck} from '../../utils'
5
- import { InjectParams, EnvId, ArgsOptions } from '../../decorators'
6
- import { EnumEnvCheck } from '../../constant'
7
-
8
- const StatusMap = {
9
- succ: '正常'
10
- }
11
-
12
- @ICommand()
13
- export class ListRun extends Command {
14
- get options() {
15
- return {
16
- cmd: 'run:deprecated',
17
- childCmd: 'list',
18
- options: [
19
- {
20
- flags: '-e, --envId <envId>',
21
- desc: '环境 Id'
22
- },
23
- {
24
- flags: '-l, --limit <limit>',
25
- desc: '返回数据长度,默认值为 20'
26
- },
27
- {
28
- flags: '-o, --offset <offset>',
29
- desc: '数据偏移量,默认值为 0'
30
- }
31
- ],
32
- desc: '展示云托管服务列表'
33
- }
34
- }
35
-
36
- @InjectParams()
37
-
38
- async execute(@EnvId() envId, @ArgsOptions() options) {
39
-
40
- let envCheckType = await checkTcbrEnv(options.envId, false)
41
- if(envCheckType !== EnumEnvCheck.EnvFit) {
42
- logEnvCheck(envId, envCheckType)
43
- return
44
- }
45
-
46
- let { limit = 20, offset = 0 } = options
47
- limit = Number(limit)
48
- offset = Number(offset)
49
-
50
- if (!Number.isInteger(limit) || !Number.isInteger(offset)) {
51
- throw new CloudBaseError('limit 和 offset 必须为整数')
52
- }
53
-
54
- if (limit < 0 || offset < 0) {
55
- throw new CloudBaseError('limit 和 offset 必须为大于 0 的整数')
56
- }
57
-
58
- const loading = loadingFactory()
59
-
60
- loading.start('数据加载中...')
61
-
62
- const data = await listRun({
63
- envId,
64
- limit: Number(limit),
65
- offset: Number(offset)
66
- })
67
-
68
- loading.stop()
69
-
70
- const head: string[] = ['服务名称', '服务备注', '创建时间', '修改时间', '状态', '所在私有网络']
71
-
72
- const tableData = data.map((item) => [
73
- item.ServerName,
74
- item.ServiceRemark ? item.ServiceRemark : '-',
75
- item.CreatedTime,
76
- item.UpdatedTime,
77
- StatusMap[item.Status],
78
- item.VpcId,
79
- ])
80
-
81
- printHorizontalTable(head, tableData)
82
- }
83
- }