Merge remote-tracking branch 'upstream/master'

This commit is contained in:
ann 2024-03-14 17:35:09 +08:00
commit 323320a1f9
10 changed files with 111 additions and 66 deletions

View File

@ -19,7 +19,9 @@
"easyCreate": "快捷创建",
"next": "下一步",
"success": "操作成功",
"before": "上一步"
"before": "上一步",
"pleaseInput": "请输入",
"pleaseChoose": "请选择"
},
"menu": {
"taskManagement": "Task Management",
@ -92,6 +94,7 @@
"edit":"编辑",
"total":"总条数",
"addAdapter":"新增驱动器",
"updateAdapter": "编辑驱动器",
"bindCluster":"绑定集群",
"clusterAssociation":"集群关联",
"adapterSetting":"驱动器设置",
@ -124,6 +127,22 @@
"AdapterSum": "驱动器总数",
"TaskSum": "任务总数",
"dispatchAdapter": "分配驱动器",
"strategySelected": "调度策略选择"
"strategySelected": "调度策略选择",
"updateCluster": "编辑集群",
"addCluster": "新增集群",
"chooseAdapter": "选择适配器",
"name": "名称",
"monitorAddress": "监控地址",
"version": "版本号",
"otherName": "别名",
"area": "区域",
"projectId": "项目Id",
"tag": "标签",
"authType": "认证方式",
"skak": "SK/AK认证",
"passAuth": "密码认证",
"tokenAuth": "Token认证",
"userName": "用户名",
"password": "密码"
}
}

View File

@ -19,7 +19,9 @@
"easyCreate": "快捷创建",
"next": "下一步",
"success": "操作成功",
"before": "上一步"
"before": "上一步",
"pleaseInput": "请输入",
"pleaseChoose": "请选择"
},
"menu": {
"taskManagement": "任务管理",
@ -68,7 +70,7 @@
"cloud": "数算",
"hpc": "超算",
"ai": "智算",
"title": "云际计算开源社区",
"title": "云际计算基础平台",
"JointDomainresourceflux": " 云际全域资源态势感知 ",
"task": "任务",
"taskDescription": "支持创建不同计算环境或不同硬件平台之间的任务进行互联互通互操作,确保每个任务在不同的计算环境或硬件平台上都可以独立地运行。 ",
@ -92,6 +94,7 @@
"edit":"编辑",
"total":"总条数",
"addAdapter":"新增驱动器",
"updateAdapter": "编辑驱动器",
"bindCluster":"绑定集群",
"clusterAssociation":"集群关联",
"adapterSetting":"驱动器设置",
@ -124,6 +127,22 @@
"AdapterSum": "驱动器总数",
"TaskSum": "任务总数",
"dispatchAdapter": "分配驱动器",
"strategySelected": "调度策略选择"
"strategySelected": "调度策略选择",
"updateCluster": "编辑集群",
"addCluster": "新增集群",
"chooseAdapter": "选择适配器",
"name": "名称",
"monitorAddress": "监控地址",
"version": "版本号",
"otherName": "别名",
"area": "区域",
"projectId": "项目Id",
"tag": "标签",
"authType": "认证方式",
"skak": "SK/AK认证",
"passAuth": "密码认证",
"tokenAuth": "Token认证",
"userName": "用户名",
"password": "密码"
}
}

View File

@ -26,10 +26,18 @@ export function getDashboardInfo() {
})
}
// 虚拟机列表(节点列表)
export function getListServer() {
return request({
url: '/pcm/v1/vm/listServersDetailed',
method: 'get'
})
}
// 概览获取内存cpu使用量
export function getUsageStatus() {
return request({
url: '/pcm/v1/vm/getTotalComputeList',
url: '/pcm/v1/vm/getComputeLimits',
method: 'get'
})
}
@ -37,7 +45,7 @@ export function getUsageStatus() {
// 概览获取存储数据
export function getStorageStatus() {
return request({
url: '/pcm/v1/vm/getTotalVolumeList',
url: '/pcm/v1/vm/getVolumeLimits',
method: 'get'
})
}

View File

@ -1,5 +1,5 @@
<template>
<el-dialog v-if="createFormVisible" :close-on-click-modal="false" :title="isEdit ? '编辑驱动器' : '新增驱动器'" :visible.sync="createFormVisible">
<el-dialog v-if="createFormVisible" :close-on-click-modal="false" :title="isEdit ? $t('page.updateAdapter') : $t('page.addAdapter')" :visible.sync="createFormVisible">
<el-form
ref="editInfoForm"
:rules="rules"
@ -77,16 +77,16 @@ export default {
},
rules: {
name: [
{ required: true, message: '请输入Participant名称' }
{ required: true, message: this.$t('page.pleaseInput') }
],
nickname: [
{ required: true, message: '请输入技术栈名称' }
{ required: true, message: this.$t('page.pleaseInput') }
],
version: [
{ required: true, message: '请输入技术栈版本号' }
{ required: true, message: this.$t('page.pleaseInput') }
],
server: [
{ required: true, message: '请输入地址' }
{ required: true, message: this.$t('page.pleaseInput') }
]
}
}

