diff --git a/web_src/vuepages/apis/modules/resources.js b/web_src/vuepages/apis/modules/resources.js index eda18ddb3..69c94d8fc 100644 --- a/web_src/vuepages/apis/modules/resources.js +++ b/web_src/vuepages/apis/modules/resources.js @@ -1,13 +1,5 @@ import service from '../service'; -export const getQueueList = (params) => { - return service({ - url: '/admin/resources/queue', - method: 'get', - params, - }); -} - // 查询资源队列列表 // page 当前页数,从1开始 // cluster 所属集群 :OpenI 启智集群,C2Net 智算集群 @@ -43,11 +35,11 @@ export const updateResQueue = (data) => { // CardsTotalNum,Remark } // 查询所有资源队列名称列表 -export const getResQueueCode = () => { +export const getResQueueCode = (params) => { // cluster return service({ url: '/admin/resources/queue/codes', method: 'get', - params: {}, + params, data: {}, }); } @@ -70,12 +62,13 @@ export const updateResSpecification = (data) => { // data => { ID: 1, action: 'e url: `/admin/resources/specification/update/${data.ID}`, method: 'post', params: { action: data.action }, - data: { UnitPrice: data.action === 'edit' ? data.UnitPrice : undefined } + data: { UnitPrice: data.action === 'edit' || data.action === 'on-shelf' ? data.UnitPrice : undefined } }); } -// 查询资源队列列表 +// 查询资源规格列表 // page +// cluster 所属集群 :OpenI 启智集群,C2Net 智算集群 // queue 所属队列id // status 状态 : 1 待审核 2已上架 3已下架 export const getResSpecificationList = (params) => { @@ -86,3 +79,57 @@ export const getResSpecificationList = (params) => { data: {}, }); } + +// 新增资源应用场景 +/* +{ + "SceneName":"启智集群调试任务", //应用场景名 + "JobType":"TRAIN", //任务类型 DEBUG调试任务 BENCHMARK 评测任务 TRAIN 训练 INFERENCE 推理 + "IsExclusive":true, //是否专属 + "ExclusiveOrg":"123,456", //专属组织 + "QueueId":2, //队列id + "SpecIds":[2,3] // 资源规格id +} +*/ +export const addResScene = (data) => { + return service({ + url: '/admin/resources/scene/add', + method: 'post', + params: {}, + data, + }); +} + +// 更新资源应用场景 +// params: action:edit-编辑 delete-删除, +// data: { +// "SceneName":"启智集群调试任务", //应用场景名 +// "IsExclusive":true, //是否专属 +// "ExclusiveOrg":"123,456", //专属组织 +// "SpecIds":[2,3] // 资源规格id +//} +export const updateResScene = (data) => { + return service({ + url: `/admin/resources/scene/update/${data.ID}`, + method: 'post', + params: { action: data.action }, + data: { + ...data + }, + }); +} + +// 查询资源应用场景 +// page +// jobType +// center +// queue 所属队列 +// IsExclusive 是否专属 1 专属 2 非专属 +export const getResSceneList = (params) => { + return service({ + url: '/admin/resources/scene/list', + method: 'get', + params, + data: {}, + }); +} diff --git a/web_src/vuepages/const/index.js b/web_src/vuepages/const/index.js index b2fc9b47f..af097ac01 100644 --- a/web_src/vuepages/const/index.js +++ b/web_src/vuepages/const/index.js @@ -9,8 +9,8 @@ export const POINT_ACTIONS = [ export const JOB_TYPE = [{ k: 'DEBUG', v: i18n.t('debugTask') }, { k: 'TRAIN', v: i18n.t('trainTask') }, { k: 'INFERENCE', v: i18n.t('inferenceTask') }, { k: 'BENCHMARK', v: i18n.t('benchmarkTask') }]; // 资源管理 -export const CLUSTERS = [{ k: 'OpenI', v: '启智集群' }, { k: 'C2Net', v: '智算集群' }]; -export const AI_CENTER = [{ k: 'OpenIOne', v: '云脑一' }, { k: 'OpenITwo', v: '云脑二' }, { k: 'chendu', v: '成都人工智能计算中心' }, { k: 'pclcci', v: '鹏城云计算所' }, { k: 'hefei', v: '合肥类脑类脑智能开放平台' }, { k: 'xuchang', v: '中原人工智能计算中心' }]; +export const CLUSTERS = [{ k: 'OpenI', v: i18n.t('resourcesManagement.OpenI') }, { k: 'C2Net', v: i18n.t('resourcesManagement.C2Net') }]; +export const AI_CENTER = [{ k: 'OpenIOne', v: i18n.t('resourcesManagement.OpenIOne') }, { k: 'OpenITwo', v: i18n.t('resourcesManagement.OpenITwo') }, { k: 'chendu', v: i18n.t('resourcesManagement.chenduCenter') }, { k: 'pclcci', v: i18n.t('resourcesManagement.pclcci') }, { k: 'hefei', v: i18n.t('resourcesManagement.hefeiCenter') }, { k: 'xuchang', v: i18n.t('resourcesManagement.xuchangCenter') }]; export const COMPUTER_RESOURCES = [{ k: 'GPU', v: 'GPU' }, { k: 'NPU', v: 'NPU' }]; export const ACC_CARD_TYPE = [{ k: 'T4', v: 'T4' }, { k: 'A100', v: 'A100' }, { k: 'V100', v: 'V100' }, { k: 'Ascend910', v: 'Ascend 910' }]; -export const SPECIFICATION_STATUS = [{ k: '1', v: '待上架' }, { k: '2', v: '已上架' }, { k: '3', v: '已下架' }]; +export const SPECIFICATION_STATUS = [{ k: '1', v: i18n.t('resourcesManagement.toOnShelf') }, { k: '2', v: i18n.t('resourcesManagement.onShelf') }, { k: '3', v: i18n.t('resourcesManagement.offShelf') }]; diff --git a/web_src/vuepages/langs/config/en-US.js b/web_src/vuepages/langs/config/en-US.js index bfd193a95..cc66eb33a 100644 --- a/web_src/vuepages/langs/config/en-US.js +++ b/web_src/vuepages/langs/config/en-US.js @@ -3,6 +3,16 @@ const en = { noData: 'No Data', date: 'Date', + confirm: 'Confirm', + cancel: 'Cancel', + pleaseCompleteTheInformationFirst: 'Please Complete the Information first!', + submittedSuccessfully: 'Submitted Successfully!', + submittedFailed: 'Submitted Failed!', + operation: 'Operation', + edit: 'Edit', + delete: 'Delete', + tips: 'Tips', + accomplishTask: 'Accomplish Task', adminOperate: 'Administrator Operation', runCloudBrainTask: 'Run CloudBrain Task', @@ -65,6 +75,78 @@ const en = { noPointGainRecord: 'No Point Earn Record Yet', noPointConsumeRecord: 'No Point Consume Record Yet', + + resourcesManagement: { + OpenI: 'OpenI', + C2Net: 'C2Net', + OpenIOne: 'OpenI One', + OpenITwo: 'OpenI Two', + chenduCenter: 'ChenDu AI Center', + pclcci: 'PCL Cloud Computer Institute', + hefeiCenter: 'HeFei AI Center', + xuchangCenter: 'XuChang AI Center', + toOnShelf: 'To Be On Shelf', + onShelf: 'On Shelf', + offShelf: 'Off Shelf', + toOnShelf: 'To On Shelf', + toOffShelf: 'To Off Shelf', + toSetPriceAndOnShelf: 'To Set Price and On Shelf', + status: 'Status', + allStatus: 'All Status', + syncAiNetwork: 'Sync AI Network', + resQueue: 'Resources Queue', + allResQueue: 'All Resources Queues', + addResQueue: 'Add Resources Queue', + addResQueueBtn: 'Add Resources Queue', + editResQueue: 'Edit Resources Queue', + resQueueName: 'Resources Queue Name', + whichCluster: 'Cluster', + allCluster: 'All Clusters', + aiCenter: 'AI Center', + aiCenterID: 'AI Center ID', + allAiCenter: 'All AI Centers', + computeResource: 'Compute Resource', + allComputeResource: 'All Compute Resources', + accCardType: 'Acc Card Type', + allAccCardType: 'All Acc Card Type', + cardsTotalNum: 'Cards Total Number', + accCardsNum: 'Acc Cards Number', + remark: 'Remark', + pleaseEnterRemark: 'Please Enter Remark', + pleaseEnterPositiveIntegerCardsTotalNum: 'Please Enter Positive Integer Cards Total Number!', + addResSpecificationAndPriceInfo: 'Add Resources Specification and Price Info', + addResSpecificationBtn: 'Add Resources Specification', + editResSpecificationAndPriceInfo: 'Edit Resources Specification and Price Info', + resSpecificationAndPriceManagement: 'Resources Specification and Price Management', + sourceSpecCode: 'Source Specification Code', + sourceSpecCodeTips: 'OpenI Two Should Enter the Source Specification Code', + sourceSpecId: 'Source Specification ID', + cpuNum: 'CPU Number', + gpuMem: 'GPU Memory', + mem: 'Memory', + shareMem: 'Share Memory', + unitPrice: 'Unit Price', + point_hr: 'Point/hr', + onShelfConfirm: 'Are you sure to on shelf the resources specification?', + offShelfConfirm: 'Are you sure to off shelf the resources specification?', + resSceneManagement: 'Resources Scene Management', + addResScene: 'Add Resources Scene', + addResSceneBtn: 'Add Resources Scene', + editResScene: 'Edit Resources Scene', + resSceneName: 'Resources Scene Name', + jobType: 'Job Type', + allJobType: 'All Job Type', + isExclusive: 'Is Exclusive?', + allExclusiveAndCommonUse: 'All Exclusive and Common Use', + exclusive: 'Exclusive', + commonUse: 'Common Use', + exclusiveOrg: 'Exclusive Organization', + exclusiveOrgTips: 'Multiple organization names are separated by semicolons', + computeCluster: 'Compute Cluster', + resourceSpecification: 'Resource Specification', + lastUpdateTime: 'Last Update Time', + resSceneDeleteConfirm: 'Are you sure to delete the current Resource Scene?', + }, } export default en; diff --git a/web_src/vuepages/langs/config/zh-CN.js b/web_src/vuepages/langs/config/zh-CN.js index 9f8ecff5b..a468eccb5 100644 --- a/web_src/vuepages/langs/config/zh-CN.js +++ b/web_src/vuepages/langs/config/zh-CN.js @@ -3,6 +3,16 @@ const zh = { noData: '暂无数据', date: '日期', + confirm: '确认', + cancel: '取消', + pleaseCompleteTheInformationFirst: '请先完善信息!', + submittedSuccessfully: '提交成功!', + submittedFailed: '提交失败!', + operation: '操作', + edit: '修改', + delete: '删除', + tips: '提示', + accomplishTask: '积分任务', adminOperate: '管理员操作', runCloudBrainTask: '运行云脑任务', @@ -65,6 +75,78 @@ const zh = { noPointGainRecord: '还没有积分获取记录', noPointConsumeRecord: '还没有积分消耗记录', + + resourcesManagement: { + OpenI: '启智集群', + C2Net: '智算集群', + OpenIOne: '云脑一', + OpenITwo: '云脑二', + chenduCenter: '成都人工智能计算中心', + pclcci: '鹏城云计算所', + hefeiCenter: '合肥类脑类脑智能开放平台', + xuchangCenter: '中原人工智能计算中心', + toOnShelf: '待上架', + onShelf: '已上架', + offShelf: '已下架', + toOnShelf: '上架', + toOffShelf: '下架', + toSetPriceAndOnShelf: '定价上架', + status: '状态', + allStatus: '全部状态', + syncAiNetwork: '同步智算网络', + resQueue: '资源池(队列)', + allResQueue: '全部资源池(队列)', + addResQueue: '新建资源池(队列)', + addResQueueBtn: '新增资源池', + editResQueue: '修改资源池(队列)', + resQueueName: '资源池(队列)名称', + whichCluster: '所属集群', + allCluster: '全部集群', + aiCenter: '智算中心', + aiCenterID: '智算中心ID', + allAiCenter: '全部智算中心', + computeResource: '计算资源', + allComputeResource: '全部计算资源', + accCardType: '卡类型', + allAccCardType: '全部卡类型', + cardsTotalNum: '卡数', + accCardsNum: '卡数', + remark: '备注', + pleaseEnterRemark: '请输入备注', + pleaseEnterPositiveIntegerCardsTotalNum: '请输入正整数的卡数!', + addResSpecificationAndPriceInfo: '新增资源规格和单价信息', + addResSpecificationBtn: '新增资源规格', + editResSpecificationAndPriceInfo: '修改资源规格和单价信息', + resSpecificationAndPriceManagement: '资源规格单价管理', + sourceSpecCode: '对应资源编码', + sourceSpecCodeTips: '云脑II需要填写对应的资源编码', + sourceSpecId: '智算网络资源规格ID', + cpuNum: 'CPU数', + gpuMem: '显存', + mem: '内存', + shareMem: '共享内存', + unitPrice: '单价', + point_hr: '积分/时', + onShelfConfirm: '请确认是否上架该规格?', + offShelfConfirm: '请确认是否下架该规格?', + resSceneManagement: '算力资源应用场景管理', + addResScene: '新建算力资源应用场景', + addResSceneBtn: '新增应用场景', + editResScene: '修改算力资源应用场景', + resSceneName: '应用场景名称', + jobType: '任务类型', + allJobType: '全部任务类型', + isExclusive: '是否专属', + allExclusiveAndCommonUse: '全部专属和通用', + exclusive: '专属', + commonUse: '通用', + exclusiveOrg: '专属组织', + exclusiveOrgTips: '多个组织名之间用英文分号隔开', + computeCluster: '算力集群', + resourceSpecification: '资源规格', + lastUpdateTime: '最后更新时间', + resSceneDeleteConfirm: '是否确认删除当前应用场景?', + }, } export default zh; diff --git a/web_src/vuepages/pages/resources/components/QueueDialog.vue b/web_src/vuepages/pages/resources/components/QueueDialog.vue index 3b4dbecad..8527a1487 100644 --- a/web_src/vuepages/pages/resources/components/QueueDialog.vue +++ b/web_src/vuepages/pages/resources/components/QueueDialog.vue @@ -1,12 +1,13 @@