Merge branch 'master' of https://gitlink.org.cn/JointCloud/pcm-coordinator
Former-commit-id: 3889abad54947eab73110cbc61cc8ffbeabffbbb
This commit is contained in:
commit
f7f46e8561
|
@ -9,6 +9,8 @@ jobs:
|
||||||
mirror:
|
mirror:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
timeout-minutes: 10 # 设置作业的超时时间为10分钟
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout target repository
|
- name: Checkout target repository
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v2
|
||||||
|
@ -20,6 +22,5 @@ jobs:
|
||||||
with:
|
with:
|
||||||
source-repo: "https://gitlink.org.cn/JointCloud/pcm-coordinator.git" # 源仓库的URL
|
source-repo: "https://gitlink.org.cn/JointCloud/pcm-coordinator.git" # 源仓库的URL
|
||||||
destination-repo: "git@github.com:${{ github.repository }}.git" # 目标仓库的URL
|
destination-repo: "git@github.com:${{ github.repository }}.git" # 目标仓库的URL
|
||||||
ssh: true
|
|
||||||
env:
|
env:
|
||||||
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
|
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
|
|
@ -260,7 +260,7 @@ type (
|
||||||
Code int32 `json:"code"`
|
Code int32 `json:"code"`
|
||||||
Msg string `json:"msg"`
|
Msg string `json:"msg"`
|
||||||
}
|
}
|
||||||
ScheduleVmResult struct {
|
ScheduleVmResult {
|
||||||
ClusterId string `json:"clusterId"`
|
ClusterId string `json:"clusterId"`
|
||||||
TaskId string `json:"taskId"`
|
TaskId string `json:"taskId"`
|
||||||
Strategy string `json:"strategy"`
|
Strategy string `json:"strategy"`
|
||||||
|
@ -1225,7 +1225,7 @@ type (
|
||||||
TaskName string `json:"taskName"`
|
TaskName string `json:"taskName"`
|
||||||
Incident string `json:"incident"`
|
Incident string `json:"incident"`
|
||||||
}
|
}
|
||||||
ListNoticeReq struct{}
|
ListNoticeReq {}
|
||||||
|
|
||||||
ListNoticeResp {
|
ListNoticeResp {
|
||||||
Code int64 `json:"code"`
|
Code int64 `json:"code"`
|
||||||
|
|
|
@ -33,6 +33,30 @@ type (
|
||||||
ModelNames []string `json:"models"`
|
ModelNames []string `json:"models"`
|
||||||
}
|
}
|
||||||
/******************image inference*************************/
|
/******************image inference*************************/
|
||||||
|
/******************instance center*************************/
|
||||||
|
InstanceCenterReq{
|
||||||
|
InstanceType int32 `form:"instance_type"`
|
||||||
|
InstanceClass string `form:"instance_class,optional"`
|
||||||
|
InstanceName string `form:"instance_name,optional"`
|
||||||
|
}
|
||||||
|
InstanceCenterResp {
|
||||||
|
InstanceCenterList []InstanceCenterList `json:"instanceCenterList" copier:"InstanceCenterList"`
|
||||||
|
Code int32 `json:"code,omitempty"`
|
||||||
|
Msg string `json:"msg,omitempty"`
|
||||||
|
ErrorMsg string `json:"errorMsg,omitempty"`
|
||||||
|
TotalCount int `json:"totalCount"`
|
||||||
|
}
|
||||||
|
InstanceCenterList {
|
||||||
|
LogoPath string `json:"logo_path"`
|
||||||
|
InstanceName string `json:"instance_name"`
|
||||||
|
InstanceType int32 `json:"instance_type"`
|
||||||
|
InstanceClass string `json:"instance_class"`
|
||||||
|
InstanceClassChinese string `json:"instance_class_chinese"`
|
||||||
|
Description string `json:"description"`
|
||||||
|
Version string `json:"version"`
|
||||||
|
}
|
||||||
|
|
||||||
|
/******************instance center*************************/
|
||||||
|
|
||||||
ImageInferenceReq {
|
ImageInferenceReq {
|
||||||
TaskName string `form:"taskName"`
|
TaskName string `form:"taskName"`
|
||||||
|
|
87
desc/pcm.api
87
desc/pcm.api
|
@ -13,18 +13,18 @@ import (
|
||||||
"inference/inference.api"
|
"inference/inference.api"
|
||||||
)
|
)
|
||||||
|
|
||||||
info(
|
info (
|
||||||
title: "pcm api service"
|
title: "pcm api service"
|
||||||
desc: "type desc here"
|
desc: "type desc here"
|
||||||
author: "type author here"
|
author: "type author here"
|
||||||
email: "type email here"
|
email: "type email here"
|
||||||
version: "type version here"
|
version: "type version here"
|
||||||
)
|
)
|
||||||
|
|
||||||
//core端接口
|
//core端接口
|
||||||
@server(
|
@server (
|
||||||
prefix: pcm/v1
|
prefix: pcm/v1
|
||||||
group: core
|
group: core
|
||||||
)
|
)
|
||||||
service pcm {
|
service pcm {
|
||||||
@doc "查询P端服务列表"
|
@doc "查询P端服务列表"
|
||||||
|
@ -133,7 +133,7 @@ service pcm {
|
||||||
|
|
||||||
@doc "Statistical task status"
|
@doc "Statistical task status"
|
||||||
@handler countTaskStatus
|
@handler countTaskStatus
|
||||||
get /core/task/countTaskStatus () returns (TaskStatusResp)
|
get /core/task/countTaskStatus returns (TaskStatusResp)
|
||||||
|
|
||||||
@doc "Home Page Overview"
|
@doc "Home Page Overview"
|
||||||
@handler homeOverviewHandler
|
@handler homeOverviewHandler
|
||||||
|
@ -141,7 +141,7 @@ service pcm {
|
||||||
|
|
||||||
@doc "task details"
|
@doc "task details"
|
||||||
@handler taskDetails
|
@handler taskDetails
|
||||||
get /core/task/details (FId) returns(TaskDetailsResp)
|
get /core/task/details (FId) returns (TaskDetailsResp)
|
||||||
|
|
||||||
@doc "Get Public Image"
|
@doc "Get Public Image"
|
||||||
@handler getPublicImageHandler
|
@handler getPublicImageHandler
|
||||||
|
@ -157,22 +157,21 @@ service pcm {
|
||||||
|
|
||||||
@doc "screen"
|
@doc "screen"
|
||||||
@handler getDomainResourceHandler
|
@handler getDomainResourceHandler
|
||||||
get /core/getDomainResource returns (DomainResourceResp)
|
get /core/getDomainResource returns (DomainResourceResp)
|
||||||
|
|
||||||
@doc "screen"
|
@doc "screen"
|
||||||
@handler getScreenInfoHandler
|
@handler getScreenInfoHandler
|
||||||
get /core/getScreenInfo returns (ScreenInfoResp)
|
get /core/getScreenInfo returns (ScreenInfoResp)
|
||||||
|
|
||||||
@doc "screen"
|
@doc "screen"
|
||||||
@handler getScreenChartHandler
|
@handler getScreenChartHandler
|
||||||
get /core/getScreenChart returns (ScreenChartResp)
|
get /core/getScreenChart returns (ScreenChartResp)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//hpc二级接口
|
//hpc二级接口
|
||||||
@server(
|
@server (
|
||||||
prefix: pcm/v1
|
prefix: pcm/v1
|
||||||
group: hpc
|
group: hpc
|
||||||
)
|
)
|
||||||
service pcm {
|
service pcm {
|
||||||
@doc "提交超算任务"
|
@doc "提交超算任务"
|
||||||
|
@ -201,9 +200,9 @@ service pcm {
|
||||||
}
|
}
|
||||||
|
|
||||||
//cloud二级接口
|
//cloud二级接口
|
||||||
@server(
|
@server (
|
||||||
prefix: pcm/v1
|
prefix: pcm/v1
|
||||||
group: cloud
|
group: cloud
|
||||||
)
|
)
|
||||||
service pcm {
|
service pcm {
|
||||||
@doc "云算任务列表"
|
@doc "云算任务列表"
|
||||||
|
@ -232,16 +231,16 @@ service pcm {
|
||||||
|
|
||||||
@doc "Create cloud computing common tasks"
|
@doc "Create cloud computing common tasks"
|
||||||
@handler commitGeneralTask
|
@handler commitGeneralTask
|
||||||
post /cloud/task/create (GeneralTaskReq) returns ()
|
post /cloud/task/create (GeneralTaskReq)
|
||||||
|
|
||||||
@handler podLogs
|
@handler podLogs
|
||||||
post /cloud/pod/logs (PodLogsReq) returns (string)
|
post /cloud/pod/logs (PodLogsReq) returns (string)
|
||||||
}
|
}
|
||||||
|
|
||||||
//智算二级接口
|
//智算二级接口
|
||||||
@server(
|
@server (
|
||||||
prefix: pcm/v1
|
prefix: pcm/v1
|
||||||
group: ai
|
group: ai
|
||||||
)
|
)
|
||||||
service pcm {
|
service pcm {
|
||||||
@doc "训练任务统计"
|
@doc "训练任务统计"
|
||||||
|
@ -382,19 +381,19 @@ service pcm {
|
||||||
@doc "创建虚拟化任务"
|
@doc "创建虚拟化任务"
|
||||||
@handler createVisualizationJobHandler
|
@handler createVisualizationJobHandler
|
||||||
post /ai/CreateVisualizationJob (CreateVisualizationJobReq) returns (CreateVisualizationJobResp)
|
post /ai/CreateVisualizationJob (CreateVisualizationJobReq) returns (CreateVisualizationJobResp)
|
||||||
/******************Visualization Job Method start*************************/
|
|
||||||
|
|
||||||
|
/******************Visualization Job Method start*************************/
|
||||||
/***********chat***********/
|
/***********chat***********/
|
||||||
@doc "文本识别"
|
@doc "文本识别"
|
||||||
@handler ChatHandler
|
@handler ChatHandler
|
||||||
post /ai/chat (ChatReq) returns (ChatResult)
|
post /ai/chat (ChatReq) returns (ChatResult)
|
||||||
/******chat end***********/
|
/******chat end***********/
|
||||||
}
|
}
|
||||||
|
|
||||||
//screen接口
|
//screen接口
|
||||||
@server(
|
@server (
|
||||||
prefix: pcm/v1
|
prefix: pcm/v1
|
||||||
group: storage
|
group: storage
|
||||||
)
|
)
|
||||||
service pcm {
|
service pcm {
|
||||||
@doc "存储概览"
|
@doc "存储概览"
|
||||||
|
@ -403,17 +402,17 @@ service pcm {
|
||||||
|
|
||||||
@doc "日常算力查询"
|
@doc "日常算力查询"
|
||||||
@handler dailyPowerScreenHandler
|
@handler dailyPowerScreenHandler
|
||||||
get /storage/dailyPowerScreen returns (DailyPowerScreenResp)
|
get /storage/dailyPowerScreen returns (DailyPowerScreenResp)
|
||||||
|
|
||||||
@doc "算力中心算力情况"
|
@doc "算力中心算力情况"
|
||||||
@handler perCenterComputerPowersHandler
|
@handler perCenterComputerPowersHandler
|
||||||
get /storage/perCenterComputerPowers returns (PerCenterComputerPowersResp)
|
get /storage/perCenterComputerPowers returns (PerCenterComputerPowersResp)
|
||||||
}
|
}
|
||||||
|
|
||||||
//openstack 接口
|
//openstack 接口
|
||||||
@server(
|
@server (
|
||||||
prefix: pcm/v1
|
prefix: pcm/v1
|
||||||
group: vm
|
group: vm
|
||||||
)
|
)
|
||||||
service pcm {
|
service pcm {
|
||||||
@doc "openstack计算中心概览"
|
@doc "openstack计算中心概览"
|
||||||
|
@ -810,9 +809,9 @@ service pcm {
|
||||||
}
|
}
|
||||||
|
|
||||||
//存算联动 接口
|
//存算联动 接口
|
||||||
@server(
|
@server (
|
||||||
prefix: pcm/v1
|
prefix: pcm/v1
|
||||||
group: storelink
|
group: storelink
|
||||||
)
|
)
|
||||||
service pcm {
|
service pcm {
|
||||||
@handler UploadLinkImageHandler
|
@handler UploadLinkImageHandler
|
||||||
|
@ -841,9 +840,9 @@ service pcm {
|
||||||
}
|
}
|
||||||
|
|
||||||
// 接口
|
// 接口
|
||||||
@server(
|
@server (
|
||||||
prefix: pcm/v1
|
prefix: pcm/v1
|
||||||
group: adapters
|
group: adapters
|
||||||
)
|
)
|
||||||
service pcm {
|
service pcm {
|
||||||
@handler AdaptersListHandler
|
@handler AdaptersListHandler
|
||||||
|
@ -883,9 +882,9 @@ service pcm {
|
||||||
get /adapter/clusterSum (clusterSumReq) returns (clusterSumReqResp)
|
get /adapter/clusterSum (clusterSumReq) returns (clusterSumReqResp)
|
||||||
}
|
}
|
||||||
|
|
||||||
@server(
|
@server (
|
||||||
prefix: pcm/v1
|
prefix: pcm/v1
|
||||||
group: schedule
|
group: schedule
|
||||||
)
|
)
|
||||||
service pcm {
|
service pcm {
|
||||||
@handler ScheduleGetAiResourceTypesHandler
|
@handler ScheduleGetAiResourceTypesHandler
|
||||||
|
@ -925,9 +924,9 @@ service pcm {
|
||||||
get /schedule/getClusterBalanceById/:adapterId/:clusterId (GetClusterBalanceByIdReq) returns (GetClusterBalanceByIdResp)
|
get /schedule/getClusterBalanceById/:adapterId/:clusterId (GetClusterBalanceByIdReq) returns (GetClusterBalanceByIdResp)
|
||||||
}
|
}
|
||||||
|
|
||||||
@server(
|
@server (
|
||||||
prefix: pcm/v1
|
prefix: pcm/v1
|
||||||
group: inference
|
group: inference
|
||||||
)
|
)
|
||||||
service pcm {
|
service pcm {
|
||||||
@handler TextToTextInferenceHandler
|
@handler TextToTextInferenceHandler
|
||||||
|
@ -939,6 +938,9 @@ service pcm {
|
||||||
@handler ModelTypesHandler
|
@handler ModelTypesHandler
|
||||||
get /inference/modelTypes returns (ModelTypesResp)
|
get /inference/modelTypes returns (ModelTypesResp)
|
||||||
|
|
||||||
|
@handler InstanceCenterHandler
|
||||||
|
get /inference/instanceCenter (InstanceCenterReq) returns (InstanceCenterResp)
|
||||||
|
|
||||||
@handler ModelNamesByTypeHandler
|
@handler ModelNamesByTypeHandler
|
||||||
get /inference/modelNames (ModelNamesReq) returns (ModelNamesResp)
|
get /inference/modelNames (ModelNamesReq) returns (ModelNamesResp)
|
||||||
|
|
||||||
|
@ -979,9 +981,9 @@ service pcm {
|
||||||
get /inference/getAdaptersByModel (GetAdaptersByModelReq) returns (GetAdaptersByModelResp)
|
get /inference/getAdaptersByModel (GetAdaptersByModelReq) returns (GetAdaptersByModelResp)
|
||||||
}
|
}
|
||||||
|
|
||||||
@server(
|
@server (
|
||||||
prefix: pcm/v1
|
prefix: pcm/v1
|
||||||
group: dictionary
|
group: dictionary
|
||||||
)
|
)
|
||||||
service pcm {
|
service pcm {
|
||||||
@handler GetDict
|
@handler GetDict
|
||||||
|
@ -1018,9 +1020,9 @@ service pcm {
|
||||||
get /dictItem/code/:dictCode (DictCodeReq) returns (PageResult)
|
get /dictItem/code/:dictCode (DictCodeReq) returns (PageResult)
|
||||||
}
|
}
|
||||||
|
|
||||||
@server(
|
@server (
|
||||||
prefix: pcm/v1
|
prefix: pcm/v1
|
||||||
group: monitoring
|
group: monitoring
|
||||||
)
|
)
|
||||||
service pcm {
|
service pcm {
|
||||||
@handler CreateAlertRuleHandler
|
@handler CreateAlertRuleHandler
|
||||||
|
@ -1056,5 +1058,6 @@ service pcm {
|
||||||
get /monitoring/adapter/info (adapterInfoReq) returns (adapterInfoResp)
|
get /monitoring/adapter/info (adapterInfoReq) returns (adapterInfoResp)
|
||||||
|
|
||||||
@handler scheduleSituationHandler
|
@handler scheduleSituationHandler
|
||||||
get /monitoring/schedule/situation returns (scheduleSituationResp)
|
get /monitoring/schedule/situation returns (scheduleSituationResp)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
36
go.mod
36
go.mod
|
@ -14,7 +14,7 @@ require (
|
||||||
github.com/pkg/errors v0.9.1
|
github.com/pkg/errors v0.9.1
|
||||||
github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring v0.71.2
|
github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring v0.71.2
|
||||||
github.com/prometheus/alertmanager v0.27.0
|
github.com/prometheus/alertmanager v0.27.0
|
||||||
github.com/prometheus/client_golang v1.20.3
|
github.com/prometheus/client_golang v1.20.4
|
||||||
github.com/prometheus/common v0.59.1
|
github.com/prometheus/common v0.59.1
|
||||||
github.com/robfig/cron/v3 v3.0.1
|
github.com/robfig/cron/v3 v3.0.1
|
||||||
github.com/zeromicro/go-zero v1.7.2
|
github.com/zeromicro/go-zero v1.7.2
|
||||||
|
@ -24,14 +24,14 @@ require (
|
||||||
gitlink.org.cn/JointCloud/pcm-openstack v0.0.0-20240403033338-e7edabad4203
|
gitlink.org.cn/JointCloud/pcm-openstack v0.0.0-20240403033338-e7edabad4203
|
||||||
gitlink.org.cn/JointCloud/pcm-slurm v0.0.0-20240301080743-8b94bbaf57f5
|
gitlink.org.cn/JointCloud/pcm-slurm v0.0.0-20240301080743-8b94bbaf57f5
|
||||||
gitlink.org.cn/jcce-pcm/pcm-participant-ceph v0.0.0-20230904090036-24fc730ec87d
|
gitlink.org.cn/jcce-pcm/pcm-participant-ceph v0.0.0-20230904090036-24fc730ec87d
|
||||||
go.opentelemetry.io/otel/trace v1.29.0
|
go.opentelemetry.io/otel/trace v1.30.0
|
||||||
gonum.org/v1/gonum v0.11.0
|
gonum.org/v1/gonum v0.11.0
|
||||||
google.golang.org/grpc v1.66.0
|
google.golang.org/grpc v1.66.2
|
||||||
gorm.io/datatypes v1.2.0
|
gorm.io/datatypes v1.2.0
|
||||||
gorm.io/driver/mysql v1.5.2
|
gorm.io/driver/mysql v1.5.2
|
||||||
gorm.io/gorm v1.25.5
|
gorm.io/gorm v1.25.5
|
||||||
k8s.io/apimachinery v0.31.0
|
k8s.io/apimachinery v0.31.1
|
||||||
k8s.io/client-go v0.31.0
|
k8s.io/client-go v0.31.1
|
||||||
sigs.k8s.io/yaml v1.4.0
|
sigs.k8s.io/yaml v1.4.0
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -123,19 +123,19 @@ require (
|
||||||
github.com/x448/float16 v0.8.4 // indirect
|
github.com/x448/float16 v0.8.4 // indirect
|
||||||
github.com/xhit/go-str2duration/v2 v2.1.0 // indirect
|
github.com/xhit/go-str2duration/v2 v2.1.0 // indirect
|
||||||
github.com/xlab/treeprint v1.2.0 // indirect
|
github.com/xlab/treeprint v1.2.0 // indirect
|
||||||
go.etcd.io/etcd/api/v3 v3.5.15 // indirect
|
go.etcd.io/etcd/api/v3 v3.5.16 // indirect
|
||||||
go.etcd.io/etcd/client/pkg/v3 v3.5.15 // indirect
|
go.etcd.io/etcd/client/pkg/v3 v3.5.16 // indirect
|
||||||
go.etcd.io/etcd/client/v3 v3.5.15 // indirect
|
go.etcd.io/etcd/client/v3 v3.5.16 // indirect
|
||||||
go.mongodb.org/mongo-driver v1.16.1 // indirect
|
go.mongodb.org/mongo-driver v1.16.1 // indirect
|
||||||
go.opentelemetry.io/otel v1.29.0 // indirect
|
go.opentelemetry.io/otel v1.30.0 // indirect
|
||||||
go.opentelemetry.io/otel/exporters/jaeger v1.17.0 // indirect
|
go.opentelemetry.io/otel/exporters/jaeger v1.17.0 // indirect
|
||||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.29.0 // indirect
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.30.0 // indirect
|
||||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.29.0 // indirect
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.30.0 // indirect
|
||||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.29.0 // indirect
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.30.0 // indirect
|
||||||
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.29.0 // indirect
|
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.30.0 // indirect
|
||||||
go.opentelemetry.io/otel/exporters/zipkin v1.29.0 // indirect
|
go.opentelemetry.io/otel/exporters/zipkin v1.30.0 // indirect
|
||||||
go.opentelemetry.io/otel/metric v1.29.0 // indirect
|
go.opentelemetry.io/otel/metric v1.30.0 // indirect
|
||||||
go.opentelemetry.io/otel/sdk v1.29.0 // indirect
|
go.opentelemetry.io/otel/sdk v1.30.0 // indirect
|
||||||
go.opentelemetry.io/proto/otlp v1.3.1 // indirect
|
go.opentelemetry.io/proto/otlp v1.3.1 // indirect
|
||||||
go.uber.org/automaxprocs v1.5.3 // indirect
|
go.uber.org/automaxprocs v1.5.3 // indirect
|
||||||
go.uber.org/multierr v1.11.0 // indirect
|
go.uber.org/multierr v1.11.0 // indirect
|
||||||
|
@ -150,14 +150,14 @@ require (
|
||||||
golang.org/x/term v0.24.0 // indirect
|
golang.org/x/term v0.24.0 // indirect
|
||||||
golang.org/x/text v0.18.0 // indirect
|
golang.org/x/text v0.18.0 // indirect
|
||||||
golang.org/x/time v0.6.0 // indirect
|
golang.org/x/time v0.6.0 // indirect
|
||||||
golang.org/x/tools v0.24.0 // indirect
|
golang.org/x/tools v0.25.0 // indirect
|
||||||
google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1 // indirect
|
google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1 // indirect
|
||||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 // indirect
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 // indirect
|
||||||
google.golang.org/protobuf v1.34.2 // indirect
|
google.golang.org/protobuf v1.34.2 // indirect
|
||||||
gopkg.in/inf.v0 v0.9.1 // indirect
|
gopkg.in/inf.v0 v0.9.1 // indirect
|
||||||
gopkg.in/yaml.v2 v2.4.0 // indirect
|
gopkg.in/yaml.v2 v2.4.0 // indirect
|
||||||
gopkg.in/yaml.v3 v3.0.1 // indirect
|
gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||||
k8s.io/api v0.31.0 // indirect
|
k8s.io/api v0.31.1 // indirect
|
||||||
k8s.io/klog/v2 v2.130.1 // indirect
|
k8s.io/klog/v2 v2.130.1 // indirect
|
||||||
k8s.io/kube-openapi v0.0.0-20240903163716-9e1beecbcb38 // indirect
|
k8s.io/kube-openapi v0.0.0-20240903163716-9e1beecbcb38 // indirect
|
||||||
k8s.io/utils v0.0.0-20240902221715-702e33fdd3c3 // indirect
|
k8s.io/utils v0.0.0-20240902221715-702e33fdd3c3 // indirect
|
||||||
|
|
72
go.sum
72
go.sum
|
@ -393,8 +393,8 @@ github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5Fsn
|
||||||
github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU=
|
github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU=
|
||||||
github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M=
|
github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M=
|
||||||
github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0=
|
github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0=
|
||||||
github.com/prometheus/client_golang v1.20.3 h1:oPksm4K8B+Vt35tUhw6GbSNSgVlVSBH0qELP/7u83l4=
|
github.com/prometheus/client_golang v1.20.4 h1:Tgh3Yr67PaOv/uTqloMsCEdeuFTatm5zIq5+qNN23vI=
|
||||||
github.com/prometheus/client_golang v1.20.3/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE=
|
github.com/prometheus/client_golang v1.20.4/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE=
|
||||||
github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
|
github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
|
||||||
github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
|
github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
|
||||||
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
|
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
|
||||||
|
@ -478,12 +478,12 @@ gitlink.org.cn/JointCloud/pcm-slurm v0.0.0-20240301080743-8b94bbaf57f5 h1:+/5vnz
|
||||||
gitlink.org.cn/JointCloud/pcm-slurm v0.0.0-20240301080743-8b94bbaf57f5/go.mod h1:97AlUXN13g9UN3+9/DzCHpeoU5sbdyv0IQuTEHNexzQ=
|
gitlink.org.cn/JointCloud/pcm-slurm v0.0.0-20240301080743-8b94bbaf57f5/go.mod h1:97AlUXN13g9UN3+9/DzCHpeoU5sbdyv0IQuTEHNexzQ=
|
||||||
gitlink.org.cn/jcce-pcm/pcm-participant-ceph v0.0.0-20230904090036-24fc730ec87d h1:DHjl/rLuH2gKYtY0MKMGNQDHFT12APg25RlMUQo+tHk=
|
gitlink.org.cn/jcce-pcm/pcm-participant-ceph v0.0.0-20230904090036-24fc730ec87d h1:DHjl/rLuH2gKYtY0MKMGNQDHFT12APg25RlMUQo+tHk=
|
||||||
gitlink.org.cn/jcce-pcm/pcm-participant-ceph v0.0.0-20230904090036-24fc730ec87d/go.mod h1:r/KLzUpupCV5jdxSfgDhc2pVjP0fBi3VhAWRttsBn30=
|
gitlink.org.cn/jcce-pcm/pcm-participant-ceph v0.0.0-20230904090036-24fc730ec87d/go.mod h1:r/KLzUpupCV5jdxSfgDhc2pVjP0fBi3VhAWRttsBn30=
|
||||||
go.etcd.io/etcd/api/v3 v3.5.15 h1:3KpLJir1ZEBrYuV2v+Twaa/e2MdDCEZ/70H+lzEiwsk=
|
go.etcd.io/etcd/api/v3 v3.5.16 h1:WvmyJVbjWqK4R1E+B12RRHz3bRGy9XVfh++MgbN+6n0=
|
||||||
go.etcd.io/etcd/api/v3 v3.5.15/go.mod h1:N9EhGzXq58WuMllgH9ZvnEr7SI9pS0k0+DHZezGp7jM=
|
go.etcd.io/etcd/api/v3 v3.5.16/go.mod h1:1P4SlIP/VwkDmGo3OlOD7faPeP8KDIFhqvciH5EfN28=
|
||||||
go.etcd.io/etcd/client/pkg/v3 v3.5.15 h1:fo0HpWz/KlHGMCC+YejpiCmyWDEuIpnTDzpJLB5fWlA=
|
go.etcd.io/etcd/client/pkg/v3 v3.5.16 h1:ZgY48uH6UvB+/7R9Yf4x574uCO3jIx0TRDyetSfId3Q=
|
||||||
go.etcd.io/etcd/client/pkg/v3 v3.5.15/go.mod h1:mXDI4NAOwEiszrHCb0aqfAYNCrZP4e9hRca3d1YK8EU=
|
go.etcd.io/etcd/client/pkg/v3 v3.5.16/go.mod h1:V8acl8pcEK0Y2g19YlOV9m9ssUe6MgiDSobSoaBAM0E=
|
||||||
go.etcd.io/etcd/client/v3 v3.5.15 h1:23M0eY4Fd/inNv1ZfU3AxrbbOdW79r9V9Rl62Nm6ip4=
|
go.etcd.io/etcd/client/v3 v3.5.16 h1:sSmVYOAHeC9doqi0gv7v86oY/BTld0SEFGaxsU9eRhE=
|
||||||
go.etcd.io/etcd/client/v3 v3.5.15/go.mod h1:CLSJxrYjvLtHsrPKsy7LmZEE+DK2ktfd2bN4RhBMwlU=
|
go.etcd.io/etcd/client/v3 v3.5.16/go.mod h1:X+rExSGkyqxvu276cr2OwPLBaeqFu1cIl4vmRjAD/50=
|
||||||
go.mongodb.org/mongo-driver v1.16.1 h1:rIVLL3q0IHM39dvE+z2ulZLp9ENZKThVfuvN/IiN4l8=
|
go.mongodb.org/mongo-driver v1.16.1 h1:rIVLL3q0IHM39dvE+z2ulZLp9ENZKThVfuvN/IiN4l8=
|
||||||
go.mongodb.org/mongo-driver v1.16.1/go.mod h1:oB6AhJQvFQL4LEHyXi6aJzQJtBiTQHiAd83l0GdFaiw=
|
go.mongodb.org/mongo-driver v1.16.1/go.mod h1:oB6AhJQvFQL4LEHyXi6aJzQJtBiTQHiAd83l0GdFaiw=
|
||||||
go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
|
go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
|
||||||
|
@ -491,26 +491,26 @@ go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
|
||||||
go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
|
go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
|
||||||
go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
|
go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
|
||||||
go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
|
go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
|
||||||
go.opentelemetry.io/otel v1.29.0 h1:PdomN/Al4q/lN6iBJEN3AwPvUiHPMlt93c8bqTG5Llw=
|
go.opentelemetry.io/otel v1.30.0 h1:F2t8sK4qf1fAmY9ua4ohFS/K+FUuOPemHUIXHtktrts=
|
||||||
go.opentelemetry.io/otel v1.29.0/go.mod h1:N/WtXPs1CNCUEx+Agz5uouwCba+i+bJGFicT8SR4NP8=
|
go.opentelemetry.io/otel v1.30.0/go.mod h1:tFw4Br9b7fOS+uEao81PJjVMjW/5fvNCbpsDIXqP0pc=
|
||||||
go.opentelemetry.io/otel/exporters/jaeger v1.17.0 h1:D7UpUy2Xc2wsi1Ras6V40q806WM07rqoCWzXu7Sqy+4=
|
go.opentelemetry.io/otel/exporters/jaeger v1.17.0 h1:D7UpUy2Xc2wsi1Ras6V40q806WM07rqoCWzXu7Sqy+4=
|
||||||
go.opentelemetry.io/otel/exporters/jaeger v1.17.0/go.mod h1:nPCqOnEH9rNLKqH/+rrUjiMzHJdV1BlpKcTwRTyKkKI=
|
go.opentelemetry.io/otel/exporters/jaeger v1.17.0/go.mod h1:nPCqOnEH9rNLKqH/+rrUjiMzHJdV1BlpKcTwRTyKkKI=
|
||||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.29.0 h1:dIIDULZJpgdiHz5tXrTgKIMLkus6jEFa7x5SOKcyR7E=
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.30.0 h1:lsInsfvhVIfOI6qHVyysXMNDnjO9Npvl7tlDPJFBVd4=
|
||||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.29.0/go.mod h1:jlRVBe7+Z1wyxFSUs48L6OBQZ5JwH2Hg/Vbl+t9rAgI=
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.30.0/go.mod h1:KQsVNh4OjgjTG0G6EiNi1jVpnaeeKsKMRwbLN+f1+8M=
|
||||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.29.0 h1:nSiV3s7wiCam610XcLbYOmMfJxB9gO4uK3Xgv5gmTgg=
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.30.0 h1:m0yTiGDLUvVYaTFbAvCkVYIYcvwKt3G7OLoN77NUs/8=
|
||||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.29.0/go.mod h1:hKn/e/Nmd19/x1gvIHwtOwVWM+VhuITSWip3JUDghj0=
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.30.0/go.mod h1:wBQbT4UekBfegL2nx0Xk1vBcnzyBPsIVm9hRG4fYcr4=
|
||||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.29.0 h1:JAv0Jwtl01UFiyWZEMiJZBiTlv5A50zNs8lsthXqIio=
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.30.0 h1:umZgi92IyxfXd/l4kaDhnKgY8rnN/cZcF1LKc6I8OQ8=
|
||||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.29.0/go.mod h1:QNKLmUEAq2QUbPQUfvw4fmv0bgbK7UlOSFCnXyfvSNc=
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.30.0/go.mod h1:4lVs6obhSVRb1EW5FhOuBTyiQhtRtAnnva9vD3yRfq8=
|
||||||
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.29.0 h1:X3ZjNp36/WlkSYx0ul2jw4PtbNEDDeLskw3VPsrpYM0=
|
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.30.0 h1:kn1BudCgwtE7PxLqcZkErpD8GKqLZ6BSzeW9QihQJeM=
|
||||||
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.29.0/go.mod h1:2uL/xnOXh0CHOBFCWXz5u1A4GXLiW+0IQIzVbeOEQ0U=
|
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.30.0/go.mod h1:ljkUDtAMdleoi9tIG1R6dJUpVwDcYjw3J2Q6Q/SuiC0=
|
||||||
go.opentelemetry.io/otel/exporters/zipkin v1.29.0 h1:rqaUJdM9ItWf6DGrelaShXnJpb8rd3HTbcZWptvcsWA=
|
go.opentelemetry.io/otel/exporters/zipkin v1.30.0 h1:1uYaSfxiCLdJATlGEtYjQe4jZYfqCjVwxeSTMXe8VF4=
|
||||||
go.opentelemetry.io/otel/exporters/zipkin v1.29.0/go.mod h1:wDIyU6DjrUYqUgnmzjWnh1HOQGZCJ6YXMIJCdMc+T9Y=
|
go.opentelemetry.io/otel/exporters/zipkin v1.30.0/go.mod h1:r/4BhMc3kiKxD61wGh9J3NVQ3/cZ45F2NHkQgVnql48=
|
||||||
go.opentelemetry.io/otel/metric v1.29.0 h1:vPf/HFWTNkPu1aYeIsc98l4ktOQaL6LeSoeV2g+8YLc=
|
go.opentelemetry.io/otel/metric v1.30.0 h1:4xNulvn9gjzo4hjg+wzIKG7iNFEaBMX00Qd4QIZs7+w=
|
||||||
go.opentelemetry.io/otel/metric v1.29.0/go.mod h1:auu/QWieFVWx+DmQOUMgj0F8LHWdgalxXqvp7BII/W8=
|
go.opentelemetry.io/otel/metric v1.30.0/go.mod h1:aXTfST94tswhWEb+5QjlSqG+cZlmyXy/u8jFpor3WqQ=
|
||||||
go.opentelemetry.io/otel/sdk v1.29.0 h1:vkqKjk7gwhS8VaWb0POZKmIEDimRCMsopNYnriHyryo=
|
go.opentelemetry.io/otel/sdk v1.30.0 h1:cHdik6irO49R5IysVhdn8oaiR9m8XluDaJAs4DfOrYE=
|
||||||
go.opentelemetry.io/otel/sdk v1.29.0/go.mod h1:pM8Dx5WKnvxLCb+8lG1PRNIDxu9g9b9g59Qr7hfAAok=
|
go.opentelemetry.io/otel/sdk v1.30.0/go.mod h1:p14X4Ok8S+sygzblytT1nqG98QG2KYKv++HE0LY/mhg=
|
||||||
go.opentelemetry.io/otel/trace v1.29.0 h1:J/8ZNK4XgR7a21DZUAsbF8pZ5Jcw1VhACmnYt39JTi4=
|
go.opentelemetry.io/otel/trace v1.30.0 h1:7UBkkYzeg3C7kQX8VAidWh2biiQbtAKjyIML8dQ9wmc=
|
||||||
go.opentelemetry.io/otel/trace v1.29.0/go.mod h1:eHl3w0sp3paPkYstJOmAimxhiFXPg+MMTlEh3nsQgWQ=
|
go.opentelemetry.io/otel/trace v1.30.0/go.mod h1:5EyKqTzzmyqB9bwtCCq6pDLktPK6fmGf/Dph+8VI02o=
|
||||||
go.opentelemetry.io/proto/otlp v1.3.1 h1:TrMUixzpM0yuc/znrFTP9MMRh8trP93mkCiDVeXrui0=
|
go.opentelemetry.io/proto/otlp v1.3.1 h1:TrMUixzpM0yuc/znrFTP9MMRh8trP93mkCiDVeXrui0=
|
||||||
go.opentelemetry.io/proto/otlp v1.3.1/go.mod h1:0X1WI4de4ZsLrrJNLAQbFeLCm3T7yBkR0XqQ7niQU+8=
|
go.opentelemetry.io/proto/otlp v1.3.1/go.mod h1:0X1WI4de4ZsLrrJNLAQbFeLCm3T7yBkR0XqQ7niQU+8=
|
||||||
go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE=
|
go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE=
|
||||||
|
@ -760,8 +760,8 @@ golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4f
|
||||||
golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
|
golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
|
||||||
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
|
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
|
||||||
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
|
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
|
||||||
golang.org/x/tools v0.24.0 h1:J1shsA93PJUEVaUSaay7UXAyE8aimq3GW0pjlolpa24=
|
golang.org/x/tools v0.25.0 h1:oFU9pkj/iJgs+0DT+VMHrx+oBKs/LJMV+Uvg78sl+fE=
|
||||||
golang.org/x/tools v0.24.0/go.mod h1:YhNqVBIfWHdzvTLs0d8LCuMhkKUgSUKldakyV7W/WDQ=
|
golang.org/x/tools v0.25.0/go.mod h1:/vtpO8WL1N9cQC3FN5zPqb//fRXskFHbLKk4OW1Q7rg=
|
||||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||||
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||||
|
@ -835,8 +835,8 @@ google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKa
|
||||||
google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk=
|
google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk=
|
||||||
google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
|
google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
|
||||||
google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
|
google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
|
||||||
google.golang.org/grpc v1.66.0 h1:DibZuoBznOxbDQxRINckZcUvnCEvrW9pcWIE2yF9r1c=
|
google.golang.org/grpc v1.66.2 h1:3QdXkuq3Bkh7w+ywLdLvM56cmGvQHUMZpiCzt6Rqaoo=
|
||||||
google.golang.org/grpc v1.66.0/go.mod h1:s3/l6xSSCURdVfAnL+TqCNMyTDAGN6+lZeVxnZR128Y=
|
google.golang.org/grpc v1.66.2/go.mod h1:s3/l6xSSCURdVfAnL+TqCNMyTDAGN6+lZeVxnZR128Y=
|
||||||
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
|
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
|
||||||
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
|
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
|
||||||
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
|
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
|
||||||
|
@ -894,12 +894,12 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh
|
||||||
honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
|
honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
|
||||||
honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
|
honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
|
||||||
honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
|
honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
|
||||||
k8s.io/api v0.31.0 h1:b9LiSjR2ym/SzTOlfMHm1tr7/21aD7fSkqgD/CVJBCo=
|
k8s.io/api v0.31.1 h1:Xe1hX/fPW3PXYYv8BlozYqw63ytA92snr96zMW9gWTU=
|
||||||
k8s.io/api v0.31.0/go.mod h1:0YiFF+JfFxMM6+1hQei8FY8M7s1Mth+z/q7eF1aJkTE=
|
k8s.io/api v0.31.1/go.mod h1:sbN1g6eY6XVLeqNsZGLnI5FwVseTrZX7Fv3O26rhAaI=
|
||||||
k8s.io/apimachinery v0.31.0 h1:m9jOiSr3FoSSL5WO9bjm1n6B9KROYYgNZOb4tyZ1lBc=
|
k8s.io/apimachinery v0.31.1 h1:mhcUBbj7KUjaVhyXILglcVjuS4nYXiwC+KKFBgIVy7U=
|
||||||
k8s.io/apimachinery v0.31.0/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo=
|
k8s.io/apimachinery v0.31.1/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo=
|
||||||
k8s.io/client-go v0.31.0 h1:QqEJzNjbN2Yv1H79SsS+SWnXkBgVu4Pj3CJQgbx0gI8=
|
k8s.io/client-go v0.31.1 h1:f0ugtWSbWpxHR7sjVpQwuvw9a3ZKLXX0u0itkFXufb0=
|
||||||
k8s.io/client-go v0.31.0/go.mod h1:Y9wvC76g4fLjmU0BA+rV+h2cncoadjvjjkkIGoTLcGU=
|
k8s.io/client-go v0.31.1/go.mod h1:sKI8871MJN2OyeqRlmA4W4KM9KBdBUpDLu/43eGemCg=
|
||||||
k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk=
|
k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk=
|
||||||
k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE=
|
k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE=
|
||||||
k8s.io/kube-openapi v0.0.0-20240903163716-9e1beecbcb38 h1:1dWzkmJrrprYvjGwh9kEUxmcUV/CtNU8QM7h1FLWQOo=
|
k8s.io/kube-openapi v0.0.0-20240903163716-9e1beecbcb38 h1:1dWzkmJrrprYvjGwh9kEUxmcUV/CtNU8QM7h1FLWQOo=
|
||||||
|
|
|
@ -0,0 +1,28 @@
|
||||||
|
package inference
|
||||||
|
|
||||||
|
import (
|
||||||
|
"net/http"
|
||||||
|
|
||||||
|
"github.com/zeromicro/go-zero/rest/httpx"
|
||||||
|
"gitlink.org.cn/JointCloud/pcm-coordinator/internal/logic/inference"
|
||||||
|
"gitlink.org.cn/JointCloud/pcm-coordinator/internal/svc"
|
||||||
|
"gitlink.org.cn/JointCloud/pcm-coordinator/internal/types"
|
||||||
|
)
|
||||||
|
|
||||||
|
func InstanceCenterHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
|
||||||
|
return func(w http.ResponseWriter, r *http.Request) {
|
||||||
|
var req types.InstanceCenterReq
|
||||||
|
if err := httpx.Parse(r, &req); err != nil {
|
||||||
|
httpx.ErrorCtx(r.Context(), w, err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
l := inference.NewInstanceCenterLogic(r.Context(), svcCtx)
|
||||||
|
resp, err := l.InstanceCenter(&req)
|
||||||
|
if err != nil {
|
||||||
|
httpx.ErrorCtx(r.Context(), w, err)
|
||||||
|
} else {
|
||||||
|
httpx.OkJsonCtx(r.Context(), w, resp)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
File diff suppressed because it is too large
Load Diff
|
@ -47,7 +47,7 @@ func (l *CreateDeployTaskLogic) CreateDeployTask(req *types.CreateDeployTaskReq)
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
if duplicated {
|
if duplicated {
|
||||||
return nil, errors.New("TaskName doesn't exist")
|
return nil, errors.New("TaskName already exists")
|
||||||
}
|
}
|
||||||
|
|
||||||
taskId, err := l.svcCtx.Scheduler.AiStorages.SaveInferDeployTask(req.TaskName, req.ModelName, req.ModelType, req.TaskDesc)
|
taskId, err := l.svcCtx.Scheduler.AiStorages.SaveInferDeployTask(req.TaskName, req.ModelName, req.ModelType, req.TaskDesc)
|
||||||
|
|
|
@ -0,0 +1,76 @@
|
||||||
|
package inference
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"gitlink.org.cn/JointCloud/pcm-coordinator/pkg/models"
|
||||||
|
|
||||||
|
"gitlink.org.cn/JointCloud/pcm-coordinator/internal/svc"
|
||||||
|
"gitlink.org.cn/JointCloud/pcm-coordinator/internal/types"
|
||||||
|
|
||||||
|
"github.com/zeromicro/go-zero/core/logx"
|
||||||
|
)
|
||||||
|
|
||||||
|
type InstanceCenterLogic struct {
|
||||||
|
logx.Logger
|
||||||
|
ctx context.Context
|
||||||
|
svcCtx *svc.ServiceContext
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewInstanceCenterLogic(ctx context.Context, svcCtx *svc.ServiceContext) *InstanceCenterLogic {
|
||||||
|
return &InstanceCenterLogic{
|
||||||
|
Logger: logx.WithContext(ctx),
|
||||||
|
ctx: ctx,
|
||||||
|
svcCtx: svcCtx,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (l *InstanceCenterLogic) InstanceCenter(req *types.InstanceCenterReq) (*types.InstanceCenterResp, error) {
|
||||||
|
// todo: add your logic here and delete this line
|
||||||
|
var resp types.InstanceCenterResp
|
||||||
|
|
||||||
|
var InstanceCenter *[]models.AiInstanceCenter
|
||||||
|
var InstanceCenterLists []types.InstanceCenterList
|
||||||
|
|
||||||
|
if req.InstanceType == 0 {
|
||||||
|
tx := l.svcCtx.DbEngin.Raw("select * from ai_instance_center where instance_name like CONCAT(?, '%')", req.InstanceName).Scan(&InstanceCenter)
|
||||||
|
if tx.Error == nil {
|
||||||
|
logx.Error("find nil")
|
||||||
|
}
|
||||||
|
} else if req.InstanceType != 0 && req.InstanceClass == "" {
|
||||||
|
tx := l.svcCtx.DbEngin.Raw("select * from ai_instance_center where instance_type = ? and instance_name like CONCAT(?, '%')", req.InstanceType, req.InstanceName).Scan(&InstanceCenter)
|
||||||
|
if tx.Error == nil {
|
||||||
|
logx.Error("find nil")
|
||||||
|
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
tx := l.svcCtx.DbEngin.Raw("select * from ai_instance_center where instance_type = ? and instance_class = ? and instance_name like CONCAT(?, '%')", req.InstanceType, req.InstanceClass, req.InstanceName).Scan(&InstanceCenter)
|
||||||
|
if tx.Error == nil {
|
||||||
|
logx.Error("find nil")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if InstanceCenter == nil {
|
||||||
|
resp.Code = 200
|
||||||
|
resp.Msg = "No content found"
|
||||||
|
} else {
|
||||||
|
var instanceCenter = *InstanceCenter
|
||||||
|
|
||||||
|
for _, instanceCenter := range instanceCenter {
|
||||||
|
var instanceCenterlist types.InstanceCenterList
|
||||||
|
instanceCenterlist.InstanceName = instanceCenter.InstanceName
|
||||||
|
instanceCenterlist.InstanceType = instanceCenter.InstanceType
|
||||||
|
instanceCenterlist.InstanceClass = instanceCenter.InstanceClass
|
||||||
|
instanceCenterlist.Description = instanceCenter.Description
|
||||||
|
instanceCenterlist.InstanceClassChinese = instanceCenter.InstanceClassChinese
|
||||||
|
instanceCenterlist.Version = instanceCenter.Version
|
||||||
|
instanceCenterlist.LogoPath = instanceCenter.LogoPath
|
||||||
|
InstanceCenterLists = append(InstanceCenterLists, instanceCenterlist)
|
||||||
|
}
|
||||||
|
resp.Code = 200
|
||||||
|
resp.Msg = "success"
|
||||||
|
resp.InstanceCenterList = InstanceCenterLists
|
||||||
|
resp.TotalCount = len(InstanceCenterLists)
|
||||||
|
}
|
||||||
|
|
||||||
|
return &resp, nil
|
||||||
|
}
|
|
@ -764,6 +764,7 @@ func (m *ModelArtsLink) GetInferDeployInstance(ctx context.Context, id string) (
|
||||||
ins.ClusterType = TYPE_MODELARTS
|
ins.ClusterType = TYPE_MODELARTS
|
||||||
ins.ModelName = resp.Config[0].ModelName
|
ins.ModelName = resp.Config[0].ModelName
|
||||||
ins.ModelType = m.ModelType
|
ins.ModelType = m.ModelType
|
||||||
|
ins.InferUrl = resp.AccessAddress
|
||||||
return ins, nil
|
return ins, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -84,10 +84,9 @@ var (
|
||||||
CardModelNameCmdMap = map[string]map[string]string{
|
CardModelNameCmdMap = map[string]map[string]string{
|
||||||
BIV100: {"blip-image-captioning-base": "pip install -U transformers; pip install fastapi uvicorn[standard]; pip install python-multipart; cd /code; python infer_biv100.py",
|
BIV100: {"blip-image-captioning-base": "pip install -U transformers; pip install fastapi uvicorn[standard]; pip install python-multipart; cd /code; python infer_biv100.py",
|
||||||
"imagenet_resnet50": "pip install -U transformers; pip install fastapi uvicorn[standard]; pip install python-multipart; cd /code/infer; python infer_biv100.py",
|
"imagenet_resnet50": "pip install -U transformers; pip install fastapi uvicorn[standard]; pip install python-multipart; cd /code/infer; python infer_biv100.py",
|
||||||
"ChatGLM_6B": "su root; pip install transformers==4.33.2; pip install fastapi uvicorn[standard]; cd /code; python infer_biv100.py"},
|
"ChatGLM-6B": "su root; pip install transformers==4.33.2; pip install fastapi uvicorn[standard]; cd /code; python infer_biv100.py"},
|
||||||
MLU: {"blip-image-captioning-base": "",
|
MLU: {"blip-image-captioning-base": "",
|
||||||
"imagenet_resnet50": "su root; . /torch/venv3/pytorch/bin/activate; pip install fastapi uvicorn[standard]; pip install python-multipart; cd /code/infer; python infer_mlu.py",
|
"imagenet_resnet50": "su root; . /torch/venv3/pytorch/bin/activate; pip install fastapi uvicorn[standard]; pip install python-multipart; cd /code/infer; python infer_mlu.py"},
|
||||||
"ChatGLM_6B": ""},
|
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -1238,7 +1237,7 @@ func (o *OctopusLink) CreateInferDeployInstance(ctx context.Context, option *opt
|
||||||
|
|
||||||
desc := option.ModelType + FORWARD_SLASH + option.ModelName + FORWARD_SLASH + strings.ToLower(BIV100)
|
desc := option.ModelType + FORWARD_SLASH + option.ModelName + FORWARD_SLASH + strings.ToLower(BIV100)
|
||||||
param := &octopus.CreateNotebookParam{
|
param := &octopus.CreateNotebookParam{
|
||||||
Name: option.TaskName,
|
Name: DEPLOY_INSTANCE_PREFIEX + DASH + utils.TimeString(),
|
||||||
ResourcePool: RESOURCE_POOL,
|
ResourcePool: RESOURCE_POOL,
|
||||||
ResourceSpecId: option.ResourceId,
|
ResourceSpecId: option.ResourceId,
|
||||||
AlgorithmId: option.AlgorithmId,
|
AlgorithmId: option.AlgorithmId,
|
||||||
|
|
|
@ -879,7 +879,7 @@ func (s *ShuguangAi) GetInferDeployInstance(ctx context.Context, id string) (*in
|
||||||
Id: id,
|
Id: id,
|
||||||
}
|
}
|
||||||
resp, err := s.aCRpc.GetInstanceServiceDetail(ctx, req)
|
resp, err := s.aCRpc.GetInstanceServiceDetail(ctx, req)
|
||||||
if err != nil || resp.Code != "0" {
|
if err != nil || resp.Code != "0" || resp.Data == nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -929,7 +929,7 @@ func (s *ShuguangAi) CreateInferDeployInstance(ctx context.Context, option *opti
|
||||||
}
|
}
|
||||||
|
|
||||||
desc := option.ModelType + FORWARD_SLASH + option.ModelName + FORWARD_SLASH + strings.ToLower(DCU)
|
desc := option.ModelType + FORWARD_SLASH + option.ModelName + FORWARD_SLASH + strings.ToLower(DCU)
|
||||||
instanceServiceName := "infer_instance" + UNDERSCORE + utils.RandomString(15)
|
instanceServiceName := "infer_instance" + UNDERSCORE + utils.TimeString()
|
||||||
resourceGroup := "kshdtest"
|
resourceGroup := "kshdtest"
|
||||||
|
|
||||||
script, ok := ModelNameCmdMap[option.ModelName]
|
script, ok := ModelNameCmdMap[option.ModelName]
|
||||||
|
|
12406
internal/types/types.go
12406
internal/types/types.go
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,29 @@
|
||||||
|
package models
|
||||||
|
|
||||||
|
import "github.com/zeromicro/go-zero/core/stores/sqlx"
|
||||||
|
|
||||||
|
var _ AiInstanceCenterModel = (*customAiInstanceCenterModel)(nil)
|
||||||
|
|
||||||
|
type (
|
||||||
|
// AiInstanceCenterModel is an interface to be customized, add more methods here,
|
||||||
|
// and implement the added methods in customAiInstanceCenterModel.
|
||||||
|
AiInstanceCenterModel interface {
|
||||||
|
aiInstanceCenterModel
|
||||||
|
withSession(session sqlx.Session) AiInstanceCenterModel
|
||||||
|
}
|
||||||
|
|
||||||
|
customAiInstanceCenterModel struct {
|
||||||
|
*defaultAiInstanceCenterModel
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
// NewAiInstanceCenterModel returns a model for the database table.
|
||||||
|
func NewAiInstanceCenterModel(conn sqlx.SqlConn) AiInstanceCenterModel {
|
||||||
|
return &customAiInstanceCenterModel{
|
||||||
|
defaultAiInstanceCenterModel: newAiInstanceCenterModel(conn),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *customAiInstanceCenterModel) withSession(session sqlx.Session) AiInstanceCenterModel {
|
||||||
|
return NewAiInstanceCenterModel(sqlx.NewSqlConnFromSession(session))
|
||||||
|
}
|
|
@ -0,0 +1,91 @@
|
||||||
|
// Code generated by goctl. DO NOT EDIT.
|
||||||
|
|
||||||
|
package models
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"database/sql"
|
||||||
|
"fmt"
|
||||||
|
"strings"
|
||||||
|
|
||||||
|
"github.com/zeromicro/go-zero/core/stores/builder"
|
||||||
|
"github.com/zeromicro/go-zero/core/stores/sqlx"
|
||||||
|
"github.com/zeromicro/go-zero/core/stringx"
|
||||||
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
aiInstanceCenterFieldNames = builder.RawFieldNames(&AiInstanceCenter{})
|
||||||
|
aiInstanceCenterRows = strings.Join(aiInstanceCenterFieldNames, ",")
|
||||||
|
aiInstanceCenterRowsExpectAutoSet = strings.Join(stringx.Remove(aiInstanceCenterFieldNames, "`create_at`", "`create_time`", "`created_at`", "`update_at`", "`update_time`", "`updated_at`"), ",")
|
||||||
|
aiInstanceCenterRowsWithPlaceHolder = strings.Join(stringx.Remove(aiInstanceCenterFieldNames, "`id`", "`create_at`", "`create_time`", "`created_at`", "`update_at`", "`update_time`", "`updated_at`"), "=?,") + "=?"
|
||||||
|
)
|
||||||
|
|
||||||
|
type (
|
||||||
|
aiInstanceCenterModel interface {
|
||||||
|
Insert(ctx context.Context, data *AiInstanceCenter) (sql.Result, error)
|
||||||
|
FindOne(ctx context.Context, id int64) (*AiInstanceCenter, error)
|
||||||
|
Update(ctx context.Context, data *AiInstanceCenter) error
|
||||||
|
Delete(ctx context.Context, id int64) error
|
||||||
|
}
|
||||||
|
|
||||||
|
defaultAiInstanceCenterModel struct {
|
||||||
|
conn sqlx.SqlConn
|
||||||
|
table string
|
||||||
|
}
|
||||||
|
|
||||||
|
AiInstanceCenter struct {
|
||||||
|
Id int64 `db:"id"` // 平台唯一id
|
||||||
|
LogoPath string `db:"logo_path"` // logo图像的位置
|
||||||
|
InstanceName string `db:"instance_name"` // 实例名称
|
||||||
|
InstanceType int32 `db:"instance_type"` // 实例类型(1是应用实例,2是模型实例)
|
||||||
|
InstanceClass string `db:"instance_class"` // 实例类别
|
||||||
|
InstanceClassChinese string `db:"instance_class_chinese"` // 实例类别中文描述
|
||||||
|
Description string `db:"description"` // 描述
|
||||||
|
Version string `db:"version"` // 版本
|
||||||
|
CreateTime string `db:"create_time"` // 创建时间
|
||||||
|
UpdateTime string `db:"update_time"` // 更新时间
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
func newAiInstanceCenterModel(conn sqlx.SqlConn) *defaultAiInstanceCenterModel {
|
||||||
|
return &defaultAiInstanceCenterModel{
|
||||||
|
conn: conn,
|
||||||
|
table: "`ai_instance_center`",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *defaultAiInstanceCenterModel) Delete(ctx context.Context, id int64) error {
|
||||||
|
query := fmt.Sprintf("delete from %s where `id` = ?", m.table)
|
||||||
|
_, err := m.conn.ExecCtx(ctx, query, id)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *defaultAiInstanceCenterModel) FindOne(ctx context.Context, id int64) (*AiInstanceCenter, error) {
|
||||||
|
query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", aiInstanceCenterRows, m.table)
|
||||||
|
var resp AiInstanceCenter
|
||||||
|
err := m.conn.QueryRowCtx(ctx, &resp, query, id)
|
||||||
|
switch err {
|
||||||
|
case nil:
|
||||||
|
return &resp, nil
|
||||||
|
case sqlx.ErrNotFound:
|
||||||
|
return nil, ErrNotFound
|
||||||
|
default:
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *defaultAiInstanceCenterModel) Insert(ctx context.Context, data *AiInstanceCenter) (sql.Result, error) {
|
||||||
|
query := fmt.Sprintf("insert into %s (%s) values (?, ?, ?, ?, ?, ?, ?, ?)", m.table, aiInstanceCenterRowsExpectAutoSet)
|
||||||
|
ret, err := m.conn.ExecCtx(ctx, query, data.Id, data.LogoPath, data.InstanceName, data.InstanceType, data.InstanceClass, data.InstanceClassChinese, data.Description, data.Version)
|
||||||
|
return ret, err
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *defaultAiInstanceCenterModel) Update(ctx context.Context, data *AiInstanceCenter) error {
|
||||||
|
query := fmt.Sprintf("update %s set %s where `id` = ?", m.table, aiInstanceCenterRowsWithPlaceHolder)
|
||||||
|
_, err := m.conn.ExecCtx(ctx, query, data.LogoPath, data.InstanceName, data.InstanceType, data.InstanceClass, data.InstanceClassChinese, data.Description, data.Version, data.Id)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *defaultAiInstanceCenterModel) tableName() string {
|
||||||
|
return m.table
|
||||||
|
}
|
|
@ -17,15 +17,23 @@ package utils
|
||||||
import (
|
import (
|
||||||
"math/rand"
|
"math/rand"
|
||||||
"strings"
|
"strings"
|
||||||
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
const charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"
|
const (
|
||||||
|
CHARSET = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"
|
||||||
|
TIMEFORMAT = "20060102150405"
|
||||||
|
)
|
||||||
|
|
||||||
func RandomString(n int) string {
|
func RandomString(n int) string {
|
||||||
sb := strings.Builder{}
|
sb := strings.Builder{}
|
||||||
sb.Grow(n)
|
sb.Grow(n)
|
||||||
for i := 0; i < n; i++ {
|
for i := 0; i < n; i++ {
|
||||||
sb.WriteByte(charset[rand.Intn(len(charset))])
|
sb.WriteByte(CHARSET[rand.Intn(len(CHARSET))])
|
||||||
}
|
}
|
||||||
return sb.String()
|
return sb.String()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TimeString() string {
|
||||||
|
return time.Now().Format(TIMEFORMAT)
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue