re-constructure

This commit is contained in:
zhouqunjie 2023-10-31 22:48:40 +08:00
parent 6d1687e463
commit cbb03b6933
90 changed files with 27753 additions and 5377 deletions

325
doc/slurm_deploy.md Normal file
View File

@ -0,0 +1,325 @@
### 一 、基础配置(所有机器均执行)
#### 关闭防火墙
```
systemctl stop firewalld
systemctl disable firewalld
sed -i -e 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
```
#### 设置主机名
```
hostname slurm-122
hostname slurm-123
hostname slurm-124
hostname slurm-125
```
#### 设置hosts重启生效
```
vim /etc/hosts
192.168.249.122 slurm-122
192.168.249.123 slurm-123
192.168.249.124 slurm-124
192.168.249.125 slurm-125
reboot
```
#### 配置SSH免登陆控制节点上边执行
```
echo y| ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub -o StrictHostKeyChecking=no root@slurm-123
ssh-copy-id -i ~/.ssh/id_rsa.pub -o StrictHostKeyChecking=no root@slurm-124
ssh-copy-id -i ~/.ssh/id_rsa.pub -o StrictHostKeyChecking=no root@slurm-125
```
#### 安装依赖软件
```
yum -y install net-tools wget vim ntpdate chrony htop glances nfs-utils rpcbind python32
```
### 二 、配置Munge所有机器均执行
#### 安装epel-release
```
yum install -y epel-release
```
#### 安装munge
```
yum install munge munge-libs munge-devel -y
```
#### 创建全局密钥(控制节点上面执行)
```
create-munge-key
```
#### 密钥同步到所有计算节点(控制节点上面执行)
```
scp -p /etc/munge/munge.key root@slurm-123:/etc/munge
scp -p /etc/munge/munge.key root@slurm-124:/etc/munge
scp -p /etc/munge/munge.key root@slurm-125:/etc/munge
```
#### 计算节点上面执行
```
chown munge: /etc/munge/munge.key
chmod 400 /etc/munge/munge.key
```
#### 启动所有节点
```
systemctl restart munge
systemctl enable munge
systemctl status munge
```
测试Munge服务每个计算节点与控制节点进行连接验证
```
#本地查看凭据
munge -n
#本地解码
munge -n | unmunge
#验证compute node远程解码
munge -n | ssh slurm-123 unmunge
#Munge凭证基准测试
remunge
```
### 三 、配置Slurm所有机器均执行
#### 创建Slurm用户
```
groupadd -g 1109 slurm
useradd -m -c "Slurm manager" -d /var/lib/slurm -u 1109 -g slurm -s /bin/bash slurm
```
#### 安装Slurm依赖
```
yum install gcc gcc-c++ readline-devel perl-ExtUtils-MakeMaker pam-devel rpm-build mysql-devel http-parser-devel json-c-devel libjwt libjwt-devel -y
```
#### 编译Slurm和安装Slurm
```
# 下载地址
wget https://download.schedmd.com/slurm/slurm-22.05.3.tar.bz2
rpmbuild -ta --with mysql --with slurmrestd --with jwt slurm-22.05.3.tar.bz2
cd /root/rpmbuild/RPMS/x86_64/
yum localinstall -y slurm-*
```
#### 配置控制节点Slurm (控制节点上执行)
```
#控制节点上面执行
cp /etc/slurm/cgroup.conf.example /etc/slurm/cgroup.conf
cp /etc/slurm/slurm.conf.example /etc/slurm/slurm.conf
```
参考官网: https://slurm.schedmd.com/quickstart_admin.html
ControlMachine 改为控制节点的名称
ControlAddr 改为控制节点的 IP
NodeName 改为控制节点的名称,计算节点名称
Nodes 改为计算节点的名称
```
ClusterName=Cluster-nudt
SlurmctldHost=slurm-122
SlurmctldParameters=enable_configless
SlurmUser=slurm
#SlurmdUser=root
SlurmctldPort=6817
SlurmdPort=6818
StateSaveLocation=/var/spool/slurmctld
SlurmdSpoolDir=/var/spool/slurmd
ReturnToService=1
MPIDefault=None
ProctrackType=proctrack/cgroup
SchedulerType=sched/backfill
SelectType=select/cons_tres
SelectTypeParameters=CR_Core_Memory
TaskPlugin=task/cgroup,task/affinity
SlurmctldDebug=info
SlurmctldLogFile=/var/log/slurm/slurmctld.log
SlurmdDebug=info
SlurmdLogFile=/var/log/slurm/slurmd.log
JobCompType=jobcomp/mysql
JobCompHost=localhost
JobCompUser=slurm
JobCompPass=Slm123P@88
JobAcctGatherType=jobacct_gather/linux
JobAcctGatherFrequency=30
AccountingStorageType=accounting_storage/slurmdbd
AccountingStorageHost=localhost
AccountingStorageTRES=gres/gpu
GresTypes=gpu
SlurmctldPidFile=/var/run/slurmctld.pid
SlurmdPidFile=/var/run/slurmd.pid
SlurmctldTimeout=120
SlurmdTimeout=300
InactiveLimit=0
MinJobAge=300
KillWait=30
WaitTime=0
AuthAltTypes=auth/jwt
AuthAltParameters=jwt_key=/var/spool/slurm/ctld/jwt_hs256.key
NodeName=slurm-[122-125] Gres=gpu:v100:4 CPUs=16 Boards=1 SocketsPerBoard=2 CoresPerSocket=8 ThreadsPerCore=1 RealMemory=257604 State=UNKNOWN
PartitionName=compute Nodes=slurm-[122-125] Default=YES MaxTime=INFINITE State=UP
```
#### 复制控制节点配置文件到计算节点(控制节点上面执行)
```
scp /etc/slurm/*.conf slurm-123:/etc/slurm/
scp /etc/slurm/*.conf slurm-124:/etc/slurm/
scp /etc/slurm/*.conf slurm-125:/etc/slurm/
```
#### 设置控制、计算节点文件权限
```
mkdir -p /var/spool/slurm
chown slurm: /var/spool/slurm
mkdir -p /var/log/slurm
chown slurm: /var/log/slurm
```
### 四 、搭建slurmdbd环境
使用默认mariadb
#### 配置数据库账号
```
# 生成slurm用户以便该用户操作slurm_acct_db数据库其密码是SomePassWD
create user 'slurm'@'localhost' identified by 'SomePassWD';
# 生成账户数据库slurm_acct_db
create database slurm_acct_db;
# 赋予slurm从本机localhost采用密码SomePassWD登录具备操作slurm_acct_db数据下所有表的全部权限
grant all on slurm_acct_db.* TO 'slurm'@'localhost' identified by 'SomePassWD' with grant option;
# 赋予slurm从system0采用密码SomePassWD登录具备操作slurm_acct_db数据下所有表的全部权限
grant all on slurm_acct_db.* TO 'slurm'@'system0' identified by 'SomePassWD' with
grant option;
# 生成作业信息数据库slurm_jobcomp_db
create database slurm_jobcomp_db;
# 赋予slurm从本机localhost采用密码SomePassWD登录具备操作slurm_jobcomp_db数据下所有表的全部权限
grant all on slurm_jobcomp_db.* TO 'slurm'@'localhost' identified by 'SomePassWD' with grant option;
# 赋予slurm从system0采用密码SomePassWD登录具备操作slurm_jobcomp_db数据下所有表的全部权限
grant all on slurm_jobcomp_db.* TO 'slurm'@'system0' identified by 'SomePassWD'
with grant option;
```
#### 配置slurmdbd.conf文件
DbdAddr 控制节点 IP
DbdHos 控制节点 主机名
StorageHost 计算节点 IP
StorageUser 计算节点 主机名
StorageUser 创建的用户 #slurm
StoragePass mysql 登录密码
StorageLoc slurm_acct_db #db名slurmdbd会自动创建db
StoragePort mysql 端口号
```
AuthType=auth/munge
AuthInfo=/var/run/munge/munge.socket.2
DbdHost=localhost
DbdAddr=127.0.0.1
SlurmUser=slurm
MessageTimeout=60
DebugLevel=debug5
DefaultQOS=normal
LogFile=/var/log/slurm/slurmdbd.log
PidFile=/var/run/slurmdbd.pid
StorageType=accounting_storage/mysql
StorageHost=localhost
StorageLoc=slurm_acct_db
StoragePort=3306
StorageUser=slurm
StoragePass=Slm123P@88
AuthAltTypes=auth/jwt
AuthAltParameters=jwt_key=/var/spool/slurm/ctld/jwt_hs256.key
```
#### 添加JWT键到控制器
```
mkdir -p /var/spool/slurm/ctld
dd if=/dev/random of=/var/spool/slurm/ctld/jwt_hs256.key bs=32 count=1
chown slurm:slurm /var/spool/slurm/ctld/jwt_hs256.key
chmod 0600 /var/spool/slurm/ctld/jwt_hs256.key
# chown root:root /etc/slurm
chmod 0755 /var/spool/slurm/ctld
chown slurm:slurm /var/spool/slurm/ctld
```
#### 启动服务
```
# 启动控制节点Slurmdbd服务
systemctl restart slurmdbd
systemctl enable slurmdbd
systemctl status slurmdbd
# 启动控制节点slurmctld服务
systemctl restart slurmctld
systemctl enable slurmctld
systemctl status slurmctld
# 启动计算节点的服务
systemctl restart slurmd
systemctl enable slurmd
systemctl status slurmd
```
### 安装slurmrestd
添加slurmrestd用户
```
useradd slurmrestd
```
修改 /lib/systemd/system/slurmrestd.service
```
[Unit]
Description=Slurm REST daemon
After=network-online.target munge.service slurmctld.service
Wants=network-online.target
ConditionPathExists=/etc/slurm/slurm.conf
Documentation=man:slurmrestd(8)
[Service]
Type=simple
# 用户不能root不能slurmUser
User=slurmrestd
EnvironmentFile=-/etc/default/slurmrestd
# Default to local auth via socket
# ExecStart=/usr/sbin/slurmrestd $SLURMRESTD_OPTIONS unix:/run/slurmrestd.socket
# Uncomment to enable listening mode
Environment="SLURM_JWT=daemon"
ExecStart=/usr/sbin/slurmrestd $SLURMRESTD_OPTIONS 0.0.0.0:6820
ExecReload=/bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target
```
重载服务
```
systemctl daemon-reload
```
启动slurmrestd
```
systemctl enable slurmrestd.service
systemctl start slurmrestd.service
systemctl status slurmrestd.service
```
获取token
```
scontrol token username=slurmrestd
SLURM_JWT=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2OTgyMDYxOTMsImlhdCI6MTY5ODIwNDM5Mywic3VuIjoiIn0.mbmwfbBVwez8_C7QOhgqWgi-ZYMU3FuSzGsfyrlokvQ
```
postman请求rest服务即可在header信息中添加X-SLURM-USER-NAME和X-SLURM-USER-TOKEN两个参数
![输入图片说明](/imgs/2023-10-25/WlXDhHmIjgIvxZ6H.png)

View File

@ -5,6 +5,39 @@ PcmCoreRpcConf:
Endpoints:
- 0.0.0.0:2004
NonBlock: true
ClusterUrl: localhost
RestUrl: http://192.168.249.122:6820
SSH:
Url: 192.168.249.122:22
Username: root
Password: Nscc@2022.com
Path:
Job: /slurm/v0.0.38/job
Jobs: /slurm/v0.0.38/jobs
JobDb: /slurmdb/v0.0.38/job
JobsDb: /slurmdb/v0.0.38/jobs
User: /slurmdb/v0.0.38/user
Users: /slurmdb/v0.0.38/users
Partition: /slurm/v0.0.38/partition
Partitions: /slurm/v0.0.38/partition
Node: /slurm/v0.0.38/node
Nodes: /slurm/v0.0.38/nodes
Reservation: /slurm/v0.0.38/reservation
Reservations: /slurm/v0.0.38/reservations
Config: /slurmdb/v0.0.38/config
Qos: /slurmdb/v0.0.38/qos
Tres: /slurmdb/v0.0.38/tres
Account: /slurmdb/v0.0.38/account
Accounts: /slurmdb/v0.0.38/accounts
Cluster: /slurmdb/v0.0.38/cluster
Clusters: /slurmdb/v0.0.38/clusters
Wckey: /slurmdb/v0.0.38/wckey
Wckeys: /slurmdb/v0.0.38/wckeys
Diagnostics: /slurm/v0.0.38/diag
DiagnosticsDb: /slurmdb/v0.0.38/diag
Ping: /slurm/v0.0.38/ping
Association: /slurmdb/v0.0.38/association
Associations: /slurmdb/v0.0.38/associations
SlurmRestUser: slurmrestd
SlurmToken: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2OTg3NjQyMDksImlhdCI6MTY5ODc2MjQwOSwic3VuIjoic2x1cm1yZXN0ZCJ9.AYLFxTA_9bIuxMTZBCe4qctfbMB65A1x57bN19y5P4k
ParticipantId: 1706858330967773184

7
go.mod
View File