View File

@ -1,5 +1,5 @@
<template>
<el-dialog v-if="createFormVisible" :close-on-click-modal="false" :title="idEdit ? '编辑集群' : '新增集群'" :visible.sync="createFormVisible">
<el-dialog v-if="createFormVisible" :close-on-click-modal="false" :title="idEdit ? $t('page.updateCluster') : $t('page.updateCluster')" :visible.sync="createFormVisible">
<el-form
ref="editInfoForm"
:rules="rules"
@ -9,7 +9,7 @@
>
<el-form-item
prop="adapterId"
label="选择适配器"
:label="$t('page.chooseAdapter')"
>
<el-select v-model="editInfoForm.adapterId" :disabled="isEdit">
<el-option v-for="item in adapterList" :key="item.id" :value="item.id" :label="item.name" />
@ -18,60 +18,60 @@
<el-divider />
<el-form-item
prop="name"
label="名称"
:label="$t('page.name')"
>
<el-input v-model="editInfoForm.name" />
</el-form-item>
<el-form-item
prop="server"
label="地址"
:label="$t('page.address')"
>
<el-input v-model="editInfoForm.server" />
</el-form-item>
<el-form-item
prop="monitorServer"
label="监控地址"
:label="$t('page.monitorAddress')"
>
<el-input v-model="editInfoForm.monitorServer" />
</el-form-item>
<el-form-item
prop="version"
label="版本号"
:label="$t('page.version')"
>
<el-input v-model="editInfoForm.version" />
</el-form-item>
<el-form-item
prop="nickname"
label="别名"
:label="$t('page.otherName')"
>
<el-input v-model="editInfoForm.nickname" />
</el-form-item>
<el-form-item
prop="region"
label="区域"
:label="$t('page.area')"
>
<el-input v-model="editInfoForm.region" />
</el-form-item>
<el-form-item
prop="projectId"
label="项目Id"
:label="$t('page.projectId')"
>
<el-input v-model="editInfoForm.projectId" />
</el-form-item>
<el-form-item
prop="label"
label="标签"
:label="$t('page.tag')"
>
<el-input v-model="editInfoForm.label" />
</el-form-item>
<el-form-item
prop="authType"
label="认证方式"
:label="$t('page.authType')"
>
<el-select v-model="editInfoForm.authType">
<el-option value="0" label="SK/AK认证" />
<el-option value="1" label="密码认证" />
<el-option value="2" label="Token认证" />
<el-option value="0" :label="$t('page.skak')" />
<el-option value="1" :label="$t('page.passAuth')" />
<el-option value="2" :label="$t('page.tokenAuth')" />
</el-select>
</el-form-item>
<el-divider />
@ -85,10 +85,10 @@
</el-form-item>
</template>
<template v-if="editInfoForm.authType === '1'">
<el-form-item prop="username" label="用户名">
<el-form-item prop="username" :label="$t('page.userName')">
<el-input v-model="editInfoForm.username" />
</el-form-item>
<el-form-item prop="password" label="密码">
<el-form-item prop="password" :label="$t('page.password')">
<el-input v-model="editInfoForm.password" />
</el-form-item>
</template>
@ -148,49 +148,49 @@ export default {
adapterList: [],
rules: {
adapterId: [
{ required: true, message: '请选择适配器' }
{ required: true, message: this.$t('message.pleaseChoose') }
],
name: [
{ required: true, message: '请输入Participant名称' }
{ required: true, message: this.$t('message.pleaseInput') }
],
server: [
{ required: true, message: '请输入地址' }
{ required: true, message: this.$t('message.pleaseInput') }
],
monitorServer: [
{ required: true, message: '请输入监控地址' }
{ required: true, message: this.$t('message.pleaseInput') }
],
version: [
{ required: true, message: '请输入版本号' }
{ required: true, message: this.$t('message.pleaseInput') }
],
nickname: [
{ required: true, message: '请输入别名' }
{ required: true, message: this.$t('message.pleaseInput') }
],
region: [
{ required: true, message: '请输入区域' }
{ required: true, message: this.$t('message.pleaseInput') }
],
projectId: [
{ required: true, message: '请输入项目ID' }
{ required: true, message: this.$t('message.pleaseInput') }
],
label: [
{ required: true, message: '请输入标签' }
{ required: true, message: this.$t('message.pleaseInput') }
],
authType: [
{ required: true, message: '请选择认证方式' }
{ required: true, message: this.$t('message.pleaseChoose') }
],
ak: [
{ required: true, message: '请输入AK' }
{ required: true, message: this.$t('message.pleaseInput') }
],
sk: [
{ required: true, message: '请输入SK' }
{ required: true, message: this.$t('message.pleaseInput') }
],
username: [
{ required: true, message: '请输入用户名' }
{ required: true, message: this.$t('message.pleaseInput') }
],
password: [
{ required: true, message: '请输入密码' }
{ required: true, message: this.$t('message.pleaseInput') }
],
token: [
{ required: true, message: '请输入token' }
{ required: true, message: this.$t('message.pleaseInput') }
]
}
}
@ -244,13 +244,13 @@ export default {
if (valid) {
if (this.isEdit) {
updateCluster(this.editInfoForm).then(res => {
this.$message.success('操作成功')
this.$message.success(this.$t('message.success'))
this.createFormVisible = false
this.$emit('getList')
})
} else {
createCluster(this.editInfoForm).then(res => {
this.$message.success('操作成功')
this.$message.success(this.$t('message.success'))
this.createFormVisible = false
this.$emit('getList')
})

View File

@ -128,9 +128,6 @@ export default {
getAdapterRelation().then(e => (this.num = e.data?.list?.length || 0))
}
},
viewDetail(row) {
// this.$router.push({ path: `virtual-machine/detail`, query: { name: row.name, namespace: row.namespace }})
},
addFun(type) {
this.isEdit = false
if (type === 'adapter') {

View File

@ -79,8 +79,6 @@ export default {
{ prop: 'name', label: this.$t('page.clusterName'), formatter: (row) => { return <a onClick={() => this.selectCluster(row)}>{row.name}</a> } },
{ prop: 'label', label: this.$t('page.classification'), formatter: (row) => { return row.label === 'openstack' ? this.$t('page.vmCluster') : this.$t('page.containerCluster') } },
{ prop: 'description', label: this.$t('page.description') },
// { prop: 'group', label: '' },
// { prop: 'node_num', label: '' },
{ prop: 'version', label: this.$t('page.kbVersion') },
{ prop: 'createTime', label: this.$t('page.createTime'), formatter: (row) => { return row.createTime } }
]

View File

@ -2,12 +2,6 @@
<div class="monitor-page">
<Navbar />
<div class="monitor">
<!-- <div class="top-menu">
<div class="menu">
<a href="">首页</a>
<a @click="viewMenu()">数算资源</a>
</div>
</div> -->
<div class="dashboard">
<el-row :gutter="5">
<el-col :span="8">
@ -186,7 +180,7 @@ export default {
getCenterResourceList().then(res => {
this.UsageTopList = res?.data?.centersIndex
})
//
// event data
getDashboardEvents().then(res => {
this.listData = res.data.slice(0, 3)
})

View File

@ -99,25 +99,27 @@ export default {
}
},
computed: {
clusterName() {
return localStorage.getItem('clusterName')
},
jcceTheme() {
return localStorage.getItem('jcceTheme')
}
},
created() {
//
getDashboardCounts().then(res => {
getDashboardCounts({ 'platform': this.clusterName }).then(res => {
this.counts.virtualMachine = res.data.serverNme
this.counts.networking = res.data.networkNum
this.counts.mirror = res.data.imageNum
this.counts.volume = res.data.volumeNum
})
//
getListServer().then(res => {
// pod list
getListServer({ 'platform': this.clusterName }).then(res => {
this.listData = res.servers
})
Promise.all([
getUsageStatus(), // cpu 使
getStorageStatus()]).then(res => {
getUsageStatus({ 'platform': this.clusterName }),
getStorageStatus({ 'platform': this.clusterName })]).then(res => {
this.cpuUsage = res[0].limits.absolute.total_cores_used
this.cpuTotal = res[0].limits.absolute.max_total_cores
this.memoryUsage = res[0].limits.absolute.total_ram_used

View File

@ -40,15 +40,23 @@ module.exports = {
errors: true
},
proxy: {
'/apis': {
'^/apis': {
ws: false,
target: 'https://pcm.jointcloud.net/',
target: 'https://dev.jointcloud.net/',
changeOrigin: true,
secure: false
},
'/pcm': {
'^/jcc-': {
ws: false,
target: 'https://dev.jointcloud.net/apis',
// target: 'https://jointcloud.net/apis',
changeOrigin: true,
secure: false
},
'^/pcm': {
ws: false,
target: 'https://pcm.jointcloud.net/',
// target: 'https://jointcloud.net/apis',
changeOrigin: true,
secure: false
}