index.js 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228
  1. // import AnsibleTemplate from '@Compute/views/ansible-template'
  2. // import AnsibleTemplateCreate from '@Compute/views/ansible-template/create'
  3. import Layout from '@/layouts/RouterView'
  4. import { setupKeys, isBaremetalProduct } from '@/utils/auth'
  5. import i18n from '@/locales'
  6. import { isScopedPolicyMenuHidden } from '@/utils/scopedPolicy'
  7. import store from '@/store'
  8. const VmRelase = () => import(/* webpackChunkName: "helm" */ /* webpackPrefetch: true */ '@Helm/views/vm-release')
  9. const VmReleaseUpdate = () => import(/* webpackChunkName: "helm" */ /* webpackPrefetch: true */ '@Helm/views/vm-release/update')
  10. const K8sRelease = () => import(/* webpackChunkName: "helm" */ /* webpackPrefetch: true */ '@Helm/views/k8s-release')
  11. const K8sReleaseUpdate = () => import(/* webpackChunkName: "helm" */ /* webpackPrefetch: true */ '@Helm/views/k8s-release/update')
  12. const Chart = () => import(/* webpackChunkName: "helm" */ /* webpackPrefetch: true */ '@Helm/views/chart')
  13. const K8sChartCreate = () => import(/* webpackChunkName: "helm" */ /* webpackPrefetch: true */ '@Helm/views/chart/create')
  14. const Repo = () => import(/* webpackChunkName: "helm" */ /* webpackPrefetch: true */ '@Helm/views/repo')
  15. const Scheduledtask = () => import(/* webpackChunkName: "helm" */ /* webpackPrefetch: true */ '@Cloudenv/views/scheduledtask')
  16. const ScheduledtaskCreate = () => import(/* webpackChunkName: "helm" */ /* webpackPrefetch: true */ '@Cloudenv/views/scheduledtask/create')
  17. // let Monitor = { meta: { hidden: true } }
  18. // const modules = require.context('../../../containers', true, /^((?![\\/]node_modules).)*.\/router\/index.js$/)
  19. // const moduleList = modules.keys()
  20. // if ([].includes.call(moduleList, './Monitor/router/index.js')) {
  21. // Monitor = modules('./Monitor/router/index.js').default
  22. // }
  23. export default {
  24. index: 70,
  25. meta: {
  26. label: i18n.t('helm.text_1'),
  27. icon: 'menu-helm',
  28. },
  29. menus: [
  30. // Monitor,
  31. {
  32. meta: {
  33. label: i18n.t('helm.text_7'),
  34. },
  35. submenus: [
  36. {
  37. path: '/scheduledtask',
  38. meta: {
  39. hidden: () => {
  40. if (isScopedPolicyMenuHidden('sub_hidden_menus.scheduledtask')) {
  41. return true
  42. }
  43. if (store.getters?.globalSetting?.value?.productVersion === 'AI') {
  44. return true
  45. }
  46. return process.env.VUE_APP_IS_PRIVATE ? !setupKeys.hasVersionedSetupKey({
  47. '3.0': ['monitor'],
  48. default: ['onestack', 'private', 'public', 'vmware'],
  49. }) : (!setupKeys.hasVersionedSetupKey({ '3.0': ['onecloud'] }) || isBaremetalProduct())
  50. },
  51. label: i18n.t('helm.text_8'),
  52. permission: 'scheduledtasks_list',
  53. },
  54. component: Layout,
  55. children: [
  56. {
  57. name: 'Scheduledtasks',
  58. path: '',
  59. component: Scheduledtask,
  60. },
  61. {
  62. name: 'ScheduledtaskCreate',
  63. path: 'create',
  64. component: ScheduledtaskCreate,
  65. },
  66. ],
  67. },
  68. // {
  69. // path: '/ansibletemplate',
  70. // meta: {
  71. // label: i18n.t('dictionary.ansibletemplate'),
  72. // permission: 'ansible_devtool_templates_list',
  73. // },
  74. // component: Layout,
  75. // children: [
  76. // {
  77. // name: 'AnsibleTemplate',
  78. // path: '',
  79. // component: AnsibleTemplate,
  80. // },
  81. // {
  82. // name: 'AnsibleTemplateCreate',
  83. // path: 'create',
  84. // component: AnsibleTemplateCreate,
  85. // },
  86. // ],
  87. // },
  88. ],
  89. },
  90. {
  91. meta: {
  92. label: i18n.t('helm.text_2'),
  93. },
  94. submenus: [
  95. {
  96. path: '/vm-release',
  97. component: Layout,
  98. meta: {
  99. label: i18n.t('helm.text_3'),
  100. permission: 'k8s_releases_list',
  101. hidden: () => {
  102. if (isScopedPolicyMenuHidden('sub_hidden_menus.vm_release')) {
  103. return true
  104. }
  105. if (store.getters?.globalSetting?.value?.productVersion === 'AI') {
  106. return true
  107. }
  108. return process.env.VUE_APP_IS_PRIVATE ? !setupKeys.hasVersionedSetupKey({
  109. '3.0': ['monitor'],
  110. default: ['onestack', 'openstack', 'dstack', 'zstack', 'public', 'k8s', 'vmware', 'hcso', 'hcs'],
  111. }) : !setupKeys.hasVersionedSetupKey({ '3.0': ['k8s'] })
  112. },
  113. // invisible: () => true,
  114. },
  115. children: [
  116. {
  117. name: 'VmRelaseIndex',
  118. path: '',
  119. component: VmRelase,
  120. },
  121. {
  122. name: 'VmReleaseUpdate',
  123. path: 'update/:name',
  124. component: VmReleaseUpdate,
  125. },
  126. ],
  127. },
  128. {
  129. path: '/k8s-release',
  130. component: Layout,
  131. meta: {
  132. label: i18n.t('helm.text_4'),
  133. permission: 'k8s_releases_list',
  134. hidden: () => {
  135. if (isScopedPolicyMenuHidden('sub_hidden_menus.k8s_release')) {
  136. return true
  137. }
  138. if (store.getters?.globalSetting?.value?.productVersion === 'AI') {
  139. return true
  140. }
  141. return !setupKeys.hasAllVersionedSetupKey({
  142. '3.0': ['monitor', 'k8s'],
  143. default: ['k8s'],
  144. })
  145. },
  146. // invisible: () => true,
  147. },
  148. children: [
  149. {
  150. name: 'K8sRelaseIndex',
  151. path: '',
  152. component: K8sRelease,
  153. },
  154. {
  155. name: 'K8sReleaseUpdate',
  156. path: 'update/:id',
  157. component: K8sReleaseUpdate,
  158. },
  159. ],
  160. },
  161. {
  162. path: '/k8s-chart',
  163. meta: {
  164. label: i18n.t('helm.text_5'),
  165. permission: 'k8s_charts_list',
  166. hidden: () => {
  167. if (isScopedPolicyMenuHidden('sub_hidden_menus.k8s_chart')) {
  168. return true
  169. }
  170. if (store.getters?.globalSetting?.value?.productVersion === 'AI') {
  171. return true
  172. }
  173. return process.env.VUE_APP_IS_PRIVATE ? !setupKeys.hasVersionedSetupKey({
  174. '3.0': ['monitor'],
  175. default: ['onestack', 'openstack', 'dstack', 'zstack', 'public', 'k8s', 'vmware', 'hcso', 'hcs'],
  176. }) : !setupKeys.hasVersionedSetupKey({ '3.0': ['k8s'] })
  177. },
  178. // invisible: () => true,
  179. },
  180. component: Layout,
  181. children: [
  182. {
  183. name: 'K8sChartList',
  184. path: '',
  185. component: Chart,
  186. },
  187. {
  188. name: 'K8sChartCreate',
  189. path: 'create',
  190. component: K8sChartCreate,
  191. },
  192. ],
  193. },
  194. {
  195. path: '/k8s-repo',
  196. meta: {
  197. label: i18n.t('helm.text_6'),
  198. permission: 'k8s_repos_list',
  199. hidden: () => {
  200. if (isScopedPolicyMenuHidden('sub_hidden_menus.k8s_repo')) {
  201. return true
  202. }
  203. if (store.getters?.globalSetting?.value?.productVersion === 'AI') {
  204. return true
  205. }
  206. return process.env.VUE_APP_IS_PRIVATE ? !setupKeys.hasVersionedSetupKey({
  207. '3.0': ['monitor'],
  208. default: ['onestack', 'openstack', 'dstack', 'zstack', 'public', 'k8s', 'vmware', 'hcso', 'hcs'],
  209. }) : !setupKeys.hasVersionedSetupKey({ '3.0': ['k8s'] })
  210. },
  211. // invisible: () => true,
  212. },
  213. component: Layout,
  214. children: [
  215. {
  216. name: 'K8sRepoList',
  217. path: '',
  218. component: Repo,
  219. },
  220. ],
  221. },
  222. ],
  223. },
  224. ],
  225. }