@ -10,10 +10,9 @@ require (
github.com/zeromicro/go-zero v1.5.4
gitlink.org.cn/jcce-pcm/pcm-coordinator v0.1.7-0.20230828070533-7721b3b6ff0d
gitlink.org.cn/jcce-pcm/utils v0.0.2
golang.org/x/crypto v0.11.0
google.golang.org/grpc v1.57.0
google.golang.org/protobuf v1.31.0
k8s.io/apimachinery v0.27.3
k8s.io/client-go v0.26.3
)
require (
@ -52,7 +51,7 @@ require (
github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0 // indirect
github.com/mailru/easyjson v0.7.7 // indirect
github.com/mattn/go-colorable v0.1.13 // indirect
github.com/mattn/go-isatty v0.0.17 // indirect
github.com/mattn/go-isatty v0.0.19 // indirect
github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.2 // indirect
@ -97,6 +96,8 @@ require (
gopkg.in/yaml.v2 v2.4.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
k8s.io/api v0.26.3 // indirect
k8s.io/apimachinery v0.27.3 // indirect
k8s.io/client-go v0.26.3 // indirect
k8s.io/klog/v2 v2.90.1 // indirect
k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f // indirect
k8s.io/utils v0.0.0-20230209194617-a36077c30491 // indirect

7
go.sum
View File

@ -253,8 +253,8 @@ github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJ
github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
github.com/mattn/go-isatty v0.0.17 h1:BTarxUcIeDqL27Mc+vyvdWYSL28zpIhv3RoTdsLMPng=
github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA=
github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo=
github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4=
@ -406,6 +406,8 @@ golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8U
golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.11.0 h1:6Ewdq3tDic1mg5xRO4milcWCfMVQhI4NkqWWvqejpuA=
golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIio=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
@ -534,6 +536,7 @@ golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.10.0 h1:SqMFp9UcQJZa+pmYuAKjd9xq1f0j5rLcDIk0mj4qAsA=
golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=

View File

@ -12,7 +12,46 @@ type Config struct {
SlurmConf
}
type SSH struct {
Url string
Username string
Password string
}
type Path struct {
Job string
Jobs string
JobDb string
JobsDb string
User string
Users string
Partition string
Partitions string
Node string
Nodes string
Reservation string
Reservations string
Config string
Qos string
Tres string
Account string
Accounts string
Cluster string
Clusters string
Wckey string
Wckeys string
Diagnostics string
DiagnosticsDb string
Ping string
Association string
Associations string
}
// SlurmConf slurm 相关URL配置
type SlurmConf struct {
ClusterUrl string `json:"ClusterUrl"`
RestUrl string `json:"RestUrl"`
SSH SSH `json:"SSH"`
Path Path `json:"Path"`
SlurmRestUser string `json:"SlurmRestUser"`
SlurmToken string `json:"SlurmToken"`
}

View File

@ -0,0 +1,30 @@
package logic
import (
"context"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/internal/svc"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/slurm"
"github.com/zeromicro/go-zero/core/logx"
)
type AddClusterLogic struct {
ctx context.Context
svcCtx *svc.ServiceContext
logx.Logger
}
func NewAddClusterLogic(ctx context.Context, svcCtx *svc.ServiceContext) *AddClusterLogic {
return &AddClusterLogic{
ctx: ctx,
svcCtx: svcCtx,
Logger: logx.WithContext(ctx),
}
}
func (l *AddClusterLogic) AddCluster(in *slurm.AddClusterReq) (*slurm.AddClusterResp, error) {
// todo: add your logic here and delete this line
return &slurm.AddClusterResp{}, nil
}

View File

@ -0,0 +1,30 @@
package logic
import (
"context"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/internal/svc"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/slurm"
"github.com/zeromicro/go-zero/core/logx"
)
type AddWckeyLogic struct {
ctx context.Context
svcCtx *svc.ServiceContext
logx.Logger
}
func NewAddWckeyLogic(ctx context.Context, svcCtx *svc.ServiceContext) *AddWckeyLogic {
return &AddWckeyLogic{
ctx: ctx,
svcCtx: svcCtx,
Logger: logx.WithContext(ctx),
}
}
func (l *AddWckeyLogic) AddWckey(in *slurm.AddWckeyReq) (*slurm.AddWckeyResp, error) {
// todo: add your logic here and delete this line
return &slurm.AddWckeyResp{}, nil
}

View File

@ -0,0 +1,30 @@
package logic
import (
"context"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/internal/svc"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/slurm"
"github.com/zeromicro/go-zero/core/logx"
)
type CancelJobLogic struct {
ctx context.Context
svcCtx *svc.ServiceContext
logx.Logger
}
func NewCancelJobLogic(ctx context.Context, svcCtx *svc.ServiceContext) *CancelJobLogic {
return &CancelJobLogic{
ctx: ctx,
svcCtx: svcCtx,
Logger: logx.WithContext(ctx),
}
}
func (l *CancelJobLogic) CancelJob(in *slurm.CancelJobReq) (*slurm.CancelJobResp, error) {
// todo: add your logic here and delete this line
return &slurm.CancelJobResp{}, nil
}

View File

@ -1,74 +0,0 @@
package logic
import (
"context"
"github.com/jinzhu/copier"
"github.com/zeromicro/go-zero/core/logx"
"gitlink.org.cn/jcce-pcm/pcm-coordinator/rpc/client/pcmcore"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/internal/svc"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/slurm"
"gitlink.org.cn/jcce-pcm/utils/tool"
)
func InitCron(svc *svc.ServiceContext) {
svc.Cron.Start()
submitJobLogic := NewSubmitJobLogic(context.Background(), svc)
listLogic := NewListJobLogic(context.Background(), svc)
svc.Cron.AddFunc("*/5 * * * * ?", func() {
// 查询core端分发下来的任务列表
infoReq := pcmcore.InfoListReq{
Kind: "hpc",
}
infoList, err := svc.PcmCoreRpc.InfoList(context.Background(), &infoReq)
if err != nil {
logx.Error(err)
return
}
// 提交任务
submitJob(infoList, submitJobLogic)
// 查询运行中的任务列表同步信息
listReq := slurm.ListJobReq{}
listJob, err := listLogic.ListJob(&listReq)
if err != nil {
logx.Error(err)
return
}
for index, _ := range infoList.HpcInfoList {
for _, job := range listJob.Jobs {
if job.Name == infoList.HpcInfoList[index].Name {
copier.CopyWithOption(&infoList.HpcInfoList[index], job, copier.Option{Converters: tool.Converters})
infoList.HpcInfoList[index].JobId = job.JobId
infoList.HpcInfoList[index].StartTime = string(job.StartTime)
infoList.HpcInfoList[index].RunningTime = int64(job.EndTime - job.StartTime)
infoList.HpcInfoList[index].Status = job.JobState
infoList.HpcInfoList[index].Version = "slurm 2.6.9"
}
}
}
// 同步信息到core端
if len(infoList.HpcInfoList) != 0 {
syncInfoReq := pcmcore.SyncInfoReq{
Kind: "hpc",
HpcInfoList: infoList.HpcInfoList,
}
svc.PcmCoreRpc.SyncInfo(context.Background(), &syncInfoReq)
}
})
}
func submitJob(infoList *pcmcore.InfoListResp, submitJobLogic *SubmitJobLogic) {
for index, _ := range infoList.HpcInfoList {
if infoList.HpcInfoList[index].Status == "Saved" {
submitReq := slurm.SubmitJobReq{
Script: "",
Job: nil,
Jobs: nil,
}
jobResult, _ := submitJobLogic.SubmitJob(&submitReq)
// 任务提交成功
infoList.HpcInfoList[index].Status = "Pending"
infoList.HpcInfoList[index].JobId = string(jobResult.JobId)
}
}
}

View File

@ -0,0 +1,30 @@
package logic
import (
"context"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/internal/svc"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/slurm"
"github.com/zeromicro/go-zero/core/logx"
)
type DeleteAccountLogic struct {
ctx context.Context
svcCtx *svc.ServiceContext
logx.Logger
}
func NewDeleteAccountLogic(ctx context.Context, svcCtx *svc.ServiceContext) *DeleteAccountLogic {
return &DeleteAccountLogic{
ctx: ctx,
svcCtx: svcCtx,
Logger: logx.WithContext(ctx),
}
}
func (l *DeleteAccountLogic) DeleteAccount(in *slurm.DeleteAccountReq) (*slurm.DeleteAccountResp, error) {
// todo: add your logic here and delete this line
return &slurm.DeleteAccountResp{}, nil
}

View File

@ -0,0 +1,30 @@
package logic
import (
"context"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/internal/svc"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/slurm"
"github.com/zeromicro/go-zero/core/logx"
)
type DeleteAssociationLogic struct {
ctx context.Context
svcCtx *svc.ServiceContext
logx.Logger
}
func NewDeleteAssociationLogic(ctx context.Context, svcCtx *svc.ServiceContext) *DeleteAssociationLogic {
return &DeleteAssociationLogic{
ctx: ctx,
svcCtx: svcCtx,
Logger: logx.WithContext(ctx),
}
}
func (l *DeleteAssociationLogic) DeleteAssociation(in *slurm.DeleteAssociationReq) (*slurm.DeleteAssociationResp, error) {
// todo: add your logic here and delete this line
return &slurm.DeleteAssociationResp{}, nil
}

View File

@ -0,0 +1,30 @@
package logic
import (
"context"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/internal/svc"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/slurm"
"github.com/zeromicro/go-zero/core/logx"
)
type DeleteClusterLogic struct {
ctx context.Context
svcCtx *svc.ServiceContext
logx.Logger
}
func NewDeleteClusterLogic(ctx context.Context, svcCtx *svc.ServiceContext) *DeleteClusterLogic {
return &DeleteClusterLogic{
ctx: ctx,
svcCtx: svcCtx,
Logger: logx.WithContext(ctx),
}
}
func (l *DeleteClusterLogic) DeleteCluster(in *slurm.DeleteClusterReq) (*slurm.DeleteClusterResp, error) {
// todo: add your logic here and delete this line
return &slurm.DeleteClusterResp{}, nil
}

View File

@ -0,0 +1,30 @@
package logic
import (
"context"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/internal/svc"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/slurm"
"github.com/zeromicro/go-zero/core/logx"
)
type DeleteQosLogic struct {
ctx context.Context
svcCtx *svc.ServiceContext
logx.Logger
}
func NewDeleteQosLogic(ctx context.Context, svcCtx *svc.ServiceContext) *DeleteQosLogic {
return &DeleteQosLogic{
ctx: ctx,
svcCtx: svcCtx,
Logger: logx.WithContext(ctx),
}
}
func (l *DeleteQosLogic) DeleteQos(in *slurm.DeleteQosReq) (*slurm.DeleteQosResp, error) {
// todo: add your logic here and delete this line
return &slurm.DeleteQosResp{}, nil
}

View File

@ -0,0 +1,30 @@
package logic
import (
"context"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/internal/svc"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/slurm"
"github.com/zeromicro/go-zero/core/logx"
)
type DeleteUserLogic struct {
ctx context.Context
svcCtx *svc.ServiceContext
logx.Logger
}
func NewDeleteUserLogic(ctx context.Context, svcCtx *svc.ServiceContext) *DeleteUserLogic {
return &DeleteUserLogic{
ctx: ctx,
svcCtx: svcCtx,
Logger: logx.WithContext(ctx),
}
}
func (l *DeleteUserLogic) DeleteUser(in *slurm.DeleteUserReq) (*slurm.DeleteUserResp, error) {
// todo: add your logic here and delete this line
return &slurm.DeleteUserResp{}, nil
}

View File

@ -0,0 +1,30 @@
package logic
import (
"context"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/internal/svc"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/slurm"
"github.com/zeromicro/go-zero/core/logx"
)
type DeleteWckeyLogic struct {
ctx context.Context
svcCtx *svc.ServiceContext
logx.Logger
}
func NewDeleteWckeyLogic(ctx context.Context, svcCtx *svc.ServiceContext) *DeleteWckeyLogic {
return &DeleteWckeyLogic{
ctx: ctx,
svcCtx: svcCtx,
Logger: logx.WithContext(ctx),
}
}
func (l *DeleteWckeyLogic) DeleteWckey(in *slurm.DeleteWckeyReq) (*slurm.DeleteWckeyResp, error) {
// todo: add your logic here and delete this line
return &slurm.DeleteWckeyResp{}, nil
}

View File

@ -0,0 +1,30 @@
package logic
import (
"context"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/internal/svc"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/slurm"
"github.com/zeromicro/go-zero/core/logx"
)
type DumpConfigurationLogic struct {
ctx context.Context
svcCtx *svc.ServiceContext
logx.Logger
}
func NewDumpConfigurationLogic(ctx context.Context, svcCtx *svc.ServiceContext) *DumpConfigurationLogic {
return &DumpConfigurationLogic{
ctx: ctx,
svcCtx: svcCtx,
Logger: logx.WithContext(ctx),
}
}
func (l *DumpConfigurationLogic) DumpConfiguration(in *slurm.DumpConfigurationReq) (*slurm.DumpConfigurationResp, error) {
// todo: add your logic here and delete this line
return &slurm.DumpConfigurationResp{}, nil
}

View File

@ -0,0 +1,30 @@
package logic
import (
"context"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/internal/svc"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/slurm"
"github.com/zeromicro/go-zero/core/logx"
)
type GetAccountLogic struct {
ctx context.Context
svcCtx *svc.ServiceContext
logx.Logger
}
func NewGetAccountLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetAccountLogic {
return &GetAccountLogic{
ctx: ctx,
svcCtx: svcCtx,
Logger: logx.WithContext(ctx),
}
}
func (l *GetAccountLogic) GetAccount(in *slurm.GetAccountReq) (*slurm.GetAccountResp, error) {
// todo: add your logic here and delete this line
return &slurm.GetAccountResp{}, nil
}

View File

@ -0,0 +1,30 @@
package logic
import (
"context"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/internal/svc"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/slurm"
"github.com/zeromicro/go-zero/core/logx"
)
type GetAssociationLogic struct {
ctx context.Context
svcCtx *svc.ServiceContext
logx.Logger
}
func NewGetAssociationLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetAssociationLogic {
return &GetAssociationLogic{
ctx: ctx,
svcCtx: svcCtx,
Logger: logx.WithContext(ctx),
}
}
func (l *GetAssociationLogic) GetAssociation(in *slurm.GetAssociationReq) (*slurm.GetAssociationResp, error) {
// todo: add your logic here and delete this line
return &slurm.GetAssociationResp{}, nil
}

View File

@ -0,0 +1,30 @@
package logic
import (
"context"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/internal/svc"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/slurm"
"github.com/zeromicro/go-zero/core/logx"
)
type GetClusterLogic struct {
ctx context.Context
svcCtx *svc.ServiceContext
logx.Logger
}
func NewGetClusterLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetClusterLogic {
return &GetClusterLogic{
ctx: ctx,
svcCtx: svcCtx,
Logger: logx.WithContext(ctx),
}
}
func (l *GetClusterLogic) GetCluster(in *slurm.GetClusterReq) (*slurm.GetClusterResp, error) {
// todo: add your logic here and delete this line
return &slurm.GetClusterResp{}, nil
}

View File

@ -0,0 +1,30 @@
package logic
import (
"context"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/internal/svc"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/slurm"
"github.com/zeromicro/go-zero/core/logx"
)
type GetDbDiagnosticsLogic struct {
ctx context.Context
svcCtx *svc.ServiceContext
logx.Logger
}
func NewGetDbDiagnosticsLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetDbDiagnosticsLogic {
return &GetDbDiagnosticsLogic{
ctx: ctx,
svcCtx: svcCtx,
Logger: logx.WithContext(ctx),
}
}
func (l *GetDbDiagnosticsLogic) GetDbDiagnostics(in *slurm.ListDbDiagnosticsReq) (*slurm.ListDbDiagnosticsResp, error) {
// todo: add your logic here and delete this line
return &slurm.ListDbDiagnosticsResp{}, nil
}

View File

@ -0,0 +1,30 @@
package logic
import (
"context"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/internal/svc"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/slurm"
"github.com/zeromicro/go-zero/core/logx"
)
type GetDiagnosticsLogic struct {
ctx context.Context
svcCtx *svc.ServiceContext
logx.Logger
}
func NewGetDiagnosticsLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetDiagnosticsLogic {
return &GetDiagnosticsLogic{
ctx: ctx,
svcCtx: svcCtx,
Logger: logx.WithContext(ctx),
}
}
func (l *GetDiagnosticsLogic) GetDiagnostics(in *slurm.ListDiagnosticsReq) (*slurm.ListDiagnosticsResp, error) {
// todo: add your logic here and delete this line
return &slurm.ListDiagnosticsResp{}, nil
}

View File

@ -23,8 +23,8 @@ func NewGetJobLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetJobLogi
}
}
func (l *GetJobLogic) GetJob(in *slurm.ListJobReq) (*slurm.ListJobResp, error) {
func (l *GetJobLogic) GetJob(in *slurm.GetJobReq) (*slurm.GetJobResp, error) {
// todo: add your logic here and delete this line
return &slurm.ListJobResp{}, nil
return &slurm.GetJobResp{}, nil
}

View File

@ -0,0 +1,30 @@
package logic
import (
"context"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/internal/svc"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/slurm"
"github.com/zeromicro/go-zero/core/logx"
)
type GetNodeLogic struct {
ctx context.Context
svcCtx *svc.ServiceContext
logx.Logger
}
func NewGetNodeLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetNodeLogic {
return &GetNodeLogic{
ctx: ctx,
svcCtx: svcCtx,
Logger: logx.WithContext(ctx),
}
}
func (l *GetNodeLogic) GetNode(in *slurm.GetNodeReq) (*slurm.GetNodeResp, error) {
// todo: add your logic here and delete this line
return &slurm.GetNodeResp{}, nil
}

View File

@ -0,0 +1,30 @@
package logic
import (
"context"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/internal/svc"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/slurm"
"github.com/zeromicro/go-zero/core/logx"
)
type GetPartitionLogic struct {
ctx context.Context
svcCtx *svc.ServiceContext
logx.Logger
}
func NewGetPartitionLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetPartitionLogic {
return &GetPartitionLogic{
ctx: ctx,
svcCtx: svcCtx,
Logger: logx.WithContext(ctx),
}
}
func (l *GetPartitionLogic) GetPartition(in *slurm.GetPartitionReq) (*slurm.GetPartitionResp, error) {
// todo: add your logic here and delete this line
return &slurm.GetPartitionResp{}, nil
}

View File

@ -0,0 +1,30 @@
package logic
import (
"context"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/internal/svc"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/slurm"
"github.com/zeromicro/go-zero/core/logx"
)
type GetQosLogic struct {
ctx context.Context
svcCtx *svc.ServiceContext
logx.Logger
}
func NewGetQosLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetQosLogic {
return &GetQosLogic{
ctx: ctx,
svcCtx: svcCtx,
Logger: logx.WithContext(ctx),
}
}
func (l *GetQosLogic) GetQos(in *slurm.GetQosReq) (*slurm.GetQosResp, error) {
// todo: add your logic here and delete this line
return &slurm.GetQosResp{}, nil
}

View File

@ -0,0 +1,30 @@
package logic
import (
"context"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/internal/svc"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/slurm"
"github.com/zeromicro/go-zero/core/logx"
)
type GetReservationLogic struct {
ctx context.Context
svcCtx *svc.ServiceContext
logx.Logger
}
func NewGetReservationLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetReservationLogic {
return &GetReservationLogic{
ctx: ctx,
svcCtx: svcCtx,
Logger: logx.WithContext(ctx),
}
}
func (l *GetReservationLogic) GetReservation(in *slurm.GetReservationReq) (*slurm.GetReservationResp, error) {
// todo: add your logic here and delete this line
return &slurm.GetReservationResp{}, nil
}

View File

@ -0,0 +1,30 @@
package logic
import (
"context"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/internal/svc"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/slurm"
"github.com/zeromicro/go-zero/core/logx"
)
type GetUserLogic struct {
ctx context.Context
svcCtx *svc.ServiceContext
logx.Logger
}
func NewGetUserLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetUserLogic {
return &GetUserLogic{
ctx: ctx,
svcCtx: svcCtx,
Logger: logx.WithContext(ctx),
}
}
func (l *GetUserLogic) GetUser(in *slurm.GetUserReq) (*slurm.GetUserResp, error) {
// todo: add your logic here and delete this line
return &slurm.GetUserResp{}, nil
}

View File

@ -0,0 +1,30 @@
package logic
import (
"context"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/internal/svc"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/slurm"
"github.com/zeromicro/go-zero/core/logx"
)
type GetWckeyLogic struct {
ctx context.Context
svcCtx *svc.ServiceContext
logx.Logger
}
func NewGetWckeyLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetWckeyLogic {
return &GetWckeyLogic{
ctx: ctx,
svcCtx: svcCtx,
Logger: logx.WithContext(ctx),
}
}
func (l *GetWckeyLogic) GetWckey(in *slurm.GetWckeyReq) (*slurm.GetWckeyResp, error) {
// todo: add your logic here and delete this line
return &slurm.GetWckeyResp{}, nil
}

View File

@ -0,0 +1,30 @@
package logic
import (
"context"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/internal/svc"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/slurm"
"github.com/zeromicro/go-zero/core/logx"
)
type ListAccountLogic struct {
ctx context.Context
svcCtx *svc.ServiceContext
logx.Logger
}
func NewListAccountLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ListAccountLogic {
return &ListAccountLogic{
ctx: ctx,
svcCtx: svcCtx,
Logger: logx.WithContext(ctx),
}
}
func (l *ListAccountLogic) ListAccount(in *slurm.ListAccountReq) (*slurm.ListAccountResp, error) {
// todo: add your logic here and delete this line
return &slurm.ListAccountResp{}, nil
}

View File

@ -0,0 +1,30 @@
package logic
import (
"context"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/internal/svc"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/slurm"
"github.com/zeromicro/go-zero/core/logx"
)
type ListAssociationLogic struct {
ctx context.Context
svcCtx *svc.ServiceContext
logx.Logger
}
func NewListAssociationLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ListAssociationLogic {
return &ListAssociationLogic{
ctx: ctx,
svcCtx: svcCtx,
Logger: logx.WithContext(ctx),
}
}
func (l *ListAssociationLogic) ListAssociation(in *slurm.ListAssociationReq) (*slurm.ListAssociationResp, error) {
// todo: add your logic here and delete this line
return &slurm.ListAssociationResp{}, nil
}

View File

@ -0,0 +1,35 @@
package logic
import (
"context"
"gitlink.org.cn/jcce-pcm/utils/tool"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/internal/svc"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/slurm"
"github.com/zeromicro/go-zero/core/logx"
)
type ListClusterLogic struct {
ctx context.Context
svcCtx *svc.ServiceContext
logx.Logger
}
func NewListClusterLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ListClusterLogic {
return &ListClusterLogic{
ctx: ctx,
svcCtx: svcCtx,
Logger: logx.WithContext(ctx),
}
}
func (l *ListClusterLogic) ListCluster(in *slurm.ListClusterReq) (*slurm.ListClusterResp, error) {
var listClusterResp slurm.ListClusterResp
slurmHttpRequest := tool.GetACHttpRequest()
slurmHttpRequest.SetHeader(tool.ContentType, tool.ApplicationJson).
SetHeader("X-SLURM-USER-NAME", l.svcCtx.Config.SlurmRestUser).
SetHeader("X-SLURM-USER-TOKEN", l.svcCtx.Config.SlurmToken).
SetResult(&listClusterResp).Get(l.svcCtx.Config.RestUrl + l.svcCtx.Config.Path.Clusters)
return &listClusterResp, nil
}

View File

@ -2,10 +2,12 @@ package logic
import (
"context"
"github.com/zeromicro/go-zero/core/logx"
"gitlink.org.cn/jcce-pcm/utils/tool"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/internal/svc"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/slurm"
"gitlink.org.cn/jcce-pcm/utils/tool"
"github.com/zeromicro/go-zero/core/logx"
)
type ListJobLogic struct {
@ -22,14 +24,13 @@ func NewListJobLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ListJobLo
}
}
// ListJob list all jobs
func (l *ListJobLogic) ListJob(in *slurm.ListJobReq) (*slurm.ListJobResp, error) {
var listJobResp slurm.ListJobResp
url := "http://127.0.0.1:4523/m1/1136481-0-default/slurm/v0.0.37/jobs"
url := "http://192.168.249.122:6820/slurm/v0.0.38/nodes"
slurmHttpRequest := tool.GetACHttpRequest()
slurmHttpRequest.SetHeader(tool.ContentType, tool.ApplicationJson).SetPathParams(map[string]string{
"update_time": "1",
}).SetResult(&listJobResp).Get(url)
slurmHttpRequest.SetHeader(tool.ContentType, tool.ApplicationJson).
SetHeader("X-SLURM-USER-NAME", "slurmrestd").
SetHeader("X-SLURM-USER-TOKEN", "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2OTg3MjA2NzUsImlhdCI6MTY5ODcxODg3NSwic3VuIjoic2x1cm1yZXN0ZCJ9.SjQyf-Ht-kNPNYZSQ1HadWyy3lr-mNO3sfoZPiBoqBY").
SetResult(&listJobResp).Get(url)
return &listJobResp, nil
}

View File

@ -26,8 +26,10 @@ func NewListNodeLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ListNode
func (l *ListNodeLogic) ListNode(in *slurm.ListNodeReq) (*slurm.ListNodeResp, error) {
var listNodeResp slurm.ListNodeResp
url := "http://127.0.0.1:4523/m1/1136481-0-default/slurm/v0.0.37/nodes"
slurmHttpRequest := tool.GetACHttpRequest()
slurmHttpRequest.SetHeader(tool.ContentType, tool.ApplicationJson).SetResult(&listNodeResp).Get(url)
slurmHttpRequest.SetHeader(tool.ContentType, tool.ApplicationJson).
SetHeader("X-SLURM-USER-NAME", l.svcCtx.Config.SlurmRestUser).
SetHeader("X-SLURM-USER-TOKEN", l.svcCtx.Config.SlurmToken).
SetResult(&listNodeResp).Get(l.svcCtx.Config.RestUrl + l.svcCtx.Config.Path.Nodes)
return &listNodeResp, nil
}

View File

@ -0,0 +1,30 @@
package logic
import (
"context"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/internal/svc"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/slurm"
"github.com/zeromicro/go-zero/core/logx"
)
type ListPartitionLogic struct {
ctx context.Context
svcCtx *svc.ServiceContext
logx.Logger
}
func NewListPartitionLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ListPartitionLogic {
return &ListPartitionLogic{
ctx: ctx,
svcCtx: svcCtx,
Logger: logx.WithContext(ctx),
}
}
func (l *ListPartitionLogic) ListPartition(in *slurm.ListPartitionReq) (*slurm.ListPartitionResp, error) {
// todo: add your logic here and delete this line
return &slurm.ListPartitionResp{}, nil
}

View File

@ -0,0 +1,30 @@
package logic
import (
"context"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/internal/svc"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/slurm"
"github.com/zeromicro/go-zero/core/logx"
)
type ListQosLogic struct {
ctx context.Context
svcCtx *svc.ServiceContext
logx.Logger
}
func NewListQosLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ListQosLogic {
return &ListQosLogic{
ctx: ctx,
svcCtx: svcCtx,
Logger: logx.WithContext(ctx),
}
}
func (l *ListQosLogic) ListQos(in *slurm.ListQosReq) (*slurm.ListQosResp, error) {
// todo: add your logic here and delete this line
return &slurm.ListQosResp{}, nil
}

View File

@ -0,0 +1,30 @@
package logic
import (
"context"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/internal/svc"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/slurm"
"github.com/zeromicro/go-zero/core/logx"
)
type ListReservationLogic struct {
ctx context.Context
svcCtx *svc.ServiceContext
logx.Logger
}
func NewListReservationLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ListReservationLogic {
return &ListReservationLogic{
ctx: ctx,
svcCtx: svcCtx,
Logger: logx.WithContext(ctx),
}
}
func (l *ListReservationLogic) ListReservation(in *slurm.ListReservationReq) (*slurm.ListReservationResp, error) {
// todo: add your logic here and delete this line
return &slurm.ListReservationResp{}, nil
}

View File

@ -0,0 +1,30 @@
package logic
import (
"context"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/internal/svc"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/slurm"
"github.com/zeromicro/go-zero/core/logx"
)
type ListTresLogic struct {
ctx context.Context
svcCtx *svc.ServiceContext
logx.Logger
}
func NewListTresLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ListTresLogic {
return &ListTresLogic{
ctx: ctx,
svcCtx: svcCtx,
Logger: logx.WithContext(ctx),
}
}
func (l *ListTresLogic) ListTres(in *slurm.ListTresReq) (*slurm.ListTresResp, error) {
// todo: add your logic here and delete this line
return &slurm.ListTresResp{}, nil
}

View File

@ -0,0 +1,30 @@
package logic
import (
"context"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/internal/svc"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/slurm"
"github.com/zeromicro/go-zero/core/logx"
)
type ListUserLogic struct {
ctx context.Context
svcCtx *svc.ServiceContext
logx.Logger
}
func NewListUserLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ListUserLogic {
return &ListUserLogic{
ctx: ctx,
svcCtx: svcCtx,
Logger: logx.WithContext(ctx),
}
}
func (l *ListUserLogic) ListUser(in *slurm.ListUserReq) (*slurm.ListUserResp, error) {
// todo: add your logic here and delete this line
return &slurm.ListUserResp{}, nil
}

View File

@ -0,0 +1,30 @@
package logic
import (
"context"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/internal/svc"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/slurm"
"github.com/zeromicro/go-zero/core/logx"
)
type ListWckeyLogic struct {
ctx context.Context
svcCtx *svc.ServiceContext
logx.Logger
}
func NewListWckeyLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ListWckeyLogic {
return &ListWckeyLogic{
ctx: ctx,
svcCtx: svcCtx,
Logger: logx.WithContext(ctx),
}
}
func (l *ListWckeyLogic) ListWckey(in *slurm.ListWckeyReq) (*slurm.ListWckeyResp, error) {
// todo: add your logic here and delete this line
return &slurm.ListWckeyResp{}, nil
}

View File

@ -0,0 +1,30 @@
package logic
import (
"context"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/internal/svc"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/slurm"
"github.com/zeromicro/go-zero/core/logx"
)
type LoadConfigurationLogic struct {
ctx context.Context
svcCtx *svc.ServiceContext
logx.Logger
}
func NewLoadConfigurationLogic(ctx context.Context, svcCtx *svc.ServiceContext) *LoadConfigurationLogic {
return &LoadConfigurationLogic{
ctx: ctx,
svcCtx: svcCtx,
Logger: logx.WithContext(ctx),
}
}
func (l *LoadConfigurationLogic) LoadConfiguration(in *slurm.LoadConfigurationReq) (*slurm.LoadConfigurationResp, error) {
// todo: add your logic here and delete this line
return &slurm.LoadConfigurationResp{}, nil
}

View File

@ -0,0 +1,30 @@
package logic
import (
"context"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/internal/svc"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/slurm"
"github.com/zeromicro/go-zero/core/logx"
)
type PingLogic struct {
ctx context.Context
svcCtx *svc.ServiceContext
logx.Logger
}
func NewPingLogic(ctx context.Context, svcCtx *svc.ServiceContext) *PingLogic {
return &PingLogic{
ctx: ctx,
svcCtx: svcCtx,
Logger: logx.WithContext(ctx),
}
}
func (l *PingLogic) Ping(in *slurm.PingReq) (*slurm.PingResp, error) {
// todo: add your logic here and delete this line
return &slurm.PingResp{}, nil
}

View File

@ -0,0 +1,30 @@
package logic
import (
"context"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/internal/svc"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/slurm"
"github.com/zeromicro/go-zero/core/logx"
)
type SetAssociationLogic struct {
ctx context.Context
svcCtx *svc.ServiceContext
logx.Logger
}
func NewSetAssociationLogic(ctx context.Context, svcCtx *svc.ServiceContext) *SetAssociationLogic {
return &SetAssociationLogic{
ctx: ctx,
svcCtx: svcCtx,
Logger: logx.WithContext(ctx),
}
}
func (l *SetAssociationLogic) SetAssociation(in *slurm.SetAssociationReq) (*slurm.SetAssociationResp, error) {
// todo: add your logic here and delete this line
return &slurm.SetAssociationResp{}, nil
}

View File

@ -0,0 +1,30 @@
package logic
import (
"context"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/internal/svc"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/slurm"
"github.com/zeromicro/go-zero/core/logx"
)
type SetTresLogic struct {
ctx context.Context
svcCtx *svc.ServiceContext
logx.Logger
}
func NewSetTresLogic(ctx context.Context, svcCtx *svc.ServiceContext) *SetTresLogic {
return &SetTresLogic{
ctx: ctx,
svcCtx: svcCtx,
Logger: logx.WithContext(ctx),
}
}
func (l *SetTresLogic) SetTres(in *slurm.SetTresReq) (*slurm.SetTresResp, error) {
// todo: add your logic here and delete this line
return &slurm.SetTresResp{}, nil
}

View File

@ -2,11 +2,11 @@ package logic
import (
"context"
"encoding/json"
"github.com/zeromicro/go-zero/core/logx"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/internal/svc"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/slurm"
"gitlink.org.cn/jcce-pcm/utils/tool"
"github.com/zeromicro/go-zero/core/logx"
)
type SubmitJobLogic struct {
@ -24,12 +24,7 @@ func NewSubmitJobLogic(ctx context.Context, svcCtx *svc.ServiceContext) *SubmitJ
}
func (l *SubmitJobLogic) SubmitJob(in *slurm.SubmitJobReq) (*slurm.SubmitJobResp, error) {
// todo: add your logic here and delete this line
var submitJobResp slurm.SubmitJobResp
url := "http://127.0.0.1:4523/m1/1136481-0-default/slurm/v0.0.37/job/submit"
acHttpRequest := tool.GetACHttpRequest()
reqJson, _ := json.Marshal(in)
resp, _ := acHttpRequest.SetHeader(tool.ContentType, tool.ApplicationJson).SetBody(reqJson).SetResult(&submitJobResp).Post(url)
println(resp.Body())
return &submitJobResp, nil
return &slurm.SubmitJobResp{}, nil
}

View File

@ -0,0 +1,30 @@
package logic
import (
"context"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/internal/svc"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/slurm"
"github.com/zeromicro/go-zero/core/logx"
)
type UpdateAccountLogic struct {
ctx context.Context
svcCtx *svc.ServiceContext
logx.Logger
}
func NewUpdateAccountLogic(ctx context.Context, svcCtx *svc.ServiceContext) *UpdateAccountLogic {
return &UpdateAccountLogic{
ctx: ctx,
svcCtx: svcCtx,
Logger: logx.WithContext(ctx),
}
}
func (l *UpdateAccountLogic) UpdateAccount(in *slurm.UpdateAccountReq) (*slurm.UpdateAccountResp, error) {
// todo: add your logic here and delete this line
return &slurm.UpdateAccountResp{}, nil
}

View File

@ -0,0 +1,30 @@
package logic
import (
"context"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/internal/svc"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/slurm"
"github.com/zeromicro/go-zero/core/logx"
)
type UpdateJobLogic struct {
ctx context.Context
svcCtx *svc.ServiceContext
logx.Logger
}
func NewUpdateJobLogic(ctx context.Context, svcCtx *svc.ServiceContext) *UpdateJobLogic {
return &UpdateJobLogic{
ctx: ctx,
svcCtx: svcCtx,
Logger: logx.WithContext(ctx),
}
}
func (l *UpdateJobLogic) UpdateJob(in *slurm.UpdateJobReq) (*slurm.UpdateJobResp, error) {
// todo: add your logic here and delete this line
return &slurm.UpdateJobResp{}, nil
}

View File

@ -0,0 +1,30 @@
package logic
import (
"context"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/internal/svc"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/slurm"
"github.com/zeromicro/go-zero/core/logx"
)
type UpdateUserLogic struct {
ctx context.Context
svcCtx *svc.ServiceContext
logx.Logger
}
func NewUpdateUserLogic(ctx context.Context, svcCtx *svc.ServiceContext) *UpdateUserLogic {
return &UpdateUserLogic{
ctx: ctx,
svcCtx: svcCtx,
Logger: logx.WithContext(ctx),
}
}
func (l *UpdateUserLogic) UpdateUser(in *slurm.UpdateUserReq) (*slurm.UpdateUserResp, error) {
// todo: add your logic here and delete this line
return &slurm.UpdateUserResp{}, nil
}

View File

@ -8,7 +8,7 @@ import (
)
func ReportHeartbeat(participantRpc participantservice.ParticipantService) {
participantId, err := tool.GetParticipantId("etc/kubernetes.yaml")
participantId, err := tool.GetParticipantId("etc/slurm.yaml")
if err != nil {
logx.Errorf("获取participant id失败 err:", err)
return

View File

@ -1,23 +1,27 @@
package cron
import (
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/internal/pkg/tracker"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/internal/svc"
)
func AddCronGroup(svc *svc.ServiceContext) {
// 同步任务信息到core端
svc.Cron.AddFunc("*/5 * * * * ?", func() {
SyncTask(svc)
})
//// 同步任务信息到core端
//svc.Cron.AddFunc("*/5 * * * * ?", func() {
// SyncTask(svc)
//})
//
//// 推送p端心跳
//svc.Cron.AddFunc("*/5 * * * * ?", func() {
// ReportHeartbeat(svc.ParticipantRpc)
//})
//
//// 推送节点动态信息
//svc.Cron.AddFunc("0 0/2 * * * ?", func() {
// tracker.NodesDynamicInfo(svc)
//})
// 同步token
//svc.Cron.AddFunc("* */5 * * * ?", func() {
// SyncToken(svc)
//})
// 推送p端心跳
svc.Cron.AddFunc("*/5 * * * * ?", func() {
ReportHeartbeat(svc.ParticipantRpc)
})
// 推送节点动态信息
svc.Cron.AddFunc("0 0/2 * * * ?", func() {
tracker.NodesDynamicInfo(svc)
})
}

View File

@ -7,7 +7,6 @@ import (
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/internal/logic"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/internal/svc"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/slurm"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/slurmclient"
"gitlink.org.cn/jcce-pcm/utils/tool"
)
@ -28,44 +27,139 @@ func SyncTask(svc *svc.ServiceContext) {
}
// 提交任务
submitJobLogic := logic.NewSubmitJobLogic(context.Background(), svc)
for index, _ := range infoList.CloudInfoList {
subReq := slurmclient.SubmitJobReq{}
infoList.CloudInfoList[index].Status = "Pending"
_, err := submitJobLogic.SubmitJob(&subReq)
if err != nil {
return
}
}
// 查询任务列表
listLogic := logic.NewListJobLogic(context.Background(), svc)
listReq := slurmclient.ListJobReq{}
resp, err := listLogic.ListJob(&listReq)
// 遍历core端任务列表信息
for index, _ := range resp.Jobs {
if infoList.HpcInfoList[index].Status == "Saved" {
submitReq := slurm.SubmitJobReq{
Script: infoList.HpcInfoList[index].CmdScript,
Job: nil,
Jobs: nil,
}
jobResult, _ := submitJobLogic.SubmitJob(&submitReq)
if jobResult.Errors[0].Errno == 0 {
infoList.HpcInfoList[index].Status = "Pending"
infoList.HpcInfoList[index].JobId = string(jobResult.JobId)
} else {
infoList.HpcInfoList[index].Status = "Failed"
infoList.HpcInfoList[index].Result = jobResult.JobSubmitUserMsg
if len(infoList.HpcInfoList) != 0 {
for index, _ := range infoList.HpcInfoList {
if infoList.HpcInfoList[index].Status == "SAVED" {
subReq := slurm.SubmitJobReq{
Script: infoList.HpcInfoList[index].CmdScript,
Job: &slurm.JobProperties{
Account: "",
AccountGatherFrequency: "",
Argv: nil,
Array: "",
BatchFeatures: "",
BeginTime: 0,
BurstBuffer: "",
ClusterConstraint: "",
Comment: "",
Constraints: "",
CoreSpecification: 0,
CoresPerSocket: 0,
CpuBinding: "",
CpuBindingHint: "",
CpuFrequency: "",
CpusPerGpu: "",
CpusPerTask: 0,
CurrentWorkingDirectory: "",
Deadline: "",
DelayBoot: 0,
Dependency: "",
Distribution: "",
Environment: nil,
Exclusive: "",
GetUserEnvironment: false,
Gres: "",
GresFlags: "",
GpuBinding: "",
GpuFrequency: "",
Gpus: "",
GpusPerNode: "",
GpusPerSocket: "",
GpusPerTask: "",
Hold: false,
KillOnInvalidDependency: false,
Licenses: "",
MailType: "",
MailUser: "",
McsLabel: "",
MemoryBinding: "",
MemoryPerCpu: 0,
MemoryPerGpu: 0,
MemoryPerNode: 0,
MinimumCpusPerNode: 0,
MinimumNodes: false,
Name: "",
Nice: "",
NoKill: false,
Nodes: nil,
OpenMode: "",
Partition: "",
Priority: "",
Qos: "",
Requeue: false,
Reservation: "",
Signal: "",
SocketsPerNode: 0,
SpreadJob: false,
StandardError: "",
StandardInput: "",
StandardOutput: "",
Tasks: 0,
TasksPerCore: 0,
TasksPerNode: 0,
TasksPerSocket: 0,
ThreadSpecification: 0,
ThreadsPerCore: 0,
TimeLimit: 0,
TimeMinimum: 0,
WaitAllNodes: false,
Wckey: "",
},
Jobs: nil,
}
jobResult, err := submitJobLogic.SubmitJob(&subReq)
if jobResult.JobSubmitUserMsg == "0" {
infoList.HpcInfoList[index].Status = "PENDING"
infoList.HpcInfoList[index].JobId = jobResult.JobSubmitUserMsg
} else {
infoList.HpcInfoList[index].Status = "FAILED"
infoList.HpcInfoList[index].Result = jobResult.JobSubmitUserMsg
}
// 同步信息到core端
SyncInfoReq := pcmCore.SyncInfoReq{
Kind: "hpc",
ParticipantId: participantId,
HpcInfoList: infoList.HpcInfoList,
}
svc.PcmCoreRpc.SyncInfo(context.Background(), &SyncInfoReq)
if err != nil {
return
}
} else if infoList.HpcInfoList[index].Status == "PENDING" || infoList.HpcInfoList[index].Status == "RUNNING" {
// 查询P端实际的任务列表
listReq := slurm.ListJobReq{}
resp, _ := listLogic.ListJob(&listReq)
for _, job := range resp.Jobs {
if job.JobId == infoList.HpcInfoList[index].JobId {
if job.JobState == "RUNNING" || resp.Jobs[0].JobState == "CONFIGURING" {
infoList.HpcInfoList[index].Status = "RUNNING"
} else if job.JobState == "COMPLETED" || resp.Jobs[0].JobState == "statC" || resp.Jobs[0].JobState == "statH" {
infoList.HpcInfoList[index].Status = "COMPLETED"
} else if job.JobState == "FAILED" || resp.Jobs[0].JobState == "TIMEOUT" || resp.Jobs[0].JobState == "DEADLINE" {
infoList.HpcInfoList[index].Status = "FAILED"
} else if job.JobState == "COMPLETING" {
infoList.HpcInfoList[index].Status = "OTHER"
}
}
}
}
}
}
if len(infoList.CloudInfoList) != 0 {
// 同步信息到core端
SyncInfoReq := pcmCore.SyncInfoReq{
Kind: "hpc",
ParticipantId: participantId,
CloudInfoList: infoList.CloudInfoList,
HpcInfoList: infoList.HpcInfoList,
}
svc.PcmCoreRpc.SyncInfo(context.Background(), &SyncInfoReq)
} else {
return
}
}

View File

@ -0,0 +1,27 @@
package cron
import (
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/internal/pkg/utils"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/internal/svc"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/slurm"
"gitlink.org.cn/jcce-pcm/utils/tool"
)
func SyncToken(svc *svc.ServiceContext) {
pingResp := slurm.PingResp{}
slurmHttpRequest := tool.GetACHttpRequest()
slurmHttpRequest.SetHeader(tool.ContentType, tool.ApplicationJson).
SetHeader("X-SLURM-USER-NAME", svc.Config.SlurmRestUser).
SetHeader("X-SLURM-USER-TOKEN", svc.Config.SlurmToken).
SetResult(&pingResp).Get(svc.Config.RestUrl + svc.Config.Path.Ping)
if len(pingResp.Pings) > 0 {
return
} else {
//重新获取token并重新写到配置文件
token, _ := utils.GetSlurmToken(svc)
utils.UpdateToken("etc/slurm.yaml", token)
println("token updated")
}
}

View File

@ -0,0 +1,50 @@
package utils
import (
gossh "golang.org/x/crypto/ssh"
"net"
)
// Cli 连接信息
type Cli struct {
User string
Pwd string
Addr string
Client *gossh.Client
Session *gossh.Session
LastResult string
}
// Connect 连接对象
func (c *Cli) Connect() (*Cli, error) {
config := &gossh.ClientConfig{}
config.SetDefaults()
config.User = c.User
config.Auth = []gossh.AuthMethod{gossh.Password(c.Pwd)}
config.HostKeyCallback = func(hostname string, remote net.Addr, key gossh.PublicKey) error { return nil }
client, err := gossh.Dial("tcp", c.Addr, config)
if nil != err {
return c, err
}
c.Client = client
return c, nil
}
// Run 执行shell
func (c Cli) Run(shell string) (string, error) {
if c.Client == nil {
if _, err := c.Connect(); err != nil {
return "", err
}
}
session, err := c.Client.NewSession()
if err != nil {
return "", err
}
// 关闭会话
defer session.Close()
buf, err := session.CombinedOutput(shell)
c.LastResult = string(buf)
return c.LastResult, err
}

View File

@ -0,0 +1,95 @@
package utils
import (
"bufio"
"fmt"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/internal/svc"
"io"
"os"
"strings"
)
type TokenConfig struct {
SlurmToken string
}
// UpdateSlurmToken 更新本地配置文件SlurmToken
func UpdateSlurmToken(filePath string, value string) error {
file, err := os.OpenFile(filePath, os.O_RDWR, 0)
if err != nil {
return err
}
reader := bufio.NewReader(file)
pos := int64(0)
for {
//读取每一行内容
line, err := reader.ReadString('\n')
if err != nil && err != io.EOF {
fmt.Println("Read file error!", err)
return err
}
//根据关键词覆盖当前行
if strings.Contains(line, "SlurmToken") {
bytes := []byte("SlurmToken: " + value)
file.WriteAt(bytes, pos)
}
//每一行读取完后记录位置
pos += int64(len(line))
//读到末尾
if err != nil && err == io.EOF {
fmt.Println("File read ok!")
break
}
}
return nil
}
// GetSlurmToken 获取本地配置文件中的SlurmToken
func GetSlurmToken(svc *svc.ServiceContext) (string, error) {
cli := Cli{
Addr: svc.Config.SSH.Url,
User: svc.Config.SSH.Username,
Pwd: svc.Config.SSH.Password,
}
// 建立连接对象
cl, _ := cli.Connect()
// 退出时关闭连接
defer cl.Client.Close()
res, _ := cl.Run(`scontrol token username=slurmrestd`)
arr := strings.Split(res, "=")
token := strings.Replace(arr[1], "\n", "", -1)
return token, nil
}
// UpdateToken 更新本地配置文件Token
func UpdateToken(filePath string, value string) error {
file, err := os.OpenFile(filePath, os.O_RDWR, 0)
if err != nil {
return err
}
reader := bufio.NewReader(file)
pos := int64(0)
for {
//读取每一行内容
line, err := reader.ReadString('\n')
if err != nil && err != io.EOF {
fmt.Println("Read file error!", err)
return err
}
//根据关键词覆盖当前行
if strings.Contains(line, "SlurmToken") {
bytes := []byte("SlurmToken: " + value)
file.WriteAt(bytes, pos)
}
//每一行读取完后记录位置
pos += int64(len(line))
//读到末尾
if err != nil && err == io.EOF {
//fmt.Println("File read ok!")
break
}
}
return nil
}

View File

@ -0,0 +1,228 @@
// Code generated by goctl. DO NOT EDIT.
// Source: slurm.proto
package server
import (
"context"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/internal/logic"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/internal/svc"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/slurm"
)
type SlurmServer struct {
svcCtx *svc.ServiceContext
slurm.UnimplementedSlurmServer
}
func NewSlurmServer(svcCtx *svc.ServiceContext) *SlurmServer {
return &SlurmServer{
svcCtx: svcCtx,
}
}
func (s *SlurmServer) Ping(ctx context.Context, in *slurm.PingReq) (*slurm.PingResp, error) {
l := logic.NewPingLogic(ctx, s.svcCtx)
return l.Ping(in)
}
func (s *SlurmServer) ListJob(ctx context.Context, in *slurm.ListJobReq) (*slurm.ListJobResp, error) {
l := logic.NewListJobLogic(ctx, s.svcCtx)
return l.ListJob(in)
}
func (s *SlurmServer) GetJob(ctx context.Context, in *slurm.GetJobReq) (*slurm.GetJobResp, error) {
l := logic.NewGetJobLogic(ctx, s.svcCtx)
return l.GetJob(in)
}
func (s *SlurmServer) UpdateJob(ctx context.Context, in *slurm.UpdateJobReq) (*slurm.UpdateJobResp, error) {
l := logic.NewUpdateJobLogic(ctx, s.svcCtx)
return l.UpdateJob(in)
}
func (s *SlurmServer) CancelJob(ctx context.Context, in *slurm.CancelJobReq) (*slurm.CancelJobResp, error) {
l := logic.NewCancelJobLogic(ctx, s.svcCtx)
return l.CancelJob(in)
}
func (s *SlurmServer) SubmitJob(ctx context.Context, in *slurm.SubmitJobReq) (*slurm.SubmitJobResp, error) {
l := logic.NewSubmitJobLogic(ctx, s.svcCtx)
return l.SubmitJob(in)
}
func (s *SlurmServer) ListUser(ctx context.Context, in *slurm.ListUserReq) (*slurm.ListUserResp, error) {
l := logic.NewListUserLogic(ctx, s.svcCtx)
return l.ListUser(in)
}
func (s *SlurmServer) GetUser(ctx context.Context, in *slurm.GetUserReq) (*slurm.GetUserResp, error) {
l := logic.NewGetUserLogic(ctx, s.svcCtx)
return l.GetUser(in)
}
func (s *SlurmServer) UpdateUser(ctx context.Context, in *slurm.UpdateUserReq) (*slurm.UpdateUserResp, error) {
l := logic.NewUpdateUserLogic(ctx, s.svcCtx)
return l.UpdateUser(in)
}
func (s *SlurmServer) DeleteUser(ctx context.Context, in *slurm.DeleteUserReq) (*slurm.DeleteUserResp, error) {
l := logic.NewDeleteUserLogic(ctx, s.svcCtx)
return l.DeleteUser(in)
}
func (s *SlurmServer) ListPartition(ctx context.Context, in *slurm.ListPartitionReq) (*slurm.ListPartitionResp, error) {
l := logic.NewListPartitionLogic(ctx, s.svcCtx)
return l.ListPartition(in)
}
func (s *SlurmServer) GetPartition(ctx context.Context, in *slurm.GetPartitionReq) (*slurm.GetPartitionResp, error) {
l := logic.NewGetPartitionLogic(ctx, s.svcCtx)
return l.GetPartition(in)
}
func (s *SlurmServer) ListNode(ctx context.Context, in *slurm.ListNodeReq) (*slurm.ListNodeResp, error) {
l := logic.NewListNodeLogic(ctx, s.svcCtx)
return l.ListNode(in)
}
func (s *SlurmServer) GetNode(ctx context.Context, in *slurm.GetNodeReq) (*slurm.GetNodeResp, error) {
l := logic.NewGetNodeLogic(ctx, s.svcCtx)
return l.GetNode(in)
}
func (s *SlurmServer) ListReservation(ctx context.Context, in *slurm.ListReservationReq) (*slurm.ListReservationResp, error) {
l := logic.NewListReservationLogic(ctx, s.svcCtx)
return l.ListReservation(in)
}
func (s *SlurmServer) GetReservation(ctx context.Context, in *slurm.GetReservationReq) (*slurm.GetReservationResp, error) {
l := logic.NewGetReservationLogic(ctx, s.svcCtx)
return l.GetReservation(in)
}
func (s *SlurmServer) LoadConfiguration(ctx context.Context, in *slurm.LoadConfigurationReq) (*slurm.LoadConfigurationResp, error) {
l := logic.NewLoadConfigurationLogic(ctx, s.svcCtx)
return l.LoadConfiguration(in)
}
func (s *SlurmServer) DumpConfiguration(ctx context.Context, in *slurm.DumpConfigurationReq) (*slurm.DumpConfigurationResp, error) {
l := logic.NewDumpConfigurationLogic(ctx, s.svcCtx)
return l.DumpConfiguration(in)
}
func (s *SlurmServer) ListQos(ctx context.Context, in *slurm.ListQosReq) (*slurm.ListQosResp, error) {
l := logic.NewListQosLogic(ctx, s.svcCtx)
return l.ListQos(in)
}
func (s *SlurmServer) GetQos(ctx context.Context, in *slurm.GetQosReq) (*slurm.GetQosResp, error) {
l := logic.NewGetQosLogic(ctx, s.svcCtx)
return l.GetQos(in)
}
func (s *SlurmServer) DeleteQos(ctx context.Context, in *slurm.DeleteQosReq) (*slurm.DeleteQosResp, error) {
l := logic.NewDeleteQosLogic(ctx, s.svcCtx)
return l.DeleteQos(in)
}
func (s *SlurmServer) ListTres(ctx context.Context, in *slurm.ListTresReq) (*slurm.ListTresResp, error) {
l := logic.NewListTresLogic(ctx, s.svcCtx)
return l.ListTres(in)
}
func (s *SlurmServer) SetTres(ctx context.Context, in *slurm.SetTresReq) (*slurm.SetTresResp, error) {
l := logic.NewSetTresLogic(ctx, s.svcCtx)
return l.SetTres(in)
}
func (s *SlurmServer) ListAccount(ctx context.Context, in *slurm.ListAccountReq) (*slurm.ListAccountResp, error) {
l := logic.NewListAccountLogic(ctx, s.svcCtx)
return l.ListAccount(in)
}
func (s *SlurmServer) GetAccount(ctx context.Context, in *slurm.GetAccountReq) (*slurm.GetAccountResp, error) {
l := logic.NewGetAccountLogic(ctx, s.svcCtx)
return l.GetAccount(in)
}
func (s *SlurmServer) UpdateAccount(ctx context.Context, in *slurm.UpdateAccountReq) (*slurm.UpdateAccountResp, error) {
l := logic.NewUpdateAccountLogic(ctx, s.svcCtx)
return l.UpdateAccount(in)
}
func (s *SlurmServer) DeleteAccount(ctx context.Context, in *slurm.DeleteAccountReq) (*slurm.DeleteAccountResp, error) {
l := logic.NewDeleteAccountLogic(ctx, s.svcCtx)
return l.DeleteAccount(in)
}
func (s *SlurmServer) ListCluster(ctx context.Context, in *slurm.ListClusterReq) (*slurm.ListClusterResp, error) {
l := logic.NewListClusterLogic(ctx, s.svcCtx)
return l.ListCluster(in)
}
func (s *SlurmServer) GetCluster(ctx context.Context, in *slurm.GetClusterReq) (*slurm.GetClusterResp, error) {
l := logic.NewGetClusterLogic(ctx, s.svcCtx)
return l.GetCluster(in)
}
func (s *SlurmServer) AddCluster(ctx context.Context, in *slurm.AddClusterReq) (*slurm.AddClusterResp, error) {
l := logic.NewAddClusterLogic(ctx, s.svcCtx)
return l.AddCluster(in)
}
func (s *SlurmServer) DeleteCluster(ctx context.Context, in *slurm.DeleteClusterReq) (*slurm.DeleteClusterResp, error) {
l := logic.NewDeleteClusterLogic(ctx, s.svcCtx)
return l.DeleteCluster(in)
}
func (s *SlurmServer) ListWckey(ctx context.Context, in *slurm.ListWckeyReq) (*slurm.ListWckeyResp, error) {
l := logic.NewListWckeyLogic(ctx, s.svcCtx)
return l.ListWckey(in)
}
func (s *SlurmServer) GetWckey(ctx context.Context, in *slurm.GetWckeyReq) (*slurm.GetWckeyResp, error) {
l := logic.NewGetWckeyLogic(ctx, s.svcCtx)
return l.GetWckey(in)
}
func (s *SlurmServer) AddWckey(ctx context.Context, in *slurm.AddWckeyReq) (*slurm.AddWckeyResp, error) {
l := logic.NewAddWckeyLogic(ctx, s.svcCtx)
return l.AddWckey(in)
}
func (s *SlurmServer) DeleteWckey(ctx context.Context, in *slurm.DeleteWckeyReq) (*slurm.DeleteWckeyResp, error) {
l := logic.NewDeleteWckeyLogic(ctx, s.svcCtx)
return l.DeleteWckey(in)
}
func (s *SlurmServer) ListAssociation(ctx context.Context, in *slurm.ListAssociationReq) (*slurm.ListAssociationResp, error) {
l := logic.NewListAssociationLogic(ctx, s.svcCtx)
return l.ListAssociation(in)
}
func (s *SlurmServer) GetAssociation(ctx context.Context, in *slurm.GetAssociationReq) (*slurm.GetAssociationResp, error) {
l := logic.NewGetAssociationLogic(ctx, s.svcCtx)
return l.GetAssociation(in)
}
func (s *SlurmServer) SetAssociation(ctx context.Context, in *slurm.SetAssociationReq) (*slurm.SetAssociationResp, error) {
l := logic.NewSetAssociationLogic(ctx, s.svcCtx)
return l.SetAssociation(in)
}
func (s *SlurmServer) DeleteAssociation(ctx context.Context, in *slurm.DeleteAssociationReq) (*slurm.DeleteAssociationResp, error) {
l := logic.NewDeleteAssociationLogic(ctx, s.svcCtx)
return l.DeleteAssociation(in)
}
func (s *SlurmServer) GetDiagnostics(ctx context.Context, in *slurm.ListDiagnosticsReq) (*slurm.ListDiagnosticsResp, error) {
l := logic.NewGetDiagnosticsLogic(ctx, s.svcCtx)
return l.GetDiagnostics(in)
}
func (s *SlurmServer) GetDbDiagnostics(ctx context.Context, in *slurm.ListDbDiagnosticsReq) (*slurm.ListDbDiagnosticsResp, error) {
l := logic.NewGetDbDiagnosticsLogic(ctx, s.svcCtx)
return l.GetDbDiagnostics(in)
}

View File

@ -1,43 +0,0 @@
// Code generated by goctl. DO NOT EDIT.
// Source: slurm.proto
package server
import (
"context"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/internal/logic"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/internal/svc"
"gitlink.org.cn/jcce-pcm/pcm-participant-slurm/slurm"
)
type SlurmServer struct {
svcCtx *svc.ServiceContext
slurm.UnimplementedSlurmServer
}
func NewSlurmServer(svcCtx *svc.ServiceContext) *SlurmServer {
return &SlurmServer{
svcCtx: svcCtx,
}
}
func (s *SlurmServer) SubmitJob(ctx context.Context, in *slurm.SubmitJobReq) (*slurm.SubmitJobResp, error) {
l := logic.NewSubmitJobLogic(ctx, s.svcCtx)
return l.SubmitJob(in)
}
func (s *SlurmServer) ListJob(ctx context.Context, in *slurm.ListJobReq) (*slurm.ListJobResp, error) {
l := logic.NewListJobLogic(ctx, s.svcCtx)
return l.ListJob(in)
}
func (s *SlurmServer) GetJob(ctx context.Context, in *slurm.ListJobReq) (*slurm.ListJobResp, error) {
l := logic.NewGetJobLogic(ctx, s.svcCtx)
return l.GetJob(in)
}
func (s *SlurmServer) ListNode(ctx context.Context, in *slurm.ListNodeReq) (*slurm.ListNodeResp, error) {
l := logic.NewListNodeLogic(ctx, s.svcCtx)
return l.ListNode(in)
}

26
pb/account.proto Normal file
View File

@ -0,0 +1,26 @@
syntax = "proto3";
package slurm;
option go_package = "/slurm";
message account {
message Associations {
string account = 1;
string cluster = 2;
string partition = 3;
string user = 4;
}
message Coordinators {
string name = 1;
uint32 direct = 2;
}
repeated Associations associations = 1;
repeated Coordinators coordinators = 2;
string description = 3;
string name = 4;
string organization = 5;
repeated string flags = 6;
}

84
pb/association.proto Normal file
View File

@ -0,0 +1,84 @@
syntax = "proto3";
package slurm;
option go_package = "/slurm";
message association {
message Default {
string qos = 1;
}
message Per {
string count = 1;
string accruing = 2;
string submitted = 3;
string wall_clock = 4;
}
message Jobs {
Per per = 1;
string active = 2;
string accruing = 3;
string total = 4;
}
message Per1 {
repeated Jobs job = 1;
}
message Minutes {
Per1 per = 1;
repeated string total = 2;
}
message Group {
repeated string minutes = 1;
repeated string active = 2;
}
message Per2 {
repeated string job = 1;
repeated string node = 2;
}
message Tres {
repeated string total = 1;
Minutes minutes = 2;
Group group = 3;
Per2 per = 4;
}
message Account {
string wall_clock = 1;
}
message Per3 {
Account account = 1;
}
message Max {
Jobs jobs = 1;
Tres tres = 2;
Per3 per = 3;
}
message Min {
string priority_threshold = 1;
}
string account = 1;
string cluster = 2;
Default default = 3;
repeated string flags = 4;
Max max = 5;
uint32 is_default = 6;
Min min = 7;
string parent_account = 8;
string partition = 9;
string priority = 10;
repeated string qos = 11;
uint32 shares_raw = 12;
string usage = 13;
string user = 14;
}

39
pb/cluster.proto Normal file
View File

@ -0,0 +1,39 @@
syntax = "proto3";
package slurm;
option go_package = "/slurm";
import "tres.proto";
message cluster {
message Controller {
string host = 1;
uint32 port = 2;
}
message Root {
string account = 1;
string cluster = 2;
string partition = 3;
string user = 4;
}
message Associations {
Root root = 1;
}
message Errors {
uint32 errno = 1;
string error = 2;
}
Controller controller = 1;
repeated string flags = 2;
string name = 3;
string nodes = 4;
string select_plugin = 5;
Associations associations = 6;
uint32 rpc_version = 7;
repeated tres tres = 8;
}

53
pb/common.proto Normal file
View File

@ -0,0 +1,53 @@
syntax = "proto3";
package slurm;
option go_package = "/slurm";
message error{
string error = 1;
uint32 errno = 2;
}
message Environment{
}
message Cpus {
}
message Sockets {
}
message Cores {
}
message Allocated_nodes {
uint32 memory = 1;
Cpus cpus = 2;
Sockets sockets = 3;
Cores cores = 4;
}
message meta {
message Plugin {
string type = 1;
string name = 2;
}
message Version {
uint32 major = 1;
uint32 micro = 2;
uint32 minor = 3;
}
message Slurm {
Version version = 1;
string release = 2;
}
Plugin plugin = 1;
Slurm slurm = 2;
}

369
pb/configuration.proto Normal file
View File

@ -0,0 +1,369 @@
syntax = "proto3";
package slurm;
option go_package = "/slurm";
message configuration {
message Errors {
uint32 errno = 1;
string error = 2;
}
message Associations {
string account = 1;
string cluster = 2;
string partition = 3;
string user = 4;
}
message Coordinators {
string name = 1;
uint32 direct = 2;
}
message Accounts {
repeated Associations associations = 1;
repeated Coordinators coordinators = 2;
string description = 3;
string name = 4;
string organization = 5;
repeated string flags = 6;
}
message Default {
string qos = 1;
}
message Per {
uint32 wall_clock = 1;
}
message Jobs {
uint32 active = 1;
uint32 accruing = 2;
uint32 total = 3;
Per per = 4;
}
message Account {
uint32 wall_clock = 1;
}
message Per1 {
Account account = 1;
}
message Minutes {
string type = 1;
string name = 2;
uint32 id = 3;
uint32 count = 4;
}
message Active {
string type = 1;
string name = 2;
uint32 id = 3;
uint32 count = 4;
}
message Group {
repeated Minutes minutes = 1;
repeated Active active = 2;
}
message Job {
string type = 1;
string name = 2;
uint32 id = 3;
uint32 count = 4;
}
message Node {
string type = 1;
string name = 2;
uint32 id = 3;
uint32 count = 4;
}
message Per2 {
repeated Job job = 1;
repeated Node node = 2;
}
message Total {
string type = 1;
string name = 2;
uint32 id = 3;
uint32 count = 4;
}
message Job1 {
string type = 1;
string name = 2;
uint32 id = 3;
uint32 count = 4;
}
message Per3 {
repeated Job1 job = 1;
}
message Total1 {
string type = 1;
string name = 2;
uint32 id = 3;
uint32 count = 4;
}
message Minutes1 {
Per3 per = 1;
repeated Total1 total = 2;
}
message Tres {
Group group = 1;
Per2 per = 2;
repeated Total total = 3;
Minutes1 minutes = 4;
}
message Max {
Jobs jobs = 1;
Per1 per = 2;
Tres tres = 3;
}
message Min {
uint32 priority_threshold = 1;
}
message Usage {
uint32 accrue_job_count = 1;
uint32 group_used_wallclock = 2;
uint32 fairshare_factor = 3;
uint32 fairshare_shares = 4;
uint32 normalized_priority = 5;
uint32 normalized_shares = 6;
uint32 effective_normalized_usage = 7;
uint32 raw_usage = 8;
uint32 job_count = 9;
uint32 fairshare_level = 10;
}
message Associations1 {
uint32 is_default = 1;
string account = 2;
string cluster = 3;
Default default = 4;
repeated string flags = 5;
Max max = 6;
Min min = 7;
string parent_account = 8;
string partition = 9;
uint32 priority = 10;
repeated string qos = 11;
uint32 shares_raw = 12;
Usage usage = 13;
string user = 14;
}
message Root {
string account = 1;
string cluster = 2;
string partition = 3;
string user = 4;
}
message Associations2 {
Root root = 1;
}
message Coordinators1 {
string name = 1;
uint32 direct = 2;
}
message Default1 {
string account = 1;
string wckey = 2;
}
message Users {
string administrator_level = 1;
Associations2 associations = 2;
repeated Coordinators1 coordinators = 3;
Default1 default = 4;
string name = 5;
}
message Per4 {
uint32 qos = 1;
uint32 job = 2;
}
message Wall_clock {
Per4 per = 1;
}
message Per5 {
uint32 account = 1;
uint32 user = 2;
}
message Active_jobs {
Per5 per = 1;
}
message Jobs1 {
Active_jobs active_jobs = 1;
}
message Per6 {
uint32 account = 1;
uint32 user = 2;
}
message Accruing {
Per6 per = 1;
}
message Job2 {
string type = 1;
string name = 2;
uint32 id = 3;
uint32 count = 4;
}
message Account1 {
string type = 1;
string name = 2;
uint32 id = 3;
uint32 count = 4;
}
message User {
string type = 1;
string name = 2;
uint32 id = 3;
uint32 count = 4;
}
message Per7 {
repeated Job2 job = 1;
repeated Account1 account = 2;
repeated User user = 3;
}
message Minutes2 {
Per7 per = 1;
}
message Account2 {
string type = 1;
string name = 2;
uint32 id = 3;
uint32 count = 4;
}
message Job3 {
string type = 1;
string name = 2;
uint32 id = 3;
uint32 count = 4;
}
message Node1 {
string type = 1;
string name = 2;
uint32 id = 3;
uint32 count = 4;
}
message User1 {
string type = 1;
string name = 2;
uint32 id = 3;
uint32 count = 4;
}
message Per8 {
repeated Account2 account = 1;
repeated Job3 job = 2;
repeated Node1 node = 3;
repeated User1 user = 4;
}
message Tres1 {
Minutes2 minutes = 1;
Per8 per = 2;
}
message Max1 {
Wall_clock wall_clock = 1;
Jobs1 jobs = 2;
Accruing accruing = 3;
Tres1 tres = 4;
}
message Job4 {
string type = 1;
string name = 2;
uint32 id = 3;
uint32 count = 4;
}
message Per9 {
repeated Job4 job = 1;
}
message Tres2 {
Per9 per = 1;
}
message Min1 {
uint32 priority_threshold = 1;
Tres2 tres = 2;
}
message Limits {
uint32 factor = 1;
Max1 max = 2;
Min1 min = 3;
}
message Preempt {
repeated string list = 1;
repeated string mode = 2;
uint32 exempt_time = 3;
}
message Qos {
string description = 1;
repeated string flags = 2;
string id = 3;
Limits limits = 4;
Preempt preempt = 5;
uint32 priority = 6;
uint32 usage_factor = 7;
uint32 usage_threshold = 8;
}
message Wckeys {
repeated string accounts = 1;
string cluster = 2;
uint32 id = 3;
string name = 4;
string user = 5;
repeated string flags = 6;
}
repeated Errors errors = 1;
repeated string tres = 2;
repeated Accounts accounts = 3;
repeated Associations1 associations = 4;
repeated Users users = 5;
repeated Qos qos = 6;
repeated Wckeys wckeys = 7;
}

88
pb/diagnostics.proto Normal file
View File

@ -0,0 +1,88 @@
syntax = "proto3";
package slurm;
option go_package = "/slurm";
message diagnostics {
uint32 parts_packed = 1;
uint32 req_time = 2;
uint32 req_time_start = 3;
uint32 server_thread_count = 4;
uint32 agent_queue_size = 5;
uint32 agent_count = 6;
uint32 agent_thread_count = 7;
uint32 dbd_agent_queue_size = 8;
uint32 gettimeofday_latency = 9;
uint32 schedule_cycle_max = 10;
uint32 schedule_cycle_last = 11;
uint32 schedule_cycle_total = 12;
uint32 schedule_cycle_mean = 13;
uint32 schedule_cycle_mean_depth = 14;
uint32 schedule_cycle_per_minute = 15;
uint32 schedule_queue_length = 16;
uint32 jobs_submitted = 17;
uint32 jobs_started = 18;
uint32 jobs_completed = 19;
uint32 jobs_canceled = 20;
uint32 jobs_failed = 21;
uint32 jobs_pending = 22;
uint32 jobs_running = 23;
uint32 job_states_ts = 24;
uint32 bf_backfilled_jobs = 25;
uint32 bf_last_backfilled_jobs = 26;
uint32 bf_backfilled_het_jobs = 27;
uint32 bf_cycle_counter = 28;
uint32 bf_cycle_mean = 29;
uint32 bf_cycle_max = 30;
uint32 bf_last_depth = 31;
uint32 bf_last_depth_try = 32;
uint32 bf_depth_mean = 33;
uint32 bf_depth_mean_try = 34;
uint32 bf_cycle_last = 35;
uint32 bf_queue_len = 36;
uint32 bf_queue_len_mean = 37;
uint32 bf_when_last_cycle = 38;
bool bf_active = 39;
}
message diagnostics_db {
message Rollups {
string type = 1;
uint32 last_run = 2;
uint32 last_cycle = 3;
uint32 max_cycle = 4;
uint32 total_time = 5;
uint32 mean_cycles = 6;
}
message Time {
uint32 average = 1;
uint32 total = 2;
}
message Rpcs {
string rpc = 1;
uint32 count = 2;
Time time = 3;
}
message Time1 {
uint32 average = 1;
uint32 total = 2;
}
message Users {
string user = 1;
uint32 count = 2;
Time1 time = 3;
}
uint32 time_start = 1;
repeated Rollups rollups = 2;
repeated Rpcs RPCs = 3;
repeated Users users = 4;
}

385
pb/job.proto Normal file
View File

@ -0,0 +1,385 @@
syntax = "proto3";
package slurm;
option go_package = "/slurm";
import "common.proto";
message Job_resources {
string nodes = 1;
uint32 allocated_cpus = 2;
uint32 allocated_hosts = 3;
repeated Allocated_nodes allocated_nodes = 4;
}
//submit job request
message job_properties{
string account = 1;
string account_gather_frequency = 2;
repeated string argv = 3;
string array = 4;
string batch_features = 5;
uint32 begin_time = 6;
string burst_buffer = 7;
string cluster_constraint = 8;
string comment = 9;
string constraints = 10;
uint32 core_specification = 11;
uint32 cores_per_socket = 12;
string cpu_binding = 13;
string cpu_binding_hint = 14;
string cpu_frequency = 15;
string cpus_per_gpu = 16;
uint32 cpus_per_task = 17;
string current_working_directory = 18;
string deadline = 19;
uint32 delay_boot = 20;
string dependency = 21;
string distribution = 22;
Environment environment = 23;
string exclusive = 24;
bool get_user_environment = 25;
string gres = 26;
string gres_flags = 27;
string gpu_binding = 28;
string gpu_frequency = 29;
string gpus = 30;
string gpus_per_node = 31;
string gpus_per_socket = 32;
string gpus_per_task = 33;
bool hold = 34;
bool kill_on_invalid_dependency = 35;
string licenses = 36;
string mail_type = 37;
string mail_user = 38;
string mcs_label = 39;
string memory_binding = 40;
uint32 memory_per_cpu = 41;
uint32 memory_per_gpu = 42;
uint32 memory_per_node = 43;
uint32 minimum_cpus_per_node = 44;
bool minimum_nodes = 45;
string name = 46;
string nice = 47;
bool no_kill = 48;
repeated uint32 nodes = 49;
string open_mode = 50;
string partition = 51;
string priority = 52;
string qos = 53;
bool requeue = 54;
string reservation = 55;
string signal = 56;
uint32 sockets_per_node = 57;
bool spread_job = 58;
string standard_error = 59;
string standard_input = 60;
string standard_output = 61;
uint32 tasks = 62;
uint32 tasks_per_core = 63;
uint32 tasks_per_node = 64;
uint32 tasks_per_socket = 65;
uint32 thread_specification = 66;
uint32 threads_per_core = 67;
uint32 time_limit = 68;
uint32 time_minimum = 69;
bool wait_all_nodes = 70;
string wckey = 71;
}
//list job response
message job_response_properties{
string account = 1;
uint32 accrue_time = 2;
string admin_comment = 3;
string array_job_id = 4;
string array_task_id = 5;
string array_max_tasks = 6;
string array_task_string = 7;
string association_id = 8;
string batch_features = 9;
bool batch_flag = 10;
string batch_host = 11;
repeated string flags = 12;
string burst_buffer = 13;
string burst_buffer_state = 14;
string cluster = 15;
string cluster_features = 16;
string command = 17;
string comment = 18;
bool contiguous = 19;
string core_spec = 20;
string thread_spec = 21;
string cores_per_socket = 22;
string billable_tres = 23;
string cpus_per_task = 24;
string cpu_frequency_minimum = 25;
string cpu_frequency_maximum = 26;
string cpu_frequency_governor = 27;
string cpus_per_tres = 28;
string deadline = 29;
string delay_boot = 30;
string dependency = 31;
string derived_exit_code = 32;
uint32 eligible_time = 33;
uint32 end_time = 34;
string excluded_nodes = 35;
uint32 exit_code = 36;
string features = 37;
string federation_origin = 38;
string federation_siblings_active = 39;
string federation_siblings_viable = 40;
repeated string gres_detail = 41;
string group_id = 42;
string job_id = 43;
Job_resources job_resources = 44;
string job_state = 45;
string last_sched_evaluation = 46;
string licenses = 47;
string max_cpus = 48;
string max_nodes = 49;
string mcs_label = 50;
string memory_per_tres = 51;
string name = 52;
string nodes = 53;
string nice = 54;
string tasks_per_core = 55;
string tasks_per_socket = 56;
string tasks_per_board = 57;
string cpus = 58;
string node_count = 59;
string tasks = 60;
string het_job_id = 61;
string het_job_id_set = 62;
string het_job_offset = 63;
string partition = 64;
string memory_per_node = 65;
string memory_per_cpu = 66;
string minimum_cpus_per_node = 67;
string minimum_tmp_disk_per_node = 68;
uint32 preempt_time = 69;
uint32 pre_sus_time = 70;
string priority = 71;
repeated string profile = 72;
string qos = 73;
bool reboot = 74;
string required_nodes = 75;
bool requeue = 76;
uint32 resize_time = 77;
string restart_cnt = 78;
string resv_name = 79;
string shared = 80;
repeated string show_flags = 81;
string sockets_per_board = 82;
string sockets_per_node = 83;
uint32 start_time = 84;
string state_description = 85;
string state_reason = 86;
string standard_error = 87;
string standard_input = 88;
string standard_output = 89;
uint32 submit_time = 90;
uint32 suspend_time = 91;
string system_comment = 92;
string time_limit = 93;
string time_minimum = 94;
string threads_per_core = 95;
string tres_bind = 96;
string tres_freq = 97;
string tres_per_job = 98;
string tres_per_node = 99;
string tres_per_socket = 100;
string tres_per_task = 101;
string tres_req_str = 102;
string tres_alloc_str = 103;
string user_id = 104;
string user_name = 105;
string wckey = 106;
string current_working_directory = 107;
}
//get job response
message Jobs {
string account = 1;
uint32 accrue_time = 2;
string admin_comment = 3;
string array_job_id = 4;
string array_task_id = 5;
string array_max_tasks = 6;
string array_task_string = 7;
string association_id = 8;
string batch_features = 9;
bool batch_flag = 10;
string batch_host = 11;
repeated string flags = 12;
string burst_buffer = 13;
string burst_buffer_state = 14;
string cluster = 15;
string cluster_features = 16;
string command = 17;
string comment = 18;
bool contiguous = 19;
string core_spec = 20;
string thread_spec = 21;
string cores_per_socket = 22;
string billable_tres = 23;
string cpus_per_task = 24;
string cpu_frequency_minimum = 25;
string cpu_frequency_maximum = 26;
string cpu_frequency_governor = 27;
string cpus_per_tres = 28;
string deadline = 29;
string delay_boot = 30;
string dependency = 31;
string derived_exit_code = 32;
uint32 eligible_time = 33;
uint32 end_time = 34;
string excluded_nodes = 35;
uint32 exit_code = 36;
string features = 37;
string federation_origin = 38;
string federation_siblings_active = 39;
string federation_siblings_viable = 40;
repeated string gres_detail = 41;
string group_id = 42;
string job_id = 43;
Job_resources job_resources = 44;
string job_state = 45;
string last_sched_evaluation = 46;
string licenses = 47;
string max_cpus = 48;
string max_nodes = 49;
string mcs_label = 50;
string memory_per_tres = 51;
string name = 52;
string nodes = 53;
string nice = 54;
string tasks_per_core = 55;
string tasks_per_socket = 56;
string tasks_per_board = 57;
string cpus = 58;
string node_count = 59;
string tasks = 60;
string het_job_id = 61;
string het_job_id_set = 62;
string het_job_offset = 63;
string partition = 64;
string memory_per_node = 65;
string memory_per_cpu = 66;
string minimum_cpus_per_node = 67;
string minimum_tmp_disk_per_node = 68;
uint32 preempt_time = 69;
uint32 pre_sus_time = 70;
string priority = 71;
repeated string profile = 72;
string qos = 73;
bool reboot = 74;
string required_nodes = 75;
bool requeue = 76;
uint32 resize_time = 77;
string restart_cnt = 78;
string resv_name = 79;
string shared = 80;
repeated string show_flags = 81;
string sockets_per_board = 82;
string sockets_per_node = 83;
uint32 start_time = 84;
string state_description = 85;
string state_reason = 86;
string standard_error = 87;
string standard_input = 88;
string standard_output = 89;
uint32 submit_time = 90;
uint32 suspend_time = 91;
string system_comment = 92;
string time_limit = 93;
string time_minimum = 94;
string threads_per_core = 95;
string tres_bind = 96;
string tres_freq = 97;
string tres_per_job = 98;
string tres_per_node = 99;
string tres_per_socket = 100;
string tres_per_task = 101;
string tres_req_str = 102;
string tres_alloc_str = 103;
string user_id = 104;
string user_name = 105;
string wckey = 106;
string current_working_directory = 107;
}
message job_update {
string account = 1;
string account_gather_frequency = 2;
repeated string argv = 3;
string array = 4;
string batch_features = 5;
uint32 begin_time = 6;
string burst_buffer = 7;
string cluster_constraint = 8;
string comment = 9;
string constraints = 10;
uint32 core_specification = 11;
uint32 cores_per_socket = 12;
string cpu_binding = 13;
string cpu_binding_hint = 14;
string cpu_frequency = 15;
string cpus_per_gpu = 16;
uint32 cpus_per_task = 17;
string current_working_directory = 18;
string deadline = 19;
uint32 delay_boot = 20;
string dependency = 21;
string distribution = 22;
Environment environment = 23;
string exclusive = 24;
bool get_user_environment = 25;
string gres = 26;
string gres_flags = 27;
string gpu_binding = 28;
string gpu_frequency = 29;
string gpus = 30;
string gpus_per_node = 31;
string gpus_per_socket = 32;
string gpus_per_task = 33;
bool hold = 34;
bool kill_on_invalid_dependency = 35;
string licenses = 36;
string mail_type = 37;
string mail_user = 38;
string mcs_label = 39;
string memory_binding = 40;
uint32 memory_per_cpu = 41;
uint32 memory_per_gpu = 42;
uint32 memory_per_node = 43;
uint32 minimum_cpus_per_node = 44;
bool minimum_nodes = 45;
string name = 46;
string nice = 47;
bool no_kill = 48;
repeated uint32 nodes = 49;
string open_mode = 50;
string partition = 51;
string priority = 52;
string qos = 53;
bool requeue = 54;
string reservation = 55;
string signal = 56;
uint32 sockets_per_node = 57;
bool spread_job = 58;
string standard_error = 59;
string standard_input = 60;
string standard_output = 61;
uint32 tasks = 62;
uint32 tasks_per_core = 63;
uint32 tasks_per_node = 64;
uint32 tasks_per_socket = 65;
uint32 thread_specification = 66;
uint32 threads_per_core = 67;
uint32 time_limit = 68;
uint32 time_minimum = 69;
bool wait_all_nodes = 70;
string wckey = 71;
}

43
pb/node.proto Normal file
View File

@ -0,0 +1,43 @@
syntax = "proto3";
package slurm;
option go_package = "/slurm";
message node {
string architecture = 1;
string burstbuffer_network_address = 2;
uint32 boards = 3;
uint32 boot_time = 4;
string comment = 5;
uint32 cores = 6;
uint32 cpu_binding = 7;
uint32 cpu_load = 8;
uint32 free_memory = 9;
uint32 cpus = 10;
string features = 11;
string active_features = 12;
string gres = 13;
string gres_drained = 14;
string gres_used = 15;
string mcs_label = 16;
string name = 17;
string next_state_after_reboot = 18;
string address = 19;
string hostname = 20;
string state = 21;
string operating_system = 22;
string owner = 23;
uint32 port = 24;
uint32 real_memory = 25;
string reason = 26;
uint32 reason_changed_at = 27;
string reason_set_by_user = 28;
uint32 slurmd_start_time = 29;
uint32 sockets = 30;
uint32 threads = 31;
uint32 temporary_disk = 32;
uint32 weight = 33;
string tres = 34;
string slurmd_version = 35;
}

35
pb/partition.proto Normal file
View File

@ -0,0 +1,35 @@
syntax = "proto3";
package slurm;
option go_package = "/slurm";
message partition {
repeated string flags = 1;
repeated string preemption_mode = 2;
string allowed_allocation_nodes = 3;
string allowed_accounts = 4;
string allowed_groups = 5;
string allowed_qos = 6;
string alternative = 7;
string billing_weights = 8;
uint32 default_memory_per_cpu = 9;
uint32 default_time_limit = 10;
string denied_accounts = 11;
string denied_qos = 12;
uint32 preemption_grace_time = 13;
uint32 maximum_cpus_per_node = 14;
uint32 maximum_memory_per_node = 15;
uint32 maximum_nodes_per_job = 16;
uint32 max_time_limit = 17;
uint32 min_nodes_per_job = 18;
string name = 19;
string nodes = 20;
uint32 over_time_limit = 21;
uint32 priority_job_factor = 22;
uint32 priority_tier = 23;
string qos = 24;
string state = 25;
uint32 total_cpus = 26;
uint32 total_nodes = 27;
string tres = 28;
}

12
pb/ping.proto Normal file
View File

@ -0,0 +1,12 @@
syntax = "proto3";
package slurm;
option go_package = "/slurm";
message ping {
string hostname = 1;
string ping = 2;
uint32 status = 3;
string mode = 4;
}

157
pb/qos.proto Normal file
View File

@ -0,0 +1,157 @@
syntax = "proto3";
package slurm;
option go_package = "/slurm";
message qos {
message Per {
uint32 qos = 1;
uint32 job = 2;
}
message Wall_clock {
Per per = 1;
}
message Per1 {
uint32 account = 1;
uint32 user = 2;
}
message Active_jobs {
Per1 per = 1;
}
message Jobs {
Active_jobs active_jobs = 1;
}
message Per2 {
uint32 account = 1;
uint32 user = 2;
}
message Accruing {
Per2 per = 1;
}
message Job {
string type = 1;
string name = 2;
uint32 id = 3;
uint32 count = 4;
}
message Account {
string type = 1;
string name = 2;
uint32 id = 3;
uint32 count = 4;
}
message User {
string type = 1;
string name = 2;
uint32 id = 3;
uint32 count = 4;
}
message Per3 {
repeated Job job = 1;
repeated Account account = 2;
repeated User user = 3;
}
message Minutes {
Per3 per = 1;
}
message Account1 {
string type = 1;
string name = 2;
uint32 id = 3;
uint32 count = 4;
}
message Job1 {
string type = 1;
string name = 2;
uint32 id = 3;
uint32 count = 4;
}
message Node {
string type = 1;
string name = 2;
uint32 id = 3;
uint32 count = 4;
}
message User1 {
string type = 1;
string name = 2;
uint32 id = 3;
uint32 count = 4;
}
message Per4 {
repeated Account1 account = 1;
repeated Job1 job = 2;
repeated Node node = 3;
repeated User1 user = 4;
}
message Tres {
Minutes minutes = 1;
Per4 per = 2;
}
message Max {
Wall_clock wall_clock = 1;
Jobs jobs = 2;
Accruing accruing = 3;
Tres tres = 4;
}
message Job2 {
string type = 1;
string name = 2;
uint32 id = 3;
uint32 count = 4;
}
message Per5 {
repeated Job2 job = 1;
}
message Tres1 {
Per5 per = 1;
}
message Min {
uint32 priority_threshold = 1;
Tres1 tres = 2;
}
message Limits {
uint32 factor = 1;
Max max = 2;
Min min = 3;
}
message Preempt {
repeated string list = 1;
repeated string mode = 2;
uint32 exempt_time = 3;
}
string description = 1;
repeated string flags = 2;
string id = 3;
Limits limits = 4;
Preempt preempt = 5;
uint32 priority = 6;
uint32 usage_factor = 7;
uint32 usage_threshold = 8;
}

32
pb/reservation.proto Normal file
View File

@ -0,0 +1,32 @@
syntax = "proto3";
package slurm;
option go_package = "/slurm";
message reservation {
message Purge_completed {
uint32 time = 1;
}
string accounts = 1;
string burst_buffer = 2;
uint32 core_count = 3;
uint32 core_spec_cnt = 4;
uint32 end_time = 5;
string features = 6;
repeated string flags = 7;
string groups = 8;
string licenses = 9;
uint32 max_start_delay = 10;
string name = 11;
uint32 node_count = 12;
string node_list = 13;
string partition = 14;
Purge_completed purge_completed = 15;
uint32 start_time = 16;
uint32 watts = 17;
string tres = 18;
string users = 19;
}

View File

@ -3,494 +3,359 @@ syntax = "proto3";
package slurm;
option go_package = "/slurm";
message error{
string error = 1;
uint32 errno = 2;
}
import "common.proto";
import "node.proto";
import "job.proto";
import "user.proto";
import "tres.proto";
import "association.proto";
import "partition.proto";
import "reservation.proto";
import "qos.proto";
import "account.proto";
import "cluster.proto";
import "wckey.proto";
import "configuration.proto";
import "diagnostics.proto";
import "ping.proto";
message Environment{
}
//job
//listJob
message listJobReq{
uint32 update_time = 1;
}
message listJobResp{
repeated error errors = 1;
repeated job_response_properties jobs = 2;
}
//updateJob
message updateJobReq{
job_update job_update = 1;
}
message updateJobResp{
}
//cancelJob
message cancelJobReq{
string job_id = 1;
}
message cancelJobResp{
}
//getJob
message getJobReq{
string job_id = 1;
}
message getJobResp{
Jobs jobs = 1;
}
//submitJob
message submitJobReq{
string script = 1;
job_properties job = 2;
repeated job_properties jobs = 3;
}
message submitJobResp{
repeated error errors = 1;
uint32 job_id = 2;
string step_id = 3;
string job_submit_user_msg = 4;
}
message Cpus {
}
message Sockets {
}
//user
//listUser
message listUserReq{
}
message listUserResp{
repeated error errors = 1;
repeated user users = 2;
}
//getUser
message getUserReq{
string user_name = 1;
}
message getUserResp{
repeated error errors = 1;
repeated user users = 2;
}
//updateUser
message updateUserReq{
user user = 1;
}
message updateUserResp{
repeated error errors = 1;
}
//deleteUser
message deleteUserReq{
string user_name = 1;
}
message deleteUserResp{
repeated error errors = 1;
}
//partition
//listPartition
message listPartitionReq{
}
message listPartitionResp{
repeated error errors = 1;
repeated partition partitions = 2;
}
//getPartition
message getPartitionReq{
string partition_name = 1;
}
message getPartitionResp{
repeated error errors = 1;
repeated partition partitions = 2;
}
//node
//getNode
message getNodeReq{
string node_name = 1;
}
message getNodeResp{
repeated error errors = 1;
repeated node nodes = 2;
}
//listNode
message listNodeReq{
}
message listNodeResp{
repeated error errors = 1;
repeated node nodes = 2;
}
message Cores {
}
message Allocated_nodes {
uint32 memory = 1;
Cpus cpus = 2;
Sockets sockets = 3;
Cores cores = 4;
}
//reservation
//getReservation
message getReservationReq{
string reservation_name = 1;
}
message getReservationResp{
repeated error errors = 1;
repeated reservation reservations = 2;
}
//listReservation
message listReservationReq{
}
message listReservationResp{
repeated error errors = 1;
repeated reservation reservations = 2;
}
message Job_resources {
string nodes = 1;
uint32 allocated_cpus = 2;
uint32 allocated_hosts = 3;
repeated Allocated_nodes allocated_nodes = 4;
}
//configuration
message dumpConfigurationReq{
}
message dumpConfigurationResp{
repeated configuration configurations = 1;
}
message loadConfigurationReq{
configuration configuration = 1;
}
message loadConfigurationResp{
repeated error errors = 1;
}
//QOS
message listQosReq{
}
message listQosResp{
repeated qos Qos = 1;
}
message getQosReq{
}
message getQosResp{
repeated qos qos = 1;
}
message deleteQosReq{
qos qos = 1;
}
message deleteQosResp{
}
//TRES
message listTresReq{
}
message listTresResp{
repeated tres tres = 1;
}
message setTresReq{
tres tres = 1;
}
message setTresResp{
}
//account
//listAccount
message listAccountReq{
}
message listAccountResp{
repeated error errors = 1;
repeated account accounts = 2;
}
//getAccount
message getAccountReq{
string user_name = 1;
}
message getAccountResp{
repeated error errors = 1;
repeated account accounts = 2;
}
//updateAccount
message updateAccountReq{
account account = 1;
}
message updateAccountResp{
repeated error errors = 1;
}
//deleteAccount
message deleteAccountReq{
string account_name = 1;
}
message deleteAccountResp{
repeated error errors = 1;
}
//cluster
message listClusterReq{
}
message listClusterResp{
repeated cluster clusters = 1;
}
message addClusterReq{
cluster cluster = 1;
}
message addClusterResp{
}
message getClusterReq{
}
message getClusterResp{
repeated cluster clusters = 1;
}
message deleteClusterReq{
cluster cluster = 1;
}
message deleteClusterResp{
}
//wckey
message listWckeyReq{
}
message listWckeyResp{
repeated wckey wckeys = 1;
}
message addWckeyReq{
wckey wckey = 1;
}
message addWckeyResp{
}
message getWckeyReq{
}
message getWckeyResp{
repeated wckey wckeys = 1;
}
message deleteWckeyReq{
wckey wckey = 1;
}
message deleteWckeyResp{
}
//diagnostics
message listDiagnosticsReq{
}
message listDiagnosticsResp{
repeated diagnostics diagnosticses = 1;
}
message listDbDiagnosticsReq{
}
message listDbDiagnosticsResp{
repeated diagnostics_db diagnostics_dbs = 1;
}
//association
message listAssociationReq{
}
message listAssociationResp{
repeated association Association = 1;
}
message setAssociationReq{
association association = 1;
}
message setAssociationResp{
}
message getAssociationReq{
}
message getAssociationResp{
repeated association association = 1;
}
message deleteAssociationReq{
association association = 1;
}
message deleteAssociationResp{
}
//submit job request
message job_properties{
string account = 1;
string account_gather_frequency = 2;
repeated string argv = 3;
string array = 4;
string batch_features = 5;
uint32 begin_time = 6;
string burst_buffer = 7;
string cluster_constraint = 8;
string comment = 9;
string constraints = 10;
uint32 core_specification = 11;
uint32 cores_per_socket = 12;
string cpu_binding = 13;
string cpu_binding_hint = 14;
string cpu_frequency = 15;
string cpus_per_gpu = 16;
uint32 cpus_per_task = 17;
string current_working_directory = 18;
string deadline = 19;
uint32 delay_boot = 20;
string dependency = 21;
string distribution = 22;
Environment environment = 23;
string exclusive = 24;
bool get_user_environment = 25;
string gres = 26;
string gres_flags = 27;
string gpu_binding = 28;
string gpu_frequency = 29;
string gpus = 30;
string gpus_per_node = 31;
string gpus_per_socket = 32;
string gpus_per_task = 33;
bool hold = 34;
bool kill_on_invalid_dependency = 35;
string licenses = 36;
string mail_type = 37;
string mail_user = 38;
string mcs_label = 39;
string memory_binding = 40;
uint32 memory_per_cpu = 41;
uint32 memory_per_gpu = 42;
uint32 memory_per_node = 43;
uint32 minimum_cpus_per_node = 44;
bool minimum_nodes = 45;
string name = 46;
string nice = 47;
bool no_kill = 48;
repeated uint32 nodes = 49;
string open_mode = 50;
string partition = 51;
string priority = 52;
string qos = 53;
bool requeue = 54;
string reservation = 55;
string signal = 56;
uint32 sockets_per_node = 57;
bool spread_job = 58;
string standard_error = 59;
string standard_input = 60;
string standard_output = 61;
uint32 tasks = 62;
uint32 tasks_per_core = 63;
uint32 tasks_per_node = 64;
uint32 tasks_per_socket = 65;
uint32 thread_specification = 66;
uint32 threads_per_core = 67;
uint32 time_limit = 68;
uint32 time_minimum = 69;
bool wait_all_nodes = 70;
string wckey = 71;
}
//ping
message errorPing{
string description = 1;
int32 error_number = 2;
string error = 3;
string source = 4;
}
message pingReq{
}
message pingResp{
meta meta = 1;
repeated errorPing errors = 2;
repeated ping pings = 3;
}
//list job response
message job_response_properties{
string account = 1;
uint32 accrue_time = 2;
string admin_comment = 3;
string array_job_id = 4;
string array_task_id = 5;
string array_max_tasks = 6;
string array_task_string = 7;
string association_id = 8;
string batch_features = 9;
bool batch_flag = 10;
string batch_host = 11;
repeated string flags = 12;
string burst_buffer = 13;
string burst_buffer_state = 14;
string cluster = 15;
string cluster_features = 16;
string command = 17;
string comment = 18;
bool contiguous = 19;
string core_spec = 20;
string thread_spec = 21;
string cores_per_socket = 22;
string billable_tres = 23;
string cpus_per_task = 24;
string cpu_frequency_minimum = 25;
string cpu_frequency_maximum = 26;
string cpu_frequency_governor = 27;
string cpus_per_tres = 28;
string deadline = 29;
string delay_boot = 30;
string dependency = 31;
string derived_exit_code = 32;
uint32 eligible_time = 33;
uint32 end_time = 34;
string excluded_nodes = 35;
uint32 exit_code = 36;
string features = 37;
string federation_origin = 38;
string federation_siblings_active = 39;
string federation_siblings_viable = 40;
repeated string gres_detail = 41;
string group_id = 42;
string job_id = 43;
Job_resources job_resources = 44;
string job_state = 45;
string last_sched_evaluation = 46;
string licenses = 47;
string max_cpus = 48;
string max_nodes = 49;
string mcs_label = 50;
string memory_per_tres = 51;
string name = 52;
string nodes = 53;
string nice = 54;
string tasks_per_core = 55;
string tasks_per_socket = 56;
string tasks_per_board = 57;
string cpus = 58;
string node_count = 59;
string tasks = 60;
string het_job_id = 61;
string het_job_id_set = 62;
string het_job_offset = 63;
string partition = 64;
string memory_per_node = 65;
string memory_per_cpu = 66;
string minimum_cpus_per_node = 67;
string minimum_tmp_disk_per_node = 68;
uint32 preempt_time = 69;
uint32 pre_sus_time = 70;
string priority = 71;
repeated string profile = 72;
string qos = 73;
bool reboot = 74;
string required_nodes = 75;
bool requeue = 76;
uint32 resize_time = 77;
string restart_cnt = 78;
string resv_name = 79;
string shared = 80;
repeated string show_flags = 81;
string sockets_per_board = 82;
string sockets_per_node = 83;
uint32 start_time = 84;
string state_description = 85;
string state_reason = 86;
string standard_error = 87;
string standard_input = 88;
string standard_output = 89;
uint32 submit_time = 90;
uint32 suspend_time = 91;
string system_comment = 92;
string time_limit = 93;
string time_minimum = 94;
string threads_per_core = 95;
string tres_bind = 96;
string tres_freq = 97;
string tres_per_job = 98;
string tres_per_node = 99;
string tres_per_socket = 100;
string tres_per_task = 101;
string tres_req_str = 102;
string tres_alloc_str = 103;
string user_id = 104;
string user_name = 105;
string wckey = 106;
string current_working_directory = 107;
}
//get job response
message Jobs {
string account = 1;
uint32 accrue_time = 2;
string admin_comment = 3;
string array_job_id = 4;
string array_task_id = 5;
string array_max_tasks = 6;
string array_task_string = 7;
string association_id = 8;
string batch_features = 9;
bool batch_flag = 10;
string batch_host = 11;
repeated string flags = 12;
string burst_buffer = 13;
string burst_buffer_state = 14;
string cluster = 15;
string cluster_features = 16;
string command = 17;
string comment = 18;
bool contiguous = 19;
string core_spec = 20;
string thread_spec = 21;
string cores_per_socket = 22;
string billable_tres = 23;
string cpus_per_task = 24;
string cpu_frequency_minimum = 25;
string cpu_frequency_maximum = 26;
string cpu_frequency_governor = 27;
string cpus_per_tres = 28;
string deadline = 29;
string delay_boot = 30;
string dependency = 31;
string derived_exit_code = 32;
uint32 eligible_time = 33;
uint32 end_time = 34;
string excluded_nodes = 35;
uint32 exit_code = 36;
string features = 37;
string federation_origin = 38;
string federation_siblings_active = 39;
string federation_siblings_viable = 40;
repeated string gres_detail = 41;
string group_id = 42;
string job_id = 43;
Job_resources job_resources = 44;
string job_state = 45;
string last_sched_evaluation = 46;
string licenses = 47;
string max_cpus = 48;
string max_nodes = 49;
string mcs_label = 50;
string memory_per_tres = 51;
string name = 52;
string nodes = 53;
string nice = 54;
string tasks_per_core = 55;
string tasks_per_socket = 56;
string tasks_per_board = 57;
string cpus = 58;
string node_count = 59;
string tasks = 60;
string het_job_id = 61;
string het_job_id_set = 62;
string het_job_offset = 63;
string partition = 64;
string memory_per_node = 65;
string memory_per_cpu = 66;
string minimum_cpus_per_node = 67;
string minimum_tmp_disk_per_node = 68;
uint32 preempt_time = 69;
uint32 pre_sus_time = 70;
string priority = 71;
repeated string profile = 72;
string qos = 73;
bool reboot = 74;
string required_nodes = 75;
bool requeue = 76;
uint32 resize_time = 77;
string restart_cnt = 78;
string resv_name = 79;
string shared = 80;
repeated string show_flags = 81;
string sockets_per_board = 82;
string sockets_per_node = 83;
uint32 start_time = 84;
string state_description = 85;
string state_reason = 86;
string standard_error = 87;
string standard_input = 88;
string standard_output = 89;
uint32 submit_time = 90;
uint32 suspend_time = 91;
string system_comment = 92;
string time_limit = 93;
string time_minimum = 94;
string threads_per_core = 95;
string tres_bind = 96;
string tres_freq = 97;
string tres_per_job = 98;
string tres_per_node = 99;
string tres_per_socket = 100;
string tres_per_task = 101;
string tres_req_str = 102;
string tres_alloc_str = 103;
string user_id = 104;
string user_name = 105;
string wckey = 106;
string current_working_directory = 107;
}
message job_update {
string account = 1;
string account_gather_frequency = 2;
repeated string argv = 3;
string array = 4;
string batch_features = 5;
uint32 begin_time = 6;
string burst_buffer = 7;
string cluster_constraint = 8;
string comment = 9;
string constraints = 10;
uint32 core_specification = 11;
uint32 cores_per_socket = 12;
string cpu_binding = 13;
string cpu_binding_hint = 14;
string cpu_frequency = 15;
string cpus_per_gpu = 16;
uint32 cpus_per_task = 17;
string current_working_directory = 18;
string deadline = 19;
uint32 delay_boot = 20;
string dependency = 21;
string distribution = 22;
Environment environment = 23;
string exclusive = 24;
bool get_user_environment = 25;
string gres = 26;
string gres_flags = 27;
string gpu_binding = 28;
string gpu_frequency = 29;
string gpus = 30;
string gpus_per_node = 31;
string gpus_per_socket = 32;
string gpus_per_task = 33;
bool hold = 34;
bool kill_on_invalid_dependency = 35;
string licenses = 36;
string mail_type = 37;
string mail_user = 38;
string mcs_label = 39;
string memory_binding = 40;
uint32 memory_per_cpu = 41;
uint32 memory_per_gpu = 42;
uint32 memory_per_node = 43;
uint32 minimum_cpus_per_node = 44;
bool minimum_nodes = 45;
string name = 46;
string nice = 47;
bool no_kill = 48;
repeated uint32 nodes = 49;
string open_mode = 50;
string partition = 51;
string priority = 52;
string qos = 53;
bool requeue = 54;
string reservation = 55;
string signal = 56;
uint32 sockets_per_node = 57;
bool spread_job = 58;
string standard_error = 59;
string standard_input = 60;
string standard_output = 61;
uint32 tasks = 62;
uint32 tasks_per_core = 63;
uint32 tasks_per_node = 64;
uint32 tasks_per_socket = 65;
uint32 thread_specification = 66;
uint32 threads_per_core = 67;
uint32 time_limit = 68;
uint32 time_minimum = 69;
bool wait_all_nodes = 70;
string wckey = 71;
}
message node {
string architecture = 1;
string burstbuffer_network_address = 2;
uint32 boards = 3;
uint32 boot_time = 4;
string comment = 5;
uint32 cores = 6;
uint32 cpu_binding = 7;
uint32 cpu_load = 8;
uint32 free_memory = 9;
uint32 cpus = 10;
string features = 11;
string active_features = 12;
string gres = 13;
string gres_drained = 14;
string gres_used = 15;
string mcs_label = 16;
string name = 17;
string next_state_after_reboot = 18;
string address = 19;
string hostname = 20;
string state = 21;
string operating_system = 22;
string owner = 23;
uint32 port = 24;
uint32 real_memory = 25;
string reason = 26;
uint32 reason_changed_at = 27;
string reason_set_by_user = 28;
uint32 slurmd_start_time = 29;
uint32 sockets = 30;
uint32 threads = 31;
uint32 temporary_disk = 32;
uint32 weight = 33;
string tres = 34;
string slurmd_version = 35;
}
message submitJobReq{
string script = 1;
job_properties job = 2;
repeated job_properties jobs = 3;
}
message submitJobResp{
repeated error errors = 1;
uint32 job_id = 2;
string step_id = 3;
string job_submit_user_msg = 4;
}
message listJobReq{
uint32 update_time = 1;
}
message listJobResp{
repeated error errors = 1;
repeated job_response_properties jobs = 2;
}
message updateJobReq{
job_update job_update = 1;
}
message updateJobResp{
}
message getJobReq{
string job_id = 1;
}
message getJobResp{
Jobs jobs = 1;
}
message listNodeReq{
}
message listNodeResp{
repeated error errors = 1;
repeated node nodes = 2;
}
service slurm {
rpc submitJob(submitJobReq) returns (submitJobResp) {};
rpc ping(pingReq) returns (pingResp) {};
rpc listJob(listJobReq) returns (listJobResp) {};
rpc getJob(listJobReq) returns (listJobResp) {};
rpc getJob(getJobReq) returns (getJobResp) {};
rpc updateJob(updateJobReq) returns (updateJobResp) {};
rpc cancelJob(cancelJobReq) returns (cancelJobResp) {};
rpc submitJob(submitJobReq) returns (submitJobResp) {};
rpc listUser(listUserReq) returns (listUserResp) {};
rpc getUser(getUserReq) returns (getUserResp) {};
rpc updateUser(updateUserReq) returns (updateUserResp) {};
rpc deleteUser(deleteUserReq) returns (deleteUserResp) {};
rpc listPartition(listPartitionReq) returns (listPartitionResp) {};
rpc getPartition(getPartitionReq) returns (getPartitionResp) {};
rpc listNode(listNodeReq) returns (listNodeResp) {};
rpc getNode(getNodeReq) returns (getNodeResp) {};
rpc listReservation(listReservationReq) returns (listReservationResp) {};
rpc getReservation(getReservationReq) returns (getReservationResp) {};
rpc loadConfiguration(loadConfigurationReq) returns (loadConfigurationResp) {};
rpc dumpConfiguration(dumpConfigurationReq) returns (dumpConfigurationResp) {};
rpc listQos(listQosReq) returns (listQosResp) {};
rpc getQos(getQosReq) returns (getQosResp) {};
rpc deleteQos(deleteQosReq) returns (deleteQosResp) {};
rpc listTres(listTresReq) returns (listTresResp) {};
rpc setTres(setTresReq) returns (setTresResp) {};
rpc listAccount(listAccountReq) returns (listAccountResp) {};
rpc getAccount(getAccountReq) returns (getAccountResp) {};
rpc updateAccount(updateAccountReq) returns (updateAccountResp) {};
rpc deleteAccount(deleteAccountReq) returns (deleteAccountResp) {};
rpc listCluster(listClusterReq) returns (listClusterResp) {};
rpc getCluster(getClusterReq) returns (getClusterResp) {};
rpc addCluster(addClusterReq) returns (addClusterResp) {};
rpc deleteCluster(deleteClusterReq) returns (deleteClusterResp) {};
rpc listWckey(listWckeyReq) returns (listWckeyResp) {};
rpc getWckey(getWckeyReq) returns (getWckeyResp) {};
rpc addWckey(addWckeyReq) returns (addWckeyResp) {};
rpc deleteWckey(deleteWckeyReq) returns (deleteWckeyResp) {};
rpc listAssociation(listAssociationReq) returns (listAssociationResp) {};
rpc getAssociation(getAssociationReq) returns (getAssociationResp) {};
rpc setAssociation(setAssociationReq) returns (setAssociationResp) {};
rpc deleteAssociation(deleteAssociationReq) returns (deleteAssociationResp) {};
rpc getDiagnostics(listDiagnosticsReq) returns (listDiagnosticsResp) {};
rpc getDbDiagnostics(listDbDiagnosticsReq) returns (listDbDiagnosticsResp) {};
}

11
pb/tres.proto Normal file
View File

@ -0,0 +1,11 @@
syntax = "proto3";
package slurm;
option go_package = "/slurm";
message tres {
string type = 1;
string name = 2;
uint32 id = 3;
uint32 count = 4;
}

34
pb/user.proto Normal file
View File

@ -0,0 +1,34 @@
syntax = "proto3";
package slurm;
option go_package = "/slurm";
message user {
message Root {
string account = 1;
string cluster = 2;
string partition = 3;
string user = 4;
}
message Associations {
Associations root = 1;
}
message Coordinators {
string name = 1;
uint32 direct = 2;
}
message Default {
string account = 1;
string wckey = 2;
}
string administrator_level = 1;
Associations associations = 2;
repeated Coordinators coordinators = 3;
Default default = 4;
string name = 5;
}

13
pb/wckey.proto Normal file
View File

@ -0,0 +1,13 @@
syntax = "proto3";
package slurm;
option go_package = "/slurm";
message wckey {
repeated string accounts = 1;
string cluster = 2;
uint32 id = 3;
string name = 4;
string user = 5;
repeated string flags = 6;
}

View File

@ -43,7 +43,7 @@ func main() {
ctx.Cron.Start()
cron.AddCronGroup(ctx)
// 推送p端静态信息
PushParticipantInfo(ctx.Config.ClusterUrl, ctx.ParticipantRpc)
PushParticipantInfo(ctx.Config.RestUrl, ctx.ParticipantRpc)
fmt.Printf("Starting rpc server at %s...\n", c.ListenOn)
s.Start()
}
@ -59,8 +59,8 @@ func PushParticipantInfo(address string, participantService participantservice.P
// 注册到core端
var labels []*pcmCore.ParticipantLabel
labels = append(labels, &pcmCore.ParticipantLabel{
Key: "nudt",
Value: "light",
Key: "hpc",
Value: "slurm",
})
req := participantservice.ParticipantPhyReq{

360
slurm/account.pb.go Normal file
View File

@ -0,0 +1,360 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.31.0
// protoc v3.19.4
// source: account.proto
package slurm
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type Account struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Associations []*Account_Associations `protobuf:"bytes,1,rep,name=associations,proto3" json:"associations,omitempty"`
Coordinators []*Account_Coordinators `protobuf:"bytes,2,rep,name=coordinators,proto3" json:"coordinators,omitempty"`
Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"`
Organization string `protobuf:"bytes,5,opt,name=organization,proto3" json:"organization,omitempty"`
Flags []string `protobuf:"bytes,6,rep,name=flags,proto3" json:"flags,omitempty"`
}
func (x *Account) Reset() {
*x = Account{}
if protoimpl.UnsafeEnabled {
mi := &file_account_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Account) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Account) ProtoMessage() {}
func (x *Account) ProtoReflect() protoreflect.Message {
mi := &file_account_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Account.ProtoReflect.Descriptor instead.
func (*Account) Descriptor() ([]byte, []int) {
return file_account_proto_rawDescGZIP(), []int{0}
}
func (x *Account) GetAssociations() []*Account_Associations {
if x != nil {
return x.Associations
}
return nil
}
func (x *Account) GetCoordinators() []*Account_Coordinators {
if x != nil {
return x.Coordinators
}
return nil
}
func (x *Account) GetDescription() string {
if x != nil {
return x.Description
}
return ""
}
func (x *Account) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *Account) GetOrganization() string {
if x != nil {
return x.Organization
}
return ""
}
func (x *Account) GetFlags() []string {
if x != nil {
return x.Flags
}
return nil
}
type Account_Associations struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Account string `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"`
Cluster string `protobuf:"bytes,2,opt,name=cluster,proto3" json:"cluster,omitempty"`
Partition string `protobuf:"bytes,3,opt,name=partition,proto3" json:"partition,omitempty"`
User string `protobuf:"bytes,4,opt,name=user,proto3" json:"user,omitempty"`
}
func (x *Account_Associations) Reset() {
*x = Account_Associations{}
if protoimpl.UnsafeEnabled {
mi := &file_account_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Account_Associations) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Account_Associations) ProtoMessage() {}
func (x *Account_Associations) ProtoReflect() protoreflect.Message {
mi := &file_account_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Account_Associations.ProtoReflect.Descriptor instead.
func (*Account_Associations) Descriptor() ([]byte, []int) {
return file_account_proto_rawDescGZIP(), []int{0, 0}
}
func (x *Account_Associations) GetAccount() string {
if x != nil {
return x.Account
}
return ""
}
func (x *Account_Associations) GetCluster() string {
if x != nil {
return x.Cluster
}
return ""
}
func (x *Account_Associations) GetPartition() string {
if x != nil {
return x.Partition
}
return ""
}
func (x *Account_Associations) GetUser() string {
if x != nil {
return x.User
}
return ""
}
type Account_Coordinators struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
Direct uint32 `protobuf:"varint,2,opt,name=direct,proto3" json:"direct,omitempty"`
}
func (x *Account_Coordinators) Reset() {
*x = Account_Coordinators{}
if protoimpl.UnsafeEnabled {
mi := &file_account_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Account_Coordinators) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Account_Coordinators) ProtoMessage() {}
func (x *Account_Coordinators) ProtoReflect() protoreflect.Message {
mi := &file_account_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Account_Coordinators.ProtoReflect.Descriptor instead.
func (*Account_Coordinators) Descriptor() ([]byte, []int) {
return file_account_proto_rawDescGZIP(), []int{0, 1}
}
func (x *Account_Coordinators) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *Account_Coordinators) GetDirect() uint32 {
if x != nil {
return x.Direct
}
return 0
}
var File_account_proto protoreflect.FileDescriptor
var file_account_proto_rawDesc = []byte{
0x0a, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12,
0x05, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x22, 0xad, 0x03, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75,
0x6e, 0x74, 0x12, 0x3f, 0x0a, 0x0c, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x69, 0x6f,
0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x6c, 0x75, 0x72, 0x6d,
0x2e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x41, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0c, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x69,
0x6f, 0x6e, 0x73, 0x12, 0x3f, 0x0a, 0x0c, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74,
0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x6c, 0x75, 0x72,
0x6d, 0x2e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69,
0x6e, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x0c, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61,
0x74, 0x6f, 0x72, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72,
0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04,
0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x72,
0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09,
0x52, 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14,
0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x66,
0x6c, 0x61, 0x67, 0x73, 0x1a, 0x74, 0x0a, 0x0c, 0x41, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74,
0x69, 0x6f, 0x6e, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18,
0x0a, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x61, 0x72, 0x74,
0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x72,
0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x04,
0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x1a, 0x3a, 0x0a, 0x0c, 0x43, 0x6f,
0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,
0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16,
0x0a, 0x06, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06,
0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x42, 0x08, 0x5a, 0x06, 0x2f, 0x73, 0x6c, 0x75, 0x72, 0x6d,
0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_account_proto_rawDescOnce sync.Once
file_account_proto_rawDescData = file_account_proto_rawDesc
)
func file_account_proto_rawDescGZIP() []byte {
file_account_proto_rawDescOnce.Do(func() {
file_account_proto_rawDescData = protoimpl.X.CompressGZIP(file_account_proto_rawDescData)
})
return file_account_proto_rawDescData
}
var file_account_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
var file_account_proto_goTypes = []interface{}{
(*Account)(nil), // 0: slurm.account
(*Account_Associations)(nil), // 1: slurm.account.Associations
(*Account_Coordinators)(nil), // 2: slurm.account.Coordinators
}
var file_account_proto_depIdxs = []int32{
1, // 0: slurm.account.associations:type_name -> slurm.account.Associations
2, // 1: slurm.account.coordinators:type_name -> slurm.account.Coordinators
2, // [2:2] is the sub-list for method output_type
2, // [2:2] is the sub-list for method input_type
2, // [2:2] is the sub-list for extension type_name
2, // [2:2] is the sub-list for extension extendee
0, // [0:2] is the sub-list for field type_name
}
func init() { file_account_proto_init() }
func file_account_proto_init() {
if File_account_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_account_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Account); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_account_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Account_Associations); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_account_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Account_Coordinators); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_account_proto_rawDesc,
NumEnums: 0,
NumMessages: 3,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_account_proto_goTypes,
DependencyIndexes: file_account_proto_depIdxs,
MessageInfos: file_account_proto_msgTypes,
}.Build()
File_account_proto = out.File
file_account_proto_rawDesc = nil
file_account_proto_goTypes = nil
file_account_proto_depIdxs = nil
}

1177
slurm/association.pb.go Normal file

File diff suppressed because it is too large Load Diff

518
slurm/cluster.pb.go Normal file
View File

@ -0,0 +1,518 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.31.0
// protoc v3.19.4
// source: cluster.proto
package slurm
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type Cluster struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Controller *Cluster_Controller `protobuf:"bytes,1,opt,name=controller,proto3" json:"controller,omitempty"`
Flags []string `protobuf:"bytes,2,rep,name=flags,proto3" json:"flags,omitempty"`
Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
Nodes string `protobuf:"bytes,4,opt,name=nodes,proto3" json:"nodes,omitempty"`
SelectPlugin string `protobuf:"bytes,5,opt,name=select_plugin,json=selectPlugin,proto3" json:"select_plugin,omitempty"`
Associations *Cluster_Associations `protobuf:"bytes,6,opt,name=associations,proto3" json:"associations,omitempty"`
RpcVersion uint32 `protobuf:"varint,7,opt,name=rpc_version,json=rpcVersion,proto3" json:"rpc_version,omitempty"`
Tres []*Tres `protobuf:"bytes,8,rep,name=tres,proto3" json:"tres,omitempty"`
}
func (x *Cluster) Reset() {
*x = Cluster{}
if protoimpl.UnsafeEnabled {
mi := &file_cluster_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Cluster) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Cluster) ProtoMessage() {}
func (x *Cluster) ProtoReflect() protoreflect.Message {
mi := &file_cluster_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Cluster.ProtoReflect.Descriptor instead.
func (*Cluster) Descriptor() ([]byte, []int) {
return file_cluster_proto_rawDescGZIP(), []int{0}
}
func (x *Cluster) GetController() *Cluster_Controller {
if x != nil {
return x.Controller
}
return nil
}
func (x *Cluster) GetFlags() []string {
if x != nil {
return x.Flags
}
return nil
}
func (x *Cluster) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *Cluster) GetNodes() string {
if x != nil {
return x.Nodes
}
return ""
}
func (x *Cluster) GetSelectPlugin() string {
if x != nil {
return x.SelectPlugin
}
return ""
}
func (x *Cluster) GetAssociations() *Cluster_Associations {
if x != nil {
return x.Associations
}
return nil
}
func (x *Cluster) GetRpcVersion() uint32 {
if x != nil {
return x.RpcVersion
}
return 0
}
func (x *Cluster) GetTres() []*Tres {
if x != nil {
return x.Tres
}
return nil
}
type Cluster_Controller struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Host string `protobuf:"bytes,1,opt,name=host,proto3" json:"host,omitempty"`
Port uint32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
}
func (x *Cluster_Controller) Reset() {
*x = Cluster_Controller{}
if protoimpl.UnsafeEnabled {
mi := &file_cluster_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Cluster_Controller) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Cluster_Controller) ProtoMessage() {}
func (x *Cluster_Controller) ProtoReflect() protoreflect.Message {
mi := &file_cluster_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Cluster_Controller.ProtoReflect.Descriptor instead.
func (*Cluster_Controller) Descriptor() ([]byte, []int) {
return file_cluster_proto_rawDescGZIP(), []int{0, 0}
}
func (x *Cluster_Controller) GetHost() string {
if x != nil {
return x.Host
}
return ""
}
func (x *Cluster_Controller) GetPort() uint32 {
if x != nil {
return x.Port
}
return 0
}
type Cluster_Root struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Account string `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"`
Cluster string `protobuf:"bytes,2,opt,name=cluster,proto3" json:"cluster,omitempty"`
Partition string `protobuf:"bytes,3,opt,name=partition,proto3" json:"partition,omitempty"`
User string `protobuf:"bytes,4,opt,name=user,proto3" json:"user,omitempty"`
}
func (x *Cluster_Root) Reset() {
*x = Cluster_Root{}
if protoimpl.UnsafeEnabled {
mi := &file_cluster_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Cluster_Root) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Cluster_Root) ProtoMessage() {}
func (x *Cluster_Root) ProtoReflect() protoreflect.Message {
mi := &file_cluster_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Cluster_Root.ProtoReflect.Descriptor instead.
func (*Cluster_Root) Descriptor() ([]byte, []int) {
return file_cluster_proto_rawDescGZIP(), []int{0, 1}
}
func (x *Cluster_Root) GetAccount() string {
if x != nil {
return x.Account
}
return ""
}
func (x *Cluster_Root) GetCluster() string {
if x != nil {
return x.Cluster
}
return ""
}
func (x *Cluster_Root) GetPartition() string {
if x != nil {
return x.Partition
}
return ""
}
func (x *Cluster_Root) GetUser() string {
if x != nil {
return x.User
}
return ""
}
type Cluster_Associations struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Root *Cluster_Root `protobuf:"bytes,1,opt,name=root,proto3" json:"root,omitempty"`
}
func (x *Cluster_Associations) Reset() {
*x = Cluster_Associations{}
if protoimpl.UnsafeEnabled {
mi := &file_cluster_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Cluster_Associations) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Cluster_Associations) ProtoMessage() {}
func (x *Cluster_Associations) ProtoReflect() protoreflect.Message {
mi := &file_cluster_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Cluster_Associations.ProtoReflect.Descriptor instead.
func (*Cluster_Associations) Descriptor() ([]byte, []int) {
return file_cluster_proto_rawDescGZIP(), []int{0, 2}
}
func (x *Cluster_Associations) GetRoot() *Cluster_Root {
if x != nil {
return x.Root
}
return nil
}
type Cluster_Errors struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Errno uint32 `protobuf:"varint,1,opt,name=errno,proto3" json:"errno,omitempty"`
Error string `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"`
}
func (x *Cluster_Errors) Reset() {
*x = Cluster_Errors{}
if protoimpl.UnsafeEnabled {
mi := &file_cluster_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Cluster_Errors) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Cluster_Errors) ProtoMessage() {}
func (x *Cluster_Errors) ProtoReflect() protoreflect.Message {
mi := &file_cluster_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Cluster_Errors.ProtoReflect.Descriptor instead.
func (*Cluster_Errors) Descriptor() ([]byte, []int) {
return file_cluster_proto_rawDescGZIP(), []int{0, 3}
}
func (x *Cluster_Errors) GetErrno() uint32 {
if x != nil {
return x.Errno
}
return 0
}
func (x *Cluster_Errors) GetError() string {
if x != nil {
return x.Error
}
return ""
}
var File_cluster_proto protoreflect.FileDescriptor
var file_cluster_proto_rawDesc = []byte{
0x0a, 0x0d, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12,
0x05, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x1a, 0x0a, 0x74, 0x72, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x22, 0xbf, 0x04, 0x0a, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x39,
0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74,
0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x52, 0x0a, 0x63,
0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61,
0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12,
0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e,
0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01,
0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x65, 0x6c,
0x65, 0x63, 0x74, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09,
0x52, 0x0c, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x12, 0x3f,
0x0a, 0x0c, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x2e, 0x63, 0x6c, 0x75,
0x73, 0x74, 0x65, 0x72, 0x2e, 0x41, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x73, 0x52, 0x0c, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12,
0x1f, 0x0a, 0x0b, 0x72, 0x70, 0x63, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07,
0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x72, 0x70, 0x63, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
0x12, 0x1f, 0x0a, 0x04, 0x74, 0x72, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b,
0x2e, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x2e, 0x74, 0x72, 0x65, 0x73, 0x52, 0x04, 0x74, 0x72, 0x65,
0x73, 0x1a, 0x34, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x12,
0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68,
0x6f, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28,
0x0d, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x1a, 0x6c, 0x0a, 0x04, 0x52, 0x6f, 0x6f, 0x74, 0x12,
0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6c, 0x75,
0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6c, 0x75, 0x73,
0x74, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e,
0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f,
0x6e, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52,
0x04, 0x75, 0x73, 0x65, 0x72, 0x1a, 0x37, 0x0a, 0x0c, 0x41, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x27, 0x0a, 0x04, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x01, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x2e, 0x63, 0x6c, 0x75, 0x73,
0x74, 0x65, 0x72, 0x2e, 0x52, 0x6f, 0x6f, 0x74, 0x52, 0x04, 0x72, 0x6f, 0x6f, 0x74, 0x1a, 0x34,
0x0a, 0x06, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6e,
0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6e, 0x6f, 0x12, 0x14,
0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65,
0x72, 0x72, 0x6f, 0x72, 0x42, 0x08, 0x5a, 0x06, 0x2f, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x62, 0x06,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_cluster_proto_rawDescOnce sync.Once
file_cluster_proto_rawDescData = file_cluster_proto_rawDesc
)
func file_cluster_proto_rawDescGZIP() []byte {
file_cluster_proto_rawDescOnce.Do(func() {
file_cluster_proto_rawDescData = protoimpl.X.CompressGZIP(file_cluster_proto_rawDescData)
})
return file_cluster_proto_rawDescData
}
var file_cluster_proto_msgTypes = make([]protoimpl.MessageInfo, 5)
var file_cluster_proto_goTypes = []interface{}{
(*Cluster)(nil), // 0: slurm.cluster
(*Cluster_Controller)(nil), // 1: slurm.cluster.Controller
(*Cluster_Root)(nil), // 2: slurm.cluster.Root
(*Cluster_Associations)(nil), // 3: slurm.cluster.Associations
(*Cluster_Errors)(nil), // 4: slurm.cluster.Errors
(*Tres)(nil), // 5: slurm.tres
}
var file_cluster_proto_depIdxs = []int32{
1, // 0: slurm.cluster.controller:type_name -> slurm.cluster.Controller
3, // 1: slurm.cluster.associations:type_name -> slurm.cluster.Associations
5, // 2: slurm.cluster.tres:type_name -> slurm.tres
2, // 3: slurm.cluster.Associations.root:type_name -> slurm.cluster.Root
4, // [4:4] is the sub-list for method output_type
4, // [4:4] is the sub-list for method input_type
4, // [4:4] is the sub-list for extension type_name
4, // [4:4] is the sub-list for extension extendee
0, // [0:4] is the sub-list for field type_name
}
func init() { file_cluster_proto_init() }
func file_cluster_proto_init() {
if File_cluster_proto != nil {
return
}
file_tres_proto_init()
if !protoimpl.UnsafeEnabled {
file_cluster_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Cluster); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_cluster_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Cluster_Controller); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_cluster_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Cluster_Root); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_cluster_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Cluster_Associations); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_cluster_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Cluster_Errors); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_cluster_proto_rawDesc,
NumEnums: 0,
NumMessages: 5,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_cluster_proto_goTypes,
DependencyIndexes: file_cluster_proto_depIdxs,
MessageInfos: file_cluster_proto_msgTypes,
}.Build()
File_cluster_proto = out.File
file_cluster_proto_rawDesc = nil
file_cluster_proto_goTypes = nil
file_cluster_proto_depIdxs = nil
}

