#89 #27, #11, 以及 查看'等待中'训练任务的运行信息弹出'系统错误'bug修复

Merged
liwei03 merged 5 commits from openioctopus/octopus:initInfo into master 2 years ago
  1. +16
    -0
      deploy/charts/octopus/values.yaml
  2. +4
    -3
      openai-portal/src/api/modelDev.js
  3. +93
    -16
      openai-portal/src/views/modelDev/components/notebook/notebookInfo.vue
  4. +7
    -46
      openai-portal/src/views/modelDev/components/notebook/notebookList.vue
  5. +9
    -14
      openai-portal/src/views/trainingManager/components/detailDialog/taskInfo.vue
  6. +1
    -0
      server/admin-server/api/v1/develop.proto
  7. +1
    -0
      server/base-server/api/v1/develop.proto
  8. +1
    -0
      server/openai-server/api/v1/develop.proto

+ 16
- 0
deploy/charts/octopus/values.yaml View File

@@ -331,6 +331,22 @@ nginx-ingress-controller:
- key: beta.kubernetes.io/arch - key: beta.kubernetes.io/arch
operator: In operator: In
values: ["amd64", "x64", "x86-64", "x86_64"] values: ["amd64", "x64", "x86-64", "x86_64"]
defaultBackend:
affinity:
nodeAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 100
preference:
matchExpressions:
- key: kubernetes.io/arch
operator: In
values: ["amd64", "x64", "x86-64", "x86_64"]
- weight: 100
preference:
matchExpressions:
- key: beta.kubernetes.io/arch
operator: In
values: ["amd64", "x64", "x86-64", "x86_64"]


# influxdb # influxdb
influxdb: influxdb:


+ 4
- 3
openai-portal/src/api/modelDev.js View File

@@ -25,10 +25,11 @@ export async function getNotebookList(payload) {
return res return res
} }


export async function getNotebookInfo(id) {
export async function getNotebookInfo(params) {
const res = await request({ const res = await request({
url: `/v1/developmanage/notebook/${id}`,
method: 'get'
url: `/v1/developmanage/notebookevent`,
method: 'get',
params
}) })
return res return res
} }


+ 93
- 16
openai-portal/src/views/modelDev/components/notebook/notebookInfo.vue View File

@@ -2,44 +2,121 @@
<div> <div>
<el-dialog <el-dialog
title="启动信息" title="启动信息"
width="55%"
width="80%"
:visible.sync="infoVisible" :visible.sync="infoVisible"
:before-close="handleDialogClose" :before-close="handleDialogClose"
:close-on-click-modal="false" :close-on-click-modal="false"
> >
<div v-html="initInfo"></div>
<div slot="footer" class="dialog-footer">
<el-button @click="cancel">取 消</el-button>
<el-button type="primary" @click="confirm">确 定</el-button>
</div>
<div>
<el-input
v-if="showInfo"
v-model="subTaskInfo"
type="textarea"
:readonly="true"
:autosize="true"
/>
</div>

<div class="block">
<el-pagination
v-if="showInfo"
:current-page="pageIndex"
:page-sizes="[10, 20, 50, 80]"
:page-size="pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
/>
</div>

<div slot="footer" class="dialog-footer" />
</el-dialog> </el-dialog>
</div> </div>
</template> </template>


