index.js 39 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747
  1. import * as R from 'ramda'
  2. import { skuCategoryOptions } from '@/locales/zh-CN'
  3. import { HYPERVISORS_MAP } from '@/constants'
  4. import i18n from '@/locales'
  5. import { arrayToObj } from '@/utils/utils'
  6. export const CreateServerForm = {
  7. labelCol: 3,
  8. wrapperCol: 20,
  9. }
  10. // 创建主机的类型
  11. export const SERVER_TYPE = {
  12. private: 'private',
  13. public: 'public',
  14. baremetal: 'baremetal',
  15. idc: 'idc',
  16. }
  17. // 网络配置选项
  18. export const NETWORK_OPTIONS_MAP = {
  19. default: {
  20. label: i18n.t('common_498'),
  21. key: 'default',
  22. },
  23. manual: {
  24. label: i18n.t('compute.text_2'),
  25. key: 'manual',
  26. },
  27. schedtag: {
  28. label: i18n.t('compute.text_3'),
  29. key: 'schedtag',
  30. t: 'compute.text_3',
  31. },
  32. }
  33. // 根据创建类型不同,定义某些 API 请求的默认 params
  34. export const DEFAULT_PARAMS = {
  35. [SERVER_TYPE.idc]: {
  36. network: { // IP子网
  37. scope: '',
  38. filter: 'server_type.notin(ipmi, pxe)',
  39. usable: true,
  40. },
  41. image: {
  42. limit: 0,
  43. scope: '',
  44. details: true,
  45. status: 'active',
  46. },
  47. cloudregion: { // 区域
  48. cloud_env: 'onpremise',
  49. usable: true,
  50. show_emulated: true,
  51. },
  52. zone: {}, // 可用区
  53. capability: {
  54. resource_type: 'share',
  55. show_emulated: true,
  56. },
  57. schedtag: { // 网络调度标签
  58. resource_type: 'networks',
  59. },
  60. sku: {
  61. limit: 0,
  62. public_cloud: false,
  63. postpaid_status: 'available',
  64. },
  65. policySchedtag: { // 调度策略:指定调度标签
  66. limit: 0,
  67. 'filter.0': 'resource_type.equals(hosts)',
  68. },
  69. },
  70. [SERVER_TYPE.private]: {
  71. cloudRegionList: {
  72. cloud_env: 'private',
  73. },
  74. capability: {
  75. resource_type: 'share',
  76. },
  77. skuList: {
  78. public_cloud: false,
  79. },
  80. },
  81. [SERVER_TYPE.public]: {
  82. image: {
  83. limit: 0,
  84. scope: '',
  85. details: true,
  86. status: 'active',
  87. },
  88. cloudRegionList: {
  89. cloud_env: 'public',
  90. },
  91. cloudRegionZoneList: {
  92. cloud_env: 'public',
  93. },
  94. capability: {
  95. resource_type: 'share',
  96. },
  97. skuList: {
  98. public_cloud: true,
  99. postpaid_status: 'available',
  100. },
  101. hostList: {
  102. show_emulated: true,
  103. resource_type: 'shared',
  104. },
  105. instanceSpecs: {
  106. public_cloud: true,
  107. postpaid_status: 'available',
  108. },
  109. },
  110. [SERVER_TYPE.baremetal]: {
  111. cloudRegionList: {
  112. cloud_env: 'onpremise',
  113. },
  114. capability: {
  115. resource_type: 'share',
  116. },
  117. skuList: {
  118. public_cloud: false,
  119. },
  120. },
  121. }
  122. // 套餐全部的配置。这个配置则是对应key value配置
  123. export const ALL_SKU_CATEGORY_OPT = {
  124. key: 'all',
  125. label: i18n.t('compute.text_4'),
  126. }
  127. // 套餐类型
  128. export const SKU_CATEGORY_MAP = R.map(item => Object.keys(item), skuCategoryOptions)
  129. // 自动选择的存储类型
  130. export const STORAGE_AUTO = {
  131. label: i18n.t('compute.text_5'),
  132. key: 'auto',
  133. min: 10,
  134. max: 3 * 1024,
  135. sysMin: 20,
  136. sysMax: 500,
  137. }
  138. // GPU 块数选择配置
  139. export const GPU_COUNT_OPTIONS = [
  140. { label: '1', key: 1 },
  141. { label: '2', key: 2 },
  142. { label: '3', key: 3 },
  143. { label: '4', key: 4 },
  144. { label: '5', key: 5 },
  145. { label: '6', key: 6 },
  146. { label: '7', key: 7 },
  147. { label: '8', key: 8 },
  148. ]
  149. // 调度策略配置选项
  150. export const SCHED_POLICY_OPTIONS_MAP = {
  151. default: {
  152. label: i18n.t('compute.text_1'),
  153. key: 'default',
  154. },
  155. host: {
  156. label: {
  157. [SERVER_TYPE.idc]: i18n.t('compute.text_14'),
  158. [SERVER_TYPE.private]: i18n.t('compute.text_14'),
  159. [SERVER_TYPE.public]: i18n.t('compute.text_15'),
  160. [SERVER_TYPE.baremetal]: i18n.t('compute.text_16'),
  161. },
  162. key: 'host',
  163. },
  164. // cloudprovider: {
  165. // label: i18n.t('compute.text_15'),
  166. // key: 'cloudprovider',
  167. // },
  168. schedtag: {
  169. label: i18n.t('compute.text_3'),
  170. key: 'schedtag',
  171. t: 'compute.text_3',
  172. },
  173. }
  174. // 弹性IP配置选项
  175. export const EIP_TYPES_MAP = {
  176. none: {
  177. label: i18n.t('compute.text_17'),
  178. key: 'none',
  179. },
  180. new: {
  181. label: i18n.t('compute.text_1375'),
  182. key: 'new',
  183. },
  184. bind: {
  185. label: i18n.t('compute.text_19'),
  186. key: 'bind',
  187. },
  188. public: {
  189. label: i18n.t('compute.text_1373'),
  190. key: 'public',
  191. },
  192. }
  193. // 新建弹性IP配置选项
  194. export const EIP_CHARGE_TYPES_MAP = {
  195. traffic: {
  196. label: i18n.t('compute.text_20'),
  197. key: 'traffic',
  198. },
  199. bandwidth: {
  200. label: i18n.t('compute.text_21'),
  201. key: 'bandwidth',
  202. },
  203. }
  204. // 弹性IP设置范围
  205. export const EIP_RANGES_MAP = {
  206. default: {
  207. [EIP_CHARGE_TYPES_MAP.traffic.key]: {
  208. min: 1,
  209. max: 200,
  210. },
  211. [EIP_CHARGE_TYPES_MAP.bandwidth.key]: {
  212. min: 1,
  213. max: 200,
  214. },
  215. },
  216. [HYPERVISORS_MAP.aliyun.key]: {
  217. [EIP_CHARGE_TYPES_MAP.traffic.key]: {
  218. min: 1,
  219. max: 200,
  220. },
  221. [EIP_CHARGE_TYPES_MAP.bandwidth.key]: {
  222. min: 1,
  223. max: 500,
  224. },
  225. },
  226. [HYPERVISORS_MAP.aws.key]: {
  227. [EIP_CHARGE_TYPES_MAP.traffic.key]: {
  228. min: 1,
  229. max: 200,
  230. },
  231. [EIP_CHARGE_TYPES_MAP.bandwidth.key]: {
  232. min: 1,
  233. max: 200,
  234. },
  235. },
  236. [HYPERVISORS_MAP.qcloud.key]: {
  237. [EIP_CHARGE_TYPES_MAP.traffic.key]: {
  238. min: 1,
  239. max: 200,
  240. },
  241. [EIP_CHARGE_TYPES_MAP.bandwidth.key]: {
  242. min: 1,
  243. max: 200,
  244. },
  245. },
  246. [HYPERVISORS_MAP.azure.key]: {
  247. [EIP_CHARGE_TYPES_MAP.traffic.key]: {
  248. min: 1,
  249. max: 200,
  250. },
  251. [EIP_CHARGE_TYPES_MAP.bandwidth.key]: {
  252. min: 1,
  253. max: 200,
  254. },
  255. },
  256. [HYPERVISORS_MAP.huawei.key]: {
  257. [EIP_CHARGE_TYPES_MAP.traffic.key]: {
  258. min: 1,
  259. max: 300,
  260. },
  261. [EIP_CHARGE_TYPES_MAP.bandwidth.key]: {
  262. min: 1,
  263. max: 2000,
  264. stopsArr: [1000],
  265. },
  266. },
  267. [HYPERVISORS_MAP.ucloud.key]: {
  268. [EIP_CHARGE_TYPES_MAP.traffic.key]: {
  269. min: 1,
  270. max: 300,
  271. },
  272. [EIP_CHARGE_TYPES_MAP.bandwidth.key]: {
  273. min: 1,
  274. max: 800,
  275. stopsArr: [400],
  276. },
  277. },
  278. [HYPERVISORS_MAP.ksyun.key]: {
  279. [EIP_CHARGE_TYPES_MAP.traffic.key]: {
  280. min: 1,
  281. max: 200,
  282. },
  283. [EIP_CHARGE_TYPES_MAP.bandwidth.key]: {
  284. min: 1,
  285. max: 1000,
  286. },
  287. },
  288. }
  289. // 公有云计费方式配置选项
  290. export const BILL_TYPES_MAP = {
  291. quantity: {
  292. label: i18n.t('billingType.postpaid'),
  293. key: 'quantity',
  294. },
  295. package: {
  296. label: i18n.t('billingType.prepaid'),
  297. key: 'package',
  298. },
  299. }
  300. // 包年包月购买时长选项配置
  301. export const BUY_DURATION_OPTIONS = [
  302. {
  303. label: i18n.t('compute.text_24'),
  304. key: '1W',
  305. unit: 'W',
  306. includes: [HYPERVISORS_MAP.aliyun.key], // 仅阿里云支持
  307. },
  308. {
  309. label: i18n.t('compute.text_25'),
  310. key: '1M',
  311. unit: 'M',
  312. },
  313. {
  314. label: i18n.t('compute.text_26'),
  315. key: '2M',
  316. unit: 'M',
  317. },
  318. {
  319. label: i18n.t('compute.text_27'),
  320. key: '3M',
  321. unit: 'M',
  322. },
  323. {
  324. label: i18n.t('compute.text_28'),
  325. key: '6M',
  326. unit: 'M',
  327. },
  328. {
  329. label: i18n.t('compute.text_29'),
  330. key: '1Y',
  331. unit: 'Y',
  332. },
  333. {
  334. label: i18n.t('compute.text_30'),
  335. key: '2Y',
  336. unit: 'Y',
  337. },
  338. {
  339. label: i18n.t('compute.text_31'),
  340. key: '3Y',
  341. unit: 'Y',
  342. },
  343. ]
  344. // 管理员密码选择配置
  345. export const LOGIN_TYPES_MAP = {
  346. random: {
  347. label: i18n.t('compute.text_32'),
  348. key: 'random',
  349. },
  350. keypair: {
  351. label: i18n.t('compute.text_33'),
  352. key: 'keypair',
  353. },
  354. image: {
  355. label: i18n.t('compute.text_34'),
  356. key: 'image',
  357. },
  358. password: {
  359. label: i18n.t('compute.text_35'),
  360. key: 'password',
  361. },
  362. }
  363. // 安全组配置选项
  364. export const SECGROUP_OPTIONS_MAP = {
  365. none: {
  366. key: 'default',
  367. label: i18n.t('compute.text_1'),
  368. },
  369. bind: {
  370. key: 'bind',
  371. label: i18n.t('compute.text_36'),
  372. },
  373. }
  374. // 创建预测错误过滤类型映射表
  375. export const FORECAST_FILTERS_MAP = {
  376. host_cpu: i18n.t('compute.text_37'),
  377. host_isolated_device: i18n.t('compute.text_38'),
  378. host_memory: i18n.t('compute.text_39'),
  379. host_network: i18n.t('compute.text_40'),
  380. host_storage: i18n.t('compute.text_41'),
  381. host_status: i18n.t('compute.text_42'),
  382. host_aggregate: i18n.t('compute.text_43'),
  383. disk_schedtag: i18n.t('compute.text_44'),
  384. }
  385. // 资源池配置选项
  386. export const RESOURCE_TYPES_MAP = {
  387. shared: {
  388. label: i18n.t('compute.text_45'),
  389. key: 'shared',
  390. },
  391. prepaid: {
  392. label: i18n.t('compute.text_46'),
  393. key: 'prepaid',
  394. },
  395. }
  396. // 介质过滤类型映射表
  397. export const MEDIUM_MAP = {
  398. rotate: i18n.t('compute.text_47'),
  399. ssd: i18n.t('compute.text_48'),
  400. hybrid: i18n.t('compute.text_578'),
  401. }
  402. export const DISK_TYPES = {
  403. sys: i18n.t('compute.text_49'),
  404. data: i18n.t('compute.text_50'),
  405. 'swap-swap': i18n.t('compute.text_51'),
  406. }
  407. // 支持自定义的存储类型
  408. export const CUSTOM_STORAGE_TYPES = ['openstack', 'kvm', 'hcs']
  409. // 公有云存储类型 + 私有云存储类型
  410. export const STORAGE_TYPES = {
  411. aliyun: {
  412. cloud: {
  413. label: i18n.t('compute.text_52'),
  414. value: 'cloud',
  415. min: 5, // 数据盘或者新建云硬盘的取值范围【G】
  416. max: 2000, // 数据盘或者新建云硬盘的取值范围【G】
  417. sysMin: 20, // 系统盘取值范围【G】
  418. sysMax: 500, // 系统盘取值范围【G】
  419. supportChangeStorageType: false,
  420. },
  421. cloud_efficiency: {
  422. label: i18n.t('compute.text_57'),
  423. value: 'cloud_efficiency',
  424. min: 20,
  425. max: 32768,
  426. default: true,
  427. sysMin: 20,
  428. sysMax: 500,
  429. supportChangeStorageType: true,
  430. getChangeStorageTypeList: (data) => { // 检查是否可以变配到此类型
  431. return ['cloud_ssd', 'cloud_essd_entry', 'cloud_essd_pl0', 'cloud_essd', 'cloud_essd_pl2', 'cloud_essd_pl3', 'cloud_auto']
  432. },
  433. getChangeStorageTypeTips: () => {
  434. return [i18n.t('compute.dick_change_storage_type.cloud_efficiency_1', [i18n.t('compute.text_57'), i18n.t('compute.cloud_regional_disk_auto'), i18n.t('compute.text_54'), i18n.t('common.storage.cloudessdpl0'), i18n.t('compute.aliyun_disk_cloud_auto')])]
  435. },
  436. },
  437. cloud_ssd: {
  438. label: i18n.t('compute.text_53'),
  439. value: 'cloud_ssd',
  440. min: 20,
  441. max: 32768,
  442. sysMin: 20,
  443. sysMax: 500,
  444. supportChangeStorageType: true,
  445. getChangeStorageTypeList: (data) => {
  446. return ['cloud_essd', 'cloud_essd_pl2', 'cloud_essd_pl3', 'cloud_auto']
  447. },
  448. getChangeStorageTypeTips: () => {
  449. return [i18n.t('compute.dick_change_storage_type.cloud_ssd_1', [i18n.t('compute.text_53'), i18n.t('compute.cloud_regional_disk_auto'), i18n.t('compute.text_54'), i18n.t('compute.aliyun_disk_cloud_auto')])]
  450. },
  451. },
  452. cloud_essd: {
  453. label: i18n.t('compute.text_54'),
  454. value: 'cloud_essd',
  455. min: 20,
  456. max: 32768,
  457. sysMin: 20,
  458. sysMax: 500,
  459. supportChangeStorageType: true,
  460. getChangeStorageTypeList: (data) => {
  461. if (data.billing_type === 'postpaid') {
  462. const ret = ['cloud_essd_pl2', 'cloud_essd_pl3', 'cloud_auto']
  463. if (data.disk_type === 'data') {
  464. ret.push('cloud_regional_disk_auto')
  465. }
  466. return ret
  467. }
  468. if (data.billing_type === 'postpaid') {
  469. const ret = ['cloud_essd_pl2', 'cloud_essd_pl3', 'cloud_auto']
  470. if (data.disk_type === 'data') {
  471. ret.push('cloud_regional_disk_auto')
  472. }
  473. return ret
  474. }
  475. return []
  476. },
  477. getChangeStorageTypeTips: () => {
  478. return [i18n.t('compute.disk_change_storage_type.essd'), i18n.t('compute.disk_change_storage_type.essd_1'), i18n.t('compute.disk_change_storage_type.essd_2')]
  479. },
  480. },
  481. cloud_auto: {
  482. label: i18n.t('compute.aliyun_disk_cloud_auto'),
  483. value: 'cloud_auto',
  484. min: 1,
  485. max: 65536,
  486. sysMin: 10,
  487. sysMax: 2048,
  488. supportChangeStorageType: true,
  489. getChangeStorageTypeList: (data) => {
  490. if (data.disk_type === 'data') {
  491. return ['cloud_regional_disk_auto']
  492. }
  493. return []
  494. },
  495. getChangeStorageTypeTips: () => {
  496. return [i18n.t('compute.dick_change_storage_type.cloud_essd_entry_1', [i18n.t('compute.aliyun_disk_cloud_auto'), i18n.t('compute.cloud_regional_disk_auto')])]
  497. },
  498. },
  499. cloud_essd_pl0: {
  500. label: i18n.t('common.storage.cloudessdpl0'),
  501. value: 'cloud_essd_pl0',
  502. min: 40,
  503. max: 32768,
  504. sysMin: 40,
  505. sysMax: 2 * 1024,
  506. supportChangeStorageType: true,
  507. getChangeStorageTypeList: (data) => {
  508. const ret = ['cloud_essd', 'cloud_essd_pl2', 'cloud_essd_pl3', 'cloud_auto']
  509. if (data.disk_type === 'data') {
  510. ret.push('cloud_regional_disk_auto')
  511. }
  512. return ret
  513. },
  514. getChangeStorageTypeTips: () => {
  515. return [i18n.t('compute.dick_change_storage_type.cloud_essd_pl0_1', [i18n.t('common.storage.cloudessdpl0'), i18n.t('compute.cloud_regional_disk_auto')]), i18n.t('compute.disk_change_storage_type.essd'), i18n.t('compute.disk_change_storage_type.essd_1')]
  516. },
  517. },
  518. cloud_essd_pl2: {
  519. label: i18n.t('compute.text_55'),
  520. value: 'cloud_essd_pl2',
  521. min: 461,
  522. max: 32768,
  523. sysMin: 20,
  524. sysMax: 500,
  525. supportChangeStorageType: true,
  526. getChangeStorageTypeList: (data) => {
  527. if (data.billing_type === 'postpaid') {
  528. const ret = ['cloud_essd', 'cloud_essd_pl3', 'cloud_auto']
  529. return ret
  530. }
  531. if (data.billing_type === 'postpaid') {
  532. const ret = ['cloud_essd_pl3']
  533. return ret
  534. }
  535. return []
  536. },
  537. getChangeStorageTypeTips: () => {
  538. return [i18n.t('compute.disk_change_storage_type.essd'), i18n.t('compute.disk_change_storage_type.essd_1'), i18n.t('compute.disk_change_storage_type.essd_3', [i18n.t('compute.text_55'), i18n.t('compute.text_56'), i18n.t('compute.cloud_regional_disk_auto'), i18n.t('compute.text_54'), i18n.t('compute.aliyun_disk_cloud_auto')])]
  539. },
  540. },
  541. cloud_essd_pl3: {
  542. label: i18n.t('compute.text_56'),
  543. value: 'cloud_essd_pl3',
  544. min: 1261,
  545. max: 32768,
  546. sysMin: 20,
  547. sysMax: 500,
  548. supportChangeStorageType: true,
  549. getChangeStorageTypeList: (data) => {
  550. if (data.billing_type === 'postpaid') {
  551. return ['cloud_essd', 'cloud_essd_pl2', 'cloud_auto']
  552. }
  553. return []
  554. },
  555. getChangeStorageTypeTips: () => {
  556. return [i18n.t('compute.disk_change_storage_type.essd'), i18n.t('compute.disk_change_storage_type.essd_1'), i18n.t('compute.disk_change_storage_type.essd_3', [i18n.t('compute.text_55'), i18n.t('compute.text_56'), i18n.t('compute.cloud_regional_disk_auto'), i18n.t('compute.text_54'), i18n.t('compute.aliyun_disk_cloud_auto')])]
  557. },
  558. },
  559. cloud_essd_entry: {
  560. label: i18n.t('compute.cloud_essd_entry'),
  561. value: 'cloud_essd_entry',
  562. min: 10,
  563. max: 32768,
  564. sysMin: 10,
  565. sysMax: 2048,
  566. supportChangeStorageType: true,
  567. getChangeStorageTypeList: (data) => {
  568. const ret = ['cloud_essd_pl0', 'cloud_essd', 'cloud_essd_pl2', 'cloud_essd_pl3', 'cloud_auto']
  569. if (data.disk_type === 'data') {
  570. ret.push('cloud_regional_disk_auto')
  571. }
  572. return ret
  573. },
  574. getChangeStorageTypeTips: () => {
  575. return [i18n.t('compute.dick_change_storage_type.cloud_essd_entry_1', [i18n.t('compute.cloud_essd_entry'), i18n.t('compute.cloud_regional_disk_auto')])]
  576. },
  577. },
  578. ephemeral_ssd: {
  579. label: i18n.t('compute.text_58'),
  580. value: 'ephemeral_ssd',
  581. min: 5,
  582. max: 800,
  583. sysMin: 20,
  584. sysMax: 500,
  585. supportChangeStorageType: false,
  586. },
  587. cloud_regional_disk_auto: {
  588. label: i18n.t('compute.cloud_regional_disk_auto'),
  589. value: 'cloud_regional_disk_auto',
  590. min: 10,
  591. max: 65536,
  592. sysMin: 20,
  593. sysMax: 2048,
  594. supportChangeStorageType: true,
  595. getChangeStorageTypeList: (data) => {
  596. return ['cloud_essd', 'cloud_essd_pl2', 'cloud_essd_pl3', 'cloud_auto']
  597. },
  598. },
  599. elastic_ephemeral_disk_standard: {
  600. label: i18n.t('compute.elastic_ephemeral_disk_standard'),
  601. value: 'elastic_ephemeral_disk_standard',
  602. min: 64,
  603. max: 8192,
  604. sysMin: 20,
  605. sysMax: 2048,
  606. supportChangeStorageType: false,
  607. },
  608. elastic_ephemeral_disk_premium: {
  609. label: i18n.t('compute.elastic_ephemeral_disk_premium'),
  610. value: 'elastic_ephemeral_disk_premium',
  611. min: 64,
  612. max: 8192,
  613. sysMin: 20,
  614. sysMax: 2048,
  615. supportChangeStorageType: false,
  616. },
  617. },
  618. aws: {
  619. gp2: {
  620. label: i18n.t('compute.text_59'),
  621. value: 'gp2',
  622. min: 1,
  623. max: 16384,
  624. default: true,
  625. sysMin: 1,
  626. sysMax: 16384,
  627. },
  628. io1: {
  629. label: i18n.t('common.storage.io', ['io1']),
  630. value: 'io1',
  631. min: 4,
  632. max: 16384,
  633. sysMin: 4,
  634. sysMax: 16384,
  635. },
  636. io2: {
  637. label: i18n.t('common.storage.io', ['io2']),
  638. value: 'io2',
  639. min: 4,
  640. max: 16384,
  641. sysMin: 4,
  642. sysMax: 16384,
  643. },
  644. st1: {
  645. label: i18n.t('compute.text_61'),
  646. value: 'st1',
  647. sysUnusable: true, // 系统盘不可用
  648. min: 500,
  649. max: 16384,
  650. },
  651. sc1: {
  652. label: 'Cold HDD',
  653. value: 'sc1',
  654. sysUnusable: true, // 系统盘不可用
  655. min: 500,
  656. max: 16384,
  657. },
  658. standard: {
  659. label: i18n.t('compute.text_62'),
  660. value: 'standard',
  661. min: 1,
  662. max: 1024,
  663. sysMin: 1,
  664. sysMax: 1024,
  665. },
  666. gp3: {
  667. label: i18n.t('compute.storage_gp3'),
  668. value: 'gp3',
  669. min: 1,
  670. max: 16384,
  671. sysMin: 1,
  672. sysMax: 16384,
  673. },
  674. },
  675. qcloud: {
  676. local_basic: { // 公有云下架了这两款磁盘类型
  677. label: i18n.t('compute.text_63'),
  678. value: 'local_basic',
  679. min: 10,
  680. max: 1600,
  681. sysUnusable: true, // 系统盘不可用
  682. resizeStep: 10, // 扩容步长,默认值是 1 G
  683. unCreateCloud: true, // 不支持创建云硬盘
  684. },
  685. cloud_basic: {
  686. label: i18n.t('compute.text_64'),
  687. value: 'cloud_basic',
  688. min: 10,
  689. max: 16000,
  690. default: true,
  691. sysMin: 50,
  692. sysMax: 500,
  693. resizeStep: 10,
  694. },
  695. cloud_ssd: {
  696. label: i18n.t('compute.text_66'),
  697. value: 'cloud_ssd',
  698. min: 100,
  699. max: 16000,
  700. sysMin: 50,
  701. sysMax: 500,
  702. resizeStep: 10,
  703. },
  704. cloud_hssd: {
  705. label: i18n.t('common_660'),
  706. value: 'cloud_hssd',
  707. min: 100,
  708. max: 16000,
  709. sysMin: 50,
  710. sysMax: 500,
  711. resizeStep: 10,
  712. },
  713. cloud_premium: {
  714. label: i18n.t('compute.text_65'),
  715. value: 'cloud_premium',
  716. min: 50,
  717. max: 16000,
  718. sysMin: 50,
  719. sysMax: 1024,
  720. resizeStep: 10,
  721. },
  722. cloud_bssd: {
  723. label: i18n.t('compute.qcloud.cloud_bssd'),
  724. value: 'cloud_bssd',
  725. min: 20,
  726. max: 32000,
  727. sysMin: 50,
  728. sysMax: 500,
  729. resizeStep: 10,
  730. },
  731. cloud_tssd: {
  732. label: i18n.t('compute.qcloud.cloud_tssd'),
  733. value: 'cloud_tssd',
  734. min: 20,
  735. max: 32000,
  736. sysMin: 50,
  737. sysMax: 500,
  738. resizeStep: 10,
  739. sysUnusable: true, // 系统盘不可用
  740. },
  741. },
  742. azure: {
  743. standard_lrs: {
  744. label: i18n.t('compute.text_67'),
  745. value: 'standard_lrs',
  746. min: 1,
  747. max: 4095,
  748. default: true,
  749. sysMin: 30,
  750. sysMax: 4095,
  751. },
  752. standardssd_lrs: {
  753. label: i18n.t('compute.text_68'),
  754. value: 'standardssd_lrs',
  755. min: 1,
  756. max: 4095,
  757. sysMin: 30,
  758. sysMax: 4095,
  759. },
  760. premium_lrs: {
  761. label: i18n.t('compute.text_69'),
  762. value: 'premium_lrs',
  763. min: 1,
  764. max: 4095,
  765. sysMin: 30,
  766. sysMax: 4095,
  767. },
  768. },
  769. kvm: {
  770. local: {
  771. label: i18n.t('compute.text_70'),
  772. value: 'local',
  773. min: 1,
  774. max: 3 * 1024, // 鹏博士需求,数据盘上限扩大到 3T
  775. default: true,
  776. sysMin: 10,
  777. sysMax: 500,
  778. unCreateCloud: true, // 不支持创建云硬盘
  779. },
  780. nfs: {
  781. label: 'NFS',
  782. value: 'nfs',
  783. min: 1,
  784. max: 3 * 1024,
  785. sysMin: 10,
  786. sysMax: 500,
  787. unCreateCloud: true, // 不支持创建云硬盘
  788. },
  789. gpfs: {
  790. label: 'GPFS',
  791. value: 'gpfs',
  792. min: 1,
  793. max: 3 * 1024,
  794. sysMin: 10,
  795. sysMax: 500,
  796. },
  797. rbd: {
  798. label: 'Ceph RBD',
  799. value: 'rbd',
  800. min: 1,
  801. max: 3072,
  802. sysMin: 10,
  803. sysMax: 500,
  804. },
  805. slvm: {
  806. label: i18n.t('storage.slvm'),
  807. value: 'slvm',
  808. min: 1,
  809. max: 3072,
  810. sysMin: 10,
  811. sysMax: 500,
  812. },
  813. },
  814. onecloud: {
  815. local: {
  816. label: i18n.t('compute.text_70'),
  817. value: 'local',
  818. min: 1,
  819. max: 3 * 1024, // 鹏博士需求,数据盘上限扩大到 3T
  820. default: true,
  821. sysMin: 10,
  822. sysMax: 500,
  823. unCreateCloud: true, // 不支持创建云硬盘
  824. },
  825. 'local-ssd': {
  826. label: i18n.t('common.storage.local-ssd'),
  827. key: 'local-ssd',
  828. min: 1,
  829. max: 20 * 1024,
  830. default: true,
  831. sysMin: 10,
  832. sysMax: 2 * 1024,
  833. unCreateCloud: true, // 不支持创建云硬盘
  834. },
  835. 'local-rotate': {
  836. label: i18n.t('common.storage.local-rotate'),
  837. key: 'local-rotate',
  838. min: 1,
  839. max: 20 * 1024,
  840. default: true,
  841. sysMin: 10,
  842. sysMax: 2 * 1024,
  843. unCreateCloud: true, // 不支持创建云硬盘
  844. },
  845. 'local-hybrid': {
  846. label: i18n.t('common.storage.local-hybrid'),
  847. key: 'local-hybrid',
  848. min: 1,
  849. max: 20 * 1024,
  850. default: true,
  851. sysMin: 10,
  852. sysMax: 2 * 1024,
  853. unCreateCloud: true, // 不支持创建云硬盘
  854. },
  855. nfs: {
  856. label: 'NFS',
  857. value: 'nfs',
  858. min: 1,
  859. max: 3 * 1024,
  860. sysMin: 10,
  861. sysMax: 500,
  862. unCreateCloud: true, // 不支持创建云硬盘
  863. },
  864. gpfs: {
  865. label: 'GPFS',
  866. value: 'gpfs',
  867. min: 1,
  868. max: 3 * 1024,
  869. sysMin: 10,
  870. sysMax: 500,
  871. },
  872. rbd: {
  873. label: 'Ceph RBD',
  874. value: 'rbd',
  875. min: 1,
  876. max: 3072,
  877. sysMin: 10,
  878. sysMax: 500,
  879. },
  880. slvm: {
  881. label: i18n.t('storage.slvm'),
  882. value: 'slvm',
  883. min: 1,
  884. max: 3072,
  885. sysMin: 10,
  886. sysMax: 500,
  887. },
  888. },
  889. cloudpods: {
  890. local: {
  891. label: i18n.t('compute.text_70'),
  892. value: 'local',
  893. min: 1,
  894. max: 3 * 1024, // 鹏博士需求,数据盘上限扩大到 3T
  895. default: true,
  896. sysMin: 10,
  897. sysMax: 500,
  898. unCreateCloud: true, // 不支持创建云硬盘
  899. },
  900. 'local-ssd': {
  901. label: i18n.t('common.storage.local-ssd'),
  902. key: 'local-ssd',
  903. min: 1,
  904. max: 20 * 1024,
  905. default: true,
  906. sysMin: 10,
  907. sysMax: 2 * 1024,
  908. unCreateCloud: true, // 不支持创建云硬盘
  909. },
  910. 'local-rotate': {
  911. label: i18n.t('common.storage.local-rotate'),
  912. key: 'local-rotate',
  913. min: 1,
  914. max: 20 * 1024,
  915. default: true,
  916. sysMin: 10,
  917. sysMax: 2 * 1024,
  918. unCreateCloud: true, // 不支持创建云硬盘
  919. },
  920. 'local-hybrid': {
  921. label: i18n.t('common.storage.local-hybrid'),
  922. key: 'local-hybrid',
  923. min: 1,
  924. max: 20 * 1024,
  925. default: true,
  926. sysMin: 10,
  927. sysMax: 2 * 1024,
  928. unCreateCloud: true, // 不支持创建云硬盘
  929. },
  930. nfs: {
  931. label: 'NFS',
  932. value: 'nfs',
  933. min: 1,
  934. max: 3 * 1024,
  935. sysMin: 10,
  936. sysMax: 500,
  937. unCreateCloud: true, // 不支持创建云硬盘
  938. },
  939. gpfs: {
  940. label: 'GPFS',
  941. value: 'gpfs',
  942. min: 1,
  943. max: 3 * 1024,
  944. sysMin: 10,
  945. sysMax: 500,
  946. },
  947. rbd: {
  948. label: 'Ceph RBD',
  949. value: 'rbd',
  950. min: 1,
  951. max: 3072,
  952. sysMin: 10,
  953. sysMax: 500,
  954. },
  955. slvm: {
  956. label: i18n.t('storage.slvm'),
  957. value: 'slvm',
  958. min: 1,
  959. max: 3072,
  960. sysMin: 10,
  961. sysMax: 500,
  962. },
  963. },
  964. esxi: {
  965. local: {
  966. label: i18n.t('compute.text_70'),
  967. value: 'local',
  968. min: 1,
  969. // max: 500,
  970. max: 3 * 1024, // 鹏博士需求,数据盘上限扩大到 3T
  971. default: true,
  972. sysMin: 10,
  973. sysMax: 500,
  974. unCreateCloud: true, // 不支持创建云硬盘
  975. },
  976. nas: {
  977. label: i18n.t('compute.text_71'),
  978. value: 'nas',
  979. min: 1,
  980. max: 3072,
  981. sysMin: 10,
  982. sysMax: 500,
  983. unCreateCloud: true, // 不支持创建云硬盘
  984. },
  985. vsan: {
  986. label: i18n.t('compute.text_72'),
  987. value: 'vsan',
  988. min: 1,
  989. max: 3072,
  990. sysMin: 10,
  991. sysMax: 500,
  992. unCreateCloud: true, // 不支持创建云硬盘
  993. },
  994. },
  995. huawei: {
  996. SSD: {
  997. label: i18n.t('compute.text_73'),
  998. value: 'SSD',
  999. min: 10,
  1000. max: 32768,
  1001. sysMin: 20,
  1002. sysMax: 1024,
  1003. sort: 3,
  1004. },
  1005. SAS: {
  1006. label: i18n.t('compute.text_74'),
  1007. value: 'SAS',
  1008. min: 10,
  1009. max: 32768,
  1010. sysMin: 20,
  1011. sysMax: 1024,
  1012. sort: 2,
  1013. },
  1014. SATA: {
  1015. label: i18n.t('compute.text_75'),
  1016. value: 'SATA',
  1017. min: 10,
  1018. max: 32768,
  1019. default: true,
  1020. sysMin: 20,
  1021. sysMax: 1024,
  1022. sort: 1,
  1023. },
  1024. GPSSD2: {
  1025. label: i18n.t('compute.text_76'),
  1026. value: 'GPSSD2',
  1027. min: 10,
  1028. max: 32768,
  1029. sysMin: 20,
  1030. sysMax: 1024,
  1031. sort: 4,
  1032. },
  1033. },
  1034. hcso: {
  1035. SSD: {
  1036. label: i18n.t('compute.text_73'),
  1037. value: 'SSD',
  1038. min: 10,
  1039. max: 32768,
  1040. sysMin: 20,
  1041. sysMax: 1024,
  1042. sort: 3,
  1043. },
  1044. SAS: {
  1045. label: i18n.t('compute.text_74'),
  1046. value: 'SAS',
  1047. min: 10,
  1048. max: 32768,
  1049. sysMin: 20,
  1050. sysMax: 1024,
  1051. sort: 2,
  1052. },
  1053. SATA: {
  1054. label: i18n.t('compute.text_75'),
  1055. value: 'SATA',
  1056. min: 10,
  1057. max: 32768,
  1058. default: true,
  1059. sysMin: 20,
  1060. sysMax: 1024,
  1061. sort: 1,
  1062. },
  1063. },
  1064. hcs: {
  1065. SSD: {
  1066. label: i18n.t('compute.text_73'),
  1067. value: 'SSD',
  1068. min: 10,
  1069. max: 32768,
  1070. sysMin: 20,
  1071. sysMax: 1024,
  1072. sort: 3,
  1073. },
  1074. SAS: {
  1075. label: i18n.t('compute.text_74'),
  1076. value: 'SAS',
  1077. min: 10,
  1078. max: 32768,
  1079. sysMin: 20,
  1080. sysMax: 1024,
  1081. sort: 2,
  1082. },
  1083. SATA: {
  1084. label: i18n.t('compute.text_75'),
  1085. value: 'SATA',
  1086. min: 10,
  1087. max: 32768,
  1088. default: true,
  1089. sysMin: 20,
  1090. sysMax: 1024,
  1091. sort: 1,
  1092. },
  1093. volume_type1: {
  1094. label: 'volume_type1',
  1095. value: 'volume_type1',
  1096. min: 10,
  1097. max: 32768,
  1098. sysMin: 20,
  1099. sysMax: 1024,
  1100. sort: 4,
  1101. },
  1102. },
  1103. openstack: {
  1104. iscsi: {
  1105. label: 'iscsi',
  1106. value: 'iscsi',
  1107. min: 1,
  1108. max: 500,
  1109. sysMin: 10,
  1110. sysMax: 500,
  1111. },
  1112. },
  1113. ucloud: {
  1114. CLOUD_NORMAL: {
  1115. label: i18n.t('compute.text_52'),
  1116. value: 'CLOUD_NORMAL',
  1117. min: 20,
  1118. max: 8000,
  1119. sysUnusable: true, // 系统盘不可用
  1120. skuFamily: ['N2', 'N3'],
  1121. },
  1122. CLOUD_SSD: {
  1123. label: i18n.t('compute.text_76'),
  1124. value: 'CLOUD_SSD',
  1125. min: 20,
  1126. max: 4000,
  1127. sysMin: 20,
  1128. sysMax: 500,
  1129. skuFamily: ['N3', 'C1', 'N2', 'I2', 'G2', 'G3'],
  1130. },
  1131. EXCLUSIVE_LOCAL_DISK: {
  1132. label: i18n.t('compute.text_77'),
  1133. value: 'EXCLUSIVE_LOCAL_DISK',
  1134. min: 4096,
  1135. max: 4096,
  1136. sysUnusable: true, // 系统盘不可用
  1137. skuFamily: ['D1'],
  1138. },
  1139. },
  1140. zstack: {
  1141. localstorage: {
  1142. label: i18n.t('compute.text_78'),
  1143. value: 'localstorage',
  1144. min: 1,
  1145. max: 3 * 1024,
  1146. sysMin: 10,
  1147. sysMax: 500,
  1148. },
  1149. ceph: {
  1150. label: i18n.t('compute.text_79'),
  1151. value: 'ceph',
  1152. min: 1,
  1153. max: 3 * 1024,
  1154. sysMin: 10,
  1155. sysMax: 500,
  1156. },
  1157. },
  1158. ctyun: {
  1159. SSD: {
  1160. label: i18n.t('compute.ctyun.ssd'),
  1161. value: 'SSD',
  1162. min: 10,
  1163. max: 32768,
  1164. sysMin: 20,
  1165. sysMax: 1024,
  1166. sort: 3,
  1167. },
  1168. SAS: {
  1169. label: i18n.t('compute.ctyun.sas'),
  1170. value: 'SAS',
  1171. min: 10,
  1172. max: 32768,
  1173. sysMin: 20,
  1174. sysMax: 1024,
  1175. sort: 2,
  1176. },
  1177. SATA: {
  1178. label: i18n.t('compute.ctyun.sata'),
  1179. value: 'SATA',
  1180. min: 10,
  1181. max: 32768,
  1182. default: true,
  1183. sysMin: 20,
  1184. sysMax: 1024,
  1185. sort: 1,
  1186. },
  1187. 'SSD-genric': {
  1188. label: i18n.t('compute.ctyun.ssd_genric'),
  1189. value: 'SSD-genric',
  1190. min: 10,
  1191. max: 32768,
  1192. default: true,
  1193. sysMin: 20,
  1194. sysMax: 1024,
  1195. sort: 1,
  1196. },
  1197. 'FAST-SSD': {
  1198. label: i18n.t('compute.ctyun.fast_ssd'),
  1199. value: 'FAST-SSD',
  1200. min: 10,
  1201. max: 32768,
  1202. default: true,
  1203. sysMin: 20,
  1204. sysMax: 1024,
  1205. sort: 1,
  1206. },
  1207. },
  1208. google: {
  1209. 'pd-ssd': {
  1210. label: i18n.t('compute.text_80'),
  1211. value: 'pd-ssd',
  1212. min: 10,
  1213. max: 65536,
  1214. sysMin: 10,
  1215. sysMax: 65536,
  1216. sort: 1,
  1217. },
  1218. 'pd-standard': {
  1219. label: i18n.t('compute.text_81'),
  1220. value: 'pd-standard',
  1221. min: 10,
  1222. max: 65536,
  1223. sysMin: 10,
  1224. sysMax: 65536,
  1225. sort: 2,
  1226. },
  1227. 'local-ssd': {
  1228. label: i18n.t('compute.text_82'),
  1229. value: 'local-ssd',
  1230. min: 375,
  1231. max: 375,
  1232. sysMin: 375,
  1233. sysMax: 375,
  1234. sort: 3,
  1235. },
  1236. 'pd-balanced': {
  1237. label: i18n.t('common.storage.pd-balanced'),
  1238. value: 'pd-balanced',
  1239. min: 10,
  1240. max: 65536,
  1241. sysMin: 10,
  1242. sysMax: 65536,
  1243. sort: 2,
  1244. },
  1245. 'hyperdisk-balanced': {
  1246. label: i18n.t('common.storage.hyperdisk-balanced'),
  1247. key: 'hyperdisk-balanced',
  1248. min: 4,
  1249. max: 65536,
  1250. sysMin: 4,
  1251. sysMax: 65536,
  1252. sort: 5,
  1253. },
  1254. 'hyperdisk-extreme': {
  1255. label: i18n.t('common.storage.hyperdisk-extreme'),
  1256. key: 'hyperdisk-extreme',
  1257. min: 64,
  1258. max: 65536,
  1259. sysMin: 64,
  1260. sysMax: 65536,
  1261. sort: 6,
  1262. },
  1263. 'hyperdisk-ml': {
  1264. label: i18n.t('common.storage.hyperdisk-ml'),
  1265. key: 'hyperdisk-ml',
  1266. min: 4,
  1267. max: 65536,
  1268. sysMin: 4,
  1269. sysMax: 65536,
  1270. sort: 7,
  1271. },
  1272. 'hyperdisk-throughput': {
  1273. label: i18n.t('common.storage.hyperdisk-throughput'),
  1274. key: 'hyperdisk-throughput',
  1275. min: 2048,
  1276. max: 32768,
  1277. sysMin: 2048,
  1278. sysMax: 32768,
  1279. sort: 8,
  1280. },
  1281. },
  1282. apsara: {
  1283. cloud: {
  1284. label: i18n.t('compute.text_52'),
  1285. value: 'cloud',
  1286. min: 5, // 数据盘或者新建云硬盘的取值范围【G】
  1287. max: 2000, // 数据盘或者新建云硬盘的取值范围【G】
  1288. sysMin: 20, // 系统盘取值范围【G】
  1289. sysMax: 500, // 系统盘取值范围【G】
  1290. },
  1291. cloud_ssd: {
  1292. label: i18n.t('compute.text_53'),
  1293. value: 'cloud_ssd',
  1294. min: 20,
  1295. max: 32768,
  1296. sysMin: 20,
  1297. sysMax: 500,
  1298. },
  1299. cloud_essd: {
  1300. label: i18n.t('compute.text_54'),
  1301. value: 'cloud_essd',
  1302. min: 20,
  1303. max: 32768,
  1304. sysMin: 20,
  1305. sysMax: 500,
  1306. },
  1307. cloud_essd_pl2: {
  1308. label: i18n.t('compute.text_55'),
  1309. value: 'cloud_essd_pl2',
  1310. min: 461,
  1311. max: 32768,
  1312. sysMin: 20,
  1313. sysMax: 500,
  1314. },
  1315. cloud_essd_pl3: {
  1316. label: i18n.t('compute.text_56'),
  1317. value: 'cloud_essd_pl3',
  1318. min: 1261,
  1319. max: 32768,
  1320. sysMin: 20,
  1321. sysMax: 500,
  1322. },
  1323. cloud_efficiency: {
  1324. label: i18n.t('compute.text_57'),
  1325. value: 'cloud_efficiency',
  1326. min: 20,
  1327. max: 32768,
  1328. default: true,
  1329. sysMin: 20,
  1330. sysMax: 500,
  1331. },
  1332. ephemeral_ssd: {
  1333. label: i18n.t('compute.text_58'),
  1334. value: 'ephemeral_ssd',
  1335. min: 5,
  1336. max: 800,
  1337. sysMin: 20,
  1338. sysMax: 500,
  1339. },
  1340. },
  1341. [HYPERVISORS_MAP.nutanix.key]: {
  1342. local: {
  1343. label: i18n.t('compute.text_70'),
  1344. value: 'local',
  1345. min: 1,
  1346. max: 3 * 1024, // 鹏博士需求,数据盘上限扩大到 3T
  1347. default: true,
  1348. sysMin: 10,
  1349. sysMax: 500,
  1350. unCreateCloud: true, // 不支持创建云硬盘
  1351. },
  1352. },
  1353. [HYPERVISORS_MAP.volcengine.key]: {
  1354. ESSD_FlexPL: {
  1355. label: i18n.t('compute.volcengine.essd_flexpl'),
  1356. value: 'ESSD_FlexPL',
  1357. min: 20,
  1358. max: 32768,
  1359. default: true,
  1360. sysMin: 40,
  1361. sysMax: 2048,
  1362. sort: 1,
  1363. },
  1364. ESSD_PL0: {
  1365. label: i18n.t('compute.volcengine.essd_pl0'),
  1366. value: 'ESSD_PL0',
  1367. min: 20,
  1368. max: 32768,
  1369. default: true,
  1370. sysMin: 40,
  1371. sysMax: 2048,
  1372. sort: 2,
  1373. },
  1374. PTSSD: {
  1375. label: i18n.t('compute.volcengine.ptssd'),
  1376. value: 'PTSSD',
  1377. min: 20,
  1378. max: 8192,
  1379. default: true,
  1380. sysMin: 40,
  1381. sysMax: 500,
  1382. sort: 3,
  1383. },
  1384. },
  1385. // [HYPERVISORS_MAP.bingocloud.key]: {
  1386. // local: {
  1387. // label: i18n.t('compute.text_70'),
  1388. // value: 'local',
  1389. // min: 1,
  1390. // max: 3 * 1024,
  1391. // default: true,
  1392. // sysMin: 10,
  1393. // sysMax: 500,
  1394. // unCreateCloud: true, // 不支持创建云硬盘
  1395. // },
  1396. // },
  1397. [HYPERVISORS_MAP.zettakit.key]: {
  1398. 'normal/ssd': {
  1399. label: i18n.t('compute.zettakit.normal_ssd'),
  1400. value: 'normal/ssd',
  1401. min: 10,
  1402. max: 2000,
  1403. default: true,
  1404. sysMin: 20,
  1405. sysMax: 1000,
  1406. sort: 1,
  1407. },
  1408. 'performance/ssd': {
  1409. label: i18n.t('compute.zettakit.performance_ssd'),
  1410. value: 'performance/ssd',
  1411. min: 10,
  1412. max: 2000,
  1413. default: true,
  1414. sysMin: 20,
  1415. sysMax: 1000,
  1416. sort: 2,
  1417. },
  1418. },
  1419. [HYPERVISORS_MAP.uis.key]: {
  1420. dir: {
  1421. label: i18n.t('compute.uis.dir'),
  1422. value: 'dir',
  1423. min: 40,
  1424. max: 1024,
  1425. default: true,
  1426. sysMin: 40,
  1427. sysMax: 1024,
  1428. sort: 1,
  1429. },
  1430. fs: {
  1431. label: i18n.t('compute.uis.fs'),
  1432. value: 'fs',
  1433. min: 40,
  1434. max: 1024,
  1435. default: true,
  1436. sysMin: 40,
  1437. sysMax: 1024,
  1438. sort: 2,
  1439. },
  1440. },
  1441. [HYPERVISORS_MAP.ksyun.key]: {
  1442. ESSD_AutoPL: {
  1443. label: i18n.t('compute.ksyun.essd_auto_pl'),
  1444. value: 'ESSD_AutoPL',
  1445. min: 20,
  1446. max: 65536,
  1447. default: false,
  1448. sysMin: 20,
  1449. sysMax: 500,
  1450. sort: 1,
  1451. },
  1452. ESSD_PL1: {
  1453. label: i18n.t('compute.ksyun.essd_pl1'),
  1454. value: 'ESSD_PL1',
  1455. min: 20,
  1456. max: 65536,
  1457. default: true,
  1458. sysMin: 20,
  1459. sysMax: 500,
  1460. sort: 2,
  1461. },
  1462. ESSD_PL2: {
  1463. label: i18n.t('compute.ksyun.essd_pl2'),
  1464. value: 'ESSD_PL2',
  1465. min: 461,
  1466. max: 65536,
  1467. default: true,
  1468. sysMin: 461,
  1469. sysMax: 65536,
  1470. sort: 3,
  1471. },
  1472. ESSD_PL3: {
  1473. label: i18n.t('compute.ksyun.essd_pl3'),
  1474. value: 'ESSD_PL3',
  1475. min: 1761,
  1476. max: 65536,
  1477. default: true,
  1478. sysMin: 1761,
  1479. sysMax: 65536,
  1480. sort: 4,
  1481. },
  1482. 'SSD3.0': {
  1483. label: i18n.t('compute.ksyun.ssd3.0'),
  1484. value: 'SSD3.0',
  1485. min: 1,
  1486. max: 65536,
  1487. default: true,
  1488. sysMin: 20,
  1489. sysMax: 500,
  1490. sort: 5,
  1491. },
  1492. EHDD: {
  1493. label: i18n.t('compute.ksyun.ehdd'),
  1494. value: 'EHDD',
  1495. min: 1,
  1496. max: 65536,
  1497. default: true,
  1498. sysMin: 20,
  1499. sysMax: 500,
  1500. sort: 6,
  1501. },
  1502. Local_SSD: {
  1503. label: i18n.t('compute.ksyun.local_ssd'),
  1504. value: 'Local_SSD',
  1505. min: 10,
  1506. max: 500,
  1507. default: true,
  1508. sysMin: 20,
  1509. sysMax: 500,
  1510. sort: 7,
  1511. },
  1512. },
  1513. [HYPERVISORS_MAP.baidu.key]: {
  1514. ssd: {
  1515. label: i18n.t('compute.baidu.ssd'),
  1516. value: 'ssd',
  1517. min: 5,
  1518. max: 65536,
  1519. sysMin: 10,
  1520. sysMax: 20480,
  1521. default: true,
  1522. },
  1523. premium_ssd: {
  1524. label: i18n.t('compute.baidu.premium_ssd'),
  1525. value: 'premium_ssd',
  1526. min: 20,
  1527. max: 65536,
  1528. sysMin: 10,
  1529. sysMax: 20480,
  1530. default: true,
  1531. },
  1532. hdd: {
  1533. label: i18n.t('compute.baidu.hdd'),
  1534. value: 'hdd',
  1535. min: 5,
  1536. max: 65536,
  1537. sysMin: 10,
  1538. sysMax: 20480,
  1539. default: true,
  1540. },
  1541. enhanced_ssd_pl1: {
  1542. label: i18n.t('compute.baidu.enhanced_ssd_pl1'),
  1543. value: 'enhanced_ssd_pl1',
  1544. min: 5,
  1545. max: 65536,
  1546. sysMin: 10,
  1547. sysMax: 20480,
  1548. default: true,
  1549. },
  1550. enhanced_ssd_pl2: {
  1551. label: i18n.t('compute.baidu.enhanced_ssd_pl2'),
  1552. value: 'enhanced_ssd_pl2',
  1553. min: 461,
  1554. max: 65536,
  1555. sysMin: 461,
  1556. sysMax: 20480,
  1557. default: true,
  1558. },
  1559. enhanced_ssd_pl3: {
  1560. label: i18n.t('compute.baidu.enhanced_ssd_pl3'),
  1561. value: 'enhanced_ssd_pl3',
  1562. min: 1261,
  1563. max: 65536,
  1564. sysMin: 1261,
  1565. sysMax: 20480,
  1566. default: true,
  1567. },
  1568. },
  1569. }
  1570. export const ALL_STORAGE = {}
  1571. export const ALL_STORAGE_LABEL = {}
  1572. Object.keys(STORAGE_TYPES).forEach(hypervisor => {
  1573. Object.assign(ALL_STORAGE, STORAGE_TYPES[hypervisor])
  1574. })
  1575. Object.keys(ALL_STORAGE).forEach(sType => {
  1576. ALL_STORAGE_LABEL[sType] = ALL_STORAGE[sType].label
  1577. })
  1578. export const weekOptions = [i18n.t('compute.text_83'), i18n.t('compute.text_84'), i18n.t('compute.text_85'), i18n.t('compute.text_86'), i18n.t('compute.text_87'), i18n.t('compute.text_88'), i18n.t('compute.text_89')]
  1579. export const timeOptions = [
  1580. '00:00',
  1581. '01:00',
  1582. '02:00',
  1583. '03:00',
  1584. '04:00',
  1585. '05:00',
  1586. '06:00',
  1587. '07:00',
  1588. '08:00',
  1589. '09:00',
  1590. '10:00',
  1591. '11:00',
  1592. '12:00',
  1593. '13:00',
  1594. '14:00',
  1595. '15:00',
  1596. '16:00',
  1597. '17:00',
  1598. '18:00',
  1599. '19:00',
  1600. '20:00',
  1601. '21:00',
  1602. '22:00',
  1603. '23:00',
  1604. ]
  1605. // 磁盘类型
  1606. export const DISK_TYPE = {
  1607. data: {
  1608. value: 'data',
  1609. text: i18n.t('compute.text_50'),
  1610. },
  1611. sys: {
  1612. value: 'sys',
  1613. text: i18n.t('compute.text_49'),
  1614. },
  1615. }
  1616. // 购买时长
  1617. export const BUY_DURATIONS_OPTIONS = [
  1618. {
  1619. label: i18n.t('compute.text_25'),
  1620. value: '1M',
  1621. unit: 'M',
  1622. },
  1623. {
  1624. label: i18n.t('compute.text_26'),
  1625. value: '2M',
  1626. unit: 'M',
  1627. },
  1628. {
  1629. label: i18n.t('compute.text_27'),
  1630. value: '3M',
  1631. unit: 'M',
  1632. },
  1633. {
  1634. label: i18n.t('compute.text_28'),
  1635. value: '6M',
  1636. unit: 'M',
  1637. },
  1638. {
  1639. label: i18n.t('compute.text_29'),
  1640. value: '1Y',
  1641. unit: 'Y',
  1642. },
  1643. {
  1644. label: i18n.t('compute.text_30'),
  1645. value: '2Y',
  1646. unit: 'Y',
  1647. },
  1648. {
  1649. label: i18n.t('compute.text_31'),
  1650. value: '3Y',
  1651. unit: 'Y',
  1652. },
  1653. ]
  1654. // 记录创建成功后选择的镜像,存储cookie的key suffix
  1655. export const SELECT_IMAGE_KEY_SUFFIX = '__select_image'
  1656. export const GPU_DEV_TYPE_OPTIONS = [
  1657. { label: i18n.t('compute.vga_gpu'), value: 'GPU-VGA' },
  1658. { label: i18n.t('compute.hpc_gpu'), value: 'GPU-HPC' },
  1659. { label: 'VGPU', value: 'VGPU' },
  1660. ]
  1661. export const GPU_DEV_TYPE_OPTION_MAP = arrayToObj(GPU_DEV_TYPE_OPTIONS, 'value')
  1662. // 磁盘制备类型
  1663. export const PREALLOCATION_OPTIONS = [
  1664. { label: i18n.t('compute.preallocation.off'), value: 'off' },
  1665. { label: i18n.t('compute.preallocation.metadata'), value: 'metadata' },
  1666. { label: i18n.t('compute.preallocation.falloc'), value: 'falloc' },
  1667. { label: i18n.t('compute.preallocation.full'), value: 'full' },
  1668. ]
  1669. export const PREALLOCATION_OPTION_MAP = arrayToObj(PREALLOCATION_OPTIONS, 'value')
  1670. export const SMART_SSH_FORM_DECORATORS = {
  1671. username: [
  1672. 'username',
  1673. {
  1674. rules: [
  1675. { required: true, message: i18n.t('common.tips.input', [i18n.t('scope.text_406')]) },
  1676. ],
  1677. },
  1678. {
  1679. label: i18n.t('scope.text_406'),
  1680. placeholder: i18n.t('common.tips.input', [i18n.t('scope.text_406')]),
  1681. },
  1682. ],
  1683. password: [
  1684. 'password',
  1685. {
  1686. rules: [
  1687. { required: true, message: i18n.t('common.tips.input', [i18n.t('common_328')]) },
  1688. ],
  1689. },
  1690. {
  1691. label: i18n.t('common_328'),
  1692. placeholder: i18n.t('common.tips.input', [i18n.t('common_328')]),
  1693. },
  1694. ],
  1695. port: [
  1696. 'port',
  1697. {
  1698. validateFirst: true,
  1699. rules: [
  1700. { required: true, message: i18n.t('compute.text_347') },
  1701. {
  1702. validator: (rule, value, _callback) => {
  1703. const num = parseFloat(value)
  1704. if (!/^\d+$/.test(value) || !num || num > 65535) {
  1705. _callback(i18n.t('compute.text_348'))
  1706. }
  1707. _callback()
  1708. },
  1709. },
  1710. ],
  1711. },
  1712. {
  1713. label: i18n.t('compute.text_349'),
  1714. placeholder: i18n.t('compute.text_350'),
  1715. },
  1716. ],
  1717. }