756
slurm/common.pb.go Normal file
View File

@ -0,0 +1,756 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.31.0
// protoc v3.19.4
// source: common.proto
package slurm
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type Error struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Error string `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
Errno uint32 `protobuf:"varint,2,opt,name=errno,proto3" json:"errno,omitempty"`
}
func (x *Error) Reset() {
*x = Error{}
if protoimpl.UnsafeEnabled {
mi := &file_common_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Error) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Error) ProtoMessage() {}
func (x *Error) ProtoReflect() protoreflect.Message {
mi := &file_common_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Error.ProtoReflect.Descriptor instead.
func (*Error) Descriptor() ([]byte, []int) {
return file_common_proto_rawDescGZIP(), []int{0}
}
func (x *Error) GetError() string {
if x != nil {
return x.Error
}
return ""
}
func (x *Error) GetErrno() uint32 {
if x != nil {
return x.Errno
}
return 0
}
type Environment struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
}
func (x *Environment) Reset() {
*x = Environment{}
if protoimpl.UnsafeEnabled {
mi := &file_common_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Environment) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Environment) ProtoMessage() {}
func (x *Environment) ProtoReflect() protoreflect.Message {
mi := &file_common_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Environment.ProtoReflect.Descriptor instead.
func (*Environment) Descriptor() ([]byte, []int) {
return file_common_proto_rawDescGZIP(), []int{1}
}
type Cpus struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
}
func (x *Cpus) Reset() {
*x = Cpus{}
if protoimpl.UnsafeEnabled {
mi := &file_common_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Cpus) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Cpus) ProtoMessage() {}
func (x *Cpus) ProtoReflect() protoreflect.Message {
mi := &file_common_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Cpus.ProtoReflect.Descriptor instead.
func (*Cpus) Descriptor() ([]byte, []int) {
return file_common_proto_rawDescGZIP(), []int{2}
}
type Sockets struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
}
func (x *Sockets) Reset() {
*x = Sockets{}
if protoimpl.UnsafeEnabled {
mi := &file_common_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Sockets) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Sockets) ProtoMessage() {}
func (x *Sockets) ProtoReflect() protoreflect.Message {
mi := &file_common_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Sockets.ProtoReflect.Descriptor instead.
func (*Sockets) Descriptor() ([]byte, []int) {
return file_common_proto_rawDescGZIP(), []int{3}
}
type Cores struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
}
func (x *Cores) Reset() {
*x = Cores{}
if protoimpl.UnsafeEnabled {
mi := &file_common_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Cores) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Cores) ProtoMessage() {}
func (x *Cores) ProtoReflect() protoreflect.Message {
mi := &file_common_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Cores.ProtoReflect.Descriptor instead.
func (*Cores) Descriptor() ([]byte, []int) {
return file_common_proto_rawDescGZIP(), []int{4}
}
type AllocatedNodes struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Memory uint32 `protobuf:"varint,1,opt,name=memory,proto3" json:"memory,omitempty"`
Cpus *Cpus `protobuf:"bytes,2,opt,name=cpus,proto3" json:"cpus,omitempty"`
Sockets *Sockets `protobuf:"bytes,3,opt,name=sockets,proto3" json:"sockets,omitempty"`
Cores *Cores `protobuf:"bytes,4,opt,name=cores,proto3" json:"cores,omitempty"`
}
func (x *AllocatedNodes) Reset() {
*x = AllocatedNodes{}
if protoimpl.UnsafeEnabled {
mi := &file_common_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *AllocatedNodes) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AllocatedNodes) ProtoMessage() {}
func (x *AllocatedNodes) ProtoReflect() protoreflect.Message {
mi := &file_common_proto_msgTypes[5]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use AllocatedNodes.ProtoReflect.Descriptor instead.
func (*AllocatedNodes) Descriptor() ([]byte, []int) {
return file_common_proto_rawDescGZIP(), []int{5}
}
func (x *AllocatedNodes) GetMemory() uint32 {
if x != nil {
return x.Memory
}
return 0
}
func (x *AllocatedNodes) GetCpus() *Cpus {
if x != nil {
return x.Cpus
}
return nil
}
func (x *AllocatedNodes) GetSockets() *Sockets {
if x != nil {
return x.Sockets
}
return nil
}
func (x *AllocatedNodes) GetCores() *Cores {
if x != nil {
return x.Cores
}
return nil
}
type Meta struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Plugin *Meta_Plugin `protobuf:"bytes,1,opt,name=plugin,proto3" json:"plugin,omitempty"`
Slurm *Meta_Slurm `protobuf:"bytes,2,opt,name=slurm,proto3" json:"slurm,omitempty"`
}
func (x *Meta) Reset() {
*x = Meta{}
if protoimpl.UnsafeEnabled {
mi := &file_common_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Meta) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Meta) ProtoMessage() {}
func (x *Meta) ProtoReflect() protoreflect.Message {
mi := &file_common_proto_msgTypes[6]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Meta.ProtoReflect.Descriptor instead.
func (*Meta) Descriptor() ([]byte, []int) {
return file_common_proto_rawDescGZIP(), []int{6}
}
func (x *Meta) GetPlugin() *Meta_Plugin {
if x != nil {
return x.Plugin
}
return nil
}
func (x *Meta) GetSlurm() *Meta_Slurm {
if x != nil {
return x.Slurm
}
return nil
}
type Meta_Plugin struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
}
func (x *Meta_Plugin) Reset() {
*x = Meta_Plugin{}
if protoimpl.UnsafeEnabled {
mi := &file_common_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Meta_Plugin) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Meta_Plugin) ProtoMessage() {}
func (x *Meta_Plugin) ProtoReflect() protoreflect.Message {
mi := &file_common_proto_msgTypes[7]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Meta_Plugin.ProtoReflect.Descriptor instead.
func (*Meta_Plugin) Descriptor() ([]byte, []int) {
return file_common_proto_rawDescGZIP(), []int{6, 0}
}
func (x *Meta_Plugin) GetType() string {
if x != nil {
return x.Type
}
return ""
}
func (x *Meta_Plugin) GetName() string {
if x != nil {
return x.Name
}
return ""
}
type Meta_Version struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Major uint32 `protobuf:"varint,1,opt,name=major,proto3" json:"major,omitempty"`
Micro uint32 `protobuf:"varint,2,opt,name=micro,proto3" json:"micro,omitempty"`
Minor uint32 `protobuf:"varint,3,opt,name=minor,proto3" json:"minor,omitempty"`
}
func (x *Meta_Version) Reset() {
*x = Meta_Version{}
if protoimpl.UnsafeEnabled {
mi := &file_common_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Meta_Version) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Meta_Version) ProtoMessage() {}
func (x *Meta_Version) ProtoReflect() protoreflect.Message {
mi := &file_common_proto_msgTypes[8]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Meta_Version.ProtoReflect.Descriptor instead.
func (*Meta_Version) Descriptor() ([]byte, []int) {
return file_common_proto_rawDescGZIP(), []int{6, 1}
}
func (x *Meta_Version) GetMajor() uint32 {
if x != nil {
return x.Major
}
return 0
}
func (x *Meta_Version) GetMicro() uint32 {
if x != nil {
return x.Micro
}
return 0
}
func (x *Meta_Version) GetMinor() uint32 {
if x != nil {
return x.Minor
}
return 0
}
type Meta_Slurm struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Version *Meta_Version `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
Release string `protobuf:"bytes,2,opt,name=release,proto3" json:"release,omitempty"`
}
func (x *Meta_Slurm) Reset() {
*x = Meta_Slurm{}
if protoimpl.UnsafeEnabled {
mi := &file_common_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Meta_Slurm) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Meta_Slurm) ProtoMessage() {}
func (x *Meta_Slurm) ProtoReflect() protoreflect.Message {
mi := &file_common_proto_msgTypes[9]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Meta_Slurm.ProtoReflect.Descriptor instead.
func (*Meta_Slurm) Descriptor() ([]byte, []int) {
return file_common_proto_rawDescGZIP(), []int{6, 2}
}
func (x *Meta_Slurm) GetVersion() *Meta_Version {
if x != nil {
return x.Version
}
return nil
}
func (x *Meta_Slurm) GetRelease() string {
if x != nil {
return x.Release
}
return ""
}
var File_common_proto protoreflect.FileDescriptor
var file_common_proto_rawDesc = []byte{
0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05,
0x73, 0x6c, 0x75, 0x72, 0x6d, 0x22, 0x33, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x14,
0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65,
0x72, 0x72, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6e, 0x6f, 0x18, 0x02, 0x20,
0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6e, 0x6f, 0x22, 0x0d, 0x0a, 0x0b, 0x45, 0x6e,
0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x06, 0x0a, 0x04, 0x43, 0x70, 0x75,
0x73, 0x22, 0x09, 0x0a, 0x07, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x22, 0x07, 0x0a, 0x05,
0x43, 0x6f, 0x72, 0x65, 0x73, 0x22, 0x98, 0x01, 0x0a, 0x0f, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61,
0x74, 0x65, 0x64, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x6d,
0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6d, 0x65, 0x6d, 0x6f, 0x72,
0x79, 0x12, 0x1f, 0x0a, 0x04, 0x63, 0x70, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x0b, 0x2e, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x2e, 0x43, 0x70, 0x75, 0x73, 0x52, 0x04, 0x63, 0x70,
0x75, 0x73, 0x12, 0x28, 0x0a, 0x07, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x03, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x2e, 0x53, 0x6f, 0x63, 0x6b,
0x65, 0x74, 0x73, 0x52, 0x07, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x22, 0x0a, 0x05,
0x63, 0x6f, 0x72, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x73, 0x6c,
0x75, 0x72, 0x6d, 0x2e, 0x43, 0x6f, 0x72, 0x65, 0x73, 0x52, 0x05, 0x63, 0x6f, 0x72, 0x65, 0x73,
0x22, 0xac, 0x02, 0x0a, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x12, 0x2a, 0x0a, 0x06, 0x70, 0x6c, 0x75,
0x67, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x6c, 0x75, 0x72,
0x6d, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x52, 0x06, 0x70,
0x6c, 0x75, 0x67, 0x69, 0x6e, 0x12, 0x27, 0x0a, 0x05, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x18, 0x02,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x2e, 0x6d, 0x65, 0x74,
0x61, 0x2e, 0x53, 0x6c, 0x75, 0x72, 0x6d, 0x52, 0x05, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x1a, 0x30,
0x0a, 0x06, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65,
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04,
0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65,
0x1a, 0x4b, 0x0a, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x6d,
0x61, 0x6a, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6d, 0x61, 0x6a, 0x6f,
0x72, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d,
0x52, 0x05, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x69, 0x6e, 0x6f, 0x72,
0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6d, 0x69, 0x6e, 0x6f, 0x72, 0x1a, 0x50, 0x0a,
0x05, 0x53, 0x6c, 0x75, 0x72, 0x6d, 0x12, 0x2d, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f,
0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x2e,
0x6d, 0x65, 0x74, 0x61, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x76, 0x65,
0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65,
0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x42,
0x08, 0x5a, 0x06, 0x2f, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x33,
}
var (
file_common_proto_rawDescOnce sync.Once
file_common_proto_rawDescData = file_common_proto_rawDesc
)
func file_common_proto_rawDescGZIP() []byte {
file_common_proto_rawDescOnce.Do(func() {
file_common_proto_rawDescData = protoimpl.X.CompressGZIP(file_common_proto_rawDescData)
})
return file_common_proto_rawDescData
}
var file_common_proto_msgTypes = make([]protoimpl.MessageInfo, 10)
var file_common_proto_goTypes = []interface{}{
(*Error)(nil), // 0: slurm.error
(*Environment)(nil), // 1: slurm.Environment
(*Cpus)(nil), // 2: slurm.Cpus
(*Sockets)(nil), // 3: slurm.Sockets
(*Cores)(nil), // 4: slurm.Cores
(*AllocatedNodes)(nil), // 5: slurm.Allocated_nodes
(*Meta)(nil), // 6: slurm.meta
(*Meta_Plugin)(nil), // 7: slurm.meta.Plugin
(*Meta_Version)(nil), // 8: slurm.meta.Version
(*Meta_Slurm)(nil), // 9: slurm.meta.Slurm
}
var file_common_proto_depIdxs = []int32{
2, // 0: slurm.Allocated_nodes.cpus:type_name -> slurm.Cpus
3, // 1: slurm.Allocated_nodes.sockets:type_name -> slurm.Sockets
4, // 2: slurm.Allocated_nodes.cores:type_name -> slurm.Cores
7, // 3: slurm.meta.plugin:type_name -> slurm.meta.Plugin
9, // 4: slurm.meta.slurm:type_name -> slurm.meta.Slurm
8, // 5: slurm.meta.Slurm.version:type_name -> slurm.meta.Version
6, // [6:6] is the sub-list for method output_type
6, // [6:6] is the sub-list for method input_type
6, // [6:6] is the sub-list for extension type_name
6, // [6:6] is the sub-list for extension extendee
0, // [0:6] is the sub-list for field type_name
}
func init() { file_common_proto_init() }
func file_common_proto_init() {
if File_common_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_common_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Error); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_common_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Environment); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_common_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Cpus); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_common_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Sockets); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_common_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Cores); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_common_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*AllocatedNodes); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_common_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Meta); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_common_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Meta_Plugin); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_common_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Meta_Version); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_common_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Meta_Slurm); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_common_proto_rawDesc,
NumEnums: 0,
NumMessages: 10,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_common_proto_goTypes,
DependencyIndexes: file_common_proto_depIdxs,
MessageInfos: file_common_proto_msgTypes,
}.Build()
File_common_proto = out.File
file_common_proto_rawDesc = nil
file_common_proto_goTypes = nil
file_common_proto_depIdxs = nil
}