<script> <script>
import { getNotebookInfo } from "@/api/modelDev";
export default { export default {
name: "NotebookInfo", name: "NotebookInfo",
props: { props: {
initInfo: {
type: String,
default: ""
notebookData: {
type: Object,
default: () => {}
} }
}, },
data() { data() {
return { return {
infoVisible: true
showInfo: false,
infoVisible: true,
subTaskInfo: "",
total: 0,
pageIndex: 1,
pageSize: 10,
taskIndex: 1,
replicaIndex: 1
} }
}, },
created() {
this.getNotebookInfo()
},
methods: { methods: {
getNotebookInfo(){
const param = {
id: this.notebookData.notebookJobId,
pageIndex: this.pageIndex,
pageSize: this.pageSize,
taskIndex: this.taskIndex,
replicaIndex: this.replicaIndex
}
getNotebookInfo(param).then(response => {
if (!response.success) {
this.$message({
message: "暂无相关运行信息",
type: 'warning'
});
return
}

this.showInfo = response.payload.notebookEvents.length
this.total = response.payload.totalSize

let infoMessage = ""

response.payload.notebookEvents.forEach(function(element) {
const title = element.reason
const message = element.message
infoMessage += "\n" + "[" + title + "]"
infoMessage += "\n" + "[" + message + "]" + "\n"
})

this.subTaskInfo = infoMessage
}).catch(err => {
console.log("err:", err)
this.$message({
message: "未知错误",
type: 'warning'
});
});
},
handleDialogClose() { handleDialogClose() {
this.$emit('close', false) this.$emit('close', false)
}, },
cancel() {
this.$emit('cancel', false)
handleSizeChange(val) {
this.pageSize = val
this.getNotebookInfo()
}, },
confirm() {
this.$emit('confirm', false)
handleCurrentChange(val) {
this.pageIndex = val
this.getNotebookInfo()
} }
}
},
} }
</script>
</script>

<style lang="scss" scoped>
.block {
float: right;
margin: 20px;
}
</style>

+ 7
- 46
openai-portal/src/views/modelDev/components/notebook/notebookList.vue View File

@@ -73,7 +73,7 @@
> >
停止 停止
</el-button> </el-button>
<el-button slot="reference" type="text" @click="getNotebookInfo(scope.row)">
<el-button slot="reference" type="text" @click="showNotebookInfo(scope.row)">
信息 信息
</el-button> </el-button>
</template> </template>
@@ -93,7 +93,7 @@


