diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..61069b7 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/.idea/* \ No newline at end of file diff --git a/etc/hpcth.yaml b/etc/hpcth.yaml deleted file mode 100644 index f23a6ff..0000000 --- a/etc/hpcth.yaml +++ /dev/null @@ -1,13 +0,0 @@ -NacosConfig: - DataId: pcm-th-rpc.yaml - Group: DEFAULT_GROUP - ServerConfigs: - - IpAddr: nacos.jcce.dev - Port: 8848 - ClientConfig: - NamespaceId: test - TimeoutMs: 5000 - NotLoadCacheAtStart: true - LogDir: - CacheDir: - LogLevel: debug \ No newline at end of file diff --git a/etc/slurm.yaml b/etc/slurm.yaml new file mode 100644 index 0000000..02a3eb6 --- /dev/null +++ b/etc/slurm.yaml @@ -0,0 +1,7 @@ +Name: slurm.rpc +ListenOn: 0.0.0.0:2007 +# core rpc +PcmCoreRpcConf: + Endpoints: + - 10.101.15.170:32456 + NonBlock: true \ No newline at end of file diff --git a/go.mod b/go.mod index 0fa1b9b..30e37c2 100644 --- a/go.mod +++ b/go.mod @@ -4,18 +4,25 @@ go 1.19 require ( github.com/jinzhu/copier v0.3.5 - github.com/zeromicro/go-zero v1.5.3 - gitlink.org.cn/jcce-pcm/pcm-coordinator v0.1.5 - gitlink.org.cn/jcce-pcm/utils v0.0.1 - google.golang.org/grpc v1.56.2 + github.com/prometheus/client_golang v1.16.0 + github.com/prometheus/common v0.42.0 + github.com/robfig/cron/v3 v3.0.1 + 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 + 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 ( github.com/JCCE-nudt/zero-contrib/zrpc/registry/nacos v0.0.0-20230419021610-13bbc83fbc3c // indirect + github.com/Masterminds/squirrel v1.5.4 // indirect github.com/aliyun/alibaba-cloud-sdk-go v1.61.1704 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/buger/jsonparser v1.1.1 // indirect + github.com/bwmarrin/snowflake v0.3.0 // indirect github.com/cenkalti/backoff/v4 v4.2.0 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/coreos/go-semver v0.3.1 // indirect @@ -31,6 +38,7 @@ require ( github.com/go-openapi/swag v0.22.3 // indirect github.com/go-redis/redis/v8 v8.11.5 // indirect github.com/go-resty/resty/v2 v2.7.0 // indirect + github.com/go-sql-driver/mysql v1.7.1 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang-jwt/jwt/v4 v4.5.0 // indirect github.com/golang/mock v1.6.0 // indirect @@ -43,6 +51,8 @@ require ( github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect + github.com/lann/builder v0.0.0-20180802200727-47ae307949d0 // indirect + 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 @@ -52,13 +62,10 @@ require ( github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/nacos-group/nacos-sdk-go/v2 v2.2.1 // indirect github.com/openzipkin/zipkin-go v0.4.1 // indirect - github.com/pelletier/go-toml/v2 v2.0.8 // indirect + github.com/pelletier/go-toml/v2 v2.0.9 // indirect github.com/pkg/errors v0.9.1 // indirect - github.com/prometheus/client_golang v1.15.1 // indirect github.com/prometheus/client_model v0.3.0 // indirect - github.com/prometheus/common v0.42.0 // indirect - github.com/prometheus/procfs v0.9.0 // indirect - github.com/robfig/cron/v3 v3.0.1 // indirect + github.com/prometheus/procfs v0.10.1 // indirect github.com/spaolacci/murmur3 v1.1.0 // indirect go.etcd.io/etcd/api/v3 v3.5.9 // indirect go.etcd.io/etcd/client/pkg/v3 v3.5.9 // indirect @@ -78,23 +85,23 @@ require ( go.uber.org/automaxprocs v1.5.2 // indirect go.uber.org/multierr v1.9.0 // indirect go.uber.org/zap v1.24.0 // indirect - golang.org/x/net v0.10.0 // indirect + golang.org/x/net v0.12.0 // indirect golang.org/x/oauth2 v0.7.0 // indirect - golang.org/x/sync v0.1.0 // indirect - golang.org/x/sys v0.8.0 // indirect - golang.org/x/term v0.8.0 // indirect - golang.org/x/text v0.9.0 // indirect + golang.org/x/sync v0.2.0 // indirect + golang.org/x/sys v0.10.0 // indirect + golang.org/x/term v0.10.0 // indirect + golang.org/x/text v0.11.0 // indirect golang.org/x/time v0.3.0 // indirect google.golang.org/appengine v1.6.7 // indirect - google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 // indirect + google.golang.org/genproto v0.0.0-20230526161137-0005af68ea54 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20230525234035-dd9d682886f9 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/ini.v1 v1.66.2 // indirect gopkg.in/natefinch/lumberjack.v2 v2.0.0 // indirect 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 diff --git a/go.sum b/go.sum index d0c04a6..25dd657 100644 --- a/go.sum +++ b/go.sum @@ -389,9 +389,12 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03 github.com/BurntSushi/toml v1.1.0 h1:ksErzDEI1khOiGPgpwuI7x2ebx/uXQNw7xJpn9Eq1+I= github.com/BurntSushi/toml v1.1.0/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= +github.com/DATA-DOG/go-sqlmock v1.5.0 h1:Shsta01QNfFxHCfpW6YH2STWB0MudeXXEWMr20OEh60= github.com/DATA-DOG/go-sqlmock v1.5.0/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM= github.com/JCCE-nudt/zero-contrib/zrpc/registry/nacos v0.0.0-20230419021610-13bbc83fbc3c h1:qoPu5FeE6dsvZ7AmH/l3Y5RxrJPNVKvsQSrjQpWUCMQ= github.com/JCCE-nudt/zero-contrib/zrpc/registry/nacos v0.0.0-20230419021610-13bbc83fbc3c/go.mod h1:GuCS4be9IH3bSBTvbzz34nszPQDO33PIOv5nviEaFMw= +github.com/Masterminds/squirrel v1.5.4 h1:uUcX/aBc8O7Fg9kaISIUsHXdKuqehiXAMQTYX8afzqM= +github.com/Masterminds/squirrel v1.5.4/go.mod h1:NNaOrjSoIDfDA40n7sr2tPNZRfjzjA400rg+riTZj10= github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= @@ -406,7 +409,7 @@ github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk5 github.com/alicebob/gopher-json v0.0.0-20200520072559-a9ecdc9d1d3a h1:HbKu58rmZpUGpz5+4FfNmIU+FmZg2P3Xaj2v2bfNWmk= github.com/alicebob/gopher-json v0.0.0-20200520072559-a9ecdc9d1d3a/go.mod h1:SGnFV6hVsYE877CKEZ6tDNTjaSXYUk6QqoIK6PrAtcc= github.com/alicebob/miniredis/v2 v2.30.1/go.mod h1:b25qWj4fCEsBeAAR2mlb0ufImGC6uH3VlUfb/HS5zKg= -github.com/alicebob/miniredis/v2 v2.30.3 h1:hrqDB4cHFSHQf4gO3xu6YKQg8PqJpNjLYsQAFYHstqw= +github.com/alicebob/miniredis/v2 v2.30.4 h1:8S4/o1/KoUArAGbGwPxcwf0krlzceva2XVOSchFS7Eo= github.com/aliyun/alibaba-cloud-sdk-go v1.61.1704 h1:PpfENOj/vPfhhy9N2OFRjpue0hjM5XqAp2thFmkXXIk= github.com/aliyun/alibaba-cloud-sdk-go v1.61.1704/go.mod h1:RcDobYh8k5VP6TNybz9m++gL3ijVI5wueVr0EM10VsU= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= @@ -421,6 +424,8 @@ github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6r github.com/bufbuild/protocompile v0.4.0/go.mod h1:3v93+mbWn/v3xzN+31nwkJfrEpAUwp+BagBSZWx+TP8= github.com/buger/jsonparser v1.1.1 h1:2PnMjfWD7wBILjqQbt530v576A/cAbQvEW9gGIpYMUs= github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0= +github.com/bwmarrin/snowflake v0.3.0 h1:xm67bEhkKh6ij1790JB83OujPR5CzNe8QuQqAgISZN0= +github.com/bwmarrin/snowflake v0.3.0/go.mod h1:NdZxfVWX+oR6y2K0o6qAYv6gIOP9rjG0/E9WsDpxqwE= github.com/cenkalti/backoff/v4 v4.2.0 h1:HN5dHm3WBOgndBH6E8V0q2jIYIR3s9yglV8k/+MN3u4= github.com/cenkalti/backoff/v4 v4.2.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= @@ -529,6 +534,8 @@ github.com/go-redis/redis/v8 v8.11.5/go.mod h1:gREzHqY1hg6oD9ngVRbLStwAWKhA0FEgq github.com/go-resty/resty/v2 v2.7.0 h1:me+K9p3uhSmXtrBZ4k9jcEAfJmuC8IivWHwaLZwPrFY= github.com/go-resty/resty/v2 v2.7.0/go.mod h1:9PWDzw47qPphMRFfhsyk0NnSgvluHcljSMVIq3w7q0I= github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= +github.com/go-sql-driver/mysql v1.7.1 h1:lUIinVbN1DY0xBg0eMOzmmtGoHwWBbvnWubQUrtU8EI= +github.com/go-sql-driver/mysql v1.7.1/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 h1:p104kn46Q8WdvHunIJ9dAyjPVtrBPhSr3KT2yUst43I= github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= @@ -695,6 +702,7 @@ github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGw github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= +github.com/jpillora/backoff v1.0.0 h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2EA= github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= github.com/json-iterator/go v1.1.5/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= @@ -724,6 +732,10 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/lann/builder v0.0.0-20180802200727-47ae307949d0 h1:SOEGU9fKiNWd/HOJuq6+3iTQz8KNCLtVX6idSoTLdUw= +github.com/lann/builder v0.0.0-20180802200727-47ae307949d0/go.mod h1:dXGbAdH5GtBTC4WfIxhKZfyBF/HBFgRZSWwZ9g/He9o= +github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0 h1:P6pPBnrTSX3DEVR4fDembhRWSsG5rVo6hYhAB/ADZrk= +github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0/go.mod h1:vmVJ0l/dxyfGW6FmdpVm2joNMFikkuWg0EoCKLGUMNw= github.com/lyft/protoc-gen-star v0.6.0/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuzJYeZuUPFPNwA= github.com/lyft/protoc-gen-star v0.6.1/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuzJYeZuUPFPNwA= github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= @@ -758,6 +770,7 @@ github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8m github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f h1:KUppIJq7/+SVif2QVs3tOP0zanoHgBEVAwHxUSIzRqU= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= github.com/nacos-group/nacos-sdk-go/v2 v2.2.1 h1:f72CRRn1BQk0FpK0vAnXn56ddGQpmHcyp0QoHEajhow= @@ -794,8 +807,8 @@ github.com/onsi/gomega v1.27.4 h1:Z2AnStgsdSayCMDiCU42qIz+HLqEPcgiOCXjAU/w+8E= github.com/openzipkin/zipkin-go v0.4.1 h1:kNd/ST2yLLWhaWrkgchya40TJabe8Hioj9udfPcEO5A= github.com/openzipkin/zipkin-go v0.4.1/go.mod h1:qY0VqDSN1pOBN94dBc6w2GJlWLiovAyg7Qt6/I9HecM= github.com/pelletier/go-toml/v2 v2.0.7/go.mod h1:eumQOmlWiOPt5WriQQqoM5y18pDHwha2N+QD+EUNTek= -github.com/pelletier/go-toml/v2 v2.0.8 h1:0ctb6s9mE31h0/lhu+J6OPmVeDxJn+kYnJc2jZR9tGQ= -github.com/pelletier/go-toml/v2 v2.0.8/go.mod h1:vuYfssBdrU2XDZ9bYydBu6t+6a6PYNcZljzZR9VXg+4= +github.com/pelletier/go-toml/v2 v2.0.9 h1:uH2qQXheeefCCkuBBSLi7jCiSmj3VRh2+Goq2N7Xxu0= +github.com/pelletier/go-toml/v2 v2.0.9/go.mod h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdUvyaeZurnPPDc= github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= github.com/pierrec/lz4/v4 v4.1.17/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= @@ -818,8 +831,8 @@ github.com/prometheus/client_golang v1.12.1/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrb github.com/prometheus/client_golang v1.12.2/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= github.com/prometheus/client_golang v1.13.0/go.mod h1:vTeo+zgvILHsnnj/39Ou/1fPN5nJFOEMgftOUOmlvYQ= github.com/prometheus/client_golang v1.14.0/go.mod h1:8vpkKitgIVNcqrRBWh1C4TIUQgYNtG/XQE4E/Zae36Y= -github.com/prometheus/client_golang v1.15.1 h1:8tXpTmJbyH5lydzFPoxSIJ0J46jdh3tylbvM1xCv0LI= -github.com/prometheus/client_golang v1.15.1/go.mod h1:e9yaBhRPU2pPNsZwE+JdQl0KEt1N9XgF6zxWmaC0xOk= +github.com/prometheus/client_golang v1.16.0 h1:yk/hx9hDbrGHovbci4BY+pRMfSuuat626eFsHb7tmT8= +github.com/prometheus/client_golang v1.16.0/go.mod h1:Zsulrv/L9oM40tJ7T815tM89lFEugiJ9HzIqaAx4LKc= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= @@ -839,8 +852,8 @@ github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4O github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0uaxHdg830/4= -github.com/prometheus/procfs v0.9.0 h1:wzCHvIvM5SxWqYvwgVL7yJY8Lz3PKn49KQtpgMYJfhI= -github.com/prometheus/procfs v0.9.0/go.mod h1:+pB4zwohETzFnmlpe6yd2lSc+0/46IYZRB/chUwxUZY= +github.com/prometheus/procfs v0.10.1 h1:kYK1Va/YMlutzCGazswoHKo//tZVlFpKYh+PymziUAg= +github.com/prometheus/procfs v0.10.1/go.mod h1:nwNm2aOCAYw8uTR/9bWRREkZFxAUcWzPHWJq+XBB/FM= github.com/rabbitmq/amqp091-go v1.5.0/go.mod h1:JsV0ofX5f1nwOGafb8L5rBItt9GyhfQfcJj+oyz0dGg= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= @@ -882,8 +895,8 @@ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= github.com/urfave/cli/v2 v2.11.0/go.mod h1:f8iq5LtQ/bLxafbdBSLPPNsgaW0l/2fYYEHhAyPlwvo= github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= @@ -901,12 +914,12 @@ github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5t github.com/yuin/gopher-lua v1.1.0 h1:BojcDhfyDWgU2f2TOzYK/g5p2gxMrku8oupLDqlnSqE= github.com/yuin/gopher-lua v1.1.0/go.mod h1:GBR0iDaNXjAgGg9zfCvksxSRnQx76gclCIb7kdAd1Pw= github.com/zeromicro/go-zero v1.5.1/go.mod h1:bGYm4XWsGN9GhDsO2O2BngpVoWjf3Eog2a5hUOMhlXs= -github.com/zeromicro/go-zero v1.5.3 h1:9poyd+raeL7gSMUu6P19N7bssTppieR2j7Oos2j1yFQ= -github.com/zeromicro/go-zero v1.5.3/go.mod h1:dmoBpgJTxt9KWmgrNGpv06XxZRPXMakrxUVgROFAR3g= -gitlink.org.cn/jcce-pcm/pcm-coordinator v0.1.5 h1:DOVrgx37QCxT4Q2r7jVChi2nXTBW/gFptMX/22H8rzA= -gitlink.org.cn/jcce-pcm/pcm-coordinator v0.1.5/go.mod h1:yDnVKS7sfhsTeueWD0ybg5GBWTakL8AF7bcKcPI7iLo= -gitlink.org.cn/jcce-pcm/utils v0.0.1 h1:3PH93Z/JFTH5JRO9MFf3dD1Gnd12aGiIIViWBlQGuhE= -gitlink.org.cn/jcce-pcm/utils v0.0.1/go.mod h1:5cwaaqM0+HK5GXVbYozGlWvgwoUby0KytdvhbwQW1ks= +github.com/zeromicro/go-zero v1.5.4 h1:kRvcYuxcHOkUZvg7887KQl77Qv4klGL7MqGkTBgkpS8= +github.com/zeromicro/go-zero v1.5.4/go.mod h1:x/aUyLmSwRECvOyjOf+lhwThBOilJIY+s3slmPAeboA= +gitlink.org.cn/jcce-pcm/pcm-coordinator v0.1.7-0.20230828070533-7721b3b6ff0d h1:yd2gCjDm5fkUSXJq1AxZqHNf0iI+ySw50m3Wq/QFYZk= +gitlink.org.cn/jcce-pcm/pcm-coordinator v0.1.7-0.20230828070533-7721b3b6ff0d/go.mod h1:JATg6GnFef6YXt1krXVvg6HoQdKXwO3RXLaE02EB6MI= +gitlink.org.cn/jcce-pcm/utils v0.0.2 h1:Stif8W9C9TOCS2hw4g+OlOywDrsVYNrkiyKfBrWkT0w= +gitlink.org.cn/jcce-pcm/utils v0.0.2/go.mod h1:u8PTlBpzUyOlbQJgfSiutq91q/JtrJIQiPNDe4S/pGs= go.etcd.io/etcd/api/v3 v3.5.7/go.mod h1:9qew1gCdDDLu+VwmeG+iFpL+QlpHTo7iubavdVDgCAA= go.etcd.io/etcd/api/v3 v3.5.9 h1:4wSsluwyTbGGmyjJktOf3wFQoTBIURXHnq9n/G/JQHs= go.etcd.io/etcd/api/v3 v3.5.9/go.mod h1:uyAal843mC8uUVSLWz6eHa/d971iDGnCRpmKd2Z+X8k= @@ -1091,8 +1104,8 @@ golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= -golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M= -golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.12.0 h1:cfawfvKITfUsFCeJIHJrbSxpeu/E81khclypR0GVT50= +golang.org/x/net v0.12.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1137,8 +1150,9 @@ golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220923202941-7f9b1623fab7/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.2.0 h1:PUR+T4wwASmuSTYdKjYHI5TD22Wy5ogLU5qZCOLxBrI= +golang.org/x/sync v0.2.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1235,8 +1249,8 @@ golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU= -golang.org/x/sys v0.8.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= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.0.0-20220526004731-065cf7ba2467/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= @@ -1247,8 +1261,8 @@ golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= -golang.org/x/term v0.8.0 h1:n5xxQn2i3PC0yLAbjTpNT85q/Kgzcr2gIoX9OrJUols= -golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= +golang.org/x/term v0.10.0 h1:3R7pNqamzBraeqj/Tj8qt1aQ2HpmlC+Cx/qL/7hn4/c= +golang.org/x/term v0.10.0/go.mod h1:lpqdcUyK/oCiQxvxVrppt5ggO2KCZ5QblwqPnfZ6d5o= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1264,8 +1278,9 @@ golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.11.0 h1:LAntKIrcmeSKERyiOh0XMV39LXS8IE9UL2yP7+f5ij4= +golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -1519,8 +1534,12 @@ google.golang.org/genproto v0.0.0-20221202195650-67e5cbc046fd/go.mod h1:cTsE614G google.golang.org/genproto v0.0.0-20221207170731-23e4bf6bdc37/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= google.golang.org/genproto v0.0.0-20230123190316-2c411cf9d197/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= -google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 h1:KpwkzHKEF7B9Zxg18WzOa7djJ+Ha5DzthMyZYQfEn2A= -google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1/go.mod h1:nKE/iIaLqn2bQwXBg8f1g2Ylh6r5MN5CmZvuzZCgsCU= +google.golang.org/genproto v0.0.0-20230526161137-0005af68ea54 h1:9NWlQfY2ePejTmfwUH1OWwmznFa+0kKcHGPDvcPza9M= +google.golang.org/genproto v0.0.0-20230526161137-0005af68ea54/go.mod h1:zqTuNwFlFRsw5zIts5VnzLQxSRqh+CGOTVMlYbY0Eyk= +google.golang.org/genproto/googleapis/api v0.0.0-20230525234035-dd9d682886f9 h1:m8v1xLLLzMe1m5P+gCTF8nJB9epwZQUBERm20Oy1poQ= +google.golang.org/genproto/googleapis/api v0.0.0-20230525234035-dd9d682886f9/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19 h1:0nDDozoAU19Qb2HwhXadU8OcsiO/09cnTqhUtq2MEOM= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= @@ -1561,8 +1580,8 @@ google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCD google.golang.org/grpc v1.51.0/go.mod h1:wgNDFcnuBGmxLKI/qn4T+m5BtEBYXJPvibbUPsAIPww= google.golang.org/grpc v1.53.0/go.mod h1:OnIrk0ipVdj4N5d9IUoFUx72/VlD7+jUsHwZgwSMQpw= google.golang.org/grpc v1.54.0/go.mod h1:PUSEXI6iWghWaB6lXM4knEgpJNu2qUcKfDtNci3EC2g= -google.golang.org/grpc v1.56.2 h1:fVRFRnXvU+x6C4IlHZewvJOVHoOv1TUuQyoRsYnB4bI= -google.golang.org/grpc v1.56.2/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= +google.golang.org/grpc v1.57.0 h1:kfzNeI/klCGD2YPMUlaGNT3pxvYfga7smW3Vth8Zsiw= +google.golang.org/grpc v1.57.0/go.mod h1:Sd+9RMTACXwmub0zcNY2c4arhtrbBYD1AUHI/dt16Mo= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= diff --git a/hpcTH/hpcTH.pb.go b/hpcTH/hpcTH.pb.go deleted file mode 100644 index f7f8e2e..0000000 --- a/hpcTH/hpcTH.pb.go +++ /dev/null @@ -1,2772 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.28.1 -// protoc v3.19.4 -// source: hpcTH.proto - -package hpcTH - -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) -) - -// *****************Job Start************************ -type Job struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Account string `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"` // @gotags: copier:"Account" - AllocNode string `protobuf:"bytes,2,opt,name=alloc_node,json=allocNode,proto3" json:"alloc_node,omitempty"` // @gotags: copier:"AllocNode" - AllocSid uint32 `protobuf:"varint,3,opt,name=alloc_sid,json=allocSid,proto3" json:"alloc_sid,omitempty"` // @gotags: copier:"AllocSid" - ArrayJobId uint32 `protobuf:"varint,4,opt,name=array_job_id,json=arrayJobId,proto3" json:"array_job_id,omitempty"` // @gotags: copier:"ArrayJobId" - ArrayTaskId uint32 `protobuf:"varint,5,opt,name=array_task_id,json=arrayTaskId,proto3" json:"array_task_id,omitempty"` // @gotags: copier:"ArrayTaskId" - AssocId uint32 `protobuf:"varint,6,opt,name=assoc_id,json=assocId,proto3" json:"assoc_id,omitempty"` // @gotags: copier:"AssocId" - BatchFlag uint32 `protobuf:"varint,7,opt,name=batch_flag,json=batchFlag,proto3" json:"batch_flag,omitempty"` // @gotags: copier:"BatchFlag" - BatchHost string `protobuf:"bytes,8,opt,name=batch_host,json=batchHost,proto3" json:"batch_host,omitempty"` // @gotags: copier:"BatchHost" - BatchScript string `protobuf:"bytes,9,opt,name=batch_script,json=batchScript,proto3" json:"batch_script,omitempty"` // @gotags: copier:"BatchScript" - Command string `protobuf:"bytes,10,opt,name=command,proto3" json:"command,omitempty"` // @gotags: copier:"Command" - Comment string `protobuf:"bytes,11,opt,name=comment,proto3" json:"comment,omitempty"` // @gotags: copier:"Comment" - Contiguous uint32 `protobuf:"varint,12,opt,name=contiguous,proto3" json:"contiguous,omitempty"` // @gotags: copier:"Contiguous" - CpusPerTask uint32 `protobuf:"varint,13,opt,name=cpus_per_task,json=cpusPerTask,proto3" json:"cpus_per_task,omitempty"` // @gotags: copier:"CpusPerTask" - Dependency string `protobuf:"bytes,14,opt,name=dependency,proto3" json:"dependency,omitempty"` // @gotags: copier:"Dependency" - DerivedEc uint32 `protobuf:"varint,15,opt,name=derived_ec,json=derivedEc,proto3" json:"derived_ec,omitempty"` // @gotags: copier:"DerivedEc" - EligibleTime int64 `protobuf:"varint,16,opt,name=eligible_time,json=eligibleTime,proto3" json:"eligible_time,omitempty"` // @gotags: copier:"EligibleTime" - EndTime int64 `protobuf:"varint,17,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` // @gotags: copier:"EndTime" - ExcNodes string `protobuf:"bytes,18,opt,name=exc_nodes,json=excNodes,proto3" json:"exc_nodes,omitempty"` // @gotags: copier:"ExcNodes" - ExcNodeInx int32 `protobuf:"varint,19,opt,name=exc_node_inx,json=excNodeInx,proto3" json:"exc_node_inx,omitempty"` // @gotags: copier:"ExcNodeInx" - ExitCode uint32 `protobuf:"varint,20,opt,name=exit_code,json=exitCode,proto3" json:"exit_code,omitempty"` // @gotags: copier:"ExitCode" - Features string `protobuf:"bytes,21,opt,name=features,proto3" json:"features,omitempty"` // @gotags: copier:"Features" - Gres string `protobuf:"bytes,22,opt,name=gres,proto3" json:"gres,omitempty"` // @gotags: copier:"Gres" - GroupId uint32 `protobuf:"varint,23,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"` // @gotags: copier:"GroupId" - JobId uint32 `protobuf:"varint,24,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"` // @gotags: copier:"JobId" - JobState uint32 `protobuf:"varint,25,opt,name=job_state,json=jobState,proto3" json:"job_state,omitempty"` // @gotags: copier:"JobState" - Licenses string `protobuf:"bytes,26,opt,name=licenses,proto3" json:"licenses,omitempty"` // @gotags: copier:"Licenses" - MaxCpus uint32 `protobuf:"varint,27,opt,name=max_cpus,json=maxCpus,proto3" json:"max_cpus,omitempty"` // @gotags: copier:"MaxCpus" - MaxNodes uint32 `protobuf:"varint,28,opt,name=max_nodes,json=maxNodes,proto3" json:"max_nodes,omitempty"` // @gotags: copier:"MaxNodes" - BoardsPerNode uint32 `protobuf:"varint,29,opt,name=boards_per_node,json=boardsPerNode,proto3" json:"boards_per_node,omitempty"` // @gotags: copier:"BoardsPerNode" - SocketsPerBoard uint32 `protobuf:"varint,30,opt,name=sockets_per_board,json=socketsPerBoard,proto3" json:"sockets_per_board,omitempty"` // @gotags: copier:"SocketsPerBoard" - SocketsPerNode uint32 `protobuf:"varint,31,opt,name=sockets_per_node,json=socketsPerNode,proto3" json:"sockets_per_node,omitempty"` // @gotags: copier:"SocketsPerNode" - CoresPerSocket uint32 `protobuf:"varint,32,opt,name=cores_per_socket,json=coresPerSocket,proto3" json:"cores_per_socket,omitempty"` // @gotags: copier:"CoresPerSocket" - ThreadsPerCore uint32 `protobuf:"varint,33,opt,name=threads_per_core,json=threadsPerCore,proto3" json:"threads_per_core,omitempty"` // @gotags: copier:"ThreadsPerCore" - Name string `protobuf:"bytes,34,opt,name=name,proto3" json:"name,omitempty"` // @gotags: copier:"Name" - Network string `protobuf:"bytes,35,opt,name=network,proto3" json:"network,omitempty"` // @gotags: copier:"Network" - Nodes string `protobuf:"bytes,36,opt,name=nodes,proto3" json:"nodes,omitempty"` // @gotags: copier:"Nodes" - Nice uint32 `protobuf:"varint,37,opt,name=nice,proto3" json:"nice,omitempty"` // @gotags: copier:"Nice" - NodeInx int32 `protobuf:"varint,38,opt,name=node_inx,json=nodeInx,proto3" json:"node_inx,omitempty"` // @gotags: copier:"NodeInx" - NtasksPerCore uint32 `protobuf:"varint,39,opt,name=ntasks_per_core,json=ntasksPerCore,proto3" json:"ntasks_per_core,omitempty"` // @gotags: copier:"NtasksPerCore" - NtasksPerNode uint32 `protobuf:"varint,40,opt,name=ntasks_per_node,json=ntasksPerNode,proto3" json:"ntasks_per_node,omitempty"` // @gotags: copier:"NtasksPerNode" - NtasksPerSocket uint32 `protobuf:"varint,41,opt,name=ntasks_per_socket,json=ntasksPerSocket,proto3" json:"ntasks_per_socket,omitempty"` // @gotags: copier:"NtasksPerSocket" - NtasksPerBoard uint32 `protobuf:"varint,42,opt,name=ntasks_per_board,json=ntasksPerBoard,proto3" json:"ntasks_per_board,omitempty"` // @gotags: copier:"NtasksPerBoard" - NumNodes uint32 `protobuf:"varint,43,opt,name=num_nodes,json=numNodes,proto3" json:"num_nodes,omitempty"` // @gotags: copier:"NumNodes" - NumCpus uint32 `protobuf:"varint,44,opt,name=num_cpus,json=numCpus,proto3" json:"num_cpus,omitempty"` // @gotags: copier:"NumCpus" - Partition string `protobuf:"bytes,45,opt,name=partition,proto3" json:"partition,omitempty"` // @gotags: copier:"Partition" - PnMinMemory uint32 `protobuf:"varint,46,opt,name=pn_min_memory,json=pnMinMemory,proto3" json:"pn_min_memory,omitempty"` // @gotags: copier:"PnMinMemory" - PnMinCpus uint32 `protobuf:"varint,47,opt,name=pn_min_cpus,json=pnMinCpus,proto3" json:"pn_min_cpus,omitempty"` // @gotags: copier:"PnMinCpus" - PnMinTmpDisk uint32 `protobuf:"varint,48,opt,name=pn_min_tmp_disk,json=pnMinTmpDisk,proto3" json:"pn_min_tmp_disk,omitempty"` // @gotags: copier:"PnMinTmpDisk" - PreSusTime int64 `protobuf:"varint,49,opt,name=pre_sus_time,json=preSusTime,proto3" json:"pre_sus_time,omitempty"` // @gotags: copier:"PreSusTime" - Priority uint32 `protobuf:"varint,50,opt,name=priority,proto3" json:"priority,omitempty"` // @gotags: copier:"Priority" - Profile uint32 `protobuf:"varint,51,opt,name=profile,proto3" json:"profile,omitempty"` // @gotags: copier:"Profile" - Qos string `protobuf:"bytes,52,opt,name=qos,proto3" json:"qos,omitempty"` // @gotags: copier:"Qos" - ReqNodes string `protobuf:"bytes,53,opt,name=req_nodes,json=reqNodes,proto3" json:"req_nodes,omitempty"` // @gotags: copier:"ReqNodes" - ReqNodeInx int32 `protobuf:"varint,54,opt,name=req_node_inx,json=reqNodeInx,proto3" json:"req_node_inx,omitempty"` // @gotags: copier:"ReqNodeInx" - ReqSwitch uint32 `protobuf:"varint,55,opt,name=req_switch,json=reqSwitch,proto3" json:"req_switch,omitempty"` // @gotags: copier:"ReqSwitch" - Requeue uint32 `protobuf:"varint,56,opt,name=requeue,proto3" json:"requeue,omitempty"` // @gotags: copier:"Requeue" - ResizeTime int64 `protobuf:"varint,57,opt,name=resize_time,json=resizeTime,proto3" json:"resize_time,omitempty"` // @gotags: copier:"ResizeTime" - RestartCnt uint32 `protobuf:"varint,58,opt,name=restart_cnt,json=restartCnt,proto3" json:"restart_cnt,omitempty"` // @gotags: copier:"RestartCnt" - ResvName string `protobuf:"bytes,59,opt,name=resv_name,json=resvName,proto3" json:"resv_name,omitempty"` // @gotags: copier:"ResvName" - Shared uint32 `protobuf:"varint,60,opt,name=shared,proto3" json:"shared,omitempty"` // @gotags: copier:"Shared" - ShowFlags uint32 `protobuf:"varint,61,opt,name=show_flags,json=showFlags,proto3" json:"show_flags,omitempty"` // @gotags: copier:"ShowFlags" - StartTime int64 `protobuf:"varint,62,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` // @gotags: copier:"StartTime" - StateDesc string `protobuf:"bytes,63,opt,name=state_desc,json=stateDesc,proto3" json:"state_desc,omitempty"` // @gotags: copier:"StateDesc" - StateReason uint32 `protobuf:"varint,64,opt,name=state_reason,json=stateReason,proto3" json:"state_reason,omitempty"` // @gotags: copier:"StateReason" - SubmitTime int64 `protobuf:"varint,65,opt,name=submit_time,json=submitTime,proto3" json:"submit_time,omitempty"` // @gotags: copier:"SubmitTime" - SuspendTime int64 `protobuf:"varint,66,opt,name=suspend_time,json=suspendTime,proto3" json:"suspend_time,omitempty"` // @gotags: copier:"SuspendTime" - TimeLimit uint32 `protobuf:"varint,67,opt,name=time_limit,json=timeLimit,proto3" json:"time_limit,omitempty"` // @gotags: copier:"TimeLimit" - TimeMin uint32 `protobuf:"varint,68,opt,name=time_min,json=timeMin,proto3" json:"time_min,omitempty"` // @gotags: copier:"TimeMin" - UserId uint32 `protobuf:"varint,69,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` // @gotags: copier:"UserId" - PreemptTime int64 `protobuf:"varint,70,opt,name=preempt_time,json=preemptTime,proto3" json:"preempt_time,omitempty"` // @gotags: copier:"PreemptTime" - Wait4Switch uint32 `protobuf:"varint,71,opt,name=wait4switch,proto3" json:"wait4switch,omitempty"` // @gotags: copier:"Wait4Switch" - Wckey string `protobuf:"bytes,72,opt,name=wckey,proto3" json:"wckey,omitempty"` // @gotags: copier:"Wckey" - WorkDir string `protobuf:"bytes,73,opt,name=work_dir,json=workDir,proto3" json:"work_dir,omitempty"` // @gotags: copier:"WorkDir" -} - -func (x *Job) Reset() { - *x = Job{} - if protoimpl.UnsafeEnabled { - mi := &file_hpcTH_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Job) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Job) ProtoMessage() {} - -func (x *Job) ProtoReflect() protoreflect.Message { - mi := &file_hpcTH_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 Job.ProtoReflect.Descriptor instead. -func (*Job) Descriptor() ([]byte, []int) { - return file_hpcTH_proto_rawDescGZIP(), []int{0} -} - -func (x *Job) GetAccount() string { - if x != nil { - return x.Account - } - return "" -} - -func (x *Job) GetAllocNode() string { - if x != nil { - return x.AllocNode - } - return "" -} - -func (x *Job) GetAllocSid() uint32 { - if x != nil { - return x.AllocSid - } - return 0 -} - -func (x *Job) GetArrayJobId() uint32 { - if x != nil { - return x.ArrayJobId - } - return 0 -} - -func (x *Job) GetArrayTaskId() uint32 { - if x != nil { - return x.ArrayTaskId - } - return 0 -} - -func (x *Job) GetAssocId() uint32 { - if x != nil { - return x.AssocId - } - return 0 -} - -func (x *Job) GetBatchFlag() uint32 { - if x != nil { - return x.BatchFlag - } - return 0 -} - -func (x *Job) GetBatchHost() string { - if x != nil { - return x.BatchHost - } - return "" -} - -func (x *Job) GetBatchScript() string { - if x != nil { - return x.BatchScript - } - return "" -} - -func (x *Job) GetCommand() string { - if x != nil { - return x.Command - } - return "" -} - -func (x *Job) GetComment() string { - if x != nil { - return x.Comment - } - return "" -} - -func (x *Job) GetContiguous() uint32 { - if x != nil { - return x.Contiguous - } - return 0 -} - -func (x *Job) GetCpusPerTask() uint32 { - if x != nil { - return x.CpusPerTask - } - return 0 -} - -func (x *Job) GetDependency() string { - if x != nil { - return x.Dependency - } - return "" -} - -func (x *Job) GetDerivedEc() uint32 { - if x != nil { - return x.DerivedEc - } - return 0 -} - -func (x *Job) GetEligibleTime() int64 { - if x != nil { - return x.EligibleTime - } - return 0 -} - -func (x *Job) GetEndTime() int64 { - if x != nil { - return x.EndTime - } - return 0 -} - -func (x *Job) GetExcNodes() string { - if x != nil { - return x.ExcNodes - } - return "" -} - -func (x *Job) GetExcNodeInx() int32 { - if x != nil { - return x.ExcNodeInx - } - return 0 -} - -func (x *Job) GetExitCode() uint32 { - if x != nil { - return x.ExitCode - } - return 0 -} - -func (x *Job) GetFeatures() string { - if x != nil { - return x.Features - } - return "" -} - -func (x *Job) GetGres() string { - if x != nil { - return x.Gres - } - return "" -} - -func (x *Job) GetGroupId() uint32 { - if x != nil { - return x.GroupId - } - return 0 -} - -func (x *Job) GetJobId() uint32 { - if x != nil { - return x.JobId - } - return 0 -} - -func (x *Job) GetJobState() uint32 { - if x != nil { - return x.JobState - } - return 0 -} - -func (x *Job) GetLicenses() string { - if x != nil { - return x.Licenses - } - return "" -} - -func (x *Job) GetMaxCpus() uint32 { - if x != nil { - return x.MaxCpus - } - return 0 -} - -func (x *Job) GetMaxNodes() uint32 { - if x != nil { - return x.MaxNodes - } - return 0 -} - -func (x *Job) GetBoardsPerNode() uint32 { - if x != nil { - return x.BoardsPerNode - } - return 0 -} - -func (x *Job) GetSocketsPerBoard() uint32 { - if x != nil { - return x.SocketsPerBoard - } - return 0 -} - -func (x *Job) GetSocketsPerNode() uint32 { - if x != nil { - return x.SocketsPerNode - } - return 0 -} - -func (x *Job) GetCoresPerSocket() uint32 { - if x != nil { - return x.CoresPerSocket - } - return 0 -} - -func (x *Job) GetThreadsPerCore() uint32 { - if x != nil { - return x.ThreadsPerCore - } - return 0 -} - -func (x *Job) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -func (x *Job) GetNetwork() string { - if x != nil { - return x.Network - } - return "" -} - -func (x *Job) GetNodes() string { - if x != nil { - return x.Nodes - } - return "" -} - -func (x *Job) GetNice() uint32 { - if x != nil { - return x.Nice - } - return 0 -} - -func (x *Job) GetNodeInx() int32 { - if x != nil { - return x.NodeInx - } - return 0 -} - -func (x *Job) GetNtasksPerCore() uint32 { - if x != nil { - return x.NtasksPerCore - } - return 0 -} - -func (x *Job) GetNtasksPerNode() uint32 { - if x != nil { - return x.NtasksPerNode - } - return 0 -} - -func (x *Job) GetNtasksPerSocket() uint32 { - if x != nil { - return x.NtasksPerSocket - } - return 0 -} - -func (x *Job) GetNtasksPerBoard() uint32 { - if x != nil { - return x.NtasksPerBoard - } - return 0 -} - -func (x *Job) GetNumNodes() uint32 { - if x != nil { - return x.NumNodes - } - return 0 -} - -func (x *Job) GetNumCpus() uint32 { - if x != nil { - return x.NumCpus - } - return 0 -} - -func (x *Job) GetPartition() string { - if x != nil { - return x.Partition - } - return "" -} - -func (x *Job) GetPnMinMemory() uint32 { - if x != nil { - return x.PnMinMemory - } - return 0 -} - -func (x *Job) GetPnMinCpus() uint32 { - if x != nil { - return x.PnMinCpus - } - return 0 -} - -func (x *Job) GetPnMinTmpDisk() uint32 { - if x != nil { - return x.PnMinTmpDisk - } - return 0 -} - -func (x *Job) GetPreSusTime() int64 { - if x != nil { - return x.PreSusTime - } - return 0 -} - -func (x *Job) GetPriority() uint32 { - if x != nil { - return x.Priority - } - return 0 -} - -func (x *Job) GetProfile() uint32 { - if x != nil { - return x.Profile - } - return 0 -} - -func (x *Job) GetQos() string { - if x != nil { - return x.Qos - } - return "" -} - -func (x *Job) GetReqNodes() string { - if x != nil { - return x.ReqNodes - } - return "" -} - -func (x *Job) GetReqNodeInx() int32 { - if x != nil { - return x.ReqNodeInx - } - return 0 -} - -func (x *Job) GetReqSwitch() uint32 { - if x != nil { - return x.ReqSwitch - } - return 0 -} - -func (x *Job) GetRequeue() uint32 { - if x != nil { - return x.Requeue - } - return 0 -} - -func (x *Job) GetResizeTime() int64 { - if x != nil { - return x.ResizeTime - } - return 0 -} - -func (x *Job) GetRestartCnt() uint32 { - if x != nil { - return x.RestartCnt - } - return 0 -} - -func (x *Job) GetResvName() string { - if x != nil { - return x.ResvName - } - return "" -} - -func (x *Job) GetShared() uint32 { - if x != nil { - return x.Shared - } - return 0 -} - -func (x *Job) GetShowFlags() uint32 { - if x != nil { - return x.ShowFlags - } - return 0 -} - -func (x *Job) GetStartTime() int64 { - if x != nil { - return x.StartTime - } - return 0 -} - -func (x *Job) GetStateDesc() string { - if x != nil { - return x.StateDesc - } - return "" -} - -func (x *Job) GetStateReason() uint32 { - if x != nil { - return x.StateReason - } - return 0 -} - -func (x *Job) GetSubmitTime() int64 { - if x != nil { - return x.SubmitTime - } - return 0 -} - -func (x *Job) GetSuspendTime() int64 { - if x != nil { - return x.SuspendTime - } - return 0 -} - -func (x *Job) GetTimeLimit() uint32 { - if x != nil { - return x.TimeLimit - } - return 0 -} - -func (x *Job) GetTimeMin() uint32 { - if x != nil { - return x.TimeMin - } - return 0 -} - -func (x *Job) GetUserId() uint32 { - if x != nil { - return x.UserId - } - return 0 -} - -func (x *Job) GetPreemptTime() int64 { - if x != nil { - return x.PreemptTime - } - return 0 -} - -func (x *Job) GetWait4Switch() uint32 { - if x != nil { - return x.Wait4Switch - } - return 0 -} - -func (x *Job) GetWckey() string { - if x != nil { - return x.Wckey - } - return "" -} - -func (x *Job) GetWorkDir() string { - if x != nil { - return x.WorkDir - } - return "" -} - -type ListJobReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *ListJobReq) Reset() { - *x = ListJobReq{} - if protoimpl.UnsafeEnabled { - mi := &file_hpcTH_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ListJobReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ListJobReq) ProtoMessage() {} - -func (x *ListJobReq) ProtoReflect() protoreflect.Message { - mi := &file_hpcTH_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 ListJobReq.ProtoReflect.Descriptor instead. -func (*ListJobReq) Descriptor() ([]byte, []int) { - return file_hpcTH_proto_rawDescGZIP(), []int{1} -} - -type ListJobResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Code uint32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` // @gotags: copier:"Code" - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` // @gotags: copier:"Msg" - RecordCount uint32 `protobuf:"varint,3,opt,name=record_count,json=recordCount,proto3" json:"record_count,omitempty"` // @gotags: copier:"RecordCount" - Jobs []*Job `protobuf:"bytes,4,rep,name=jobs,proto3" json:"jobs,omitempty"` // @gotags: copier:"Jobs" -} - -func (x *ListJobResp) Reset() { - *x = ListJobResp{} - if protoimpl.UnsafeEnabled { - mi := &file_hpcTH_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ListJobResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ListJobResp) ProtoMessage() {} - -func (x *ListJobResp) ProtoReflect() protoreflect.Message { - mi := &file_hpcTH_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 ListJobResp.ProtoReflect.Descriptor instead. -func (*ListJobResp) Descriptor() ([]byte, []int) { - return file_hpcTH_proto_rawDescGZIP(), []int{2} -} - -func (x *ListJobResp) GetCode() uint32 { - if x != nil { - return x.Code - } - return 0 -} - -func (x *ListJobResp) GetMsg() string { - if x != nil { - return x.Msg - } - return "" -} - -func (x *ListJobResp) GetRecordCount() uint32 { - if x != nil { - return x.RecordCount - } - return 0 -} - -func (x *ListJobResp) GetJobs() []*Job { - if x != nil { - return x.Jobs - } - return nil -} - -// *****************History Job Start************************ -type HistoryJob struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - AllocCpu uint32 `protobuf:"varint,1,opt,name=alloc_cpu,json=allocCpu,proto3" json:"alloc_cpu,omitempty"` // @gotags: copier:"AllocCPU" - AllocNodes uint32 `protobuf:"varint,2,opt,name=alloc_nodes,json=allocNodes,proto3" json:"alloc_nodes,omitempty"` // @gotags: copier:"AllocNodes" - Account string `protobuf:"bytes,3,opt,name=account,proto3" json:"account,omitempty"` // @gotags: copier:"Account" - Associd uint32 `protobuf:"varint,4,opt,name=associd,proto3" json:"associd,omitempty"` // @gotags: copier:"AssocId" - Blockid string `protobuf:"bytes,5,opt,name=blockid,proto3" json:"blockid,omitempty"` // @gotags: copier:"BlockId" - Cluster string `protobuf:"bytes,6,opt,name=cluster,proto3" json:"cluster,omitempty"` // @gotags: copier:"Cluster" - DerivedEc uint32 `protobuf:"varint,7,opt,name=derived_ec,json=derivedEc,proto3" json:"derived_ec,omitempty"` // @gotags: copier:"DerivedEc" - DerivedEs string `protobuf:"bytes,8,opt,name=derived_es,json=derivedEs,proto3" json:"derived_es,omitempty"` // @gotags: copier:"DerivedEs" - Elapsed uint32 `protobuf:"varint,9,opt,name=elapsed,proto3" json:"elapsed,omitempty"` // @gotags: copier:"Elapsed" - Eligible int64 `protobuf:"varint,10,opt,name=eligible,proto3" json:"eligible,omitempty"` // @gotags: copier:"Eligible" - End int64 `protobuf:"varint,11,opt,name=end,proto3" json:"end,omitempty"` // @gotags: copier:"End" - Exitcode uint32 `protobuf:"varint,12,opt,name=exitcode,proto3" json:"exitcode,omitempty"` // @gotags: copier:"ExitCode" - Gid uint32 `protobuf:"varint,13,opt,name=gid,proto3" json:"gid,omitempty"` // @gotags: copier:"Gid" - Jobid uint32 `protobuf:"varint,14,opt,name=jobid,proto3" json:"jobid,omitempty"` // @gotags: copier:"JobId" - Jobname string `protobuf:"bytes,15,opt,name=jobname,proto3" json:"jobname,omitempty"` // @gotags: copier:"JobName" - Lft uint32 `protobuf:"varint,16,opt,name=lft,proto3" json:"lft,omitempty"` // @gotags: copier:"Lft" - Partition string `protobuf:"bytes,17,opt,name=partition,proto3" json:"partition,omitempty"` // @gotags: copier:"Partition" - Nodes string `protobuf:"bytes,18,opt,name=nodes,proto3" json:"nodes,omitempty"` // @gotags: copier:"Nodes" - Priority uint32 `protobuf:"varint,19,opt,name=priority,proto3" json:"priority,omitempty"` // @gotags: copier:"Priority" - Qosid uint32 `protobuf:"varint,20,opt,name=qosid,proto3" json:"qosid,omitempty"` // @gotags: copier:"Qosid" - ReqCpus uint32 `protobuf:"varint,21,opt,name=req_cpus,json=reqCpus,proto3" json:"req_cpus,omitempty"` // @gotags: copier:"ReqCpus" - ReqMem uint32 `protobuf:"varint,22,opt,name=req_mem,json=reqMem,proto3" json:"req_mem,omitempty"` // @gotags: copier:"ReqMem" - Requid uint32 `protobuf:"varint,23,opt,name=requid,proto3" json:"requid,omitempty"` // @gotags: copier:"Requid" - Resvid uint32 `protobuf:"varint,24,opt,name=resvid,proto3" json:"resvid,omitempty"` // @gotags: copier:"Resvid" - ShowFull uint32 `protobuf:"varint,25,opt,name=show_full,json=showFull,proto3" json:"show_full,omitempty"` // @gotags: copier:"ShowFull" - Start int64 `protobuf:"varint,26,opt,name=start,proto3" json:"start,omitempty"` // @gotags: copier:"Start" - State uint32 `protobuf:"varint,27,opt,name=state,proto3" json:"state,omitempty"` // @gotags: copier:"State" - Submit int64 `protobuf:"varint,28,opt,name=submit,proto3" json:"submit,omitempty"` // @gotags: copier:"Submit" - Suspended uint32 `protobuf:"varint,29,opt,name=suspended,proto3" json:"suspended,omitempty"` // @gotags: copier:"Suspended" - SysCpuSec uint32 `protobuf:"varint,30,opt,name=sys_cpu_sec,json=sysCpuSec,proto3" json:"sys_cpu_sec,omitempty"` // @gotags: copier:"SysCpuSec" - SysCpuUsec uint32 `protobuf:"varint,31,opt,name=sys_cpu_usec,json=sysCpuUsec,proto3" json:"sys_cpu_usec,omitempty"` // @gotags: copier:"SysCpuUsec" - Timelimit uint32 `protobuf:"varint,32,opt,name=timelimit,proto3" json:"timelimit,omitempty"` // @gotags: copier:"Timelimit" - TotCpuSec uint32 `protobuf:"varint,33,opt,name=tot_cpu_sec,json=totCpuSec,proto3" json:"tot_cpu_sec,omitempty"` // @gotags: copier:"TotCpuSec" - TotCpuUsec uint32 `protobuf:"varint,34,opt,name=tot_cpu_usec,json=totCpuUsec,proto3" json:"tot_cpu_usec,omitempty"` // @gotags: copier:"TotCpuUsec" - TrackSteps uint32 `protobuf:"varint,35,opt,name=track_steps,json=trackSteps,proto3" json:"track_steps,omitempty"` // @gotags: copier:"TrackSteps" - Uid uint32 `protobuf:"varint,36,opt,name=uid,proto3" json:"uid,omitempty"` // @gotags: copier:"Uid" - User string `protobuf:"bytes,37,opt,name=user,proto3" json:"user,omitempty"` // @gotags: copier:"User" - UserCpuSec uint32 `protobuf:"varint,38,opt,name=user_cpu_sec,json=userCpuSec,proto3" json:"user_cpu_sec,omitempty"` // @gotags: copier:"UserCpuSec" - UserCpuUsec uint32 `protobuf:"varint,39,opt,name=user_cpu_usec,json=userCpuUsec,proto3" json:"user_cpu_usec,omitempty"` // @gotags: copier:"UserCpuUsec" - Wckey string `protobuf:"bytes,40,opt,name=wckey,proto3" json:"wckey,omitempty"` // @gotags: copier:"Wckey" - Wckeyid uint32 `protobuf:"varint,41,opt,name=wckeyid,proto3" json:"wckeyid,omitempty"` // @gotags: copier:"Wckeyid" -} - -func (x *HistoryJob) Reset() { - *x = HistoryJob{} - if protoimpl.UnsafeEnabled { - mi := &file_hpcTH_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *HistoryJob) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*HistoryJob) ProtoMessage() {} - -func (x *HistoryJob) ProtoReflect() protoreflect.Message { - mi := &file_hpcTH_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 HistoryJob.ProtoReflect.Descriptor instead. -func (*HistoryJob) Descriptor() ([]byte, []int) { - return file_hpcTH_proto_rawDescGZIP(), []int{3} -} - -func (x *HistoryJob) GetAllocCpu() uint32 { - if x != nil { - return x.AllocCpu - } - return 0 -} - -func (x *HistoryJob) GetAllocNodes() uint32 { - if x != nil { - return x.AllocNodes - } - return 0 -} - -func (x *HistoryJob) GetAccount() string { - if x != nil { - return x.Account - } - return "" -} - -func (x *HistoryJob) GetAssocid() uint32 { - if x != nil { - return x.Associd - } - return 0 -} - -func (x *HistoryJob) GetBlockid() string { - if x != nil { - return x.Blockid - } - return "" -} - -func (x *HistoryJob) GetCluster() string { - if x != nil { - return x.Cluster - } - return "" -} - -func (x *HistoryJob) GetDerivedEc() uint32 { - if x != nil { - return x.DerivedEc - } - return 0 -} - -func (x *HistoryJob) GetDerivedEs() string { - if x != nil { - return x.DerivedEs - } - return "" -} - -func (x *HistoryJob) GetElapsed() uint32 { - if x != nil { - return x.Elapsed - } - return 0 -} - -func (x *HistoryJob) GetEligible() int64 { - if x != nil { - return x.Eligible - } - return 0 -} - -func (x *HistoryJob) GetEnd() int64 { - if x != nil { - return x.End - } - return 0 -} - -func (x *HistoryJob) GetExitcode() uint32 { - if x != nil { - return x.Exitcode - } - return 0 -} - -func (x *HistoryJob) GetGid() uint32 { - if x != nil { - return x.Gid - } - return 0 -} - -func (x *HistoryJob) GetJobid() uint32 { - if x != nil { - return x.Jobid - } - return 0 -} - -func (x *HistoryJob) GetJobname() string { - if x != nil { - return x.Jobname - } - return "" -} - -func (x *HistoryJob) GetLft() uint32 { - if x != nil { - return x.Lft - } - return 0 -} - -func (x *HistoryJob) GetPartition() string { - if x != nil { - return x.Partition - } - return "" -} - -func (x *HistoryJob) GetNodes() string { - if x != nil { - return x.Nodes - } - return "" -} - -func (x *HistoryJob) GetPriority() uint32 { - if x != nil { - return x.Priority - } - return 0 -} - -func (x *HistoryJob) GetQosid() uint32 { - if x != nil { - return x.Qosid - } - return 0 -} - -func (x *HistoryJob) GetReqCpus() uint32 { - if x != nil { - return x.ReqCpus - } - return 0 -} - -func (x *HistoryJob) GetReqMem() uint32 { - if x != nil { - return x.ReqMem - } - return 0 -} - -func (x *HistoryJob) GetRequid() uint32 { - if x != nil { - return x.Requid - } - return 0 -} - -func (x *HistoryJob) GetResvid() uint32 { - if x != nil { - return x.Resvid - } - return 0 -} - -func (x *HistoryJob) GetShowFull() uint32 { - if x != nil { - return x.ShowFull - } - return 0 -} - -func (x *HistoryJob) GetStart() int64 { - if x != nil { - return x.Start - } - return 0 -} - -func (x *HistoryJob) GetState() uint32 { - if x != nil { - return x.State - } - return 0 -} - -func (x *HistoryJob) GetSubmit() int64 { - if x != nil { - return x.Submit - } - return 0 -} - -func (x *HistoryJob) GetSuspended() uint32 { - if x != nil { - return x.Suspended - } - return 0 -} - -func (x *HistoryJob) GetSysCpuSec() uint32 { - if x != nil { - return x.SysCpuSec - } - return 0 -} - -func (x *HistoryJob) GetSysCpuUsec() uint32 { - if x != nil { - return x.SysCpuUsec - } - return 0 -} - -func (x *HistoryJob) GetTimelimit() uint32 { - if x != nil { - return x.Timelimit - } - return 0 -} - -func (x *HistoryJob) GetTotCpuSec() uint32 { - if x != nil { - return x.TotCpuSec - } - return 0 -} - -func (x *HistoryJob) GetTotCpuUsec() uint32 { - if x != nil { - return x.TotCpuUsec - } - return 0 -} - -func (x *HistoryJob) GetTrackSteps() uint32 { - if x != nil { - return x.TrackSteps - } - return 0 -} - -func (x *HistoryJob) GetUid() uint32 { - if x != nil { - return x.Uid - } - return 0 -} - -func (x *HistoryJob) GetUser() string { - if x != nil { - return x.User - } - return "" -} - -func (x *HistoryJob) GetUserCpuSec() uint32 { - if x != nil { - return x.UserCpuSec - } - return 0 -} - -func (x *HistoryJob) GetUserCpuUsec() uint32 { - if x != nil { - return x.UserCpuUsec - } - return 0 -} - -func (x *HistoryJob) GetWckey() string { - if x != nil { - return x.Wckey - } - return "" -} - -func (x *HistoryJob) GetWckeyid() uint32 { - if x != nil { - return x.Wckeyid - } - return 0 -} - -type ListHistoryJobReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *ListHistoryJobReq) Reset() { - *x = ListHistoryJobReq{} - if protoimpl.UnsafeEnabled { - mi := &file_hpcTH_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ListHistoryJobReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ListHistoryJobReq) ProtoMessage() {} - -func (x *ListHistoryJobReq) ProtoReflect() protoreflect.Message { - mi := &file_hpcTH_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 ListHistoryJobReq.ProtoReflect.Descriptor instead. -func (*ListHistoryJobReq) Descriptor() ([]byte, []int) { - return file_hpcTH_proto_rawDescGZIP(), []int{4} -} - -type ListHistoryJobResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Code uint32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` // @gotags: copier:"Code" - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` // @gotags: copier:"Msg" - RecordCount uint32 `protobuf:"varint,3,opt,name=record_count,json=recordCount,proto3" json:"record_count,omitempty"` // @gotags: copier:"RecordCount" - HistoryJobs []*HistoryJob `protobuf:"bytes,4,rep,name=history_jobs,json=historyJobs,proto3" json:"history_jobs,omitempty"` // @gotags: copier:"HistoryJobs" -} - -func (x *ListHistoryJobResp) Reset() { - *x = ListHistoryJobResp{} - if protoimpl.UnsafeEnabled { - mi := &file_hpcTH_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ListHistoryJobResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ListHistoryJobResp) ProtoMessage() {} - -func (x *ListHistoryJobResp) ProtoReflect() protoreflect.Message { - mi := &file_hpcTH_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 ListHistoryJobResp.ProtoReflect.Descriptor instead. -func (*ListHistoryJobResp) Descriptor() ([]byte, []int) { - return file_hpcTH_proto_rawDescGZIP(), []int{5} -} - -func (x *ListHistoryJobResp) GetCode() uint32 { - if x != nil { - return x.Code - } - return 0 -} - -func (x *ListHistoryJobResp) GetMsg() string { - if x != nil { - return x.Msg - } - return "" -} - -func (x *ListHistoryJobResp) GetRecordCount() uint32 { - if x != nil { - return x.RecordCount - } - return 0 -} - -func (x *ListHistoryJobResp) GetHistoryJobs() []*HistoryJob { - if x != nil { - return x.HistoryJobs - } - return nil -} - -// *****************Job(Submit) Start************************ -type SubmitJobReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Account string `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"` // @gotags: copier:"account" /* charge to specified account */ - AcctgFreq string `protobuf:"bytes,2,opt,name=acctg_freq,json=acctgFreq,proto3" json:"acctg_freq,omitempty"` // @gotags: copier:"acctg_freq" /* accounting polling intervals (seconds) */ - AllocNode string `protobuf:"bytes,3,opt,name=alloc_node,json=allocNode,proto3" json:"alloc_node,omitempty"` // @gotags: copier:"alloc_node" /* node making resource allocation request * NOTE: Normally set by slurm_submit* or * slurm_allocate* function */ - AllocRespPort uint32 `protobuf:"varint,4,opt,name=alloc_resp_port,json=allocRespPort,proto3" json:"alloc_resp_port,omitempty"` // @gotags: copier:"alloc_resp_port" /* port to send allocation confirmation to */ - AllocSid uint32 `protobuf:"varint,5,opt,name=alloc_sid,json=allocSid,proto3" json:"alloc_sid,omitempty"` // @gotags: copier:"alloc_sid" /* local sid making resource allocation request * NOTE: Normally set by slurm_submit* or * slurm_allocate* function * NOTE: Also used for update flags, see * ALLOC_SID_* flags */ - Argc uint32 `protobuf:"varint,6,opt,name=argc,proto3" json:"argc,omitempty"` // @gotags: copier:"argc" /* number of arguments to the script */ - Argv []*Argv `protobuf:"bytes,7,rep,name=argv,proto3" json:"argv,omitempty"` // @gotags: copier:"Argv" /* arguments to the script */ - ArrayInx string `protobuf:"bytes,8,opt,name=array_inx,json=arrayInx,proto3" json:"array_inx,omitempty"` // @gotags: copier:"array_inx" /* job array index values */ //void *array_bitmap; /* NOTE: Set by slurmctld */ - BeginTime int64 `protobuf:"varint,9,opt,name=begin_time,json=beginTime,proto3" json:"begin_time,omitempty"` // @gotags: copier:"begin_time" /* delay initiation until this time */ - CkptInterval uint32 `protobuf:"varint,10,opt,name=ckpt_interval,json=ckptInterval,proto3" json:"ckpt_interval,omitempty"` // @gotags: copier:"ckpt_interval" /* periodically checkpoint this job */ - CkptDir string `protobuf:"bytes,11,opt,name=ckpt_dir,json=ckptDir,proto3" json:"ckpt_dir,omitempty"` // @gotags: copier:"ckpt_dir" /* directory to store checkpoint images */ - Comment string `protobuf:"bytes,12,opt,name=comment,proto3" json:"comment,omitempty"` // @gotags: copier:"comment" /* arbitrary comment (used by Moab scheduler) */ - Contiguous uint32 `protobuf:"varint,13,opt,name=contiguous,proto3" json:"contiguous,omitempty"` // @gotags: copier:"contiguous" /* 1 if job requires contiguous nodes,* 0 otherwise,default=0 */ - CpuBind string `protobuf:"bytes,14,opt,name=cpu_bind,json=cpuBind,proto3" json:"cpu_bind,omitempty"` // @gotags: copier:"cpu_bind" /* binding map for map/mask_cpu */ - CpuBindType uint32 `protobuf:"varint,15,opt,name=cpu_bind_type,json=cpuBindType,proto3" json:"cpu_bind_type,omitempty"` // @gotags: copier:"cpu_bind_type" /* see cpu_bind_type_t */ - Dependency string `protobuf:"bytes,16,opt,name=dependency,proto3" json:"dependency,omitempty"` // @gotags: copier:"dependency" /* synchronize job execution with other jobs */ - EndTime int64 `protobuf:"varint,17,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` // @gotags: copier:"end_time" /* time by which job must complete, used for * job update only now, possible deadline * scheduling in the future */ - Environment []*Environment `protobuf:"bytes,18,rep,name=environment,proto3" json:"environment,omitempty"` // @gotags: copier:"Environment" /* environment variables to set for job, * name=value pairs, one per line */ - EnvSize uint32 `protobuf:"varint,19,opt,name=env_size,json=envSize,proto3" json:"env_size,omitempty"` // @gotags: copier:"env_size" /* element count in environment */ - ExcNodes string `protobuf:"bytes,20,opt,name=exc_nodes,json=excNodes,proto3" json:"exc_nodes,omitempty"` // @gotags: copier:"exc_nodes" /* comma separated list of nodes excluded * from job's allocation, default NONE */ - Features string `protobuf:"bytes,21,opt,name=features,proto3" json:"features,omitempty"` // @gotags: copier:"features" /* comma separated list of required features, * default NONE */ - Gres string `protobuf:"bytes,22,opt,name=gres,proto3" json:"gres,omitempty"` // @gotags: copier:"gres" /* comma separated list of required generic * resources, default NONE */ - GroupId uint32 `protobuf:"varint,23,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"` // @gotags: copier:"group_id" /* group to assume, if run as root. */ - Immediate uint32 `protobuf:"varint,24,opt,name=immediate,proto3" json:"immediate,omitempty"` // @gotags: copier:"immediate" /* 1 if allocate to run or fail immediately, * 0 if to be queued awaiting resources */ - JobId uint32 `protobuf:"varint,25,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"` // @gotags: copier:"job_id" /* job ID, default set by SLURM */ - KillOnNodeFail uint32 `protobuf:"varint,26,opt,name=kill_on_node_fail,json=killOnNodeFail,proto3" json:"kill_on_node_fail,omitempty"` // @gotags: copier:"kill_on_node_fail" /* 1 if node failure to kill job, * 0 otherwise,default=1 */ - Licenses string `protobuf:"bytes,27,opt,name=licenses,proto3" json:"licenses,omitempty"` // @gotags: copier:"licenses" /* licenses required by the job */ - MailType uint32 `protobuf:"varint,28,opt,name=mail_type,json=mailType,proto3" json:"mail_type,omitempty"` // @gotags: copier:"mail_type" /* see MAIL_JOB_ definitions above */ - MailUser string `protobuf:"bytes,29,opt,name=mail_user,json=mailUser,proto3" json:"mail_user,omitempty"` // @gotags: copier:"mail_user" /* user to receive notification */ - MemBind string `protobuf:"bytes,30,opt,name=mem_bind,json=memBind,proto3" json:"mem_bind,omitempty"` // @gotags: copier:"mem_bind" /* binding map for map/mask_cpu */ - MemBindType uint32 `protobuf:"varint,31,opt,name=mem_bind_type,json=memBindType,proto3" json:"mem_bind_type,omitempty"` // @gotags: copier:"mem_bind_type" /* see mem_bind_type_t */ - Name string `protobuf:"bytes,32,opt,name=name,proto3" json:"name,omitempty"` // @gotags: copier:"name" /* name of the job, default "" */ - Network string `protobuf:"bytes,33,opt,name=network,proto3" json:"network,omitempty"` // @gotags: copier:"network" /* network use spec */ - Nice uint32 `protobuf:"varint,34,opt,name=nice,proto3" json:"nice,omitempty"` // @gotags: copier:"nice" /* requested priority change, * NICE_OFFSET == no change */ - NumTasks uint32 `protobuf:"varint,35,opt,name=num_tasks,json=numTasks,proto3" json:"num_tasks,omitempty"` // @gotags: copier:"num_tasks" /* number of tasks to be started, * for batch only */ - OpenMode uint32 `protobuf:"varint,36,opt,name=open_mode,json=openMode,proto3" json:"open_mode,omitempty"` // @gotags: copier:"open_mode" /* out/err open mode truncate or append, * see OPEN_MODE_* */ - OtherPort uint32 `protobuf:"varint,37,opt,name=other_port,json=otherPort,proto3" json:"other_port,omitempty"` // @gotags: copier:"other_port" /* port to send various notification msg to */ - Overcommit uint32 `protobuf:"varint,38,opt,name=overcommit,proto3" json:"overcommit,omitempty"` // @gotags: copier:"overcommit" /* over subscribe resources, for batch only */ - Partition string `protobuf:"bytes,39,opt,name=partition,proto3" json:"partition,omitempty"` // @gotags: copier:"partition" /* name of requested partition, * default in SLURM config */ - PlaneSize uint32 `protobuf:"varint,40,opt,name=plane_size,json=planeSize,proto3" json:"plane_size,omitempty"` // @gotags: copier:"plane_size" /* plane size when task_dist = SLURM_DIST_PLANE */ - Priority uint32 `protobuf:"varint,41,opt,name=priority,proto3" json:"priority,omitempty"` // @gotags: copier:"priority" /* relative priority of the job, * explicitly set only for user root, * 0 == held (don't initiate) */ - Profile uint32 `protobuf:"varint,42,opt,name=profile,proto3" json:"profile,omitempty"` // @gotags: copier:"profile" /* Level of acct_gather_profile {all | none} */ - Qos string `protobuf:"bytes,43,opt,name=qos,proto3" json:"qos,omitempty"` // @gotags: copier:"qos" /* Quality of Service */ - RespHost string `protobuf:"bytes,44,opt,name=resp_host,json=respHost,proto3" json:"resp_host,omitempty"` // @gotags: copier:"resp_host" /* NOTE: Set by slurmctld */ - ReqNodes string `protobuf:"bytes,45,opt,name=req_nodes,json=reqNodes,proto3" json:"req_nodes,omitempty"` // @gotags: copier:"req_nodes" /* comma separated list of required nodes * default NONE */ - Requeue uint32 `protobuf:"varint,46,opt,name=requeue,proto3" json:"requeue,omitempty"` // @gotags: copier:"requeue" /* enable or disable job requeue option */ - Reservation string `protobuf:"bytes,47,opt,name=reservation,proto3" json:"reservation,omitempty"` // @gotags: copier:"reservation" /* name of reservation to use */ - Script string `protobuf:"bytes,48,opt,name=script,proto3" json:"script,omitempty"` // @gotags: copier:"script" /* the actual job script, default NONE */ - Shared uint32 `protobuf:"varint,49,opt,name=shared,proto3" json:"shared,omitempty"` // @gotags: copier:"shared" /* 1 if job can share nodes with other jobs, * 0 if job needs exclusive access to the node, * or NO_VAL to accept the system default. * SHARED_FORCE to eliminate user control. */ //char **spank_job_env; environment variables for job prolog/epilog // * scripts as set by SPANK plugins - SpankJobEnvSize uint32 `protobuf:"varint,50,opt,name=spank_job_env_size,json=spankJobEnvSize,proto3" json:"spank_job_env_size,omitempty"` // @gotags: copier:"spank_job_env_size" /* element count in spank_env */ - TaskDist uint32 `protobuf:"varint,51,opt,name=task_dist,json=taskDist,proto3" json:"task_dist,omitempty"` // @gotags: copier:"task_dist" /* see enum task_dist_state */ - TimeLimit uint32 `protobuf:"varint,52,opt,name=time_limit,json=timeLimit,proto3" json:"time_limit,omitempty"` // @gotags: copier:"time_limit" /* maximum run time in minutes, default is * partition limit */ - TimeMin uint32 `protobuf:"varint,53,opt,name=time_min,json=timeMin,proto3" json:"time_min,omitempty"` // @gotags: copier:"time_min" /* minimum run time in minutes, default is * time_limit */ - UserId uint32 `protobuf:"varint,54,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` // @gotags: copier:"user_id" /* set only if different from current UID, * can only be explicitly set by user root */ - WaitAllNodes uint32 `protobuf:"varint,55,opt,name=wait_all_nodes,json=waitAllNodes,proto3" json:"wait_all_nodes,omitempty"` // @gotags: copier:"wait_all_nodes" /* 0 to start job immediately after allocation * 1 to start job after all nodes booted * or NO_VAL to use system default */ - WarnSignal uint32 `protobuf:"varint,56,opt,name=warn_signal,json=warnSignal,proto3" json:"warn_signal,omitempty"` // @gotags: copier:"warn_signal" /* signal to send when approaching end time */ - WarnTime uint32 `protobuf:"varint,57,opt,name=warn_time,json=warnTime,proto3" json:"warn_time,omitempty"` // @gotags: copier:"warn_time" /* time before end to send signal (seconds) */ - WorkDir string `protobuf:"bytes,58,opt,name=work_dir,json=workDir,proto3" json:"work_dir,omitempty"` // @gotags: copier:"work_dir" /* pathname of working directory */ /* job constraints: */ - CpusPerTask uint32 `protobuf:"varint,59,opt,name=cpus_per_task,json=cpusPerTask,proto3" json:"cpus_per_task,omitempty"` // @gotags: copier:"cpus_per_task" /* number of processors required for * each task */ - MinCpus uint32 `protobuf:"varint,60,opt,name=min_cpus,json=minCpus,proto3" json:"min_cpus,omitempty"` // @gotags: copier:"min_cpus" /* minimum number of processors required, * default=0 */ - MaxCpus uint32 `protobuf:"varint,61,opt,name=max_cpus,json=maxCpus,proto3" json:"max_cpus,omitempty"` // @gotags: copier:"max_cpus" /* maximum number of processors required, * default=0 */ - MinNodes uint32 `protobuf:"varint,62,opt,name=min_nodes,json=minNodes,proto3" json:"min_nodes,omitempty"` // @gotags: copier:"min_nodes" /* minimum number of nodes required by job, * default=0 */ - MaxNodes uint32 `protobuf:"varint,63,opt,name=max_nodes,json=maxNodes,proto3" json:"max_nodes,omitempty"` // @gotags: copier:"max_nodes" /* maximum number of nodes usable by job, * default=0 */ - BoardsPerNode uint32 `protobuf:"varint,64,opt,name=boards_per_node,json=boardsPerNode,proto3" json:"boards_per_node,omitempty"` // @gotags: copier:"boards_per_node" /* boards per node required by job */ - SocketsPerBoard uint32 `protobuf:"varint,65,opt,name=sockets_per_board,json=socketsPerBoard,proto3" json:"sockets_per_board,omitempty"` // @gotags: copier:"sockets_per_board" /* sockets per board required by job */ - SocketsPerNode uint32 `protobuf:"varint,66,opt,name=sockets_per_node,json=socketsPerNode,proto3" json:"sockets_per_node,omitempty"` // @gotags: copier:"sockets_per_node" /* sockets per node required by job */ - CoresPerSocket uint32 `protobuf:"varint,67,opt,name=cores_per_socket,json=coresPerSocket,proto3" json:"cores_per_socket,omitempty"` // @gotags: copier:"cores_per_socket" /* cores per socket required by job */ - ThreadsPerCore uint32 `protobuf:"varint,68,opt,name=threads_per_core,json=threadsPerCore,proto3" json:"threads_per_core,omitempty"` // @gotags: copier:"threads_per_core" /* threads per core required by job */ - NtasksPerNode uint32 `protobuf:"varint,69,opt,name=ntasks_per_node,json=ntasksPerNode,proto3" json:"ntasks_per_node,omitempty"` // @gotags: copier:"ntasks_per_node" /* number of tasks to invoke on each node */ - NtasksPerSocket uint32 `protobuf:"varint,70,opt,name=ntasks_per_socket,json=ntasksPerSocket,proto3" json:"ntasks_per_socket,omitempty"` // @gotags: copier:"ntasks_per_socket" /* number of tasks to invoke on * each socket */ - NtasksPerCore uint32 `protobuf:"varint,71,opt,name=ntasks_per_core,json=ntasksPerCore,proto3" json:"ntasks_per_core,omitempty"` // @gotags: copier:"ntasks_per_core" /* number of tasks to invoke on each core */ - NtasksPerBoard uint32 `protobuf:"varint,72,opt,name=ntasks_per_board,json=ntasksPerBoard,proto3" json:"ntasks_per_board,omitempty"` // @gotags: copier:"ntasks_per_board" /* number of tasks to invoke on each board */ - PnMinCpus uint32 `protobuf:"varint,73,opt,name=pn_min_cpus,json=pnMinCpus,proto3" json:"pn_min_cpus,omitempty"` // @gotags: copier:"pn_min_cpus" /* minimum # CPUs per node, default=0 */ - PnMinMemory uint32 `protobuf:"varint,74,opt,name=pn_min_memory,json=pnMinMemory,proto3" json:"pn_min_memory,omitempty"` // @gotags: copier:"pn_min_memory" /* minimum real memory per node OR * real memory per CPU | MEM_PER_CPU, * default=0 (no limit) */ - PnMinTmpDisk uint32 `protobuf:"varint,75,opt,name=pn_min_tmp_disk,json=pnMinTmpDisk,proto3" json:"pn_min_tmp_disk,omitempty"` // @gotags: copier:"pn_min_tmp_disk" /* minimum tmp disk per node, * default=0 */ - // uint16_t geometry[HIGHEST_DIMENSIONS]; node count in various // * dimensions, e.g. X, Y, and Z - // uint16_t conn_type[HIGHEST_DIMENSIONS]; see enum connection_type - Reboot uint32 `protobuf:"varint,76,opt,name=reboot,proto3" json:"reboot,omitempty"` // @gotags: copier:"reboot" /* force node reboot before startup */ - Rotate uint32 `protobuf:"varint,77,opt,name=rotate,proto3" json:"rotate,omitempty"` // @gotags: copier:"rotate" /* permit geometry rotation if set */ - ReqSwitch uint32 `protobuf:"varint,78,opt,name=req_switch,json=reqSwitch,proto3" json:"req_switch,omitempty"` // @gotags: copier:"req_switch" /* Minimum number of switches */ //dynamic_plugin_data_t *select_jobinfo; /* opaque data type, // * SLURM internal use only */ - StdErr string `protobuf:"bytes,79,opt,name=std_err,json=stdErr,proto3" json:"std_err,omitempty"` // @gotags: copier:"std_err" /* pathname of stderr */ - StdIn string `protobuf:"bytes,80,opt,name=std_in,json=stdIn,proto3" json:"std_in,omitempty"` // @gotags: copier:"std_in" /* pathname of stdin */ - StdOut string `protobuf:"bytes,81,opt,name=std_out,json=stdOut,proto3" json:"std_out,omitempty"` // @gotags: copier:"std_out" /* pathname of stdout */ - Wait4Switch uint32 `protobuf:"varint,82,opt,name=wait4switch,proto3" json:"wait4switch,omitempty"` // @gotags: copier:"wait4switch" /* Maximum time to wait for minimum switches */ - Wckey string `protobuf:"bytes,83,opt,name=wckey,proto3" json:"wckey,omitempty"` // @gotags: copier:"wckey" /* wckey for job */ -} - -func (x *SubmitJobReq) Reset() { - *x = SubmitJobReq{} - if protoimpl.UnsafeEnabled { - mi := &file_hpcTH_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SubmitJobReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SubmitJobReq) ProtoMessage() {} - -func (x *SubmitJobReq) ProtoReflect() protoreflect.Message { - mi := &file_hpcTH_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 SubmitJobReq.ProtoReflect.Descriptor instead. -func (*SubmitJobReq) Descriptor() ([]byte, []int) { - return file_hpcTH_proto_rawDescGZIP(), []int{6} -} - -func (x *SubmitJobReq) GetAccount() string { - if x != nil { - return x.Account - } - return "" -} - -func (x *SubmitJobReq) GetAcctgFreq() string { - if x != nil { - return x.AcctgFreq - } - return "" -} - -func (x *SubmitJobReq) GetAllocNode() string { - if x != nil { - return x.AllocNode - } - return "" -} - -func (x *SubmitJobReq) GetAllocRespPort() uint32 { - if x != nil { - return x.AllocRespPort - } - return 0 -} - -func (x *SubmitJobReq) GetAllocSid() uint32 { - if x != nil { - return x.AllocSid - } - return 0 -} - -func (x *SubmitJobReq) GetArgc() uint32 { - if x != nil { - return x.Argc - } - return 0 -} - -func (x *SubmitJobReq) GetArgv() []*Argv { - if x != nil { - return x.Argv - } - return nil -} - -func (x *SubmitJobReq) GetArrayInx() string { - if x != nil { - return x.ArrayInx - } - return "" -} - -func (x *SubmitJobReq) GetBeginTime() int64 { - if x != nil { - return x.BeginTime - } - return 0 -} - -func (x *SubmitJobReq) GetCkptInterval() uint32 { - if x != nil { - return x.CkptInterval - } - return 0 -} - -func (x *SubmitJobReq) GetCkptDir() string { - if x != nil { - return x.CkptDir - } - return "" -} - -func (x *SubmitJobReq) GetComment() string { - if x != nil { - return x.Comment - } - return "" -} - -func (x *SubmitJobReq) GetContiguous() uint32 { - if x != nil { - return x.Contiguous - } - return 0 -} - -func (x *SubmitJobReq) GetCpuBind() string { - if x != nil { - return x.CpuBind - } - return "" -} - -func (x *SubmitJobReq) GetCpuBindType() uint32 { - if x != nil { - return x.CpuBindType - } - return 0 -} - -func (x *SubmitJobReq) GetDependency() string { - if x != nil { - return x.Dependency - } - return "" -} - -func (x *SubmitJobReq) GetEndTime() int64 { - if x != nil { - return x.EndTime - } - return 0 -} - -func (x *SubmitJobReq) GetEnvironment() []*Environment { - if x != nil { - return x.Environment - } - return nil -} - -func (x *SubmitJobReq) GetEnvSize() uint32 { - if x != nil { - return x.EnvSize - } - return 0 -} - -func (x *SubmitJobReq) GetExcNodes() string { - if x != nil { - return x.ExcNodes - } - return "" -} - -func (x *SubmitJobReq) GetFeatures() string { - if x != nil { - return x.Features - } - return "" -} - -func (x *SubmitJobReq) GetGres() string { - if x != nil { - return x.Gres - } - return "" -} - -func (x *SubmitJobReq) GetGroupId() uint32 { - if x != nil { - return x.GroupId - } - return 0 -} - -func (x *SubmitJobReq) GetImmediate() uint32 { - if x != nil { - return x.Immediate - } - return 0 -} - -func (x *SubmitJobReq) GetJobId() uint32 { - if x != nil { - return x.JobId - } - return 0 -} - -func (x *SubmitJobReq) GetKillOnNodeFail() uint32 { - if x != nil { - return x.KillOnNodeFail - } - return 0 -} - -func (x *SubmitJobReq) GetLicenses() string { - if x != nil { - return x.Licenses - } - return "" -} - -func (x *SubmitJobReq) GetMailType() uint32 { - if x != nil { - return x.MailType - } - return 0 -} - -func (x *SubmitJobReq) GetMailUser() string { - if x != nil { - return x.MailUser - } - return "" -} - -func (x *SubmitJobReq) GetMemBind() string { - if x != nil { - return x.MemBind - } - return "" -} - -func (x *SubmitJobReq) GetMemBindType() uint32 { - if x != nil { - return x.MemBindType - } - return 0 -} - -func (x *SubmitJobReq) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -func (x *SubmitJobReq) GetNetwork() string { - if x != nil { - return x.Network - } - return "" -} - -func (x *SubmitJobReq) GetNice() uint32 { - if x != nil { - return x.Nice - } - return 0 -} - -func (x *SubmitJobReq) GetNumTasks() uint32 { - if x != nil { - return x.NumTasks - } - return 0 -} - -func (x *SubmitJobReq) GetOpenMode() uint32 { - if x != nil { - return x.OpenMode - } - return 0 -} - -func (x *SubmitJobReq) GetOtherPort() uint32 { - if x != nil { - return x.OtherPort - } - return 0 -} - -func (x *SubmitJobReq) GetOvercommit() uint32 { - if x != nil { - return x.Overcommit - } - return 0 -} - -func (x *SubmitJobReq) GetPartition() string { - if x != nil { - return x.Partition - } - return "" -} - -func (x *SubmitJobReq) GetPlaneSize() uint32 { - if x != nil { - return x.PlaneSize - } - return 0 -} - -func (x *SubmitJobReq) GetPriority() uint32 { - if x != nil { - return x.Priority - } - return 0 -} - -func (x *SubmitJobReq) GetProfile() uint32 { - if x != nil { - return x.Profile - } - return 0 -} - -func (x *SubmitJobReq) GetQos() string { - if x != nil { - return x.Qos - } - return "" -} - -func (x *SubmitJobReq) GetRespHost() string { - if x != nil { - return x.RespHost - } - return "" -} - -func (x *SubmitJobReq) GetReqNodes() string { - if x != nil { - return x.ReqNodes - } - return "" -} - -func (x *SubmitJobReq) GetRequeue() uint32 { - if x != nil { - return x.Requeue - } - return 0 -} - -func (x *SubmitJobReq) GetReservation() string { - if x != nil { - return x.Reservation - } - return "" -} - -func (x *SubmitJobReq) GetScript() string { - if x != nil { - return x.Script - } - return "" -} - -func (x *SubmitJobReq) GetShared() uint32 { - if x != nil { - return x.Shared - } - return 0 -} - -func (x *SubmitJobReq) GetSpankJobEnvSize() uint32 { - if x != nil { - return x.SpankJobEnvSize - } - return 0 -} - -func (x *SubmitJobReq) GetTaskDist() uint32 { - if x != nil { - return x.TaskDist - } - return 0 -} - -func (x *SubmitJobReq) GetTimeLimit() uint32 { - if x != nil { - return x.TimeLimit - } - return 0 -} - -func (x *SubmitJobReq) GetTimeMin() uint32 { - if x != nil { - return x.TimeMin - } - return 0 -} - -func (x *SubmitJobReq) GetUserId() uint32 { - if x != nil { - return x.UserId - } - return 0 -} - -func (x *SubmitJobReq) GetWaitAllNodes() uint32 { - if x != nil { - return x.WaitAllNodes - } - return 0 -} - -func (x *SubmitJobReq) GetWarnSignal() uint32 { - if x != nil { - return x.WarnSignal - } - return 0 -} - -func (x *SubmitJobReq) GetWarnTime() uint32 { - if x != nil { - return x.WarnTime - } - return 0 -} - -func (x *SubmitJobReq) GetWorkDir() string { - if x != nil { - return x.WorkDir - } - return "" -} - -func (x *SubmitJobReq) GetCpusPerTask() uint32 { - if x != nil { - return x.CpusPerTask - } - return 0 -} - -func (x *SubmitJobReq) GetMinCpus() uint32 { - if x != nil { - return x.MinCpus - } - return 0 -} - -func (x *SubmitJobReq) GetMaxCpus() uint32 { - if x != nil { - return x.MaxCpus - } - return 0 -} - -func (x *SubmitJobReq) GetMinNodes() uint32 { - if x != nil { - return x.MinNodes - } - return 0 -} - -func (x *SubmitJobReq) GetMaxNodes() uint32 { - if x != nil { - return x.MaxNodes - } - return 0 -} - -func (x *SubmitJobReq) GetBoardsPerNode() uint32 { - if x != nil { - return x.BoardsPerNode - } - return 0 -} - -func (x *SubmitJobReq) GetSocketsPerBoard() uint32 { - if x != nil { - return x.SocketsPerBoard - } - return 0 -} - -func (x *SubmitJobReq) GetSocketsPerNode() uint32 { - if x != nil { - return x.SocketsPerNode - } - return 0 -} - -func (x *SubmitJobReq) GetCoresPerSocket() uint32 { - if x != nil { - return x.CoresPerSocket - } - return 0 -} - -func (x *SubmitJobReq) GetThreadsPerCore() uint32 { - if x != nil { - return x.ThreadsPerCore - } - return 0 -} - -func (x *SubmitJobReq) GetNtasksPerNode() uint32 { - if x != nil { - return x.NtasksPerNode - } - return 0 -} - -func (x *SubmitJobReq) GetNtasksPerSocket() uint32 { - if x != nil { - return x.NtasksPerSocket - } - return 0 -} - -func (x *SubmitJobReq) GetNtasksPerCore() uint32 { - if x != nil { - return x.NtasksPerCore - } - return 0 -} - -func (x *SubmitJobReq) GetNtasksPerBoard() uint32 { - if x != nil { - return x.NtasksPerBoard - } - return 0 -} - -func (x *SubmitJobReq) GetPnMinCpus() uint32 { - if x != nil { - return x.PnMinCpus - } - return 0 -} - -func (x *SubmitJobReq) GetPnMinMemory() uint32 { - if x != nil { - return x.PnMinMemory - } - return 0 -} - -func (x *SubmitJobReq) GetPnMinTmpDisk() uint32 { - if x != nil { - return x.PnMinTmpDisk - } - return 0 -} - -func (x *SubmitJobReq) GetReboot() uint32 { - if x != nil { - return x.Reboot - } - return 0 -} - -func (x *SubmitJobReq) GetRotate() uint32 { - if x != nil { - return x.Rotate - } - return 0 -} - -func (x *SubmitJobReq) GetReqSwitch() uint32 { - if x != nil { - return x.ReqSwitch - } - return 0 -} - -func (x *SubmitJobReq) GetStdErr() string { - if x != nil { - return x.StdErr - } - return "" -} - -func (x *SubmitJobReq) GetStdIn() string { - if x != nil { - return x.StdIn - } - return "" -} - -func (x *SubmitJobReq) GetStdOut() string { - if x != nil { - return x.StdOut - } - return "" -} - -func (x *SubmitJobReq) GetWait4Switch() uint32 { - if x != nil { - return x.Wait4Switch - } - return 0 -} - -func (x *SubmitJobReq) GetWckey() string { - if x != nil { - return x.Wckey - } - return "" -} - -type SubmitJobResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - SubmitResponseMsg []*SubmitResponseMsg `protobuf:"bytes,1,rep,name=submit_response_msg,json=submitResponseMsg,proto3" json:"submit_response_msg,omitempty"` -} - -func (x *SubmitJobResp) Reset() { - *x = SubmitJobResp{} - if protoimpl.UnsafeEnabled { - mi := &file_hpcTH_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SubmitJobResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SubmitJobResp) ProtoMessage() {} - -func (x *SubmitJobResp) ProtoReflect() protoreflect.Message { - mi := &file_hpcTH_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 SubmitJobResp.ProtoReflect.Descriptor instead. -func (*SubmitJobResp) Descriptor() ([]byte, []int) { - return file_hpcTH_proto_rawDescGZIP(), []int{7} -} - -func (x *SubmitJobResp) GetSubmitResponseMsg() []*SubmitResponseMsg { - if x != nil { - return x.SubmitResponseMsg - } - return nil -} - -type SubmitResponseMsg struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - JobId uint32 `protobuf:"varint,1,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"` - StepId uint32 `protobuf:"varint,2,opt,name=step_id,json=stepId,proto3" json:"step_id,omitempty"` - ErrorCode uint32 `protobuf:"varint,3,opt,name=error_code,json=errorCode,proto3" json:"error_code,omitempty"` -} - -func (x *SubmitResponseMsg) Reset() { - *x = SubmitResponseMsg{} - if protoimpl.UnsafeEnabled { - mi := &file_hpcTH_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SubmitResponseMsg) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SubmitResponseMsg) ProtoMessage() {} - -func (x *SubmitResponseMsg) ProtoReflect() protoreflect.Message { - mi := &file_hpcTH_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 SubmitResponseMsg.ProtoReflect.Descriptor instead. -func (*SubmitResponseMsg) Descriptor() ([]byte, []int) { - return file_hpcTH_proto_rawDescGZIP(), []int{8} -} - -func (x *SubmitResponseMsg) GetJobId() uint32 { - if x != nil { - return x.JobId - } - return 0 -} - -func (x *SubmitResponseMsg) GetStepId() uint32 { - if x != nil { - return x.StepId - } - return 0 -} - -func (x *SubmitResponseMsg) GetErrorCode() uint32 { - if x != nil { - return x.ErrorCode - } - return 0 -} - -type Argv struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Argv string `protobuf:"bytes,1,opt,name=argv,proto3" json:"argv,omitempty"` // @gotags: copier:"argv" -} - -func (x *Argv) Reset() { - *x = Argv{} - if protoimpl.UnsafeEnabled { - mi := &file_hpcTH_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Argv) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Argv) ProtoMessage() {} - -func (x *Argv) ProtoReflect() protoreflect.Message { - mi := &file_hpcTH_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 Argv.ProtoReflect.Descriptor instead. -func (*Argv) Descriptor() ([]byte, []int) { - return file_hpcTH_proto_rawDescGZIP(), []int{9} -} - -func (x *Argv) GetArgv() string { - if x != nil { - return x.Argv - } - return "" -} - -type Environment struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Environment string `protobuf:"bytes,1,opt,name=environment,proto3" json:"environment,omitempty"` // @gotags: copier:"environment" -} - -func (x *Environment) Reset() { - *x = Environment{} - if protoimpl.UnsafeEnabled { - mi := &file_hpcTH_proto_msgTypes[10] - 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_hpcTH_proto_msgTypes[10] - 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_hpcTH_proto_rawDescGZIP(), []int{10} -} - -func (x *Environment) GetEnvironment() string { - if x != nil { - return x.Environment - } - return "" -} - -var File_hpcTH_proto protoreflect.FileDescriptor - -var file_hpcTH_proto_rawDesc = []byte{ - 0x0a, 0x0b, 0x68, 0x70, 0x63, 0x54, 0x48, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x68, - 0x70, 0x63, 0x54, 0x48, 0x22, 0xd5, 0x11, 0x0a, 0x03, 0x6a, 0x6f, 0x62, 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, 0x1d, 0x0a, 0x0a, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x5f, - 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x6c, 0x6c, 0x6f, - 0x63, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x5f, 0x73, - 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x53, - 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0c, 0x61, 0x72, 0x72, 0x61, 0x79, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, - 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x61, 0x72, 0x72, 0x61, 0x79, 0x4a, - 0x6f, 0x62, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0d, 0x61, 0x72, 0x72, 0x61, 0x79, 0x5f, 0x74, 0x61, - 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x61, 0x72, 0x72, - 0x61, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x73, 0x73, 0x6f, - 0x63, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x61, 0x73, 0x73, 0x6f, - 0x63, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x66, 0x6c, 0x61, - 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x62, 0x61, 0x74, 0x63, 0x68, 0x46, 0x6c, - 0x61, 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x68, 0x6f, 0x73, 0x74, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x61, 0x74, 0x63, 0x68, 0x48, 0x6f, 0x73, - 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x62, 0x61, 0x74, 0x63, 0x68, 0x53, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x18, - 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, - 0x69, 0x67, 0x75, 0x6f, 0x75, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x6f, - 0x6e, 0x74, 0x69, 0x67, 0x75, 0x6f, 0x75, 0x73, 0x12, 0x22, 0x0a, 0x0d, 0x63, 0x70, 0x75, 0x73, - 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0b, 0x63, 0x70, 0x75, 0x73, 0x50, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x1e, 0x0a, 0x0a, - 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x1d, 0x0a, 0x0a, - 0x64, 0x65, 0x72, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x65, 0x63, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x09, 0x64, 0x65, 0x72, 0x69, 0x76, 0x65, 0x64, 0x45, 0x63, 0x12, 0x23, 0x0a, 0x0d, 0x65, - 0x6c, 0x69, 0x67, 0x69, 0x62, 0x6c, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x10, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x0c, 0x65, 0x6c, 0x69, 0x67, 0x69, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, - 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x11, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x65, - 0x78, 0x63, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x65, 0x78, 0x63, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0c, 0x65, 0x78, 0x63, 0x5f, - 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x6e, 0x78, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, - 0x65, 0x78, 0x63, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x78, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x78, - 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x65, - 0x78, 0x69, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, - 0x72, 0x65, 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, - 0x72, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x72, 0x65, 0x73, 0x18, 0x16, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x67, 0x72, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x5f, 0x69, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x49, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x18, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6a, 0x6f, 0x62, - 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6a, 0x6f, - 0x62, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, - 0x65, 0x73, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, - 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x70, 0x75, 0x73, 0x18, 0x1b, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6d, 0x61, 0x78, 0x43, 0x70, 0x75, 0x73, 0x12, 0x1b, 0x0a, - 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x08, 0x6d, 0x61, 0x78, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x62, 0x6f, - 0x61, 0x72, 0x64, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x1d, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x73, 0x50, 0x65, 0x72, 0x4e, 0x6f, - 0x64, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x70, 0x65, - 0x72, 0x5f, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x73, - 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x50, 0x65, 0x72, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x12, 0x28, - 0x0a, 0x10, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6e, 0x6f, - 0x64, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, - 0x73, 0x50, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x63, 0x6f, 0x72, 0x65, - 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x20, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0e, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x50, 0x65, 0x72, 0x53, 0x6f, 0x63, 0x6b, - 0x65, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x5f, 0x70, 0x65, - 0x72, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x74, 0x68, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x50, 0x65, 0x72, 0x43, 0x6f, 0x72, 0x65, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x22, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x23, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, - 0x64, 0x65, 0x73, 0x18, 0x24, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x69, 0x63, 0x65, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, - 0x6e, 0x69, 0x63, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x6e, 0x78, - 0x18, 0x26, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x78, 0x12, - 0x26, 0x0a, 0x0f, 0x6e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x63, 0x6f, - 0x72, 0x65, 0x18, 0x27, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6e, 0x74, 0x61, 0x73, 0x6b, 0x73, - 0x50, 0x65, 0x72, 0x43, 0x6f, 0x72, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x74, 0x61, 0x73, 0x6b, - 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x28, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0d, 0x6e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x50, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x12, - 0x2a, 0x0a, 0x11, 0x6e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x6f, - 0x63, 0x6b, 0x65, 0x74, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x6e, 0x74, 0x61, 0x73, - 0x6b, 0x73, 0x50, 0x65, 0x72, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x6e, - 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x18, - 0x2a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x50, 0x65, 0x72, - 0x42, 0x6f, 0x61, 0x72, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x75, 0x6d, 0x5f, 0x6e, 0x6f, 0x64, - 0x65, 0x73, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6e, 0x75, 0x6d, 0x4e, 0x6f, 0x64, - 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x6e, 0x75, 0x6d, 0x5f, 0x63, 0x70, 0x75, 0x73, 0x18, 0x2c, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6e, 0x75, 0x6d, 0x43, 0x70, 0x75, 0x73, 0x12, 0x1c, 0x0a, - 0x09, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0d, 0x70, - 0x6e, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x18, 0x2e, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0b, 0x70, 0x6e, 0x4d, 0x69, 0x6e, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x12, - 0x1e, 0x0a, 0x0b, 0x70, 0x6e, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x63, 0x70, 0x75, 0x73, 0x18, 0x2f, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x70, 0x6e, 0x4d, 0x69, 0x6e, 0x43, 0x70, 0x75, 0x73, 0x12, - 0x25, 0x0a, 0x0f, 0x70, 0x6e, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x6d, 0x70, 0x5f, 0x64, 0x69, - 0x73, 0x6b, 0x18, 0x30, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x70, 0x6e, 0x4d, 0x69, 0x6e, 0x54, - 0x6d, 0x70, 0x44, 0x69, 0x73, 0x6b, 0x12, 0x20, 0x0a, 0x0c, 0x70, 0x72, 0x65, 0x5f, 0x73, 0x75, - 0x73, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x31, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x70, 0x72, - 0x65, 0x53, 0x75, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, - 0x72, 0x69, 0x74, 0x79, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, - 0x72, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, - 0x33, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x10, - 0x0a, 0x03, 0x71, 0x6f, 0x73, 0x18, 0x34, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x71, 0x6f, 0x73, - 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x65, 0x71, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x35, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x71, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x20, 0x0a, - 0x0c, 0x72, 0x65, 0x71, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x6e, 0x78, 0x18, 0x36, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0a, 0x72, 0x65, 0x71, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x78, 0x12, - 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x37, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x09, 0x72, 0x65, 0x71, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x18, - 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x75, 0x65, 0x18, 0x38, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x75, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x69, - 0x7a, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x39, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x72, - 0x65, 0x73, 0x69, 0x7a, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x5f, 0x63, 0x6e, 0x74, 0x18, 0x3a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, - 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x65, - 0x73, 0x76, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, - 0x65, 0x73, 0x76, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, - 0x64, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x12, - 0x1d, 0x0a, 0x0a, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x3d, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x09, 0x73, 0x68, 0x6f, 0x77, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x1d, - 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x3e, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, - 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x18, 0x3f, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x74, 0x65, 0x44, 0x65, 0x73, 0x63, 0x12, 0x21, 0x0a, 0x0c, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x40, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, - 0x1f, 0x0a, 0x0b, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x41, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, - 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x18, 0x42, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x73, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x54, - 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, - 0x74, 0x18, 0x43, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x4c, 0x69, 0x6d, - 0x69, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6d, 0x69, 0x6e, 0x18, 0x44, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x4d, 0x69, 0x6e, 0x12, 0x17, 0x0a, - 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x45, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, - 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x65, 0x65, 0x6d, 0x70, - 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x46, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x70, 0x72, - 0x65, 0x65, 0x6d, 0x70, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x77, 0x61, 0x69, - 0x74, 0x34, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x47, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, - 0x77, 0x61, 0x69, 0x74, 0x34, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x77, - 0x63, 0x6b, 0x65, 0x79, 0x18, 0x48, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x77, 0x63, 0x6b, 0x65, - 0x79, 0x12, 0x19, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x64, 0x69, 0x72, 0x18, 0x49, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x77, 0x6f, 0x72, 0x6b, 0x44, 0x69, 0x72, 0x22, 0x0c, 0x0a, 0x0a, - 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x22, 0x76, 0x0a, 0x0b, 0x4c, 0x69, - 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, - 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, - 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x04, 0x6a, 0x6f, 0x62, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x0a, 0x2e, 0x68, 0x70, 0x63, 0x54, 0x48, 0x2e, 0x6a, 0x6f, 0x62, 0x52, 0x04, 0x6a, 0x6f, - 0x62, 0x73, 0x22, 0xd0, 0x08, 0x0a, 0x0a, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4a, 0x6f, - 0x62, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x5f, 0x63, 0x70, 0x75, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x43, 0x70, 0x75, 0x12, 0x1f, - 0x0a, 0x0b, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, - 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x73, 0x73, - 0x6f, 0x63, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x61, 0x73, 0x73, 0x6f, - 0x63, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x69, 0x64, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x69, 0x64, 0x12, 0x18, 0x0a, - 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x65, 0x72, 0x69, 0x76, - 0x65, 0x64, 0x5f, 0x65, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x64, 0x65, 0x72, - 0x69, 0x76, 0x65, 0x64, 0x45, 0x63, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x65, 0x72, 0x69, 0x76, 0x65, - 0x64, 0x5f, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x65, 0x72, 0x69, - 0x76, 0x65, 0x64, 0x45, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x65, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x12, - 0x1a, 0x0a, 0x08, 0x65, 0x6c, 0x69, 0x67, 0x69, 0x62, 0x6c, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x08, 0x65, 0x6c, 0x69, 0x67, 0x69, 0x62, 0x6c, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x65, - 0x6e, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x12, 0x1a, 0x0a, - 0x08, 0x65, 0x78, 0x69, 0x74, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x08, 0x65, 0x78, 0x69, 0x74, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x69, 0x64, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x67, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6a, - 0x6f, 0x62, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x69, - 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6a, 0x6f, 0x62, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0f, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x6a, 0x6f, 0x62, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6c, - 0x66, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6c, 0x66, 0x74, 0x12, 0x1c, 0x0a, - 0x09, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x6e, - 0x6f, 0x64, 0x65, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x64, 0x65, - 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x13, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x14, 0x0a, - 0x05, 0x71, 0x6f, 0x73, 0x69, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x71, 0x6f, - 0x73, 0x69, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x5f, 0x63, 0x70, 0x75, 0x73, 0x18, - 0x15, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x71, 0x43, 0x70, 0x75, 0x73, 0x12, 0x17, - 0x0a, 0x07, 0x72, 0x65, 0x71, 0x5f, 0x6d, 0x65, 0x6d, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x06, 0x72, 0x65, 0x71, 0x4d, 0x65, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x71, 0x75, 0x69, - 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x65, 0x71, 0x75, 0x69, 0x64, 0x12, - 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x76, 0x69, 0x64, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x06, 0x72, 0x65, 0x73, 0x76, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x68, 0x6f, 0x77, 0x5f, - 0x66, 0x75, 0x6c, 0x6c, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x73, 0x68, 0x6f, 0x77, - 0x46, 0x75, 0x6c, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x1a, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x06, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x75, 0x73, 0x70, - 0x65, 0x6e, 0x64, 0x65, 0x64, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x73, 0x75, 0x73, - 0x70, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0b, 0x73, 0x79, 0x73, 0x5f, 0x63, 0x70, - 0x75, 0x5f, 0x73, 0x65, 0x63, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x73, 0x79, 0x73, - 0x43, 0x70, 0x75, 0x53, 0x65, 0x63, 0x12, 0x20, 0x0a, 0x0c, 0x73, 0x79, 0x73, 0x5f, 0x63, 0x70, - 0x75, 0x5f, 0x75, 0x73, 0x65, 0x63, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x79, - 0x73, 0x43, 0x70, 0x75, 0x55, 0x73, 0x65, 0x63, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, - 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x74, 0x69, 0x6d, - 0x65, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1e, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x5f, 0x63, 0x70, - 0x75, 0x5f, 0x73, 0x65, 0x63, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x74, 0x6f, 0x74, - 0x43, 0x70, 0x75, 0x53, 0x65, 0x63, 0x12, 0x20, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x5f, 0x63, 0x70, - 0x75, 0x5f, 0x75, 0x73, 0x65, 0x63, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x74, 0x6f, - 0x74, 0x43, 0x70, 0x75, 0x55, 0x73, 0x65, 0x63, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x72, 0x61, 0x63, - 0x6b, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x73, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x74, - 0x72, 0x61, 0x63, 0x6b, 0x53, 0x74, 0x65, 0x70, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, - 0x18, 0x24, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x75, - 0x73, 0x65, 0x72, 0x18, 0x25, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, - 0x20, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x73, 0x65, 0x63, 0x18, - 0x26, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x43, 0x70, 0x75, 0x53, 0x65, - 0x63, 0x12, 0x22, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x75, 0x73, - 0x65, 0x63, 0x18, 0x27, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x43, 0x70, - 0x75, 0x55, 0x73, 0x65, 0x63, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x63, 0x6b, 0x65, 0x79, 0x18, 0x28, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x77, 0x63, 0x6b, 0x65, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x77, - 0x63, 0x6b, 0x65, 0x79, 0x69, 0x64, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x77, 0x63, - 0x6b, 0x65, 0x79, 0x69, 0x64, 0x22, 0x13, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x69, 0x73, - 0x74, 0x6f, 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x22, 0x93, 0x01, 0x0a, 0x12, 0x4c, - 0x69, 0x73, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x63, 0x6f, 0x72, - 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x72, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x0c, 0x68, 0x69, - 0x73, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x6a, 0x6f, 0x62, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x11, 0x2e, 0x68, 0x70, 0x63, 0x54, 0x48, 0x2e, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, - 0x4a, 0x6f, 0x62, 0x52, 0x0b, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x73, - 0x22, 0x87, 0x14, 0x0a, 0x0c, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, - 0x71, 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, 0x1d, 0x0a, 0x0a, 0x61, - 0x63, 0x63, 0x74, 0x67, 0x5f, 0x66, 0x72, 0x65, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x61, 0x63, 0x63, 0x74, 0x67, 0x46, 0x72, 0x65, 0x71, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x6c, - 0x6c, 0x6f, 0x63, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x61, 0x6c, 0x6c, - 0x6f, 0x63, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x52, 0x65, 0x73, 0x70, 0x50, 0x6f, 0x72, - 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x53, 0x69, 0x64, 0x12, 0x12, - 0x0a, 0x04, 0x61, 0x72, 0x67, 0x63, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x61, 0x72, - 0x67, 0x63, 0x12, 0x1f, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x76, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x0b, 0x2e, 0x68, 0x70, 0x63, 0x54, 0x48, 0x2e, 0x41, 0x72, 0x67, 0x76, 0x52, 0x04, 0x61, - 0x72, 0x67, 0x76, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x72, 0x72, 0x61, 0x79, 0x5f, 0x69, 0x6e, 0x78, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x72, 0x72, 0x61, 0x79, 0x49, 0x6e, 0x78, - 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, - 0x23, 0x0a, 0x0d, 0x63, 0x6b, 0x70, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x63, 0x6b, 0x70, 0x74, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x76, 0x61, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x6b, 0x70, 0x74, 0x5f, 0x64, 0x69, 0x72, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6b, 0x70, 0x74, 0x44, 0x69, 0x72, 0x12, - 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, - 0x74, 0x69, 0x67, 0x75, 0x6f, 0x75, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, - 0x6f, 0x6e, 0x74, 0x69, 0x67, 0x75, 0x6f, 0x75, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x70, 0x75, - 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x70, 0x75, - 0x42, 0x69, 0x6e, 0x64, 0x12, 0x22, 0x0a, 0x0d, 0x63, 0x70, 0x75, 0x5f, 0x62, 0x69, 0x6e, 0x64, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x63, 0x70, 0x75, - 0x42, 0x69, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x65, - 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, - 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, - 0x69, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x68, 0x70, 0x63, 0x54, 0x48, - 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0b, 0x65, 0x6e, - 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x76, - 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x65, 0x6e, 0x76, - 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x78, 0x63, 0x5f, 0x6e, 0x6f, 0x64, 0x65, - 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x63, 0x4e, 0x6f, 0x64, 0x65, - 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x15, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x12, 0x0a, - 0x04, 0x67, 0x72, 0x65, 0x73, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x67, 0x72, 0x65, - 0x73, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x17, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, - 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x09, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, - 0x62, 0x5f, 0x69, 0x64, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, - 0x64, 0x12, 0x29, 0x0a, 0x11, 0x6b, 0x69, 0x6c, 0x6c, 0x5f, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x64, - 0x65, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6b, 0x69, - 0x6c, 0x6c, 0x4f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x12, 0x1a, 0x0a, 0x08, - 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x69, 0x6c, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6d, 0x61, 0x69, - 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x75, 0x73, - 0x65, 0x72, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x69, 0x6c, 0x55, 0x73, - 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x65, 0x6d, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x18, 0x1e, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x42, 0x69, 0x6e, 0x64, 0x12, 0x22, 0x0a, - 0x0d, 0x6d, 0x65, 0x6d, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x1f, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x65, 0x6d, 0x42, 0x69, 0x6e, 0x64, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x20, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x18, 0x21, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x69, 0x63, 0x65, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x6e, - 0x69, 0x63, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x75, 0x6d, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x73, - 0x18, 0x23, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6e, 0x75, 0x6d, 0x54, 0x61, 0x73, 0x6b, 0x73, - 0x12, 0x1b, 0x0a, 0x09, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x24, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1d, 0x0a, - 0x0a, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x25, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x09, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x1e, 0x0a, 0x0a, - 0x6f, 0x76, 0x65, 0x72, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x26, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0a, 0x6f, 0x76, 0x65, 0x72, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x1c, 0x0a, 0x09, - 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x27, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x28, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, - 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x72, 0x69, - 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, - 0x18, 0x2a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, - 0x10, 0x0a, 0x03, 0x71, 0x6f, 0x73, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x71, 0x6f, - 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x70, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x2c, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x1b, - 0x0a, 0x09, 0x72, 0x65, 0x71, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x2d, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x72, 0x65, 0x71, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x75, 0x65, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, - 0x71, 0x75, 0x65, 0x75, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x73, 0x65, - 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x18, 0x30, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x12, - 0x16, 0x0a, 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x18, 0x31, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x12, 0x2b, 0x0a, 0x12, 0x73, 0x70, 0x61, 0x6e, 0x6b, - 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x65, 0x6e, 0x76, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x32, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x73, 0x70, 0x61, 0x6e, 0x6b, 0x4a, 0x6f, 0x62, 0x45, 0x6e, 0x76, - 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x64, 0x69, 0x73, - 0x74, 0x18, 0x33, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x44, 0x69, 0x73, - 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, - 0x34, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, - 0x12, 0x19, 0x0a, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6d, 0x69, 0x6e, 0x18, 0x35, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x4d, 0x69, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x75, - 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x36, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x75, 0x73, - 0x65, 0x72, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x61, 0x6c, 0x6c, - 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x37, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x77, 0x61, - 0x69, 0x74, 0x41, 0x6c, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x77, 0x61, - 0x72, 0x6e, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x18, 0x38, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0a, 0x77, 0x61, 0x72, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x77, - 0x61, 0x72, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x39, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, - 0x77, 0x61, 0x72, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, - 0x5f, 0x64, 0x69, 0x72, 0x18, 0x3a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x77, 0x6f, 0x72, 0x6b, - 0x44, 0x69, 0x72, 0x12, 0x22, 0x0a, 0x0d, 0x63, 0x70, 0x75, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, - 0x74, 0x61, 0x73, 0x6b, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x63, 0x70, 0x75, 0x73, - 0x50, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x69, 0x6e, 0x5f, 0x63, - 0x70, 0x75, 0x73, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6d, 0x69, 0x6e, 0x43, 0x70, - 0x75, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x70, 0x75, 0x73, 0x18, 0x3d, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6d, 0x61, 0x78, 0x43, 0x70, 0x75, 0x73, 0x12, 0x1b, 0x0a, - 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x3e, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, - 0x78, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x3f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6d, - 0x61, 0x78, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x62, 0x6f, 0x61, 0x72, 0x64, - 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x40, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0d, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x73, 0x50, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x12, - 0x2a, 0x0a, 0x11, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x62, - 0x6f, 0x61, 0x72, 0x64, 0x18, 0x41, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x73, 0x6f, 0x63, 0x6b, - 0x65, 0x74, 0x73, 0x50, 0x65, 0x72, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x73, - 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, - 0x42, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x50, 0x65, - 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x5f, 0x70, - 0x65, 0x72, 0x5f, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x43, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0e, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x50, 0x65, 0x72, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x12, - 0x28, 0x0a, 0x10, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x63, - 0x6f, 0x72, 0x65, 0x18, 0x44, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x74, 0x68, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x50, 0x65, 0x72, 0x43, 0x6f, 0x72, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x74, 0x61, - 0x73, 0x6b, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x45, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0d, 0x6e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x50, 0x65, 0x72, 0x4e, 0x6f, 0x64, - 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x6e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, - 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x46, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x6e, 0x74, - 0x61, 0x73, 0x6b, 0x73, 0x50, 0x65, 0x72, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x26, 0x0a, - 0x0f, 0x6e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x72, 0x65, - 0x18, 0x47, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x50, 0x65, - 0x72, 0x43, 0x6f, 0x72, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, - 0x70, 0x65, 0x72, 0x5f, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x18, 0x48, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0e, 0x6e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x50, 0x65, 0x72, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x12, - 0x1e, 0x0a, 0x0b, 0x70, 0x6e, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x63, 0x70, 0x75, 0x73, 0x18, 0x49, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x70, 0x6e, 0x4d, 0x69, 0x6e, 0x43, 0x70, 0x75, 0x73, 0x12, - 0x22, 0x0a, 0x0d, 0x70, 0x6e, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, - 0x18, 0x4a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x70, 0x6e, 0x4d, 0x69, 0x6e, 0x4d, 0x65, 0x6d, - 0x6f, 0x72, 0x79, 0x12, 0x25, 0x0a, 0x0f, 0x70, 0x6e, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x6d, - 0x70, 0x5f, 0x64, 0x69, 0x73, 0x6b, 0x18, 0x4b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x70, 0x6e, - 0x4d, 0x69, 0x6e, 0x54, 0x6d, 0x70, 0x44, 0x69, 0x73, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, - 0x62, 0x6f, 0x6f, 0x74, 0x18, 0x4c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x65, 0x62, 0x6f, - 0x6f, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x18, 0x4d, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x06, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, - 0x71, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x4e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, - 0x72, 0x65, 0x71, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x17, 0x0a, 0x07, 0x73, 0x74, 0x64, - 0x5f, 0x65, 0x72, 0x72, 0x18, 0x4f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x64, 0x45, - 0x72, 0x72, 0x12, 0x15, 0x0a, 0x06, 0x73, 0x74, 0x64, 0x5f, 0x69, 0x6e, 0x18, 0x50, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x64, 0x49, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x73, 0x74, 0x64, - 0x5f, 0x6f, 0x75, 0x74, 0x18, 0x51, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x64, 0x4f, - 0x75, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x77, 0x61, 0x69, 0x74, 0x34, 0x73, 0x77, 0x69, 0x74, 0x63, - 0x68, 0x18, 0x52, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x77, 0x61, 0x69, 0x74, 0x34, 0x73, 0x77, - 0x69, 0x74, 0x63, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x63, 0x6b, 0x65, 0x79, 0x18, 0x53, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x77, 0x63, 0x6b, 0x65, 0x79, 0x22, 0x59, 0x0a, 0x0d, 0x53, 0x75, - 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x12, 0x48, 0x0a, 0x13, 0x73, - 0x75, 0x62, 0x6d, 0x69, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x6d, - 0x73, 0x67, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x68, 0x70, 0x63, 0x54, 0x48, - 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, - 0x73, 0x67, 0x52, 0x11, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x4d, 0x73, 0x67, 0x22, 0x62, 0x0a, 0x11, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x73, 0x67, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, - 0x62, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, - 0x64, 0x12, 0x17, 0x0a, 0x07, 0x73, 0x74, 0x65, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x06, 0x73, 0x74, 0x65, 0x70, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x1a, 0x0a, 0x04, 0x41, 0x72, 0x67, - 0x76, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x76, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x61, 0x72, 0x67, 0x76, 0x22, 0x2f, 0x0a, 0x0b, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, - 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x32, 0xb8, 0x01, 0x0a, 0x05, 0x68, 0x70, 0x63, 0x54, 0x48, - 0x12, 0x30, 0x0a, 0x07, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x12, 0x11, 0x2e, 0x68, 0x70, - 0x63, 0x54, 0x48, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x1a, 0x12, - 0x2e, 0x68, 0x70, 0x63, 0x54, 0x48, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x45, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, - 0x79, 0x4a, 0x6f, 0x62, 0x12, 0x18, 0x2e, 0x68, 0x70, 0x63, 0x54, 0x48, 0x2e, 0x4c, 0x69, 0x73, - 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x1a, 0x19, - 0x2e, 0x68, 0x70, 0x63, 0x54, 0x48, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, - 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x09, 0x53, 0x75, 0x62, - 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x12, 0x13, 0x2e, 0x68, 0x70, 0x63, 0x54, 0x48, 0x2e, 0x53, - 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x68, 0x70, - 0x63, 0x54, 0x48, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, - 0x70, 0x42, 0x08, 0x5a, 0x06, 0x2f, 0x68, 0x70, 0x63, 0x54, 0x48, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, -} - -var ( - file_hpcTH_proto_rawDescOnce sync.Once - file_hpcTH_proto_rawDescData = file_hpcTH_proto_rawDesc -) - -func file_hpcTH_proto_rawDescGZIP() []byte { - file_hpcTH_proto_rawDescOnce.Do(func() { - file_hpcTH_proto_rawDescData = protoimpl.X.CompressGZIP(file_hpcTH_proto_rawDescData) - }) - return file_hpcTH_proto_rawDescData -} - -var file_hpcTH_proto_msgTypes = make([]protoimpl.MessageInfo, 11) -var file_hpcTH_proto_goTypes = []interface{}{ - (*Job)(nil), // 0: hpcTH.job - (*ListJobReq)(nil), // 1: hpcTH.ListJobReq - (*ListJobResp)(nil), // 2: hpcTH.ListJobResp - (*HistoryJob)(nil), // 3: hpcTH.historyJob - (*ListHistoryJobReq)(nil), // 4: hpcTH.ListHistoryJobReq - (*ListHistoryJobResp)(nil), // 5: hpcTH.ListHistoryJobResp - (*SubmitJobReq)(nil), // 6: hpcTH.SubmitJobReq - (*SubmitJobResp)(nil), // 7: hpcTH.SubmitJobResp - (*SubmitResponseMsg)(nil), // 8: hpcTH.SubmitResponseMsg - (*Argv)(nil), // 9: hpcTH.Argv - (*Environment)(nil), // 10: hpcTH.Environment -} -var file_hpcTH_proto_depIdxs = []int32{ - 0, // 0: hpcTH.ListJobResp.jobs:type_name -> hpcTH.job - 3, // 1: hpcTH.ListHistoryJobResp.history_jobs:type_name -> hpcTH.historyJob - 9, // 2: hpcTH.SubmitJobReq.argv:type_name -> hpcTH.Argv - 10, // 3: hpcTH.SubmitJobReq.environment:type_name -> hpcTH.Environment - 8, // 4: hpcTH.SubmitJobResp.submit_response_msg:type_name -> hpcTH.SubmitResponseMsg - 1, // 5: hpcTH.hpcTH.ListJob:input_type -> hpcTH.ListJobReq - 4, // 6: hpcTH.hpcTH.ListHistoryJob:input_type -> hpcTH.ListHistoryJobReq - 6, // 7: hpcTH.hpcTH.SubmitJob:input_type -> hpcTH.SubmitJobReq - 2, // 8: hpcTH.hpcTH.ListJob:output_type -> hpcTH.ListJobResp - 5, // 9: hpcTH.hpcTH.ListHistoryJob:output_type -> hpcTH.ListHistoryJobResp - 7, // 10: hpcTH.hpcTH.SubmitJob:output_type -> hpcTH.SubmitJobResp - 8, // [8:11] is the sub-list for method output_type - 5, // [5:8] is the sub-list for method input_type - 5, // [5:5] is the sub-list for extension type_name - 5, // [5:5] is the sub-list for extension extendee - 0, // [0:5] is the sub-list for field type_name -} - -func init() { file_hpcTH_proto_init() } -func file_hpcTH_proto_init() { - if File_hpcTH_proto != nil { - return - } - if !protoimpl.UnsafeEnabled { - file_hpcTH_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Job); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_hpcTH_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListJobReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_hpcTH_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListJobResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_hpcTH_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HistoryJob); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_hpcTH_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListHistoryJobReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_hpcTH_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListHistoryJobResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_hpcTH_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubmitJobReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_hpcTH_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubmitJobResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_hpcTH_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubmitResponseMsg); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_hpcTH_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Argv); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_hpcTH_proto_msgTypes[10].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 - } - } - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_hpcTH_proto_rawDesc, - NumEnums: 0, - NumMessages: 11, - NumExtensions: 0, - NumServices: 1, - }, - GoTypes: file_hpcTH_proto_goTypes, - DependencyIndexes: file_hpcTH_proto_depIdxs, - MessageInfos: file_hpcTH_proto_msgTypes, - }.Build() - File_hpcTH_proto = out.File - file_hpcTH_proto_rawDesc = nil - file_hpcTH_proto_goTypes = nil - file_hpcTH_proto_depIdxs = nil -} diff --git a/hpcTH/hpcTH_grpc.pb.go b/hpcTH/hpcTH_grpc.pb.go deleted file mode 100644 index 90662e8..0000000 --- a/hpcTH/hpcTH_grpc.pb.go +++ /dev/null @@ -1,183 +0,0 @@ -// Code generated by protoc-gen-go-grpc. DO NOT EDIT. -// versions: -// - protoc-gen-go-grpc v1.2.0 -// - protoc v3.19.4 -// source: hpcTH.proto - -package hpcTH - -import ( - context "context" - grpc "google.golang.org/grpc" - codes "google.golang.org/grpc/codes" - status "google.golang.org/grpc/status" -) - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the grpc package it is being compiled against. -// Requires gRPC-Go v1.32.0 or later. -const _ = grpc.SupportPackageIsVersion7 - -// HpcTHClient is the client API for HpcTH service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. -type HpcTHClient interface { - // ListJob list all jobs - ListJob(ctx context.Context, in *ListJobReq, opts ...grpc.CallOption) (*ListJobResp, error) - // ListHistoryJob list all history jobs - ListHistoryJob(ctx context.Context, in *ListHistoryJobReq, opts ...grpc.CallOption) (*ListHistoryJobResp, error) - // Submit job - SubmitJob(ctx context.Context, in *SubmitJobReq, opts ...grpc.CallOption) (*SubmitJobResp, error) -} - -type hpcTHClient struct { - cc grpc.ClientConnInterface -} - -func NewHpcTHClient(cc grpc.ClientConnInterface) HpcTHClient { - return &hpcTHClient{cc} -} - -func (c *hpcTHClient) ListJob(ctx context.Context, in *ListJobReq, opts ...grpc.CallOption) (*ListJobResp, error) { - out := new(ListJobResp) - err := c.cc.Invoke(ctx, "/hpcTH.hpcTH/ListJob", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *hpcTHClient) ListHistoryJob(ctx context.Context, in *ListHistoryJobReq, opts ...grpc.CallOption) (*ListHistoryJobResp, error) { - out := new(ListHistoryJobResp) - err := c.cc.Invoke(ctx, "/hpcTH.hpcTH/ListHistoryJob", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *hpcTHClient) SubmitJob(ctx context.Context, in *SubmitJobReq, opts ...grpc.CallOption) (*SubmitJobResp, error) { - out := new(SubmitJobResp) - err := c.cc.Invoke(ctx, "/hpcTH.hpcTH/SubmitJob", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -// HpcTHServer is the server API for HpcTH service. -// All implementations must embed UnimplementedHpcTHServer -// for forward compatibility -type HpcTHServer interface { - // ListJob list all jobs - ListJob(context.Context, *ListJobReq) (*ListJobResp, error) - // ListHistoryJob list all history jobs - ListHistoryJob(context.Context, *ListHistoryJobReq) (*ListHistoryJobResp, error) - // Submit job - SubmitJob(context.Context, *SubmitJobReq) (*SubmitJobResp, error) - mustEmbedUnimplementedHpcTHServer() -} - -// UnimplementedHpcTHServer must be embedded to have forward compatible implementations. -type UnimplementedHpcTHServer struct { -} - -func (UnimplementedHpcTHServer) ListJob(context.Context, *ListJobReq) (*ListJobResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListJob not implemented") -} -func (UnimplementedHpcTHServer) ListHistoryJob(context.Context, *ListHistoryJobReq) (*ListHistoryJobResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListHistoryJob not implemented") -} -func (UnimplementedHpcTHServer) SubmitJob(context.Context, *SubmitJobReq) (*SubmitJobResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method SubmitJob not implemented") -} -func (UnimplementedHpcTHServer) mustEmbedUnimplementedHpcTHServer() {} - -// UnsafeHpcTHServer may be embedded to opt out of forward compatibility for this service. -// Use of this interface is not recommended, as added methods to HpcTHServer will -// result in compilation errors. -type UnsafeHpcTHServer interface { - mustEmbedUnimplementedHpcTHServer() -} - -func RegisterHpcTHServer(s grpc.ServiceRegistrar, srv HpcTHServer) { - s.RegisterService(&HpcTH_ServiceDesc, srv) -} - -func _HpcTH_ListJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ListJobReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(HpcTHServer).ListJob(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/hpcTH.hpcTH/ListJob", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(HpcTHServer).ListJob(ctx, req.(*ListJobReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _HpcTH_ListHistoryJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ListHistoryJobReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(HpcTHServer).ListHistoryJob(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/hpcTH.hpcTH/ListHistoryJob", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(HpcTHServer).ListHistoryJob(ctx, req.(*ListHistoryJobReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _HpcTH_SubmitJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(SubmitJobReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(HpcTHServer).SubmitJob(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/hpcTH.hpcTH/SubmitJob", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(HpcTHServer).SubmitJob(ctx, req.(*SubmitJobReq)) - } - return interceptor(ctx, in, info, handler) -} - -// HpcTH_ServiceDesc is the grpc.ServiceDesc for HpcTH service. -// It's only intended for direct use with grpc.RegisterService, -// and not to be introspected or modified (even as a copy) -var HpcTH_ServiceDesc = grpc.ServiceDesc{ - ServiceName: "hpcTH.hpcTH", - HandlerType: (*HpcTHServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "ListJob", - Handler: _HpcTH_ListJob_Handler, - }, - { - MethodName: "ListHistoryJob", - Handler: _HpcTH_ListHistoryJob_Handler, - }, - { - MethodName: "SubmitJob", - Handler: _HpcTH_SubmitJob_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "hpcTH.proto", -} diff --git a/hpcth.go b/hpcth.go deleted file mode 100644 index c1cfd66..0000000 --- a/hpcth.go +++ /dev/null @@ -1,65 +0,0 @@ -package main - -import ( - "flag" - "github.com/zeromicro/go-zero/core/conf" - "github.com/zeromicro/go-zero/core/logx" - "github.com/zeromicro/go-zero/core/service" - "github.com/zeromicro/go-zero/zrpc" - "gitlink.org.cn/jcce-pcm/pcm-participant-slurm/hpcTH" - "gitlink.org.cn/jcce-pcm/pcm-participant-slurm/internal/config" - "gitlink.org.cn/jcce-pcm/pcm-participant-slurm/internal/logic" - "gitlink.org.cn/jcce-pcm/pcm-participant-slurm/internal/server" - "gitlink.org.cn/jcce-pcm/pcm-participant-slurm/internal/svc" - "gitlink.org.cn/jcce-pcm/utils/interceptor/rpcserver" - commonConfig "gitlink.org.cn/jcce-pcm/utils/nacos" - "google.golang.org/grpc" - "google.golang.org/grpc/reflection" -) - -var configFile = flag.String("f", "etc/hpcth.yaml", "the config file") - -func main() { - - flag.Parse() - - var bootstrapConfig commonConfig.BootstrapConfig - conf.MustLoad(*configFile, &bootstrapConfig) - - //解析业务配置 - var c config.Config - nacosConfig := bootstrapConfig.NacosConfig - - serviceConfigContent := nacosConfig.InitConfig(func(data string) { - err := conf.LoadFromYamlBytes([]byte(data), &c) - if err != nil { - panic(err) - } - }) - err := conf.LoadFromYamlBytes([]byte(serviceConfigContent), &c) - if err != nil { - panic(err) - } - // start log component - logx.MustSetup(c.LogConf) - // 注册到nacos - nacosConfig.Discovery(&c.RpcServerConf) - - ctx := svc.NewServiceContext(c) - - s := zrpc.MustNewServer(c.RpcServerConf, func(grpcServer *grpc.Server) { - hpcTH.RegisterHpcTHServer(grpcServer, server.NewHpcTHServer(ctx)) - - if c.Mode == service.DevMode || c.Mode == service.TestMode { - reflection.Register(grpcServer) - } - }) - - //rpc log - s.AddUnaryInterceptors(rpcserver.LoggerInterceptor) - - defer s.Stop() - logic.InitCron(ctx) - logx.Infof("Starting rpc server at %s...\n", c.ListenOn) - s.Start() -} diff --git a/hpcthclient/hpcth.go b/hpcthclient/hpcth.go deleted file mode 100644 index a826b8e..0000000 --- a/hpcthclient/hpcth.go +++ /dev/null @@ -1,64 +0,0 @@ -// Code generated by goctl. DO NOT EDIT. -// Source: hpcTH.proto - -package hpcthclient - -import ( - "context" - - "gitlink.org.cn/jcce-pcm/pcm-participant-slurm/hpcTH" - - "github.com/zeromicro/go-zero/zrpc" - "google.golang.org/grpc" -) - -type ( - Argv = hpcTH.Argv - Environment = hpcTH.Environment - HistoryJob = hpcTH.HistoryJob - Job = hpcTH.Job - ListHistoryJobReq = hpcTH.ListHistoryJobReq - ListHistoryJobResp = hpcTH.ListHistoryJobResp - ListJobReq = hpcTH.ListJobReq - ListJobResp = hpcTH.ListJobResp - SubmitJobReq = hpcTH.SubmitJobReq - SubmitJobResp = hpcTH.SubmitJobResp - SubmitResponseMsg = hpcTH.SubmitResponseMsg - - HpcTH interface { - // ListJob list all jobs - ListJob(ctx context.Context, in *ListJobReq, opts ...grpc.CallOption) (*ListJobResp, error) - // ListHistoryJob list all history jobs - ListHistoryJob(ctx context.Context, in *ListHistoryJobReq, opts ...grpc.CallOption) (*ListHistoryJobResp, error) - // Submit job - SubmitJob(ctx context.Context, in *SubmitJobReq, opts ...grpc.CallOption) (*SubmitJobResp, error) - } - - defaultHpcTH struct { - cli zrpc.Client - } -) - -func NewHpcTH(cli zrpc.Client) HpcTH { - return &defaultHpcTH{ - cli: cli, - } -} - -// ListJob list all jobs -func (m *defaultHpcTH) ListJob(ctx context.Context, in *ListJobReq, opts ...grpc.CallOption) (*ListJobResp, error) { - client := hpcTH.NewHpcTHClient(m.cli.Conn()) - return client.ListJob(ctx, in, opts...) -} - -// ListHistoryJob list all history jobs -func (m *defaultHpcTH) ListHistoryJob(ctx context.Context, in *ListHistoryJobReq, opts ...grpc.CallOption) (*ListHistoryJobResp, error) { - client := hpcTH.NewHpcTHClient(m.cli.Conn()) - return client.ListHistoryJob(ctx, in, opts...) -} - -// Submit job -func (m *defaultHpcTH) SubmitJob(ctx context.Context, in *SubmitJobReq, opts ...grpc.CallOption) (*SubmitJobResp, error) { - client := hpcTH.NewHpcTHClient(m.cli.Conn()) - return client.SubmitJob(ctx, in, opts...) -} diff --git a/internal/logic/cronlogic.go b/internal/logic/cronlogic.go index a2ac804..edbf1f8 100644 --- a/internal/logic/cronlogic.go +++ b/internal/logic/cronlogic.go @@ -4,13 +4,10 @@ import ( "context" "github.com/jinzhu/copier" "github.com/zeromicro/go-zero/core/logx" - "gitlink.org.cn/jcce-pcm/pcm-coordinator/rpc/pcmcoreclient" - "gitlink.org.cn/jcce-pcm/pcm-participant-slurm/hpcTH" + "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/utils/enum" + "gitlink.org.cn/jcce-pcm/pcm-participant-slurm/slurm" "gitlink.org.cn/jcce-pcm/utils/tool" - "strconv" - "time" ) func InitCron(svc *svc.ServiceContext) { @@ -20,9 +17,8 @@ func InitCron(svc *svc.ServiceContext) { svc.Cron.AddFunc("*/5 * * * * ?", func() { // 查询core端分发下来的任务列表 - infoReq := pcmcoreclient.InfoListReq{ - Kind: "hpc", - ServiceName: "th", + infoReq := pcmcore.InfoListReq{ + Kind: "hpc", } infoList, err := svc.PcmCoreRpc.InfoList(context.Background(), &infoReq) if err != nil { @@ -32,7 +28,7 @@ func InitCron(svc *svc.ServiceContext) { // 提交任务 submitJob(infoList, submitJobLogic) // 查询运行中的任务列表同步信息 - listReq := hpcTH.ListJobReq{} + listReq := slurm.ListJobReq{} listJob, err := listLogic.ListJob(&listReq) if err != nil { logx.Error(err) @@ -42,19 +38,18 @@ func InitCron(svc *svc.ServiceContext) { 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 = strconv.Itoa(int(job.JobId)) - infoList.HpcInfoList[index].StartTime = time.Unix(job.StartTime, 0).String() - infoList.HpcInfoList[index].RunningTime = int64(time.Now().Sub(time.Unix(job.StartTime, 0)).Seconds()) - infoList.HpcInfoList[index].Status = enum.State(job.JobState).String() + 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 := pcmcoreclient.SyncInfoReq{ + syncInfoReq := pcmcore.SyncInfoReq{ Kind: "hpc", - ServiceName: "th", HpcInfoList: infoList.HpcInfoList, } svc.PcmCoreRpc.SyncInfo(context.Background(), &syncInfoReq) @@ -62,21 +57,18 @@ func InitCron(svc *svc.ServiceContext) { }) } -func submitJob(infoList *pcmcoreclient.InfoListResp, submitJobLogic *SubmitJobLogic) { +func submitJob(infoList *pcmcore.InfoListResp, submitJobLogic *SubmitJobLogic) { for index, _ := range infoList.HpcInfoList { if infoList.HpcInfoList[index].Status == "Saved" { - submitReq := hpcTH.SubmitJobReq{ - Account: infoList.HpcInfoList[index].Account, - Name: infoList.HpcInfoList[index].Name, - WorkDir: "/root", - Script: infoList.HpcInfoList[index].CmdScript, - UserId: 0, - MinNodes: 1, + submitReq := slurm.SubmitJobReq{ + Script: "", + Job: nil, + Jobs: nil, } jobResult, _ := submitJobLogic.SubmitJob(&submitReq) // 任务提交成功 infoList.HpcInfoList[index].Status = "Pending" - infoList.HpcInfoList[index].JobId = strconv.Itoa(int(jobResult.SubmitResponseMsg[0].JobId)) + infoList.HpcInfoList[index].JobId = string(jobResult.JobId) } } } diff --git a/internal/logic/getjoblogic.go b/internal/logic/getjoblogic.go new file mode 100644 index 0000000..4391fc5 --- /dev/null +++ b/internal/logic/getjoblogic.go @@ -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 GetJobLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewGetJobLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetJobLogic { + return &GetJobLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +func (l *GetJobLogic) GetJob(in *slurm.ListJobReq) (*slurm.ListJobResp, error) { + // todo: add your logic here and delete this line + + return &slurm.ListJobResp{}, nil +} diff --git a/internal/logic/listhistoryjoblogic.go b/internal/logic/listhistoryjoblogic.go deleted file mode 100644 index f2ce3a6..0000000 --- a/internal/logic/listhistoryjoblogic.go +++ /dev/null @@ -1,154 +0,0 @@ -package logic - -/* -#cgo LDFLAGS: -lslurmdb - -#include -#include -#include -#include -#include -#include -#include -#include - -slurmdb_job_rec_t *get_all_slurmdb_job() { - - slurmdb_job_cond_t *job_cond = NULL; - void *conn = slurmdb_connection_get(); - - List joblist = slurmdb_jobs_get(conn, job_cond); - - uint16_t listsize = slurm_list_count(joblist); - //qosinfo.record_count = size; - slurmdb_job_rec_t *jobarray = malloc(listsize * sizeof(slurmdb_job_rec_t)); - - ListIterator itr = slurm_list_iterator_create(joblist); - - slurmdb_job_rec_t *rec = NULL; - int i = 0; - while ((rec = slurm_list_next(itr))) { - jobarray[i] = *rec; - i++; - } - slurmdb_connection_close(&conn); - slurm_list_destroy(joblist); - //int arraysize = sizeof(jobarray); - //printf("%d\n", arraysize); - return jobarray; -} - -slurmdb_job_rec_t *job_from_array(slurmdb_job_rec_t *job_rec_array, int i) { - return (slurmdb_job_rec_t *) &(job_rec_array[i]); -} - -slurmdb_job_rec_t *job_from_array_by_id(slurmdb_job_rec_t *job_rec_array, int job_id) { - int i; - int arraysize = sizeof(job_rec_array); - for (i=0; i -#include -#include -#include -#include -#include - -inline uint8_t uint8_ptr(uint8_t* pointer) { - if (NULL == pointer) { - return -1;} - return *pointer; -} -inline int8_t int8_ptr(int8_t* pointer) { - if (NULL == pointer) { - return -1;} - return *pointer; -} -inline uint16_t uint16_ptr(uint16_t* pointer) { - if (NULL == pointer) { - return -1;} - return *pointer; -} -inline int16_t int16_ptr(int16_t* pointer) { - if (NULL == pointer) { - return -1;} - return *pointer; -} -inline uint32_t uint32_ptr(uint32_t* pointer) { - if (NULL == pointer) { - return -1;} - return *pointer; -} -inline int32_t int32_ptr(int32_t* pointer) { - if (NULL == pointer) { - return -1;} - return *pointer; -} -inline uint64_t uint64_ptr(uint64_t* pointer) { - if (NULL == pointer) { - return -1;} - return *pointer; -} -inline int64_t int64_ptr(int16_t* pointer) { - if (NULL == pointer) { - return -1;} - return *pointer; -} - -struct job_info_msg *get_job_info(){ - - struct job_info_msg* job_buffer; - if(slurm_load_jobs ((time_t) NULL, - &job_buffer, SHOW_ALL)) { - return NULL; - } - return job_buffer; - } - -struct job_info* job_from_list(struct job_info_msg *list, int i){ - return &list->job_array[i]; -} - -struct job_info_msg *get_single_job_info(uint32_t id){ - struct job_info_msg* job_buffer; - if( slurm_load_job (&job_buffer, id, SHOW_DETAIL)) { - return NULL; - } - return job_buffer; - } -*/ -import "C" import ( "context" "github.com/zeromicro/go-zero/core/logx" - "gitlink.org.cn/jcce-pcm/pcm-participant-slurm/hpcTH" "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 JobCtoGo(cStruct *C.struct_job_info) hpcTH.Job { - var goStruct hpcTH.Job - - goStruct.Account = C.GoString(cStruct.account) - goStruct.AllocNode = C.GoString(cStruct.alloc_node) - goStruct.AllocSid = uint32(cStruct.alloc_sid) - goStruct.ArrayJobId = uint32(cStruct.array_job_id) - goStruct.ArrayTaskId = uint32(cStruct.array_task_id) - goStruct.AssocId = uint32(cStruct.assoc_id) - goStruct.BatchFlag = uint32(cStruct.batch_flag) - goStruct.BatchHost = C.GoString(cStruct.batch_host) - goStruct.BoardsPerNode = uint32(cStruct.boards_per_node) - goStruct.BatchScript = C.GoString(cStruct.batch_script) - goStruct.Command = C.GoString(cStruct.command) - goStruct.Comment = C.GoString(cStruct.comment) - goStruct.Contiguous = uint32(cStruct.contiguous) - goStruct.CoresPerSocket = uint32(cStruct.cores_per_socket) - goStruct.CpusPerTask = uint32(cStruct.cpus_per_task) - goStruct.Dependency = C.GoString(cStruct.dependency) - goStruct.DerivedEc = uint32(cStruct.derived_ec) - goStruct.EligibleTime = int64(cStruct.eligible_time) - goStruct.EndTime = int64(cStruct.end_time) - goStruct.ExcNodes = C.GoString(cStruct.exc_nodes) - goStruct.ExcNodeInx = int32(C.int32_ptr(cStruct.exc_node_inx)) - goStruct.ExitCode = uint32(cStruct.exit_code) - goStruct.Features = C.GoString(cStruct.features) - goStruct.GroupId = uint32(cStruct.group_id) - goStruct.Gres = C.GoString(cStruct.gres) - goStruct.JobId = uint32(cStruct.job_id) - goStruct.JobState = uint32(cStruct.job_state) - goStruct.Licenses = C.GoString(cStruct.licenses) - goStruct.MaxCpus = uint32(cStruct.max_cpus) - goStruct.MaxNodes = uint32(cStruct.max_nodes) - goStruct.Name = C.GoString(cStruct.name) - goStruct.Network = C.GoString(cStruct.network) - goStruct.Nodes = C.GoString(cStruct.nodes) - goStruct.Nice = uint32(cStruct.nice) - goStruct.NodeInx = int32(C.int32_ptr(cStruct.node_inx)) - goStruct.NtasksPerCore = uint32(cStruct.ntasks_per_core) - goStruct.NtasksPerNode = uint32(cStruct.ntasks_per_node) - goStruct.NtasksPerSocket = uint32(cStruct.ntasks_per_socket) - goStruct.NtasksPerBoard = uint32(cStruct.ntasks_per_board) - goStruct.NumCpus = uint32(cStruct.num_cpus) - goStruct.NumNodes = uint32(cStruct.num_nodes) - goStruct.Partition = C.GoString(cStruct.partition) - goStruct.PnMinMemory = uint32(cStruct.pn_min_memory) - goStruct.PnMinCpus = uint32(cStruct.pn_min_cpus) - goStruct.PnMinTmpDisk = uint32(cStruct.pn_min_tmp_disk) - goStruct.PreemptTime = int64(cStruct.preempt_time) - goStruct.PreSusTime = int64(cStruct.pre_sus_time) - goStruct.Priority = uint32(cStruct.priority) - goStruct.Profile = uint32(cStruct.profile) - goStruct.Qos = C.GoString(cStruct.qos) - goStruct.ReqNodes = C.GoString(cStruct.req_nodes) - goStruct.ReqNodeInx = int32(C.int32_ptr(cStruct.req_node_inx)) - goStruct.ReqSwitch = uint32(cStruct.req_switch) - goStruct.Requeue = uint32(cStruct.requeue) - goStruct.ResizeTime = int64(cStruct.resize_time) - goStruct.RestartCnt = uint32(cStruct.restart_cnt) - goStruct.ResvName = C.GoString(cStruct.resv_name) - goStruct.Shared = uint32(cStruct.shared) - goStruct.ShowFlags = uint32(cStruct.show_flags) - goStruct.SocketsPerBoard = uint32(cStruct.sockets_per_board) - goStruct.SocketsPerNode = uint32(cStruct.sockets_per_node) - goStruct.StartTime = int64(cStruct.start_time) - goStruct.StateDesc = C.GoString(cStruct.state_desc) - goStruct.StateReason = uint32(cStruct.state_reason) - goStruct.SubmitTime = int64(cStruct.submit_time) - goStruct.SuspendTime = int64(cStruct.suspend_time) - goStruct.TimeLimit = uint32(cStruct.time_limit) - goStruct.TimeMin = uint32(cStruct.time_min) - goStruct.ThreadsPerCore = uint32(cStruct.threads_per_core) - goStruct.UserId = uint32(cStruct.user_id) - goStruct.Wait4Switch = uint32(cStruct.wait4switch) - goStruct.Wckey = C.GoString(cStruct.wckey) - goStruct.WorkDir = C.GoString(cStruct.work_dir) - - return goStruct -} - type ListJobLogic struct { ctx context.Context svcCtx *svc.ServiceContext @@ -176,25 +23,13 @@ func NewListJobLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ListJobLo } // ListJob list all jobs -func (l *ListJobLogic) ListJob(in *hpcTH.ListJobReq) (*hpcTH.ListJobResp, error) { +func (l *ListJobLogic) ListJob(in *slurm.ListJobReq) (*slurm.ListJobResp, error) { - var jobResp hpcTH.ListJobResp - cJobBuffer := C.get_job_info() - if cJobBuffer == nil { - jobResp.RecordCount = uint32(0) - jobResp.Jobs = nil - return &jobResp, nil - } - - jobResp.RecordCount = uint32(cJobBuffer.record_count) - for i := uint32(0); i < jobResp.RecordCount; i++ { - job := C.job_from_list(cJobBuffer, C.int(i)) - goJob := JobCtoGo(job) - jobResp.Jobs = append(jobResp.Jobs, &goJob) - } - jobResp.Code = 200 - jobResp.Msg = "success" - C.slurm_free_job_info_msg(cJobBuffer) - - return &jobResp, nil + var listJobResp slurm.ListJobResp + url := "http://127.0.0.1:4523/m1/1136481-0-default/slurm/v0.0.37/jobs" + slurmHttpRequest := tool.GetACHttpRequest() + slurmHttpRequest.SetHeader(tool.ContentType, tool.ApplicationJson).SetPathParams(map[string]string{ + "update_time": "1", + }).SetResult(&listJobResp).Get(url) + return &listJobResp, nil } diff --git a/internal/logic/submitjoblogic.go b/internal/logic/submitjoblogic.go index 41a4ae6..0b27940 100644 --- a/internal/logic/submitjoblogic.go +++ b/internal/logic/submitjoblogic.go @@ -1,44 +1,12 @@ package logic -/* -#include -#include -#include -#include -#include - -struct submit_response_msg *submit_job(struct job_descriptor *desc) -{ - - struct submit_response_msg *resp_msg; - if (slurm_submit_batch_job(desc, - &resp_msg)) { - return NULL; - } - return resp_msg; - -} - -void free_submit_response_msg(struct submit_response_msg *msg) -{ - slurm_free_submit_response_response_msg(msg); -} - -int update_job (struct job_descriptor *msg) { - - return slurm_update_job (msg); -} -*/ -import "C" - import ( "context" - "fmt" - "gitlink.org.cn/jcce-pcm/pcm-participant-slurm/hpcTH" - "gitlink.org.cn/jcce-pcm/pcm-participant-slurm/internal/svc" - "unsafe" - + "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" ) type SubmitJobLogic struct { @@ -55,348 +23,13 @@ func NewSubmitJobLogic(ctx context.Context, svcCtx *svc.ServiceContext) *SubmitJ } } -// Submit job -func (l *SubmitJobLogic) SubmitJob(in *hpcTH.SubmitJobReq) (*hpcTH.SubmitJobResp, error) { - var cStruct C.struct_job_descriptor +func (l *SubmitJobLogic) SubmitJob(in *slurm.SubmitJobReq) (*slurm.SubmitJobResp, error) { - C.slurm_init_job_desc_msg(&cStruct) - if in.Account != "" { - accountS := C.CString(in.Account) - defer C.free(unsafe.Pointer(accountS)) - cStruct.account = accountS - } - if in.AcctgFreq != "" { - acctgFreqS := C.CString(in.AcctgFreq) - defer C.free(unsafe.Pointer(acctgFreqS)) - cStruct.acctg_freq = acctgFreqS - } - if in.AllocNode != "" { - allocNodeS := C.CString(in.AllocNode) - defer C.free(unsafe.Pointer(allocNodeS)) - cStruct.alloc_node = allocNodeS - } - if in.AllocRespPort != 0 { - cStruct.alloc_resp_port = C.uint16_t(in.AllocRespPort) - } - if in.AllocSid != 0 { - cStruct.alloc_sid = C.uint32_t(in.AllocSid) - } - if len(in.Argv) > 0 { - cStruct.argc = C.uint32_t(len(in.Argv)) - cArray := C.malloc(C.size_t(C.size_t(len(in.Argv)) * C.size_t(unsafe.Sizeof(uintptr(0))))) - a := (*[1<<30 - 1]*C.char)(cArray) - for i := 0; i < len(in.Argv); i++ { - a[i] = C.CString(in.Argv[i].String()) - } - cStruct.argv = (**C.char)(cArray) - fmt.Printf("test\n") - } - - if in.ArrayInx != "" { - arrayInxS := C.CString(in.ArrayInx) - defer C.free(unsafe.Pointer(arrayInxS)) - cStruct.array_inx = arrayInxS - } - if in.BeginTime != 0 { - cStruct.begin_time = C.int64_t(in.BeginTime) - } - if in.CkptInterval != 0 { - cStruct.ckpt_interval = C.uint16_t(in.CkptInterval) - } - if in.CkptDir != "" { - ckptDirS := C.CString(in.CkptDir) - defer C.free(unsafe.Pointer(ckptDirS)) - cStruct.ckpt_dir = ckptDirS - } - if in.Comment != "" { - commentS := C.CString(in.Comment) - defer C.free(unsafe.Pointer(commentS)) - cStruct.comment = commentS - } - if in.Contiguous != 0 { - cStruct.contiguous = C.uint16_t(in.Contiguous) - } - if in.CpuBind != "" { - cpuBindS := C.CString(in.CpuBind) - defer C.free(unsafe.Pointer(cpuBindS)) - cStruct.cpu_bind = cpuBindS - } - if in.CpuBindType != 0 { - cStruct.cpu_bind_type = C.uint16_t(in.CpuBindType) - } - if in.Dependency != "" { - dependencyS := C.CString(in.Dependency) - defer C.free(unsafe.Pointer(dependencyS)) - cStruct.dependency = dependencyS - } - if in.EndTime != 0 { - cStruct.end_time = C.int64_t(in.EndTime) - } - if len(in.Environment) > 0 { - cStruct.env_size = C.uint32_t(len(in.Environment)) - cArray := C.malloc(C.size_t(C.size_t(len(in.Environment)) * C.size_t(unsafe.Sizeof(uintptr(0))))) - a := (*[1<<30 - 1]*C.char)(cArray) - for i := 0; i < len(in.Environment); i++ { - a[i] = C.CString(in.Environment[i].String()) - defer C.free(unsafe.Pointer(a[i])) - } - cStruct.environment = (**C.char)(cArray) - } else { - cStruct.env_size = 1 - cArray := C.malloc(C.size_t(C.size_t(1) * C.size_t(unsafe.Sizeof(uintptr(0))))) - a := (*[1<<30 - 1]*C.char)(cArray) - a[0] = C.CString("SLURM_GO_JOB=TRUE") - defer C.free(unsafe.Pointer(a[0])) - cStruct.environment = (**C.char)(cArray) - - } - if in.ExcNodes != "" { - excNodesS := C.CString(in.ExcNodes) - defer C.free(unsafe.Pointer(excNodesS)) - cStruct.exc_nodes = excNodesS - } - if in.Features != "" { - featuresS := C.CString(in.Features) - defer C.free(unsafe.Pointer(featuresS)) - cStruct.features = featuresS - } - if in.GroupId != 0 { - cStruct.group_id = C.uint32_t(in.GroupId) - } - if in.Immediate != 0 { - cStruct.immediate = C.uint16_t(in.Immediate) - } - if in.JobId != 0 { - cStruct.job_id = C.uint32_t(in.JobId) - } - if in.KillOnNodeFail != 0 { - cStruct.kill_on_node_fail = C.uint16_t(in.KillOnNodeFail) - } - if in.Licenses != "" { - licensesS := C.CString(in.Licenses) - defer C.free(unsafe.Pointer(licensesS)) - cStruct.licenses = licensesS - } - if in.MailType != 0 { - cStruct.mail_type = C.uint16_t(in.MailType) - } - if in.MailUser != "" { - mailUserS := C.CString(in.MailUser) - defer C.free(unsafe.Pointer(mailUserS)) - cStruct.mail_user = mailUserS - } - if in.MemBind != "" { - memBindS := C.CString(in.MemBind) - defer C.free(unsafe.Pointer(memBindS)) - cStruct.mem_bind = memBindS - } - if in.MemBindType != 0 { - cStruct.mem_bind_type = C.uint16_t(in.MemBindType) - } - if in.Name != "" { - nameS := C.CString(in.Name) - defer C.free(unsafe.Pointer(nameS)) - cStruct.name = nameS - } - if in.Network != "" { - networkS := C.CString(in.Network) - defer C.free(unsafe.Pointer(networkS)) - cStruct.network = networkS - } - if in.Nice != 0 { - cStruct.nice = C.uint16_t(in.Nice) - } - if in.NumTasks != 0 { - cStruct.num_tasks = C.uint32_t(in.NumTasks) - } - if in.OpenMode != 0 { - cStruct.open_mode = C.uint8_t(in.OpenMode) - } - if in.OtherPort != 0 { - cStruct.other_port = C.uint16_t(in.OtherPort) - } - if in.Overcommit != 0 { - cStruct.overcommit = C.uint8_t(in.Overcommit) - } - if in.Partition != "" { - partitionS := C.CString(in.Partition) - defer C.free(unsafe.Pointer(partitionS)) - cStruct.partition = partitionS - } - if in.PlaneSize != 0 { - cStruct.plane_size = C.uint16_t(in.PlaneSize) - } - if in.Priority != 0 { - cStruct.priority = C.uint32_t(in.Priority) - } - if in.Profile != 0 { - cStruct.profile = C.uint32_t(in.Profile) - } - if in.Qos != "" { - qosS := C.CString(in.Qos) - defer C.free(unsafe.Pointer(qosS)) - cStruct.qos = qosS - } - if in.Reboot != 0 { - cStruct.reboot = C.uint16_t(in.Reboot) - } - if in.RespHost != "" { - respHostS := C.CString(in.RespHost) - defer C.free(unsafe.Pointer(respHostS)) - cStruct.resp_host = respHostS - } - if in.ReqNodes != "" { - reqNodesS := C.CString(in.ReqNodes) - defer C.free(unsafe.Pointer(reqNodesS)) - cStruct.req_nodes = reqNodesS - } - if in.Requeue != 0 { - cStruct.requeue = C.uint16_t(in.Requeue) - } - if in.Reservation != "" { - reservationS := C.CString(in.Reservation) - defer C.free(unsafe.Pointer(reservationS)) - cStruct.reservation = reservationS - } - if in.Script != "" { - scriptS := C.CString(in.Script) - defer C.free(unsafe.Pointer(scriptS)) - cStruct.script = scriptS - } - if in.Shared != 0 { - cStruct.shared = C.uint16_t(in.Shared) - } - if in.SpankJobEnvSize != 0 { - cStruct.spank_job_env_size = C.uint32_t(in.SpankJobEnvSize) - } - if in.TaskDist != 0 { - cStruct.task_dist = C.uint16_t(in.TaskDist) - } - if in.TimeLimit != 0 { - cStruct.time_limit = C.uint32_t(in.TimeLimit) - } - if in.TimeMin != 0 { - cStruct.time_min = C.uint32_t(in.TimeMin) - } - //if go_struct.User_id != 0 { - // c_struct.user_id = C.uint32_t(go_struct.User_id) - //} - cStruct.user_id = C.uint32_t(in.UserId) - - if in.WaitAllNodes != 0 { - cStruct.wait_all_nodes = C.uint16_t(in.WaitAllNodes) - } - if in.WarnSignal != 0 { - cStruct.warn_signal = C.uint16_t(in.WarnSignal) - } - if in.WarnTime != 0 { - cStruct.warn_time = C.uint16_t(in.WarnTime) - } - if in.WorkDir != "" { - workDirS := C.CString(in.WorkDir) - defer C.free(unsafe.Pointer(workDirS)) - cStruct.work_dir = workDirS - } - if in.CpusPerTask != 0 { - cStruct.cpus_per_task = C.uint16_t(in.CpusPerTask) - } - if in.MinCpus != 0 { - cStruct.min_cpus = C.uint32_t(in.MinCpus) - } - if in.MaxCpus != 0 { - cStruct.max_cpus = C.uint32_t(in.MaxCpus) - } - if in.MinNodes != 0 { - cStruct.min_nodes = C.uint32_t(in.MinNodes) - } - if in.MaxNodes != 0 { - cStruct.max_nodes = C.uint32_t(in.MaxNodes) - } - if in.BoardsPerNode != 0 { - cStruct.boards_per_node = C.uint16_t(in.BoardsPerNode) - } - if in.SocketsPerBoard != 0 { - cStruct.sockets_per_board = C.uint16_t(in.SocketsPerBoard) - } - if in.SocketsPerNode != 0 { - cStruct.sockets_per_node = C.uint16_t(in.SocketsPerNode) - } - if in.CoresPerSocket != 0 { - cStruct.cores_per_socket = C.uint16_t(in.CoresPerSocket) - } - if in.ThreadsPerCore != 0 { - cStruct.threads_per_core = C.uint16_t(in.ThreadsPerCore) - } - if in.NtasksPerNode != 0 { - cStruct.ntasks_per_node = C.uint16_t(in.NtasksPerNode) - } - if in.NtasksPerSocket != 0 { - cStruct.ntasks_per_socket = C.uint16_t(in.NtasksPerSocket) - } - if in.NtasksPerCore != 0 { - cStruct.ntasks_per_core = C.uint16_t(in.NtasksPerCore) - } - if in.NtasksPerBoard != 0 { - cStruct.ntasks_per_board = C.uint16_t(in.NtasksPerBoard) - } - if in.PnMinCpus != 0 { - cStruct.pn_min_cpus = C.uint16_t(in.PnMinCpus) - } - if in.PnMinMemory != 0 { - cStruct.pn_min_memory = C.uint32_t(in.PnMinMemory) - } - if in.PnMinTmpDisk != 0 { - cStruct.pn_min_tmp_disk = C.uint32_t(in.PnMinTmpDisk) - } - if in.ReqSwitch != 0 { - cStruct.req_switch = C.uint32_t(in.ReqSwitch) - } - if in.StdErr != "" { - stdErrS := C.CString(in.StdErr) - defer C.free(unsafe.Pointer(stdErrS)) - cStruct.std_err = stdErrS - } - if in.StdIn != "" { - stdInS := C.CString(in.StdIn) - defer C.free(unsafe.Pointer(stdInS)) - cStruct.std_in = stdInS - } - if in.StdOut != "" { - stdOutS := C.CString(in.StdOut) - defer C.free(unsafe.Pointer(stdOutS)) - cStruct.std_out = stdOutS - } - - if in.Wait4Switch != 0 { - cStruct.wait4switch = C.uint32_t(in.Wait4Switch) - } - if in.Wckey != "" { - wckeyS := C.CString(in.Wckey) - defer C.free(unsafe.Pointer(wckeyS)) - cStruct.wckey = wckeyS - } - - cMsg := C.submit_job(&cStruct) - - defer C.free_submit_response_msg(cMsg) - if cMsg == nil { - goMsg := hpcTH.SubmitJobResp{} - goMsg.SubmitResponseMsg[0].JobId = 1<<31 - 1 - goMsg.SubmitResponseMsg[0].ErrorCode = uint32(C.slurm_get_errno()) - return &goMsg, nil - } - goMsg := submitResponseMsgConvertCToGo(cMsg) - - return &goMsg, nil -} - -func submitResponseMsgConvertCToGo(cStruct *C.struct_submit_response_msg) hpcTH.SubmitJobResp { - var goStruct hpcTH.SubmitJobResp - - submitRespMsg := hpcTH.SubmitResponseMsg{} - submitRespMsg.JobId = uint32(cStruct.job_id) - submitRespMsg.StepId = uint32(cStruct.step_id) - submitRespMsg.ErrorCode = uint32(cStruct.error_code) - goStruct.SubmitResponseMsg = append(goStruct.SubmitResponseMsg, &submitRespMsg) - return goStruct + 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 } diff --git a/internal/pkg/cron/checkhealthcron.go b/internal/pkg/cron/checkhealthcron.go new file mode 100644 index 0000000..3e275af --- /dev/null +++ b/internal/pkg/cron/checkhealthcron.go @@ -0,0 +1,28 @@ +package cron + +import ( + "context" + "github.com/zeromicro/go-zero/core/logx" + "gitlink.org.cn/jcce-pcm/pcm-coordinator/rpc/client/participantservice" + "gitlink.org.cn/jcce-pcm/utils/tool" +) + +func ReportHeartbeat(participantRpc participantservice.ParticipantService) { + participantId, err := tool.GetParticipantId("etc/kubernetes.yaml") + if err != nil { + logx.Errorf("获取participant id失败! err:", err) + return + } + resp, err := participantRpc.ReportHeartbeat(context.Background(), &participantservice.ParticipantHeartbeatReq{ + ParticipantId: participantId, + Address: "10.101.15.3:6443", + }) + if err != nil { + logx.Error(err) + return + } + if resp.Code != 200 { + logx.Error(resp.Msg) + } + logx.Info("心跳推送成功!") +} diff --git a/internal/pkg/cron/cron.go b/internal/pkg/cron/cron.go new file mode 100644 index 0000000..7643f7d --- /dev/null +++ b/internal/pkg/cron/cron.go @@ -0,0 +1,22 @@ +package cron + +import ( + "gitlink.org.cn/jcce-pcm/pcm-participant-slurm/internal/svc" +) + +func AddCronGroup(svc *svc.ServiceContext) { + // 同步任务信息到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.Config.PrometheusUrl, svc.ParticipantRpc, svc.ClientSet) + }) +} diff --git a/internal/pkg/cron/taskcron.go b/internal/pkg/cron/taskcron.go new file mode 100644 index 0000000..1cbf984 --- /dev/null +++ b/internal/pkg/cron/taskcron.go @@ -0,0 +1,36 @@ +package cron + +import ( + "context" + "github.com/zeromicro/go-zero/core/logx" + "gitlink.org.cn/jcce-pcm/pcm-coordinator/rpc/pcmCore" + "gitlink.org.cn/jcce-pcm/pcm-participant-slurm/internal/svc" + "gitlink.org.cn/jcce-pcm/utils/tool" +) + +func SyncTask(svc *svc.ServiceContext) { + participantId, err := tool.GetParticipantId("etc/kubernetes.yaml") + if err != nil { + return + } + // 查询core端分发下来的任务列表 + infoReq := pcmCore.InfoListReq{ + Kind: "hpc", + ParticipantId: participantId, + } + infoList, err := svc.PcmCoreRpc.InfoList(context.Background(), &infoReq) + if err != nil { + logx.Error(err) + return + } + + if len(infoList.CloudInfoList) != 0 { + // 同步信息到core端 + SyncInfoReq := pcmCore.SyncInfoReq{ + Kind: "cloud", + ParticipantId: participantId, + CloudInfoList: infoList.CloudInfoList, + } + svc.PcmCoreRpc.SyncInfo(context.Background(), &SyncInfoReq) + } +} diff --git a/internal/pkg/tracker/tracker.go b/internal/pkg/tracker/tracker.go new file mode 100644 index 0000000..7b58c24 --- /dev/null +++ b/internal/pkg/tracker/tracker.go @@ -0,0 +1,204 @@ +package tracker + +import ( + "context" + "encoding/json" + "github.com/prometheus/client_golang/api" + v1 "github.com/prometheus/client_golang/api/prometheus/v1" + proModel "github.com/prometheus/common/model" + "gitlink.org.cn/jcce-pcm/pcm-coordinator/model" + "gitlink.org.cn/jcce-pcm/pcm-coordinator/rpc/client/participantservice" + "gitlink.org.cn/jcce-pcm/utils/tool" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/client-go/kubernetes" + "time" +) + +const ( + NODE_DISK_AVAIL = "node_filesystem_avail_bytes{fstype=~\"ext4|xfs\"}" + NODE_DISK_TOTAL = "node_filesystem_size_bytes{fstype=~\"ext4|xfs\"}" + NODE_MEMORY_AVAIL = "node_memory_MemAvailable_bytes" + NODE_MEMORY_TOTAL = "node_memory_MemTotal_bytes" + NODE_CPU_TOTAL_COUNT = "node:node_num_cpu:sum" + NODE_CPU_USAGE = "sum by (instance)(increase(node_cpu_seconds_total{mode=\"idle\"}[5m])) / sum by (instance)(increase(node_cpu_seconds_total[5m]))" +) + +var address string + +func MetricsQuery(statement string) (*proModel.Vector, error) { + client, err := api.NewClient(api.Config{ + Address: address, + }) + if err != nil { + return nil, err + } + + v1api := v1.NewAPI(client) + ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) + defer cancel() + metrics, _, err := v1api.Query(ctx, statement, time.Now(), v1.WithTimeout(5*time.Second)) + marshal, err := json.Marshal(metrics) + if err != nil { + return nil, err + } + vector := proModel.Vector{} + json.Unmarshal(marshal, &vector) + return &vector, nil +} + +// NodeDiskAvail 查询磁盘可用空间 +func NodeDiskAvail(nodes []*model.ScNodeAvailInfo) ([]*model.ScNodeAvailInfo, error) { + vectors, err := MetricsQuery(NODE_DISK_AVAIL) + if err != nil { + return nil, err + } + for index, _ := range nodes { + for i := 0; i < vectors.Len(); i++ { + if string((*vectors)[i].Metric["instance"]) == nodes[index].NodeName { + nodes[index].DiskAvail = tool.StringToInt64((*vectors)[index].Value.String()) + } + } + } + return nodes, nil +} + +// NodeDiskTotal 查询磁盘总空间 +func NodeDiskTotal(nodes []*model.ScNodeAvailInfo) ([]*model.ScNodeAvailInfo, error) { + vectors, err := MetricsQuery(NODE_DISK_TOTAL) + if err != nil { + return nil, err + } + for index, _ := range nodes { + for i := 0; i < vectors.Len(); i++ { + if string((*vectors)[i].Metric["instance"]) == nodes[index].NodeName { + nodes[index].DiskTotal = tool.StringToInt64((*vectors)[index].Value.String()) + } + } + + } + return nodes, nil +} + +// NodeMemoryTotal 查询内存总大小 +func NodeMemoryTotal(nodes []*model.ScNodeAvailInfo) ([]*model.ScNodeAvailInfo, error) { + vectors, err := MetricsQuery(NODE_MEMORY_TOTAL) + if err != nil { + return nil, err + } + for index, _ := range nodes { + for i := 0; i < vectors.Len(); i++ { + if string((*vectors)[i].Metric["instance"]) == nodes[index].NodeName { + nodes[index].MemTotal = tool.StringToInt64((*vectors)[index].Value.String()) + } + } + + } + return nodes, nil +} + +// NodeMemoryAvail 查询内存可用大小 +func NodeMemoryAvail(nodes []*model.ScNodeAvailInfo) ([]*model.ScNodeAvailInfo, error) { + vectors, err := MetricsQuery(NODE_MEMORY_AVAIL) + if err != nil { + return nil, err + } + for index, _ := range nodes { + for i := 0; i < vectors.Len(); i++ { + if string((*vectors)[i].Metric["instance"]) == nodes[index].NodeName { + nodes[index].MemAvail = tool.StringToInt64((*vectors)[index].Value.String()) + } + } + + } + return nodes, nil +} + +// NodeCpuTotalCount 查询cpu总核数 +func NodeCpuTotalCount(nodes []*model.ScNodeAvailInfo) ([]*model.ScNodeAvailInfo, error) { + vectors, err := MetricsQuery(NODE_CPU_TOTAL_COUNT) + if err != nil { + return nil, err + } + for index, _ := range nodes { + for i := 0; i < vectors.Len(); i++ { + if string((*vectors)[i].Metric["node"]) == nodes[index].NodeName { + nodes[index].CpuTotal = tool.StringToInt64((*vectors)[index].Value.String()) + } + } + + } + return nodes, nil +} + +// NodeCpuUsage 查询cpu使用率 +func NodeCpuUsage(nodes []*model.ScNodeAvailInfo) ([]*model.ScNodeAvailInfo, error) { + vectors, err := MetricsQuery(NODE_CPU_USAGE) + if err != nil { + return nil, err + } + for index, _ := range nodes { + for i := 0; i < vectors.Len(); i++ { + if string((*vectors)[i].Metric["instance"]) == nodes[index].NodeName { + nodes[index].CpuUsable = tool.StringToFloat64((*vectors)[index].Value.String()) + } + } + + } + return nodes, nil +} + +func NodesDynamicInfo(metricsUrl string, participantRpc participantservice.ParticipantService, kubeClient *kubernetes.Clientset) ([]*model.ScNodeAvailInfo, error) { + participantId, err := tool.GetParticipantId("etc/kubernetes.yaml") + address = metricsUrl + var nodes []*model.ScNodeAvailInfo + nodeList, err := kubeClient.CoreV1().Nodes().List(context.Background(), metav1.ListOptions{}) + if err != nil { + return nil, err + } + for _, node := range nodeList.Items { + nodePhy := model.ScNodeAvailInfo{ + NodeName: node.ObjectMeta.Name, + ParticipantId: participantId, + } + nodes = append(nodes, &nodePhy) + } + NodeDiskAvail(nodes) + NodeDiskTotal(nodes) + NodeMemoryTotal(nodes) + NodeMemoryAvail(nodes) + NodeCpuUsage(nodes) + NodeCpuTotalCount(nodes) + + nodeAvailInfo := []*participantservice.NodeAvailInfo{} + tool.Convert(nodes, &nodeAvailInfo) + + if err != nil { + return nil, err + } + req := participantservice.ParticipantAvailReq{ + ParticipantId: participantId, + NodeAvailInfo: nodeAvailInfo, + } + participantRpc.ReportAvailable(context.Background(), &req) + return nodes, nil + +} + +// NodesStaticInfo 同步节点静态信息 +func NodesStaticInfo(kubeClient *kubernetes.Clientset) ([]*model.ScNodePhyInfo, error) { + var result []*model.ScNodePhyInfo + nodes, err := kubeClient.CoreV1().Nodes().List(context.Background(), metav1.ListOptions{}) + if err != nil { + return nil, err + } + for _, node := range nodes.Items { + nodePhy := model.ScNodePhyInfo{ + NodeName: node.ObjectMeta.Name, + OsName: node.Status.NodeInfo.OSImage, + ArchType: node.Status.NodeInfo.Architecture, + ArchName: node.Status.NodeInfo.KernelVersion, + } + result = append(result, &nodePhy) + } + return result, nil +} diff --git a/internal/server/hpcthserver.go b/internal/server/hpcthserver.go deleted file mode 100644 index 07ea11b..0000000 --- a/internal/server/hpcthserver.go +++ /dev/null @@ -1,41 +0,0 @@ -// Code generated by goctl. DO NOT EDIT. -// Source: hpcTH.proto - -package server - -import ( - "context" - - "gitlink.org.cn/jcce-pcm/pcm-participant-slurm/hpcTH" - "gitlink.org.cn/jcce-pcm/pcm-participant-slurm/internal/logic" - "gitlink.org.cn/jcce-pcm/pcm-participant-slurm/internal/svc" -) - -type HpcTHServer struct { - svcCtx *svc.ServiceContext - hpcTH.UnimplementedHpcTHServer -} - -func NewHpcTHServer(svcCtx *svc.ServiceContext) *HpcTHServer { - return &HpcTHServer{ - svcCtx: svcCtx, - } -} - -// ListJob list all jobs -func (s *HpcTHServer) ListJob(ctx context.Context, in *hpcTH.ListJobReq) (*hpcTH.ListJobResp, error) { - l := logic.NewListJobLogic(ctx, s.svcCtx) - return l.ListJob(in) -} - -// ListHistoryJob list all history jobs -func (s *HpcTHServer) ListHistoryJob(ctx context.Context, in *hpcTH.ListHistoryJobReq) (*hpcTH.ListHistoryJobResp, error) { - l := logic.NewListHistoryJobLogic(ctx, s.svcCtx) - return l.ListHistoryJob(in) -} - -// Submit job -func (s *HpcTHServer) SubmitJob(ctx context.Context, in *hpcTH.SubmitJobReq) (*hpcTH.SubmitJobResp, error) { - l := logic.NewSubmitJobLogic(ctx, s.svcCtx) - return l.SubmitJob(in) -} diff --git a/internal/server/slurmserver.go b/internal/server/slurmserver.go new file mode 100644 index 0000000..ad02f75 --- /dev/null +++ b/internal/server/slurmserver.go @@ -0,0 +1,38 @@ +// 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) +} diff --git a/internal/svc/servicecontext.go b/internal/svc/servicecontext.go index e469b55..59734d2 100644 --- a/internal/svc/servicecontext.go +++ b/internal/svc/servicecontext.go @@ -3,20 +3,22 @@ package svc import ( "github.com/robfig/cron/v3" "github.com/zeromicro/go-zero/zrpc" - "gitlink.org.cn/jcce-pcm/pcm-coordinator/rpc/pcmcoreclient" + "gitlink.org.cn/jcce-pcm/pcm-coordinator/rpc/client/participantservice" + "gitlink.org.cn/jcce-pcm/pcm-coordinator/rpc/client/pcmcore" "gitlink.org.cn/jcce-pcm/pcm-participant-slurm/internal/config" ) type ServiceContext struct { - Config config.Config - Cron *cron.Cron - PcmCoreRpc pcmcoreclient.PcmCore + Config config.Config + Cron *cron.Cron + PcmCoreRpc pcmcore.PcmCore + ParticipantRpc participantservice.ParticipantService } func NewServiceContext(c config.Config) *ServiceContext { return &ServiceContext{ Cron: cron.New(cron.WithSeconds()), Config: c, - PcmCoreRpc: pcmcoreclient.NewPcmCore(zrpc.MustNewClient(c.PcmCoreRpcConf)), + PcmCoreRpc: pcmcore.NewPcmCore(zrpc.MustNewClient(c.PcmCoreRpcConf)), } } diff --git a/pb/hpcTH.proto b/pb/hpcTH.proto deleted file mode 100644 index 674c688..0000000 --- a/pb/hpcTH.proto +++ /dev/null @@ -1,287 +0,0 @@ -syntax = "proto3"; - -package hpcTH; -option go_package = "/hpcTH"; - -/******************Job Start*************************/ -message job{ - string account = 1; // @gotags: copier:"Account" - string alloc_node = 2; // @gotags: copier:"AllocNode" - uint32 alloc_sid = 3; // @gotags: copier:"AllocSid" - uint32 array_job_id = 4; // @gotags: copier:"ArrayJobId" - uint32 array_task_id = 5; // @gotags: copier:"ArrayTaskId" - uint32 assoc_id = 6; // @gotags: copier:"AssocId" - uint32 batch_flag = 7; // @gotags: copier:"BatchFlag" - string batch_host = 8; // @gotags: copier:"BatchHost" - string batch_script = 9; // @gotags: copier:"BatchScript" - string command = 10; // @gotags: copier:"Command" - string comment = 11; // @gotags: copier:"Comment" - uint32 contiguous = 12; // @gotags: copier:"Contiguous" - uint32 cpus_per_task = 13; // @gotags: copier:"CpusPerTask" - string dependency = 14; // @gotags: copier:"Dependency" - uint32 derived_ec = 15; // @gotags: copier:"DerivedEc" - int64 eligible_time = 16; // @gotags: copier:"EligibleTime" - int64 end_time = 17; // @gotags: copier:"EndTime" - string exc_nodes = 18; // @gotags: copier:"ExcNodes" - int32 exc_node_inx = 19; // @gotags: copier:"ExcNodeInx" - uint32 exit_code = 20; // @gotags: copier:"ExitCode" - string features = 21; // @gotags: copier:"Features" - string gres = 22; // @gotags: copier:"Gres" - uint32 group_id = 23; // @gotags: copier:"GroupId" - uint32 job_id = 24; // @gotags: copier:"JobId" - uint32 job_state = 25; // @gotags: copier:"JobState" - string licenses = 26; // @gotags: copier:"Licenses" - uint32 max_cpus = 27; // @gotags: copier:"MaxCpus" - uint32 max_nodes = 28; // @gotags: copier:"MaxNodes" - uint32 boards_per_node = 29; // @gotags: copier:"BoardsPerNode" - uint32 sockets_per_board = 30; // @gotags: copier:"SocketsPerBoard" - uint32 sockets_per_node = 31; // @gotags: copier:"SocketsPerNode" - uint32 cores_per_socket = 32; // @gotags: copier:"CoresPerSocket" - uint32 threads_per_core = 33; // @gotags: copier:"ThreadsPerCore" - string name = 34; // @gotags: copier:"Name" - string network = 35; // @gotags: copier:"Network" - string nodes = 36; // @gotags: copier:"Nodes" - uint32 nice = 37; // @gotags: copier:"Nice" - int32 node_inx = 38; // @gotags: copier:"NodeInx" - uint32 ntasks_per_core = 39; // @gotags: copier:"NtasksPerCore" - uint32 ntasks_per_node = 40; // @gotags: copier:"NtasksPerNode" - uint32 ntasks_per_socket = 41; // @gotags: copier:"NtasksPerSocket" - uint32 ntasks_per_board = 42; // @gotags: copier:"NtasksPerBoard" - uint32 num_nodes = 43; // @gotags: copier:"NumNodes" - uint32 num_cpus = 44; // @gotags: copier:"NumCpus" - string partition = 45; // @gotags: copier:"Partition" - uint32 pn_min_memory = 46; // @gotags: copier:"PnMinMemory" - uint32 pn_min_cpus = 47; // @gotags: copier:"PnMinCpus" - uint32 pn_min_tmp_disk = 48; // @gotags: copier:"PnMinTmpDisk" - int64 pre_sus_time = 49; // @gotags: copier:"PreSusTime" - uint32 priority = 50; // @gotags: copier:"Priority" - uint32 profile = 51; // @gotags: copier:"Profile" - string qos = 52; // @gotags: copier:"Qos" - string req_nodes = 53; // @gotags: copier:"ReqNodes" - int32 req_node_inx = 54; // @gotags: copier:"ReqNodeInx" - uint32 req_switch = 55; // @gotags: copier:"ReqSwitch" - uint32 requeue = 56; // @gotags: copier:"Requeue" - int64 resize_time = 57; // @gotags: copier:"ResizeTime" - uint32 restart_cnt = 58; // @gotags: copier:"RestartCnt" - string resv_name = 59; // @gotags: copier:"ResvName" - uint32 shared = 60; // @gotags: copier:"Shared" - uint32 show_flags = 61; // @gotags: copier:"ShowFlags" - int64 start_time = 62; // @gotags: copier:"StartTime" - string state_desc = 63; // @gotags: copier:"StateDesc" - uint32 state_reason = 64; // @gotags: copier:"StateReason" - int64 submit_time = 65; // @gotags: copier:"SubmitTime" - int64 suspend_time = 66; // @gotags: copier:"SuspendTime" - uint32 time_limit = 67; // @gotags: copier:"TimeLimit" - uint32 time_min = 68; // @gotags: copier:"TimeMin" - uint32 user_id = 69; // @gotags: copier:"UserId" - int64 preempt_time = 70; // @gotags: copier:"PreemptTime" - uint32 wait4switch = 71; // @gotags: copier:"Wait4Switch" - string wckey = 72; // @gotags: copier:"Wckey" - string work_dir = 73; // @gotags: copier:"WorkDir" -} - -message ListJobReq{ -} - -message ListJobResp{ - uint32 code = 1; // @gotags: copier:"Code" - string msg = 2; // @gotags: copier:"Msg" - uint32 record_count = 3; // @gotags: copier:"RecordCount" - repeated job jobs = 4; // @gotags: copier:"Jobs" -} -/******************Job End*************************/ - - -/******************History Job Start*************************/ -message historyJob{ - uint32 alloc_cpu = 1; // @gotags: copier:"AllocCPU" - uint32 alloc_nodes = 2; // @gotags: copier:"AllocNodes" - string account = 3; // @gotags: copier:"Account" - uint32 associd = 4; // @gotags: copier:"AssocId" - string blockid = 5; // @gotags: copier:"BlockId" - string cluster = 6; // @gotags: copier:"Cluster" - uint32 derived_ec = 7; // @gotags: copier:"DerivedEc" - string derived_es = 8; // @gotags: copier:"DerivedEs" - uint32 elapsed = 9; // @gotags: copier:"Elapsed" - int64 eligible = 10;// @gotags: copier:"Eligible" - int64 end = 11;// @gotags: copier:"End" - uint32 exitcode = 12;// @gotags: copier:"ExitCode" - uint32 gid = 13;// @gotags: copier:"Gid" - uint32 jobid = 14;// @gotags: copier:"JobId" - string jobname = 15;// @gotags: copier:"JobName" - uint32 lft = 16;// @gotags: copier:"Lft" - string partition = 17;// @gotags: copier:"Partition" - string nodes = 18;// @gotags: copier:"Nodes" - uint32 priority = 19;// @gotags: copier:"Priority" - uint32 qosid = 20;// @gotags: copier:"Qosid" - uint32 req_cpus = 21;// @gotags: copier:"ReqCpus" - uint32 req_mem = 22;// @gotags: copier:"ReqMem" - uint32 requid = 23;// @gotags: copier:"Requid" - uint32 resvid = 24;// @gotags: copier:"Resvid" - uint32 show_full = 25;// @gotags: copier:"ShowFull" - int64 start = 26;// @gotags: copier:"Start" - uint32 state = 27;// @gotags: copier:"State" - int64 submit = 28;// @gotags: copier:"Submit" - uint32 suspended = 29;// @gotags: copier:"Suspended" - uint32 sys_cpu_sec = 30;// @gotags: copier:"SysCpuSec" - uint32 sys_cpu_usec = 31;// @gotags: copier:"SysCpuUsec" - uint32 timelimit = 32;// @gotags: copier:"Timelimit" - uint32 tot_cpu_sec = 33;// @gotags: copier:"TotCpuSec" - uint32 tot_cpu_usec = 34;// @gotags: copier:"TotCpuUsec" - uint32 track_steps = 35;// @gotags: copier:"TrackSteps" - uint32 uid = 36;// @gotags: copier:"Uid" - string user = 37;// @gotags: copier:"User" - uint32 user_cpu_sec = 38;// @gotags: copier:"UserCpuSec" - uint32 user_cpu_usec = 39;// @gotags: copier:"UserCpuUsec" - string wckey = 40;// @gotags: copier:"Wckey" - uint32 wckeyid = 41;// @gotags: copier:"Wckeyid" -} - -message ListHistoryJobReq{ -} - -message ListHistoryJobResp{ - - uint32 code = 1; // @gotags: copier:"Code" - string msg = 2; // @gotags: copier:"Msg" - uint32 record_count = 3; // @gotags: copier:"RecordCount" - repeated historyJob history_jobs = 4; // @gotags: copier:"HistoryJobs" -} -/******************History Job End*************************/ - - -/******************Job(Submit) Start*************************/ -message SubmitJobReq{ - string account =1; // @gotags: copier:"account" /* charge to specified account */ - string acctg_freq =2; // @gotags: copier:"acctg_freq" /* accounting polling intervals (seconds) */ - string alloc_node=3; // @gotags: copier:"alloc_node" /* node making resource allocation request * NOTE: Normally set by slurm_submit* or * slurm_allocate* function */ - uint32 alloc_resp_port=4; // @gotags: copier:"alloc_resp_port" /* port to send allocation confirmation to */ - uint32 alloc_sid =5; // @gotags: copier:"alloc_sid" /* local sid making resource allocation request * NOTE: Normally set by slurm_submit* or * slurm_allocate* function * NOTE: Also used for update flags, see * ALLOC_SID_* flags */ - uint32 argc =6; // @gotags: copier:"argc" /* number of arguments to the script */ - repeated Argv argv = 7; // @gotags: copier:"Argv" /* arguments to the script */ - string array_inx =8; // @gotags: copier:"array_inx" /* job array index values */ //void *array_bitmap; /* NOTE: Set by slurmctld */ - int64 begin_time = 9; // @gotags: copier:"begin_time" /* delay initiation until this time */ - uint32 ckpt_interval=10; // @gotags: copier:"ckpt_interval" /* periodically checkpoint this job */ - string ckpt_dir =11; // @gotags: copier:"ckpt_dir" /* directory to store checkpoint images */ - string comment =12; // @gotags: copier:"comment" /* arbitrary comment (used by Moab scheduler) */ - uint32 contiguous=13; // @gotags: copier:"contiguous" /* 1 if job requires contiguous nodes,* 0 otherwise,default=0 */ - string cpu_bind=14; // @gotags: copier:"cpu_bind" /* binding map for map/mask_cpu */ - uint32 cpu_bind_type=15; // @gotags: copier:"cpu_bind_type" /* see cpu_bind_type_t */ - string dependency =16; // @gotags: copier:"dependency" /* synchronize job execution with other jobs */ - int64 end_time=17; // @gotags: copier:"end_time" /* time by which job must complete, used for * job update only now, possible deadline * scheduling in the future */ - repeated Environment environment=18; // @gotags: copier:"Environment" /* environment variables to set for job, * name=value pairs, one per line */ - uint32 env_size =19; // @gotags: copier:"env_size" /* element count in environment */ - string exc_nodes =20; // @gotags: copier:"exc_nodes" /* comma separated list of nodes excluded * from job's allocation, default NONE */ - string features =21; // @gotags: copier:"features" /* comma separated list of required features, * default NONE */ - string gres =22; // @gotags: copier:"gres" /* comma separated list of required generic * resources, default NONE */ - uint32 group_id =23; // @gotags: copier:"group_id" /* group to assume, if run as root. */ - uint32 immediate=24; // @gotags: copier:"immediate" /* 1 if allocate to run or fail immediately, * 0 if to be queued awaiting resources */ - uint32 job_id =25; // @gotags: copier:"job_id" /* job ID, default set by SLURM */ - uint32 kill_on_node_fail=26; // @gotags: copier:"kill_on_node_fail" /* 1 if node failure to kill job, * 0 otherwise,default=1 */ - string licenses=27; // @gotags: copier:"licenses" /* licenses required by the job */ - uint32 mail_type=28; // @gotags: copier:"mail_type" /* see MAIL_JOB_ definitions above */ - string mail_user =29; // @gotags: copier:"mail_user" /* user to receive notification */ - string mem_bind =30; // @gotags: copier:"mem_bind" /* binding map for map/mask_cpu */ - uint32 mem_bind_type=31; // @gotags: copier:"mem_bind_type" /* see mem_bind_type_t */ - string name =32; // @gotags: copier:"name" /* name of the job, default "" */ - string network=33; // @gotags: copier:"network" /* network use spec */ - uint32 nice =34; // @gotags: copier:"nice" /* requested priority change, * NICE_OFFSET == no change */ - uint32 num_tasks=35; // @gotags: copier:"num_tasks" /* number of tasks to be started, * for batch only */ - uint32 open_mode=36; // @gotags: copier:"open_mode" /* out/err open mode truncate or append, * see OPEN_MODE_* */ - uint32 other_port=37; // @gotags: copier:"other_port" /* port to send various notification msg to */ - uint32 overcommit =38; // @gotags: copier:"overcommit" /* over subscribe resources, for batch only */ - string partition=39; // @gotags: copier:"partition" /* name of requested partition, * default in SLURM config */ - uint32 plane_size =40; // @gotags: copier:"plane_size" /* plane size when task_dist = SLURM_DIST_PLANE */ - uint32 priority =41; // @gotags: copier:"priority" /* relative priority of the job, * explicitly set only for user root, * 0 == held (don't initiate) */ - uint32 profile =42; // @gotags: copier:"profile" /* Level of acct_gather_profile {all | none} */ - string qos =43; // @gotags: copier:"qos" /* Quality of Service */ - string resp_host=44; // @gotags: copier:"resp_host" /* NOTE: Set by slurmctld */ - string req_nodes=45; // @gotags: copier:"req_nodes" /* comma separated list of required nodes * default NONE */ - uint32 requeue=46; // @gotags: copier:"requeue" /* enable or disable job requeue option */ - string reservation=47; // @gotags: copier:"reservation" /* name of reservation to use */ - string script=48; // @gotags: copier:"script" /* the actual job script, default NONE */ - uint32 shared =49; // @gotags: copier:"shared" /* 1 if job can share nodes with other jobs, * 0 if job needs exclusive access to the node, * or NO_VAL to accept the system default. * SHARED_FORCE to eliminate user control. */ //char **spank_job_env; environment variables for job prolog/epilog // * scripts as set by SPANK plugins - uint32 spank_job_env_size=50; // @gotags: copier:"spank_job_env_size" /* element count in spank_env */ - uint32 task_dist =51; // @gotags: copier:"task_dist" /* see enum task_dist_state */ - uint32 time_limit =52; // @gotags: copier:"time_limit" /* maximum run time in minutes, default is * partition limit */ - uint32 time_min =53; // @gotags: copier:"time_min" /* minimum run time in minutes, default is * time_limit */ - uint32 user_id=54; // @gotags: copier:"user_id" /* set only if different from current UID, * can only be explicitly set by user root */ - uint32 wait_all_nodes=55; // @gotags: copier:"wait_all_nodes" /* 0 to start job immediately after allocation * 1 to start job after all nodes booted * or NO_VAL to use system default */ - uint32 warn_signal=56; // @gotags: copier:"warn_signal" /* signal to send when approaching end time */ - uint32 warn_time=57; // @gotags: copier:"warn_time" /* time before end to send signal (seconds) */ - string work_dir =58; // @gotags: copier:"work_dir" /* pathname of working directory */ /* job constraints: */ - uint32 cpus_per_task=59; // @gotags: copier:"cpus_per_task" /* number of processors required for * each task */ - uint32 min_cpus =60; // @gotags: copier:"min_cpus" /* minimum number of processors required, * default=0 */ - uint32 max_cpus=61; // @gotags: copier:"max_cpus" /* maximum number of processors required, * default=0 */ - uint32 min_nodes=62; // @gotags: copier:"min_nodes" /* minimum number of nodes required by job, * default=0 */ - uint32 max_nodes=63; // @gotags: copier:"max_nodes" /* maximum number of nodes usable by job, * default=0 */ - uint32 boards_per_node =64; // @gotags: copier:"boards_per_node" /* boards per node required by job */ - uint32 sockets_per_board=65; // @gotags: copier:"sockets_per_board" /* sockets per board required by job */ - uint32 sockets_per_node =66; // @gotags: copier:"sockets_per_node" /* sockets per node required by job */ - uint32 cores_per_socket=67; // @gotags: copier:"cores_per_socket" /* cores per socket required by job */ - uint32 threads_per_core=68; // @gotags: copier:"threads_per_core" /* threads per core required by job */ - uint32 ntasks_per_node =69; // @gotags: copier:"ntasks_per_node" /* number of tasks to invoke on each node */ - uint32 ntasks_per_socket=70; // @gotags: copier:"ntasks_per_socket" /* number of tasks to invoke on * each socket */ - uint32 ntasks_per_core =71; // @gotags: copier:"ntasks_per_core" /* number of tasks to invoke on each core */ - uint32 ntasks_per_board=72; // @gotags: copier:"ntasks_per_board" /* number of tasks to invoke on each board */ - uint32 pn_min_cpus =73; // @gotags: copier:"pn_min_cpus" /* minimum # CPUs per node, default=0 */ - uint32 pn_min_memory=74; // @gotags: copier:"pn_min_memory" /* minimum real memory per node OR * real memory per CPU | MEM_PER_CPU, * default=0 (no limit) */ - uint32 pn_min_tmp_disk =75; // @gotags: copier:"pn_min_tmp_disk" /* minimum tmp disk per node, * default=0 */ - /* - * The following parameters are only meaningful on a Blue Gene - * system at present. Some will be of value on other system. Don't remove these - * they are needed for LCRM and others that can't talk to the opaque data type - * select_jobinfo. - */ - //uint16_t geometry[HIGHEST_DIMENSIONS]; node count in various // * dimensions, e.g. X, Y, and Z - //uint16_t conn_type[HIGHEST_DIMENSIONS]; see enum connection_type - uint32 reboot=76; // @gotags: copier:"reboot" /* force node reboot before startup */ - uint32 rotate=77; // @gotags: copier:"rotate" /* permit geometry rotation if set */ - //char *blrtsimage; /* BlrtsImage for block */ - //char *linuximage; /* LinuxImage for block */ - //char *mloaderimage; /* MloaderImage for block */ - //char *ramdiskimage; /* RamDiskImage for block */ - /* End of Blue Gene specific values */ - - uint32 req_switch =78; // @gotags: copier:"req_switch" /* Minimum number of switches */ //dynamic_plugin_data_t *select_jobinfo; /* opaque data type, // * SLURM internal use only */ - string std_err=79; // @gotags: copier:"std_err" /* pathname of stderr */ - string std_in =80; // @gotags: copier:"std_in" /* pathname of stdin */ - string std_out=81; // @gotags: copier:"std_out" /* pathname of stdout */ - uint32 wait4switch=82; // @gotags: copier:"wait4switch" /* Maximum time to wait for minimum switches */ - string wckey =83; // @gotags: copier:"wckey" /* wckey for job */ -} - -message SubmitJobResp{ - repeated SubmitResponseMsg submit_response_msg = 1; -} - -message SubmitResponseMsg{ - uint32 job_id = 1; - uint32 step_id =2; - uint32 error_code=3; -} - -message Argv{ - string argv =1; // @gotags: copier:"argv" -} - -message Environment{ - string environment =1; // @gotags: copier:"environment" -} -/******************Job(Submit) End*************************/ - - -// hpc Services for Tianhe -service hpcTH { - - //ListJob list all jobs - rpc ListJob(ListJobReq) returns (ListJobResp); - - //ListHistoryJob list all history jobs - rpc ListHistoryJob(ListHistoryJobReq) returns (ListHistoryJobResp); - - //Submit job - rpc SubmitJob(SubmitJobReq) returns (SubmitJobResp); - - -} \ No newline at end of file diff --git a/pb/slurm.proto b/pb/slurm.proto new file mode 100644 index 0000000..c11414f --- /dev/null +++ b/pb/slurm.proto @@ -0,0 +1,451 @@ +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 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; +} + + + +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; +} + +service slurm { + rpc submitJob(submitJobReq) returns (submitJobResp) {}; + rpc listJob(listJobReq) returns (listJobResp) {}; + rpc getJob(listJobReq) returns (listJobResp) {}; +} diff --git a/slurm.go b/slurm.go new file mode 100644 index 0000000..5e1578b --- /dev/null +++ b/slurm.go @@ -0,0 +1,43 @@ +package main + +import ( + "flag" + "fmt" + "github.com/zeromicro/go-zero/core/conf" + "github.com/zeromicro/go-zero/core/service" + "github.com/zeromicro/go-zero/zrpc" + "gitlink.org.cn/jcce-pcm/pcm-participant-slurm/internal/config" + "gitlink.org.cn/jcce-pcm/pcm-participant-slurm/internal/server" + "gitlink.org.cn/jcce-pcm/pcm-participant-slurm/internal/svc" + "gitlink.org.cn/jcce-pcm/pcm-participant-slurm/slurm" + "google.golang.org/grpc" + "google.golang.org/grpc/reflection" +) + +var configFile = flag.String("f", "etc/slurm.yaml", "the config file") + +func main() { + + flag.Parse() + + //解析业务配置 + var c config.Config + conf.MustLoad(*configFile, &c) + ctx := svc.NewServiceContext(c) + + s := zrpc.MustNewServer(c.RpcServerConf, func(grpcServer *grpc.Server) { + slurm.RegisterSlurmServer(grpcServer, server.NewSlurmServer(ctx)) + + if c.Mode == service.DevMode || c.Mode == service.TestMode { + reflection.Register(grpcServer) + } + }) + defer s.Stop() + // 启动并添加定时任务 + //ctx.Cron.Start() + //cron.AddCronGroup(ctx) + // 推送p端静态信息 + //PushParticipantInfo(ctx.Config, ctx.ParticipantRpc, ctx.ClientSet) + fmt.Printf("Starting rpc server at %s...\n", c.ListenOn) + s.Start() +} diff --git a/slurm/slurm.pb.go b/slurm/slurm.pb.go new file mode 100644 index 0000000..e4af7c2 --- /dev/null +++ b/slurm/slurm.pb.go @@ -0,0 +1,4973 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc v3.19.4 +// source: slurm.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_slurm_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_slurm_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_slurm_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_slurm_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_slurm_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_slurm_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_slurm_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_slurm_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_slurm_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_slurm_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_slurm_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_slurm_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_slurm_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_slurm_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_slurm_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_slurm_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_slurm_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_slurm_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 JobResources struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Nodes string `protobuf:"bytes,1,opt,name=nodes,proto3" json:"nodes,omitempty"` + AllocatedCpus uint32 `protobuf:"varint,2,opt,name=allocated_cpus,json=allocatedCpus,proto3" json:"allocated_cpus,omitempty"` + AllocatedHosts uint32 `protobuf:"varint,3,opt,name=allocated_hosts,json=allocatedHosts,proto3" json:"allocated_hosts,omitempty"` + AllocatedNodes []*AllocatedNodes `protobuf:"bytes,4,rep,name=allocated_nodes,json=allocatedNodes,proto3" json:"allocated_nodes,omitempty"` +} + +func (x *JobResources) Reset() { + *x = JobResources{} + if protoimpl.UnsafeEnabled { + mi := &file_slurm_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *JobResources) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*JobResources) ProtoMessage() {} + +func (x *JobResources) ProtoReflect() protoreflect.Message { + mi := &file_slurm_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 JobResources.ProtoReflect.Descriptor instead. +func (*JobResources) Descriptor() ([]byte, []int) { + return file_slurm_proto_rawDescGZIP(), []int{6} +} + +func (x *JobResources) GetNodes() string { + if x != nil { + return x.Nodes + } + return "" +} + +func (x *JobResources) GetAllocatedCpus() uint32 { + if x != nil { + return x.AllocatedCpus + } + return 0 +} + +func (x *JobResources) GetAllocatedHosts() uint32 { + if x != nil { + return x.AllocatedHosts + } + return 0 +} + +func (x *JobResources) GetAllocatedNodes() []*AllocatedNodes { + if x != nil { + return x.AllocatedNodes + } + return nil +} + +// submit job request +type JobProperties struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Account string `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"` + AccountGatherFrequency string `protobuf:"bytes,2,opt,name=account_gather_frequency,json=accountGatherFrequency,proto3" json:"account_gather_frequency,omitempty"` + Argv []string `protobuf:"bytes,3,rep,name=argv,proto3" json:"argv,omitempty"` + Array string `protobuf:"bytes,4,opt,name=array,proto3" json:"array,omitempty"` + BatchFeatures string `protobuf:"bytes,5,opt,name=batch_features,json=batchFeatures,proto3" json:"batch_features,omitempty"` + BeginTime uint32 `protobuf:"varint,6,opt,name=begin_time,json=beginTime,proto3" json:"begin_time,omitempty"` + BurstBuffer string `protobuf:"bytes,7,opt,name=burst_buffer,json=burstBuffer,proto3" json:"burst_buffer,omitempty"` + ClusterConstraint string `protobuf:"bytes,8,opt,name=cluster_constraint,json=clusterConstraint,proto3" json:"cluster_constraint,omitempty"` + Comment string `protobuf:"bytes,9,opt,name=comment,proto3" json:"comment,omitempty"` + Constraints string `protobuf:"bytes,10,opt,name=constraints,proto3" json:"constraints,omitempty"` + CoreSpecification uint32 `protobuf:"varint,11,opt,name=core_specification,json=coreSpecification,proto3" json:"core_specification,omitempty"` + CoresPerSocket uint32 `protobuf:"varint,12,opt,name=cores_per_socket,json=coresPerSocket,proto3" json:"cores_per_socket,omitempty"` + CpuBinding string `protobuf:"bytes,13,opt,name=cpu_binding,json=cpuBinding,proto3" json:"cpu_binding,omitempty"` + CpuBindingHint string `protobuf:"bytes,14,opt,name=cpu_binding_hint,json=cpuBindingHint,proto3" json:"cpu_binding_hint,omitempty"` + CpuFrequency string `protobuf:"bytes,15,opt,name=cpu_frequency,json=cpuFrequency,proto3" json:"cpu_frequency,omitempty"` + CpusPerGpu string `protobuf:"bytes,16,opt,name=cpus_per_gpu,json=cpusPerGpu,proto3" json:"cpus_per_gpu,omitempty"` + CpusPerTask uint32 `protobuf:"varint,17,opt,name=cpus_per_task,json=cpusPerTask,proto3" json:"cpus_per_task,omitempty"` + CurrentWorkingDirectory string `protobuf:"bytes,18,opt,name=current_working_directory,json=currentWorkingDirectory,proto3" json:"current_working_directory,omitempty"` + Deadline string `protobuf:"bytes,19,opt,name=deadline,proto3" json:"deadline,omitempty"` + DelayBoot uint32 `protobuf:"varint,20,opt,name=delay_boot,json=delayBoot,proto3" json:"delay_boot,omitempty"` + Dependency string `protobuf:"bytes,21,opt,name=dependency,proto3" json:"dependency,omitempty"` + Distribution string `protobuf:"bytes,22,opt,name=distribution,proto3" json:"distribution,omitempty"` + Environment *Environment `protobuf:"bytes,23,opt,name=environment,proto3" json:"environment,omitempty"` + Exclusive string `protobuf:"bytes,24,opt,name=exclusive,proto3" json:"exclusive,omitempty"` + GetUserEnvironment bool `protobuf:"varint,25,opt,name=get_user_environment,json=getUserEnvironment,proto3" json:"get_user_environment,omitempty"` + Gres string `protobuf:"bytes,26,opt,name=gres,proto3" json:"gres,omitempty"` + GresFlags string `protobuf:"bytes,27,opt,name=gres_flags,json=gresFlags,proto3" json:"gres_flags,omitempty"` + GpuBinding string `protobuf:"bytes,28,opt,name=gpu_binding,json=gpuBinding,proto3" json:"gpu_binding,omitempty"` + GpuFrequency string `protobuf:"bytes,29,opt,name=gpu_frequency,json=gpuFrequency,proto3" json:"gpu_frequency,omitempty"` + Gpus string `protobuf:"bytes,30,opt,name=gpus,proto3" json:"gpus,omitempty"` + GpusPerNode string `protobuf:"bytes,31,opt,name=gpus_per_node,json=gpusPerNode,proto3" json:"gpus_per_node,omitempty"` + GpusPerSocket string `protobuf:"bytes,32,opt,name=gpus_per_socket,json=gpusPerSocket,proto3" json:"gpus_per_socket,omitempty"` + GpusPerTask string `protobuf:"bytes,33,opt,name=gpus_per_task,json=gpusPerTask,proto3" json:"gpus_per_task,omitempty"` + Hold bool `protobuf:"varint,34,opt,name=hold,proto3" json:"hold,omitempty"` + KillOnInvalidDependency bool `protobuf:"varint,35,opt,name=kill_on_invalid_dependency,json=killOnInvalidDependency,proto3" json:"kill_on_invalid_dependency,omitempty"` + Licenses string `protobuf:"bytes,36,opt,name=licenses,proto3" json:"licenses,omitempty"` + MailType string `protobuf:"bytes,37,opt,name=mail_type,json=mailType,proto3" json:"mail_type,omitempty"` + MailUser string `protobuf:"bytes,38,opt,name=mail_user,json=mailUser,proto3" json:"mail_user,omitempty"` + McsLabel string `protobuf:"bytes,39,opt,name=mcs_label,json=mcsLabel,proto3" json:"mcs_label,omitempty"` + MemoryBinding string `protobuf:"bytes,40,opt,name=memory_binding,json=memoryBinding,proto3" json:"memory_binding,omitempty"` + MemoryPerCpu uint32 `protobuf:"varint,41,opt,name=memory_per_cpu,json=memoryPerCpu,proto3" json:"memory_per_cpu,omitempty"` + MemoryPerGpu uint32 `protobuf:"varint,42,opt,name=memory_per_gpu,json=memoryPerGpu,proto3" json:"memory_per_gpu,omitempty"` + MemoryPerNode uint32 `protobuf:"varint,43,opt,name=memory_per_node,json=memoryPerNode,proto3" json:"memory_per_node,omitempty"` + MinimumCpusPerNode uint32 `protobuf:"varint,44,opt,name=minimum_cpus_per_node,json=minimumCpusPerNode,proto3" json:"minimum_cpus_per_node,omitempty"` + MinimumNodes bool `protobuf:"varint,45,opt,name=minimum_nodes,json=minimumNodes,proto3" json:"minimum_nodes,omitempty"` + Name string `protobuf:"bytes,46,opt,name=name,proto3" json:"name,omitempty"` + Nice string `protobuf:"bytes,47,opt,name=nice,proto3" json:"nice,omitempty"` + NoKill bool `protobuf:"varint,48,opt,name=no_kill,json=noKill,proto3" json:"no_kill,omitempty"` + Nodes []uint32 `protobuf:"varint,49,rep,packed,name=nodes,proto3" json:"nodes,omitempty"` + OpenMode string `protobuf:"bytes,50,opt,name=open_mode,json=openMode,proto3" json:"open_mode,omitempty"` + Partition string `protobuf:"bytes,51,opt,name=partition,proto3" json:"partition,omitempty"` + Priority string `protobuf:"bytes,52,opt,name=priority,proto3" json:"priority,omitempty"` + Qos string `protobuf:"bytes,53,opt,name=qos,proto3" json:"qos,omitempty"` + Requeue bool `protobuf:"varint,54,opt,name=requeue,proto3" json:"requeue,omitempty"` + Reservation string `protobuf:"bytes,55,opt,name=reservation,proto3" json:"reservation,omitempty"` + Signal string `protobuf:"bytes,56,opt,name=signal,proto3" json:"signal,omitempty"` + SocketsPerNode uint32 `protobuf:"varint,57,opt,name=sockets_per_node,json=socketsPerNode,proto3" json:"sockets_per_node,omitempty"` + SpreadJob bool `protobuf:"varint,58,opt,name=spread_job,json=spreadJob,proto3" json:"spread_job,omitempty"` + StandardError string `protobuf:"bytes,59,opt,name=standard_error,json=standardError,proto3" json:"standard_error,omitempty"` + StandardInput string `protobuf:"bytes,60,opt,name=standard_input,json=standardInput,proto3" json:"standard_input,omitempty"` + StandardOutput string `protobuf:"bytes,61,opt,name=standard_output,json=standardOutput,proto3" json:"standard_output,omitempty"` + Tasks uint32 `protobuf:"varint,62,opt,name=tasks,proto3" json:"tasks,omitempty"` + TasksPerCore uint32 `protobuf:"varint,63,opt,name=tasks_per_core,json=tasksPerCore,proto3" json:"tasks_per_core,omitempty"` + TasksPerNode uint32 `protobuf:"varint,64,opt,name=tasks_per_node,json=tasksPerNode,proto3" json:"tasks_per_node,omitempty"` + TasksPerSocket uint32 `protobuf:"varint,65,opt,name=tasks_per_socket,json=tasksPerSocket,proto3" json:"tasks_per_socket,omitempty"` + ThreadSpecification uint32 `protobuf:"varint,66,opt,name=thread_specification,json=threadSpecification,proto3" json:"thread_specification,omitempty"` + ThreadsPerCore uint32 `protobuf:"varint,67,opt,name=threads_per_core,json=threadsPerCore,proto3" json:"threads_per_core,omitempty"` + TimeLimit uint32 `protobuf:"varint,68,opt,name=time_limit,json=timeLimit,proto3" json:"time_limit,omitempty"` + TimeMinimum uint32 `protobuf:"varint,69,opt,name=time_minimum,json=timeMinimum,proto3" json:"time_minimum,omitempty"` + WaitAllNodes bool `protobuf:"varint,70,opt,name=wait_all_nodes,json=waitAllNodes,proto3" json:"wait_all_nodes,omitempty"` + Wckey string `protobuf:"bytes,71,opt,name=wckey,proto3" json:"wckey,omitempty"` +} + +func (x *JobProperties) Reset() { + *x = JobProperties{} + if protoimpl.UnsafeEnabled { + mi := &file_slurm_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *JobProperties) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*JobProperties) ProtoMessage() {} + +func (x *JobProperties) ProtoReflect() protoreflect.Message { + mi := &file_slurm_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 JobProperties.ProtoReflect.Descriptor instead. +func (*JobProperties) Descriptor() ([]byte, []int) { + return file_slurm_proto_rawDescGZIP(), []int{7} +} + +func (x *JobProperties) GetAccount() string { + if x != nil { + return x.Account + } + return "" +} + +func (x *JobProperties) GetAccountGatherFrequency() string { + if x != nil { + return x.AccountGatherFrequency + } + return "" +} + +func (x *JobProperties) GetArgv() []string { + if x != nil { + return x.Argv + } + return nil +} + +func (x *JobProperties) GetArray() string { + if x != nil { + return x.Array + } + return "" +} + +func (x *JobProperties) GetBatchFeatures() string { + if x != nil { + return x.BatchFeatures + } + return "" +} + +func (x *JobProperties) GetBeginTime() uint32 { + if x != nil { + return x.BeginTime + } + return 0 +} + +func (x *JobProperties) GetBurstBuffer() string { + if x != nil { + return x.BurstBuffer + } + return "" +} + +func (x *JobProperties) GetClusterConstraint() string { + if x != nil { + return x.ClusterConstraint + } + return "" +} + +func (x *JobProperties) GetComment() string { + if x != nil { + return x.Comment + } + return "" +} + +func (x *JobProperties) GetConstraints() string { + if x != nil { + return x.Constraints + } + return "" +} + +func (x *JobProperties) GetCoreSpecification() uint32 { + if x != nil { + return x.CoreSpecification + } + return 0 +} + +func (x *JobProperties) GetCoresPerSocket() uint32 { + if x != nil { + return x.CoresPerSocket + } + return 0 +} + +func (x *JobProperties) GetCpuBinding() string { + if x != nil { + return x.CpuBinding + } + return "" +} + +func (x *JobProperties) GetCpuBindingHint() string { + if x != nil { + return x.CpuBindingHint + } + return "" +} + +func (x *JobProperties) GetCpuFrequency() string { + if x != nil { + return x.CpuFrequency + } + return "" +} + +func (x *JobProperties) GetCpusPerGpu() string { + if x != nil { + return x.CpusPerGpu + } + return "" +} + +func (x *JobProperties) GetCpusPerTask() uint32 { + if x != nil { + return x.CpusPerTask + } + return 0 +} + +func (x *JobProperties) GetCurrentWorkingDirectory() string { + if x != nil { + return x.CurrentWorkingDirectory + } + return "" +} + +func (x *JobProperties) GetDeadline() string { + if x != nil { + return x.Deadline + } + return "" +} + +func (x *JobProperties) GetDelayBoot() uint32 { + if x != nil { + return x.DelayBoot + } + return 0 +} + +func (x *JobProperties) GetDependency() string { + if x != nil { + return x.Dependency + } + return "" +} + +func (x *JobProperties) GetDistribution() string { + if x != nil { + return x.Distribution + } + return "" +} + +func (x *JobProperties) GetEnvironment() *Environment { + if x != nil { + return x.Environment + } + return nil +} + +func (x *JobProperties) GetExclusive() string { + if x != nil { + return x.Exclusive + } + return "" +} + +func (x *JobProperties) GetGetUserEnvironment() bool { + if x != nil { + return x.GetUserEnvironment + } + return false +} + +func (x *JobProperties) GetGres() string { + if x != nil { + return x.Gres + } + return "" +} + +func (x *JobProperties) GetGresFlags() string { + if x != nil { + return x.GresFlags + } + return "" +} + +func (x *JobProperties) GetGpuBinding() string { + if x != nil { + return x.GpuBinding + } + return "" +} + +func (x *JobProperties) GetGpuFrequency() string { + if x != nil { + return x.GpuFrequency + } + return "" +} + +func (x *JobProperties) GetGpus() string { + if x != nil { + return x.Gpus + } + return "" +} + +func (x *JobProperties) GetGpusPerNode() string { + if x != nil { + return x.GpusPerNode + } + return "" +} + +func (x *JobProperties) GetGpusPerSocket() string { + if x != nil { + return x.GpusPerSocket + } + return "" +} + +func (x *JobProperties) GetGpusPerTask() string { + if x != nil { + return x.GpusPerTask + } + return "" +} + +func (x *JobProperties) GetHold() bool { + if x != nil { + return x.Hold + } + return false +} + +func (x *JobProperties) GetKillOnInvalidDependency() bool { + if x != nil { + return x.KillOnInvalidDependency + } + return false +} + +func (x *JobProperties) GetLicenses() string { + if x != nil { + return x.Licenses + } + return "" +} + +func (x *JobProperties) GetMailType() string { + if x != nil { + return x.MailType + } + return "" +} + +func (x *JobProperties) GetMailUser() string { + if x != nil { + return x.MailUser + } + return "" +} + +func (x *JobProperties) GetMcsLabel() string { + if x != nil { + return x.McsLabel + } + return "" +} + +func (x *JobProperties) GetMemoryBinding() string { + if x != nil { + return x.MemoryBinding + } + return "" +} + +func (x *JobProperties) GetMemoryPerCpu() uint32 { + if x != nil { + return x.MemoryPerCpu + } + return 0 +} + +func (x *JobProperties) GetMemoryPerGpu() uint32 { + if x != nil { + return x.MemoryPerGpu + } + return 0 +} + +func (x *JobProperties) GetMemoryPerNode() uint32 { + if x != nil { + return x.MemoryPerNode + } + return 0 +} + +func (x *JobProperties) GetMinimumCpusPerNode() uint32 { + if x != nil { + return x.MinimumCpusPerNode + } + return 0 +} + +func (x *JobProperties) GetMinimumNodes() bool { + if x != nil { + return x.MinimumNodes + } + return false +} + +func (x *JobProperties) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *JobProperties) GetNice() string { + if x != nil { + return x.Nice + } + return "" +} + +func (x *JobProperties) GetNoKill() bool { + if x != nil { + return x.NoKill + } + return false +} + +func (x *JobProperties) GetNodes() []uint32 { + if x != nil { + return x.Nodes + } + return nil +} + +func (x *JobProperties) GetOpenMode() string { + if x != nil { + return x.OpenMode + } + return "" +} + +func (x *JobProperties) GetPartition() string { + if x != nil { + return x.Partition + } + return "" +} + +func (x *JobProperties) GetPriority() string { + if x != nil { + return x.Priority + } + return "" +} + +func (x *JobProperties) GetQos() string { + if x != nil { + return x.Qos + } + return "" +} + +func (x *JobProperties) GetRequeue() bool { + if x != nil { + return x.Requeue + } + return false +} + +func (x *JobProperties) GetReservation() string { + if x != nil { + return x.Reservation + } + return "" +} + +func (x *JobProperties) GetSignal() string { + if x != nil { + return x.Signal + } + return "" +} + +func (x *JobProperties) GetSocketsPerNode() uint32 { + if x != nil { + return x.SocketsPerNode + } + return 0 +} + +func (x *JobProperties) GetSpreadJob() bool { + if x != nil { + return x.SpreadJob + } + return false +} + +func (x *JobProperties) GetStandardError() string { + if x != nil { + return x.StandardError + } + return "" +} + +func (x *JobProperties) GetStandardInput() string { + if x != nil { + return x.StandardInput + } + return "" +} + +func (x *JobProperties) GetStandardOutput() string { + if x != nil { + return x.StandardOutput + } + return "" +} + +func (x *JobProperties) GetTasks() uint32 { + if x != nil { + return x.Tasks + } + return 0 +} + +func (x *JobProperties) GetTasksPerCore() uint32 { + if x != nil { + return x.TasksPerCore + } + return 0 +} + +func (x *JobProperties) GetTasksPerNode() uint32 { + if x != nil { + return x.TasksPerNode + } + return 0 +} + +func (x *JobProperties) GetTasksPerSocket() uint32 { + if x != nil { + return x.TasksPerSocket + } + return 0 +} + +func (x *JobProperties) GetThreadSpecification() uint32 { + if x != nil { + return x.ThreadSpecification + } + return 0 +} + +func (x *JobProperties) GetThreadsPerCore() uint32 { + if x != nil { + return x.ThreadsPerCore + } + return 0 +} + +func (x *JobProperties) GetTimeLimit() uint32 { + if x != nil { + return x.TimeLimit + } + return 0 +} + +func (x *JobProperties) GetTimeMinimum() uint32 { + if x != nil { + return x.TimeMinimum + } + return 0 +} + +func (x *JobProperties) GetWaitAllNodes() bool { + if x != nil { + return x.WaitAllNodes + } + return false +} + +func (x *JobProperties) GetWckey() string { + if x != nil { + return x.Wckey + } + return "" +} + +// list job response +type JobResponseProperties struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Account string `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"` + AccrueTime uint32 `protobuf:"varint,2,opt,name=accrue_time,json=accrueTime,proto3" json:"accrue_time,omitempty"` + AdminComment string `protobuf:"bytes,3,opt,name=admin_comment,json=adminComment,proto3" json:"admin_comment,omitempty"` + ArrayJobId string `protobuf:"bytes,4,opt,name=array_job_id,json=arrayJobId,proto3" json:"array_job_id,omitempty"` + ArrayTaskId string `protobuf:"bytes,5,opt,name=array_task_id,json=arrayTaskId,proto3" json:"array_task_id,omitempty"` + ArrayMaxTasks string `protobuf:"bytes,6,opt,name=array_max_tasks,json=arrayMaxTasks,proto3" json:"array_max_tasks,omitempty"` + ArrayTaskString string `protobuf:"bytes,7,opt,name=array_task_string,json=arrayTaskString,proto3" json:"array_task_string,omitempty"` + AssociationId string `protobuf:"bytes,8,opt,name=association_id,json=associationId,proto3" json:"association_id,omitempty"` + BatchFeatures string `protobuf:"bytes,9,opt,name=batch_features,json=batchFeatures,proto3" json:"batch_features,omitempty"` + BatchFlag bool `protobuf:"varint,10,opt,name=batch_flag,json=batchFlag,proto3" json:"batch_flag,omitempty"` + BatchHost string `protobuf:"bytes,11,opt,name=batch_host,json=batchHost,proto3" json:"batch_host,omitempty"` + Flags []string `protobuf:"bytes,12,rep,name=flags,proto3" json:"flags,omitempty"` + BurstBuffer string `protobuf:"bytes,13,opt,name=burst_buffer,json=burstBuffer,proto3" json:"burst_buffer,omitempty"` + BurstBufferState string `protobuf:"bytes,14,opt,name=burst_buffer_state,json=burstBufferState,proto3" json:"burst_buffer_state,omitempty"` + Cluster string `protobuf:"bytes,15,opt,name=cluster,proto3" json:"cluster,omitempty"` + ClusterFeatures string `protobuf:"bytes,16,opt,name=cluster_features,json=clusterFeatures,proto3" json:"cluster_features,omitempty"` + Command string `protobuf:"bytes,17,opt,name=command,proto3" json:"command,omitempty"` + Comment string `protobuf:"bytes,18,opt,name=comment,proto3" json:"comment,omitempty"` + Contiguous bool `protobuf:"varint,19,opt,name=contiguous,proto3" json:"contiguous,omitempty"` + CoreSpec string `protobuf:"bytes,20,opt,name=core_spec,json=coreSpec,proto3" json:"core_spec,omitempty"` + ThreadSpec string `protobuf:"bytes,21,opt,name=thread_spec,json=threadSpec,proto3" json:"thread_spec,omitempty"` + CoresPerSocket string `protobuf:"bytes,22,opt,name=cores_per_socket,json=coresPerSocket,proto3" json:"cores_per_socket,omitempty"` + BillableTres string `protobuf:"bytes,23,opt,name=billable_tres,json=billableTres,proto3" json:"billable_tres,omitempty"` + CpusPerTask string `protobuf:"bytes,24,opt,name=cpus_per_task,json=cpusPerTask,proto3" json:"cpus_per_task,omitempty"` + CpuFrequencyMinimum string `protobuf:"bytes,25,opt,name=cpu_frequency_minimum,json=cpuFrequencyMinimum,proto3" json:"cpu_frequency_minimum,omitempty"` + CpuFrequencyMaximum string `protobuf:"bytes,26,opt,name=cpu_frequency_maximum,json=cpuFrequencyMaximum,proto3" json:"cpu_frequency_maximum,omitempty"` + CpuFrequencyGovernor string `protobuf:"bytes,27,opt,name=cpu_frequency_governor,json=cpuFrequencyGovernor,proto3" json:"cpu_frequency_governor,omitempty"` + CpusPerTres string `protobuf:"bytes,28,opt,name=cpus_per_tres,json=cpusPerTres,proto3" json:"cpus_per_tres,omitempty"` + Deadline string `protobuf:"bytes,29,opt,name=deadline,proto3" json:"deadline,omitempty"` + DelayBoot string `protobuf:"bytes,30,opt,name=delay_boot,json=delayBoot,proto3" json:"delay_boot,omitempty"` + Dependency string `protobuf:"bytes,31,opt,name=dependency,proto3" json:"dependency,omitempty"` + DerivedExitCode string `protobuf:"bytes,32,opt,name=derived_exit_code,json=derivedExitCode,proto3" json:"derived_exit_code,omitempty"` + EligibleTime uint32 `protobuf:"varint,33,opt,name=eligible_time,json=eligibleTime,proto3" json:"eligible_time,omitempty"` + EndTime uint32 `protobuf:"varint,34,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` + ExcludedNodes string `protobuf:"bytes,35,opt,name=excluded_nodes,json=excludedNodes,proto3" json:"excluded_nodes,omitempty"` + ExitCode uint32 `protobuf:"varint,36,opt,name=exit_code,json=exitCode,proto3" json:"exit_code,omitempty"` + Features string `protobuf:"bytes,37,opt,name=features,proto3" json:"features,omitempty"` + FederationOrigin string `protobuf:"bytes,38,opt,name=federation_origin,json=federationOrigin,proto3" json:"federation_origin,omitempty"` + FederationSiblingsActive string `protobuf:"bytes,39,opt,name=federation_siblings_active,json=federationSiblingsActive,proto3" json:"federation_siblings_active,omitempty"` + FederationSiblingsViable string `protobuf:"bytes,40,opt,name=federation_siblings_viable,json=federationSiblingsViable,proto3" json:"federation_siblings_viable,omitempty"` + GresDetail []string `protobuf:"bytes,41,rep,name=gres_detail,json=gresDetail,proto3" json:"gres_detail,omitempty"` + GroupId string `protobuf:"bytes,42,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"` + JobId string `protobuf:"bytes,43,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"` + JobResources *JobResources `protobuf:"bytes,44,opt,name=job_resources,json=jobResources,proto3" json:"job_resources,omitempty"` + JobState string `protobuf:"bytes,45,opt,name=job_state,json=jobState,proto3" json:"job_state,omitempty"` + LastSchedEvaluation string `protobuf:"bytes,46,opt,name=last_sched_evaluation,json=lastSchedEvaluation,proto3" json:"last_sched_evaluation,omitempty"` + Licenses string `protobuf:"bytes,47,opt,name=licenses,proto3" json:"licenses,omitempty"` + MaxCpus string `protobuf:"bytes,48,opt,name=max_cpus,json=maxCpus,proto3" json:"max_cpus,omitempty"` + MaxNodes string `protobuf:"bytes,49,opt,name=max_nodes,json=maxNodes,proto3" json:"max_nodes,omitempty"` + McsLabel string `protobuf:"bytes,50,opt,name=mcs_label,json=mcsLabel,proto3" json:"mcs_label,omitempty"` + MemoryPerTres string `protobuf:"bytes,51,opt,name=memory_per_tres,json=memoryPerTres,proto3" json:"memory_per_tres,omitempty"` + Name string `protobuf:"bytes,52,opt,name=name,proto3" json:"name,omitempty"` + Nodes string `protobuf:"bytes,53,opt,name=nodes,proto3" json:"nodes,omitempty"` + Nice string `protobuf:"bytes,54,opt,name=nice,proto3" json:"nice,omitempty"` + TasksPerCore string `protobuf:"bytes,55,opt,name=tasks_per_core,json=tasksPerCore,proto3" json:"tasks_per_core,omitempty"` + TasksPerSocket string `protobuf:"bytes,56,opt,name=tasks_per_socket,json=tasksPerSocket,proto3" json:"tasks_per_socket,omitempty"` + TasksPerBoard string `protobuf:"bytes,57,opt,name=tasks_per_board,json=tasksPerBoard,proto3" json:"tasks_per_board,omitempty"` + Cpus string `protobuf:"bytes,58,opt,name=cpus,proto3" json:"cpus,omitempty"` + NodeCount string `protobuf:"bytes,59,opt,name=node_count,json=nodeCount,proto3" json:"node_count,omitempty"` + Tasks string `protobuf:"bytes,60,opt,name=tasks,proto3" json:"tasks,omitempty"` + HetJobId string `protobuf:"bytes,61,opt,name=het_job_id,json=hetJobId,proto3" json:"het_job_id,omitempty"` + HetJobIdSet string `protobuf:"bytes,62,opt,name=het_job_id_set,json=hetJobIdSet,proto3" json:"het_job_id_set,omitempty"` + HetJobOffset string `protobuf:"bytes,63,opt,name=het_job_offset,json=hetJobOffset,proto3" json:"het_job_offset,omitempty"` + Partition string `protobuf:"bytes,64,opt,name=partition,proto3" json:"partition,omitempty"` + MemoryPerNode string `protobuf:"bytes,65,opt,name=memory_per_node,json=memoryPerNode,proto3" json:"memory_per_node,omitempty"` + MemoryPerCpu string `protobuf:"bytes,66,opt,name=memory_per_cpu,json=memoryPerCpu,proto3" json:"memory_per_cpu,omitempty"` + MinimumCpusPerNode string `protobuf:"bytes,67,opt,name=minimum_cpus_per_node,json=minimumCpusPerNode,proto3" json:"minimum_cpus_per_node,omitempty"` + MinimumTmpDiskPerNode string `protobuf:"bytes,68,opt,name=minimum_tmp_disk_per_node,json=minimumTmpDiskPerNode,proto3" json:"minimum_tmp_disk_per_node,omitempty"` + PreemptTime uint32 `protobuf:"varint,69,opt,name=preempt_time,json=preemptTime,proto3" json:"preempt_time,omitempty"` + PreSusTime uint32 `protobuf:"varint,70,opt,name=pre_sus_time,json=preSusTime,proto3" json:"pre_sus_time,omitempty"` + Priority string `protobuf:"bytes,71,opt,name=priority,proto3" json:"priority,omitempty"` + Profile []string `protobuf:"bytes,72,rep,name=profile,proto3" json:"profile,omitempty"` + Qos string `protobuf:"bytes,73,opt,name=qos,proto3" json:"qos,omitempty"` + Reboot bool `protobuf:"varint,74,opt,name=reboot,proto3" json:"reboot,omitempty"` + RequiredNodes string `protobuf:"bytes,75,opt,name=required_nodes,json=requiredNodes,proto3" json:"required_nodes,omitempty"` + Requeue bool `protobuf:"varint,76,opt,name=requeue,proto3" json:"requeue,omitempty"` + ResizeTime uint32 `protobuf:"varint,77,opt,name=resize_time,json=resizeTime,proto3" json:"resize_time,omitempty"` + RestartCnt string `protobuf:"bytes,78,opt,name=restart_cnt,json=restartCnt,proto3" json:"restart_cnt,omitempty"` + ResvName string `protobuf:"bytes,79,opt,name=resv_name,json=resvName,proto3" json:"resv_name,omitempty"` + Shared string `protobuf:"bytes,80,opt,name=shared,proto3" json:"shared,omitempty"` + ShowFlags []string `protobuf:"bytes,81,rep,name=show_flags,json=showFlags,proto3" json:"show_flags,omitempty"` + SocketsPerBoard string `protobuf:"bytes,82,opt,name=sockets_per_board,json=socketsPerBoard,proto3" json:"sockets_per_board,omitempty"` + SocketsPerNode string `protobuf:"bytes,83,opt,name=sockets_per_node,json=socketsPerNode,proto3" json:"sockets_per_node,omitempty"` + StartTime uint32 `protobuf:"varint,84,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` + StateDescription string `protobuf:"bytes,85,opt,name=state_description,json=stateDescription,proto3" json:"state_description,omitempty"` + StateReason string `protobuf:"bytes,86,opt,name=state_reason,json=stateReason,proto3" json:"state_reason,omitempty"` + StandardError string `protobuf:"bytes,87,opt,name=standard_error,json=standardError,proto3" json:"standard_error,omitempty"` + StandardInput string `protobuf:"bytes,88,opt,name=standard_input,json=standardInput,proto3" json:"standard_input,omitempty"` + StandardOutput string `protobuf:"bytes,89,opt,name=standard_output,json=standardOutput,proto3" json:"standard_output,omitempty"` + SubmitTime uint32 `protobuf:"varint,90,opt,name=submit_time,json=submitTime,proto3" json:"submit_time,omitempty"` + SuspendTime uint32 `protobuf:"varint,91,opt,name=suspend_time,json=suspendTime,proto3" json:"suspend_time,omitempty"` + SystemComment string `protobuf:"bytes,92,opt,name=system_comment,json=systemComment,proto3" json:"system_comment,omitempty"` + TimeLimit string `protobuf:"bytes,93,opt,name=time_limit,json=timeLimit,proto3" json:"time_limit,omitempty"` + TimeMinimum string `protobuf:"bytes,94,opt,name=time_minimum,json=timeMinimum,proto3" json:"time_minimum,omitempty"` + ThreadsPerCore string `protobuf:"bytes,95,opt,name=threads_per_core,json=threadsPerCore,proto3" json:"threads_per_core,omitempty"` + TresBind string `protobuf:"bytes,96,opt,name=tres_bind,json=tresBind,proto3" json:"tres_bind,omitempty"` + TresFreq string `protobuf:"bytes,97,opt,name=tres_freq,json=tresFreq,proto3" json:"tres_freq,omitempty"` + TresPerJob string `protobuf:"bytes,98,opt,name=tres_per_job,json=tresPerJob,proto3" json:"tres_per_job,omitempty"` + TresPerNode string `protobuf:"bytes,99,opt,name=tres_per_node,json=tresPerNode,proto3" json:"tres_per_node,omitempty"` + TresPerSocket string `protobuf:"bytes,100,opt,name=tres_per_socket,json=tresPerSocket,proto3" json:"tres_per_socket,omitempty"` + TresPerTask string `protobuf:"bytes,101,opt,name=tres_per_task,json=tresPerTask,proto3" json:"tres_per_task,omitempty"` + TresReqStr string `protobuf:"bytes,102,opt,name=tres_req_str,json=tresReqStr,proto3" json:"tres_req_str,omitempty"` + TresAllocStr string `protobuf:"bytes,103,opt,name=tres_alloc_str,json=tresAllocStr,proto3" json:"tres_alloc_str,omitempty"` + UserId string `protobuf:"bytes,104,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + UserName string `protobuf:"bytes,105,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` + Wckey string `protobuf:"bytes,106,opt,name=wckey,proto3" json:"wckey,omitempty"` + CurrentWorkingDirectory string `protobuf:"bytes,107,opt,name=current_working_directory,json=currentWorkingDirectory,proto3" json:"current_working_directory,omitempty"` +} + +func (x *JobResponseProperties) Reset() { + *x = JobResponseProperties{} + if protoimpl.UnsafeEnabled { + mi := &file_slurm_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *JobResponseProperties) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*JobResponseProperties) ProtoMessage() {} + +func (x *JobResponseProperties) ProtoReflect() protoreflect.Message { + mi := &file_slurm_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 JobResponseProperties.ProtoReflect.Descriptor instead. +func (*JobResponseProperties) Descriptor() ([]byte, []int) { + return file_slurm_proto_rawDescGZIP(), []int{8} +} + +func (x *JobResponseProperties) GetAccount() string { + if x != nil { + return x.Account + } + return "" +} + +func (x *JobResponseProperties) GetAccrueTime() uint32 { + if x != nil { + return x.AccrueTime + } + return 0 +} + +func (x *JobResponseProperties) GetAdminComment() string { + if x != nil { + return x.AdminComment + } + return "" +} + +func (x *JobResponseProperties) GetArrayJobId() string { + if x != nil { + return x.ArrayJobId + } + return "" +} + +func (x *JobResponseProperties) GetArrayTaskId() string { + if x != nil { + return x.ArrayTaskId + } + return "" +} + +func (x *JobResponseProperties) GetArrayMaxTasks() string { + if x != nil { + return x.ArrayMaxTasks + } + return "" +} + +func (x *JobResponseProperties) GetArrayTaskString() string { + if x != nil { + return x.ArrayTaskString + } + return "" +} + +func (x *JobResponseProperties) GetAssociationId() string { + if x != nil { + return x.AssociationId + } + return "" +} + +func (x *JobResponseProperties) GetBatchFeatures() string { + if x != nil { + return x.BatchFeatures + } + return "" +} + +func (x *JobResponseProperties) GetBatchFlag() bool { + if x != nil { + return x.BatchFlag + } + return false +} + +func (x *JobResponseProperties) GetBatchHost() string { + if x != nil { + return x.BatchHost + } + return "" +} + +func (x *JobResponseProperties) GetFlags() []string { + if x != nil { + return x.Flags + } + return nil +} + +func (x *JobResponseProperties) GetBurstBuffer() string { + if x != nil { + return x.BurstBuffer + } + return "" +} + +func (x *JobResponseProperties) GetBurstBufferState() string { + if x != nil { + return x.BurstBufferState + } + return "" +} + +func (x *JobResponseProperties) GetCluster() string { + if x != nil { + return x.Cluster + } + return "" +} + +func (x *JobResponseProperties) GetClusterFeatures() string { + if x != nil { + return x.ClusterFeatures + } + return "" +} + +func (x *JobResponseProperties) GetCommand() string { + if x != nil { + return x.Command + } + return "" +} + +func (x *JobResponseProperties) GetComment() string { + if x != nil { + return x.Comment + } + return "" +} + +func (x *JobResponseProperties) GetContiguous() bool { + if x != nil { + return x.Contiguous + } + return false +} + +func (x *JobResponseProperties) GetCoreSpec() string { + if x != nil { + return x.CoreSpec + } + return "" +} + +func (x *JobResponseProperties) GetThreadSpec() string { + if x != nil { + return x.ThreadSpec + } + return "" +} + +func (x *JobResponseProperties) GetCoresPerSocket() string { + if x != nil { + return x.CoresPerSocket + } + return "" +} + +func (x *JobResponseProperties) GetBillableTres() string { + if x != nil { + return x.BillableTres + } + return "" +} + +func (x *JobResponseProperties) GetCpusPerTask() string { + if x != nil { + return x.CpusPerTask + } + return "" +} + +func (x *JobResponseProperties) GetCpuFrequencyMinimum() string { + if x != nil { + return x.CpuFrequencyMinimum + } + return "" +} + +func (x *JobResponseProperties) GetCpuFrequencyMaximum() string { + if x != nil { + return x.CpuFrequencyMaximum + } + return "" +} + +func (x *JobResponseProperties) GetCpuFrequencyGovernor() string { + if x != nil { + return x.CpuFrequencyGovernor + } + return "" +} + +func (x *JobResponseProperties) GetCpusPerTres() string { + if x != nil { + return x.CpusPerTres + } + return "" +} + +func (x *JobResponseProperties) GetDeadline() string { + if x != nil { + return x.Deadline + } + return "" +} + +func (x *JobResponseProperties) GetDelayBoot() string { + if x != nil { + return x.DelayBoot + } + return "" +} + +func (x *JobResponseProperties) GetDependency() string { + if x != nil { + return x.Dependency + } + return "" +} + +func (x *JobResponseProperties) GetDerivedExitCode() string { + if x != nil { + return x.DerivedExitCode + } + return "" +} + +func (x *JobResponseProperties) GetEligibleTime() uint32 { + if x != nil { + return x.EligibleTime + } + return 0 +} + +func (x *JobResponseProperties) GetEndTime() uint32 { + if x != nil { + return x.EndTime + } + return 0 +} + +func (x *JobResponseProperties) GetExcludedNodes() string { + if x != nil { + return x.ExcludedNodes + } + return "" +} + +func (x *JobResponseProperties) GetExitCode() uint32 { + if x != nil { + return x.ExitCode + } + return 0 +} + +func (x *JobResponseProperties) GetFeatures() string { + if x != nil { + return x.Features + } + return "" +} + +func (x *JobResponseProperties) GetFederationOrigin() string { + if x != nil { + return x.FederationOrigin + } + return "" +} + +func (x *JobResponseProperties) GetFederationSiblingsActive() string { + if x != nil { + return x.FederationSiblingsActive + } + return "" +} + +func (x *JobResponseProperties) GetFederationSiblingsViable() string { + if x != nil { + return x.FederationSiblingsViable + } + return "" +} + +func (x *JobResponseProperties) GetGresDetail() []string { + if x != nil { + return x.GresDetail + } + return nil +} + +func (x *JobResponseProperties) GetGroupId() string { + if x != nil { + return x.GroupId + } + return "" +} + +func (x *JobResponseProperties) GetJobId() string { + if x != nil { + return x.JobId + } + return "" +} + +func (x *JobResponseProperties) GetJobResources() *JobResources { + if x != nil { + return x.JobResources + } + return nil +} + +func (x *JobResponseProperties) GetJobState() string { + if x != nil { + return x.JobState + } + return "" +} + +func (x *JobResponseProperties) GetLastSchedEvaluation() string { + if x != nil { + return x.LastSchedEvaluation + } + return "" +} + +func (x *JobResponseProperties) GetLicenses() string { + if x != nil { + return x.Licenses + } + return "" +} + +func (x *JobResponseProperties) GetMaxCpus() string { + if x != nil { + return x.MaxCpus + } + return "" +} + +func (x *JobResponseProperties) GetMaxNodes() string { + if x != nil { + return x.MaxNodes + } + return "" +} + +func (x *JobResponseProperties) GetMcsLabel() string { + if x != nil { + return x.McsLabel + } + return "" +} + +func (x *JobResponseProperties) GetMemoryPerTres() string { + if x != nil { + return x.MemoryPerTres + } + return "" +} + +func (x *JobResponseProperties) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *JobResponseProperties) GetNodes() string { + if x != nil { + return x.Nodes + } + return "" +} + +func (x *JobResponseProperties) GetNice() string { + if x != nil { + return x.Nice + } + return "" +} + +func (x *JobResponseProperties) GetTasksPerCore() string { + if x != nil { + return x.TasksPerCore + } + return "" +} + +func (x *JobResponseProperties) GetTasksPerSocket() string { + if x != nil { + return x.TasksPerSocket + } + return "" +} + +func (x *JobResponseProperties) GetTasksPerBoard() string { + if x != nil { + return x.TasksPerBoard + } + return "" +} + +func (x *JobResponseProperties) GetCpus() string { + if x != nil { + return x.Cpus + } + return "" +} + +func (x *JobResponseProperties) GetNodeCount() string { + if x != nil { + return x.NodeCount + } + return "" +} + +func (x *JobResponseProperties) GetTasks() string { + if x != nil { + return x.Tasks + } + return "" +} + +func (x *JobResponseProperties) GetHetJobId() string { + if x != nil { + return x.HetJobId + } + return "" +} + +func (x *JobResponseProperties) GetHetJobIdSet() string { + if x != nil { + return x.HetJobIdSet + } + return "" +} + +func (x *JobResponseProperties) GetHetJobOffset() string { + if x != nil { + return x.HetJobOffset + } + return "" +} + +func (x *JobResponseProperties) GetPartition() string { + if x != nil { + return x.Partition + } + return "" +} + +func (x *JobResponseProperties) GetMemoryPerNode() string { + if x != nil { + return x.MemoryPerNode + } + return "" +} + +func (x *JobResponseProperties) GetMemoryPerCpu() string { + if x != nil { + return x.MemoryPerCpu + } + return "" +} + +func (x *JobResponseProperties) GetMinimumCpusPerNode() string { + if x != nil { + return x.MinimumCpusPerNode + } + return "" +} + +func (x *JobResponseProperties) GetMinimumTmpDiskPerNode() string { + if x != nil { + return x.MinimumTmpDiskPerNode + } + return "" +} + +func (x *JobResponseProperties) GetPreemptTime() uint32 { + if x != nil { + return x.PreemptTime + } + return 0 +} + +func (x *JobResponseProperties) GetPreSusTime() uint32 { + if x != nil { + return x.PreSusTime + } + return 0 +} + +func (x *JobResponseProperties) GetPriority() string { + if x != nil { + return x.Priority + } + return "" +} + +func (x *JobResponseProperties) GetProfile() []string { + if x != nil { + return x.Profile + } + return nil +} + +func (x *JobResponseProperties) GetQos() string { + if x != nil { + return x.Qos + } + return "" +} + +func (x *JobResponseProperties) GetReboot() bool { + if x != nil { + return x.Reboot + } + return false +} + +func (x *JobResponseProperties) GetRequiredNodes() string { + if x != nil { + return x.RequiredNodes + } + return "" +} + +func (x *JobResponseProperties) GetRequeue() bool { + if x != nil { + return x.Requeue + } + return false +} + +func (x *JobResponseProperties) GetResizeTime() uint32 { + if x != nil { + return x.ResizeTime + } + return 0 +} + +func (x *JobResponseProperties) GetRestartCnt() string { + if x != nil { + return x.RestartCnt + } + return "" +} + +func (x *JobResponseProperties) GetResvName() string { + if x != nil { + return x.ResvName + } + return "" +} + +func (x *JobResponseProperties) GetShared() string { + if x != nil { + return x.Shared + } + return "" +} + +func (x *JobResponseProperties) GetShowFlags() []string { + if x != nil { + return x.ShowFlags + } + return nil +} + +func (x *JobResponseProperties) GetSocketsPerBoard() string { + if x != nil { + return x.SocketsPerBoard + } + return "" +} + +func (x *JobResponseProperties) GetSocketsPerNode() string { + if x != nil { + return x.SocketsPerNode + } + return "" +} + +func (x *JobResponseProperties) GetStartTime() uint32 { + if x != nil { + return x.StartTime + } + return 0 +} + +func (x *JobResponseProperties) GetStateDescription() string { + if x != nil { + return x.StateDescription + } + return "" +} + +func (x *JobResponseProperties) GetStateReason() string { + if x != nil { + return x.StateReason + } + return "" +} + +func (x *JobResponseProperties) GetStandardError() string { + if x != nil { + return x.StandardError + } + return "" +} + +func (x *JobResponseProperties) GetStandardInput() string { + if x != nil { + return x.StandardInput + } + return "" +} + +func (x *JobResponseProperties) GetStandardOutput() string { + if x != nil { + return x.StandardOutput + } + return "" +} + +func (x *JobResponseProperties) GetSubmitTime() uint32 { + if x != nil { + return x.SubmitTime + } + return 0 +} + +func (x *JobResponseProperties) GetSuspendTime() uint32 { + if x != nil { + return x.SuspendTime + } + return 0 +} + +func (x *JobResponseProperties) GetSystemComment() string { + if x != nil { + return x.SystemComment + } + return "" +} + +func (x *JobResponseProperties) GetTimeLimit() string { + if x != nil { + return x.TimeLimit + } + return "" +} + +func (x *JobResponseProperties) GetTimeMinimum() string { + if x != nil { + return x.TimeMinimum + } + return "" +} + +func (x *JobResponseProperties) GetThreadsPerCore() string { + if x != nil { + return x.ThreadsPerCore + } + return "" +} + +func (x *JobResponseProperties) GetTresBind() string { + if x != nil { + return x.TresBind + } + return "" +} + +func (x *JobResponseProperties) GetTresFreq() string { + if x != nil { + return x.TresFreq + } + return "" +} + +func (x *JobResponseProperties) GetTresPerJob() string { + if x != nil { + return x.TresPerJob + } + return "" +} + +func (x *JobResponseProperties) GetTresPerNode() string { + if x != nil { + return x.TresPerNode + } + return "" +} + +func (x *JobResponseProperties) GetTresPerSocket() string { + if x != nil { + return x.TresPerSocket + } + return "" +} + +func (x *JobResponseProperties) GetTresPerTask() string { + if x != nil { + return x.TresPerTask + } + return "" +} + +func (x *JobResponseProperties) GetTresReqStr() string { + if x != nil { + return x.TresReqStr + } + return "" +} + +func (x *JobResponseProperties) GetTresAllocStr() string { + if x != nil { + return x.TresAllocStr + } + return "" +} + +func (x *JobResponseProperties) GetUserId() string { + if x != nil { + return x.UserId + } + return "" +} + +func (x *JobResponseProperties) GetUserName() string { + if x != nil { + return x.UserName + } + return "" +} + +func (x *JobResponseProperties) GetWckey() string { + if x != nil { + return x.Wckey + } + return "" +} + +func (x *JobResponseProperties) GetCurrentWorkingDirectory() string { + if x != nil { + return x.CurrentWorkingDirectory + } + return "" +} + +// get job response +type Jobs struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Account string `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"` + AccrueTime uint32 `protobuf:"varint,2,opt,name=accrue_time,json=accrueTime,proto3" json:"accrue_time,omitempty"` + AdminComment string `protobuf:"bytes,3,opt,name=admin_comment,json=adminComment,proto3" json:"admin_comment,omitempty"` + ArrayJobId string `protobuf:"bytes,4,opt,name=array_job_id,json=arrayJobId,proto3" json:"array_job_id,omitempty"` + ArrayTaskId string `protobuf:"bytes,5,opt,name=array_task_id,json=arrayTaskId,proto3" json:"array_task_id,omitempty"` + ArrayMaxTasks string `protobuf:"bytes,6,opt,name=array_max_tasks,json=arrayMaxTasks,proto3" json:"array_max_tasks,omitempty"` + ArrayTaskString string `protobuf:"bytes,7,opt,name=array_task_string,json=arrayTaskString,proto3" json:"array_task_string,omitempty"` + AssociationId string `protobuf:"bytes,8,opt,name=association_id,json=associationId,proto3" json:"association_id,omitempty"` + BatchFeatures string `protobuf:"bytes,9,opt,name=batch_features,json=batchFeatures,proto3" json:"batch_features,omitempty"` + BatchFlag bool `protobuf:"varint,10,opt,name=batch_flag,json=batchFlag,proto3" json:"batch_flag,omitempty"` + BatchHost string `protobuf:"bytes,11,opt,name=batch_host,json=batchHost,proto3" json:"batch_host,omitempty"` + Flags []string `protobuf:"bytes,12,rep,name=flags,proto3" json:"flags,omitempty"` + BurstBuffer string `protobuf:"bytes,13,opt,name=burst_buffer,json=burstBuffer,proto3" json:"burst_buffer,omitempty"` + BurstBufferState string `protobuf:"bytes,14,opt,name=burst_buffer_state,json=burstBufferState,proto3" json:"burst_buffer_state,omitempty"` + Cluster string `protobuf:"bytes,15,opt,name=cluster,proto3" json:"cluster,omitempty"` + ClusterFeatures string `protobuf:"bytes,16,opt,name=cluster_features,json=clusterFeatures,proto3" json:"cluster_features,omitempty"` + Command string `protobuf:"bytes,17,opt,name=command,proto3" json:"command,omitempty"` + Comment string `protobuf:"bytes,18,opt,name=comment,proto3" json:"comment,omitempty"` + Contiguous bool `protobuf:"varint,19,opt,name=contiguous,proto3" json:"contiguous,omitempty"` + CoreSpec string `protobuf:"bytes,20,opt,name=core_spec,json=coreSpec,proto3" json:"core_spec,omitempty"` + ThreadSpec string `protobuf:"bytes,21,opt,name=thread_spec,json=threadSpec,proto3" json:"thread_spec,omitempty"` + CoresPerSocket string `protobuf:"bytes,22,opt,name=cores_per_socket,json=coresPerSocket,proto3" json:"cores_per_socket,omitempty"` + BillableTres string `protobuf:"bytes,23,opt,name=billable_tres,json=billableTres,proto3" json:"billable_tres,omitempty"` + CpusPerTask string `protobuf:"bytes,24,opt,name=cpus_per_task,json=cpusPerTask,proto3" json:"cpus_per_task,omitempty"` + CpuFrequencyMinimum string `protobuf:"bytes,25,opt,name=cpu_frequency_minimum,json=cpuFrequencyMinimum,proto3" json:"cpu_frequency_minimum,omitempty"` + CpuFrequencyMaximum string `protobuf:"bytes,26,opt,name=cpu_frequency_maximum,json=cpuFrequencyMaximum,proto3" json:"cpu_frequency_maximum,omitempty"` + CpuFrequencyGovernor string `protobuf:"bytes,27,opt,name=cpu_frequency_governor,json=cpuFrequencyGovernor,proto3" json:"cpu_frequency_governor,omitempty"` + CpusPerTres string `protobuf:"bytes,28,opt,name=cpus_per_tres,json=cpusPerTres,proto3" json:"cpus_per_tres,omitempty"` + Deadline string `protobuf:"bytes,29,opt,name=deadline,proto3" json:"deadline,omitempty"` + DelayBoot string `protobuf:"bytes,30,opt,name=delay_boot,json=delayBoot,proto3" json:"delay_boot,omitempty"` + Dependency string `protobuf:"bytes,31,opt,name=dependency,proto3" json:"dependency,omitempty"` + DerivedExitCode string `protobuf:"bytes,32,opt,name=derived_exit_code,json=derivedExitCode,proto3" json:"derived_exit_code,omitempty"` + EligibleTime uint32 `protobuf:"varint,33,opt,name=eligible_time,json=eligibleTime,proto3" json:"eligible_time,omitempty"` + EndTime uint32 `protobuf:"varint,34,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` + ExcludedNodes string `protobuf:"bytes,35,opt,name=excluded_nodes,json=excludedNodes,proto3" json:"excluded_nodes,omitempty"` + ExitCode uint32 `protobuf:"varint,36,opt,name=exit_code,json=exitCode,proto3" json:"exit_code,omitempty"` + Features string `protobuf:"bytes,37,opt,name=features,proto3" json:"features,omitempty"` + FederationOrigin string `protobuf:"bytes,38,opt,name=federation_origin,json=federationOrigin,proto3" json:"federation_origin,omitempty"` + FederationSiblingsActive string `protobuf:"bytes,39,opt,name=federation_siblings_active,json=federationSiblingsActive,proto3" json:"federation_siblings_active,omitempty"` + FederationSiblingsViable string `protobuf:"bytes,40,opt,name=federation_siblings_viable,json=federationSiblingsViable,proto3" json:"federation_siblings_viable,omitempty"` + GresDetail []string `protobuf:"bytes,41,rep,name=gres_detail,json=gresDetail,proto3" json:"gres_detail,omitempty"` + GroupId string `protobuf:"bytes,42,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"` + JobId string `protobuf:"bytes,43,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"` + JobResources *JobResources `protobuf:"bytes,44,opt,name=job_resources,json=jobResources,proto3" json:"job_resources,omitempty"` + JobState string `protobuf:"bytes,45,opt,name=job_state,json=jobState,proto3" json:"job_state,omitempty"` + LastSchedEvaluation string `protobuf:"bytes,46,opt,name=last_sched_evaluation,json=lastSchedEvaluation,proto3" json:"last_sched_evaluation,omitempty"` + Licenses string `protobuf:"bytes,47,opt,name=licenses,proto3" json:"licenses,omitempty"` + MaxCpus string `protobuf:"bytes,48,opt,name=max_cpus,json=maxCpus,proto3" json:"max_cpus,omitempty"` + MaxNodes string `protobuf:"bytes,49,opt,name=max_nodes,json=maxNodes,proto3" json:"max_nodes,omitempty"` + McsLabel string `protobuf:"bytes,50,opt,name=mcs_label,json=mcsLabel,proto3" json:"mcs_label,omitempty"` + MemoryPerTres string `protobuf:"bytes,51,opt,name=memory_per_tres,json=memoryPerTres,proto3" json:"memory_per_tres,omitempty"` + Name string `protobuf:"bytes,52,opt,name=name,proto3" json:"name,omitempty"` + Nodes string `protobuf:"bytes,53,opt,name=nodes,proto3" json:"nodes,omitempty"` + Nice string `protobuf:"bytes,54,opt,name=nice,proto3" json:"nice,omitempty"` + TasksPerCore string `protobuf:"bytes,55,opt,name=tasks_per_core,json=tasksPerCore,proto3" json:"tasks_per_core,omitempty"` + TasksPerSocket string `protobuf:"bytes,56,opt,name=tasks_per_socket,json=tasksPerSocket,proto3" json:"tasks_per_socket,omitempty"` + TasksPerBoard string `protobuf:"bytes,57,opt,name=tasks_per_board,json=tasksPerBoard,proto3" json:"tasks_per_board,omitempty"` + Cpus string `protobuf:"bytes,58,opt,name=cpus,proto3" json:"cpus,omitempty"` + NodeCount string `protobuf:"bytes,59,opt,name=node_count,json=nodeCount,proto3" json:"node_count,omitempty"` + Tasks string `protobuf:"bytes,60,opt,name=tasks,proto3" json:"tasks,omitempty"` + HetJobId string `protobuf:"bytes,61,opt,name=het_job_id,json=hetJobId,proto3" json:"het_job_id,omitempty"` + HetJobIdSet string `protobuf:"bytes,62,opt,name=het_job_id_set,json=hetJobIdSet,proto3" json:"het_job_id_set,omitempty"` + HetJobOffset string `protobuf:"bytes,63,opt,name=het_job_offset,json=hetJobOffset,proto3" json:"het_job_offset,omitempty"` + Partition string `protobuf:"bytes,64,opt,name=partition,proto3" json:"partition,omitempty"` + MemoryPerNode string `protobuf:"bytes,65,opt,name=memory_per_node,json=memoryPerNode,proto3" json:"memory_per_node,omitempty"` + MemoryPerCpu string `protobuf:"bytes,66,opt,name=memory_per_cpu,json=memoryPerCpu,proto3" json:"memory_per_cpu,omitempty"` + MinimumCpusPerNode string `protobuf:"bytes,67,opt,name=minimum_cpus_per_node,json=minimumCpusPerNode,proto3" json:"minimum_cpus_per_node,omitempty"` + MinimumTmpDiskPerNode string `protobuf:"bytes,68,opt,name=minimum_tmp_disk_per_node,json=minimumTmpDiskPerNode,proto3" json:"minimum_tmp_disk_per_node,omitempty"` + PreemptTime uint32 `protobuf:"varint,69,opt,name=preempt_time,json=preemptTime,proto3" json:"preempt_time,omitempty"` + PreSusTime uint32 `protobuf:"varint,70,opt,name=pre_sus_time,json=preSusTime,proto3" json:"pre_sus_time,omitempty"` + Priority string `protobuf:"bytes,71,opt,name=priority,proto3" json:"priority,omitempty"` + Profile []string `protobuf:"bytes,72,rep,name=profile,proto3" json:"profile,omitempty"` + Qos string `protobuf:"bytes,73,opt,name=qos,proto3" json:"qos,omitempty"` + Reboot bool `protobuf:"varint,74,opt,name=reboot,proto3" json:"reboot,omitempty"` + RequiredNodes string `protobuf:"bytes,75,opt,name=required_nodes,json=requiredNodes,proto3" json:"required_nodes,omitempty"` + Requeue bool `protobuf:"varint,76,opt,name=requeue,proto3" json:"requeue,omitempty"` + ResizeTime uint32 `protobuf:"varint,77,opt,name=resize_time,json=resizeTime,proto3" json:"resize_time,omitempty"` + RestartCnt string `protobuf:"bytes,78,opt,name=restart_cnt,json=restartCnt,proto3" json:"restart_cnt,omitempty"` + ResvName string `protobuf:"bytes,79,opt,name=resv_name,json=resvName,proto3" json:"resv_name,omitempty"` + Shared string `protobuf:"bytes,80,opt,name=shared,proto3" json:"shared,omitempty"` + ShowFlags []string `protobuf:"bytes,81,rep,name=show_flags,json=showFlags,proto3" json:"show_flags,omitempty"` + SocketsPerBoard string `protobuf:"bytes,82,opt,name=sockets_per_board,json=socketsPerBoard,proto3" json:"sockets_per_board,omitempty"` + SocketsPerNode string `protobuf:"bytes,83,opt,name=sockets_per_node,json=socketsPerNode,proto3" json:"sockets_per_node,omitempty"` + StartTime uint32 `protobuf:"varint,84,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` + StateDescription string `protobuf:"bytes,85,opt,name=state_description,json=stateDescription,proto3" json:"state_description,omitempty"` + StateReason string `protobuf:"bytes,86,opt,name=state_reason,json=stateReason,proto3" json:"state_reason,omitempty"` + StandardError string `protobuf:"bytes,87,opt,name=standard_error,json=standardError,proto3" json:"standard_error,omitempty"` + StandardInput string `protobuf:"bytes,88,opt,name=standard_input,json=standardInput,proto3" json:"standard_input,omitempty"` + StandardOutput string `protobuf:"bytes,89,opt,name=standard_output,json=standardOutput,proto3" json:"standard_output,omitempty"` + SubmitTime uint32 `protobuf:"varint,90,opt,name=submit_time,json=submitTime,proto3" json:"submit_time,omitempty"` + SuspendTime uint32 `protobuf:"varint,91,opt,name=suspend_time,json=suspendTime,proto3" json:"suspend_time,omitempty"` + SystemComment string `protobuf:"bytes,92,opt,name=system_comment,json=systemComment,proto3" json:"system_comment,omitempty"` + TimeLimit string `protobuf:"bytes,93,opt,name=time_limit,json=timeLimit,proto3" json:"time_limit,omitempty"` + TimeMinimum string `protobuf:"bytes,94,opt,name=time_minimum,json=timeMinimum,proto3" json:"time_minimum,omitempty"` + ThreadsPerCore string `protobuf:"bytes,95,opt,name=threads_per_core,json=threadsPerCore,proto3" json:"threads_per_core,omitempty"` + TresBind string `protobuf:"bytes,96,opt,name=tres_bind,json=tresBind,proto3" json:"tres_bind,omitempty"` + TresFreq string `protobuf:"bytes,97,opt,name=tres_freq,json=tresFreq,proto3" json:"tres_freq,omitempty"` + TresPerJob string `protobuf:"bytes,98,opt,name=tres_per_job,json=tresPerJob,proto3" json:"tres_per_job,omitempty"` + TresPerNode string `protobuf:"bytes,99,opt,name=tres_per_node,json=tresPerNode,proto3" json:"tres_per_node,omitempty"` + TresPerSocket string `protobuf:"bytes,100,opt,name=tres_per_socket,json=tresPerSocket,proto3" json:"tres_per_socket,omitempty"` + TresPerTask string `protobuf:"bytes,101,opt,name=tres_per_task,json=tresPerTask,proto3" json:"tres_per_task,omitempty"` + TresReqStr string `protobuf:"bytes,102,opt,name=tres_req_str,json=tresReqStr,proto3" json:"tres_req_str,omitempty"` + TresAllocStr string `protobuf:"bytes,103,opt,name=tres_alloc_str,json=tresAllocStr,proto3" json:"tres_alloc_str,omitempty"` + UserId string `protobuf:"bytes,104,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + UserName string `protobuf:"bytes,105,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` + Wckey string `protobuf:"bytes,106,opt,name=wckey,proto3" json:"wckey,omitempty"` + CurrentWorkingDirectory string `protobuf:"bytes,107,opt,name=current_working_directory,json=currentWorkingDirectory,proto3" json:"current_working_directory,omitempty"` +} + +func (x *Jobs) Reset() { + *x = Jobs{} + if protoimpl.UnsafeEnabled { + mi := &file_slurm_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Jobs) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Jobs) ProtoMessage() {} + +func (x *Jobs) ProtoReflect() protoreflect.Message { + mi := &file_slurm_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 Jobs.ProtoReflect.Descriptor instead. +func (*Jobs) Descriptor() ([]byte, []int) { + return file_slurm_proto_rawDescGZIP(), []int{9} +} + +func (x *Jobs) GetAccount() string { + if x != nil { + return x.Account + } + return "" +} + +func (x *Jobs) GetAccrueTime() uint32 { + if x != nil { + return x.AccrueTime + } + return 0 +} + +func (x *Jobs) GetAdminComment() string { + if x != nil { + return x.AdminComment + } + return "" +} + +func (x *Jobs) GetArrayJobId() string { + if x != nil { + return x.ArrayJobId + } + return "" +} + +func (x *Jobs) GetArrayTaskId() string { + if x != nil { + return x.ArrayTaskId + } + return "" +} + +func (x *Jobs) GetArrayMaxTasks() string { + if x != nil { + return x.ArrayMaxTasks + } + return "" +} + +func (x *Jobs) GetArrayTaskString() string { + if x != nil { + return x.ArrayTaskString + } + return "" +} + +func (x *Jobs) GetAssociationId() string { + if x != nil { + return x.AssociationId + } + return "" +} + +func (x *Jobs) GetBatchFeatures() string { + if x != nil { + return x.BatchFeatures + } + return "" +} + +func (x *Jobs) GetBatchFlag() bool { + if x != nil { + return x.BatchFlag + } + return false +} + +func (x *Jobs) GetBatchHost() string { + if x != nil { + return x.BatchHost + } + return "" +} + +func (x *Jobs) GetFlags() []string { + if x != nil { + return x.Flags + } + return nil +} + +func (x *Jobs) GetBurstBuffer() string { + if x != nil { + return x.BurstBuffer + } + return "" +} + +func (x *Jobs) GetBurstBufferState() string { + if x != nil { + return x.BurstBufferState + } + return "" +} + +func (x *Jobs) GetCluster() string { + if x != nil { + return x.Cluster + } + return "" +} + +func (x *Jobs) GetClusterFeatures() string { + if x != nil { + return x.ClusterFeatures + } + return "" +} + +func (x *Jobs) GetCommand() string { + if x != nil { + return x.Command + } + return "" +} + +func (x *Jobs) GetComment() string { + if x != nil { + return x.Comment + } + return "" +} + +func (x *Jobs) GetContiguous() bool { + if x != nil { + return x.Contiguous + } + return false +} + +func (x *Jobs) GetCoreSpec() string { + if x != nil { + return x.CoreSpec + } + return "" +} + +func (x *Jobs) GetThreadSpec() string { + if x != nil { + return x.ThreadSpec + } + return "" +} + +func (x *Jobs) GetCoresPerSocket() string { + if x != nil { + return x.CoresPerSocket + } + return "" +} + +func (x *Jobs) GetBillableTres() string { + if x != nil { + return x.BillableTres + } + return "" +} + +func (x *Jobs) GetCpusPerTask() string { + if x != nil { + return x.CpusPerTask + } + return "" +} + +func (x *Jobs) GetCpuFrequencyMinimum() string { + if x != nil { + return x.CpuFrequencyMinimum + } + return "" +} + +func (x *Jobs) GetCpuFrequencyMaximum() string { + if x != nil { + return x.CpuFrequencyMaximum + } + return "" +} + +func (x *Jobs) GetCpuFrequencyGovernor() string { + if x != nil { + return x.CpuFrequencyGovernor + } + return "" +} + +func (x *Jobs) GetCpusPerTres() string { + if x != nil { + return x.CpusPerTres + } + return "" +} + +func (x *Jobs) GetDeadline() string { + if x != nil { + return x.Deadline + } + return "" +} + +func (x *Jobs) GetDelayBoot() string { + if x != nil { + return x.DelayBoot + } + return "" +} + +func (x *Jobs) GetDependency() string { + if x != nil { + return x.Dependency + } + return "" +} + +func (x *Jobs) GetDerivedExitCode() string { + if x != nil { + return x.DerivedExitCode + } + return "" +} + +func (x *Jobs) GetEligibleTime() uint32 { + if x != nil { + return x.EligibleTime + } + return 0 +} + +func (x *Jobs) GetEndTime() uint32 { + if x != nil { + return x.EndTime + } + return 0 +} + +func (x *Jobs) GetExcludedNodes() string { + if x != nil { + return x.ExcludedNodes + } + return "" +} + +func (x *Jobs) GetExitCode() uint32 { + if x != nil { + return x.ExitCode + } + return 0 +} + +func (x *Jobs) GetFeatures() string { + if x != nil { + return x.Features + } + return "" +} + +func (x *Jobs) GetFederationOrigin() string { + if x != nil { + return x.FederationOrigin + } + return "" +} + +func (x *Jobs) GetFederationSiblingsActive() string { + if x != nil { + return x.FederationSiblingsActive + } + return "" +} + +func (x *Jobs) GetFederationSiblingsViable() string { + if x != nil { + return x.FederationSiblingsViable + } + return "" +} + +func (x *Jobs) GetGresDetail() []string { + if x != nil { + return x.GresDetail + } + return nil +} + +func (x *Jobs) GetGroupId() string { + if x != nil { + return x.GroupId + } + return "" +} + +func (x *Jobs) GetJobId() string { + if x != nil { + return x.JobId + } + return "" +} + +func (x *Jobs) GetJobResources() *JobResources { + if x != nil { + return x.JobResources + } + return nil +} + +func (x *Jobs) GetJobState() string { + if x != nil { + return x.JobState + } + return "" +} + +func (x *Jobs) GetLastSchedEvaluation() string { + if x != nil { + return x.LastSchedEvaluation + } + return "" +} + +func (x *Jobs) GetLicenses() string { + if x != nil { + return x.Licenses + } + return "" +} + +func (x *Jobs) GetMaxCpus() string { + if x != nil { + return x.MaxCpus + } + return "" +} + +func (x *Jobs) GetMaxNodes() string { + if x != nil { + return x.MaxNodes + } + return "" +} + +func (x *Jobs) GetMcsLabel() string { + if x != nil { + return x.McsLabel + } + return "" +} + +func (x *Jobs) GetMemoryPerTres() string { + if x != nil { + return x.MemoryPerTres + } + return "" +} + +func (x *Jobs) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Jobs) GetNodes() string { + if x != nil { + return x.Nodes + } + return "" +} + +func (x *Jobs) GetNice() string { + if x != nil { + return x.Nice + } + return "" +} + +func (x *Jobs) GetTasksPerCore() string { + if x != nil { + return x.TasksPerCore + } + return "" +} + +func (x *Jobs) GetTasksPerSocket() string { + if x != nil { + return x.TasksPerSocket + } + return "" +} + +func (x *Jobs) GetTasksPerBoard() string { + if x != nil { + return x.TasksPerBoard + } + return "" +} + +func (x *Jobs) GetCpus() string { + if x != nil { + return x.Cpus + } + return "" +} + +func (x *Jobs) GetNodeCount() string { + if x != nil { + return x.NodeCount + } + return "" +} + +func (x *Jobs) GetTasks() string { + if x != nil { + return x.Tasks + } + return "" +} + +func (x *Jobs) GetHetJobId() string { + if x != nil { + return x.HetJobId + } + return "" +} + +func (x *Jobs) GetHetJobIdSet() string { + if x != nil { + return x.HetJobIdSet + } + return "" +} + +func (x *Jobs) GetHetJobOffset() string { + if x != nil { + return x.HetJobOffset + } + return "" +} + +func (x *Jobs) GetPartition() string { + if x != nil { + return x.Partition + } + return "" +} + +func (x *Jobs) GetMemoryPerNode() string { + if x != nil { + return x.MemoryPerNode + } + return "" +} + +func (x *Jobs) GetMemoryPerCpu() string { + if x != nil { + return x.MemoryPerCpu + } + return "" +} + +func (x *Jobs) GetMinimumCpusPerNode() string { + if x != nil { + return x.MinimumCpusPerNode + } + return "" +} + +func (x *Jobs) GetMinimumTmpDiskPerNode() string { + if x != nil { + return x.MinimumTmpDiskPerNode + } + return "" +} + +func (x *Jobs) GetPreemptTime() uint32 { + if x != nil { + return x.PreemptTime + } + return 0 +} + +func (x *Jobs) GetPreSusTime() uint32 { + if x != nil { + return x.PreSusTime + } + return 0 +} + +func (x *Jobs) GetPriority() string { + if x != nil { + return x.Priority + } + return "" +} + +func (x *Jobs) GetProfile() []string { + if x != nil { + return x.Profile + } + return nil +} + +func (x *Jobs) GetQos() string { + if x != nil { + return x.Qos + } + return "" +} + +func (x *Jobs) GetReboot() bool { + if x != nil { + return x.Reboot + } + return false +} + +func (x *Jobs) GetRequiredNodes() string { + if x != nil { + return x.RequiredNodes + } + return "" +} + +func (x *Jobs) GetRequeue() bool { + if x != nil { + return x.Requeue + } + return false +} + +func (x *Jobs) GetResizeTime() uint32 { + if x != nil { + return x.ResizeTime + } + return 0 +} + +func (x *Jobs) GetRestartCnt() string { + if x != nil { + return x.RestartCnt + } + return "" +} + +func (x *Jobs) GetResvName() string { + if x != nil { + return x.ResvName + } + return "" +} + +func (x *Jobs) GetShared() string { + if x != nil { + return x.Shared + } + return "" +} + +func (x *Jobs) GetShowFlags() []string { + if x != nil { + return x.ShowFlags + } + return nil +} + +func (x *Jobs) GetSocketsPerBoard() string { + if x != nil { + return x.SocketsPerBoard + } + return "" +} + +func (x *Jobs) GetSocketsPerNode() string { + if x != nil { + return x.SocketsPerNode + } + return "" +} + +func (x *Jobs) GetStartTime() uint32 { + if x != nil { + return x.StartTime + } + return 0 +} + +func (x *Jobs) GetStateDescription() string { + if x != nil { + return x.StateDescription + } + return "" +} + +func (x *Jobs) GetStateReason() string { + if x != nil { + return x.StateReason + } + return "" +} + +func (x *Jobs) GetStandardError() string { + if x != nil { + return x.StandardError + } + return "" +} + +func (x *Jobs) GetStandardInput() string { + if x != nil { + return x.StandardInput + } + return "" +} + +func (x *Jobs) GetStandardOutput() string { + if x != nil { + return x.StandardOutput + } + return "" +} + +func (x *Jobs) GetSubmitTime() uint32 { + if x != nil { + return x.SubmitTime + } + return 0 +} + +func (x *Jobs) GetSuspendTime() uint32 { + if x != nil { + return x.SuspendTime + } + return 0 +} + +func (x *Jobs) GetSystemComment() string { + if x != nil { + return x.SystemComment + } + return "" +} + +func (x *Jobs) GetTimeLimit() string { + if x != nil { + return x.TimeLimit + } + return "" +} + +func (x *Jobs) GetTimeMinimum() string { + if x != nil { + return x.TimeMinimum + } + return "" +} + +func (x *Jobs) GetThreadsPerCore() string { + if x != nil { + return x.ThreadsPerCore + } + return "" +} + +func (x *Jobs) GetTresBind() string { + if x != nil { + return x.TresBind + } + return "" +} + +func (x *Jobs) GetTresFreq() string { + if x != nil { + return x.TresFreq + } + return "" +} + +func (x *Jobs) GetTresPerJob() string { + if x != nil { + return x.TresPerJob + } + return "" +} + +func (x *Jobs) GetTresPerNode() string { + if x != nil { + return x.TresPerNode + } + return "" +} + +func (x *Jobs) GetTresPerSocket() string { + if x != nil { + return x.TresPerSocket + } + return "" +} + +func (x *Jobs) GetTresPerTask() string { + if x != nil { + return x.TresPerTask + } + return "" +} + +func (x *Jobs) GetTresReqStr() string { + if x != nil { + return x.TresReqStr + } + return "" +} + +func (x *Jobs) GetTresAllocStr() string { + if x != nil { + return x.TresAllocStr + } + return "" +} + +func (x *Jobs) GetUserId() string { + if x != nil { + return x.UserId + } + return "" +} + +func (x *Jobs) GetUserName() string { + if x != nil { + return x.UserName + } + return "" +} + +func (x *Jobs) GetWckey() string { + if x != nil { + return x.Wckey + } + return "" +} + +func (x *Jobs) GetCurrentWorkingDirectory() string { + if x != nil { + return x.CurrentWorkingDirectory + } + return "" +} + +type JobUpdate struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Account string `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"` + AccountGatherFrequency string `protobuf:"bytes,2,opt,name=account_gather_frequency,json=accountGatherFrequency,proto3" json:"account_gather_frequency,omitempty"` + Argv []string `protobuf:"bytes,3,rep,name=argv,proto3" json:"argv,omitempty"` + Array string `protobuf:"bytes,4,opt,name=array,proto3" json:"array,omitempty"` + BatchFeatures string `protobuf:"bytes,5,opt,name=batch_features,json=batchFeatures,proto3" json:"batch_features,omitempty"` + BeginTime uint32 `protobuf:"varint,6,opt,name=begin_time,json=beginTime,proto3" json:"begin_time,omitempty"` + BurstBuffer string `protobuf:"bytes,7,opt,name=burst_buffer,json=burstBuffer,proto3" json:"burst_buffer,omitempty"` + ClusterConstraint string `protobuf:"bytes,8,opt,name=cluster_constraint,json=clusterConstraint,proto3" json:"cluster_constraint,omitempty"` + Comment string `protobuf:"bytes,9,opt,name=comment,proto3" json:"comment,omitempty"` + Constraints string `protobuf:"bytes,10,opt,name=constraints,proto3" json:"constraints,omitempty"` + CoreSpecification uint32 `protobuf:"varint,11,opt,name=core_specification,json=coreSpecification,proto3" json:"core_specification,omitempty"` + CoresPerSocket uint32 `protobuf:"varint,12,opt,name=cores_per_socket,json=coresPerSocket,proto3" json:"cores_per_socket,omitempty"` + CpuBinding string `protobuf:"bytes,13,opt,name=cpu_binding,json=cpuBinding,proto3" json:"cpu_binding,omitempty"` + CpuBindingHint string `protobuf:"bytes,14,opt,name=cpu_binding_hint,json=cpuBindingHint,proto3" json:"cpu_binding_hint,omitempty"` + CpuFrequency string `protobuf:"bytes,15,opt,name=cpu_frequency,json=cpuFrequency,proto3" json:"cpu_frequency,omitempty"` + CpusPerGpu string `protobuf:"bytes,16,opt,name=cpus_per_gpu,json=cpusPerGpu,proto3" json:"cpus_per_gpu,omitempty"` + CpusPerTask uint32 `protobuf:"varint,17,opt,name=cpus_per_task,json=cpusPerTask,proto3" json:"cpus_per_task,omitempty"` + CurrentWorkingDirectory string `protobuf:"bytes,18,opt,name=current_working_directory,json=currentWorkingDirectory,proto3" json:"current_working_directory,omitempty"` + Deadline string `protobuf:"bytes,19,opt,name=deadline,proto3" json:"deadline,omitempty"` + DelayBoot uint32 `protobuf:"varint,20,opt,name=delay_boot,json=delayBoot,proto3" json:"delay_boot,omitempty"` + Dependency string `protobuf:"bytes,21,opt,name=dependency,proto3" json:"dependency,omitempty"` + Distribution string `protobuf:"bytes,22,opt,name=distribution,proto3" json:"distribution,omitempty"` + Environment *Environment `protobuf:"bytes,23,opt,name=environment,proto3" json:"environment,omitempty"` + Exclusive string `protobuf:"bytes,24,opt,name=exclusive,proto3" json:"exclusive,omitempty"` + GetUserEnvironment bool `protobuf:"varint,25,opt,name=get_user_environment,json=getUserEnvironment,proto3" json:"get_user_environment,omitempty"` + Gres string `protobuf:"bytes,26,opt,name=gres,proto3" json:"gres,omitempty"` + GresFlags string `protobuf:"bytes,27,opt,name=gres_flags,json=gresFlags,proto3" json:"gres_flags,omitempty"` + GpuBinding string `protobuf:"bytes,28,opt,name=gpu_binding,json=gpuBinding,proto3" json:"gpu_binding,omitempty"` + GpuFrequency string `protobuf:"bytes,29,opt,name=gpu_frequency,json=gpuFrequency,proto3" json:"gpu_frequency,omitempty"` + Gpus string `protobuf:"bytes,30,opt,name=gpus,proto3" json:"gpus,omitempty"` + GpusPerNode string `protobuf:"bytes,31,opt,name=gpus_per_node,json=gpusPerNode,proto3" json:"gpus_per_node,omitempty"` + GpusPerSocket string `protobuf:"bytes,32,opt,name=gpus_per_socket,json=gpusPerSocket,proto3" json:"gpus_per_socket,omitempty"` + GpusPerTask string `protobuf:"bytes,33,opt,name=gpus_per_task,json=gpusPerTask,proto3" json:"gpus_per_task,omitempty"` + Hold bool `protobuf:"varint,34,opt,name=hold,proto3" json:"hold,omitempty"` + KillOnInvalidDependency bool `protobuf:"varint,35,opt,name=kill_on_invalid_dependency,json=killOnInvalidDependency,proto3" json:"kill_on_invalid_dependency,omitempty"` + Licenses string `protobuf:"bytes,36,opt,name=licenses,proto3" json:"licenses,omitempty"` + MailType string `protobuf:"bytes,37,opt,name=mail_type,json=mailType,proto3" json:"mail_type,omitempty"` + MailUser string `protobuf:"bytes,38,opt,name=mail_user,json=mailUser,proto3" json:"mail_user,omitempty"` + McsLabel string `protobuf:"bytes,39,opt,name=mcs_label,json=mcsLabel,proto3" json:"mcs_label,omitempty"` + MemoryBinding string `protobuf:"bytes,40,opt,name=memory_binding,json=memoryBinding,proto3" json:"memory_binding,omitempty"` + MemoryPerCpu uint32 `protobuf:"varint,41,opt,name=memory_per_cpu,json=memoryPerCpu,proto3" json:"memory_per_cpu,omitempty"` + MemoryPerGpu uint32 `protobuf:"varint,42,opt,name=memory_per_gpu,json=memoryPerGpu,proto3" json:"memory_per_gpu,omitempty"` + MemoryPerNode uint32 `protobuf:"varint,43,opt,name=memory_per_node,json=memoryPerNode,proto3" json:"memory_per_node,omitempty"` + MinimumCpusPerNode uint32 `protobuf:"varint,44,opt,name=minimum_cpus_per_node,json=minimumCpusPerNode,proto3" json:"minimum_cpus_per_node,omitempty"` + MinimumNodes bool `protobuf:"varint,45,opt,name=minimum_nodes,json=minimumNodes,proto3" json:"minimum_nodes,omitempty"` + Name string `protobuf:"bytes,46,opt,name=name,proto3" json:"name,omitempty"` + Nice string `protobuf:"bytes,47,opt,name=nice,proto3" json:"nice,omitempty"` + NoKill bool `protobuf:"varint,48,opt,name=no_kill,json=noKill,proto3" json:"no_kill,omitempty"` + Nodes []uint32 `protobuf:"varint,49,rep,packed,name=nodes,proto3" json:"nodes,omitempty"` + OpenMode string `protobuf:"bytes,50,opt,name=open_mode,json=openMode,proto3" json:"open_mode,omitempty"` + Partition string `protobuf:"bytes,51,opt,name=partition,proto3" json:"partition,omitempty"` + Priority string `protobuf:"bytes,52,opt,name=priority,proto3" json:"priority,omitempty"` + Qos string `protobuf:"bytes,53,opt,name=qos,proto3" json:"qos,omitempty"` + Requeue bool `protobuf:"varint,54,opt,name=requeue,proto3" json:"requeue,omitempty"` + Reservation string `protobuf:"bytes,55,opt,name=reservation,proto3" json:"reservation,omitempty"` + Signal string `protobuf:"bytes,56,opt,name=signal,proto3" json:"signal,omitempty"` + SocketsPerNode uint32 `protobuf:"varint,57,opt,name=sockets_per_node,json=socketsPerNode,proto3" json:"sockets_per_node,omitempty"` + SpreadJob bool `protobuf:"varint,58,opt,name=spread_job,json=spreadJob,proto3" json:"spread_job,omitempty"` + StandardError string `protobuf:"bytes,59,opt,name=standard_error,json=standardError,proto3" json:"standard_error,omitempty"` + StandardInput string `protobuf:"bytes,60,opt,name=standard_input,json=standardInput,proto3" json:"standard_input,omitempty"` + StandardOutput string `protobuf:"bytes,61,opt,name=standard_output,json=standardOutput,proto3" json:"standard_output,omitempty"` + Tasks uint32 `protobuf:"varint,62,opt,name=tasks,proto3" json:"tasks,omitempty"` + TasksPerCore uint32 `protobuf:"varint,63,opt,name=tasks_per_core,json=tasksPerCore,proto3" json:"tasks_per_core,omitempty"` + TasksPerNode uint32 `protobuf:"varint,64,opt,name=tasks_per_node,json=tasksPerNode,proto3" json:"tasks_per_node,omitempty"` + TasksPerSocket uint32 `protobuf:"varint,65,opt,name=tasks_per_socket,json=tasksPerSocket,proto3" json:"tasks_per_socket,omitempty"` + ThreadSpecification uint32 `protobuf:"varint,66,opt,name=thread_specification,json=threadSpecification,proto3" json:"thread_specification,omitempty"` + ThreadsPerCore uint32 `protobuf:"varint,67,opt,name=threads_per_core,json=threadsPerCore,proto3" json:"threads_per_core,omitempty"` + TimeLimit uint32 `protobuf:"varint,68,opt,name=time_limit,json=timeLimit,proto3" json:"time_limit,omitempty"` + TimeMinimum uint32 `protobuf:"varint,69,opt,name=time_minimum,json=timeMinimum,proto3" json:"time_minimum,omitempty"` + WaitAllNodes bool `protobuf:"varint,70,opt,name=wait_all_nodes,json=waitAllNodes,proto3" json:"wait_all_nodes,omitempty"` + Wckey string `protobuf:"bytes,71,opt,name=wckey,proto3" json:"wckey,omitempty"` +} + +func (x *JobUpdate) Reset() { + *x = JobUpdate{} + if protoimpl.UnsafeEnabled { + mi := &file_slurm_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *JobUpdate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*JobUpdate) ProtoMessage() {} + +func (x *JobUpdate) ProtoReflect() protoreflect.Message { + mi := &file_slurm_proto_msgTypes[10] + 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 JobUpdate.ProtoReflect.Descriptor instead. +func (*JobUpdate) Descriptor() ([]byte, []int) { + return file_slurm_proto_rawDescGZIP(), []int{10} +} + +func (x *JobUpdate) GetAccount() string { + if x != nil { + return x.Account + } + return "" +} + +func (x *JobUpdate) GetAccountGatherFrequency() string { + if x != nil { + return x.AccountGatherFrequency + } + return "" +} + +func (x *JobUpdate) GetArgv() []string { + if x != nil { + return x.Argv + } + return nil +} + +func (x *JobUpdate) GetArray() string { + if x != nil { + return x.Array + } + return "" +} + +func (x *JobUpdate) GetBatchFeatures() string { + if x != nil { + return x.BatchFeatures + } + return "" +} + +func (x *JobUpdate) GetBeginTime() uint32 { + if x != nil { + return x.BeginTime + } + return 0 +} + +func (x *JobUpdate) GetBurstBuffer() string { + if x != nil { + return x.BurstBuffer + } + return "" +} + +func (x *JobUpdate) GetClusterConstraint() string { + if x != nil { + return x.ClusterConstraint + } + return "" +} + +func (x *JobUpdate) GetComment() string { + if x != nil { + return x.Comment + } + return "" +} + +func (x *JobUpdate) GetConstraints() string { + if x != nil { + return x.Constraints + } + return "" +} + +func (x *JobUpdate) GetCoreSpecification() uint32 { + if x != nil { + return x.CoreSpecification + } + return 0 +} + +func (x *JobUpdate) GetCoresPerSocket() uint32 { + if x != nil { + return x.CoresPerSocket + } + return 0 +} + +func (x *JobUpdate) GetCpuBinding() string { + if x != nil { + return x.CpuBinding + } + return "" +} + +func (x *JobUpdate) GetCpuBindingHint() string { + if x != nil { + return x.CpuBindingHint + } + return "" +} + +func (x *JobUpdate) GetCpuFrequency() string { + if x != nil { + return x.CpuFrequency + } + return "" +} + +func (x *JobUpdate) GetCpusPerGpu() string { + if x != nil { + return x.CpusPerGpu + } + return "" +} + +func (x *JobUpdate) GetCpusPerTask() uint32 { + if x != nil { + return x.CpusPerTask + } + return 0 +} + +func (x *JobUpdate) GetCurrentWorkingDirectory() string { + if x != nil { + return x.CurrentWorkingDirectory + } + return "" +} + +func (x *JobUpdate) GetDeadline() string { + if x != nil { + return x.Deadline + } + return "" +} + +func (x *JobUpdate) GetDelayBoot() uint32 { + if x != nil { + return x.DelayBoot + } + return 0 +} + +func (x *JobUpdate) GetDependency() string { + if x != nil { + return x.Dependency + } + return "" +} + +func (x *JobUpdate) GetDistribution() string { + if x != nil { + return x.Distribution + } + return "" +} + +func (x *JobUpdate) GetEnvironment() *Environment { + if x != nil { + return x.Environment + } + return nil +} + +func (x *JobUpdate) GetExclusive() string { + if x != nil { + return x.Exclusive + } + return "" +} + +func (x *JobUpdate) GetGetUserEnvironment() bool { + if x != nil { + return x.GetUserEnvironment + } + return false +} + +func (x *JobUpdate) GetGres() string { + if x != nil { + return x.Gres + } + return "" +} + +func (x *JobUpdate) GetGresFlags() string { + if x != nil { + return x.GresFlags + } + return "" +} + +func (x *JobUpdate) GetGpuBinding() string { + if x != nil { + return x.GpuBinding + } + return "" +} + +func (x *JobUpdate) GetGpuFrequency() string { + if x != nil { + return x.GpuFrequency + } + return "" +} + +func (x *JobUpdate) GetGpus() string { + if x != nil { + return x.Gpus + } + return "" +} + +func (x *JobUpdate) GetGpusPerNode() string { + if x != nil { + return x.GpusPerNode + } + return "" +} + +func (x *JobUpdate) GetGpusPerSocket() string { + if x != nil { + return x.GpusPerSocket + } + return "" +} + +func (x *JobUpdate) GetGpusPerTask() string { + if x != nil { + return x.GpusPerTask + } + return "" +} + +func (x *JobUpdate) GetHold() bool { + if x != nil { + return x.Hold + } + return false +} + +func (x *JobUpdate) GetKillOnInvalidDependency() bool { + if x != nil { + return x.KillOnInvalidDependency + } + return false +} + +func (x *JobUpdate) GetLicenses() string { + if x != nil { + return x.Licenses + } + return "" +} + +func (x *JobUpdate) GetMailType() string { + if x != nil { + return x.MailType + } + return "" +} + +func (x *JobUpdate) GetMailUser() string { + if x != nil { + return x.MailUser + } + return "" +} + +func (x *JobUpdate) GetMcsLabel() string { + if x != nil { + return x.McsLabel + } + return "" +} + +func (x *JobUpdate) GetMemoryBinding() string { + if x != nil { + return x.MemoryBinding + } + return "" +} + +func (x *JobUpdate) GetMemoryPerCpu() uint32 { + if x != nil { + return x.MemoryPerCpu + } + return 0 +} + +func (x *JobUpdate) GetMemoryPerGpu() uint32 { + if x != nil { + return x.MemoryPerGpu + } + return 0 +} + +func (x *JobUpdate) GetMemoryPerNode() uint32 { + if x != nil { + return x.MemoryPerNode + } + return 0 +} + +func (x *JobUpdate) GetMinimumCpusPerNode() uint32 { + if x != nil { + return x.MinimumCpusPerNode + } + return 0 +} + +func (x *JobUpdate) GetMinimumNodes() bool { + if x != nil { + return x.MinimumNodes + } + return false +} + +func (x *JobUpdate) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *JobUpdate) GetNice() string { + if x != nil { + return x.Nice + } + return "" +} + +func (x *JobUpdate) GetNoKill() bool { + if x != nil { + return x.NoKill + } + return false +} + +func (x *JobUpdate) GetNodes() []uint32 { + if x != nil { + return x.Nodes + } + return nil +} + +func (x *JobUpdate) GetOpenMode() string { + if x != nil { + return x.OpenMode + } + return "" +} + +func (x *JobUpdate) GetPartition() string { + if x != nil { + return x.Partition + } + return "" +} + +func (x *JobUpdate) GetPriority() string { + if x != nil { + return x.Priority + } + return "" +} + +func (x *JobUpdate) GetQos() string { + if x != nil { + return x.Qos + } + return "" +} + +func (x *JobUpdate) GetRequeue() bool { + if x != nil { + return x.Requeue + } + return false +} + +func (x *JobUpdate) GetReservation() string { + if x != nil { + return x.Reservation + } + return "" +} + +func (x *JobUpdate) GetSignal() string { + if x != nil { + return x.Signal + } + return "" +} + +func (x *JobUpdate) GetSocketsPerNode() uint32 { + if x != nil { + return x.SocketsPerNode + } + return 0 +} + +func (x *JobUpdate) GetSpreadJob() bool { + if x != nil { + return x.SpreadJob + } + return false +} + +func (x *JobUpdate) GetStandardError() string { + if x != nil { + return x.StandardError + } + return "" +} + +func (x *JobUpdate) GetStandardInput() string { + if x != nil { + return x.StandardInput + } + return "" +} + +func (x *JobUpdate) GetStandardOutput() string { + if x != nil { + return x.StandardOutput + } + return "" +} + +func (x *JobUpdate) GetTasks() uint32 { + if x != nil { + return x.Tasks + } + return 0 +} + +func (x *JobUpdate) GetTasksPerCore() uint32 { + if x != nil { + return x.TasksPerCore + } + return 0 +} + +func (x *JobUpdate) GetTasksPerNode() uint32 { + if x != nil { + return x.TasksPerNode + } + return 0 +} + +func (x *JobUpdate) GetTasksPerSocket() uint32 { + if x != nil { + return x.TasksPerSocket + } + return 0 +} + +func (x *JobUpdate) GetThreadSpecification() uint32 { + if x != nil { + return x.ThreadSpecification + } + return 0 +} + +func (x *JobUpdate) GetThreadsPerCore() uint32 { + if x != nil { + return x.ThreadsPerCore + } + return 0 +} + +func (x *JobUpdate) GetTimeLimit() uint32 { + if x != nil { + return x.TimeLimit + } + return 0 +} + +func (x *JobUpdate) GetTimeMinimum() uint32 { + if x != nil { + return x.TimeMinimum + } + return 0 +} + +func (x *JobUpdate) GetWaitAllNodes() bool { + if x != nil { + return x.WaitAllNodes + } + return false +} + +func (x *JobUpdate) GetWckey() string { + if x != nil { + return x.Wckey + } + return "" +} + +type SubmitJobReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Script string `protobuf:"bytes,1,opt,name=script,proto3" json:"script,omitempty"` + Job *JobProperties `protobuf:"bytes,2,opt,name=job,proto3" json:"job,omitempty"` + Jobs []*JobProperties `protobuf:"bytes,3,rep,name=jobs,proto3" json:"jobs,omitempty"` +} + +func (x *SubmitJobReq) Reset() { + *x = SubmitJobReq{} + if protoimpl.UnsafeEnabled { + mi := &file_slurm_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SubmitJobReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SubmitJobReq) ProtoMessage() {} + +func (x *SubmitJobReq) ProtoReflect() protoreflect.Message { + mi := &file_slurm_proto_msgTypes[11] + 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 SubmitJobReq.ProtoReflect.Descriptor instead. +func (*SubmitJobReq) Descriptor() ([]byte, []int) { + return file_slurm_proto_rawDescGZIP(), []int{11} +} + +func (x *SubmitJobReq) GetScript() string { + if x != nil { + return x.Script + } + return "" +} + +func (x *SubmitJobReq) GetJob() *JobProperties { + if x != nil { + return x.Job + } + return nil +} + +func (x *SubmitJobReq) GetJobs() []*JobProperties { + if x != nil { + return x.Jobs + } + return nil +} + +type SubmitJobResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Errors []*Error `protobuf:"bytes,1,rep,name=errors,proto3" json:"errors,omitempty"` + JobId uint32 `protobuf:"varint,2,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"` + StepId string `protobuf:"bytes,3,opt,name=step_id,json=stepId,proto3" json:"step_id,omitempty"` + JobSubmitUserMsg string `protobuf:"bytes,4,opt,name=job_submit_user_msg,json=jobSubmitUserMsg,proto3" json:"job_submit_user_msg,omitempty"` +} + +func (x *SubmitJobResp) Reset() { + *x = SubmitJobResp{} + if protoimpl.UnsafeEnabled { + mi := &file_slurm_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SubmitJobResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SubmitJobResp) ProtoMessage() {} + +func (x *SubmitJobResp) ProtoReflect() protoreflect.Message { + mi := &file_slurm_proto_msgTypes[12] + 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 SubmitJobResp.ProtoReflect.Descriptor instead. +func (*SubmitJobResp) Descriptor() ([]byte, []int) { + return file_slurm_proto_rawDescGZIP(), []int{12} +} + +func (x *SubmitJobResp) GetErrors() []*Error { + if x != nil { + return x.Errors + } + return nil +} + +func (x *SubmitJobResp) GetJobId() uint32 { + if x != nil { + return x.JobId + } + return 0 +} + +func (x *SubmitJobResp) GetStepId() string { + if x != nil { + return x.StepId + } + return "" +} + +func (x *SubmitJobResp) GetJobSubmitUserMsg() string { + if x != nil { + return x.JobSubmitUserMsg + } + return "" +} + +type ListJobReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UpdateTime uint32 `protobuf:"varint,1,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` +} + +func (x *ListJobReq) Reset() { + *x = ListJobReq{} + if protoimpl.UnsafeEnabled { + mi := &file_slurm_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListJobReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListJobReq) ProtoMessage() {} + +func (x *ListJobReq) ProtoReflect() protoreflect.Message { + mi := &file_slurm_proto_msgTypes[13] + 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 ListJobReq.ProtoReflect.Descriptor instead. +func (*ListJobReq) Descriptor() ([]byte, []int) { + return file_slurm_proto_rawDescGZIP(), []int{13} +} + +func (x *ListJobReq) GetUpdateTime() uint32 { + if x != nil { + return x.UpdateTime + } + return 0 +} + +type ListJobResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Errors []*Error `protobuf:"bytes,1,rep,name=errors,proto3" json:"errors,omitempty"` + Jobs []*JobResponseProperties `protobuf:"bytes,2,rep,name=jobs,proto3" json:"jobs,omitempty"` +} + +func (x *ListJobResp) Reset() { + *x = ListJobResp{} + if protoimpl.UnsafeEnabled { + mi := &file_slurm_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListJobResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListJobResp) ProtoMessage() {} + +func (x *ListJobResp) ProtoReflect() protoreflect.Message { + mi := &file_slurm_proto_msgTypes[14] + 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 ListJobResp.ProtoReflect.Descriptor instead. +func (*ListJobResp) Descriptor() ([]byte, []int) { + return file_slurm_proto_rawDescGZIP(), []int{14} +} + +func (x *ListJobResp) GetErrors() []*Error { + if x != nil { + return x.Errors + } + return nil +} + +func (x *ListJobResp) GetJobs() []*JobResponseProperties { + if x != nil { + return x.Jobs + } + return nil +} + +type UpdateJobReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + JobUpdate *JobUpdate `protobuf:"bytes,1,opt,name=job_update,json=jobUpdate,proto3" json:"job_update,omitempty"` +} + +func (x *UpdateJobReq) Reset() { + *x = UpdateJobReq{} + if protoimpl.UnsafeEnabled { + mi := &file_slurm_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateJobReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateJobReq) ProtoMessage() {} + +func (x *UpdateJobReq) ProtoReflect() protoreflect.Message { + mi := &file_slurm_proto_msgTypes[15] + 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 UpdateJobReq.ProtoReflect.Descriptor instead. +func (*UpdateJobReq) Descriptor() ([]byte, []int) { + return file_slurm_proto_rawDescGZIP(), []int{15} +} + +func (x *UpdateJobReq) GetJobUpdate() *JobUpdate { + if x != nil { + return x.JobUpdate + } + return nil +} + +type UpdateJobResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *UpdateJobResp) Reset() { + *x = UpdateJobResp{} + if protoimpl.UnsafeEnabled { + mi := &file_slurm_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateJobResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateJobResp) ProtoMessage() {} + +func (x *UpdateJobResp) ProtoReflect() protoreflect.Message { + mi := &file_slurm_proto_msgTypes[16] + 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 UpdateJobResp.ProtoReflect.Descriptor instead. +func (*UpdateJobResp) Descriptor() ([]byte, []int) { + return file_slurm_proto_rawDescGZIP(), []int{16} +} + +type GetJobReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + JobId string `protobuf:"bytes,1,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"` +} + +func (x *GetJobReq) Reset() { + *x = GetJobReq{} + if protoimpl.UnsafeEnabled { + mi := &file_slurm_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetJobReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetJobReq) ProtoMessage() {} + +func (x *GetJobReq) ProtoReflect() protoreflect.Message { + mi := &file_slurm_proto_msgTypes[17] + 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 GetJobReq.ProtoReflect.Descriptor instead. +func (*GetJobReq) Descriptor() ([]byte, []int) { + return file_slurm_proto_rawDescGZIP(), []int{17} +} + +func (x *GetJobReq) GetJobId() string { + if x != nil { + return x.JobId + } + return "" +} + +type GetJobResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Jobs *Jobs `protobuf:"bytes,1,opt,name=jobs,proto3" json:"jobs,omitempty"` +} + +func (x *GetJobResp) Reset() { + *x = GetJobResp{} + if protoimpl.UnsafeEnabled { + mi := &file_slurm_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetJobResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetJobResp) ProtoMessage() {} + +func (x *GetJobResp) ProtoReflect() protoreflect.Message { + mi := &file_slurm_proto_msgTypes[18] + 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 GetJobResp.ProtoReflect.Descriptor instead. +func (*GetJobResp) Descriptor() ([]byte, []int) { + return file_slurm_proto_rawDescGZIP(), []int{18} +} + +func (x *GetJobResp) GetJobs() *Jobs { + if x != nil { + return x.Jobs + } + return nil +} + +var File_slurm_proto protoreflect.FileDescriptor + +var file_slurm_proto_rawDesc = []byte{ + 0x0a, 0x0b, 0x73, 0x6c, 0x75, 0x72, 0x6d, 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, + 0xb6, 0x01, 0x0a, 0x0d, 0x4a, 0x6f, 0x62, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x73, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x6c, 0x6c, 0x6f, 0x63, + 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x70, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x65, 0x64, 0x43, 0x70, 0x75, 0x73, 0x12, 0x27, + 0x0a, 0x0f, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x68, 0x6f, 0x73, 0x74, + 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x65, 0x64, 0x48, 0x6f, 0x73, 0x74, 0x73, 0x12, 0x3f, 0x0a, 0x0f, 0x61, 0x6c, 0x6c, 0x6f, 0x63, + 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x16, 0x2e, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x2e, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x65, 0x64, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x0e, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x22, 0xa1, 0x13, 0x0a, 0x0e, 0x6a, 0x6f, 0x62, + 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 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, 0x38, 0x0a, 0x18, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x5f, 0x67, 0x61, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x47, 0x61, 0x74, 0x68, 0x65, 0x72, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x12, + 0x12, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x76, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x61, + 0x72, 0x67, 0x76, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x72, 0x72, 0x61, 0x79, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x61, 0x72, 0x72, 0x61, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x62, 0x61, 0x74, + 0x63, 0x68, 0x5f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0d, 0x62, 0x61, 0x74, 0x63, 0x68, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, + 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x21, 0x0a, 0x0c, 0x62, 0x75, 0x72, 0x73, 0x74, 0x5f, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x62, 0x75, 0x72, 0x73, 0x74, 0x42, 0x75, 0x66, 0x66, + 0x65, 0x72, 0x12, 0x2d, 0x0a, 0x12, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6f, + 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, + 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x63, + 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x2d, 0x0a, + 0x12, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x63, 0x6f, 0x72, 0x65, 0x53, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x10, + 0x63, 0x6f, 0x72, 0x65, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x50, 0x65, 0x72, + 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x70, 0x75, 0x5f, 0x62, 0x69, + 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x70, 0x75, + 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x28, 0x0a, 0x10, 0x63, 0x70, 0x75, 0x5f, 0x62, + 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x69, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0e, 0x63, 0x70, 0x75, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x48, 0x69, 0x6e, + 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x70, 0x75, 0x5f, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x63, 0x79, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x70, 0x75, 0x46, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x20, 0x0a, 0x0c, 0x63, 0x70, 0x75, 0x73, 0x5f, 0x70, + 0x65, 0x72, 0x5f, 0x67, 0x70, 0x75, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x70, + 0x75, 0x73, 0x50, 0x65, 0x72, 0x47, 0x70, 0x75, 0x12, 0x22, 0x0a, 0x0d, 0x63, 0x70, 0x75, 0x73, + 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0b, 0x63, 0x70, 0x75, 0x73, 0x50, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x3a, 0x0a, 0x19, + 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x5f, + 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x17, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x44, + 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x65, 0x61, 0x64, + 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x65, 0x61, 0x64, + 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x62, 0x6f, + 0x6f, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x42, + 0x6f, 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, + 0x79, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, + 0x6e, 0x63, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x69, 0x73, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x0a, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, + 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, + 0x6c, 0x75, 0x72, 0x6d, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x52, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, + 0x09, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x67, + 0x65, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x67, 0x65, 0x74, 0x55, 0x73, + 0x65, 0x72, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, + 0x04, 0x67, 0x72, 0x65, 0x73, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x67, 0x72, 0x65, + 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x72, 0x65, 0x73, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, + 0x1b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x65, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x73, + 0x12, 0x1f, 0x0a, 0x0b, 0x67, 0x70, 0x75, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x18, + 0x1c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x67, 0x70, 0x75, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x12, 0x23, 0x0a, 0x0d, 0x67, 0x70, 0x75, 0x5f, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x63, 0x79, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x67, 0x70, 0x75, 0x46, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x70, 0x75, 0x73, 0x18, 0x1e, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x67, 0x70, 0x75, 0x73, 0x12, 0x22, 0x0a, 0x0d, 0x67, 0x70, + 0x75, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x67, 0x70, 0x75, 0x73, 0x50, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x26, + 0x0a, 0x0f, 0x67, 0x70, 0x75, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x6f, 0x63, 0x6b, 0x65, + 0x74, 0x18, 0x20, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x67, 0x70, 0x75, 0x73, 0x50, 0x65, 0x72, + 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x22, 0x0a, 0x0d, 0x67, 0x70, 0x75, 0x73, 0x5f, 0x70, + 0x65, 0x72, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x18, 0x21, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x67, + 0x70, 0x75, 0x73, 0x50, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, + 0x6c, 0x64, 0x18, 0x22, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x3b, + 0x0a, 0x1a, 0x6b, 0x69, 0x6c, 0x6c, 0x5f, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x5f, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x23, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x17, 0x6b, 0x69, 0x6c, 0x6c, 0x4f, 0x6e, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x6c, + 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x24, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, + 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x69, 0x6c, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x25, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x69, 0x6c, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x75, 0x73, 0x65, + 0x72, 0x18, 0x26, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x69, 0x6c, 0x55, 0x73, 0x65, + 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x63, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x27, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x63, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x25, + 0x0a, 0x0e, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x18, 0x28, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x42, 0x69, + 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, + 0x70, 0x65, 0x72, 0x5f, 0x63, 0x70, 0x75, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6d, + 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x50, 0x65, 0x72, 0x43, 0x70, 0x75, 0x12, 0x24, 0x0a, 0x0e, 0x6d, + 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x67, 0x70, 0x75, 0x18, 0x2a, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x50, 0x65, 0x72, 0x47, 0x70, + 0x75, 0x12, 0x26, 0x0a, 0x0f, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x70, 0x65, 0x72, 0x5f, + 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6d, 0x65, 0x6d, 0x6f, + 0x72, 0x79, 0x50, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x31, 0x0a, 0x15, 0x6d, 0x69, 0x6e, + 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x63, 0x70, 0x75, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6e, 0x6f, + 0x64, 0x65, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, + 0x6d, 0x43, 0x70, 0x75, 0x73, 0x50, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x23, 0x0a, 0x0d, + 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x2d, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0c, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x4e, 0x6f, 0x64, 0x65, + 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x69, 0x63, 0x65, 0x18, 0x2f, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x69, 0x63, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x6f, 0x5f, + 0x6b, 0x69, 0x6c, 0x6c, 0x18, 0x30, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x6e, 0x6f, 0x4b, 0x69, + 0x6c, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x31, 0x20, 0x03, 0x28, + 0x0d, 0x52, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6f, 0x70, 0x65, 0x6e, + 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x32, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65, + 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x33, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, + 0x34, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, + 0x10, 0x0a, 0x03, 0x71, 0x6f, 0x73, 0x18, 0x35, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x71, 0x6f, + 0x73, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x75, 0x65, 0x18, 0x36, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x75, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x72, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x37, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, + 0x06, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x18, 0x38, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, + 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x12, 0x28, 0x0a, 0x10, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x73, + 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x39, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0e, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x50, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x12, + 0x1d, 0x0a, 0x0a, 0x73, 0x70, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6a, 0x6f, 0x62, 0x18, 0x3a, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x09, 0x73, 0x70, 0x72, 0x65, 0x61, 0x64, 0x4a, 0x6f, 0x62, 0x12, 0x25, + 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x18, 0x3b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, + 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, + 0x64, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, + 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x27, 0x0a, 0x0f, + 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, + 0x3d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x4f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x3e, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x74, + 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x3f, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x50, 0x65, 0x72, 0x43, 0x6f, 0x72, + 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6e, + 0x6f, 0x64, 0x65, 0x18, 0x40, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x74, 0x61, 0x73, 0x6b, 0x73, + 0x50, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x74, 0x61, 0x73, 0x6b, 0x73, + 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x41, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x50, 0x65, 0x72, 0x53, 0x6f, 0x63, 0x6b, 0x65, + 0x74, 0x12, 0x31, 0x0a, 0x14, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x42, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x13, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x10, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x5f, + 0x70, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x43, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, + 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x50, 0x65, 0x72, 0x43, 0x6f, 0x72, 0x65, 0x12, 0x1d, + 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x44, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x21, 0x0a, + 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x45, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, + 0x12, 0x24, 0x0a, 0x0e, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x6e, 0x6f, 0x64, + 0x65, 0x73, 0x18, 0x46, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x77, 0x61, 0x69, 0x74, 0x41, 0x6c, + 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x63, 0x6b, 0x65, 0x79, 0x18, + 0x47, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x77, 0x63, 0x6b, 0x65, 0x79, 0x22, 0xc6, 0x1d, 0x0a, + 0x17, 0x6a, 0x6f, 0x62, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x70, 0x72, + 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 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, 0x1f, 0x0a, 0x0b, 0x61, 0x63, 0x63, 0x72, 0x75, 0x65, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x61, 0x63, 0x63, 0x72, 0x75, 0x65, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x63, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0c, 0x61, 0x72, 0x72, 0x61, + 0x79, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x61, 0x72, 0x72, 0x61, 0x79, 0x4a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0d, 0x61, 0x72, + 0x72, 0x61, 0x79, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x61, 0x72, 0x72, 0x61, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x26, + 0x0a, 0x0f, 0x61, 0x72, 0x72, 0x61, 0x79, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x61, 0x73, 0x6b, + 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x72, 0x72, 0x61, 0x79, 0x4d, 0x61, + 0x78, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x61, 0x72, 0x72, 0x61, 0x79, 0x5f, + 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0f, 0x61, 0x72, 0x72, 0x61, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x73, 0x73, 0x6f, + 0x63, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x62, 0x61, 0x74, + 0x63, 0x68, 0x5f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0d, 0x62, 0x61, 0x74, 0x63, 0x68, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, + 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x62, 0x61, 0x74, 0x63, 0x68, 0x46, 0x6c, 0x61, 0x67, 0x12, + 0x1d, 0x0a, 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x61, 0x74, 0x63, 0x68, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x14, + 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x66, + 0x6c, 0x61, 0x67, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x75, 0x72, 0x73, 0x74, 0x5f, 0x62, 0x75, + 0x66, 0x66, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x62, 0x75, 0x72, 0x73, + 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x12, 0x62, 0x75, 0x72, 0x73, 0x74, + 0x5f, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x10, 0x62, 0x75, 0x72, 0x73, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, + 0x29, 0x0a, 0x10, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x66, 0x65, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, + 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, + 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1e, + 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x67, 0x75, 0x6f, 0x75, 0x73, 0x18, 0x13, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x67, 0x75, 0x6f, 0x75, 0x73, 0x12, 0x1b, + 0x0a, 0x09, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x14, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x1f, 0x0a, 0x0b, 0x74, + 0x68, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x53, 0x70, 0x65, 0x63, 0x12, 0x28, 0x0a, 0x10, + 0x63, 0x6f, 0x72, 0x65, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, + 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x50, 0x65, 0x72, + 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x69, 0x6c, 0x6c, 0x61, 0x62, + 0x6c, 0x65, 0x5f, 0x74, 0x72, 0x65, 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x62, + 0x69, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0d, 0x63, + 0x70, 0x75, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x18, 0x18, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x63, 0x70, 0x75, 0x73, 0x50, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x12, + 0x32, 0x0a, 0x15, 0x63, 0x70, 0x75, 0x5f, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, + 0x5f, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, + 0x63, 0x70, 0x75, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x4d, 0x69, 0x6e, 0x69, + 0x6d, 0x75, 0x6d, 0x12, 0x32, 0x0a, 0x15, 0x63, 0x70, 0x75, 0x5f, 0x66, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x1a, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x13, 0x63, 0x70, 0x75, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, + 0x4d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x12, 0x34, 0x0a, 0x16, 0x63, 0x70, 0x75, 0x5f, 0x66, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, + 0x72, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x63, 0x70, 0x75, 0x46, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x79, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x12, 0x22, 0x0a, + 0x0d, 0x63, 0x70, 0x75, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x74, 0x72, 0x65, 0x73, 0x18, 0x1c, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x70, 0x75, 0x73, 0x50, 0x65, 0x72, 0x54, 0x72, 0x65, + 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x1d, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x1d, 0x0a, + 0x0a, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x62, 0x6f, 0x6f, 0x74, 0x18, 0x1e, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x42, 0x6f, 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, + 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x2a, 0x0a, 0x11, + 0x64, 0x65, 0x72, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x64, + 0x65, 0x18, 0x20, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x65, 0x64, + 0x45, 0x78, 0x69, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x6c, 0x69, 0x67, + 0x69, 0x62, 0x6c, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0c, 0x65, 0x6c, 0x69, 0x67, 0x69, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, + 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x63, 0x6c, + 0x75, 0x64, 0x65, 0x64, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x23, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, + 0x1b, 0x0a, 0x09, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x24, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x08, 0x65, 0x78, 0x69, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, + 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x25, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x66, 0x65, 0x64, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x26, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x10, 0x66, 0x65, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, + 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x3c, 0x0a, 0x1a, 0x66, 0x65, 0x64, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x62, 0x6c, 0x69, 0x6e, 0x67, 0x73, 0x5f, 0x61, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x18, 0x27, 0x20, 0x01, 0x28, 0x09, 0x52, 0x18, 0x66, 0x65, 0x64, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x62, 0x6c, 0x69, 0x6e, 0x67, 0x73, 0x41, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x12, 0x3c, 0x0a, 0x1a, 0x66, 0x65, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x73, 0x69, 0x62, 0x6c, 0x69, 0x6e, 0x67, 0x73, 0x5f, 0x76, 0x69, 0x61, 0x62, 0x6c, + 0x65, 0x18, 0x28, 0x20, 0x01, 0x28, 0x09, 0x52, 0x18, 0x66, 0x65, 0x64, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x62, 0x6c, 0x69, 0x6e, 0x67, 0x73, 0x56, 0x69, 0x61, 0x62, 0x6c, + 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x67, 0x72, 0x65, 0x73, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x18, 0x29, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x67, 0x72, 0x65, 0x73, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x2a, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x15, 0x0a, + 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6a, + 0x6f, 0x62, 0x49, 0x64, 0x12, 0x39, 0x0a, 0x0d, 0x6a, 0x6f, 0x62, 0x5f, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x6c, + 0x75, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x73, 0x52, 0x0c, 0x6a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, + 0x1b, 0x0a, 0x09, 0x6a, 0x6f, 0x62, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x2d, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x6a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x32, 0x0a, 0x15, + 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x65, 0x76, 0x61, 0x6c, 0x75, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6c, 0x61, 0x73, + 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x2f, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, + 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x70, 0x75, 0x73, 0x18, 0x30, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x6d, 0x61, 0x78, 0x43, 0x70, 0x75, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x6e, + 0x6f, 0x64, 0x65, 0x73, 0x18, 0x31, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x4e, + 0x6f, 0x64, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x63, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x18, 0x32, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x63, 0x73, 0x4c, 0x61, 0x62, 0x65, + 0x6c, 0x12, 0x26, 0x0a, 0x0f, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x70, 0x65, 0x72, 0x5f, + 0x74, 0x72, 0x65, 0x73, 0x18, 0x33, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6d, 0x65, 0x6d, 0x6f, + 0x72, 0x79, 0x50, 0x65, 0x72, 0x54, 0x72, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x34, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, + 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x35, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, + 0x64, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x69, 0x63, 0x65, 0x18, 0x36, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x69, 0x63, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x74, 0x61, 0x73, 0x6b, 0x73, + 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x37, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0c, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x50, 0x65, 0x72, 0x43, 0x6f, 0x72, 0x65, 0x12, 0x28, 0x0a, + 0x10, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x6f, 0x63, 0x6b, 0x65, + 0x74, 0x18, 0x38, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x50, 0x65, + 0x72, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x61, 0x73, 0x6b, 0x73, + 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x18, 0x39, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x50, 0x65, 0x72, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x12, + 0x12, 0x0a, 0x04, 0x63, 0x70, 0x75, 0x73, 0x18, 0x3a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, + 0x70, 0x75, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x3c, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x1c, 0x0a, 0x0a, 0x68, 0x65, 0x74, 0x5f, + 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x65, + 0x74, 0x4a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0e, 0x68, 0x65, 0x74, 0x5f, 0x6a, 0x6f, + 0x62, 0x5f, 0x69, 0x64, 0x5f, 0x73, 0x65, 0x74, 0x18, 0x3e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x68, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x49, 0x64, 0x53, 0x65, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x68, + 0x65, 0x74, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x3f, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x68, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x4f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x40, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x26, 0x0a, 0x0f, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6e, 0x6f, + 0x64, 0x65, 0x18, 0x41, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, + 0x50, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x65, 0x6d, 0x6f, 0x72, + 0x79, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x63, 0x70, 0x75, 0x18, 0x42, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0c, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x50, 0x65, 0x72, 0x43, 0x70, 0x75, 0x12, 0x31, 0x0a, + 0x15, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x63, 0x70, 0x75, 0x73, 0x5f, 0x70, 0x65, + 0x72, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x43, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6d, 0x69, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x43, 0x70, 0x75, 0x73, 0x50, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, + 0x12, 0x38, 0x0a, 0x19, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x74, 0x6d, 0x70, 0x5f, + 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x44, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x15, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x54, 0x6d, 0x70, 0x44, + 0x69, 0x73, 0x6b, 0x50, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, + 0x65, 0x65, 0x6d, 0x70, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x45, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0b, 0x70, 0x72, 0x65, 0x65, 0x6d, 0x70, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, + 0x0c, 0x70, 0x72, 0x65, 0x5f, 0x73, 0x75, 0x73, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x46, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x53, 0x75, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x47, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x70, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x48, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x71, 0x6f, 0x73, 0x18, 0x49, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x71, 0x6f, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x62, 0x6f, 0x6f, + 0x74, 0x18, 0x4a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x72, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x12, + 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x6e, 0x6f, 0x64, 0x65, + 0x73, 0x18, 0x4b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, + 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x75, + 0x65, 0x18, 0x4c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x75, 0x65, + 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x4d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x63, 0x6e, 0x74, + 0x18, 0x4e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x43, + 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x4f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x73, 0x76, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x16, 0x0a, 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x18, 0x50, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x68, 0x6f, 0x77, 0x5f, + 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x51, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x73, 0x68, 0x6f, + 0x77, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, + 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x18, 0x52, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0f, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x50, 0x65, 0x72, 0x42, 0x6f, 0x61, + 0x72, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x70, 0x65, + 0x72, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x53, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x6f, + 0x63, 0x6b, 0x65, 0x74, 0x73, 0x50, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x1d, 0x0a, 0x0a, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x54, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x55, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x74, 0x61, 0x74, 0x65, 0x44, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x56, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x73, + 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x57, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x45, 0x72, 0x72, + 0x6f, 0x72, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x5f, 0x69, + 0x6e, 0x70, 0x75, 0x74, 0x18, 0x58, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x6e, + 0x64, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x74, 0x61, + 0x6e, 0x64, 0x61, 0x72, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x59, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0e, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x4f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x18, 0x5a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x18, 0x5b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x73, 0x75, 0x73, 0x70, 0x65, + 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, + 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x5c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1d, 0x0a, + 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x5d, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x21, 0x0a, 0x0c, + 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x5e, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x12, + 0x28, 0x0a, 0x10, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x63, + 0x6f, 0x72, 0x65, 0x18, 0x5f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, 0x68, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x50, 0x65, 0x72, 0x43, 0x6f, 0x72, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x72, 0x65, + 0x73, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x18, 0x60, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x72, + 0x65, 0x73, 0x42, 0x69, 0x6e, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x72, 0x65, 0x73, 0x5f, 0x66, + 0x72, 0x65, 0x71, 0x18, 0x61, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x72, 0x65, 0x73, 0x46, + 0x72, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0c, 0x74, 0x72, 0x65, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, + 0x6a, 0x6f, 0x62, 0x18, 0x62, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x72, 0x65, 0x73, 0x50, + 0x65, 0x72, 0x4a, 0x6f, 0x62, 0x12, 0x22, 0x0a, 0x0d, 0x74, 0x72, 0x65, 0x73, 0x5f, 0x70, 0x65, + 0x72, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x63, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x72, + 0x65, 0x73, 0x50, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x72, 0x65, + 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x64, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0d, 0x74, 0x72, 0x65, 0x73, 0x50, 0x65, 0x72, 0x53, 0x6f, 0x63, 0x6b, 0x65, + 0x74, 0x12, 0x22, 0x0a, 0x0d, 0x74, 0x72, 0x65, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x74, 0x61, + 0x73, 0x6b, 0x18, 0x65, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x72, 0x65, 0x73, 0x50, 0x65, + 0x72, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x20, 0x0a, 0x0c, 0x74, 0x72, 0x65, 0x73, 0x5f, 0x72, 0x65, + 0x71, 0x5f, 0x73, 0x74, 0x72, 0x18, 0x66, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x72, 0x65, + 0x73, 0x52, 0x65, 0x71, 0x53, 0x74, 0x72, 0x12, 0x24, 0x0a, 0x0e, 0x74, 0x72, 0x65, 0x73, 0x5f, + 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x5f, 0x73, 0x74, 0x72, 0x18, 0x67, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0c, 0x74, 0x72, 0x65, 0x73, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x53, 0x74, 0x72, 0x12, 0x17, 0x0a, + 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x68, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x69, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x63, 0x6b, 0x65, 0x79, 0x18, 0x6a, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x77, 0x63, 0x6b, 0x65, 0x79, 0x12, 0x3a, 0x0a, 0x19, 0x63, 0x75, 0x72, + 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x6b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x63, 0x75, + 0x72, 0x72, 0x65, 0x6e, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x44, 0x69, 0x72, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x79, 0x22, 0xb3, 0x1d, 0x0a, 0x04, 0x4a, 0x6f, 0x62, 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, 0x1f, 0x0a, 0x0b, 0x61, 0x63, 0x63, 0x72, + 0x75, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x61, + 0x63, 0x63, 0x72, 0x75, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0c, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x20, + 0x0a, 0x0c, 0x61, 0x72, 0x72, 0x61, 0x79, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x72, 0x61, 0x79, 0x4a, 0x6f, 0x62, 0x49, 0x64, + 0x12, 0x22, 0x0a, 0x0d, 0x61, 0x72, 0x72, 0x61, 0x79, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, + 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x72, 0x61, 0x79, 0x54, 0x61, + 0x73, 0x6b, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x61, 0x72, 0x72, 0x61, 0x79, 0x5f, 0x6d, 0x61, + 0x78, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, + 0x72, 0x72, 0x61, 0x79, 0x4d, 0x61, 0x78, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x2a, 0x0a, 0x11, + 0x61, 0x72, 0x72, 0x61, 0x79, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x72, 0x72, 0x61, 0x79, 0x54, 0x61, + 0x73, 0x6b, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x73, 0x73, 0x6f, + 0x63, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, + 0x25, 0x0a, 0x0e, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x62, 0x61, 0x74, 0x63, 0x68, 0x46, 0x65, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, + 0x66, 0x6c, 0x61, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x62, 0x61, 0x74, 0x63, + 0x68, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x68, + 0x6f, 0x73, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x61, 0x74, 0x63, 0x68, + 0x48, 0x6f, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x0c, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x75, + 0x72, 0x73, 0x74, 0x5f, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x62, 0x75, 0x72, 0x73, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x12, 0x2c, 0x0a, + 0x12, 0x62, 0x75, 0x72, 0x73, 0x74, 0x5f, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x62, 0x75, 0x72, 0x73, 0x74, + 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x5f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, + 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, + 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x67, 0x75, 0x6f, + 0x75, 0x73, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x67, + 0x75, 0x6f, 0x75, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x73, 0x70, 0x65, + 0x63, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x70, 0x65, + 0x63, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x73, 0x70, 0x65, 0x63, + 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x53, 0x70, + 0x65, 0x63, 0x12, 0x28, 0x0a, 0x10, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, + 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, + 0x72, 0x65, 0x73, 0x50, 0x65, 0x72, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x23, 0x0a, 0x0d, + 0x62, 0x69, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x74, 0x72, 0x65, 0x73, 0x18, 0x17, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x62, 0x69, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x65, + 0x73, 0x12, 0x22, 0x0a, 0x0d, 0x63, 0x70, 0x75, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x74, 0x61, + 0x73, 0x6b, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x70, 0x75, 0x73, 0x50, 0x65, + 0x72, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x32, 0x0a, 0x15, 0x63, 0x70, 0x75, 0x5f, 0x66, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x19, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x63, 0x70, 0x75, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x63, 0x79, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x12, 0x32, 0x0a, 0x15, 0x63, 0x70, 0x75, + 0x5f, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6d, 0x61, 0x78, 0x69, 0x6d, + 0x75, 0x6d, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x63, 0x70, 0x75, 0x46, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x4d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x12, 0x34, 0x0a, + 0x16, 0x63, 0x70, 0x75, 0x5f, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x67, + 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x63, + 0x70, 0x75, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x47, 0x6f, 0x76, 0x65, 0x72, + 0x6e, 0x6f, 0x72, 0x12, 0x22, 0x0a, 0x0d, 0x63, 0x70, 0x75, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, + 0x74, 0x72, 0x65, 0x73, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x70, 0x75, 0x73, + 0x50, 0x65, 0x72, 0x54, 0x72, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x65, 0x61, 0x64, 0x6c, + 0x69, 0x6e, 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x65, 0x61, 0x64, 0x6c, + 0x69, 0x6e, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x62, 0x6f, 0x6f, + 0x74, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x42, 0x6f, + 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, + 0x18, 0x1f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, + 0x63, 0x79, 0x12, 0x2a, 0x0a, 0x11, 0x64, 0x65, 0x72, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x65, 0x78, + 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x20, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, + 0x65, 0x72, 0x69, 0x76, 0x65, 0x64, 0x45, 0x78, 0x69, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x23, + 0x0a, 0x0d, 0x65, 0x6c, 0x69, 0x67, 0x69, 0x62, 0x6c, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x21, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x65, 0x6c, 0x69, 0x67, 0x69, 0x62, 0x6c, 0x65, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x22, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x25, + 0x0a, 0x0e, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x73, + 0x18, 0x23, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, + 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x63, 0x6f, + 0x64, 0x65, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x65, 0x78, 0x69, 0x74, 0x43, 0x6f, + 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x25, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x2b, + 0x0a, 0x11, 0x66, 0x65, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x72, 0x69, + 0x67, 0x69, 0x6e, 0x18, 0x26, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x66, 0x65, 0x64, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x3c, 0x0a, 0x1a, 0x66, + 0x65, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x62, 0x6c, 0x69, 0x6e, + 0x67, 0x73, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x27, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x18, 0x66, 0x65, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x62, 0x6c, 0x69, + 0x6e, 0x67, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x3c, 0x0a, 0x1a, 0x66, 0x65, 0x64, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x62, 0x6c, 0x69, 0x6e, 0x67, 0x73, + 0x5f, 0x76, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x28, 0x20, 0x01, 0x28, 0x09, 0x52, 0x18, 0x66, + 0x65, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x62, 0x6c, 0x69, 0x6e, 0x67, + 0x73, 0x56, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x67, 0x72, 0x65, 0x73, 0x5f, + 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x29, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x67, 0x72, + 0x65, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x5f, 0x69, 0x64, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x49, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x2b, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x39, 0x0a, 0x0d, 0x6a, 0x6f, + 0x62, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x2c, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x5f, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x0c, 0x6a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6a, 0x6f, 0x62, 0x5f, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6a, 0x6f, 0x62, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x12, 0x32, 0x0a, 0x15, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, + 0x5f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x2e, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x13, 0x6c, 0x61, 0x73, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x45, 0x76, 0x61, 0x6c, + 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, + 0x65, 0x73, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, + 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x70, 0x75, 0x73, 0x18, 0x30, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x61, 0x78, 0x43, 0x70, 0x75, 0x73, 0x12, 0x1b, 0x0a, + 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x31, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x6d, 0x61, 0x78, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x63, + 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x32, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, + 0x63, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x26, 0x0a, 0x0f, 0x6d, 0x65, 0x6d, 0x6f, 0x72, + 0x79, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x74, 0x72, 0x65, 0x73, 0x18, 0x33, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x50, 0x65, 0x72, 0x54, 0x72, 0x65, 0x73, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x34, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x35, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x69, 0x63, + 0x65, 0x18, 0x36, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x69, 0x63, 0x65, 0x12, 0x24, 0x0a, + 0x0e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x18, + 0x37, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x50, 0x65, 0x72, 0x43, + 0x6f, 0x72, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x70, 0x65, 0x72, + 0x5f, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x38, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, + 0x61, 0x73, 0x6b, 0x73, 0x50, 0x65, 0x72, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x26, 0x0a, + 0x0f, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x62, 0x6f, 0x61, 0x72, 0x64, + 0x18, 0x39, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x50, 0x65, 0x72, + 0x42, 0x6f, 0x61, 0x72, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x70, 0x75, 0x73, 0x18, 0x3a, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x70, 0x75, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x6e, 0x6f, 0x64, + 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, + 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x61, 0x73, 0x6b, + 0x73, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x1c, + 0x0a, 0x0a, 0x68, 0x65, 0x74, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x3d, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x68, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0e, + 0x68, 0x65, 0x74, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x5f, 0x73, 0x65, 0x74, 0x18, 0x3e, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x68, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x49, 0x64, 0x53, 0x65, + 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x68, 0x65, 0x74, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x18, 0x3f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x68, 0x65, 0x74, 0x4a, 0x6f, + 0x62, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x61, 0x72, 0x74, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x40, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x72, 0x74, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0f, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, + 0x70, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x41, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x50, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x24, 0x0a, + 0x0e, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x63, 0x70, 0x75, 0x18, + 0x42, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x50, 0x65, 0x72, + 0x43, 0x70, 0x75, 0x12, 0x31, 0x0a, 0x15, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x63, + 0x70, 0x75, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x43, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x12, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x43, 0x70, 0x75, 0x73, 0x50, + 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x38, 0x0a, 0x19, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, + 0x6d, 0x5f, 0x74, 0x6d, 0x70, 0x5f, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6e, + 0x6f, 0x64, 0x65, 0x18, 0x44, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x6d, 0x69, 0x6e, 0x69, 0x6d, + 0x75, 0x6d, 0x54, 0x6d, 0x70, 0x44, 0x69, 0x73, 0x6b, 0x50, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, + 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x65, 0x65, 0x6d, 0x70, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x45, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x70, 0x72, 0x65, 0x65, 0x6d, 0x70, 0x74, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0c, 0x70, 0x72, 0x65, 0x5f, 0x73, 0x75, 0x73, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x18, 0x46, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x53, 0x75, + 0x73, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, + 0x79, 0x18, 0x47, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, + 0x79, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x48, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x71, + 0x6f, 0x73, 0x18, 0x49, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x71, 0x6f, 0x73, 0x12, 0x16, 0x0a, + 0x06, 0x72, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x18, 0x4a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x72, + 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, + 0x64, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x4b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, + 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x75, 0x65, 0x18, 0x4c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x75, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x65, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x4d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x72, 0x65, 0x73, + 0x69, 0x7a, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x5f, 0x63, 0x6e, 0x74, 0x18, 0x4e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x76, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x4f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x73, + 0x76, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x18, + 0x50, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x12, 0x1d, 0x0a, + 0x0a, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x51, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x09, 0x73, 0x68, 0x6f, 0x77, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x2a, 0x0a, 0x11, + 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x62, 0x6f, 0x61, 0x72, + 0x64, 0x18, 0x52, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x73, + 0x50, 0x65, 0x72, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x73, 0x6f, 0x63, 0x6b, + 0x65, 0x74, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x53, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0e, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x50, 0x65, 0x72, 0x4e, 0x6f, + 0x64, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x54, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x55, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, + 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x56, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, + 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x5f, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x18, 0x57, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x6e, 0x64, + 0x61, 0x72, 0x64, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x6e, + 0x64, 0x61, 0x72, 0x64, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x58, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, + 0x27, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x18, 0x59, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, + 0x72, 0x64, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x75, 0x62, 0x6d, + 0x69, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x5a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, + 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x75, 0x73, + 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x5b, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0b, 0x73, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, + 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x5c, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x6f, 0x6d, 0x6d, + 0x65, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, + 0x74, 0x18, 0x5d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x4c, 0x69, 0x6d, + 0x69, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6d, 0x69, 0x6e, 0x69, 0x6d, + 0x75, 0x6d, 0x18, 0x5e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x4d, 0x69, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x12, 0x28, 0x0a, 0x10, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x5f, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0e, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x50, 0x65, 0x72, 0x43, 0x6f, 0x72, 0x65, 0x12, + 0x1b, 0x0a, 0x09, 0x74, 0x72, 0x65, 0x73, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x18, 0x60, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x74, 0x72, 0x65, 0x73, 0x42, 0x69, 0x6e, 0x64, 0x12, 0x1b, 0x0a, 0x09, + 0x74, 0x72, 0x65, 0x73, 0x5f, 0x66, 0x72, 0x65, 0x71, 0x18, 0x61, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x74, 0x72, 0x65, 0x73, 0x46, 0x72, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0c, 0x74, 0x72, 0x65, + 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6a, 0x6f, 0x62, 0x18, 0x62, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x74, 0x72, 0x65, 0x73, 0x50, 0x65, 0x72, 0x4a, 0x6f, 0x62, 0x12, 0x22, 0x0a, 0x0d, 0x74, + 0x72, 0x65, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x63, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x74, 0x72, 0x65, 0x73, 0x50, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x12, + 0x26, 0x0a, 0x0f, 0x74, 0x72, 0x65, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x6f, 0x63, 0x6b, + 0x65, 0x74, 0x18, 0x64, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x72, 0x65, 0x73, 0x50, 0x65, + 0x72, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x22, 0x0a, 0x0d, 0x74, 0x72, 0x65, 0x73, 0x5f, + 0x70, 0x65, 0x72, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x18, 0x65, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x74, 0x72, 0x65, 0x73, 0x50, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x20, 0x0a, 0x0c, 0x74, + 0x72, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x71, 0x5f, 0x73, 0x74, 0x72, 0x18, 0x66, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x74, 0x72, 0x65, 0x73, 0x52, 0x65, 0x71, 0x53, 0x74, 0x72, 0x12, 0x24, 0x0a, + 0x0e, 0x74, 0x72, 0x65, 0x73, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x5f, 0x73, 0x74, 0x72, 0x18, + 0x67, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x72, 0x65, 0x73, 0x41, 0x6c, 0x6c, 0x6f, 0x63, + 0x53, 0x74, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x68, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, + 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x69, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x63, 0x6b, + 0x65, 0x79, 0x18, 0x6a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x77, 0x63, 0x6b, 0x65, 0x79, 0x12, + 0x3a, 0x0a, 0x19, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x69, + 0x6e, 0x67, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x6b, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x17, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x69, + 0x6e, 0x67, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x22, 0x9d, 0x13, 0x0a, 0x0a, + 0x6a, 0x6f, 0x62, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 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, 0x38, 0x0a, 0x18, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, + 0x67, 0x61, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x47, + 0x61, 0x74, 0x68, 0x65, 0x72, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x12, + 0x0a, 0x04, 0x61, 0x72, 0x67, 0x76, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x61, 0x72, + 0x67, 0x76, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x72, 0x72, 0x61, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x61, 0x72, 0x72, 0x61, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x62, 0x61, 0x74, 0x63, + 0x68, 0x5f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x62, 0x61, 0x74, 0x63, 0x68, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, + 0x1d, 0x0a, 0x0a, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x09, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x21, + 0x0a, 0x0c, 0x62, 0x75, 0x72, 0x73, 0x74, 0x5f, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x62, 0x75, 0x72, 0x73, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, + 0x72, 0x12, 0x2d, 0x0a, 0x12, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, + 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, + 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, + 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x2d, 0x0a, 0x12, + 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x10, 0x63, + 0x6f, 0x72, 0x65, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x50, 0x65, 0x72, 0x53, + 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x70, 0x75, 0x5f, 0x62, 0x69, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x70, 0x75, 0x42, + 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x28, 0x0a, 0x10, 0x63, 0x70, 0x75, 0x5f, 0x62, 0x69, + 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x69, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0e, 0x63, 0x70, 0x75, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x48, 0x69, 0x6e, 0x74, + 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x70, 0x75, 0x5f, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x79, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x70, 0x75, 0x46, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x20, 0x0a, 0x0c, 0x63, 0x70, 0x75, 0x73, 0x5f, 0x70, 0x65, + 0x72, 0x5f, 0x67, 0x70, 0x75, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x70, 0x75, + 0x73, 0x50, 0x65, 0x72, 0x47, 0x70, 0x75, 0x12, 0x22, 0x0a, 0x0d, 0x63, 0x70, 0x75, 0x73, 0x5f, + 0x70, 0x65, 0x72, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, + 0x63, 0x70, 0x75, 0x73, 0x50, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x3a, 0x0a, 0x19, 0x63, + 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x64, + 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, + 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x44, 0x69, + 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x65, 0x61, 0x64, 0x6c, + 0x69, 0x6e, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x65, 0x61, 0x64, 0x6c, + 0x69, 0x6e, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x62, 0x6f, 0x6f, + 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x42, 0x6f, + 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, + 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, + 0x63, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x0a, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x6c, + 0x75, 0x72, 0x6d, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, + 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, + 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x67, 0x65, + 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x67, 0x65, 0x74, 0x55, 0x73, 0x65, + 0x72, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, + 0x67, 0x72, 0x65, 0x73, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x67, 0x72, 0x65, 0x73, + 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x72, 0x65, 0x73, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x1b, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x65, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, + 0x1f, 0x0a, 0x0b, 0x67, 0x70, 0x75, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x1c, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x67, 0x70, 0x75, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x12, 0x23, 0x0a, 0x0d, 0x67, 0x70, 0x75, 0x5f, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x79, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x67, 0x70, 0x75, 0x46, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x70, 0x75, 0x73, 0x18, 0x1e, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x67, 0x70, 0x75, 0x73, 0x12, 0x22, 0x0a, 0x0d, 0x67, 0x70, 0x75, + 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x67, 0x70, 0x75, 0x73, 0x50, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x26, 0x0a, + 0x0f, 0x67, 0x70, 0x75, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, + 0x18, 0x20, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x67, 0x70, 0x75, 0x73, 0x50, 0x65, 0x72, 0x53, + 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x22, 0x0a, 0x0d, 0x67, 0x70, 0x75, 0x73, 0x5f, 0x70, 0x65, + 0x72, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x18, 0x21, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x67, 0x70, + 0x75, 0x73, 0x50, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x6c, + 0x64, 0x18, 0x22, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x3b, 0x0a, + 0x1a, 0x6b, 0x69, 0x6c, 0x6c, 0x5f, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x5f, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x23, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x17, 0x6b, 0x69, 0x6c, 0x6c, 0x4f, 0x6e, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x69, + 0x63, 0x65, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x24, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x69, + 0x63, 0x65, 0x6e, 0x73, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x25, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x69, 0x6c, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x75, 0x73, 0x65, 0x72, + 0x18, 0x26, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x69, 0x6c, 0x55, 0x73, 0x65, 0x72, + 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x63, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x27, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x63, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x25, 0x0a, + 0x0e, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x18, + 0x28, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x42, 0x69, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x70, + 0x65, 0x72, 0x5f, 0x63, 0x70, 0x75, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6d, 0x65, + 0x6d, 0x6f, 0x72, 0x79, 0x50, 0x65, 0x72, 0x43, 0x70, 0x75, 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x65, + 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x67, 0x70, 0x75, 0x18, 0x2a, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0c, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x50, 0x65, 0x72, 0x47, 0x70, 0x75, + 0x12, 0x26, 0x0a, 0x0f, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6e, + 0x6f, 0x64, 0x65, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6d, 0x65, 0x6d, 0x6f, 0x72, + 0x79, 0x50, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x31, 0x0a, 0x15, 0x6d, 0x69, 0x6e, 0x69, + 0x6d, 0x75, 0x6d, 0x5f, 0x63, 0x70, 0x75, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x64, + 0x65, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, + 0x43, 0x70, 0x75, 0x73, 0x50, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x6d, + 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x2d, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0c, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x4e, 0x6f, 0x64, 0x65, 0x73, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x69, 0x63, 0x65, 0x18, 0x2f, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x69, 0x63, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x6f, 0x5f, 0x6b, + 0x69, 0x6c, 0x6c, 0x18, 0x30, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x6e, 0x6f, 0x4b, 0x69, 0x6c, + 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x31, 0x20, 0x03, 0x28, 0x0d, + 0x52, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6f, 0x70, 0x65, 0x6e, 0x5f, + 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x32, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x6e, + 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x33, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x34, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x10, + 0x0a, 0x03, 0x71, 0x6f, 0x73, 0x18, 0x35, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x71, 0x6f, 0x73, + 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x75, 0x65, 0x18, 0x36, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x75, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x37, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x18, 0x38, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x69, + 0x67, 0x6e, 0x61, 0x6c, 0x12, 0x28, 0x0a, 0x10, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, + 0x70, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x39, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, + 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x50, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x1d, + 0x0a, 0x0a, 0x73, 0x70, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6a, 0x6f, 0x62, 0x18, 0x3a, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x09, 0x73, 0x70, 0x72, 0x65, 0x61, 0x64, 0x4a, 0x6f, 0x62, 0x12, 0x25, 0x0a, + 0x0e, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, + 0x3b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x45, + 0x72, 0x72, 0x6f, 0x72, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, + 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x74, + 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x73, + 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x3d, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x4f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x3e, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x74, 0x61, + 0x73, 0x6b, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x3f, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0c, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x50, 0x65, 0x72, 0x43, 0x6f, 0x72, 0x65, + 0x12, 0x24, 0x0a, 0x0e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6e, 0x6f, + 0x64, 0x65, 0x18, 0x40, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x50, + 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, + 0x70, 0x65, 0x72, 0x5f, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x41, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x50, 0x65, 0x72, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, + 0x12, 0x31, 0x0a, 0x14, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x42, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, + 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x10, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x5f, 0x70, + 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x43, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x74, + 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x50, 0x65, 0x72, 0x43, 0x6f, 0x72, 0x65, 0x12, 0x1d, 0x0a, + 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x44, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x21, 0x0a, 0x0c, + 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x45, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x12, + 0x24, 0x0a, 0x0e, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x6e, 0x6f, 0x64, 0x65, + 0x73, 0x18, 0x46, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x77, 0x61, 0x69, 0x74, 0x41, 0x6c, 0x6c, + 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x63, 0x6b, 0x65, 0x79, 0x18, 0x47, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x77, 0x63, 0x6b, 0x65, 0x79, 0x22, 0x7a, 0x0a, 0x0c, 0x73, + 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x12, 0x27, 0x0a, 0x03, 0x6a, 0x6f, 0x62, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x15, 0x2e, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x2e, 0x6a, 0x6f, 0x62, 0x5f, 0x70, 0x72, 0x6f, + 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x52, 0x03, 0x6a, 0x6f, 0x62, 0x12, 0x29, 0x0a, 0x04, + 0x6a, 0x6f, 0x62, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x6c, 0x75, + 0x72, 0x6d, 0x2e, 0x6a, 0x6f, 0x62, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, + 0x73, 0x52, 0x04, 0x6a, 0x6f, 0x62, 0x73, 0x22, 0x94, 0x01, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x6d, + 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x12, 0x24, 0x0a, 0x06, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x73, 0x6c, 0x75, 0x72, + 0x6d, 0x2e, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, + 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x73, 0x74, 0x65, 0x70, 0x5f, 0x69, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x65, 0x70, 0x49, 0x64, 0x12, + 0x2d, 0x0a, 0x13, 0x6a, 0x6f, 0x62, 0x5f, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x5f, 0x75, 0x73, + 0x65, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6a, 0x6f, + 0x62, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x22, 0x2d, + 0x0a, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x12, 0x1f, 0x0a, 0x0b, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x67, 0x0a, + 0x0b, 0x6c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x12, 0x24, 0x0a, 0x06, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x73, + 0x6c, 0x75, 0x72, 0x6d, 0x2e, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x73, 0x12, 0x32, 0x0a, 0x04, 0x6a, 0x6f, 0x62, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1e, 0x2e, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x2e, 0x6a, 0x6f, 0x62, 0x5f, 0x72, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, + 0x52, 0x04, 0x6a, 0x6f, 0x62, 0x73, 0x22, 0x40, 0x0a, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x12, 0x30, 0x0a, 0x0a, 0x6a, 0x6f, 0x62, 0x5f, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x6c, 0x75, + 0x72, 0x6d, 0x2e, 0x6a, 0x6f, 0x62, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x09, 0x6a, + 0x6f, 0x62, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x22, 0x0f, 0x0a, 0x0d, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x22, 0x22, 0x0a, 0x09, 0x67, 0x65, 0x74, + 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x22, 0x2d, 0x0a, + 0x0a, 0x67, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1f, 0x0a, 0x04, 0x6a, + 0x6f, 0x62, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x73, 0x6c, 0x75, 0x72, + 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x04, 0x6a, 0x6f, 0x62, 0x73, 0x32, 0xa8, 0x01, 0x0a, + 0x05, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x12, 0x38, 0x0a, 0x09, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, + 0x4a, 0x6f, 0x62, 0x12, 0x13, 0x2e, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x2e, 0x73, 0x75, 0x62, 0x6d, + 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x73, 0x6c, 0x75, 0x72, 0x6d, + 0x2e, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, + 0x12, 0x32, 0x0a, 0x07, 0x6c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x12, 0x11, 0x2e, 0x73, 0x6c, + 0x75, 0x72, 0x6d, 0x2e, 0x6c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x1a, 0x12, + 0x2e, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x2e, 0x6c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, + 0x73, 0x70, 0x22, 0x00, 0x12, 0x31, 0x0a, 0x06, 0x67, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x12, 0x11, + 0x2e, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x2e, 0x6c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, + 0x71, 0x1a, 0x12, 0x2e, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x2e, 0x6c, 0x69, 0x73, 0x74, 0x4a, 0x6f, + 0x62, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x42, 0x08, 0x5a, 0x06, 0x2f, 0x73, 0x6c, 0x75, 0x72, + 0x6d, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_slurm_proto_rawDescOnce sync.Once + file_slurm_proto_rawDescData = file_slurm_proto_rawDesc +) + +func file_slurm_proto_rawDescGZIP() []byte { + file_slurm_proto_rawDescOnce.Do(func() { + file_slurm_proto_rawDescData = protoimpl.X.CompressGZIP(file_slurm_proto_rawDescData) + }) + return file_slurm_proto_rawDescData +} + +var file_slurm_proto_msgTypes = make([]protoimpl.MessageInfo, 19) +var file_slurm_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 + (*JobResources)(nil), // 6: slurm.Job_resources + (*JobProperties)(nil), // 7: slurm.job_properties + (*JobResponseProperties)(nil), // 8: slurm.job_response_properties + (*Jobs)(nil), // 9: slurm.Jobs + (*JobUpdate)(nil), // 10: slurm.job_update + (*SubmitJobReq)(nil), // 11: slurm.submitJobReq + (*SubmitJobResp)(nil), // 12: slurm.submitJobResp + (*ListJobReq)(nil), // 13: slurm.listJobReq + (*ListJobResp)(nil), // 14: slurm.listJobResp + (*UpdateJobReq)(nil), // 15: slurm.updateJobReq + (*UpdateJobResp)(nil), // 16: slurm.updateJobResp + (*GetJobReq)(nil), // 17: slurm.getJobReq + (*GetJobResp)(nil), // 18: slurm.getJobResp +} +var file_slurm_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 + 5, // 3: slurm.Job_resources.allocated_nodes:type_name -> slurm.Allocated_nodes + 1, // 4: slurm.job_properties.environment:type_name -> slurm.Environment + 6, // 5: slurm.job_response_properties.job_resources:type_name -> slurm.Job_resources + 6, // 6: slurm.Jobs.job_resources:type_name -> slurm.Job_resources + 1, // 7: slurm.job_update.environment:type_name -> slurm.Environment + 7, // 8: slurm.submitJobReq.job:type_name -> slurm.job_properties + 7, // 9: slurm.submitJobReq.jobs:type_name -> slurm.job_properties + 0, // 10: slurm.submitJobResp.errors:type_name -> slurm.error + 0, // 11: slurm.listJobResp.errors:type_name -> slurm.error + 8, // 12: slurm.listJobResp.jobs:type_name -> slurm.job_response_properties + 10, // 13: slurm.updateJobReq.job_update:type_name -> slurm.job_update + 9, // 14: slurm.getJobResp.jobs:type_name -> slurm.Jobs + 11, // 15: slurm.slurm.submitJob:input_type -> slurm.submitJobReq + 13, // 16: slurm.slurm.listJob:input_type -> slurm.listJobReq + 13, // 17: slurm.slurm.getJob:input_type -> slurm.listJobReq + 12, // 18: slurm.slurm.submitJob:output_type -> slurm.submitJobResp + 14, // 19: slurm.slurm.listJob:output_type -> slurm.listJobResp + 14, // 20: slurm.slurm.getJob:output_type -> slurm.listJobResp + 18, // [18:21] is the sub-list for method output_type + 15, // [15:18] is the sub-list for method input_type + 15, // [15:15] is the sub-list for extension type_name + 15, // [15:15] is the sub-list for extension extendee + 0, // [0:15] is the sub-list for field type_name +} + +func init() { file_slurm_proto_init() } +func file_slurm_proto_init() { + if File_slurm_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_slurm_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_slurm_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_slurm_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_slurm_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_slurm_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_slurm_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_slurm_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*JobResources); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_slurm_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*JobProperties); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_slurm_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*JobResponseProperties); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_slurm_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Jobs); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_slurm_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*JobUpdate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_slurm_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubmitJobReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_slurm_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubmitJobResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_slurm_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListJobReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_slurm_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListJobResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_slurm_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateJobReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_slurm_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateJobResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_slurm_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetJobReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_slurm_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetJobResp); 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_slurm_proto_rawDesc, + NumEnums: 0, + NumMessages: 19, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_slurm_proto_goTypes, + DependencyIndexes: file_slurm_proto_depIdxs, + MessageInfos: file_slurm_proto_msgTypes, + }.Build() + File_slurm_proto = out.File + file_slurm_proto_rawDesc = nil + file_slurm_proto_goTypes = nil + file_slurm_proto_depIdxs = nil +} diff --git a/slurm/slurm_grpc.pb.go b/slurm/slurm_grpc.pb.go new file mode 100644 index 0000000..3f71cfa --- /dev/null +++ b/slurm/slurm_grpc.pb.go @@ -0,0 +1,177 @@ +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.2.0 +// - protoc v3.19.4 +// source: slurm.proto + +package slurm + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.32.0 or later. +const _ = grpc.SupportPackageIsVersion7 + +// SlurmClient is the client API for Slurm service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type SlurmClient interface { + SubmitJob(ctx context.Context, in *SubmitJobReq, opts ...grpc.CallOption) (*SubmitJobResp, error) + ListJob(ctx context.Context, in *ListJobReq, opts ...grpc.CallOption) (*ListJobResp, error) + GetJob(ctx context.Context, in *ListJobReq, opts ...grpc.CallOption) (*ListJobResp, error) +} + +type slurmClient struct { + cc grpc.ClientConnInterface +} + +func NewSlurmClient(cc grpc.ClientConnInterface) SlurmClient { + return &slurmClient{cc} +} + +func (c *slurmClient) SubmitJob(ctx context.Context, in *SubmitJobReq, opts ...grpc.CallOption) (*SubmitJobResp, error) { + out := new(SubmitJobResp) + err := c.cc.Invoke(ctx, "/slurm.slurm/submitJob", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *slurmClient) ListJob(ctx context.Context, in *ListJobReq, opts ...grpc.CallOption) (*ListJobResp, error) { + out := new(ListJobResp) + err := c.cc.Invoke(ctx, "/slurm.slurm/listJob", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *slurmClient) GetJob(ctx context.Context, in *ListJobReq, opts ...grpc.CallOption) (*ListJobResp, error) { + out := new(ListJobResp) + err := c.cc.Invoke(ctx, "/slurm.slurm/getJob", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// SlurmServer is the server API for Slurm service. +// All implementations must embed UnimplementedSlurmServer +// for forward compatibility +type SlurmServer interface { + SubmitJob(context.Context, *SubmitJobReq) (*SubmitJobResp, error) + ListJob(context.Context, *ListJobReq) (*ListJobResp, error) + GetJob(context.Context, *ListJobReq) (*ListJobResp, error) + mustEmbedUnimplementedSlurmServer() +} + +// UnimplementedSlurmServer must be embedded to have forward compatible implementations. +type UnimplementedSlurmServer struct { +} + +func (UnimplementedSlurmServer) SubmitJob(context.Context, *SubmitJobReq) (*SubmitJobResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method SubmitJob not implemented") +} +func (UnimplementedSlurmServer) ListJob(context.Context, *ListJobReq) (*ListJobResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListJob not implemented") +} +func (UnimplementedSlurmServer) GetJob(context.Context, *ListJobReq) (*ListJobResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetJob not implemented") +} +func (UnimplementedSlurmServer) mustEmbedUnimplementedSlurmServer() {} + +// UnsafeSlurmServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to SlurmServer will +// result in compilation errors. +type UnsafeSlurmServer interface { + mustEmbedUnimplementedSlurmServer() +} + +func RegisterSlurmServer(s grpc.ServiceRegistrar, srv SlurmServer) { + s.RegisterService(&Slurm_ServiceDesc, srv) +} + +func _Slurm_SubmitJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SubmitJobReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SlurmServer).SubmitJob(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/slurm.slurm/submitJob", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SlurmServer).SubmitJob(ctx, req.(*SubmitJobReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Slurm_ListJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListJobReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SlurmServer).ListJob(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/slurm.slurm/listJob", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SlurmServer).ListJob(ctx, req.(*ListJobReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Slurm_GetJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListJobReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SlurmServer).GetJob(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/slurm.slurm/getJob", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SlurmServer).GetJob(ctx, req.(*ListJobReq)) + } + return interceptor(ctx, in, info, handler) +} + +// Slurm_ServiceDesc is the grpc.ServiceDesc for Slurm service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var Slurm_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "slurm.slurm", + HandlerType: (*SlurmServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "submitJob", + Handler: _Slurm_SubmitJob_Handler, + }, + { + MethodName: "listJob", + Handler: _Slurm_ListJob_Handler, + }, + { + MethodName: "getJob", + Handler: _Slurm_GetJob_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "slurm.proto", +} diff --git a/slurmclient/slurm.go b/slurmclient/slurm.go new file mode 100644 index 0000000..21282b2 --- /dev/null +++ b/slurmclient/slurm.go @@ -0,0 +1,66 @@ +// Code generated by goctl. DO NOT EDIT. +// Source: slurm.proto + +package slurmclient + +import ( + "context" + + "gitlink.org.cn/jcce-pcm/pcm-participant-slurm/slurm" + + "github.com/zeromicro/go-zero/zrpc" + "google.golang.org/grpc" +) + +type ( + AllocatedNodes = slurm.AllocatedNodes + Cores = slurm.Cores + Cpus = slurm.Cpus + Environment = slurm.Environment + Error = slurm.Error + GetJobReq = slurm.GetJobReq + GetJobResp = slurm.GetJobResp + JobProperties = slurm.JobProperties + JobResources = slurm.JobResources + JobResponseProperties = slurm.JobResponseProperties + JobUpdate = slurm.JobUpdate + Jobs = slurm.Jobs + ListJobReq = slurm.ListJobReq + ListJobResp = slurm.ListJobResp + Sockets = slurm.Sockets + SubmitJobReq = slurm.SubmitJobReq + SubmitJobResp = slurm.SubmitJobResp + UpdateJobReq = slurm.UpdateJobReq + UpdateJobResp = slurm.UpdateJobResp + + Slurm interface { + SubmitJob(ctx context.Context, in *SubmitJobReq, opts ...grpc.CallOption) (*SubmitJobResp, error) + ListJob(ctx context.Context, in *ListJobReq, opts ...grpc.CallOption) (*ListJobResp, error) + GetJob(ctx context.Context, in *ListJobReq, opts ...grpc.CallOption) (*ListJobResp, error) + } + + defaultSlurm struct { + cli zrpc.Client + } +) + +func NewSlurm(cli zrpc.Client) Slurm { + return &defaultSlurm{ + cli: cli, + } +} + +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) ListJob(ctx context.Context, in *ListJobReq, opts ...grpc.CallOption) (*ListJobResp, error) { + client := slurm.NewSlurmClient(m.cli.Conn()) + return client.ListJob(ctx, in, opts...) +} + +func (m *defaultSlurm) GetJob(ctx context.Context, in *ListJobReq, opts ...grpc.CallOption) (*ListJobResp, error) { + client := slurm.NewSlurmClient(m.cli.Conn()) + return client.GetJob(ctx, in, opts...) +}