5096
slurm/configuration.pb.go Normal file

File diff suppressed because it is too large Load Diff

1067
slurm/diagnostics.pb.go Normal file

File diff suppressed because it is too large Load Diff

4022
slurm/job.pb.go Normal file

File diff suppressed because it is too large Load Diff

480
slurm/node.pb.go Normal file
View File

@ -0,0 +1,480 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.31.0
// protoc v3.19.4
// source: node.proto
package slurm
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type Node struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Architecture string `protobuf:"bytes,1,opt,name=architecture,proto3" json:"architecture,omitempty"`
BurstbufferNetworkAddress string `protobuf:"bytes,2,opt,name=burstbuffer_network_address,json=burstbufferNetworkAddress,proto3" json:"burstbuffer_network_address,omitempty"`
Boards uint32 `protobuf:"varint,3,opt,name=boards,proto3" json:"boards,omitempty"`
BootTime uint32 `protobuf:"varint,4,opt,name=boot_time,json=bootTime,proto3" json:"boot_time,omitempty"`
Comment string `protobuf:"bytes,5,opt,name=comment,proto3" json:"comment,omitempty"`
Cores uint32 `protobuf:"varint,6,opt,name=cores,proto3" json:"cores,omitempty"`
CpuBinding uint32 `protobuf:"varint,7,opt,name=cpu_binding,json=cpuBinding,proto3" json:"cpu_binding,omitempty"`
CpuLoad uint32 `protobuf:"varint,8,opt,name=cpu_load,json=cpuLoad,proto3" json:"cpu_load,omitempty"`
FreeMemory uint32 `protobuf:"varint,9,opt,name=free_memory,json=freeMemory,proto3" json:"free_memory,omitempty"`
Cpus uint32 `protobuf:"varint,10,opt,name=cpus,proto3" json:"cpus,omitempty"`
Features string `protobuf:"bytes,11,opt,name=features,proto3" json:"features,omitempty"`
ActiveFeatures string `protobuf:"bytes,12,opt,name=active_features,json=activeFeatures,proto3" json:"active_features,omitempty"`
Gres string `protobuf:"bytes,13,opt,name=gres,proto3" json:"gres,omitempty"`
GresDrained string `protobuf:"bytes,14,opt,name=gres_drained,json=gresDrained,proto3" json:"gres_drained,omitempty"`
GresUsed string `protobuf:"bytes,15,opt,name=gres_used,json=gresUsed,proto3" json:"gres_used,omitempty"`
McsLabel string `protobuf:"bytes,16,opt,name=mcs_label,json=mcsLabel,proto3" json:"mcs_label,omitempty"`
Name string `protobuf:"bytes,17,opt,name=name,proto3" json:"name,omitempty"`
NextStateAfterReboot string `protobuf:"bytes,18,opt,name=next_state_after_reboot,json=nextStateAfterReboot,proto3" json:"next_state_after_reboot,omitempty"`
Address string `protobuf:"bytes,19,opt,name=address,proto3" json:"address,omitempty"`
Hostname string `protobuf:"bytes,20,opt,name=hostname,proto3" json:"hostname,omitempty"`
State string `protobuf:"bytes,21,opt,name=state,proto3" json:"state,omitempty"`
OperatingSystem string `protobuf:"bytes,22,opt,name=operating_system,json=operatingSystem,proto3" json:"operating_system,omitempty"`
Owner string `protobuf:"bytes,23,opt,name=owner,proto3" json:"owner,omitempty"`
Port uint32 `protobuf:"varint,24,opt,name=port,proto3" json:"port,omitempty"`
RealMemory uint32 `protobuf:"varint,25,opt,name=real_memory,json=realMemory,proto3" json:"real_memory,omitempty"`
Reason string `protobuf:"bytes,26,opt,name=reason,proto3" json:"reason,omitempty"`
ReasonChangedAt uint32 `protobuf:"varint,27,opt,name=reason_changed_at,json=reasonChangedAt,proto3" json:"reason_changed_at,omitempty"`
ReasonSetByUser string `protobuf:"bytes,28,opt,name=reason_set_by_user,json=reasonSetByUser,proto3" json:"reason_set_by_user,omitempty"`
SlurmdStartTime uint32 `protobuf:"varint,29,opt,name=slurmd_start_time,json=slurmdStartTime,proto3" json:"slurmd_start_time,omitempty"`
Sockets uint32 `protobuf:"varint,30,opt,name=sockets,proto3" json:"sockets,omitempty"`
Threads uint32 `protobuf:"varint,31,opt,name=threads,proto3" json:"threads,omitempty"`
TemporaryDisk uint32 `protobuf:"varint,32,opt,name=temporary_disk,json=temporaryDisk,proto3" json:"temporary_disk,omitempty"`
Weight uint32 `protobuf:"varint,33,opt,name=weight,proto3" json:"weight,omitempty"`
Tres string `protobuf:"bytes,34,opt,name=tres,proto3" json:"tres,omitempty"`
SlurmdVersion string `protobuf:"bytes,35,opt,name=slurmd_version,json=slurmdVersion,proto3" json:"slurmd_version,omitempty"`
}
func (x *Node) Reset() {
*x = Node{}
if protoimpl.UnsafeEnabled {
mi := &file_node_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Node) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Node) ProtoMessage() {}
func (x *Node) ProtoReflect() protoreflect.Message {
mi := &file_node_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Node.ProtoReflect.Descriptor instead.
func (*Node) Descriptor() ([]byte, []int) {
return file_node_proto_rawDescGZIP(), []int{0}
}
func (x *Node) GetArchitecture() string {
if x != nil {
return x.Architecture
}
return ""
}
func (x *Node) GetBurstbufferNetworkAddress() string {
if x != nil {
return x.BurstbufferNetworkAddress
}
return ""
}
func (x *Node) GetBoards() uint32 {
if x != nil {
return x.Boards
}
return 0
}
func (x *Node) GetBootTime() uint32 {
if x != nil {
return x.BootTime
}
return 0
}
func (x *Node) GetComment() string {
if x != nil {
return x.Comment
}
return ""
}
func (x *Node) GetCores() uint32 {
if x != nil {
return x.Cores
}
return 0
}
func (x *Node) GetCpuBinding() uint32 {
if x != nil {
return x.CpuBinding
}
return 0
}
func (x *Node) GetCpuLoad() uint32 {
if x != nil {
return x.CpuLoad
}
return 0
}
func (x *Node) GetFreeMemory() uint32 {
if x != nil {
return x.FreeMemory
}
return 0
}
func (x *Node) GetCpus() uint32 {
if x != nil {
return x.Cpus
}
return 0
}
func (x *Node) GetFeatures() string {
if x != nil {
return x.Features
}
return ""
}
func (x *Node) GetActiveFeatures() string {
if x != nil {
return x.ActiveFeatures
}
return ""
}
func (x *Node) GetGres() string {
if x != nil {
return x.Gres
}
return ""
}
func (x *Node) GetGresDrained() string {
if x != nil {
return x.GresDrained
}
return ""
}
func (x *Node) GetGresUsed() string {
if x != nil {
return x.GresUsed
}
return ""
}
func (x *Node) GetMcsLabel() string {
if x != nil {
return x.McsLabel
}
return ""
}
func (x *Node) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *Node) GetNextStateAfterReboot() string {
if x != nil {
return x.NextStateAfterReboot
}
return ""
}
func (x *Node) GetAddress() string {
if x != nil {
return x.Address
}
return ""
}
func (x *Node) GetHostname() string {
if x != nil {
return x.Hostname
}
return ""
}
func (x *Node) GetState() string {
if x != nil {
return x.State
}
return ""
}
func (x *Node) GetOperatingSystem() string {
if x != nil {
return x.OperatingSystem
}
return ""
}
func (x *Node) GetOwner() string {
if x != nil {
return x.Owner
}
return ""
}
func (x *Node) GetPort() uint32 {
if x != nil {
return x.Port
}
return 0
}
func (x *Node) GetRealMemory() uint32 {
if x != nil {
return x.RealMemory
}
return 0
}
func (x *Node) GetReason() string {
if x != nil {
return x.Reason
}
return ""
}
func (x *Node) GetReasonChangedAt() uint32 {
if x != nil {
return x.ReasonChangedAt
}
return 0
}
func (x *Node) GetReasonSetByUser() string {
if x != nil {
return x.ReasonSetByUser
}
return ""
}
func (x *Node) GetSlurmdStartTime() uint32 {
if x != nil {
return x.SlurmdStartTime
}
return 0
}
func (x *Node) GetSockets() uint32 {
if x != nil {
return x.Sockets
}
return 0
}
func (x *Node) GetThreads() uint32 {
if x != nil {
return x.Threads
}
return 0
}
func (x *Node) GetTemporaryDisk() uint32 {
if x != nil {
return x.TemporaryDisk
}
return 0
}
func (x *Node) GetWeight() uint32 {
if x != nil {
return x.Weight
}
return 0
}
func (x *Node) GetTres() string {
if x != nil {
return x.Tres
}
return ""
}
func (x *Node) GetSlurmdVersion() string {
if x != nil {
return x.SlurmdVersion
}
return ""
}
var File_node_proto protoreflect.FileDescriptor
var file_node_proto_rawDesc = []byte{
0x0a, 0x0a, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x73, 0x6c,
0x75, 0x72, 0x6d, 0x22, 0xce, 0x08, 0x0a, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x12, 0x22, 0x0a, 0x0c,
0x61, 0x72, 0x63, 0x68, 0x69, 0x74, 0x65, 0x63, 0x74, 0x75, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01,
0x28, 0x09, 0x52, 0x0c, 0x61, 0x72, 0x63, 0x68, 0x69, 0x74, 0x65, 0x63, 0x74, 0x75, 0x72, 0x65,
0x12, 0x3e, 0x0a, 0x1b, 0x62, 0x75, 0x72, 0x73, 0x74, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5f,
0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18,
0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x19, 0x62, 0x75, 0x72, 0x73, 0x74, 0x62, 0x75, 0x66, 0x66,
0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
0x12, 0x16, 0x0a, 0x06, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d,
0x52, 0x06, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x6f, 0x6f, 0x74,
0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x62, 0x6f, 0x6f,
0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74,
0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12,
0x14, 0x0a, 0x05, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05,
0x63, 0x6f, 0x72, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x70, 0x75, 0x5f, 0x62, 0x69, 0x6e,
0x64, 0x69, 0x6e, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x70, 0x75, 0x42,
0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x70, 0x75, 0x5f, 0x6c, 0x6f,
0x61, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x70, 0x75, 0x4c, 0x6f, 0x61,
0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x72, 0x65, 0x65, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79,
0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x66, 0x72, 0x65, 0x65, 0x4d, 0x65, 0x6d, 0x6f,
0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x70, 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d,
0x52, 0x04, 0x63, 0x70, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72,
0x65, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72,
0x65, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x66, 0x65, 0x61,
0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x74,
0x69, 0x76, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x67,
0x72, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x67, 0x72, 0x65, 0x73, 0x12,
0x21, 0x0a, 0x0c, 0x67, 0x72, 0x65, 0x73, 0x5f, 0x64, 0x72, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x18,
0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x67, 0x72, 0x65, 0x73, 0x44, 0x72, 0x61, 0x69, 0x6e,
0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x72, 0x65, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18,
0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x72, 0x65, 0x73, 0x55, 0x73, 0x65, 0x64, 0x12,
0x1b, 0x0a, 0x09, 0x6d, 0x63, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x10, 0x20, 0x01,
0x28, 0x09, 0x52, 0x08, 0x6d, 0x63, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x04,
0x6e, 0x61, 0x6d, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65,
0x12, 0x35, 0x0a, 0x17, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x61,
0x66, 0x74, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28,
0x09, 0x52, 0x14, 0x6e, 0x65, 0x78, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x41, 0x66, 0x74, 0x65,
0x72, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65,
0x73, 0x73, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73,
0x73, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x14, 0x20,
0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a,
0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74,
0x61, 0x74, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67,
0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6f,
0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x14,
0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f,
0x77, 0x6e, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x18, 0x20, 0x01,
0x28, 0x0d, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x61, 0x6c,
0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x72,
0x65, 0x61, 0x6c, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61,
0x73, 0x6f, 0x6e, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f,
0x6e, 0x12, 0x2a, 0x0a, 0x11, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e,
0x67, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x72, 0x65,
0x61, 0x73, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x41, 0x74, 0x12, 0x2b, 0x0a,
0x12, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x62, 0x79, 0x5f, 0x75,
0x73, 0x65, 0x72, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x65, 0x61, 0x73, 0x6f,
0x6e, 0x53, 0x65, 0x74, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x6c,
0x75, 0x72, 0x6d, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18,
0x1d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x64, 0x53, 0x74, 0x61,
0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74,
0x73, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x73,
0x12, 0x18, 0x0a, 0x07, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x18, 0x1f, 0x20, 0x01, 0x28,
0x0d, 0x52, 0x07, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x65,
0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x5f, 0x64, 0x69, 0x73, 0x6b, 0x18, 0x20, 0x20, 0x01,
0x28, 0x0d, 0x52, 0x0d, 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x44, 0x69, 0x73,
0x6b, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x21, 0x20, 0x01, 0x28,
0x0d, 0x52, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x72, 0x65,
0x73, 0x18, 0x22, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x72, 0x65, 0x73, 0x12, 0x25, 0x0a,
0x0e, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18,
0x23, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x64, 0x56, 0x65, 0x72,
0x73, 0x69, 0x6f, 0x6e, 0x42, 0x08, 0x5a, 0x06, 0x2f, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x62, 0x06,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_node_proto_rawDescOnce sync.Once
file_node_proto_rawDescData = file_node_proto_rawDesc
)
func file_node_proto_rawDescGZIP() []byte {
file_node_proto_rawDescOnce.Do(func() {
file_node_proto_rawDescData = protoimpl.X.CompressGZIP(file_node_proto_rawDescData)
})
return file_node_proto_rawDescData
}
var file_node_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
var file_node_proto_goTypes = []interface{}{
(*Node)(nil), // 0: slurm.node
}
var file_node_proto_depIdxs = []int32{
0, // [0:0] is the sub-list for method output_type
0, // [0:0] is the sub-list for method input_type
0, // [0:0] is the sub-list for extension type_name
0, // [0:0] is the sub-list for extension extendee
0, // [0:0] is the sub-list for field type_name
}
func init() { file_node_proto_init() }
func file_node_proto_init() {
if File_node_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_node_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Node); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_node_proto_rawDesc,
NumEnums: 0,
NumMessages: 1,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_node_proto_goTypes,
DependencyIndexes: file_node_proto_depIdxs,
MessageInfos: file_node_proto_msgTypes,
}.Build()
File_node_proto = out.File
file_node_proto_rawDesc = nil
file_node_proto_goTypes = nil
file_node_proto_depIdxs = nil
}