<notebookInfo <notebookInfo
v-if="notebookInfoVisible" v-if="notebookInfoVisible"
:init-info="initInfo"
:notebook-data="notebookData"
@confirm="confirm" @confirm="confirm"
@cancel="cancel" @cancel="cancel"
@close="close" @close="close"
@@ -106,7 +106,7 @@
import notebookCreation from "./notebookCreation.vue" import notebookCreation from "./notebookCreation.vue"
import notebookInfo from "./notebookInfo.vue" import notebookInfo from "./notebookInfo.vue"
import searchForm from '@/components/search/index.vue' import searchForm from '@/components/search/index.vue'
import { getNotebookInfo, getNotebookList, stopNotebook, deleteNotebook, startNotebook } from "@/api/modelDev";
import { getNotebookList, stopNotebook, deleteNotebook, startNotebook } from "@/api/modelDev";
import { parseTime } from '@/utils/index' import { parseTime } from '@/utils/index'
import { getResourceList } from "@/api/trainingManager" import { getResourceList } from "@/api/trainingManager"
import { getErrorMsg } from '@/error/index' import { getErrorMsg } from '@/error/index'
@@ -126,7 +126,7 @@
data() { data() {
return { return {
row: {}, row: {},
initInfo: "",
notebookData: {},
notebookVisible: false, notebookVisible: false,
notebookInfoVisible: false, notebookInfoVisible: false,
total: undefined, total: undefined,
@@ -277,45 +277,9 @@
}); });
}); });
}, },
getNotebookInfo(row) {
getNotebookInfo(row.id).then(response => {
if (response.success) {
this.notebookInfoVisible = true
const notebookDialogString = response.payload.notebook.initInfo ? response.payload.notebook.initInfo.replace(/\n/g, "<br>") : ''
const notebookDialogData = JSON.parse(notebookDialogString)
for (const pid in notebookDialogData['podEvents']) {
const eventList = notebookDialogData['podEvents'][pid]
const roleName = notebookDialogData['podRoleName'][pid]
if (roleName == "") {
continue
}
let message = ""
for (const key in eventList) {
const event = eventList[key]
if (event['reason'] == "" && event['message'] == "") {
continue
}
message += "[" + event['reason'] + "]" + "<br>"
message += event['message'] + "<br><br>"
}
for (const key in notebookDialogData['extras']) {
const event = notebookDialogData['extras'][key]
if (event['reason'] == "" && event['message'] == "") {
continue
}
message += "[" + event['reason'] + "]" + "<br>"
message += event['message'] + "<br><br>"
}
message += "<br>"
this.initInfo = message
}
} else {
this.$message({
message: this.getErrorMsg(response.error.subcode),
type: 'warning'
})
}
})
showNotebookInfo(row) {
this.notebookInfoVisible = true
this.notebookData = row
}, },
handleStop(row) { handleStop(row) {
stopNotebook(row.id).then(response => { stopNotebook(row.id).then(response => {
@@ -368,19 +332,16 @@
close(val) { close(val) {
this.notebookVisible = val; this.notebookVisible = val;
this.notebookInfoVisible = val; this.notebookInfoVisible = val;
this.initInfo = ""
this.getNotebookList(this.searchData); this.getNotebookList(this.searchData);
}, },
cancel(val) { cancel(val) {
this.notebookVisible = val; this.notebookVisible = val;
this.notebookInfoVisible = val; this.notebookInfoVisible = val;
this.initInfo = ""
this.getNotebookList(this.searchData); this.getNotebookList(this.searchData);
}, },
confirm(val) { confirm(val) {
this.notebookVisible = val this.notebookVisible = val
this.notebookInfoVisible = val; this.notebookInfoVisible = val;
this.initInfo = ""
this.getNotebookList(this.searchData); this.getNotebookList(this.searchData);
} }
} }


+ 9
- 14
openai-portal/src/views/trainingManager/components/detailDialog/taskInfo.vue View File

@@ -44,14 +44,14 @@


<div class="block"> <div class="block">
<el-pagination <el-pagination
v-if="showInfo"
:current-page="pageIndex"
:page-sizes="[10, 20, 50, 80]"
:page-size="pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
v-if="showInfo"
:current-page="pageIndex"
:page-sizes="[10, 20, 50, 80]"
:page-size="pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
/> />
</div> </div>
</div> </div>
@@ -59,7 +59,6 @@


<script> <script>
import { getTempalteInfo } from '@/api/trainingManager' import { getTempalteInfo } from '@/api/trainingManager'
import { getErrorMsg } from '@/error/index'
export default { export default {
name: "TaskInfo", name: "TaskInfo",
props: { props: {
@@ -96,10 +95,6 @@
} }
}, },
methods: { methods: {
// 错误码
getErrorMsg(code) {
return getErrorMsg(code)
},
selectedSubTaskOption() { selectedSubTaskOption() {
const param = { const param = {
id: this.row.id, id: this.row.id,
@@ -122,7 +117,7 @@
this.subTaskInfo = infoMessage this.subTaskInfo = infoMessage
} else { } else {
this.$message({ this.$message({
message: this.getErrorMsg(response.error.subcode),
message: "暂无相关运行信息",
type: 'warning' type: 'warning'
}); });
} }


+ 1
- 0
server/admin-server/api/v1/develop.proto View File

@@ -66,6 +66,7 @@ message Notebook {
string datasetVersion = 20; string datasetVersion = 20;
string datasetName = 21; string datasetName = 21;
uint32 resourceSpecPrice = 22; uint32 resourceSpecPrice = 22;
string notebookJobId = 23;
} }


message ListNotebookReply { message ListNotebookReply {


+ 1
- 0
server/base-server/api/v1/develop.proto View File

@@ -100,6 +100,7 @@ message Notebook {
string datasetVersion = 18; string datasetVersion = 18;
string datasetName = 19; string datasetName = 19;
uint32 resourceSpecPrice = 20; uint32 resourceSpecPrice = 20;
string notebookJobId = 21;
} }


message ListNotebookReply { message ListNotebookReply {


+ 1
- 0
server/openai-server/api/v1/develop.proto View File

@@ -133,6 +133,7 @@ message Notebook {
string datasetVersion = 18; string datasetVersion = 18;
string datasetName = 19; string datasetName = 19;
uint32 resourceSpecPrice = 20; uint32 resourceSpecPrice = 20;
string notebookJobId = 21;
} }


message ListNotebookReply { message ListNotebookReply {


Loading…
Cancel
Save