422
slurm/partition.pb.go Normal file
View File

@ -0,0 +1,422 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.31.0
// protoc v3.19.4
// source: partition.proto
package slurm
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type Partition struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Flags []string `protobuf:"bytes,1,rep,name=flags,proto3" json:"flags,omitempty"`
PreemptionMode []string `protobuf:"bytes,2,rep,name=preemption_mode,json=preemptionMode,proto3" json:"preemption_mode,omitempty"`
AllowedAllocationNodes string `protobuf:"bytes,3,opt,name=allowed_allocation_nodes,json=allowedAllocationNodes,proto3" json:"allowed_allocation_nodes,omitempty"`
AllowedAccounts string `protobuf:"bytes,4,opt,name=allowed_accounts,json=allowedAccounts,proto3" json:"allowed_accounts,omitempty"`
AllowedGroups string `protobuf:"bytes,5,opt,name=allowed_groups,json=allowedGroups,proto3" json:"allowed_groups,omitempty"`
AllowedQos string `protobuf:"bytes,6,opt,name=allowed_qos,json=allowedQos,proto3" json:"allowed_qos,omitempty"`
Alternative string `protobuf:"bytes,7,opt,name=alternative,proto3" json:"alternative,omitempty"`
BillingWeights string `protobuf:"bytes,8,opt,name=billing_weights,json=billingWeights,proto3" json:"billing_weights,omitempty"`
DefaultMemoryPerCpu uint32 `protobuf:"varint,9,opt,name=default_memory_per_cpu,json=defaultMemoryPerCpu,proto3" json:"default_memory_per_cpu,omitempty"`
DefaultTimeLimit uint32 `protobuf:"varint,10,opt,name=default_time_limit,json=defaultTimeLimit,proto3" json:"default_time_limit,omitempty"`
DeniedAccounts string `protobuf:"bytes,11,opt,name=denied_accounts,json=deniedAccounts,proto3" json:"denied_accounts,omitempty"`
DeniedQos string `protobuf:"bytes,12,opt,name=denied_qos,json=deniedQos,proto3" json:"denied_qos,omitempty"`
PreemptionGraceTime uint32 `protobuf:"varint,13,opt,name=preemption_grace_time,json=preemptionGraceTime,proto3" json:"preemption_grace_time,omitempty"`
MaximumCpusPerNode uint32 `protobuf:"varint,14,opt,name=maximum_cpus_per_node,json=maximumCpusPerNode,proto3" json:"maximum_cpus_per_node,omitempty"`
MaximumMemoryPerNode uint32 `protobuf:"varint,15,opt,name=maximum_memory_per_node,json=maximumMemoryPerNode,proto3" json:"maximum_memory_per_node,omitempty"`
MaximumNodesPerJob uint32 `protobuf:"varint,16,opt,name=maximum_nodes_per_job,json=maximumNodesPerJob,proto3" json:"maximum_nodes_per_job,omitempty"`
MaxTimeLimit uint32 `protobuf:"varint,17,opt,name=max_time_limit,json=maxTimeLimit,proto3" json:"max_time_limit,omitempty"`
MinNodesPerJob uint32 `protobuf:"varint,18,opt,name=min_nodes_per_job,json=minNodesPerJob,proto3" json:"min_nodes_per_job,omitempty"`
Name string `protobuf:"bytes,19,opt,name=name,proto3" json:"name,omitempty"`
Nodes string `protobuf:"bytes,20,opt,name=nodes,proto3" json:"nodes,omitempty"`
OverTimeLimit uint32 `protobuf:"varint,21,opt,name=over_time_limit,json=overTimeLimit,proto3" json:"over_time_limit,omitempty"`
PriorityJobFactor uint32 `protobuf:"varint,22,opt,name=priority_job_factor,json=priorityJobFactor,proto3" json:"priority_job_factor,omitempty"`
PriorityTier uint32 `protobuf:"varint,23,opt,name=priority_tier,json=priorityTier,proto3" json:"priority_tier,omitempty"`
Qos string `protobuf:"bytes,24,opt,name=qos,proto3" json:"qos,omitempty"`
State string `protobuf:"bytes,25,opt,name=state,proto3" json:"state,omitempty"`
TotalCpus uint32 `protobuf:"varint,26,opt,name=total_cpus,json=totalCpus,proto3" json:"total_cpus,omitempty"`
TotalNodes uint32 `protobuf:"varint,27,opt,name=total_nodes,json=totalNodes,proto3" json:"total_nodes,omitempty"`
Tres string `protobuf:"bytes,28,opt,name=tres,proto3" json:"tres,omitempty"`
}
func (x *Partition) Reset() {
*x = Partition{}
if protoimpl.UnsafeEnabled {
mi := &file_partition_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Partition) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Partition) ProtoMessage() {}
func (x *Partition) ProtoReflect() protoreflect.Message {
mi := &file_partition_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Partition.ProtoReflect.Descriptor instead.
func (*Partition) Descriptor() ([]byte, []int) {
return file_partition_proto_rawDescGZIP(), []int{0}
}
func (x *Partition) GetFlags() []string {
if x != nil {
return x.Flags
}
return nil
}
func (x *Partition) GetPreemptionMode() []string {
if x != nil {
return x.PreemptionMode
}
return nil
}
func (x *Partition) GetAllowedAllocationNodes() string {
if x != nil {
return x.AllowedAllocationNodes
}
return ""
}
func (x *Partition) GetAllowedAccounts() string {
if x != nil {
return x.AllowedAccounts
}
return ""
}
func (x *Partition) GetAllowedGroups() string {
if x != nil {
return x.AllowedGroups
}
return ""
}
func (x *Partition) GetAllowedQos() string {
if x != nil {
return x.AllowedQos
}
return ""
}
func (x *Partition) GetAlternative() string {
if x != nil {
return x.Alternative
}
return ""
}
func (x *Partition) GetBillingWeights() string {
if x != nil {
return x.BillingWeights
}
return ""
}
func (x *Partition) GetDefaultMemoryPerCpu() uint32 {
if x != nil {
return x.DefaultMemoryPerCpu
}
return 0
}
func (x *Partition) GetDefaultTimeLimit() uint32 {
if x != nil {
return x.DefaultTimeLimit
}
return 0
}
func (x *Partition) GetDeniedAccounts() string {
if x != nil {
return x.DeniedAccounts
}
return ""
}
func (x *Partition) GetDeniedQos() string {
if x != nil {
return x.DeniedQos
}
return ""
}
func (x *Partition) GetPreemptionGraceTime() uint32 {
if x != nil {
return x.PreemptionGraceTime
}
return 0
}
func (x *Partition) GetMaximumCpusPerNode() uint32 {
if x != nil {
return x.MaximumCpusPerNode
}
return 0
}
func (x *Partition) GetMaximumMemoryPerNode() uint32 {
if x != nil {
return x.MaximumMemoryPerNode
}
return 0
}
func (x *Partition) GetMaximumNodesPerJob() uint32 {
if x != nil {
return x.MaximumNodesPerJob
}
return 0
}
func (x *Partition) GetMaxTimeLimit() uint32 {
if x != nil {
return x.MaxTimeLimit
}
return 0
}
func (x *Partition) GetMinNodesPerJob() uint32 {
if x != nil {
return x.MinNodesPerJob
}
return 0
}
func (x *Partition) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *Partition) GetNodes() string {
if x != nil {
return x.Nodes
}
return ""
}
func (x *Partition) GetOverTimeLimit() uint32 {
if x != nil {
return x.OverTimeLimit
}
return 0
}
func (x *Partition) GetPriorityJobFactor() uint32 {
if x != nil {
return x.PriorityJobFactor
}
return 0
}
func (x *Partition) GetPriorityTier() uint32 {
if x != nil {
return x.PriorityTier
}
return 0
}
func (x *Partition) GetQos() string {
if x != nil {
return x.Qos
}
return ""
}
func (x *Partition) GetState() string {
if x != nil {
return x.State
}
return ""
}
func (x *Partition) GetTotalCpus() uint32 {
if x != nil {
return x.TotalCpus
}
return 0
}
func (x *Partition) GetTotalNodes() uint32 {
if x != nil {
return x.TotalNodes
}
return 0
}
func (x *Partition) GetTres() string {
if x != nil {
return x.Tres
}
return ""
}
var File_partition_proto protoreflect.FileDescriptor
var file_partition_proto_rawDesc = []byte{
0x0a, 0x0f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x12, 0x05, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x22, 0xb2, 0x08, 0x0a, 0x09, 0x70, 0x61, 0x72,
0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18,
0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x27, 0x0a, 0x0f,
0x70, 0x72, 0x65, 0x65, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18,
0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x72, 0x65, 0x65, 0x6d, 0x70, 0x74, 0x69, 0x6f,
0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x38, 0x0a, 0x18, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64,
0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x64, 0x65,
0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64,
0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12,
0x29, 0x0a, 0x10, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75,
0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x6c, 0x6c, 0x6f, 0x77,
0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x6c,
0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x05, 0x20, 0x01,
0x28, 0x09, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70,
0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x71, 0x6f, 0x73,
0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x51,
0x6f, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x6c, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x69, 0x76,
0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x6c, 0x74, 0x65, 0x72, 0x6e, 0x61,
0x74, 0x69, 0x76, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f,
0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x62,
0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x73, 0x12, 0x33, 0x0a,
0x16, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f,
0x70, 0x65, 0x72, 0x5f, 0x63, 0x70, 0x75, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x64,
0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x50, 0x65, 0x72, 0x43,
0x70, 0x75, 0x12, 0x2c, 0x0a, 0x12, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x74, 0x69,
0x6d, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10,
0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74,
0x12, 0x27, 0x0a, 0x0f, 0x64, 0x65, 0x6e, 0x69, 0x65, 0x64, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75,
0x6e, 0x74, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x64, 0x65, 0x6e, 0x69, 0x65,
0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x65, 0x6e,
0x69, 0x65, 0x64, 0x5f, 0x71, 0x6f, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64,
0x65, 0x6e, 0x69, 0x65, 0x64, 0x51, 0x6f, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x70, 0x72, 0x65, 0x65,
0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x67, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x74, 0x69, 0x6d,
0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x70, 0x72, 0x65, 0x65, 0x6d, 0x70, 0x74,
0x69, 0x6f, 0x6e, 0x47, 0x72, 0x61, 0x63, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x31, 0x0a, 0x15,
0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x63, 0x70, 0x75, 0x73, 0x5f, 0x70, 0x65, 0x72,
0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x6d, 0x61, 0x78,
0x69, 0x6d, 0x75, 0x6d, 0x43, 0x70, 0x75, 0x73, 0x50, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x12,
0x35, 0x0a, 0x17, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x72,
0x79, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d,
0x52, 0x14, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x50,
0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x31, 0x0a, 0x15, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75,
0x6d, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6a, 0x6f, 0x62, 0x18,
0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x4e, 0x6f,
0x64, 0x65, 0x73, 0x50, 0x65, 0x72, 0x4a, 0x6f, 0x62, 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x61, 0x78,
0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28,
0x0d, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x54, 0x69, 0x6d, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12,
0x29, 0x0a, 0x11, 0x6d, 0x69, 0x6e, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x5f, 0x70, 0x65, 0x72,
0x5f, 0x6a, 0x6f, 0x62, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6d, 0x69, 0x6e, 0x4e,
0x6f, 0x64, 0x65, 0x73, 0x50, 0x65, 0x72, 0x4a, 0x6f, 0x62, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,
0x6d, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14,
0x0a, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6e,
0x6f, 0x64, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6f, 0x76, 0x65, 0x72, 0x5f, 0x74, 0x69, 0x6d,
0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6f,
0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x2e, 0x0a, 0x13,
0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x66, 0x61, 0x63,
0x74, 0x6f, 0x72, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x70, 0x72, 0x69, 0x6f, 0x72,
0x69, 0x74, 0x79, 0x4a, 0x6f, 0x62, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x23, 0x0a, 0x0d,
0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x69, 0x65, 0x72, 0x18, 0x17, 0x20,
0x01, 0x28, 0x0d, 0x52, 0x0c, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x54, 0x69, 0x65,
0x72, 0x12, 0x10, 0x0a, 0x03, 0x71, 0x6f, 0x73, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
0x71, 0x6f, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x19, 0x20, 0x01,
0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x6f, 0x74,
0x61, 0x6c, 0x5f, 0x63, 0x70, 0x75, 0x73, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x74,
0x6f, 0x74, 0x61, 0x6c, 0x43, 0x70, 0x75, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61,
0x6c, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x74,
0x6f, 0x74, 0x61, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x72, 0x65,
0x73, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x72, 0x65, 0x73, 0x42, 0x08, 0x5a,
0x06, 0x2f, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_partition_proto_rawDescOnce sync.Once
file_partition_proto_rawDescData = file_partition_proto_rawDesc
)
func file_partition_proto_rawDescGZIP() []byte {
file_partition_proto_rawDescOnce.Do(func() {
file_partition_proto_rawDescData = protoimpl.X.CompressGZIP(file_partition_proto_rawDescData)
})
return file_partition_proto_rawDescData
}
var file_partition_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
var file_partition_proto_goTypes = []interface{}{
(*Partition)(nil), // 0: slurm.partition
}
var file_partition_proto_depIdxs = []int32{
0, // [0:0] is the sub-list for method output_type
0, // [0:0] is the sub-list for method input_type
0, // [0:0] is the sub-list for extension type_name
0, // [0:0] is the sub-list for extension extendee
0, // [0:0] is the sub-list for field type_name
}
func init() { file_partition_proto_init() }
func file_partition_proto_init() {
if File_partition_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_partition_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Partition); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_partition_proto_rawDesc,
NumEnums: 0,
NumMessages: 1,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_partition_proto_goTypes,
DependencyIndexes: file_partition_proto_depIdxs,
MessageInfos: file_partition_proto_msgTypes,
}.Build()
File_partition_proto = out.File
file_partition_proto_rawDesc = nil
file_partition_proto_goTypes = nil
file_partition_proto_depIdxs = nil
}

169
slurm/ping.pb.go Normal file
View File

@ -0,0 +1,169 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.31.0
// protoc v3.19.4
// source: ping.proto
package slurm
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type Ping struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Hostname string `protobuf:"bytes,1,opt,name=hostname,proto3" json:"hostname,omitempty"`
Ping string `protobuf:"bytes,2,opt,name=ping,proto3" json:"ping,omitempty"`
Status uint32 `protobuf:"varint,3,opt,name=status,proto3" json:"status,omitempty"`
Mode string `protobuf:"bytes,4,opt,name=mode,proto3" json:"mode,omitempty"`
}
func (x *Ping) Reset() {
*x = Ping{}
if protoimpl.UnsafeEnabled {
mi := &file_ping_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Ping) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Ping) ProtoMessage() {}
func (x *Ping) ProtoReflect() protoreflect.Message {
mi := &file_ping_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Ping.ProtoReflect.Descriptor instead.
func (*Ping) Descriptor() ([]byte, []int) {
return file_ping_proto_rawDescGZIP(), []int{0}
}
func (x *Ping) GetHostname() string {
if x != nil {
return x.Hostname
}
return ""
}
func (x *Ping) GetPing() string {
if x != nil {
return x.Ping
}
return ""
}
func (x *Ping) GetStatus() uint32 {
if x != nil {
return x.Status
}
return 0
}
func (x *Ping) GetMode() string {
if x != nil {
return x.Mode
}
return ""
}
var File_ping_proto protoreflect.FileDescriptor
var file_ping_proto_rawDesc = []byte{
0x0a, 0x0a, 0x70, 0x69, 0x6e, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x73, 0x6c,
0x75, 0x72, 0x6d, 0x22, 0x62, 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x68,
0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68,
0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x18,
0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x73,
0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x74, 0x61,
0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28,
0x09, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x08, 0x5a, 0x06, 0x2f, 0x73, 0x6c, 0x75, 0x72,
0x6d, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_ping_proto_rawDescOnce sync.Once
file_ping_proto_rawDescData = file_ping_proto_rawDesc
)
func file_ping_proto_rawDescGZIP() []byte {
file_ping_proto_rawDescOnce.Do(func() {
file_ping_proto_rawDescData = protoimpl.X.CompressGZIP(file_ping_proto_rawDescData)
})
return file_ping_proto_rawDescData
}
var file_ping_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
var file_ping_proto_goTypes = []interface{}{
(*Ping)(nil), // 0: slurm.ping
}
var file_ping_proto_depIdxs = []int32{
0, // [0:0] is the sub-list for method output_type
0, // [0:0] is the sub-list for method input_type
0, // [0:0] is the sub-list for extension type_name
0, // [0:0] is the sub-list for extension extendee
0, // [0:0] is the sub-list for field type_name
}
func init() { file_ping_proto_init() }
func file_ping_proto_init() {
if File_ping_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_ping_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Ping); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_ping_proto_rawDesc,
NumEnums: 0,
NumMessages: 1,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_ping_proto_goTypes,
DependencyIndexes: file_ping_proto_depIdxs,
MessageInfos: file_ping_proto_msgTypes,
}.Build()
File_ping_proto = out.File
file_ping_proto_rawDesc = nil
file_ping_proto_goTypes = nil
file_ping_proto_depIdxs = nil
}

2192
slurm/qos.pb.go Normal file

File diff suppressed because it is too large Load Diff

384
slurm/reservation.pb.go Normal file
View File

@ -0,0 +1,384 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.31.0
// protoc v3.19.4
// source: reservation.proto
package slurm
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type Reservation struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Accounts string `protobuf:"bytes,1,opt,name=accounts,proto3" json:"accounts,omitempty"`
BurstBuffer string `protobuf:"bytes,2,opt,name=burst_buffer,json=burstBuffer,proto3" json:"burst_buffer,omitempty"`
CoreCount uint32 `protobuf:"varint,3,opt,name=core_count,json=coreCount,proto3" json:"core_count,omitempty"`
CoreSpecCnt uint32 `protobuf:"varint,4,opt,name=core_spec_cnt,json=coreSpecCnt,proto3" json:"core_spec_cnt,omitempty"`
EndTime uint32 `protobuf:"varint,5,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
Features string `protobuf:"bytes,6,opt,name=features,proto3" json:"features,omitempty"`
Flags []string `protobuf:"bytes,7,rep,name=flags,proto3" json:"flags,omitempty"`
Groups string `protobuf:"bytes,8,opt,name=groups,proto3" json:"groups,omitempty"`
Licenses string `protobuf:"bytes,9,opt,name=licenses,proto3" json:"licenses,omitempty"`
MaxStartDelay uint32 `protobuf:"varint,10,opt,name=max_start_delay,json=maxStartDelay,proto3" json:"max_start_delay,omitempty"`
Name string `protobuf:"bytes,11,opt,name=name,proto3" json:"name,omitempty"`
NodeCount uint32 `protobuf:"varint,12,opt,name=node_count,json=nodeCount,proto3" json:"node_count,omitempty"`
NodeList string `protobuf:"bytes,13,opt,name=node_list,json=nodeList,proto3" json:"node_list,omitempty"`
Partition string `protobuf:"bytes,14,opt,name=partition,proto3" json:"partition,omitempty"`
PurgeCompleted *Reservation_PurgeCompleted `protobuf:"bytes,15,opt,name=purge_completed,json=purgeCompleted,proto3" json:"purge_completed,omitempty"`
StartTime uint32 `protobuf:"varint,16,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
Watts uint32 `protobuf:"varint,17,opt,name=watts,proto3" json:"watts,omitempty"`
Tres string `protobuf:"bytes,18,opt,name=tres,proto3" json:"tres,omitempty"`
Users string `protobuf:"bytes,19,opt,name=users,proto3" json:"users,omitempty"`
}
func (x *Reservation) Reset() {
*x = Reservation{}
if protoimpl.UnsafeEnabled {
mi := &file_reservation_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Reservation) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Reservation) ProtoMessage() {}
func (x *Reservation) ProtoReflect() protoreflect.Message {
mi := &file_reservation_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Reservation.ProtoReflect.Descriptor instead.
func (*Reservation) Descriptor() ([]byte, []int) {
return file_reservation_proto_rawDescGZIP(), []int{0}
}
func (x *Reservation) GetAccounts() string {
if x != nil {
return x.Accounts
}
return ""
}
func (x *Reservation) GetBurstBuffer() string {
if x != nil {
return x.BurstBuffer
}
return ""
}
func (x *Reservation) GetCoreCount() uint32 {
if x != nil {
return x.CoreCount
}
return 0
}
func (x *Reservation) GetCoreSpecCnt() uint32 {
if x != nil {
return x.CoreSpecCnt
}
return 0
}
func (x *Reservation) GetEndTime() uint32 {
if x != nil {
return x.EndTime
}
return 0
}
func (x *Reservation) GetFeatures() string {
if x != nil {
return x.Features
}
return ""
}
func (x *Reservation) GetFlags() []string {
if x != nil {
return x.Flags
}
return nil
}
func (x *Reservation) GetGroups() string {
if x != nil {
return x.Groups
}
return ""
}
func (x *Reservation) GetLicenses() string {
if x != nil {
return x.Licenses
}
return ""
}
func (x *Reservation) GetMaxStartDelay() uint32 {
if x != nil {
return x.MaxStartDelay
}
return 0
}
func (x *Reservation) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *Reservation) GetNodeCount() uint32 {
if x != nil {
return x.NodeCount
}
return 0
}
func (x *Reservation) GetNodeList() string {
if x != nil {
return x.NodeList
}
return ""
}
func (x *Reservation) GetPartition() string {
if x != nil {
return x.Partition
}
return ""
}
func (x *Reservation) GetPurgeCompleted() *Reservation_PurgeCompleted {
if x != nil {
return x.PurgeCompleted
}
return nil
}
func (x *Reservation) GetStartTime() uint32 {
if x != nil {
return x.StartTime
}
return 0
}
func (x *Reservation) GetWatts() uint32 {
if x != nil {
return x.Watts
}
return 0
}
func (x *Reservation) GetTres() string {
if x != nil {
return x.Tres
}
return ""
}
func (x *Reservation) GetUsers() string {
if x != nil {
return x.Users
}
return ""
}
type Reservation_PurgeCompleted struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Time uint32 `protobuf:"varint,1,opt,name=time,proto3" json:"time,omitempty"`
}
func (x *Reservation_PurgeCompleted) Reset() {
*x = Reservation_PurgeCompleted{}
if protoimpl.UnsafeEnabled {
mi := &file_reservation_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Reservation_PurgeCompleted) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Reservation_PurgeCompleted) ProtoMessage() {}
func (x *Reservation_PurgeCompleted) ProtoReflect() protoreflect.Message {
mi := &file_reservation_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Reservation_PurgeCompleted.ProtoReflect.Descriptor instead.
func (*Reservation_PurgeCompleted) Descriptor() ([]byte, []int) {
return file_reservation_proto_rawDescGZIP(), []int{0, 0}
}
func (x *Reservation_PurgeCompleted) GetTime() uint32 {
if x != nil {
return x.Time
}
return 0
}
var File_reservation_proto protoreflect.FileDescriptor
var file_reservation_proto_rawDesc = []byte{
0x0a, 0x11, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x12, 0x05, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x22, 0xf9, 0x04, 0x0a, 0x0b, 0x72,
0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x63,
0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x63,
0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x75, 0x72, 0x73, 0x74, 0x5f,
0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x62, 0x75,
0x72, 0x73, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6f, 0x72,
0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63,
0x6f, 0x72, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0d, 0x63, 0x6f, 0x72, 0x65,
0x5f, 0x73, 0x70, 0x65, 0x63, 0x5f, 0x63, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52,
0x0b, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x70, 0x65, 0x63, 0x43, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x08,
0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07,
0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75,
0x72, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75,
0x72, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03,
0x28, 0x09, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x72, 0x6f,
0x75, 0x70, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70,
0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x09, 0x20,
0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x73, 0x12, 0x26, 0x0a,
0x0f, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79,
0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6d, 0x61, 0x78, 0x53, 0x74, 0x61, 0x72, 0x74,
0x44, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20,
0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6e, 0x6f, 0x64,
0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6e,
0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65,
0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x6f, 0x64,
0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69,
0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74,
0x69, 0x6f, 0x6e, 0x12, 0x4b, 0x0a, 0x0f, 0x70, 0x75, 0x72, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x6d,
0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73,
0x6c, 0x75, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x2e, 0x50, 0x75, 0x72, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64,
0x52, 0x0e, 0x70, 0x75, 0x72, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64,
0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x10,
0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12,
0x14, 0x0a, 0x05, 0x77, 0x61, 0x74, 0x74, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05,
0x77, 0x61, 0x74, 0x74, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x72, 0x65, 0x73, 0x18, 0x12, 0x20,
0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x72, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x75, 0x73, 0x65,
0x72, 0x73, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x1a,
0x25, 0x0a, 0x0f, 0x50, 0x75, 0x72, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74,
0x65, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d,
0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x08, 0x5a, 0x06, 0x2f, 0x73, 0x6c, 0x75, 0x72, 0x6d,
0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_reservation_proto_rawDescOnce sync.Once
file_reservation_proto_rawDescData = file_reservation_proto_rawDesc
)
func file_reservation_proto_rawDescGZIP() []byte {
file_reservation_proto_rawDescOnce.Do(func() {
file_reservation_proto_rawDescData = protoimpl.X.CompressGZIP(file_reservation_proto_rawDescData)
})
return file_reservation_proto_rawDescData
}
var file_reservation_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
var file_reservation_proto_goTypes = []interface{}{
(*Reservation)(nil), // 0: slurm.reservation
(*Reservation_PurgeCompleted)(nil), // 1: slurm.reservation.Purge_completed
}
var file_reservation_proto_depIdxs = []int32{
1, // 0: slurm.reservation.purge_completed:type_name -> slurm.reservation.Purge_completed
1, // [1:1] is the sub-list for method output_type
1, // [1:1] is the sub-list for method input_type
1, // [1:1] is the sub-list for extension type_name
1, // [1:1] is the sub-list for extension extendee
0, // [0:1] is the sub-list for field type_name
}
func init() { file_reservation_proto_init() }
func file_reservation_proto_init() {
if File_reservation_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_reservation_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Reservation); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_reservation_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Reservation_PurgeCompleted); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_reservation_proto_rawDesc,
NumEnums: 0,
NumMessages: 2,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_reservation_proto_goTypes,
DependencyIndexes: file_reservation_proto_depIdxs,
MessageInfos: file_reservation_proto_msgTypes,
}.Build()
File_reservation_proto = out.File
file_reservation_proto_rawDesc = nil
file_reservation_proto_goTypes = nil
file_reservation_proto_depIdxs = nil
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

168
slurm/tres.pb.go Normal file
View File

@ -0,0 +1,168 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.31.0
// protoc v3.19.4
// source: tres.proto
package slurm
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type Tres struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
Id uint32 `protobuf:"varint,3,opt,name=id,proto3" json:"id,omitempty"`
Count uint32 `protobuf:"varint,4,opt,name=count,proto3" json:"count,omitempty"`
}
func (x *Tres) Reset() {
*x = Tres{}
if protoimpl.UnsafeEnabled {
mi := &file_tres_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Tres) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Tres) ProtoMessage() {}
func (x *Tres) ProtoReflect() protoreflect.Message {
mi := &file_tres_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Tres.ProtoReflect.Descriptor instead.
func (*Tres) Descriptor() ([]byte, []int) {
return file_tres_proto_rawDescGZIP(), []int{0}
}
func (x *Tres) GetType() string {
if x != nil {
return x.Type
}
return ""
}
func (x *Tres) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *Tres) GetId() uint32 {
if x != nil {
return x.Id
}
return 0
}
func (x *Tres) GetCount() uint32 {
if x != nil {
return x.Count
}
return 0
}
var File_tres_proto protoreflect.FileDescriptor
var file_tres_proto_rawDesc = []byte{
0x0a, 0x0a, 0x74, 0x72, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x73, 0x6c,
0x75, 0x72, 0x6d, 0x22, 0x54, 0x0a, 0x04, 0x74, 0x72, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74,
0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12,
0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e,
0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52,
0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01,
0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x08, 0x5a, 0x06, 0x2f, 0x73, 0x6c,
0x75, 0x72, 0x6d, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_tres_proto_rawDescOnce sync.Once
file_tres_proto_rawDescData = file_tres_proto_rawDesc
)
func file_tres_proto_rawDescGZIP() []byte {
file_tres_proto_rawDescOnce.Do(func() {
file_tres_proto_rawDescData = protoimpl.X.CompressGZIP(file_tres_proto_rawDescData)
})
return file_tres_proto_rawDescData
}
var file_tres_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
var file_tres_proto_goTypes = []interface{}{
(*Tres)(nil), // 0: slurm.tres
}
var file_tres_proto_depIdxs = []int32{
0, // [0:0] is the sub-list for method output_type
0, // [0:0] is the sub-list for method input_type
0, // [0:0] is the sub-list for extension type_name
0, // [0:0] is the sub-list for extension extendee
0, // [0:0] is the sub-list for field type_name
}
func init() { file_tres_proto_init() }
func file_tres_proto_init() {
if File_tres_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_tres_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Tres); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_tres_proto_rawDesc,
NumEnums: 0,
NumMessages: 1,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_tres_proto_goTypes,
DependencyIndexes: file_tres_proto_depIdxs,
MessageInfos: file_tres_proto_msgTypes,
}.Build()
File_tres_proto = out.File
file_tres_proto_rawDesc = nil
file_tres_proto_goTypes = nil
file_tres_proto_depIdxs = nil
}

489
slurm/user.pb.go Normal file
View File

@ -0,0 +1,489 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.31.0
// protoc v3.19.4
// source: user.proto
package slurm
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type User struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
AdministratorLevel string `protobuf:"bytes,1,opt,name=administrator_level,json=administratorLevel,proto3" json:"administrator_level,omitempty"`
Associations *User_Associations `protobuf:"bytes,2,opt,name=associations,proto3" json:"associations,omitempty"`
Coordinators []*User_Coordinators `protobuf:"bytes,3,rep,name=coordinators,proto3" json:"coordinators,omitempty"`
Default *User_Default `protobuf:"bytes,4,opt,name=default,proto3" json:"default,omitempty"`
Name string `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"`
}
func (x *User) Reset() {
*x = User{}
if protoimpl.UnsafeEnabled {
mi := &file_user_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *User) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*User) ProtoMessage() {}
func (x *User) ProtoReflect() protoreflect.Message {
mi := &file_user_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use User.ProtoReflect.Descriptor instead.
func (*User) Descriptor() ([]byte, []int) {
return file_user_proto_rawDescGZIP(), []int{0}
}
func (x *User) GetAdministratorLevel() string {
if x != nil {
return x.AdministratorLevel
}
return ""
}
func (x *User) GetAssociations() *User_Associations {
if x != nil {
return x.Associations
}
return nil
}
func (x *User) GetCoordinators() []*User_Coordinators {
if x != nil {
return x.Coordinators
}
return nil
}
func (x *User) GetDefault() *User_Default {
if x != nil {
return x.Default
}
return nil
}
func (x *User) GetName() string {
if x != nil {
return x.Name
}
return ""
}
type User_Root struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Account string `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"`
Cluster string `protobuf:"bytes,2,opt,name=cluster,proto3" json:"cluster,omitempty"`
Partition string `protobuf:"bytes,3,opt,name=partition,proto3" json:"partition,omitempty"`
User string `protobuf:"bytes,4,opt,name=user,proto3" json:"user,omitempty"`
}
func (x *User_Root) Reset() {
*x = User_Root{}
if protoimpl.UnsafeEnabled {
mi := &file_user_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *User_Root) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*User_Root) ProtoMessage() {}
func (x *User_Root) ProtoReflect() protoreflect.Message {
mi := &file_user_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use User_Root.ProtoReflect.Descriptor instead.
func (*User_Root) Descriptor() ([]byte, []int) {
return file_user_proto_rawDescGZIP(), []int{0, 0}
}
func (x *User_Root) GetAccount() string {
if x != nil {
return x.Account
}
return ""
}
func (x *User_Root) GetCluster() string {
if x != nil {
return x.Cluster
}
return ""
}
func (x *User_Root) GetPartition() string {
if x != nil {
return x.Partition
}
return ""
}
func (x *User_Root) GetUser() string {
if x != nil {
return x.User
}
return ""
}
type User_Associations struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Root *User_Associations `protobuf:"bytes,1,opt,name=root,proto3" json:"root,omitempty"`
}
func (x *User_Associations) Reset() {
*x = User_Associations{}
if protoimpl.UnsafeEnabled {
mi := &file_user_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *User_Associations) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*User_Associations) ProtoMessage() {}
func (x *User_Associations) ProtoReflect() protoreflect.Message {
mi := &file_user_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use User_Associations.ProtoReflect.Descriptor instead.
func (*User_Associations) Descriptor() ([]byte, []int) {
return file_user_proto_rawDescGZIP(), []int{0, 1}
}
func (x *User_Associations) GetRoot() *User_Associations {
if x != nil {
return x.Root
}
return nil
}
type User_Coordinators struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
Direct uint32 `protobuf:"varint,2,opt,name=direct,proto3" json:"direct,omitempty"`
}
func (x *User_Coordinators) Reset() {
*x = User_Coordinators{}
if protoimpl.UnsafeEnabled {
mi := &file_user_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *User_Coordinators) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*User_Coordinators) ProtoMessage() {}
func (x *User_Coordinators) ProtoReflect() protoreflect.Message {
mi := &file_user_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use User_Coordinators.ProtoReflect.Descriptor instead.
func (*User_Coordinators) Descriptor() ([]byte, []int) {
return file_user_proto_rawDescGZIP(), []int{0, 2}
}
func (x *User_Coordinators) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *User_Coordinators) GetDirect() uint32 {
if x != nil {
return x.Direct
}
return 0
}
type User_Default struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Account string `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"`
Wckey string `protobuf:"bytes,2,opt,name=wckey,proto3" json:"wckey,omitempty"`
}
func (x *User_Default) Reset() {
*x = User_Default{}
if protoimpl.UnsafeEnabled {
mi := &file_user_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *User_Default) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*User_Default) ProtoMessage() {}
func (x *User_Default) ProtoReflect() protoreflect.Message {
mi := &file_user_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use User_Default.ProtoReflect.Descriptor instead.
func (*User_Default) Descriptor() ([]byte, []int) {
return file_user_proto_rawDescGZIP(), []int{0, 3}
}
func (x *User_Default) GetAccount() string {
if x != nil {
return x.Account
}
return ""
}
func (x *User_Default) GetWckey() string {
if x != nil {
return x.Wckey
}
return ""
}
var File_user_proto protoreflect.FileDescriptor
var file_user_proto_rawDesc = []byte{
0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x73, 0x6c,
0x75, 0x72, 0x6d, 0x22, 0x99, 0x04, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x2f, 0x0a, 0x13,
0x61, 0x64, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x6c, 0x65,
0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x61, 0x64, 0x6d, 0x69, 0x6e,
0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x3c, 0x0a,
0x0c, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x2e, 0x75, 0x73, 0x65, 0x72,
0x2e, 0x41, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0c, 0x61,
0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3c, 0x0a, 0x0c, 0x63,
0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28,
0x0b, 0x32, 0x18, 0x2e, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43,
0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x0c, 0x63, 0x6f, 0x6f,
0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x2d, 0x0a, 0x07, 0x64, 0x65, 0x66,
0x61, 0x75, 0x6c, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x6c, 0x75,
0x72, 0x6d, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52,
0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x1a, 0x6c, 0x0a, 0x04,
0x52, 0x6f, 0x6f, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18,
0x0a, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x61, 0x72, 0x74,
0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x72,
0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x04,
0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x1a, 0x3c, 0x0a, 0x0c, 0x41, 0x73,
0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2c, 0x0a, 0x04, 0x72, 0x6f,
0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x6c, 0x75, 0x72, 0x6d,
0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x69, 0x6f,
0x6e, 0x73, 0x52, 0x04, 0x72, 0x6f, 0x6f, 0x74, 0x1a, 0x3a, 0x0a, 0x0c, 0x43, 0x6f, 0x6f, 0x72,
0x64, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06,
0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x64, 0x69,
0x72, 0x65, 0x63, 0x74, 0x1a, 0x39, 0x0a, 0x07, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12,
0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x63, 0x6b,
0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x77, 0x63, 0x6b, 0x65, 0x79, 0x42,
0x08, 0x5a, 0x06, 0x2f, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x33,
}
var (
file_user_proto_rawDescOnce sync.Once
file_user_proto_rawDescData = file_user_proto_rawDesc
)
func file_user_proto_rawDescGZIP() []byte {
file_user_proto_rawDescOnce.Do(func() {
file_user_proto_rawDescData = protoimpl.X.CompressGZIP(file_user_proto_rawDescData)
})
return file_user_proto_rawDescData
}
var file_user_proto_msgTypes = make([]protoimpl.MessageInfo, 5)
var file_user_proto_goTypes = []interface{}{
(*User)(nil), // 0: slurm.user
(*User_Root)(nil), // 1: slurm.user.Root
(*User_Associations)(nil), // 2: slurm.user.Associations
(*User_Coordinators)(nil), // 3: slurm.user.Coordinators
(*User_Default)(nil), // 4: slurm.user.Default
}
var file_user_proto_depIdxs = []int32{
2, // 0: slurm.user.associations:type_name -> slurm.user.Associations
3, // 1: slurm.user.coordinators:type_name -> slurm.user.Coordinators
4, // 2: slurm.user.default:type_name -> slurm.user.Default
2, // 3: slurm.user.Associations.root:type_name -> slurm.user.Associations
4, // [4:4] is the sub-list for method output_type
4, // [4:4] is the sub-list for method input_type
4, // [4:4] is the sub-list for extension type_name
4, // [4:4] is the sub-list for extension extendee
0, // [0:4] is the sub-list for field type_name
}
func init() { file_user_proto_init() }
func file_user_proto_init() {
if File_user_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_user_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*User); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_user_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*User_Root); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_user_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*User_Associations); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_user_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*User_Coordinators); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_user_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*User_Default); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_user_proto_rawDesc,
NumEnums: 0,
NumMessages: 5,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_user_proto_goTypes,
DependencyIndexes: file_user_proto_depIdxs,
MessageInfos: file_user_proto_msgTypes,
}.Build()
File_user_proto = out.File
file_user_proto_rawDesc = nil
file_user_proto_goTypes = nil
file_user_proto_depIdxs = nil
}

188
slurm/wckey.pb.go Normal file
View File

@ -0,0 +1,188 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.31.0
// protoc v3.19.4
// source: wckey.proto
package slurm
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type Wckey struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Accounts []string `protobuf:"bytes,1,rep,name=accounts,proto3" json:"accounts,omitempty"`
Cluster string `protobuf:"bytes,2,opt,name=cluster,proto3" json:"cluster,omitempty"`
Id uint32 `protobuf:"varint,3,opt,name=id,proto3" json:"id,omitempty"`
Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"`
User string `protobuf:"bytes,5,opt,name=user,proto3" json:"user,omitempty"`
Flags []string `protobuf:"bytes,6,rep,name=flags,proto3" json:"flags,omitempty"`
}
func (x *Wckey) Reset() {
*x = Wckey{}
if protoimpl.UnsafeEnabled {
mi := &file_wckey_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Wckey) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Wckey) ProtoMessage() {}
func (x *Wckey) ProtoReflect() protoreflect.Message {
mi := &file_wckey_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Wckey.ProtoReflect.Descriptor instead.
func (*Wckey) Descriptor() ([]byte, []int) {
return file_wckey_proto_rawDescGZIP(), []int{0}
}
func (x *Wckey) GetAccounts() []string {
if x != nil {
return x.Accounts
}
return nil
}
func (x *Wckey) GetCluster() string {
if x != nil {
return x.Cluster
}
return ""
}
func (x *Wckey) GetId() uint32 {
if x != nil {
return x.Id
}
return 0
}
func (x *Wckey) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *Wckey) GetUser() string {
if x != nil {
return x.User
}
return ""
}
func (x *Wckey) GetFlags() []string {
if x != nil {
return x.Flags
}
return nil
}
var File_wckey_proto protoreflect.FileDescriptor
var file_wckey_proto_rawDesc = []byte{
0x0a, 0x0b, 0x77, 0x63, 0x6b, 0x65, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x73,
0x6c, 0x75, 0x72, 0x6d, 0x22, 0x8b, 0x01, 0x0a, 0x05, 0x77, 0x63, 0x6b, 0x65, 0x79, 0x12, 0x1a,
0x0a, 0x08, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09,
0x52, 0x08, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6c,
0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6c, 0x75,
0x73, 0x74, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d,
0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01,
0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72,
0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05,
0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x66, 0x6c, 0x61,
0x67, 0x73, 0x42, 0x08, 0x5a, 0x06, 0x2f, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x62, 0x06, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x33,
}
var (
file_wckey_proto_rawDescOnce sync.Once
file_wckey_proto_rawDescData = file_wckey_proto_rawDesc
)
func file_wckey_proto_rawDescGZIP() []byte {
file_wckey_proto_rawDescOnce.Do(func() {
file_wckey_proto_rawDescData = protoimpl.X.CompressGZIP(file_wckey_proto_rawDescData)
})
return file_wckey_proto_rawDescData
}
var file_wckey_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
var file_wckey_proto_goTypes = []interface{}{
(*Wckey)(nil), // 0: slurm.wckey
}
var file_wckey_proto_depIdxs = []int32{
0, // [0:0] is the sub-list for method output_type
0, // [0:0] is the sub-list for method input_type
0, // [0:0] is the sub-list for extension type_name
0, // [0:0] is the sub-list for extension extendee
0, // [0:0] is the sub-list for field type_name
}
func init() { file_wckey_proto_init() }
func file_wckey_proto_init() {
if File_wckey_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_wckey_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Wckey); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_wckey_proto_rawDesc,
NumEnums: 0,
NumMessages: 1,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_wckey_proto_goTypes,
DependencyIndexes: file_wckey_proto_depIdxs,
MessageInfos: file_wckey_proto_msgTypes,
}.Build()
File_wckey_proto = out.File
file_wckey_proto_rawDesc = nil
file_wckey_proto_goTypes = nil
file_wckey_proto_depIdxs = nil
}

View File

@ -13,34 +13,132 @@ import (
)
type (
AllocatedNodes = slurm.AllocatedNodes
Cores = slurm.Cores
Cpus = slurm.Cpus
Environment = slurm.Environment
Error = slurm.Error
AddClusterReq = slurm.AddClusterReq
AddClusterResp = slurm.AddClusterResp
AddWckeyReq = slurm.AddWckeyReq
AddWckeyResp = slurm.AddWckeyResp
CancelJobReq = slurm.CancelJobReq
CancelJobResp = slurm.CancelJobResp
DeleteAccountReq = slurm.DeleteAccountReq
DeleteAccountResp = slurm.DeleteAccountResp
DeleteAssociationReq = slurm.DeleteAssociationReq
DeleteAssociationResp = slurm.DeleteAssociationResp
DeleteClusterReq = slurm.DeleteClusterReq
DeleteClusterResp = slurm.DeleteClusterResp
DeleteQosReq = slurm.DeleteQosReq
DeleteQosResp = slurm.DeleteQosResp
DeleteUserReq = slurm.DeleteUserReq
DeleteUserResp = slurm.DeleteUserResp
DeleteWckeyReq = slurm.DeleteWckeyReq
DeleteWckeyResp = slurm.DeleteWckeyResp
DumpConfigurationReq = slurm.DumpConfigurationReq
DumpConfigurationResp = slurm.DumpConfigurationResp
ErrorPing = slurm.ErrorPing
GetAccountReq = slurm.GetAccountReq
GetAccountResp = slurm.GetAccountResp
GetAssociationReq = slurm.GetAssociationReq
GetAssociationResp = slurm.GetAssociationResp
GetClusterReq = slurm.GetClusterReq
GetClusterResp = slurm.GetClusterResp
GetJobReq = slurm.GetJobReq
GetJobResp = slurm.GetJobResp
JobProperties = slurm.JobProperties
JobResources = slurm.JobResources
JobResponseProperties = slurm.JobResponseProperties
JobUpdate = slurm.JobUpdate
Jobs = slurm.Jobs
GetNodeReq = slurm.GetNodeReq
GetNodeResp = slurm.GetNodeResp
GetPartitionReq = slurm.GetPartitionReq
GetPartitionResp = slurm.GetPartitionResp
GetQosReq = slurm.GetQosReq
GetQosResp = slurm.GetQosResp
GetReservationReq = slurm.GetReservationReq
GetReservationResp = slurm.GetReservationResp
GetUserReq = slurm.GetUserReq
GetUserResp = slurm.GetUserResp
GetWckeyReq = slurm.GetWckeyReq
GetWckeyResp = slurm.GetWckeyResp
ListAccountReq = slurm.ListAccountReq
ListAccountResp = slurm.ListAccountResp
ListAssociationReq = slurm.ListAssociationReq
ListAssociationResp = slurm.ListAssociationResp
ListClusterReq = slurm.ListClusterReq
ListClusterResp = slurm.ListClusterResp
ListDbDiagnosticsReq = slurm.ListDbDiagnosticsReq
ListDbDiagnosticsResp = slurm.ListDbDiagnosticsResp
ListDiagnosticsReq = slurm.ListDiagnosticsReq
ListDiagnosticsResp = slurm.ListDiagnosticsResp
ListJobReq = slurm.ListJobReq
ListJobResp = slurm.ListJobResp
ListNodeReq = slurm.ListNodeReq
ListNodeResp = slurm.ListNodeResp
Node = slurm.Node
Sockets = slurm.Sockets
ListPartitionReq = slurm.ListPartitionReq
ListPartitionResp = slurm.ListPartitionResp
ListQosReq = slurm.ListQosReq
ListQosResp = slurm.ListQosResp
ListReservationReq = slurm.ListReservationReq
ListReservationResp = slurm.ListReservationResp
ListTresReq = slurm.ListTresReq
ListTresResp = slurm.ListTresResp
ListUserReq = slurm.ListUserReq
ListUserResp = slurm.ListUserResp
ListWckeyReq = slurm.ListWckeyReq
ListWckeyResp = slurm.ListWckeyResp
LoadConfigurationReq = slurm.LoadConfigurationReq
LoadConfigurationResp = slurm.LoadConfigurationResp
PingReq = slurm.PingReq
PingResp = slurm.PingResp
SetAssociationReq = slurm.SetAssociationReq
SetAssociationResp = slurm.SetAssociationResp
SetTresReq = slurm.SetTresReq
SetTresResp = slurm.SetTresResp
SubmitJobReq = slurm.SubmitJobReq
SubmitJobResp = slurm.SubmitJobResp
UpdateAccountReq = slurm.UpdateAccountReq
UpdateAccountResp = slurm.UpdateAccountResp
UpdateJobReq = slurm.UpdateJobReq
UpdateJobResp = slurm.UpdateJobResp
UpdateUserReq = slurm.UpdateUserReq
UpdateUserResp = slurm.UpdateUserResp
Slurm interface {
SubmitJob(ctx context.Context, in *SubmitJobReq, opts ...grpc.CallOption) (*SubmitJobResp, error)
Ping(ctx context.Context, in *PingReq, opts ...grpc.CallOption) (*PingResp, error)
ListJob(ctx context.Context, in *ListJobReq, opts ...grpc.CallOption) (*ListJobResp, error)
GetJob(ctx context.Context, in *ListJobReq, opts ...grpc.CallOption) (*ListJobResp, error)
GetJob(ctx context.Context, in *GetJobReq, opts ...grpc.CallOption) (*GetJobResp, error)
UpdateJob(ctx context.Context, in *UpdateJobReq, opts ...grpc.CallOption) (*UpdateJobResp, error)
CancelJob(ctx context.Context, in *CancelJobReq, opts ...grpc.CallOption) (*CancelJobResp, error)
SubmitJob(ctx context.Context, in *SubmitJobReq, opts ...grpc.CallOption) (*SubmitJobResp, error)
ListUser(ctx context.Context, in *ListUserReq, opts ...grpc.CallOption) (*ListUserResp, error)
GetUser(ctx context.Context, in *GetUserReq, opts ...grpc.CallOption) (*GetUserResp, error)
UpdateUser(ctx context.Context, in *UpdateUserReq, opts ...grpc.CallOption) (*UpdateUserResp, error)
DeleteUser(ctx context.Context, in *DeleteUserReq, opts ...grpc.CallOption) (*DeleteUserResp, error)
ListPartition(ctx context.Context, in *ListPartitionReq, opts ...grpc.CallOption) (*ListPartitionResp, error)
GetPartition(ctx context.Context, in *GetPartitionReq, opts ...grpc.CallOption) (*GetPartitionResp, error)
ListNode(ctx context.Context, in *ListNodeReq, opts ...grpc.CallOption) (*ListNodeResp, error)
GetNode(ctx context.Context, in *GetNodeReq, opts ...grpc.CallOption) (*GetNodeResp, error)
ListReservation(ctx context.Context, in *ListReservationReq, opts ...grpc.CallOption) (*ListReservationResp, error)
GetReservation(ctx context.Context, in *GetReservationReq, opts ...grpc.CallOption) (*GetReservationResp, error)
LoadConfiguration(ctx context.Context, in *LoadConfigurationReq, opts ...grpc.CallOption) (*LoadConfigurationResp, error)
DumpConfiguration(ctx context.Context, in *DumpConfigurationReq, opts ...grpc.CallOption) (*DumpConfigurationResp, error)
ListQos(ctx context.Context, in *ListQosReq, opts ...grpc.CallOption) (*ListQosResp, error)
GetQos(ctx context.Context, in *GetQosReq, opts ...grpc.CallOption) (*GetQosResp, error)
DeleteQos(ctx context.Context, in *DeleteQosReq, opts ...grpc.CallOption) (*DeleteQosResp, error)
ListTres(ctx context.Context, in *ListTresReq, opts ...grpc.CallOption) (*ListTresResp, error)
SetTres(ctx context.Context, in *SetTresReq, opts ...grpc.CallOption) (*SetTresResp, error)
ListAccount(ctx context.Context, in *ListAccountReq, opts ...grpc.CallOption) (*ListAccountResp, error)
GetAccount(ctx context.Context, in *GetAccountReq, opts ...grpc.CallOption) (*GetAccountResp, error)
UpdateAccount(ctx context.Context, in *UpdateAccountReq, opts ...grpc.CallOption) (*UpdateAccountResp, error)
DeleteAccount(ctx context.Context, in *DeleteAccountReq, opts ...grpc.CallOption) (*DeleteAccountResp, error)
ListCluster(ctx context.Context, in *ListClusterReq, opts ...grpc.CallOption) (*ListClusterResp, error)
GetCluster(ctx context.Context, in *GetClusterReq, opts ...grpc.CallOption) (*GetClusterResp, error)
AddCluster(ctx context.Context, in *AddClusterReq, opts ...grpc.CallOption) (*AddClusterResp, error)
DeleteCluster(ctx context.Context, in *DeleteClusterReq, opts ...grpc.CallOption) (*DeleteClusterResp, error)
ListWckey(ctx context.Context, in *ListWckeyReq, opts ...grpc.CallOption) (*ListWckeyResp, error)
GetWckey(ctx context.Context, in *GetWckeyReq, opts ...grpc.CallOption) (*GetWckeyResp, error)
AddWckey(ctx context.Context, in *AddWckeyReq, opts ...grpc.CallOption) (*AddWckeyResp, error)
DeleteWckey(ctx context.Context, in *DeleteWckeyReq, opts ...grpc.CallOption) (*DeleteWckeyResp, error)
ListAssociation(ctx context.Context, in *ListAssociationReq, opts ...grpc.CallOption) (*ListAssociationResp, error)
GetAssociation(ctx context.Context, in *GetAssociationReq, opts ...grpc.CallOption) (*GetAssociationResp, error)
SetAssociation(ctx context.Context, in *SetAssociationReq, opts ...grpc.CallOption) (*SetAssociationResp, error)
DeleteAssociation(ctx context.Context, in *DeleteAssociationReq, opts ...grpc.CallOption) (*DeleteAssociationResp, error)
GetDiagnostics(ctx context.Context, in *ListDiagnosticsReq, opts ...grpc.CallOption) (*ListDiagnosticsResp, error)
GetDbDiagnostics(ctx context.Context, in *ListDbDiagnosticsReq, opts ...grpc.CallOption) (*ListDbDiagnosticsResp, error)
}
defaultSlurm struct {
@ -54,9 +152,9 @@ func NewSlurm(cli zrpc.Client) Slurm {
}
}
func (m *defaultSlurm) SubmitJob(ctx context.Context, in *SubmitJobReq, opts ...grpc.CallOption) (*SubmitJobResp, error) {
func (m *defaultSlurm) Ping(ctx context.Context, in *PingReq, opts ...grpc.CallOption) (*PingResp, error) {
client := slurm.NewSlurmClient(m.cli.Conn())
return client.SubmitJob(ctx, in, opts...)
return client.Ping(ctx, in, opts...)
}
func (m *defaultSlurm) ListJob(ctx context.Context, in *ListJobReq, opts ...grpc.CallOption) (*ListJobResp, error) {
@ -64,12 +162,197 @@ func (m *defaultSlurm) ListJob(ctx context.Context, in *ListJobReq, opts ...grpc
return client.ListJob(ctx, in, opts...)
}
func (m *defaultSlurm) GetJob(ctx context.Context, in *ListJobReq, opts ...grpc.CallOption) (*ListJobResp, error) {
func (m *defaultSlurm) GetJob(ctx context.Context, in *GetJobReq, opts ...grpc.CallOption) (*GetJobResp, error) {
client := slurm.NewSlurmClient(m.cli.Conn())
return client.GetJob(ctx, in, opts...)
}
func (m *defaultSlurm) UpdateJob(ctx context.Context, in *UpdateJobReq, opts ...grpc.CallOption) (*UpdateJobResp, error) {
client := slurm.NewSlurmClient(m.cli.Conn())
return client.UpdateJob(ctx, in, opts...)
}
func (m *defaultSlurm) CancelJob(ctx context.Context, in *CancelJobReq, opts ...grpc.CallOption) (*CancelJobResp, error) {
client := slurm.NewSlurmClient(m.cli.Conn())
return client.CancelJob(ctx, in, opts...)
}
func (m *defaultSlurm) SubmitJob(ctx context.Context, in *SubmitJobReq, opts ...grpc.CallOption) (*SubmitJobResp, error) {
client := slurm.NewSlurmClient(m.cli.Conn())
return client.SubmitJob(ctx, in, opts...)
}
func (m *defaultSlurm) ListUser(ctx context.Context, in *ListUserReq, opts ...grpc.CallOption) (*ListUserResp, error) {
client := slurm.NewSlurmClient(m.cli.Conn())
return client.ListUser(ctx, in, opts...)
}
func (m *defaultSlurm) GetUser(ctx context.Context, in *GetUserReq, opts ...grpc.CallOption) (*GetUserResp, error) {
client := slurm.NewSlurmClient(m.cli.Conn())
return client.GetUser(ctx, in, opts...)
}
func (m *defaultSlurm) UpdateUser(ctx context.Context, in *UpdateUserReq, opts ...grpc.CallOption) (*UpdateUserResp, error) {
client := slurm.NewSlurmClient(m.cli.Conn())
return client.UpdateUser(ctx, in, opts...)
}
func (m *defaultSlurm) DeleteUser(ctx context.Context, in *DeleteUserReq, opts ...grpc.CallOption) (*DeleteUserResp, error) {
client := slurm.NewSlurmClient(m.cli.Conn())
return client.DeleteUser(ctx, in, opts...)
}
func (m *defaultSlurm) ListPartition(ctx context.Context, in *ListPartitionReq, opts ...grpc.CallOption) (*ListPartitionResp, error) {
client := slurm.NewSlurmClient(m.cli.Conn())
return client.ListPartition(ctx, in, opts...)
}
func (m *defaultSlurm) GetPartition(ctx context.Context, in *GetPartitionReq, opts ...grpc.CallOption) (*GetPartitionResp, error) {
client := slurm.NewSlurmClient(m.cli.Conn())
return client.GetPartition(ctx, in, opts...)
}
func (m *defaultSlurm) ListNode(ctx context.Context, in *ListNodeReq, opts ...grpc.CallOption) (*ListNodeResp, error) {
client := slurm.NewSlurmClient(m.cli.Conn())
return client.ListNode(ctx, in, opts...)
}
func (m *defaultSlurm) GetNode(ctx context.Context, in *GetNodeReq, opts ...grpc.CallOption) (*GetNodeResp, error) {
client := slurm.NewSlurmClient(m.cli.Conn())
return client.GetNode(ctx, in, opts...)
}
func (m *defaultSlurm) ListReservation(ctx context.Context, in *ListReservationReq, opts ...grpc.CallOption) (*ListReservationResp, error) {
client := slurm.NewSlurmClient(m.cli.Conn())
return client.ListReservation(ctx, in, opts...)
}
func (m *defaultSlurm) GetReservation(ctx context.Context, in *GetReservationReq, opts ...grpc.CallOption) (*GetReservationResp, error) {
client := slurm.NewSlurmClient(m.cli.Conn())
return client.GetReservation(ctx, in, opts...)
}
func (m *defaultSlurm) LoadConfiguration(ctx context.Context, in *LoadConfigurationReq, opts ...grpc.CallOption) (*LoadConfigurationResp, error) {
client := slurm.NewSlurmClient(m.cli.Conn())
return client.LoadConfiguration(ctx, in, opts...)
}
func (m *defaultSlurm) DumpConfiguration(ctx context.Context, in *DumpConfigurationReq, opts ...grpc.CallOption) (*DumpConfigurationResp, error) {
client := slurm.NewSlurmClient(m.cli.Conn())
return client.DumpConfiguration(ctx, in, opts...)
}
func (m *defaultSlurm) ListQos(ctx context.Context, in *ListQosReq, opts ...grpc.CallOption) (*ListQosResp, error) {
client := slurm.NewSlurmClient(m.cli.Conn())
return client.ListQos(ctx, in, opts...)
}
func (m *defaultSlurm) GetQos(ctx context.Context, in *GetQosReq, opts ...grpc.CallOption) (*GetQosResp, error) {
client := slurm.NewSlurmClient(m.cli.Conn())
return client.GetQos(ctx, in, opts...)
}
func (m *defaultSlurm) DeleteQos(ctx context.Context, in *DeleteQosReq, opts ...grpc.CallOption) (*DeleteQosResp, error) {
client := slurm.NewSlurmClient(m.cli.Conn())
return client.DeleteQos(ctx, in, opts...)
}
func (m *defaultSlurm) ListTres(ctx context.Context, in *ListTresReq, opts ...grpc.CallOption) (*ListTresResp, error) {
client := slurm.NewSlurmClient(m.cli.Conn())
return client.ListTres(ctx, in, opts...)
}
func (m *defaultSlurm) SetTres(ctx context.Context, in *SetTresReq, opts ...grpc.CallOption) (*SetTresResp, error) {
client := slurm.NewSlurmClient(m.cli.Conn())
return client.SetTres(ctx, in, opts...)
}
func (m *defaultSlurm) ListAccount(ctx context.Context, in *ListAccountReq, opts ...grpc.CallOption) (*ListAccountResp, error) {
client := slurm.NewSlurmClient(m.cli.Conn())
return client.ListAccount(ctx, in, opts...)
}
func (m *defaultSlurm) GetAccount(ctx context.Context, in *GetAccountReq, opts ...grpc.CallOption) (*GetAccountResp, error) {
client := slurm.NewSlurmClient(m.cli.Conn())
return client.GetAccount(ctx, in, opts...)
}
func (m *defaultSlurm) UpdateAccount(ctx context.Context, in *UpdateAccountReq, opts ...grpc.CallOption) (*UpdateAccountResp, error) {
client := slurm.NewSlurmClient(m.cli.Conn())
return client.UpdateAccount(ctx, in, opts...)
}
func (m *defaultSlurm) DeleteAccount(ctx context.Context, in *DeleteAccountReq, opts ...grpc.CallOption) (*DeleteAccountResp, error) {
client := slurm.NewSlurmClient(m.cli.Conn())
return client.DeleteAccount(ctx, in, opts...)
}
func (m *defaultSlurm) ListCluster(ctx context.Context, in *ListClusterReq, opts ...grpc.CallOption) (*ListClusterResp, error) {
client := slurm.NewSlurmClient(m.cli.Conn())
return client.ListCluster(ctx, in, opts...)
}
func (m *defaultSlurm) GetCluster(ctx context.Context, in *GetClusterReq, opts ...grpc.CallOption) (*GetClusterResp, error) {
client := slurm.NewSlurmClient(m.cli.Conn())
return client.GetCluster(ctx, in, opts...)
}
func (m *defaultSlurm) AddCluster(ctx context.Context, in *AddClusterReq, opts ...grpc.CallOption) (*AddClusterResp, error) {
client := slurm.NewSlurmClient(m.cli.Conn())
return client.AddCluster(ctx, in, opts...)
}
func (m *defaultSlurm) DeleteCluster(ctx context.Context, in *DeleteClusterReq, opts ...grpc.CallOption) (*DeleteClusterResp, error) {
client := slurm.NewSlurmClient(m.cli.Conn())
return client.DeleteCluster(ctx, in, opts...)
}
func (m *defaultSlurm) ListWckey(ctx context.Context, in *ListWckeyReq, opts ...grpc.CallOption) (*ListWckeyResp, error) {
client := slurm.NewSlurmClient(m.cli.Conn())
return client.ListWckey(ctx, in, opts...)
}
func (m *defaultSlurm) GetWckey(ctx context.Context, in *GetWckeyReq, opts ...grpc.CallOption) (*GetWckeyResp, error) {
client := slurm.NewSlurmClient(m.cli.Conn())
return client.GetWckey(ctx, in, opts...)
}
func (m *defaultSlurm) AddWckey(ctx context.Context, in *AddWckeyReq, opts ...grpc.CallOption) (*AddWckeyResp, error) {
client := slurm.NewSlurmClient(m.cli.Conn())
return client.AddWckey(ctx, in, opts...)
}
func (m *defaultSlurm) DeleteWckey(ctx context.Context, in *DeleteWckeyReq, opts ...grpc.CallOption) (*DeleteWckeyResp, error) {
client := slurm.NewSlurmClient(m.cli.Conn())
return client.DeleteWckey(ctx, in, opts...)
}
func (m *defaultSlurm) ListAssociation(ctx context.Context, in *ListAssociationReq, opts ...grpc.CallOption) (*ListAssociationResp, error) {
client := slurm.NewSlurmClient(m.cli.Conn())
return client.ListAssociation(ctx, in, opts...)
}
func (m *defaultSlurm) GetAssociation(ctx context.Context, in *GetAssociationReq, opts ...grpc.CallOption) (*GetAssociationResp, error) {
client := slurm.NewSlurmClient(m.cli.Conn())
return client.GetAssociation(ctx, in, opts...)
}
func (m *defaultSlurm) SetAssociation(ctx context.Context, in *SetAssociationReq, opts ...grpc.CallOption) (*SetAssociationResp, error) {
client := slurm.NewSlurmClient(m.cli.Conn())
return client.SetAssociation(ctx, in, opts...)
}
func (m *defaultSlurm) DeleteAssociation(ctx context.Context, in *DeleteAssociationReq, opts ...grpc.CallOption) (*DeleteAssociationResp, error) {
client := slurm.NewSlurmClient(m.cli.Conn())
return client.DeleteAssociation(ctx, in, opts...)
}
func (m *defaultSlurm) GetDiagnostics(ctx context.Context, in *ListDiagnosticsReq, opts ...grpc.CallOption) (*ListDiagnosticsResp, error) {
client := slurm.NewSlurmClient(m.cli.Conn())
return client.GetDiagnostics(ctx, in, opts...)
}
func (m *defaultSlurm) GetDbDiagnostics(ctx context.Context, in *ListDbDiagnosticsReq, opts ...grpc.CallOption) (*ListDbDiagnosticsResp, error) {
client := slurm.NewSlurmClient(m.cli.Conn())
return client.GetDbDiagnostics(ctx, in, opts...)
}