commit dd504b39c8f428a1cb9ef8497e72cf112109e370 Author: 刘祥超 Date: Sun Sep 13 19:27:47 2020 +0800 阶段性提交 diff --git a/build/grpc.sh b/build/grpc.sh new file mode 100755 index 0000000..39e366e --- /dev/null +++ b/build/grpc.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env bash + +rm -f ../internal/rpc/pb/* +protoc --go_out=plugins=grpc:../pkg/rpc --proto_path=../pkg/rpc/protos ../pkg/rpc/protos/*.proto diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..21857b5 --- /dev/null +++ b/go.mod @@ -0,0 +1,12 @@ +module github.com/TeaOSLab/EdgeCommon + +go 1.15 + +require ( + github.com/go-yaml/yaml v2.1.0+incompatible + github.com/golang/protobuf v1.4.2 + github.com/iwind/TeaGo v0.0.0-20200910072805-729cffe36729 + google.golang.org/grpc v1.32.0 + google.golang.org/protobuf v1.25.0 + gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 +) diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..0b90bd6 --- /dev/null +++ b/go.sum @@ -0,0 +1,166 @@ +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= +github.com/DataDog/sketches-go v0.0.0-20190923095040-43f19ad77ff7/go.mod h1:Q5DbzQ+3AkgGwymQO7aZFNP7ns2lZKGtvRBzRXfdi60= +github.com/benbjohnson/clock v1.0.3/go.mod h1:bGMdMPoPVvcYyt1gHDf4J2KE153Yf9BuiUKYMaxlTDM= +github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dgryski/go-rendezvous v0.0.0-20200624174652-8d2f3be8b2d9/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= +github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= +github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-redis/redis/v8 v8.0.0-beta.7/go.mod h1:FGJAWDWFht1sQ4qxyJHZZbVyvnVcKQN0E3u5/5lRz+g= +github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= +github.com/go-yaml/yaml v2.1.0+incompatible h1:RYi2hDdss1u4YE7GwixGzWwVo47T8UQwnTLB6vQiq+o= +github.com/go-yaml/yaml v2.1.0+incompatible/go.mod h1:w2MrLa16VYP0jy6N7M5kHaCkaLENm+P+Tv+MfurjSw0= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= +github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= +github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= +github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= +github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= +github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= +github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0= +github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.0 h1:/QaMHBdZ26BB3SSst0Iwl10Epc+xhTquomWX0oZEB6w= +github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/iwind/TeaGo v0.0.0-20200910072805-729cffe36729 h1:/v0WhSFVeNay/dA5zU9iCBXlgVDfxnztuanlauXE0gM= +github.com/iwind/TeaGo v0.0.0-20200910072805-729cffe36729/go.mod h1:KU4mS7QNiZ7QWEuDBk1zw0/Q2LrAPZv3tycEFBsuUwc= +github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= +github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= +github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.10.1/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= +github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= +github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= +github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= +github.com/opentracing/opentracing-go v1.1.1-0.20190913142402-a7454ce5950e/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +go.opentelemetry.io/otel v0.7.0/go.mod h1:aZMyHG5TqDOXEgH2tyLiXSUKly1jT3yqE9PmrzIeCdo= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20200513190911-00229845015e/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw= +golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= +golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= +golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190311183353-d8887717615a h1:oWX7TPOiFAMXLq8o0ikBYfCJVlRHBcsciT5bXOrH628= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7 h1:AeiKBIuRw3UomYXSbLy0Mc2dDLfdtbT/IVn4keq83P0= +golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/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-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a h1:1BGLXjeY4akVXGgbC9HugT3Jv3hCI0z56oJR5vAMgBU= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191010194322-b09406accb47/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200519105757-fe76b779f299 h1:DYfZAGf2WMFjMxbgTjaC+2HC7NkNAQs+6Q8b9WEB/F4= +golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= +golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20191009194640-548a555dbc03/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013 h1:+kGHl1aib/qcwaRi1CbqBZ1rk19r85MNUf8HaBghugY= +google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= +google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.32.0 h1:zWTV+LMdc3kaiJMSTOFz2UgSBgx8RNQoTGiZu3fR9S0= +google.golang.org/grpc v1.32.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= +google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= +google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= +google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= +google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= +google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.25.0 h1:Ejskq+SyPohKW+1uil0JJMtmHCgJPJ/qWTxr8qp+R4c= +google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= +gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.7/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.3.0 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU= +gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 h1:tQIYjPdBoyREyB9XMu+nnTclpTYkz2zFM+lzLJFO4gQ= +gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/pkg/rpc/pb/model_api_node.pb.go b/pkg/rpc/pb/model_api_node.pb.go new file mode 100644 index 0000000..e292c7d --- /dev/null +++ b/pkg/rpc/pb/model_api_node.pb.go @@ -0,0 +1,232 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.25.0 +// protoc v3.12.3 +// source: model_api_node.proto + +package pb + +import ( + proto "github.com/golang/protobuf/proto" + 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) +) + +// This is a compile-time assertion that a sufficiently up-to-date version +// of the legacy proto package is being used. +const _ = proto.ProtoPackageIsVersion4 + +type APINode struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + IsOn bool `protobuf:"varint,2,opt,name=isOn,proto3" json:"isOn,omitempty"` + ClusterId int64 `protobuf:"varint,3,opt,name=clusterId,proto3" json:"clusterId,omitempty"` + UniqueId string `protobuf:"bytes,4,opt,name=uniqueId,proto3" json:"uniqueId,omitempty"` + Secret string `protobuf:"bytes,5,opt,name=secret,proto3" json:"secret,omitempty"` + Name string `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"` + Description string `protobuf:"bytes,7,opt,name=description,proto3" json:"description,omitempty"` + Host string `protobuf:"bytes,8,opt,name=host,proto3" json:"host,omitempty"` + Port int32 `protobuf:"varint,9,opt,name=port,proto3" json:"port,omitempty"` + Address string `protobuf:"bytes,100,opt,name=address,proto3" json:"address,omitempty"` +} + +func (x *APINode) Reset() { + *x = APINode{} + if protoimpl.UnsafeEnabled { + mi := &file_model_api_node_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *APINode) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*APINode) ProtoMessage() {} + +func (x *APINode) ProtoReflect() protoreflect.Message { + mi := &file_model_api_node_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use APINode.ProtoReflect.Descriptor instead. +func (*APINode) Descriptor() ([]byte, []int) { + return file_model_api_node_proto_rawDescGZIP(), []int{0} +} + +func (x *APINode) GetId() int64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *APINode) GetIsOn() bool { + if x != nil { + return x.IsOn + } + return false +} + +func (x *APINode) GetClusterId() int64 { + if x != nil { + return x.ClusterId + } + return 0 +} + +func (x *APINode) GetUniqueId() string { + if x != nil { + return x.UniqueId + } + return "" +} + +func (x *APINode) GetSecret() string { + if x != nil { + return x.Secret + } + return "" +} + +func (x *APINode) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *APINode) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *APINode) GetHost() string { + if x != nil { + return x.Host + } + return "" +} + +func (x *APINode) GetPort() int32 { + if x != nil { + return x.Port + } + return 0 +} + +func (x *APINode) GetAddress() string { + if x != nil { + return x.Address + } + return "" +} + +var File_model_api_node_proto protoreflect.FileDescriptor + +var file_model_api_node_proto_rawDesc = []byte{ + 0x0a, 0x14, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x6e, 0x6f, 0x64, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x22, 0xf7, 0x01, 0x0a, 0x07, 0x41, + 0x50, 0x49, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x73, 0x4f, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x69, 0x73, 0x4f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x6e, 0x69, 0x71, + 0x75, 0x65, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x6e, 0x69, 0x71, + 0x75, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x64, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_model_api_node_proto_rawDescOnce sync.Once + file_model_api_node_proto_rawDescData = file_model_api_node_proto_rawDesc +) + +func file_model_api_node_proto_rawDescGZIP() []byte { + file_model_api_node_proto_rawDescOnce.Do(func() { + file_model_api_node_proto_rawDescData = protoimpl.X.CompressGZIP(file_model_api_node_proto_rawDescData) + }) + return file_model_api_node_proto_rawDescData +} + +var file_model_api_node_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_model_api_node_proto_goTypes = []interface{}{ + (*APINode)(nil), // 0: pb.APINode +} +var file_model_api_node_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_model_api_node_proto_init() } +func file_model_api_node_proto_init() { + if File_model_api_node_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_model_api_node_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*APINode); 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_model_api_node_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_model_api_node_proto_goTypes, + DependencyIndexes: file_model_api_node_proto_depIdxs, + MessageInfos: file_model_api_node_proto_msgTypes, + }.Build() + File_model_api_node_proto = out.File + file_model_api_node_proto_rawDesc = nil + file_model_api_node_proto_goTypes = nil + file_model_api_node_proto_depIdxs = nil +} diff --git a/pkg/rpc/pb/model_network_address.pb.go b/pkg/rpc/pb/model_network_address.pb.go new file mode 100644 index 0000000..b404698 --- /dev/null +++ b/pkg/rpc/pb/model_network_address.pb.go @@ -0,0 +1,167 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.25.0 +// protoc v3.12.3 +// source: model_network_address.proto + +package pb + +import ( + proto "github.com/golang/protobuf/proto" + 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) +) + +// This is a compile-time assertion that a sufficiently up-to-date version +// of the legacy proto package is being used. +const _ = proto.ProtoPackageIsVersion4 + +type NetworkAddress struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Protocol string `protobuf:"bytes,1,opt,name=protocol,proto3" json:"protocol,omitempty"` + Host string `protobuf:"bytes,2,opt,name=host,proto3" json:"host,omitempty"` + PortRange string `protobuf:"bytes,3,opt,name=portRange,proto3" json:"portRange,omitempty"` +} + +func (x *NetworkAddress) Reset() { + *x = NetworkAddress{} + if protoimpl.UnsafeEnabled { + mi := &file_model_network_address_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NetworkAddress) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NetworkAddress) ProtoMessage() {} + +func (x *NetworkAddress) ProtoReflect() protoreflect.Message { + mi := &file_model_network_address_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 NetworkAddress.ProtoReflect.Descriptor instead. +func (*NetworkAddress) Descriptor() ([]byte, []int) { + return file_model_network_address_proto_rawDescGZIP(), []int{0} +} + +func (x *NetworkAddress) GetProtocol() string { + if x != nil { + return x.Protocol + } + return "" +} + +func (x *NetworkAddress) GetHost() string { + if x != nil { + return x.Host + } + return "" +} + +func (x *NetworkAddress) GetPortRange() string { + if x != nil { + return x.PortRange + } + return "" +} + +var File_model_network_address_proto protoreflect.FileDescriptor + +var file_model_network_address_proto_rawDesc = []byte{ + 0x0a, 0x1b, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, + 0x62, 0x22, 0x5e, 0x0a, 0x0e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, + 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, + 0x6f, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x61, 0x6e, 0x67, + 0x65, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, +} + +var ( + file_model_network_address_proto_rawDescOnce sync.Once + file_model_network_address_proto_rawDescData = file_model_network_address_proto_rawDesc +) + +func file_model_network_address_proto_rawDescGZIP() []byte { + file_model_network_address_proto_rawDescOnce.Do(func() { + file_model_network_address_proto_rawDescData = protoimpl.X.CompressGZIP(file_model_network_address_proto_rawDescData) + }) + return file_model_network_address_proto_rawDescData +} + +var file_model_network_address_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_model_network_address_proto_goTypes = []interface{}{ + (*NetworkAddress)(nil), // 0: pb.NetworkAddress +} +var file_model_network_address_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_model_network_address_proto_init() } +func file_model_network_address_proto_init() { + if File_model_network_address_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_model_network_address_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NetworkAddress); 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_model_network_address_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_model_network_address_proto_goTypes, + DependencyIndexes: file_model_network_address_proto_depIdxs, + MessageInfos: file_model_network_address_proto_msgTypes, + }.Build() + File_model_network_address_proto = out.File + file_model_network_address_proto_rawDesc = nil + file_model_network_address_proto_goTypes = nil + file_model_network_address_proto_depIdxs = nil +} diff --git a/pkg/rpc/pb/model_node.pb.go b/pkg/rpc/pb/model_node.pb.go new file mode 100644 index 0000000..dd6d6bf --- /dev/null +++ b/pkg/rpc/pb/model_node.pb.go @@ -0,0 +1,260 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.25.0 +// protoc v3.12.3 +// source: model_node.proto + +package pb + +import ( + proto "github.com/golang/protobuf/proto" + 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) +) + +// This is a compile-time assertion that a sufficiently up-to-date version +// of the legacy proto package is being used. +const _ = proto.ProtoPackageIsVersion4 + +type Node struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Status string `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"` + InstallDir string `protobuf:"bytes,4,opt,name=installDir,proto3" json:"installDir,omitempty"` + IsInstalled bool `protobuf:"varint,5,opt,name=isInstalled,proto3" json:"isInstalled,omitempty"` + Code string `protobuf:"bytes,6,opt,name=code,proto3" json:"code,omitempty"` + UniqueId string `protobuf:"bytes,7,opt,name=uniqueId,proto3" json:"uniqueId,omitempty"` + Secret string `protobuf:"bytes,8,opt,name=secret,proto3" json:"secret,omitempty"` + Cluster *NodeCluster `protobuf:"bytes,32,opt,name=cluster,proto3" json:"cluster,omitempty"` + Login *NodeLogin `protobuf:"bytes,33,opt,name=login,proto3" json:"login,omitempty"` + InstallStatus *NodeInstallStatus `protobuf:"bytes,34,opt,name=installStatus,proto3" json:"installStatus,omitempty"` +} + +func (x *Node) Reset() { + *x = Node{} + if protoimpl.UnsafeEnabled { + mi := &file_model_node_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Node) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Node) ProtoMessage() {} + +func (x *Node) ProtoReflect() protoreflect.Message { + mi := &file_model_node_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Node.ProtoReflect.Descriptor instead. +func (*Node) Descriptor() ([]byte, []int) { + return file_model_node_proto_rawDescGZIP(), []int{0} +} + +func (x *Node) GetId() int64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *Node) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Node) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *Node) GetInstallDir() string { + if x != nil { + return x.InstallDir + } + return "" +} + +func (x *Node) GetIsInstalled() bool { + if x != nil { + return x.IsInstalled + } + return false +} + +func (x *Node) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +func (x *Node) GetUniqueId() string { + if x != nil { + return x.UniqueId + } + return "" +} + +func (x *Node) GetSecret() string { + if x != nil { + return x.Secret + } + return "" +} + +func (x *Node) GetCluster() *NodeCluster { + if x != nil { + return x.Cluster + } + return nil +} + +func (x *Node) GetLogin() *NodeLogin { + if x != nil { + return x.Login + } + return nil +} + +func (x *Node) GetInstallStatus() *NodeInstallStatus { + if x != nil { + return x.InstallStatus + } + return nil +} + +var File_model_node_proto protoreflect.FileDescriptor + +var file_model_node_proto_rawDesc = []byte{ + 0x0a, 0x10, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x1a, 0x18, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6e, 0x6f, + 0x64, 0x65, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x1a, 0x16, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6c, 0x6f, 0x67, + 0x69, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, + 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x5f, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xd9, 0x02, 0x0a, 0x04, 0x4e, 0x6f, + 0x64, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, + 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, + 0x0a, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x44, 0x69, 0x72, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x44, 0x69, 0x72, 0x12, 0x20, + 0x0a, 0x0b, 0x69, 0x73, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, + 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, + 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x29, 0x0a, 0x07, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4e, + 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x07, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x12, 0x23, 0x0a, 0x05, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x18, 0x21, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x4c, 0x6f, 0x67, 0x69, + 0x6e, 0x52, 0x05, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x3b, 0x0a, 0x0d, 0x69, 0x6e, 0x73, 0x74, + 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x15, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0d, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_model_node_proto_rawDescOnce sync.Once + file_model_node_proto_rawDescData = file_model_node_proto_rawDesc +) + +func file_model_node_proto_rawDescGZIP() []byte { + file_model_node_proto_rawDescOnce.Do(func() { + file_model_node_proto_rawDescData = protoimpl.X.CompressGZIP(file_model_node_proto_rawDescData) + }) + return file_model_node_proto_rawDescData +} + +var file_model_node_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_model_node_proto_goTypes = []interface{}{ + (*Node)(nil), // 0: pb.Node + (*NodeCluster)(nil), // 1: pb.NodeCluster + (*NodeLogin)(nil), // 2: pb.NodeLogin + (*NodeInstallStatus)(nil), // 3: pb.NodeInstallStatus +} +var file_model_node_proto_depIdxs = []int32{ + 1, // 0: pb.Node.cluster:type_name -> pb.NodeCluster + 2, // 1: pb.Node.login:type_name -> pb.NodeLogin + 3, // 2: pb.Node.installStatus:type_name -> pb.NodeInstallStatus + 3, // [3:3] is the sub-list for method output_type + 3, // [3:3] is the sub-list for method input_type + 3, // [3:3] is the sub-list for extension type_name + 3, // [3:3] is the sub-list for extension extendee + 0, // [0:3] is the sub-list for field type_name +} + +func init() { file_model_node_proto_init() } +func file_model_node_proto_init() { + if File_model_node_proto != nil { + return + } + file_model_node_cluster_proto_init() + file_model_node_login_proto_init() + file_model_node_install_status_proto_init() + if !protoimpl.UnsafeEnabled { + file_model_node_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Node); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_model_node_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_model_node_proto_goTypes, + DependencyIndexes: file_model_node_proto_depIdxs, + MessageInfos: file_model_node_proto_msgTypes, + }.Build() + File_model_node_proto = out.File + file_model_node_proto_rawDesc = nil + file_model_node_proto_goTypes = nil + file_model_node_proto_depIdxs = nil +} diff --git a/pkg/rpc/pb/model_node_cluster.pb.go b/pkg/rpc/pb/model_node_cluster.pb.go new file mode 100644 index 0000000..4c4ec07 --- /dev/null +++ b/pkg/rpc/pb/model_node_cluster.pb.go @@ -0,0 +1,185 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.25.0 +// protoc v3.12.3 +// source: model_node_cluster.proto + +package pb + +import ( + proto "github.com/golang/protobuf/proto" + 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) +) + +// This is a compile-time assertion that a sufficiently up-to-date version +// of the legacy proto package is being used. +const _ = proto.ProtoPackageIsVersion4 + +type NodeCluster struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + CreatedAt int64 `protobuf:"varint,3,opt,name=createdAt,proto3" json:"createdAt,omitempty"` + GrantId int64 `protobuf:"varint,4,opt,name=grantId,proto3" json:"grantId,omitempty"` + InstallDir string `protobuf:"bytes,5,opt,name=installDir,proto3" json:"installDir,omitempty"` +} + +func (x *NodeCluster) Reset() { + *x = NodeCluster{} + if protoimpl.UnsafeEnabled { + mi := &file_model_node_cluster_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NodeCluster) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NodeCluster) ProtoMessage() {} + +func (x *NodeCluster) ProtoReflect() protoreflect.Message { + mi := &file_model_node_cluster_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use NodeCluster.ProtoReflect.Descriptor instead. +func (*NodeCluster) Descriptor() ([]byte, []int) { + return file_model_node_cluster_proto_rawDescGZIP(), []int{0} +} + +func (x *NodeCluster) GetId() int64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *NodeCluster) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *NodeCluster) GetCreatedAt() int64 { + if x != nil { + return x.CreatedAt + } + return 0 +} + +func (x *NodeCluster) GetGrantId() int64 { + if x != nil { + return x.GrantId + } + return 0 +} + +func (x *NodeCluster) GetInstallDir() string { + if x != nil { + return x.InstallDir + } + return "" +} + +var File_model_node_cluster_proto protoreflect.FileDescriptor + +var file_model_node_cluster_proto_rawDesc = []byte{ + 0x0a, 0x18, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x22, 0x89, + 0x01, 0x0a, 0x0b, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x0e, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x07, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x6e, + 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x44, 0x69, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x44, 0x69, 0x72, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, + 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_model_node_cluster_proto_rawDescOnce sync.Once + file_model_node_cluster_proto_rawDescData = file_model_node_cluster_proto_rawDesc +) + +func file_model_node_cluster_proto_rawDescGZIP() []byte { + file_model_node_cluster_proto_rawDescOnce.Do(func() { + file_model_node_cluster_proto_rawDescData = protoimpl.X.CompressGZIP(file_model_node_cluster_proto_rawDescData) + }) + return file_model_node_cluster_proto_rawDescData +} + +var file_model_node_cluster_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_model_node_cluster_proto_goTypes = []interface{}{ + (*NodeCluster)(nil), // 0: pb.NodeCluster +} +var file_model_node_cluster_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_model_node_cluster_proto_init() } +func file_model_node_cluster_proto_init() { + if File_model_node_cluster_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_model_node_cluster_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NodeCluster); 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_model_node_cluster_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_model_node_cluster_proto_goTypes, + DependencyIndexes: file_model_node_cluster_proto_depIdxs, + MessageInfos: file_model_node_cluster_proto_msgTypes, + }.Build() + File_model_node_cluster_proto = out.File + file_model_node_cluster_proto_rawDesc = nil + file_model_node_cluster_proto_goTypes = nil + file_model_node_cluster_proto_depIdxs = nil +} diff --git a/pkg/rpc/pb/model_node_grant.pb.go b/pkg/rpc/pb/model_node_grant.pb.go new file mode 100644 index 0000000..cb227aa --- /dev/null +++ b/pkg/rpc/pb/model_node_grant.pb.go @@ -0,0 +1,223 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.25.0 +// protoc v3.12.3 +// source: model_node_grant.proto + +package pb + +import ( + proto "github.com/golang/protobuf/proto" + 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) +) + +// This is a compile-time assertion that a sufficiently up-to-date version +// of the legacy proto package is being used. +const _ = proto.ProtoPackageIsVersion4 + +type NodeGrant struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Method string `protobuf:"bytes,3,opt,name=method,proto3" json:"method,omitempty"` + Username string `protobuf:"bytes,4,opt,name=username,proto3" json:"username,omitempty"` + Password string `protobuf:"bytes,5,opt,name=password,proto3" json:"password,omitempty"` + Su bool `protobuf:"varint,6,opt,name=su,proto3" json:"su,omitempty"` + PrivateKey string `protobuf:"bytes,7,opt,name=privateKey,proto3" json:"privateKey,omitempty"` + Description string `protobuf:"bytes,8,opt,name=description,proto3" json:"description,omitempty"` + NodeId int64 `protobuf:"varint,9,opt,name=nodeId,proto3" json:"nodeId,omitempty"` +} + +func (x *NodeGrant) Reset() { + *x = NodeGrant{} + if protoimpl.UnsafeEnabled { + mi := &file_model_node_grant_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NodeGrant) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NodeGrant) ProtoMessage() {} + +func (x *NodeGrant) ProtoReflect() protoreflect.Message { + mi := &file_model_node_grant_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 NodeGrant.ProtoReflect.Descriptor instead. +func (*NodeGrant) Descriptor() ([]byte, []int) { + return file_model_node_grant_proto_rawDescGZIP(), []int{0} +} + +func (x *NodeGrant) GetId() int64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *NodeGrant) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *NodeGrant) GetMethod() string { + if x != nil { + return x.Method + } + return "" +} + +func (x *NodeGrant) GetUsername() string { + if x != nil { + return x.Username + } + return "" +} + +func (x *NodeGrant) GetPassword() string { + if x != nil { + return x.Password + } + return "" +} + +func (x *NodeGrant) GetSu() bool { + if x != nil { + return x.Su + } + return false +} + +func (x *NodeGrant) GetPrivateKey() string { + if x != nil { + return x.PrivateKey + } + return "" +} + +func (x *NodeGrant) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *NodeGrant) GetNodeId() int64 { + if x != nil { + return x.NodeId + } + return 0 +} + +var File_model_node_grant_proto protoreflect.FileDescriptor + +var file_model_node_grant_proto_rawDesc = []byte{ + 0x0a, 0x16, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x67, 0x72, 0x61, + 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x22, 0xe9, 0x01, 0x0a, + 0x09, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, + 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x0e, + 0x0a, 0x02, 0x73, 0x75, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x73, 0x75, 0x12, 0x1e, + 0x0a, 0x0a, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x20, + 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_model_node_grant_proto_rawDescOnce sync.Once + file_model_node_grant_proto_rawDescData = file_model_node_grant_proto_rawDesc +) + +func file_model_node_grant_proto_rawDescGZIP() []byte { + file_model_node_grant_proto_rawDescOnce.Do(func() { + file_model_node_grant_proto_rawDescData = protoimpl.X.CompressGZIP(file_model_node_grant_proto_rawDescData) + }) + return file_model_node_grant_proto_rawDescData +} + +var file_model_node_grant_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_model_node_grant_proto_goTypes = []interface{}{ + (*NodeGrant)(nil), // 0: pb.NodeGrant +} +var file_model_node_grant_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_model_node_grant_proto_init() } +func file_model_node_grant_proto_init() { + if File_model_node_grant_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_model_node_grant_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NodeGrant); 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_model_node_grant_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_model_node_grant_proto_goTypes, + DependencyIndexes: file_model_node_grant_proto_depIdxs, + MessageInfos: file_model_node_grant_proto_msgTypes, + }.Build() + File_model_node_grant_proto = out.File + file_model_node_grant_proto_rawDesc = nil + file_model_node_grant_proto_goTypes = nil + file_model_node_grant_proto_depIdxs = nil +} diff --git a/pkg/rpc/pb/model_node_install_status.pb.go b/pkg/rpc/pb/model_node_install_status.pb.go new file mode 100644 index 0000000..331e6db --- /dev/null +++ b/pkg/rpc/pb/model_node_install_status.pb.go @@ -0,0 +1,187 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.25.0 +// protoc v3.12.3 +// source: model_node_install_status.proto + +package pb + +import ( + proto "github.com/golang/protobuf/proto" + 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) +) + +// This is a compile-time assertion that a sufficiently up-to-date version +// of the legacy proto package is being used. +const _ = proto.ProtoPackageIsVersion4 + +type NodeInstallStatus struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + IsRunning bool `protobuf:"varint,1,opt,name=isRunning,proto3" json:"isRunning,omitempty"` + IsFinished bool `protobuf:"varint,2,opt,name=isFinished,proto3" json:"isFinished,omitempty"` + IsOk bool `protobuf:"varint,3,opt,name=isOk,proto3" json:"isOk,omitempty"` + Error string `protobuf:"bytes,4,opt,name=error,proto3" json:"error,omitempty"` + UpdatedAt int64 `protobuf:"varint,5,opt,name=updatedAt,proto3" json:"updatedAt,omitempty"` +} + +func (x *NodeInstallStatus) Reset() { + *x = NodeInstallStatus{} + if protoimpl.UnsafeEnabled { + mi := &file_model_node_install_status_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NodeInstallStatus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NodeInstallStatus) ProtoMessage() {} + +func (x *NodeInstallStatus) ProtoReflect() protoreflect.Message { + mi := &file_model_node_install_status_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 NodeInstallStatus.ProtoReflect.Descriptor instead. +func (*NodeInstallStatus) Descriptor() ([]byte, []int) { + return file_model_node_install_status_proto_rawDescGZIP(), []int{0} +} + +func (x *NodeInstallStatus) GetIsRunning() bool { + if x != nil { + return x.IsRunning + } + return false +} + +func (x *NodeInstallStatus) GetIsFinished() bool { + if x != nil { + return x.IsFinished + } + return false +} + +func (x *NodeInstallStatus) GetIsOk() bool { + if x != nil { + return x.IsOk + } + return false +} + +func (x *NodeInstallStatus) GetError() string { + if x != nil { + return x.Error + } + return "" +} + +func (x *NodeInstallStatus) GetUpdatedAt() int64 { + if x != nil { + return x.UpdatedAt + } + return 0 +} + +var File_model_node_install_status_proto protoreflect.FileDescriptor + +var file_model_node_install_status_proto_rawDesc = []byte{ + 0x0a, 0x1f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x6e, 0x73, + 0x74, 0x61, 0x6c, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x12, 0x02, 0x70, 0x62, 0x22, 0x99, 0x01, 0x0a, 0x11, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, + 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x69, + 0x73, 0x52, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, + 0x69, 0x73, 0x52, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x73, 0x46, + 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, + 0x73, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x73, 0x4f, + 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x69, 0x73, 0x4f, 0x6b, 0x12, 0x14, 0x0a, + 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, + 0x74, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, +} + +var ( + file_model_node_install_status_proto_rawDescOnce sync.Once + file_model_node_install_status_proto_rawDescData = file_model_node_install_status_proto_rawDesc +) + +func file_model_node_install_status_proto_rawDescGZIP() []byte { + file_model_node_install_status_proto_rawDescOnce.Do(func() { + file_model_node_install_status_proto_rawDescData = protoimpl.X.CompressGZIP(file_model_node_install_status_proto_rawDescData) + }) + return file_model_node_install_status_proto_rawDescData +} + +var file_model_node_install_status_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_model_node_install_status_proto_goTypes = []interface{}{ + (*NodeInstallStatus)(nil), // 0: pb.NodeInstallStatus +} +var file_model_node_install_status_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_model_node_install_status_proto_init() } +func file_model_node_install_status_proto_init() { + if File_model_node_install_status_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_model_node_install_status_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NodeInstallStatus); 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_model_node_install_status_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_model_node_install_status_proto_goTypes, + DependencyIndexes: file_model_node_install_status_proto_depIdxs, + MessageInfos: file_model_node_install_status_proto_msgTypes, + }.Build() + File_model_node_install_status_proto = out.File + file_model_node_install_status_proto_rawDesc = nil + file_model_node_install_status_proto_goTypes = nil + file_model_node_install_status_proto_depIdxs = nil +} diff --git a/pkg/rpc/pb/model_node_ip_address.pb.go b/pkg/rpc/pb/model_node_ip_address.pb.go new file mode 100644 index 0000000..8a1b472 --- /dev/null +++ b/pkg/rpc/pb/model_node_ip_address.pb.go @@ -0,0 +1,203 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.25.0 +// protoc v3.12.3 +// source: model_node_ip_address.proto + +package pb + +import ( + proto "github.com/golang/protobuf/proto" + 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) +) + +// This is a compile-time assertion that a sufficiently up-to-date version +// of the legacy proto package is being used. +const _ = proto.ProtoPackageIsVersion4 + +type NodeIPAddress struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + NodeId int64 `protobuf:"varint,2,opt,name=nodeId,proto3" json:"nodeId,omitempty"` + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` + Ip string `protobuf:"bytes,4,opt,name=ip,proto3" json:"ip,omitempty"` + Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"` + State int64 `protobuf:"varint,6,opt,name=state,proto3" json:"state,omitempty"` + Order int64 `protobuf:"varint,7,opt,name=order,proto3" json:"order,omitempty"` +} + +func (x *NodeIPAddress) Reset() { + *x = NodeIPAddress{} + if protoimpl.UnsafeEnabled { + mi := &file_model_node_ip_address_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NodeIPAddress) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NodeIPAddress) ProtoMessage() {} + +func (x *NodeIPAddress) ProtoReflect() protoreflect.Message { + mi := &file_model_node_ip_address_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 NodeIPAddress.ProtoReflect.Descriptor instead. +func (*NodeIPAddress) Descriptor() ([]byte, []int) { + return file_model_node_ip_address_proto_rawDescGZIP(), []int{0} +} + +func (x *NodeIPAddress) GetId() int64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *NodeIPAddress) GetNodeId() int64 { + if x != nil { + return x.NodeId + } + return 0 +} + +func (x *NodeIPAddress) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *NodeIPAddress) GetIp() string { + if x != nil { + return x.Ip + } + return "" +} + +func (x *NodeIPAddress) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *NodeIPAddress) GetState() int64 { + if x != nil { + return x.State + } + return 0 +} + +func (x *NodeIPAddress) GetOrder() int64 { + if x != nil { + return x.Order + } + return 0 +} + +var File_model_node_ip_address_proto protoreflect.FileDescriptor + +var file_model_node_ip_address_proto_rawDesc = []byte{ + 0x0a, 0x1b, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x70, 0x5f, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, + 0x62, 0x22, 0xa9, 0x01, 0x0a, 0x0d, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x0e, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x70, 0x12, + 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x06, 0x5a, + 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_model_node_ip_address_proto_rawDescOnce sync.Once + file_model_node_ip_address_proto_rawDescData = file_model_node_ip_address_proto_rawDesc +) + +func file_model_node_ip_address_proto_rawDescGZIP() []byte { + file_model_node_ip_address_proto_rawDescOnce.Do(func() { + file_model_node_ip_address_proto_rawDescData = protoimpl.X.CompressGZIP(file_model_node_ip_address_proto_rawDescData) + }) + return file_model_node_ip_address_proto_rawDescData +} + +var file_model_node_ip_address_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_model_node_ip_address_proto_goTypes = []interface{}{ + (*NodeIPAddress)(nil), // 0: pb.NodeIPAddress +} +var file_model_node_ip_address_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_model_node_ip_address_proto_init() } +func file_model_node_ip_address_proto_init() { + if File_model_node_ip_address_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_model_node_ip_address_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NodeIPAddress); 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_model_node_ip_address_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_model_node_ip_address_proto_goTypes, + DependencyIndexes: file_model_node_ip_address_proto_depIdxs, + MessageInfos: file_model_node_ip_address_proto_msgTypes, + }.Build() + File_model_node_ip_address_proto = out.File + file_model_node_ip_address_proto_rawDesc = nil + file_model_node_ip_address_proto_goTypes = nil + file_model_node_ip_address_proto_depIdxs = nil +} diff --git a/pkg/rpc/pb/model_node_login.pb.go b/pkg/rpc/pb/model_node_login.pb.go new file mode 100644 index 0000000..75582e2 --- /dev/null +++ b/pkg/rpc/pb/model_node_login.pb.go @@ -0,0 +1,174 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.25.0 +// protoc v3.12.3 +// source: model_node_login.proto + +package pb + +import ( + proto "github.com/golang/protobuf/proto" + 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) +) + +// This is a compile-time assertion that a sufficiently up-to-date version +// of the legacy proto package is being used. +const _ = proto.ProtoPackageIsVersion4 + +type NodeLogin struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Type string `protobuf:"bytes,3,opt,name=type,proto3" json:"type,omitempty"` + Params []byte `protobuf:"bytes,4,opt,name=params,proto3" json:"params,omitempty"` +} + +func (x *NodeLogin) Reset() { + *x = NodeLogin{} + if protoimpl.UnsafeEnabled { + mi := &file_model_node_login_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NodeLogin) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NodeLogin) ProtoMessage() {} + +func (x *NodeLogin) ProtoReflect() protoreflect.Message { + mi := &file_model_node_login_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 NodeLogin.ProtoReflect.Descriptor instead. +func (*NodeLogin) Descriptor() ([]byte, []int) { + return file_model_node_login_proto_rawDescGZIP(), []int{0} +} + +func (x *NodeLogin) GetId() int64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *NodeLogin) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *NodeLogin) GetType() string { + if x != nil { + return x.Type + } + return "" +} + +func (x *NodeLogin) GetParams() []byte { + if x != nil { + return x.Params + } + return nil +} + +var File_model_node_login_proto protoreflect.FileDescriptor + +var file_model_node_login_proto_rawDesc = []byte{ + 0x0a, 0x16, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6c, 0x6f, 0x67, + 0x69, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x22, 0x5b, 0x0a, 0x09, + 0x4e, 0x6f, 0x64, 0x65, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, + 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_model_node_login_proto_rawDescOnce sync.Once + file_model_node_login_proto_rawDescData = file_model_node_login_proto_rawDesc +) + +func file_model_node_login_proto_rawDescGZIP() []byte { + file_model_node_login_proto_rawDescOnce.Do(func() { + file_model_node_login_proto_rawDescData = protoimpl.X.CompressGZIP(file_model_node_login_proto_rawDescData) + }) + return file_model_node_login_proto_rawDescData +} + +var file_model_node_login_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_model_node_login_proto_goTypes = []interface{}{ + (*NodeLogin)(nil), // 0: pb.NodeLogin +} +var file_model_node_login_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_model_node_login_proto_init() } +func file_model_node_login_proto_init() { + if File_model_node_login_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_model_node_login_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NodeLogin); 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_model_node_login_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_model_node_login_proto_goTypes, + DependencyIndexes: file_model_node_login_proto_depIdxs, + MessageInfos: file_model_node_login_proto_msgTypes, + }.Build() + File_model_node_login_proto = out.File + file_model_node_login_proto_rawDesc = nil + file_model_node_login_proto_goTypes = nil + file_model_node_login_proto_depIdxs = nil +} diff --git a/pkg/rpc/pb/model_origin_server.pb.go b/pkg/rpc/pb/model_origin_server.pb.go new file mode 100644 index 0000000..86c0bd8 --- /dev/null +++ b/pkg/rpc/pb/model_origin_server.pb.go @@ -0,0 +1,190 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.25.0 +// protoc v3.12.3 +// source: model_origin_server.proto + +package pb + +import ( + proto "github.com/golang/protobuf/proto" + 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) +) + +// This is a compile-time assertion that a sufficiently up-to-date version +// of the legacy proto package is being used. +const _ = proto.ProtoPackageIsVersion4 + +type OriginServer struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + IsOn bool `protobuf:"varint,2,opt,name=isOn,proto3" json:"isOn,omitempty"` + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` + Addr *NetworkAddress `protobuf:"bytes,4,opt,name=addr,proto3" json:"addr,omitempty"` + Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"` +} + +func (x *OriginServer) Reset() { + *x = OriginServer{} + if protoimpl.UnsafeEnabled { + mi := &file_model_origin_server_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OriginServer) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OriginServer) ProtoMessage() {} + +func (x *OriginServer) ProtoReflect() protoreflect.Message { + mi := &file_model_origin_server_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 OriginServer.ProtoReflect.Descriptor instead. +func (*OriginServer) Descriptor() ([]byte, []int) { + return file_model_origin_server_proto_rawDescGZIP(), []int{0} +} + +func (x *OriginServer) GetId() int64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *OriginServer) GetIsOn() bool { + if x != nil { + return x.IsOn + } + return false +} + +func (x *OriginServer) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *OriginServer) GetAddr() *NetworkAddress { + if x != nil { + return x.Addr + } + return nil +} + +func (x *OriginServer) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +var File_model_origin_server_proto protoreflect.FileDescriptor + +var file_model_origin_server_proto_rawDesc = []byte{ + 0x0a, 0x19, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x1a, + 0x1b, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x90, 0x01, 0x0a, + 0x0c, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, + 0x04, 0x69, 0x73, 0x4f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x69, 0x73, 0x4f, + 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x61, 0x64, 0x64, 0x72, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x04, 0x61, 0x64, 0x64, 0x72, 0x12, 0x20, 0x0a, + 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, + 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_model_origin_server_proto_rawDescOnce sync.Once + file_model_origin_server_proto_rawDescData = file_model_origin_server_proto_rawDesc +) + +func file_model_origin_server_proto_rawDescGZIP() []byte { + file_model_origin_server_proto_rawDescOnce.Do(func() { + file_model_origin_server_proto_rawDescData = protoimpl.X.CompressGZIP(file_model_origin_server_proto_rawDescData) + }) + return file_model_origin_server_proto_rawDescData +} + +var file_model_origin_server_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_model_origin_server_proto_goTypes = []interface{}{ + (*OriginServer)(nil), // 0: pb.OriginServer + (*NetworkAddress)(nil), // 1: pb.NetworkAddress +} +var file_model_origin_server_proto_depIdxs = []int32{ + 1, // 0: pb.OriginServer.addr:type_name -> pb.NetworkAddress + 1, // [1:1] is the sub-list for method output_type + 1, // [1:1] is the sub-list for method input_type + 1, // [1:1] is the sub-list for extension type_name + 1, // [1:1] is the sub-list for extension extendee + 0, // [0:1] is the sub-list for field type_name +} + +func init() { file_model_origin_server_proto_init() } +func file_model_origin_server_proto_init() { + if File_model_origin_server_proto != nil { + return + } + file_model_network_address_proto_init() + if !protoimpl.UnsafeEnabled { + file_model_origin_server_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OriginServer); 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_model_origin_server_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_model_origin_server_proto_goTypes, + DependencyIndexes: file_model_origin_server_proto_depIdxs, + MessageInfos: file_model_origin_server_proto_msgTypes, + }.Build() + File_model_origin_server_proto = out.File + file_model_origin_server_proto_rawDesc = nil + file_model_origin_server_proto_goTypes = nil + file_model_origin_server_proto_depIdxs = nil +} diff --git a/pkg/rpc/pb/model_server.pb.go b/pkg/rpc/pb/model_server.pb.go new file mode 100644 index 0000000..3051d5e --- /dev/null +++ b/pkg/rpc/pb/model_server.pb.go @@ -0,0 +1,229 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.25.0 +// protoc v3.12.3 +// source: model_server.proto + +package pb + +import ( + proto "github.com/golang/protobuf/proto" + 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) +) + +// This is a compile-time assertion that a sufficiently up-to-date version +// of the legacy proto package is being used. +const _ = proto.ProtoPackageIsVersion4 + +type Server struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + Config []byte `protobuf:"bytes,2,opt,name=config,proto3" json:"config,omitempty"` + Type string `protobuf:"bytes,3,opt,name=type,proto3" json:"type,omitempty"` + Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` + Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"` + IncludeNodes []byte `protobuf:"bytes,6,opt,name=includeNodes,proto3" json:"includeNodes,omitempty"` + ExcludeNodes []byte `protobuf:"bytes,7,opt,name=excludeNodes,proto3" json:"excludeNodes,omitempty"` + CreatedAt int64 `protobuf:"varint,8,opt,name=createdAt,proto3" json:"createdAt,omitempty"` + Cluster *NodeCluster `protobuf:"bytes,10,opt,name=cluster,proto3" json:"cluster,omitempty"` +} + +func (x *Server) Reset() { + *x = Server{} + if protoimpl.UnsafeEnabled { + mi := &file_model_server_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Server) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Server) ProtoMessage() {} + +func (x *Server) ProtoReflect() protoreflect.Message { + mi := &file_model_server_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 Server.ProtoReflect.Descriptor instead. +func (*Server) Descriptor() ([]byte, []int) { + return file_model_server_proto_rawDescGZIP(), []int{0} +} + +func (x *Server) GetId() int64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *Server) GetConfig() []byte { + if x != nil { + return x.Config + } + return nil +} + +func (x *Server) GetType() string { + if x != nil { + return x.Type + } + return "" +} + +func (x *Server) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Server) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *Server) GetIncludeNodes() []byte { + if x != nil { + return x.IncludeNodes + } + return nil +} + +func (x *Server) GetExcludeNodes() []byte { + if x != nil { + return x.ExcludeNodes + } + return nil +} + +func (x *Server) GetCreatedAt() int64 { + if x != nil { + return x.CreatedAt + } + return 0 +} + +func (x *Server) GetCluster() *NodeCluster { + if x != nil { + return x.Cluster + } + return nil +} + +var File_model_server_proto protoreflect.FileDescriptor + +var file_model_server_proto_rawDesc = []byte{ + 0x0a, 0x12, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x1a, 0x18, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, + 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x22, 0x8b, 0x02, 0x0a, 0x06, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, + 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, + 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x22, 0x0a, 0x0c, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4e, 0x6f, + 0x64, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4e, 0x6f, + 0x64, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x65, 0x78, 0x63, 0x6c, 0x75, + 0x64, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x41, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x29, 0x0a, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, + 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_model_server_proto_rawDescOnce sync.Once + file_model_server_proto_rawDescData = file_model_server_proto_rawDesc +) + +func file_model_server_proto_rawDescGZIP() []byte { + file_model_server_proto_rawDescOnce.Do(func() { + file_model_server_proto_rawDescData = protoimpl.X.CompressGZIP(file_model_server_proto_rawDescData) + }) + return file_model_server_proto_rawDescData +} + +var file_model_server_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_model_server_proto_goTypes = []interface{}{ + (*Server)(nil), // 0: pb.Server + (*NodeCluster)(nil), // 1: pb.NodeCluster +} +var file_model_server_proto_depIdxs = []int32{ + 1, // 0: pb.Server.cluster:type_name -> pb.NodeCluster + 1, // [1:1] is the sub-list for method output_type + 1, // [1:1] is the sub-list for method input_type + 1, // [1:1] is the sub-list for extension type_name + 1, // [1:1] is the sub-list for extension extendee + 0, // [0:1] is the sub-list for field type_name +} + +func init() { file_model_server_proto_init() } +func file_model_server_proto_init() { + if File_model_server_proto != nil { + return + } + file_model_node_cluster_proto_init() + if !protoimpl.UnsafeEnabled { + file_model_server_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Server); 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_model_server_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_model_server_proto_goTypes, + DependencyIndexes: file_model_server_proto_depIdxs, + MessageInfos: file_model_server_proto_msgTypes, + }.Build() + File_model_server_proto = out.File + file_model_server_proto_rawDesc = nil + file_model_server_proto_goTypes = nil + file_model_server_proto_depIdxs = nil +} diff --git a/pkg/rpc/pb/service_admin.pb.go b/pkg/rpc/pb/service_admin.pb.go new file mode 100644 index 0000000..1e18e36 --- /dev/null +++ b/pkg/rpc/pb/service_admin.pb.go @@ -0,0 +1,884 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.25.0 +// protoc v3.12.3 +// source: service_admin.proto + +package pb + +import ( + context "context" + proto "github.com/golang/protobuf/proto" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + 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) +) + +// This is a compile-time assertion that a sufficiently up-to-date version +// of the legacy proto package is being used. +const _ = proto.ProtoPackageIsVersion4 + +type LoginAdminRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Username string `protobuf:"bytes,1,opt,name=username,proto3" json:"username,omitempty"` + Password string `protobuf:"bytes,2,opt,name=password,proto3" json:"password,omitempty"` +} + +func (x *LoginAdminRequest) Reset() { + *x = LoginAdminRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_admin_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LoginAdminRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LoginAdminRequest) ProtoMessage() {} + +func (x *LoginAdminRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_admin_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 LoginAdminRequest.ProtoReflect.Descriptor instead. +func (*LoginAdminRequest) Descriptor() ([]byte, []int) { + return file_service_admin_proto_rawDescGZIP(), []int{0} +} + +func (x *LoginAdminRequest) GetUsername() string { + if x != nil { + return x.Username + } + return "" +} + +func (x *LoginAdminRequest) GetPassword() string { + if x != nil { + return x.Password + } + return "" +} + +type LoginAdminResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AdminId int64 `protobuf:"varint,1,opt,name=adminId,proto3" json:"adminId,omitempty"` + IsOk bool `protobuf:"varint,2,opt,name=isOk,proto3" json:"isOk,omitempty"` + Message string `protobuf:"bytes,3,opt,name=message,proto3" json:"message,omitempty"` +} + +func (x *LoginAdminResponse) Reset() { + *x = LoginAdminResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_admin_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LoginAdminResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LoginAdminResponse) ProtoMessage() {} + +func (x *LoginAdminResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_admin_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 LoginAdminResponse.ProtoReflect.Descriptor instead. +func (*LoginAdminResponse) Descriptor() ([]byte, []int) { + return file_service_admin_proto_rawDescGZIP(), []int{1} +} + +func (x *LoginAdminResponse) GetAdminId() int64 { + if x != nil { + return x.AdminId + } + return 0 +} + +func (x *LoginAdminResponse) GetIsOk() bool { + if x != nil { + return x.IsOk + } + return false +} + +func (x *LoginAdminResponse) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + +type CreateAdminLogRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Level string `protobuf:"bytes,1,opt,name=level,proto3" json:"level,omitempty"` + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` + Action string `protobuf:"bytes,3,opt,name=action,proto3" json:"action,omitempty"` + Ip string `protobuf:"bytes,4,opt,name=ip,proto3" json:"ip,omitempty"` +} + +func (x *CreateAdminLogRequest) Reset() { + *x = CreateAdminLogRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_admin_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateAdminLogRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateAdminLogRequest) ProtoMessage() {} + +func (x *CreateAdminLogRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_admin_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 CreateAdminLogRequest.ProtoReflect.Descriptor instead. +func (*CreateAdminLogRequest) Descriptor() ([]byte, []int) { + return file_service_admin_proto_rawDescGZIP(), []int{2} +} + +func (x *CreateAdminLogRequest) GetLevel() string { + if x != nil { + return x.Level + } + return "" +} + +func (x *CreateAdminLogRequest) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *CreateAdminLogRequest) GetAction() string { + if x != nil { + return x.Action + } + return "" +} + +func (x *CreateAdminLogRequest) GetIp() string { + if x != nil { + return x.Ip + } + return "" +} + +type CreateAdminLogResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + IsOk bool `protobuf:"varint,1,opt,name=isOk,proto3" json:"isOk,omitempty"` +} + +func (x *CreateAdminLogResponse) Reset() { + *x = CreateAdminLogResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_admin_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateAdminLogResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateAdminLogResponse) ProtoMessage() {} + +func (x *CreateAdminLogResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_admin_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 CreateAdminLogResponse.ProtoReflect.Descriptor instead. +func (*CreateAdminLogResponse) Descriptor() ([]byte, []int) { + return file_service_admin_proto_rawDescGZIP(), []int{3} +} + +func (x *CreateAdminLogResponse) GetIsOk() bool { + if x != nil { + return x.IsOk + } + return false +} + +type CheckAdminExistsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AdminId int64 `protobuf:"varint,1,opt,name=adminId,proto3" json:"adminId,omitempty"` +} + +func (x *CheckAdminExistsRequest) Reset() { + *x = CheckAdminExistsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_admin_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CheckAdminExistsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CheckAdminExistsRequest) ProtoMessage() {} + +func (x *CheckAdminExistsRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_admin_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 CheckAdminExistsRequest.ProtoReflect.Descriptor instead. +func (*CheckAdminExistsRequest) Descriptor() ([]byte, []int) { + return file_service_admin_proto_rawDescGZIP(), []int{4} +} + +func (x *CheckAdminExistsRequest) GetAdminId() int64 { + if x != nil { + return x.AdminId + } + return 0 +} + +type CheckAdminExistsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + IsOk bool `protobuf:"varint,1,opt,name=isOk,proto3" json:"isOk,omitempty"` + Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` +} + +func (x *CheckAdminExistsResponse) Reset() { + *x = CheckAdminExistsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_admin_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CheckAdminExistsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CheckAdminExistsResponse) ProtoMessage() {} + +func (x *CheckAdminExistsResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_admin_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 CheckAdminExistsResponse.ProtoReflect.Descriptor instead. +func (*CheckAdminExistsResponse) Descriptor() ([]byte, []int) { + return file_service_admin_proto_rawDescGZIP(), []int{5} +} + +func (x *CheckAdminExistsResponse) GetIsOk() bool { + if x != nil { + return x.IsOk + } + return false +} + +func (x *CheckAdminExistsResponse) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + +type FindAdminFullnameRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AdminId int64 `protobuf:"varint,1,opt,name=adminId,proto3" json:"adminId,omitempty"` +} + +func (x *FindAdminFullnameRequest) Reset() { + *x = FindAdminFullnameRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_admin_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FindAdminFullnameRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FindAdminFullnameRequest) ProtoMessage() {} + +func (x *FindAdminFullnameRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_admin_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 FindAdminFullnameRequest.ProtoReflect.Descriptor instead. +func (*FindAdminFullnameRequest) Descriptor() ([]byte, []int) { + return file_service_admin_proto_rawDescGZIP(), []int{6} +} + +func (x *FindAdminFullnameRequest) GetAdminId() int64 { + if x != nil { + return x.AdminId + } + return 0 +} + +type FindAdminFullnameResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Fullname string `protobuf:"bytes,1,opt,name=fullname,proto3" json:"fullname,omitempty"` +} + +func (x *FindAdminFullnameResponse) Reset() { + *x = FindAdminFullnameResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_admin_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FindAdminFullnameResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FindAdminFullnameResponse) ProtoMessage() {} + +func (x *FindAdminFullnameResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_admin_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 FindAdminFullnameResponse.ProtoReflect.Descriptor instead. +func (*FindAdminFullnameResponse) Descriptor() ([]byte, []int) { + return file_service_admin_proto_rawDescGZIP(), []int{7} +} + +func (x *FindAdminFullnameResponse) GetFullname() string { + if x != nil { + return x.Fullname + } + return "" +} + +var File_service_admin_proto protoreflect.FileDescriptor + +var file_service_admin_proto_rawDesc = []byte{ + 0x0a, 0x13, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x22, 0x4b, 0x0a, 0x11, 0x4c, 0x6f, 0x67, + 0x69, 0x6e, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, + 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x5c, 0x0a, 0x12, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x41, + 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x73, 0x4f, 0x6b, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x69, 0x73, 0x4f, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x22, 0x77, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x64, + 0x6d, 0x69, 0x6e, 0x4c, 0x6f, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, + 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x65, + 0x76, 0x65, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x70, 0x22, 0x2c, 0x0a, + 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4c, 0x6f, 0x67, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x73, 0x4f, 0x6b, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x69, 0x73, 0x4f, 0x6b, 0x22, 0x33, 0x0a, 0x17, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x49, 0x64, + 0x22, 0x48, 0x0a, 0x18, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x45, 0x78, + 0x69, 0x73, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, + 0x69, 0x73, 0x4f, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x69, 0x73, 0x4f, 0x6b, + 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x34, 0x0a, 0x18, 0x46, 0x69, + 0x6e, 0x64, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x46, 0x75, 0x6c, 0x6c, 0x6e, 0x61, 0x6d, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x49, 0x64, + 0x22, 0x37, 0x0a, 0x19, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x46, 0x75, 0x6c, + 0x6c, 0x6e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x66, 0x75, 0x6c, 0x6c, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x66, 0x75, 0x6c, 0x6c, 0x6e, 0x61, 0x6d, 0x65, 0x32, 0xbd, 0x02, 0x0a, 0x0c, 0x41, 0x64, + 0x6d, 0x69, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x3d, 0x0a, 0x0a, 0x6c, 0x6f, + 0x67, 0x69, 0x6e, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x15, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x6f, + 0x67, 0x69, 0x6e, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x16, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x49, 0x0a, 0x0e, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4c, 0x6f, 0x67, 0x12, 0x19, 0x2e, 0x70, 0x62, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4c, 0x6f, 0x67, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4c, 0x6f, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x10, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x41, 0x64, 0x6d, + 0x69, 0x6e, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x12, 0x1b, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x68, + 0x65, 0x63, 0x6b, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x11, 0x66, 0x69, 0x6e, 0x64, 0x41, 0x64, 0x6d, + 0x69, 0x6e, 0x46, 0x75, 0x6c, 0x6c, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x2e, + 0x46, 0x69, 0x6e, 0x64, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x46, 0x75, 0x6c, 0x6c, 0x6e, 0x61, 0x6d, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, + 0x6e, 0x64, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x46, 0x75, 0x6c, 0x6c, 0x6e, 0x61, 0x6d, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, + 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_service_admin_proto_rawDescOnce sync.Once + file_service_admin_proto_rawDescData = file_service_admin_proto_rawDesc +) + +func file_service_admin_proto_rawDescGZIP() []byte { + file_service_admin_proto_rawDescOnce.Do(func() { + file_service_admin_proto_rawDescData = protoimpl.X.CompressGZIP(file_service_admin_proto_rawDescData) + }) + return file_service_admin_proto_rawDescData +} + +var file_service_admin_proto_msgTypes = make([]protoimpl.MessageInfo, 8) +var file_service_admin_proto_goTypes = []interface{}{ + (*LoginAdminRequest)(nil), // 0: pb.LoginAdminRequest + (*LoginAdminResponse)(nil), // 1: pb.LoginAdminResponse + (*CreateAdminLogRequest)(nil), // 2: pb.CreateAdminLogRequest + (*CreateAdminLogResponse)(nil), // 3: pb.CreateAdminLogResponse + (*CheckAdminExistsRequest)(nil), // 4: pb.CheckAdminExistsRequest + (*CheckAdminExistsResponse)(nil), // 5: pb.CheckAdminExistsResponse + (*FindAdminFullnameRequest)(nil), // 6: pb.FindAdminFullnameRequest + (*FindAdminFullnameResponse)(nil), // 7: pb.FindAdminFullnameResponse +} +var file_service_admin_proto_depIdxs = []int32{ + 0, // 0: pb.AdminService.loginAdmin:input_type -> pb.LoginAdminRequest + 2, // 1: pb.AdminService.createAdminLog:input_type -> pb.CreateAdminLogRequest + 4, // 2: pb.AdminService.checkAdminExists:input_type -> pb.CheckAdminExistsRequest + 6, // 3: pb.AdminService.findAdminFullname:input_type -> pb.FindAdminFullnameRequest + 1, // 4: pb.AdminService.loginAdmin:output_type -> pb.LoginAdminResponse + 3, // 5: pb.AdminService.createAdminLog:output_type -> pb.CreateAdminLogResponse + 5, // 6: pb.AdminService.checkAdminExists:output_type -> pb.CheckAdminExistsResponse + 7, // 7: pb.AdminService.findAdminFullname:output_type -> pb.FindAdminFullnameResponse + 4, // [4:8] is the sub-list for method output_type + 0, // [0:4] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_service_admin_proto_init() } +func file_service_admin_proto_init() { + if File_service_admin_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_service_admin_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LoginAdminRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_admin_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LoginAdminResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_admin_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateAdminLogRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_admin_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateAdminLogResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_admin_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CheckAdminExistsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_admin_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CheckAdminExistsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_admin_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FindAdminFullnameRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_admin_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FindAdminFullnameResponse); 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_service_admin_proto_rawDesc, + NumEnums: 0, + NumMessages: 8, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_service_admin_proto_goTypes, + DependencyIndexes: file_service_admin_proto_depIdxs, + MessageInfos: file_service_admin_proto_msgTypes, + }.Build() + File_service_admin_proto = out.File + file_service_admin_proto_rawDesc = nil + file_service_admin_proto_goTypes = nil + file_service_admin_proto_depIdxs = nil +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConnInterface + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion6 + +// AdminServiceClient is the client API for AdminService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type AdminServiceClient interface { + // 登录 + LoginAdmin(ctx context.Context, in *LoginAdminRequest, opts ...grpc.CallOption) (*LoginAdminResponse, error) + // 创建操作日志 + CreateAdminLog(ctx context.Context, in *CreateAdminLogRequest, opts ...grpc.CallOption) (*CreateAdminLogResponse, error) + // 检查管理员是否存在 + CheckAdminExists(ctx context.Context, in *CheckAdminExistsRequest, opts ...grpc.CallOption) (*CheckAdminExistsResponse, error) + // 获取管理员名称 + FindAdminFullname(ctx context.Context, in *FindAdminFullnameRequest, opts ...grpc.CallOption) (*FindAdminFullnameResponse, error) +} + +type adminServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewAdminServiceClient(cc grpc.ClientConnInterface) AdminServiceClient { + return &adminServiceClient{cc} +} + +func (c *adminServiceClient) LoginAdmin(ctx context.Context, in *LoginAdminRequest, opts ...grpc.CallOption) (*LoginAdminResponse, error) { + out := new(LoginAdminResponse) + err := c.cc.Invoke(ctx, "/pb.AdminService/loginAdmin", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *adminServiceClient) CreateAdminLog(ctx context.Context, in *CreateAdminLogRequest, opts ...grpc.CallOption) (*CreateAdminLogResponse, error) { + out := new(CreateAdminLogResponse) + err := c.cc.Invoke(ctx, "/pb.AdminService/createAdminLog", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *adminServiceClient) CheckAdminExists(ctx context.Context, in *CheckAdminExistsRequest, opts ...grpc.CallOption) (*CheckAdminExistsResponse, error) { + out := new(CheckAdminExistsResponse) + err := c.cc.Invoke(ctx, "/pb.AdminService/checkAdminExists", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *adminServiceClient) FindAdminFullname(ctx context.Context, in *FindAdminFullnameRequest, opts ...grpc.CallOption) (*FindAdminFullnameResponse, error) { + out := new(FindAdminFullnameResponse) + err := c.cc.Invoke(ctx, "/pb.AdminService/findAdminFullname", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// AdminServiceServer is the server API for AdminService service. +type AdminServiceServer interface { + // 登录 + LoginAdmin(context.Context, *LoginAdminRequest) (*LoginAdminResponse, error) + // 创建操作日志 + CreateAdminLog(context.Context, *CreateAdminLogRequest) (*CreateAdminLogResponse, error) + // 检查管理员是否存在 + CheckAdminExists(context.Context, *CheckAdminExistsRequest) (*CheckAdminExistsResponse, error) + // 获取管理员名称 + FindAdminFullname(context.Context, *FindAdminFullnameRequest) (*FindAdminFullnameResponse, error) +} + +// UnimplementedAdminServiceServer can be embedded to have forward compatible implementations. +type UnimplementedAdminServiceServer struct { +} + +func (*UnimplementedAdminServiceServer) LoginAdmin(context.Context, *LoginAdminRequest) (*LoginAdminResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method LoginAdmin not implemented") +} +func (*UnimplementedAdminServiceServer) CreateAdminLog(context.Context, *CreateAdminLogRequest) (*CreateAdminLogResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateAdminLog not implemented") +} +func (*UnimplementedAdminServiceServer) CheckAdminExists(context.Context, *CheckAdminExistsRequest) (*CheckAdminExistsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CheckAdminExists not implemented") +} +func (*UnimplementedAdminServiceServer) FindAdminFullname(context.Context, *FindAdminFullnameRequest) (*FindAdminFullnameResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method FindAdminFullname not implemented") +} + +func RegisterAdminServiceServer(s *grpc.Server, srv AdminServiceServer) { + s.RegisterService(&_AdminService_serviceDesc, srv) +} + +func _AdminService_LoginAdmin_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(LoginAdminRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdminServiceServer).LoginAdmin(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.AdminService/LoginAdmin", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdminServiceServer).LoginAdmin(ctx, req.(*LoginAdminRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AdminService_CreateAdminLog_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateAdminLogRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdminServiceServer).CreateAdminLog(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.AdminService/CreateAdminLog", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdminServiceServer).CreateAdminLog(ctx, req.(*CreateAdminLogRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AdminService_CheckAdminExists_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CheckAdminExistsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdminServiceServer).CheckAdminExists(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.AdminService/CheckAdminExists", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdminServiceServer).CheckAdminExists(ctx, req.(*CheckAdminExistsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AdminService_FindAdminFullname_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(FindAdminFullnameRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdminServiceServer).FindAdminFullname(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.AdminService/FindAdminFullname", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdminServiceServer).FindAdminFullname(ctx, req.(*FindAdminFullnameRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _AdminService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "pb.AdminService", + HandlerType: (*AdminServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "loginAdmin", + Handler: _AdminService_LoginAdmin_Handler, + }, + { + MethodName: "createAdminLog", + Handler: _AdminService_CreateAdminLog_Handler, + }, + { + MethodName: "checkAdminExists", + Handler: _AdminService_CheckAdminExists_Handler, + }, + { + MethodName: "findAdminFullname", + Handler: _AdminService_FindAdminFullname_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "service_admin.proto", +} diff --git a/pkg/rpc/pb/service_api_node.pb.go b/pkg/rpc/pb/service_api_node.pb.go new file mode 100644 index 0000000..7105fb6 --- /dev/null +++ b/pkg/rpc/pb/service_api_node.pb.go @@ -0,0 +1,1385 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.25.0 +// protoc v3.12.3 +// source: service_api_node.proto + +package pb + +import ( + context "context" + proto "github.com/golang/protobuf/proto" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + 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) +) + +// This is a compile-time assertion that a sufficiently up-to-date version +// of the legacy proto package is being used. +const _ = proto.ProtoPackageIsVersion4 + +// 创建API节点 +type CreateAPINodeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` + Host string `protobuf:"bytes,3,opt,name=host,proto3" json:"host,omitempty"` + Port int32 `protobuf:"varint,4,opt,name=port,proto3" json:"port,omitempty"` +} + +func (x *CreateAPINodeRequest) Reset() { + *x = CreateAPINodeRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_api_node_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateAPINodeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateAPINodeRequest) ProtoMessage() {} + +func (x *CreateAPINodeRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_api_node_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateAPINodeRequest.ProtoReflect.Descriptor instead. +func (*CreateAPINodeRequest) Descriptor() ([]byte, []int) { + return file_service_api_node_proto_rawDescGZIP(), []int{0} +} + +func (x *CreateAPINodeRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *CreateAPINodeRequest) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *CreateAPINodeRequest) GetHost() string { + if x != nil { + return x.Host + } + return "" +} + +func (x *CreateAPINodeRequest) GetPort() int32 { + if x != nil { + return x.Port + } + return 0 +} + +type CreateAPINodeResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + NodeId int64 `protobuf:"varint,1,opt,name=nodeId,proto3" json:"nodeId,omitempty"` +} + +func (x *CreateAPINodeResponse) Reset() { + *x = CreateAPINodeResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_api_node_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateAPINodeResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateAPINodeResponse) ProtoMessage() {} + +func (x *CreateAPINodeResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_api_node_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 CreateAPINodeResponse.ProtoReflect.Descriptor instead. +func (*CreateAPINodeResponse) Descriptor() ([]byte, []int) { + return file_service_api_node_proto_rawDescGZIP(), []int{1} +} + +func (x *CreateAPINodeResponse) GetNodeId() int64 { + if x != nil { + return x.NodeId + } + return 0 +} + +// 修改API节点 +type UpdateAPINodeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + NodeId int64 `protobuf:"varint,1,opt,name=nodeId,proto3" json:"nodeId,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` + Host string `protobuf:"bytes,4,opt,name=host,proto3" json:"host,omitempty"` + Port int32 `protobuf:"varint,5,opt,name=port,proto3" json:"port,omitempty"` +} + +func (x *UpdateAPINodeRequest) Reset() { + *x = UpdateAPINodeRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_api_node_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateAPINodeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateAPINodeRequest) ProtoMessage() {} + +func (x *UpdateAPINodeRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_api_node_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 UpdateAPINodeRequest.ProtoReflect.Descriptor instead. +func (*UpdateAPINodeRequest) Descriptor() ([]byte, []int) { + return file_service_api_node_proto_rawDescGZIP(), []int{2} +} + +func (x *UpdateAPINodeRequest) GetNodeId() int64 { + if x != nil { + return x.NodeId + } + return 0 +} + +func (x *UpdateAPINodeRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *UpdateAPINodeRequest) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *UpdateAPINodeRequest) GetHost() string { + if x != nil { + return x.Host + } + return "" +} + +func (x *UpdateAPINodeRequest) GetPort() int32 { + if x != nil { + return x.Port + } + return 0 +} + +type UpdateAPINodeResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *UpdateAPINodeResponse) Reset() { + *x = UpdateAPINodeResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_api_node_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateAPINodeResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateAPINodeResponse) ProtoMessage() {} + +func (x *UpdateAPINodeResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_api_node_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 UpdateAPINodeResponse.ProtoReflect.Descriptor instead. +func (*UpdateAPINodeResponse) Descriptor() ([]byte, []int) { + return file_service_api_node_proto_rawDescGZIP(), []int{3} +} + +// 删除API节点 +type DeleteAPINodeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + NodeId int64 `protobuf:"varint,1,opt,name=nodeId,proto3" json:"nodeId,omitempty"` +} + +func (x *DeleteAPINodeRequest) Reset() { + *x = DeleteAPINodeRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_api_node_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteAPINodeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteAPINodeRequest) ProtoMessage() {} + +func (x *DeleteAPINodeRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_api_node_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 DeleteAPINodeRequest.ProtoReflect.Descriptor instead. +func (*DeleteAPINodeRequest) Descriptor() ([]byte, []int) { + return file_service_api_node_proto_rawDescGZIP(), []int{4} +} + +func (x *DeleteAPINodeRequest) GetNodeId() int64 { + if x != nil { + return x.NodeId + } + return 0 +} + +type DeleteAPINodeResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *DeleteAPINodeResponse) Reset() { + *x = DeleteAPINodeResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_api_node_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteAPINodeResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteAPINodeResponse) ProtoMessage() {} + +func (x *DeleteAPINodeResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_api_node_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 DeleteAPINodeResponse.ProtoReflect.Descriptor instead. +func (*DeleteAPINodeResponse) Descriptor() ([]byte, []int) { + return file_service_api_node_proto_rawDescGZIP(), []int{5} +} + +// 列出所有可用API节点 +type FindAllEnabledAPINodesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *FindAllEnabledAPINodesRequest) Reset() { + *x = FindAllEnabledAPINodesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_api_node_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FindAllEnabledAPINodesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FindAllEnabledAPINodesRequest) ProtoMessage() {} + +func (x *FindAllEnabledAPINodesRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_api_node_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 FindAllEnabledAPINodesRequest.ProtoReflect.Descriptor instead. +func (*FindAllEnabledAPINodesRequest) Descriptor() ([]byte, []int) { + return file_service_api_node_proto_rawDescGZIP(), []int{6} +} + +type FindAllEnabledAPINodesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Nodes []*APINode `protobuf:"bytes,1,rep,name=nodes,proto3" json:"nodes,omitempty"` +} + +func (x *FindAllEnabledAPINodesResponse) Reset() { + *x = FindAllEnabledAPINodesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_api_node_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FindAllEnabledAPINodesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FindAllEnabledAPINodesResponse) ProtoMessage() {} + +func (x *FindAllEnabledAPINodesResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_api_node_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 FindAllEnabledAPINodesResponse.ProtoReflect.Descriptor instead. +func (*FindAllEnabledAPINodesResponse) Descriptor() ([]byte, []int) { + return file_service_api_node_proto_rawDescGZIP(), []int{7} +} + +func (x *FindAllEnabledAPINodesResponse) GetNodes() []*APINode { + if x != nil { + return x.Nodes + } + return nil +} + +// 计算API节点数量 +type CountAllEnabledAPINodesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *CountAllEnabledAPINodesRequest) Reset() { + *x = CountAllEnabledAPINodesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_api_node_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CountAllEnabledAPINodesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CountAllEnabledAPINodesRequest) ProtoMessage() {} + +func (x *CountAllEnabledAPINodesRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_api_node_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 CountAllEnabledAPINodesRequest.ProtoReflect.Descriptor instead. +func (*CountAllEnabledAPINodesRequest) Descriptor() ([]byte, []int) { + return file_service_api_node_proto_rawDescGZIP(), []int{8} +} + +type CountAllEnabledAPINodesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Count int64 `protobuf:"varint,1,opt,name=count,proto3" json:"count,omitempty"` +} + +func (x *CountAllEnabledAPINodesResponse) Reset() { + *x = CountAllEnabledAPINodesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_api_node_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CountAllEnabledAPINodesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CountAllEnabledAPINodesResponse) ProtoMessage() {} + +func (x *CountAllEnabledAPINodesResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_api_node_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 CountAllEnabledAPINodesResponse.ProtoReflect.Descriptor instead. +func (*CountAllEnabledAPINodesResponse) Descriptor() ([]byte, []int) { + return file_service_api_node_proto_rawDescGZIP(), []int{9} +} + +func (x *CountAllEnabledAPINodesResponse) GetCount() int64 { + if x != nil { + return x.Count + } + return 0 +} + +// 列出单页的API节点 +type ListEnabledAPINodesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Offset int64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` + Size int64 `protobuf:"varint,2,opt,name=size,proto3" json:"size,omitempty"` +} + +func (x *ListEnabledAPINodesRequest) Reset() { + *x = ListEnabledAPINodesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_api_node_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListEnabledAPINodesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListEnabledAPINodesRequest) ProtoMessage() {} + +func (x *ListEnabledAPINodesRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_api_node_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 ListEnabledAPINodesRequest.ProtoReflect.Descriptor instead. +func (*ListEnabledAPINodesRequest) Descriptor() ([]byte, []int) { + return file_service_api_node_proto_rawDescGZIP(), []int{10} +} + +func (x *ListEnabledAPINodesRequest) GetOffset() int64 { + if x != nil { + return x.Offset + } + return 0 +} + +func (x *ListEnabledAPINodesRequest) GetSize() int64 { + if x != nil { + return x.Size + } + return 0 +} + +type ListEnabledAPINodesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Nodes []*APINode `protobuf:"bytes,1,rep,name=nodes,proto3" json:"nodes,omitempty"` +} + +func (x *ListEnabledAPINodesResponse) Reset() { + *x = ListEnabledAPINodesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_api_node_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListEnabledAPINodesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListEnabledAPINodesResponse) ProtoMessage() {} + +func (x *ListEnabledAPINodesResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_api_node_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 ListEnabledAPINodesResponse.ProtoReflect.Descriptor instead. +func (*ListEnabledAPINodesResponse) Descriptor() ([]byte, []int) { + return file_service_api_node_proto_rawDescGZIP(), []int{11} +} + +func (x *ListEnabledAPINodesResponse) GetNodes() []*APINode { + if x != nil { + return x.Nodes + } + return nil +} + +// 根据ID查找节点 +type FindEnabledAPINodeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + NodeId int64 `protobuf:"varint,1,opt,name=nodeId,proto3" json:"nodeId,omitempty"` +} + +func (x *FindEnabledAPINodeRequest) Reset() { + *x = FindEnabledAPINodeRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_api_node_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FindEnabledAPINodeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FindEnabledAPINodeRequest) ProtoMessage() {} + +func (x *FindEnabledAPINodeRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_api_node_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 FindEnabledAPINodeRequest.ProtoReflect.Descriptor instead. +func (*FindEnabledAPINodeRequest) Descriptor() ([]byte, []int) { + return file_service_api_node_proto_rawDescGZIP(), []int{12} +} + +func (x *FindEnabledAPINodeRequest) GetNodeId() int64 { + if x != nil { + return x.NodeId + } + return 0 +} + +type FindEnabledAPINodeResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Node *APINode `protobuf:"bytes,1,opt,name=node,proto3" json:"node,omitempty"` +} + +func (x *FindEnabledAPINodeResponse) Reset() { + *x = FindEnabledAPINodeResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_api_node_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FindEnabledAPINodeResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FindEnabledAPINodeResponse) ProtoMessage() {} + +func (x *FindEnabledAPINodeResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_api_node_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 FindEnabledAPINodeResponse.ProtoReflect.Descriptor instead. +func (*FindEnabledAPINodeResponse) Descriptor() ([]byte, []int) { + return file_service_api_node_proto_rawDescGZIP(), []int{13} +} + +func (x *FindEnabledAPINodeResponse) GetNode() *APINode { + if x != nil { + return x.Node + } + return nil +} + +var File_service_api_node_proto protoreflect.FileDescriptor + +var file_service_api_node_proto_rawDesc = []byte{ + 0x0a, 0x16, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x6e, 0x6f, + 0x64, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x1a, 0x14, 0x6d, 0x6f, + 0x64, 0x65, 0x6c, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x22, 0x74, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x50, 0x49, 0x4e, + 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, + 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x68, 0x6f, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x2f, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x41, 0x50, 0x49, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x22, 0x8c, 0x01, 0x0a, 0x14, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x41, 0x50, 0x49, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, + 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x68, 0x6f, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x17, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x41, 0x50, 0x49, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x2e, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x50, 0x49, 0x4e, 0x6f, + 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, + 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, + 0x64, 0x22, 0x17, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x50, 0x49, 0x4e, 0x6f, + 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1f, 0x0a, 0x1d, 0x46, 0x69, + 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x41, 0x50, 0x49, 0x4e, + 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x43, 0x0a, 0x1e, 0x46, + 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x41, 0x50, 0x49, + 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, + 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70, + 0x62, 0x2e, 0x41, 0x50, 0x49, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, + 0x22, 0x20, 0x0a, 0x1e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x41, 0x50, 0x49, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x22, 0x37, 0x0a, 0x1f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x64, 0x41, 0x50, 0x49, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x48, 0x0a, 0x1a, 0x4c, + 0x69, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x41, 0x50, 0x49, 0x4e, 0x6f, 0x64, + 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x04, 0x73, 0x69, 0x7a, 0x65, 0x22, 0x40, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x41, 0x50, 0x49, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70, 0x62, 0x2e, 0x41, 0x50, 0x49, 0x4e, 0x6f, 0x64, 0x65, + 0x52, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x22, 0x33, 0x0a, 0x19, 0x46, 0x69, 0x6e, 0x64, 0x45, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x41, 0x50, 0x49, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x22, 0x3d, 0x0a, 0x1a, + 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x41, 0x50, 0x49, 0x4e, 0x6f, + 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x04, 0x6e, 0x6f, + 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70, 0x62, 0x2e, 0x41, 0x50, + 0x49, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x32, 0xd4, 0x04, 0x0a, 0x0e, + 0x41, 0x50, 0x49, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x44, + 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x50, 0x49, 0x4e, 0x6f, 0x64, 0x65, 0x12, + 0x18, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x50, 0x49, 0x4e, 0x6f, + 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x70, 0x62, 0x2e, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x50, 0x49, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, 0x0d, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x50, + 0x49, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x41, 0x50, 0x49, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x19, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x50, 0x49, 0x4e, 0x6f, + 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, 0x0d, 0x64, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x41, 0x50, 0x49, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x2e, 0x70, 0x62, + 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x50, 0x49, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x41, 0x50, 0x49, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x5f, 0x0a, 0x16, 0x66, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x41, 0x50, 0x49, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x21, 0x2e, 0x70, 0x62, 0x2e, + 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x41, 0x50, + 0x49, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, + 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x64, 0x41, 0x50, 0x49, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x62, 0x0a, 0x17, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x41, 0x50, 0x49, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x22, 0x2e, 0x70, + 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x64, 0x41, 0x50, 0x49, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x23, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x64, 0x41, 0x50, 0x49, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x56, 0x0a, 0x13, 0x6c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x41, 0x50, 0x49, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x1e, 0x2e, 0x70, + 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x41, 0x50, 0x49, + 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x70, + 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x41, 0x50, 0x49, + 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, + 0x12, 0x66, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x41, 0x50, 0x49, 0x4e, + 0x6f, 0x64, 0x65, 0x12, 0x1d, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x41, 0x50, 0x49, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x41, 0x50, 0x49, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, +} + +var ( + file_service_api_node_proto_rawDescOnce sync.Once + file_service_api_node_proto_rawDescData = file_service_api_node_proto_rawDesc +) + +func file_service_api_node_proto_rawDescGZIP() []byte { + file_service_api_node_proto_rawDescOnce.Do(func() { + file_service_api_node_proto_rawDescData = protoimpl.X.CompressGZIP(file_service_api_node_proto_rawDescData) + }) + return file_service_api_node_proto_rawDescData +} + +var file_service_api_node_proto_msgTypes = make([]protoimpl.MessageInfo, 14) +var file_service_api_node_proto_goTypes = []interface{}{ + (*CreateAPINodeRequest)(nil), // 0: pb.CreateAPINodeRequest + (*CreateAPINodeResponse)(nil), // 1: pb.CreateAPINodeResponse + (*UpdateAPINodeRequest)(nil), // 2: pb.UpdateAPINodeRequest + (*UpdateAPINodeResponse)(nil), // 3: pb.UpdateAPINodeResponse + (*DeleteAPINodeRequest)(nil), // 4: pb.DeleteAPINodeRequest + (*DeleteAPINodeResponse)(nil), // 5: pb.DeleteAPINodeResponse + (*FindAllEnabledAPINodesRequest)(nil), // 6: pb.FindAllEnabledAPINodesRequest + (*FindAllEnabledAPINodesResponse)(nil), // 7: pb.FindAllEnabledAPINodesResponse + (*CountAllEnabledAPINodesRequest)(nil), // 8: pb.CountAllEnabledAPINodesRequest + (*CountAllEnabledAPINodesResponse)(nil), // 9: pb.CountAllEnabledAPINodesResponse + (*ListEnabledAPINodesRequest)(nil), // 10: pb.ListEnabledAPINodesRequest + (*ListEnabledAPINodesResponse)(nil), // 11: pb.ListEnabledAPINodesResponse + (*FindEnabledAPINodeRequest)(nil), // 12: pb.FindEnabledAPINodeRequest + (*FindEnabledAPINodeResponse)(nil), // 13: pb.FindEnabledAPINodeResponse + (*APINode)(nil), // 14: pb.APINode +} +var file_service_api_node_proto_depIdxs = []int32{ + 14, // 0: pb.FindAllEnabledAPINodesResponse.nodes:type_name -> pb.APINode + 14, // 1: pb.ListEnabledAPINodesResponse.nodes:type_name -> pb.APINode + 14, // 2: pb.FindEnabledAPINodeResponse.node:type_name -> pb.APINode + 0, // 3: pb.APINodeService.createAPINode:input_type -> pb.CreateAPINodeRequest + 2, // 4: pb.APINodeService.updateAPINode:input_type -> pb.UpdateAPINodeRequest + 4, // 5: pb.APINodeService.deleteAPINode:input_type -> pb.DeleteAPINodeRequest + 6, // 6: pb.APINodeService.findAllEnabledAPINodes:input_type -> pb.FindAllEnabledAPINodesRequest + 8, // 7: pb.APINodeService.countAllEnabledAPINodes:input_type -> pb.CountAllEnabledAPINodesRequest + 10, // 8: pb.APINodeService.listEnabledAPINodes:input_type -> pb.ListEnabledAPINodesRequest + 12, // 9: pb.APINodeService.findEnabledAPINode:input_type -> pb.FindEnabledAPINodeRequest + 1, // 10: pb.APINodeService.createAPINode:output_type -> pb.CreateAPINodeResponse + 3, // 11: pb.APINodeService.updateAPINode:output_type -> pb.UpdateAPINodeResponse + 5, // 12: pb.APINodeService.deleteAPINode:output_type -> pb.DeleteAPINodeResponse + 7, // 13: pb.APINodeService.findAllEnabledAPINodes:output_type -> pb.FindAllEnabledAPINodesResponse + 9, // 14: pb.APINodeService.countAllEnabledAPINodes:output_type -> pb.CountAllEnabledAPINodesResponse + 11, // 15: pb.APINodeService.listEnabledAPINodes:output_type -> pb.ListEnabledAPINodesResponse + 13, // 16: pb.APINodeService.findEnabledAPINode:output_type -> pb.FindEnabledAPINodeResponse + 10, // [10:17] is the sub-list for method output_type + 3, // [3:10] is the sub-list for method input_type + 3, // [3:3] is the sub-list for extension type_name + 3, // [3:3] is the sub-list for extension extendee + 0, // [0:3] is the sub-list for field type_name +} + +func init() { file_service_api_node_proto_init() } +func file_service_api_node_proto_init() { + if File_service_api_node_proto != nil { + return + } + file_model_api_node_proto_init() + if !protoimpl.UnsafeEnabled { + file_service_api_node_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateAPINodeRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_api_node_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateAPINodeResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_api_node_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateAPINodeRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_api_node_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateAPINodeResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_api_node_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteAPINodeRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_api_node_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteAPINodeResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_api_node_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FindAllEnabledAPINodesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_api_node_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FindAllEnabledAPINodesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_api_node_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CountAllEnabledAPINodesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_api_node_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CountAllEnabledAPINodesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_api_node_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListEnabledAPINodesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_api_node_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListEnabledAPINodesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_api_node_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FindEnabledAPINodeRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_api_node_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FindEnabledAPINodeResponse); 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_service_api_node_proto_rawDesc, + NumEnums: 0, + NumMessages: 14, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_service_api_node_proto_goTypes, + DependencyIndexes: file_service_api_node_proto_depIdxs, + MessageInfos: file_service_api_node_proto_msgTypes, + }.Build() + File_service_api_node_proto = out.File + file_service_api_node_proto_rawDesc = nil + file_service_api_node_proto_goTypes = nil + file_service_api_node_proto_depIdxs = nil +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConnInterface + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion6 + +// APINodeServiceClient is the client API for APINodeService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type APINodeServiceClient interface { + // 创建API节点 + CreateAPINode(ctx context.Context, in *CreateAPINodeRequest, opts ...grpc.CallOption) (*CreateAPINodeResponse, error) + // 修改API节点 + UpdateAPINode(ctx context.Context, in *UpdateAPINodeRequest, opts ...grpc.CallOption) (*UpdateAPINodeResponse, error) + // 删除API节点 + DeleteAPINode(ctx context.Context, in *DeleteAPINodeRequest, opts ...grpc.CallOption) (*DeleteAPINodeResponse, error) + // 列出所有可用API节点 + FindAllEnabledAPINodes(ctx context.Context, in *FindAllEnabledAPINodesRequest, opts ...grpc.CallOption) (*FindAllEnabledAPINodesResponse, error) + // 计算API节点数量 + CountAllEnabledAPINodes(ctx context.Context, in *CountAllEnabledAPINodesRequest, opts ...grpc.CallOption) (*CountAllEnabledAPINodesResponse, error) + // 列出单页的API节点 + ListEnabledAPINodes(ctx context.Context, in *ListEnabledAPINodesRequest, opts ...grpc.CallOption) (*ListEnabledAPINodesResponse, error) + // 根据ID查找节点 + FindEnabledAPINode(ctx context.Context, in *FindEnabledAPINodeRequest, opts ...grpc.CallOption) (*FindEnabledAPINodeResponse, error) +} + +type aPINodeServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewAPINodeServiceClient(cc grpc.ClientConnInterface) APINodeServiceClient { + return &aPINodeServiceClient{cc} +} + +func (c *aPINodeServiceClient) CreateAPINode(ctx context.Context, in *CreateAPINodeRequest, opts ...grpc.CallOption) (*CreateAPINodeResponse, error) { + out := new(CreateAPINodeResponse) + err := c.cc.Invoke(ctx, "/pb.APINodeService/createAPINode", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *aPINodeServiceClient) UpdateAPINode(ctx context.Context, in *UpdateAPINodeRequest, opts ...grpc.CallOption) (*UpdateAPINodeResponse, error) { + out := new(UpdateAPINodeResponse) + err := c.cc.Invoke(ctx, "/pb.APINodeService/updateAPINode", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *aPINodeServiceClient) DeleteAPINode(ctx context.Context, in *DeleteAPINodeRequest, opts ...grpc.CallOption) (*DeleteAPINodeResponse, error) { + out := new(DeleteAPINodeResponse) + err := c.cc.Invoke(ctx, "/pb.APINodeService/deleteAPINode", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *aPINodeServiceClient) FindAllEnabledAPINodes(ctx context.Context, in *FindAllEnabledAPINodesRequest, opts ...grpc.CallOption) (*FindAllEnabledAPINodesResponse, error) { + out := new(FindAllEnabledAPINodesResponse) + err := c.cc.Invoke(ctx, "/pb.APINodeService/findAllEnabledAPINodes", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *aPINodeServiceClient) CountAllEnabledAPINodes(ctx context.Context, in *CountAllEnabledAPINodesRequest, opts ...grpc.CallOption) (*CountAllEnabledAPINodesResponse, error) { + out := new(CountAllEnabledAPINodesResponse) + err := c.cc.Invoke(ctx, "/pb.APINodeService/countAllEnabledAPINodes", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *aPINodeServiceClient) ListEnabledAPINodes(ctx context.Context, in *ListEnabledAPINodesRequest, opts ...grpc.CallOption) (*ListEnabledAPINodesResponse, error) { + out := new(ListEnabledAPINodesResponse) + err := c.cc.Invoke(ctx, "/pb.APINodeService/listEnabledAPINodes", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *aPINodeServiceClient) FindEnabledAPINode(ctx context.Context, in *FindEnabledAPINodeRequest, opts ...grpc.CallOption) (*FindEnabledAPINodeResponse, error) { + out := new(FindEnabledAPINodeResponse) + err := c.cc.Invoke(ctx, "/pb.APINodeService/findEnabledAPINode", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// APINodeServiceServer is the server API for APINodeService service. +type APINodeServiceServer interface { + // 创建API节点 + CreateAPINode(context.Context, *CreateAPINodeRequest) (*CreateAPINodeResponse, error) + // 修改API节点 + UpdateAPINode(context.Context, *UpdateAPINodeRequest) (*UpdateAPINodeResponse, error) + // 删除API节点 + DeleteAPINode(context.Context, *DeleteAPINodeRequest) (*DeleteAPINodeResponse, error) + // 列出所有可用API节点 + FindAllEnabledAPINodes(context.Context, *FindAllEnabledAPINodesRequest) (*FindAllEnabledAPINodesResponse, error) + // 计算API节点数量 + CountAllEnabledAPINodes(context.Context, *CountAllEnabledAPINodesRequest) (*CountAllEnabledAPINodesResponse, error) + // 列出单页的API节点 + ListEnabledAPINodes(context.Context, *ListEnabledAPINodesRequest) (*ListEnabledAPINodesResponse, error) + // 根据ID查找节点 + FindEnabledAPINode(context.Context, *FindEnabledAPINodeRequest) (*FindEnabledAPINodeResponse, error) +} + +// UnimplementedAPINodeServiceServer can be embedded to have forward compatible implementations. +type UnimplementedAPINodeServiceServer struct { +} + +func (*UnimplementedAPINodeServiceServer) CreateAPINode(context.Context, *CreateAPINodeRequest) (*CreateAPINodeResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateAPINode not implemented") +} +func (*UnimplementedAPINodeServiceServer) UpdateAPINode(context.Context, *UpdateAPINodeRequest) (*UpdateAPINodeResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateAPINode not implemented") +} +func (*UnimplementedAPINodeServiceServer) DeleteAPINode(context.Context, *DeleteAPINodeRequest) (*DeleteAPINodeResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteAPINode not implemented") +} +func (*UnimplementedAPINodeServiceServer) FindAllEnabledAPINodes(context.Context, *FindAllEnabledAPINodesRequest) (*FindAllEnabledAPINodesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method FindAllEnabledAPINodes not implemented") +} +func (*UnimplementedAPINodeServiceServer) CountAllEnabledAPINodes(context.Context, *CountAllEnabledAPINodesRequest) (*CountAllEnabledAPINodesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CountAllEnabledAPINodes not implemented") +} +func (*UnimplementedAPINodeServiceServer) ListEnabledAPINodes(context.Context, *ListEnabledAPINodesRequest) (*ListEnabledAPINodesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListEnabledAPINodes not implemented") +} +func (*UnimplementedAPINodeServiceServer) FindEnabledAPINode(context.Context, *FindEnabledAPINodeRequest) (*FindEnabledAPINodeResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method FindEnabledAPINode not implemented") +} + +func RegisterAPINodeServiceServer(s *grpc.Server, srv APINodeServiceServer) { + s.RegisterService(&_APINodeService_serviceDesc, srv) +} + +func _APINodeService_CreateAPINode_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateAPINodeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(APINodeServiceServer).CreateAPINode(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.APINodeService/CreateAPINode", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(APINodeServiceServer).CreateAPINode(ctx, req.(*CreateAPINodeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _APINodeService_UpdateAPINode_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateAPINodeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(APINodeServiceServer).UpdateAPINode(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.APINodeService/UpdateAPINode", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(APINodeServiceServer).UpdateAPINode(ctx, req.(*UpdateAPINodeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _APINodeService_DeleteAPINode_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteAPINodeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(APINodeServiceServer).DeleteAPINode(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.APINodeService/DeleteAPINode", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(APINodeServiceServer).DeleteAPINode(ctx, req.(*DeleteAPINodeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _APINodeService_FindAllEnabledAPINodes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(FindAllEnabledAPINodesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(APINodeServiceServer).FindAllEnabledAPINodes(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.APINodeService/FindAllEnabledAPINodes", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(APINodeServiceServer).FindAllEnabledAPINodes(ctx, req.(*FindAllEnabledAPINodesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _APINodeService_CountAllEnabledAPINodes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CountAllEnabledAPINodesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(APINodeServiceServer).CountAllEnabledAPINodes(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.APINodeService/CountAllEnabledAPINodes", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(APINodeServiceServer).CountAllEnabledAPINodes(ctx, req.(*CountAllEnabledAPINodesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _APINodeService_ListEnabledAPINodes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListEnabledAPINodesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(APINodeServiceServer).ListEnabledAPINodes(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.APINodeService/ListEnabledAPINodes", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(APINodeServiceServer).ListEnabledAPINodes(ctx, req.(*ListEnabledAPINodesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _APINodeService_FindEnabledAPINode_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(FindEnabledAPINodeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(APINodeServiceServer).FindEnabledAPINode(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.APINodeService/FindEnabledAPINode", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(APINodeServiceServer).FindEnabledAPINode(ctx, req.(*FindEnabledAPINodeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _APINodeService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "pb.APINodeService", + HandlerType: (*APINodeServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "createAPINode", + Handler: _APINodeService_CreateAPINode_Handler, + }, + { + MethodName: "updateAPINode", + Handler: _APINodeService_UpdateAPINode_Handler, + }, + { + MethodName: "deleteAPINode", + Handler: _APINodeService_DeleteAPINode_Handler, + }, + { + MethodName: "findAllEnabledAPINodes", + Handler: _APINodeService_FindAllEnabledAPINodes_Handler, + }, + { + MethodName: "countAllEnabledAPINodes", + Handler: _APINodeService_CountAllEnabledAPINodes_Handler, + }, + { + MethodName: "listEnabledAPINodes", + Handler: _APINodeService_ListEnabledAPINodes_Handler, + }, + { + MethodName: "findEnabledAPINode", + Handler: _APINodeService_FindEnabledAPINode_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "service_api_node.proto", +} diff --git a/pkg/rpc/pb/service_log.pb.go b/pkg/rpc/pb/service_log.pb.go new file mode 100644 index 0000000..061770e --- /dev/null +++ b/pkg/rpc/pb/service_log.pb.go @@ -0,0 +1,66 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.25.0 +// protoc v3.12.3 +// source: service_log.proto + +package pb + +import ( + proto "github.com/golang/protobuf/proto" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" +) + +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) +) + +// This is a compile-time assertion that a sufficiently up-to-date version +// of the legacy proto package is being used. +const _ = proto.ProtoPackageIsVersion4 + +var File_service_log_proto protoreflect.FileDescriptor + +var file_service_log_proto_rawDesc = []byte{ + 0x0a, 0x11, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6c, 0x6f, 0x67, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var file_service_log_proto_goTypes = []interface{}{} +var file_service_log_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_service_log_proto_init() } +func file_service_log_proto_init() { + if File_service_log_proto != nil { + return + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_service_log_proto_rawDesc, + NumEnums: 0, + NumMessages: 0, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_service_log_proto_goTypes, + DependencyIndexes: file_service_log_proto_depIdxs, + }.Build() + File_service_log_proto = out.File + file_service_log_proto_rawDesc = nil + file_service_log_proto_goTypes = nil + file_service_log_proto_depIdxs = nil +} diff --git a/pkg/rpc/pb/service_node.pb.go b/pkg/rpc/pb/service_node.pb.go new file mode 100644 index 0000000..b893319 --- /dev/null +++ b/pkg/rpc/pb/service_node.pb.go @@ -0,0 +1,2426 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.25.0 +// protoc v3.12.3 +// source: service_node.proto + +package pb + +import ( + context "context" + proto "github.com/golang/protobuf/proto" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + 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) +) + +// This is a compile-time assertion that a sufficiently up-to-date version +// of the legacy proto package is being used. +const _ = proto.ProtoPackageIsVersion4 + +// 创建节点 +type CreateNodeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + ClusterId int64 `protobuf:"varint,2,opt,name=clusterId,proto3" json:"clusterId,omitempty"` + Login *NodeLogin `protobuf:"bytes,3,opt,name=Login,proto3" json:"Login,omitempty"` +} + +func (x *CreateNodeRequest) Reset() { + *x = CreateNodeRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateNodeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateNodeRequest) ProtoMessage() {} + +func (x *CreateNodeRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_node_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateNodeRequest.ProtoReflect.Descriptor instead. +func (*CreateNodeRequest) Descriptor() ([]byte, []int) { + return file_service_node_proto_rawDescGZIP(), []int{0} +} + +func (x *CreateNodeRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *CreateNodeRequest) GetClusterId() int64 { + if x != nil { + return x.ClusterId + } + return 0 +} + +func (x *CreateNodeRequest) GetLogin() *NodeLogin { + if x != nil { + return x.Login + } + return nil +} + +type CreateNodeResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + NodeId int64 `protobuf:"varint,1,opt,name=nodeId,proto3" json:"nodeId,omitempty"` +} + +func (x *CreateNodeResponse) Reset() { + *x = CreateNodeResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateNodeResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateNodeResponse) ProtoMessage() {} + +func (x *CreateNodeResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_node_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 CreateNodeResponse.ProtoReflect.Descriptor instead. +func (*CreateNodeResponse) Descriptor() ([]byte, []int) { + return file_service_node_proto_rawDescGZIP(), []int{1} +} + +func (x *CreateNodeResponse) GetNodeId() int64 { + if x != nil { + return x.NodeId + } + return 0 +} + +// 节点数量 +type CountAllEnabledNodesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *CountAllEnabledNodesRequest) Reset() { + *x = CountAllEnabledNodesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CountAllEnabledNodesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CountAllEnabledNodesRequest) ProtoMessage() {} + +func (x *CountAllEnabledNodesRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_node_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 CountAllEnabledNodesRequest.ProtoReflect.Descriptor instead. +func (*CountAllEnabledNodesRequest) Descriptor() ([]byte, []int) { + return file_service_node_proto_rawDescGZIP(), []int{2} +} + +type CountAllEnabledNodesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Count int64 `protobuf:"varint,1,opt,name=count,proto3" json:"count,omitempty"` +} + +func (x *CountAllEnabledNodesResponse) Reset() { + *x = CountAllEnabledNodesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CountAllEnabledNodesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CountAllEnabledNodesResponse) ProtoMessage() {} + +func (x *CountAllEnabledNodesResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_node_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 CountAllEnabledNodesResponse.ProtoReflect.Descriptor instead. +func (*CountAllEnabledNodesResponse) Descriptor() ([]byte, []int) { + return file_service_node_proto_rawDescGZIP(), []int{3} +} + +func (x *CountAllEnabledNodesResponse) GetCount() int64 { + if x != nil { + return x.Count + } + return 0 +} + +// 列出单页节点 +type ListEnabledNodesMatchRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Offset int64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` + Size int64 `protobuf:"varint,2,opt,name=size,proto3" json:"size,omitempty"` + ClusterId int64 `protobuf:"varint,3,opt,name=clusterId,proto3" json:"clusterId,omitempty"` + InstallState int32 `protobuf:"varint,4,opt,name=installState,proto3" json:"installState,omitempty"` +} + +func (x *ListEnabledNodesMatchRequest) Reset() { + *x = ListEnabledNodesMatchRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListEnabledNodesMatchRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListEnabledNodesMatchRequest) ProtoMessage() {} + +func (x *ListEnabledNodesMatchRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_node_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 ListEnabledNodesMatchRequest.ProtoReflect.Descriptor instead. +func (*ListEnabledNodesMatchRequest) Descriptor() ([]byte, []int) { + return file_service_node_proto_rawDescGZIP(), []int{4} +} + +func (x *ListEnabledNodesMatchRequest) GetOffset() int64 { + if x != nil { + return x.Offset + } + return 0 +} + +func (x *ListEnabledNodesMatchRequest) GetSize() int64 { + if x != nil { + return x.Size + } + return 0 +} + +func (x *ListEnabledNodesMatchRequest) GetClusterId() int64 { + if x != nil { + return x.ClusterId + } + return 0 +} + +func (x *ListEnabledNodesMatchRequest) GetInstallState() int32 { + if x != nil { + return x.InstallState + } + return 0 +} + +type ListEnabledNodesMatchResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Nodes []*Node `protobuf:"bytes,1,rep,name=nodes,proto3" json:"nodes,omitempty"` +} + +func (x *ListEnabledNodesMatchResponse) Reset() { + *x = ListEnabledNodesMatchResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListEnabledNodesMatchResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListEnabledNodesMatchResponse) ProtoMessage() {} + +func (x *ListEnabledNodesMatchResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_node_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 ListEnabledNodesMatchResponse.ProtoReflect.Descriptor instead. +func (*ListEnabledNodesMatchResponse) Descriptor() ([]byte, []int) { + return file_service_node_proto_rawDescGZIP(), []int{5} +} + +func (x *ListEnabledNodesMatchResponse) GetNodes() []*Node { + if x != nil { + return x.Nodes + } + return nil +} + +// 禁用节点 +type DisableNodeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + NodeId int64 `protobuf:"varint,1,opt,name=nodeId,proto3" json:"nodeId,omitempty"` +} + +func (x *DisableNodeRequest) Reset() { + *x = DisableNodeRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DisableNodeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DisableNodeRequest) ProtoMessage() {} + +func (x *DisableNodeRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_node_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 DisableNodeRequest.ProtoReflect.Descriptor instead. +func (*DisableNodeRequest) Descriptor() ([]byte, []int) { + return file_service_node_proto_rawDescGZIP(), []int{6} +} + +func (x *DisableNodeRequest) GetNodeId() int64 { + if x != nil { + return x.NodeId + } + return 0 +} + +type DisableNodeResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *DisableNodeResponse) Reset() { + *x = DisableNodeResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DisableNodeResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DisableNodeResponse) ProtoMessage() {} + +func (x *DisableNodeResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_node_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 DisableNodeResponse.ProtoReflect.Descriptor instead. +func (*DisableNodeResponse) Descriptor() ([]byte, []int) { + return file_service_node_proto_rawDescGZIP(), []int{7} +} + +// 修改节点 +type UpdateNodeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + NodeId int64 `protobuf:"varint,1,opt,name=nodeId,proto3" json:"nodeId,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + ClusterId int64 `protobuf:"varint,3,opt,name=clusterId,proto3" json:"clusterId,omitempty"` + Login *NodeLogin `protobuf:"bytes,4,opt,name=Login,proto3" json:"Login,omitempty"` +} + +func (x *UpdateNodeRequest) Reset() { + *x = UpdateNodeRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateNodeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateNodeRequest) ProtoMessage() {} + +func (x *UpdateNodeRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_node_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 UpdateNodeRequest.ProtoReflect.Descriptor instead. +func (*UpdateNodeRequest) Descriptor() ([]byte, []int) { + return file_service_node_proto_rawDescGZIP(), []int{8} +} + +func (x *UpdateNodeRequest) GetNodeId() int64 { + if x != nil { + return x.NodeId + } + return 0 +} + +func (x *UpdateNodeRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *UpdateNodeRequest) GetClusterId() int64 { + if x != nil { + return x.ClusterId + } + return 0 +} + +func (x *UpdateNodeRequest) GetLogin() *NodeLogin { + if x != nil { + return x.Login + } + return nil +} + +type UpdateNodeResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *UpdateNodeResponse) Reset() { + *x = UpdateNodeResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateNodeResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateNodeResponse) ProtoMessage() {} + +func (x *UpdateNodeResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_node_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 UpdateNodeResponse.ProtoReflect.Descriptor instead. +func (*UpdateNodeResponse) Descriptor() ([]byte, []int) { + return file_service_node_proto_rawDescGZIP(), []int{9} +} + +// 查找节点 +type FindEnabledNodeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + NodeId int64 `protobuf:"varint,1,opt,name=nodeId,proto3" json:"nodeId,omitempty"` +} + +func (x *FindEnabledNodeRequest) Reset() { + *x = FindEnabledNodeRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FindEnabledNodeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FindEnabledNodeRequest) ProtoMessage() {} + +func (x *FindEnabledNodeRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_node_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 FindEnabledNodeRequest.ProtoReflect.Descriptor instead. +func (*FindEnabledNodeRequest) Descriptor() ([]byte, []int) { + return file_service_node_proto_rawDescGZIP(), []int{10} +} + +func (x *FindEnabledNodeRequest) GetNodeId() int64 { + if x != nil { + return x.NodeId + } + return 0 +} + +type FindEnabledNodeResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Node *Node `protobuf:"bytes,1,opt,name=node,proto3" json:"node,omitempty"` +} + +func (x *FindEnabledNodeResponse) Reset() { + *x = FindEnabledNodeResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FindEnabledNodeResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FindEnabledNodeResponse) ProtoMessage() {} + +func (x *FindEnabledNodeResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_node_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 FindEnabledNodeResponse.ProtoReflect.Descriptor instead. +func (*FindEnabledNodeResponse) Descriptor() ([]byte, []int) { + return file_service_node_proto_rawDescGZIP(), []int{11} +} + +func (x *FindEnabledNodeResponse) GetNode() *Node { + if x != nil { + return x.Node + } + return nil +} + +// 组合单个节点配置 +type ComposeNodeConfigRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *ComposeNodeConfigRequest) Reset() { + *x = ComposeNodeConfigRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ComposeNodeConfigRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ComposeNodeConfigRequest) ProtoMessage() {} + +func (x *ComposeNodeConfigRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_node_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 ComposeNodeConfigRequest.ProtoReflect.Descriptor instead. +func (*ComposeNodeConfigRequest) Descriptor() ([]byte, []int) { + return file_service_node_proto_rawDescGZIP(), []int{12} +} + +type ComposeNodeConfigResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ConfigJSON []byte `protobuf:"bytes,1,opt,name=configJSON,proto3" json:"configJSON,omitempty"` +} + +func (x *ComposeNodeConfigResponse) Reset() { + *x = ComposeNodeConfigResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ComposeNodeConfigResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ComposeNodeConfigResponse) ProtoMessage() {} + +func (x *ComposeNodeConfigResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_node_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 ComposeNodeConfigResponse.ProtoReflect.Descriptor instead. +func (*ComposeNodeConfigResponse) Descriptor() ([]byte, []int) { + return file_service_node_proto_rawDescGZIP(), []int{13} +} + +func (x *ComposeNodeConfigResponse) GetConfigJSON() []byte { + if x != nil { + return x.ConfigJSON + } + return nil +} + +// 节点stream +type NodeStreamRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *NodeStreamRequest) Reset() { + *x = NodeStreamRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NodeStreamRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NodeStreamRequest) ProtoMessage() {} + +func (x *NodeStreamRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_node_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 NodeStreamRequest.ProtoReflect.Descriptor instead. +func (*NodeStreamRequest) Descriptor() ([]byte, []int) { + return file_service_node_proto_rawDescGZIP(), []int{14} +} + +type NodeStreamResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *NodeStreamResponse) Reset() { + *x = NodeStreamResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NodeStreamResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NodeStreamResponse) ProtoMessage() {} + +func (x *NodeStreamResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_node_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 NodeStreamResponse.ProtoReflect.Descriptor instead. +func (*NodeStreamResponse) Descriptor() ([]byte, []int) { + return file_service_node_proto_rawDescGZIP(), []int{15} +} + +// 更新节点状态 +type UpdateNodeStatusRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + NodeId int64 `protobuf:"varint,1,opt,name=nodeId,proto3" json:"nodeId,omitempty"` + StatusJSON []byte `protobuf:"bytes,2,opt,name=statusJSON,proto3" json:"statusJSON,omitempty"` +} + +func (x *UpdateNodeStatusRequest) Reset() { + *x = UpdateNodeStatusRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateNodeStatusRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateNodeStatusRequest) ProtoMessage() {} + +func (x *UpdateNodeStatusRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_node_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 UpdateNodeStatusRequest.ProtoReflect.Descriptor instead. +func (*UpdateNodeStatusRequest) Descriptor() ([]byte, []int) { + return file_service_node_proto_rawDescGZIP(), []int{16} +} + +func (x *UpdateNodeStatusRequest) GetNodeId() int64 { + if x != nil { + return x.NodeId + } + return 0 +} + +func (x *UpdateNodeStatusRequest) GetStatusJSON() []byte { + if x != nil { + return x.StatusJSON + } + return nil +} + +type UpdateNodeStatusResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *UpdateNodeStatusResponse) Reset() { + *x = UpdateNodeStatusResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateNodeStatusResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateNodeStatusResponse) ProtoMessage() {} + +func (x *UpdateNodeStatusResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_node_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 UpdateNodeStatusResponse.ProtoReflect.Descriptor instead. +func (*UpdateNodeStatusResponse) Descriptor() ([]byte, []int) { + return file_service_node_proto_rawDescGZIP(), []int{17} +} + +// 同步集群中的节点版本 +type SyncNodesVersionWithClusterRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ClusterId int64 `protobuf:"varint,1,opt,name=clusterId,proto3" json:"clusterId,omitempty"` +} + +func (x *SyncNodesVersionWithClusterRequest) Reset() { + *x = SyncNodesVersionWithClusterRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SyncNodesVersionWithClusterRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SyncNodesVersionWithClusterRequest) ProtoMessage() {} + +func (x *SyncNodesVersionWithClusterRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_node_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 SyncNodesVersionWithClusterRequest.ProtoReflect.Descriptor instead. +func (*SyncNodesVersionWithClusterRequest) Descriptor() ([]byte, []int) { + return file_service_node_proto_rawDescGZIP(), []int{18} +} + +func (x *SyncNodesVersionWithClusterRequest) GetClusterId() int64 { + if x != nil { + return x.ClusterId + } + return 0 +} + +type SyncNodesVersionWithClusterResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *SyncNodesVersionWithClusterResponse) Reset() { + *x = SyncNodesVersionWithClusterResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SyncNodesVersionWithClusterResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SyncNodesVersionWithClusterResponse) ProtoMessage() {} + +func (x *SyncNodesVersionWithClusterResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_node_proto_msgTypes[19] + 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 SyncNodesVersionWithClusterResponse.ProtoReflect.Descriptor instead. +func (*SyncNodesVersionWithClusterResponse) Descriptor() ([]byte, []int) { + return file_service_node_proto_rawDescGZIP(), []int{19} +} + +// 计算匹配的节点数量 +type CountAllEnabledNodesMatchRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ClusterId int64 `protobuf:"varint,1,opt,name=clusterId,proto3" json:"clusterId,omitempty"` + InstallState int32 `protobuf:"varint,2,opt,name=installState,proto3" json:"installState,omitempty"` +} + +func (x *CountAllEnabledNodesMatchRequest) Reset() { + *x = CountAllEnabledNodesMatchRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CountAllEnabledNodesMatchRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CountAllEnabledNodesMatchRequest) ProtoMessage() {} + +func (x *CountAllEnabledNodesMatchRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_node_proto_msgTypes[20] + 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 CountAllEnabledNodesMatchRequest.ProtoReflect.Descriptor instead. +func (*CountAllEnabledNodesMatchRequest) Descriptor() ([]byte, []int) { + return file_service_node_proto_rawDescGZIP(), []int{20} +} + +func (x *CountAllEnabledNodesMatchRequest) GetClusterId() int64 { + if x != nil { + return x.ClusterId + } + return 0 +} + +func (x *CountAllEnabledNodesMatchRequest) GetInstallState() int32 { + if x != nil { + return x.InstallState + } + return 0 +} + +type CountAllEnabledNodesMatchResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Count int64 `protobuf:"varint,1,opt,name=count,proto3" json:"count,omitempty"` +} + +func (x *CountAllEnabledNodesMatchResponse) Reset() { + *x = CountAllEnabledNodesMatchResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CountAllEnabledNodesMatchResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CountAllEnabledNodesMatchResponse) ProtoMessage() {} + +func (x *CountAllEnabledNodesMatchResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_node_proto_msgTypes[21] + 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 CountAllEnabledNodesMatchResponse.ProtoReflect.Descriptor instead. +func (*CountAllEnabledNodesMatchResponse) Descriptor() ([]byte, []int) { + return file_service_node_proto_rawDescGZIP(), []int{21} +} + +func (x *CountAllEnabledNodesMatchResponse) GetCount() int64 { + if x != nil { + return x.Count + } + return 0 +} + +// 修改节点安装状态 +type UpdateNodeIsInstalledRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + NodeId int64 `protobuf:"varint,1,opt,name=nodeId,proto3" json:"nodeId,omitempty"` + IsInstalled bool `protobuf:"varint,2,opt,name=isInstalled,proto3" json:"isInstalled,omitempty"` +} + +func (x *UpdateNodeIsInstalledRequest) Reset() { + *x = UpdateNodeIsInstalledRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateNodeIsInstalledRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateNodeIsInstalledRequest) ProtoMessage() {} + +func (x *UpdateNodeIsInstalledRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_node_proto_msgTypes[22] + 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 UpdateNodeIsInstalledRequest.ProtoReflect.Descriptor instead. +func (*UpdateNodeIsInstalledRequest) Descriptor() ([]byte, []int) { + return file_service_node_proto_rawDescGZIP(), []int{22} +} + +func (x *UpdateNodeIsInstalledRequest) GetNodeId() int64 { + if x != nil { + return x.NodeId + } + return 0 +} + +func (x *UpdateNodeIsInstalledRequest) GetIsInstalled() bool { + if x != nil { + return x.IsInstalled + } + return false +} + +type UpdateNodeIsInstalledResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *UpdateNodeIsInstalledResponse) Reset() { + *x = UpdateNodeIsInstalledResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateNodeIsInstalledResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateNodeIsInstalledResponse) ProtoMessage() {} + +func (x *UpdateNodeIsInstalledResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_node_proto_msgTypes[23] + 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 UpdateNodeIsInstalledResponse.ProtoReflect.Descriptor instead. +func (*UpdateNodeIsInstalledResponse) Descriptor() ([]byte, []int) { + return file_service_node_proto_rawDescGZIP(), []int{23} +} + +// 安装节点 +type InstallNodeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + NodeId int64 `protobuf:"varint,1,opt,name=nodeId,proto3" json:"nodeId,omitempty"` +} + +func (x *InstallNodeRequest) Reset() { + *x = InstallNodeRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *InstallNodeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InstallNodeRequest) ProtoMessage() {} + +func (x *InstallNodeRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_node_proto_msgTypes[24] + 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 InstallNodeRequest.ProtoReflect.Descriptor instead. +func (*InstallNodeRequest) Descriptor() ([]byte, []int) { + return file_service_node_proto_rawDescGZIP(), []int{24} +} + +func (x *InstallNodeRequest) GetNodeId() int64 { + if x != nil { + return x.NodeId + } + return 0 +} + +type InstallNodeResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *InstallNodeResponse) Reset() { + *x = InstallNodeResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *InstallNodeResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InstallNodeResponse) ProtoMessage() {} + +func (x *InstallNodeResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_node_proto_msgTypes[25] + 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 InstallNodeResponse.ProtoReflect.Descriptor instead. +func (*InstallNodeResponse) Descriptor() ([]byte, []int) { + return file_service_node_proto_rawDescGZIP(), []int{25} +} + +var File_service_node_proto protoreflect.FileDescriptor + +var file_service_node_proto_rawDesc = []byte{ + 0x0a, 0x12, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x1a, 0x10, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, + 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x16, 0x6d, 0x6f, 0x64, 0x65, + 0x6c, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x22, 0x6a, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x05, 0x4c, 0x6f, 0x67, + 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, + 0x64, 0x65, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x05, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x22, 0x2c, + 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x22, 0x1d, 0x0a, 0x1b, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, + 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x34, 0x0a, 0x1c, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, + 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x1c, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, + 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x1c, + 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, + 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x22, 0x3f, 0x0a, 0x1d, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, + 0x6f, 0x64, 0x65, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x1e, 0x0a, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x08, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x05, 0x6e, 0x6f, 0x64, 0x65, + 0x73, 0x22, 0x2c, 0x0a, 0x12, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x6f, 0x64, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x22, + 0x15, 0x0a, 0x13, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x82, 0x01, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, + 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, + 0x64, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x05, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x4c, + 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x05, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x22, 0x14, 0x0a, 0x12, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x30, 0x0a, 0x16, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, + 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, + 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, + 0x65, 0x49, 0x64, 0x22, 0x37, 0x0a, 0x17, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, + 0x0a, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x70, + 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x22, 0x1a, 0x0a, 0x18, + 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x3b, 0x0a, 0x19, 0x43, 0x6f, 0x6d, 0x70, + 0x6f, 0x73, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4a, + 0x53, 0x4f, 0x4e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x13, 0x0a, 0x11, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x14, 0x0a, 0x12, 0x4e, 0x6f, + 0x64, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x51, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, + 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, + 0x65, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4a, 0x53, 0x4f, + 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4a, + 0x53, 0x4f, 0x4e, 0x22, 0x1a, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, + 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x42, 0x0a, 0x22, 0x53, 0x79, 0x6e, 0x63, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x49, 0x64, 0x22, 0x25, 0x0a, 0x23, 0x53, 0x79, 0x6e, 0x63, 0x4e, 0x6f, 0x64, 0x65, 0x73, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x43, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x64, 0x0a, 0x20, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, + 0x65, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, + 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, + 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x22, 0x39, 0x0a, 0x21, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x58, 0x0a, 0x1c, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x73, 0x49, 0x6e, 0x73, 0x74, 0x61, + 0x6c, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, + 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, + 0x65, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x73, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, + 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x49, 0x6e, 0x73, 0x74, + 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x22, 0x1f, 0x0a, 0x1d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, + 0x6f, 0x64, 0x65, 0x49, 0x73, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2c, 0x0a, 0x12, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, + 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, + 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, + 0x64, 0x65, 0x49, 0x64, 0x22, 0x15, 0x0a, 0x13, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x4e, + 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xa6, 0x08, 0x0a, 0x0b, + 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x3b, 0x0a, 0x0a, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x15, 0x2e, 0x70, 0x62, 0x2e, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x16, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, 0x14, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, + 0x12, 0x1f, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x20, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x68, 0x0a, 0x19, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, + 0x12, 0x24, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, + 0x15, 0x6c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, + 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x20, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x4d, 0x61, 0x74, 0x63, + 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x4d, 0x61, + 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0b, 0x64, + 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x2e, 0x70, 0x62, 0x2e, + 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4e, + 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x0a, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x15, 0x2e, 0x70, 0x62, 0x2e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x16, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x0f, 0x66, 0x69, 0x6e, 0x64, + 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x2e, 0x70, 0x62, + 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, + 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x4e, + 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x43, + 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6d, + 0x70, 0x6f, 0x73, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x0a, 0x6e, 0x6f, 0x64, 0x65, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x12, 0x15, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x70, 0x62, + 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x28, 0x01, 0x30, 0x01, 0x12, 0x4d, 0x0a, 0x10, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1b, 0x2e, 0x70, 0x62, + 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6e, 0x0a, 0x1b, 0x73, 0x79, 0x6e, 0x63, 0x4e, 0x6f, + 0x64, 0x65, 0x73, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x43, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x26, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x4e, + 0x6f, 0x64, 0x65, 0x73, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x43, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, + 0x70, 0x62, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x15, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x73, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x12, + 0x20, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x49, + 0x73, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x21, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, + 0x65, 0x49, 0x73, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x4e, + 0x6f, 0x64, 0x65, 0x12, 0x16, 0x2e, 0x70, 0x62, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, + 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x70, 0x62, + 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_service_node_proto_rawDescOnce sync.Once + file_service_node_proto_rawDescData = file_service_node_proto_rawDesc +) + +func file_service_node_proto_rawDescGZIP() []byte { + file_service_node_proto_rawDescOnce.Do(func() { + file_service_node_proto_rawDescData = protoimpl.X.CompressGZIP(file_service_node_proto_rawDescData) + }) + return file_service_node_proto_rawDescData +} + +var file_service_node_proto_msgTypes = make([]protoimpl.MessageInfo, 26) +var file_service_node_proto_goTypes = []interface{}{ + (*CreateNodeRequest)(nil), // 0: pb.CreateNodeRequest + (*CreateNodeResponse)(nil), // 1: pb.CreateNodeResponse + (*CountAllEnabledNodesRequest)(nil), // 2: pb.CountAllEnabledNodesRequest + (*CountAllEnabledNodesResponse)(nil), // 3: pb.CountAllEnabledNodesResponse + (*ListEnabledNodesMatchRequest)(nil), // 4: pb.ListEnabledNodesMatchRequest + (*ListEnabledNodesMatchResponse)(nil), // 5: pb.ListEnabledNodesMatchResponse + (*DisableNodeRequest)(nil), // 6: pb.DisableNodeRequest + (*DisableNodeResponse)(nil), // 7: pb.DisableNodeResponse + (*UpdateNodeRequest)(nil), // 8: pb.UpdateNodeRequest + (*UpdateNodeResponse)(nil), // 9: pb.UpdateNodeResponse + (*FindEnabledNodeRequest)(nil), // 10: pb.FindEnabledNodeRequest + (*FindEnabledNodeResponse)(nil), // 11: pb.FindEnabledNodeResponse + (*ComposeNodeConfigRequest)(nil), // 12: pb.ComposeNodeConfigRequest + (*ComposeNodeConfigResponse)(nil), // 13: pb.ComposeNodeConfigResponse + (*NodeStreamRequest)(nil), // 14: pb.NodeStreamRequest + (*NodeStreamResponse)(nil), // 15: pb.NodeStreamResponse + (*UpdateNodeStatusRequest)(nil), // 16: pb.UpdateNodeStatusRequest + (*UpdateNodeStatusResponse)(nil), // 17: pb.UpdateNodeStatusResponse + (*SyncNodesVersionWithClusterRequest)(nil), // 18: pb.SyncNodesVersionWithClusterRequest + (*SyncNodesVersionWithClusterResponse)(nil), // 19: pb.SyncNodesVersionWithClusterResponse + (*CountAllEnabledNodesMatchRequest)(nil), // 20: pb.CountAllEnabledNodesMatchRequest + (*CountAllEnabledNodesMatchResponse)(nil), // 21: pb.CountAllEnabledNodesMatchResponse + (*UpdateNodeIsInstalledRequest)(nil), // 22: pb.UpdateNodeIsInstalledRequest + (*UpdateNodeIsInstalledResponse)(nil), // 23: pb.UpdateNodeIsInstalledResponse + (*InstallNodeRequest)(nil), // 24: pb.InstallNodeRequest + (*InstallNodeResponse)(nil), // 25: pb.InstallNodeResponse + (*NodeLogin)(nil), // 26: pb.NodeLogin + (*Node)(nil), // 27: pb.Node +} +var file_service_node_proto_depIdxs = []int32{ + 26, // 0: pb.CreateNodeRequest.Login:type_name -> pb.NodeLogin + 27, // 1: pb.ListEnabledNodesMatchResponse.nodes:type_name -> pb.Node + 26, // 2: pb.UpdateNodeRequest.Login:type_name -> pb.NodeLogin + 27, // 3: pb.FindEnabledNodeResponse.node:type_name -> pb.Node + 0, // 4: pb.NodeService.createNode:input_type -> pb.CreateNodeRequest + 2, // 5: pb.NodeService.countAllEnabledNodes:input_type -> pb.CountAllEnabledNodesRequest + 20, // 6: pb.NodeService.countAllEnabledNodesMatch:input_type -> pb.CountAllEnabledNodesMatchRequest + 4, // 7: pb.NodeService.listEnabledNodesMatch:input_type -> pb.ListEnabledNodesMatchRequest + 6, // 8: pb.NodeService.disableNode:input_type -> pb.DisableNodeRequest + 8, // 9: pb.NodeService.updateNode:input_type -> pb.UpdateNodeRequest + 10, // 10: pb.NodeService.findEnabledNode:input_type -> pb.FindEnabledNodeRequest + 12, // 11: pb.NodeService.composeNodeConfig:input_type -> pb.ComposeNodeConfigRequest + 14, // 12: pb.NodeService.nodeStream:input_type -> pb.NodeStreamRequest + 16, // 13: pb.NodeService.updateNodeStatus:input_type -> pb.UpdateNodeStatusRequest + 18, // 14: pb.NodeService.syncNodesVersionWithCluster:input_type -> pb.SyncNodesVersionWithClusterRequest + 22, // 15: pb.NodeService.updateNodeIsInstalled:input_type -> pb.UpdateNodeIsInstalledRequest + 24, // 16: pb.NodeService.installNode:input_type -> pb.InstallNodeRequest + 1, // 17: pb.NodeService.createNode:output_type -> pb.CreateNodeResponse + 3, // 18: pb.NodeService.countAllEnabledNodes:output_type -> pb.CountAllEnabledNodesResponse + 21, // 19: pb.NodeService.countAllEnabledNodesMatch:output_type -> pb.CountAllEnabledNodesMatchResponse + 5, // 20: pb.NodeService.listEnabledNodesMatch:output_type -> pb.ListEnabledNodesMatchResponse + 7, // 21: pb.NodeService.disableNode:output_type -> pb.DisableNodeResponse + 9, // 22: pb.NodeService.updateNode:output_type -> pb.UpdateNodeResponse + 11, // 23: pb.NodeService.findEnabledNode:output_type -> pb.FindEnabledNodeResponse + 13, // 24: pb.NodeService.composeNodeConfig:output_type -> pb.ComposeNodeConfigResponse + 15, // 25: pb.NodeService.nodeStream:output_type -> pb.NodeStreamResponse + 17, // 26: pb.NodeService.updateNodeStatus:output_type -> pb.UpdateNodeStatusResponse + 19, // 27: pb.NodeService.syncNodesVersionWithCluster:output_type -> pb.SyncNodesVersionWithClusterResponse + 23, // 28: pb.NodeService.updateNodeIsInstalled:output_type -> pb.UpdateNodeIsInstalledResponse + 25, // 29: pb.NodeService.installNode:output_type -> pb.InstallNodeResponse + 17, // [17:30] is the sub-list for method output_type + 4, // [4:17] is the sub-list for method input_type + 4, // [4:4] is the sub-list for extension type_name + 4, // [4:4] is the sub-list for extension extendee + 0, // [0:4] is the sub-list for field type_name +} + +func init() { file_service_node_proto_init() } +func file_service_node_proto_init() { + if File_service_node_proto != nil { + return + } + file_model_node_proto_init() + file_model_node_login_proto_init() + if !protoimpl.UnsafeEnabled { + file_service_node_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateNodeRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateNodeResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CountAllEnabledNodesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CountAllEnabledNodesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListEnabledNodesMatchRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListEnabledNodesMatchResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DisableNodeRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DisableNodeResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateNodeRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateNodeResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FindEnabledNodeRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FindEnabledNodeResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ComposeNodeConfigRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ComposeNodeConfigResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NodeStreamRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NodeStreamResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateNodeStatusRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateNodeStatusResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SyncNodesVersionWithClusterRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SyncNodesVersionWithClusterResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CountAllEnabledNodesMatchRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CountAllEnabledNodesMatchResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateNodeIsInstalledRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateNodeIsInstalledResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InstallNodeRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InstallNodeResponse); 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_service_node_proto_rawDesc, + NumEnums: 0, + NumMessages: 26, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_service_node_proto_goTypes, + DependencyIndexes: file_service_node_proto_depIdxs, + MessageInfos: file_service_node_proto_msgTypes, + }.Build() + File_service_node_proto = out.File + file_service_node_proto_rawDesc = nil + file_service_node_proto_goTypes = nil + file_service_node_proto_depIdxs = nil +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConnInterface + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion6 + +// NodeServiceClient is the client API for NodeService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type NodeServiceClient interface { + // 创建节点 + CreateNode(ctx context.Context, in *CreateNodeRequest, opts ...grpc.CallOption) (*CreateNodeResponse, error) + // 节点数量 + CountAllEnabledNodes(ctx context.Context, in *CountAllEnabledNodesRequest, opts ...grpc.CallOption) (*CountAllEnabledNodesResponse, error) + // 计算匹配的节点数量 + CountAllEnabledNodesMatch(ctx context.Context, in *CountAllEnabledNodesMatchRequest, opts ...grpc.CallOption) (*CountAllEnabledNodesMatchResponse, error) + // 列出单页节点 + ListEnabledNodesMatch(ctx context.Context, in *ListEnabledNodesMatchRequest, opts ...grpc.CallOption) (*ListEnabledNodesMatchResponse, error) + // 禁用节点 + DisableNode(ctx context.Context, in *DisableNodeRequest, opts ...grpc.CallOption) (*DisableNodeResponse, error) + // 修改节点 + UpdateNode(ctx context.Context, in *UpdateNodeRequest, opts ...grpc.CallOption) (*UpdateNodeResponse, error) + // 查看单个节点 + FindEnabledNode(ctx context.Context, in *FindEnabledNodeRequest, opts ...grpc.CallOption) (*FindEnabledNodeResponse, error) + // 组合单个节点配置 + ComposeNodeConfig(ctx context.Context, in *ComposeNodeConfigRequest, opts ...grpc.CallOption) (*ComposeNodeConfigResponse, error) + // 节点stream + NodeStream(ctx context.Context, opts ...grpc.CallOption) (NodeService_NodeStreamClient, error) + // 更新节点状态 + UpdateNodeStatus(ctx context.Context, in *UpdateNodeStatusRequest, opts ...grpc.CallOption) (*UpdateNodeStatusResponse, error) + // 同步集群中的节点版本 + SyncNodesVersionWithCluster(ctx context.Context, in *SyncNodesVersionWithClusterRequest, opts ...grpc.CallOption) (*SyncNodesVersionWithClusterResponse, error) + // 修改节点安装状态 + UpdateNodeIsInstalled(ctx context.Context, in *UpdateNodeIsInstalledRequest, opts ...grpc.CallOption) (*UpdateNodeIsInstalledResponse, error) + // 安装节点 + InstallNode(ctx context.Context, in *InstallNodeRequest, opts ...grpc.CallOption) (*InstallNodeResponse, error) +} + +type nodeServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewNodeServiceClient(cc grpc.ClientConnInterface) NodeServiceClient { + return &nodeServiceClient{cc} +} + +func (c *nodeServiceClient) CreateNode(ctx context.Context, in *CreateNodeRequest, opts ...grpc.CallOption) (*CreateNodeResponse, error) { + out := new(CreateNodeResponse) + err := c.cc.Invoke(ctx, "/pb.NodeService/createNode", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeServiceClient) CountAllEnabledNodes(ctx context.Context, in *CountAllEnabledNodesRequest, opts ...grpc.CallOption) (*CountAllEnabledNodesResponse, error) { + out := new(CountAllEnabledNodesResponse) + err := c.cc.Invoke(ctx, "/pb.NodeService/countAllEnabledNodes", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeServiceClient) CountAllEnabledNodesMatch(ctx context.Context, in *CountAllEnabledNodesMatchRequest, opts ...grpc.CallOption) (*CountAllEnabledNodesMatchResponse, error) { + out := new(CountAllEnabledNodesMatchResponse) + err := c.cc.Invoke(ctx, "/pb.NodeService/countAllEnabledNodesMatch", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeServiceClient) ListEnabledNodesMatch(ctx context.Context, in *ListEnabledNodesMatchRequest, opts ...grpc.CallOption) (*ListEnabledNodesMatchResponse, error) { + out := new(ListEnabledNodesMatchResponse) + err := c.cc.Invoke(ctx, "/pb.NodeService/listEnabledNodesMatch", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeServiceClient) DisableNode(ctx context.Context, in *DisableNodeRequest, opts ...grpc.CallOption) (*DisableNodeResponse, error) { + out := new(DisableNodeResponse) + err := c.cc.Invoke(ctx, "/pb.NodeService/disableNode", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeServiceClient) UpdateNode(ctx context.Context, in *UpdateNodeRequest, opts ...grpc.CallOption) (*UpdateNodeResponse, error) { + out := new(UpdateNodeResponse) + err := c.cc.Invoke(ctx, "/pb.NodeService/updateNode", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeServiceClient) FindEnabledNode(ctx context.Context, in *FindEnabledNodeRequest, opts ...grpc.CallOption) (*FindEnabledNodeResponse, error) { + out := new(FindEnabledNodeResponse) + err := c.cc.Invoke(ctx, "/pb.NodeService/findEnabledNode", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeServiceClient) ComposeNodeConfig(ctx context.Context, in *ComposeNodeConfigRequest, opts ...grpc.CallOption) (*ComposeNodeConfigResponse, error) { + out := new(ComposeNodeConfigResponse) + err := c.cc.Invoke(ctx, "/pb.NodeService/composeNodeConfig", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeServiceClient) NodeStream(ctx context.Context, opts ...grpc.CallOption) (NodeService_NodeStreamClient, error) { + stream, err := c.cc.NewStream(ctx, &_NodeService_serviceDesc.Streams[0], "/pb.NodeService/nodeStream", opts...) + if err != nil { + return nil, err + } + x := &nodeServiceNodeStreamClient{stream} + return x, nil +} + +type NodeService_NodeStreamClient interface { + Send(*NodeStreamRequest) error + Recv() (*NodeStreamResponse, error) + grpc.ClientStream +} + +type nodeServiceNodeStreamClient struct { + grpc.ClientStream +} + +func (x *nodeServiceNodeStreamClient) Send(m *NodeStreamRequest) error { + return x.ClientStream.SendMsg(m) +} + +func (x *nodeServiceNodeStreamClient) Recv() (*NodeStreamResponse, error) { + m := new(NodeStreamResponse) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func (c *nodeServiceClient) UpdateNodeStatus(ctx context.Context, in *UpdateNodeStatusRequest, opts ...grpc.CallOption) (*UpdateNodeStatusResponse, error) { + out := new(UpdateNodeStatusResponse) + err := c.cc.Invoke(ctx, "/pb.NodeService/updateNodeStatus", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeServiceClient) SyncNodesVersionWithCluster(ctx context.Context, in *SyncNodesVersionWithClusterRequest, opts ...grpc.CallOption) (*SyncNodesVersionWithClusterResponse, error) { + out := new(SyncNodesVersionWithClusterResponse) + err := c.cc.Invoke(ctx, "/pb.NodeService/syncNodesVersionWithCluster", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeServiceClient) UpdateNodeIsInstalled(ctx context.Context, in *UpdateNodeIsInstalledRequest, opts ...grpc.CallOption) (*UpdateNodeIsInstalledResponse, error) { + out := new(UpdateNodeIsInstalledResponse) + err := c.cc.Invoke(ctx, "/pb.NodeService/updateNodeIsInstalled", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeServiceClient) InstallNode(ctx context.Context, in *InstallNodeRequest, opts ...grpc.CallOption) (*InstallNodeResponse, error) { + out := new(InstallNodeResponse) + err := c.cc.Invoke(ctx, "/pb.NodeService/installNode", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// NodeServiceServer is the server API for NodeService service. +type NodeServiceServer interface { + // 创建节点 + CreateNode(context.Context, *CreateNodeRequest) (*CreateNodeResponse, error) + // 节点数量 + CountAllEnabledNodes(context.Context, *CountAllEnabledNodesRequest) (*CountAllEnabledNodesResponse, error) + // 计算匹配的节点数量 + CountAllEnabledNodesMatch(context.Context, *CountAllEnabledNodesMatchRequest) (*CountAllEnabledNodesMatchResponse, error) + // 列出单页节点 + ListEnabledNodesMatch(context.Context, *ListEnabledNodesMatchRequest) (*ListEnabledNodesMatchResponse, error) + // 禁用节点 + DisableNode(context.Context, *DisableNodeRequest) (*DisableNodeResponse, error) + // 修改节点 + UpdateNode(context.Context, *UpdateNodeRequest) (*UpdateNodeResponse, error) + // 查看单个节点 + FindEnabledNode(context.Context, *FindEnabledNodeRequest) (*FindEnabledNodeResponse, error) + // 组合单个节点配置 + ComposeNodeConfig(context.Context, *ComposeNodeConfigRequest) (*ComposeNodeConfigResponse, error) + // 节点stream + NodeStream(NodeService_NodeStreamServer) error + // 更新节点状态 + UpdateNodeStatus(context.Context, *UpdateNodeStatusRequest) (*UpdateNodeStatusResponse, error) + // 同步集群中的节点版本 + SyncNodesVersionWithCluster(context.Context, *SyncNodesVersionWithClusterRequest) (*SyncNodesVersionWithClusterResponse, error) + // 修改节点安装状态 + UpdateNodeIsInstalled(context.Context, *UpdateNodeIsInstalledRequest) (*UpdateNodeIsInstalledResponse, error) + // 安装节点 + InstallNode(context.Context, *InstallNodeRequest) (*InstallNodeResponse, error) +} + +// UnimplementedNodeServiceServer can be embedded to have forward compatible implementations. +type UnimplementedNodeServiceServer struct { +} + +func (*UnimplementedNodeServiceServer) CreateNode(context.Context, *CreateNodeRequest) (*CreateNodeResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateNode not implemented") +} +func (*UnimplementedNodeServiceServer) CountAllEnabledNodes(context.Context, *CountAllEnabledNodesRequest) (*CountAllEnabledNodesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CountAllEnabledNodes not implemented") +} +func (*UnimplementedNodeServiceServer) CountAllEnabledNodesMatch(context.Context, *CountAllEnabledNodesMatchRequest) (*CountAllEnabledNodesMatchResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CountAllEnabledNodesMatch not implemented") +} +func (*UnimplementedNodeServiceServer) ListEnabledNodesMatch(context.Context, *ListEnabledNodesMatchRequest) (*ListEnabledNodesMatchResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListEnabledNodesMatch not implemented") +} +func (*UnimplementedNodeServiceServer) DisableNode(context.Context, *DisableNodeRequest) (*DisableNodeResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DisableNode not implemented") +} +func (*UnimplementedNodeServiceServer) UpdateNode(context.Context, *UpdateNodeRequest) (*UpdateNodeResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateNode not implemented") +} +func (*UnimplementedNodeServiceServer) FindEnabledNode(context.Context, *FindEnabledNodeRequest) (*FindEnabledNodeResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method FindEnabledNode not implemented") +} +func (*UnimplementedNodeServiceServer) ComposeNodeConfig(context.Context, *ComposeNodeConfigRequest) (*ComposeNodeConfigResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ComposeNodeConfig not implemented") +} +func (*UnimplementedNodeServiceServer) NodeStream(NodeService_NodeStreamServer) error { + return status.Errorf(codes.Unimplemented, "method NodeStream not implemented") +} +func (*UnimplementedNodeServiceServer) UpdateNodeStatus(context.Context, *UpdateNodeStatusRequest) (*UpdateNodeStatusResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateNodeStatus not implemented") +} +func (*UnimplementedNodeServiceServer) SyncNodesVersionWithCluster(context.Context, *SyncNodesVersionWithClusterRequest) (*SyncNodesVersionWithClusterResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SyncNodesVersionWithCluster not implemented") +} +func (*UnimplementedNodeServiceServer) UpdateNodeIsInstalled(context.Context, *UpdateNodeIsInstalledRequest) (*UpdateNodeIsInstalledResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateNodeIsInstalled not implemented") +} +func (*UnimplementedNodeServiceServer) InstallNode(context.Context, *InstallNodeRequest) (*InstallNodeResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method InstallNode not implemented") +} + +func RegisterNodeServiceServer(s *grpc.Server, srv NodeServiceServer) { + s.RegisterService(&_NodeService_serviceDesc, srv) +} + +func _NodeService_CreateNode_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateNodeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServiceServer).CreateNode(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.NodeService/CreateNode", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServiceServer).CreateNode(ctx, req.(*CreateNodeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NodeService_CountAllEnabledNodes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CountAllEnabledNodesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServiceServer).CountAllEnabledNodes(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.NodeService/CountAllEnabledNodes", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServiceServer).CountAllEnabledNodes(ctx, req.(*CountAllEnabledNodesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NodeService_CountAllEnabledNodesMatch_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CountAllEnabledNodesMatchRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServiceServer).CountAllEnabledNodesMatch(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.NodeService/CountAllEnabledNodesMatch", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServiceServer).CountAllEnabledNodesMatch(ctx, req.(*CountAllEnabledNodesMatchRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NodeService_ListEnabledNodesMatch_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListEnabledNodesMatchRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServiceServer).ListEnabledNodesMatch(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.NodeService/ListEnabledNodesMatch", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServiceServer).ListEnabledNodesMatch(ctx, req.(*ListEnabledNodesMatchRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NodeService_DisableNode_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DisableNodeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServiceServer).DisableNode(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.NodeService/DisableNode", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServiceServer).DisableNode(ctx, req.(*DisableNodeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NodeService_UpdateNode_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateNodeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServiceServer).UpdateNode(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.NodeService/UpdateNode", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServiceServer).UpdateNode(ctx, req.(*UpdateNodeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NodeService_FindEnabledNode_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(FindEnabledNodeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServiceServer).FindEnabledNode(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.NodeService/FindEnabledNode", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServiceServer).FindEnabledNode(ctx, req.(*FindEnabledNodeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NodeService_ComposeNodeConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ComposeNodeConfigRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServiceServer).ComposeNodeConfig(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.NodeService/ComposeNodeConfig", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServiceServer).ComposeNodeConfig(ctx, req.(*ComposeNodeConfigRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NodeService_NodeStream_Handler(srv interface{}, stream grpc.ServerStream) error { + return srv.(NodeServiceServer).NodeStream(&nodeServiceNodeStreamServer{stream}) +} + +type NodeService_NodeStreamServer interface { + Send(*NodeStreamResponse) error + Recv() (*NodeStreamRequest, error) + grpc.ServerStream +} + +type nodeServiceNodeStreamServer struct { + grpc.ServerStream +} + +func (x *nodeServiceNodeStreamServer) Send(m *NodeStreamResponse) error { + return x.ServerStream.SendMsg(m) +} + +func (x *nodeServiceNodeStreamServer) Recv() (*NodeStreamRequest, error) { + m := new(NodeStreamRequest) + if err := x.ServerStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func _NodeService_UpdateNodeStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateNodeStatusRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServiceServer).UpdateNodeStatus(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.NodeService/UpdateNodeStatus", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServiceServer).UpdateNodeStatus(ctx, req.(*UpdateNodeStatusRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NodeService_SyncNodesVersionWithCluster_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SyncNodesVersionWithClusterRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServiceServer).SyncNodesVersionWithCluster(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.NodeService/SyncNodesVersionWithCluster", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServiceServer).SyncNodesVersionWithCluster(ctx, req.(*SyncNodesVersionWithClusterRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NodeService_UpdateNodeIsInstalled_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateNodeIsInstalledRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServiceServer).UpdateNodeIsInstalled(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.NodeService/UpdateNodeIsInstalled", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServiceServer).UpdateNodeIsInstalled(ctx, req.(*UpdateNodeIsInstalledRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NodeService_InstallNode_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(InstallNodeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServiceServer).InstallNode(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.NodeService/InstallNode", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServiceServer).InstallNode(ctx, req.(*InstallNodeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _NodeService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "pb.NodeService", + HandlerType: (*NodeServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "createNode", + Handler: _NodeService_CreateNode_Handler, + }, + { + MethodName: "countAllEnabledNodes", + Handler: _NodeService_CountAllEnabledNodes_Handler, + }, + { + MethodName: "countAllEnabledNodesMatch", + Handler: _NodeService_CountAllEnabledNodesMatch_Handler, + }, + { + MethodName: "listEnabledNodesMatch", + Handler: _NodeService_ListEnabledNodesMatch_Handler, + }, + { + MethodName: "disableNode", + Handler: _NodeService_DisableNode_Handler, + }, + { + MethodName: "updateNode", + Handler: _NodeService_UpdateNode_Handler, + }, + { + MethodName: "findEnabledNode", + Handler: _NodeService_FindEnabledNode_Handler, + }, + { + MethodName: "composeNodeConfig", + Handler: _NodeService_ComposeNodeConfig_Handler, + }, + { + MethodName: "updateNodeStatus", + Handler: _NodeService_UpdateNodeStatus_Handler, + }, + { + MethodName: "syncNodesVersionWithCluster", + Handler: _NodeService_SyncNodesVersionWithCluster_Handler, + }, + { + MethodName: "updateNodeIsInstalled", + Handler: _NodeService_UpdateNodeIsInstalled_Handler, + }, + { + MethodName: "installNode", + Handler: _NodeService_InstallNode_Handler, + }, + }, + Streams: []grpc.StreamDesc{ + { + StreamName: "nodeStream", + Handler: _NodeService_NodeStream_Handler, + ServerStreams: true, + ClientStreams: true, + }, + }, + Metadata: "service_node.proto", +} diff --git a/pkg/rpc/pb/service_node_cluster.pb.go b/pkg/rpc/pb/service_node_cluster.pb.go new file mode 100644 index 0000000..6bfca31 --- /dev/null +++ b/pkg/rpc/pb/service_node_cluster.pb.go @@ -0,0 +1,1547 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.25.0 +// protoc v3.12.3 +// source: service_node_cluster.proto + +package pb + +import ( + context "context" + proto "github.com/golang/protobuf/proto" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + 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) +) + +// This is a compile-time assertion that a sufficiently up-to-date version +// of the legacy proto package is being used. +const _ = proto.ProtoPackageIsVersion4 + +// 获取所有集群的信息 +type FindAllEnabledNodeClustersRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *FindAllEnabledNodeClustersRequest) Reset() { + *x = FindAllEnabledNodeClustersRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_cluster_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FindAllEnabledNodeClustersRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FindAllEnabledNodeClustersRequest) ProtoMessage() {} + +func (x *FindAllEnabledNodeClustersRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_node_cluster_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FindAllEnabledNodeClustersRequest.ProtoReflect.Descriptor instead. +func (*FindAllEnabledNodeClustersRequest) Descriptor() ([]byte, []int) { + return file_service_node_cluster_proto_rawDescGZIP(), []int{0} +} + +type FindAllEnabledNodeClustersResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Clusters []*NodeCluster `protobuf:"bytes,1,rep,name=clusters,proto3" json:"clusters,omitempty"` +} + +func (x *FindAllEnabledNodeClustersResponse) Reset() { + *x = FindAllEnabledNodeClustersResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_cluster_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FindAllEnabledNodeClustersResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FindAllEnabledNodeClustersResponse) ProtoMessage() {} + +func (x *FindAllEnabledNodeClustersResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_node_cluster_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FindAllEnabledNodeClustersResponse.ProtoReflect.Descriptor instead. +func (*FindAllEnabledNodeClustersResponse) Descriptor() ([]byte, []int) { + return file_service_node_cluster_proto_rawDescGZIP(), []int{1} +} + +func (x *FindAllEnabledNodeClustersResponse) GetClusters() []*NodeCluster { + if x != nil { + return x.Clusters + } + return nil +} + +// 获取变更的集群 +type FindAllChangedNodeClustersRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *FindAllChangedNodeClustersRequest) Reset() { + *x = FindAllChangedNodeClustersRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_cluster_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FindAllChangedNodeClustersRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FindAllChangedNodeClustersRequest) ProtoMessage() {} + +func (x *FindAllChangedNodeClustersRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_node_cluster_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FindAllChangedNodeClustersRequest.ProtoReflect.Descriptor instead. +func (*FindAllChangedNodeClustersRequest) Descriptor() ([]byte, []int) { + return file_service_node_cluster_proto_rawDescGZIP(), []int{2} +} + +type FindAllChangedNodeClustersResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Clusters []*NodeCluster `protobuf:"bytes,1,rep,name=clusters,proto3" json:"clusters,omitempty"` +} + +func (x *FindAllChangedNodeClustersResponse) Reset() { + *x = FindAllChangedNodeClustersResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_cluster_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FindAllChangedNodeClustersResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FindAllChangedNodeClustersResponse) ProtoMessage() {} + +func (x *FindAllChangedNodeClustersResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_node_cluster_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FindAllChangedNodeClustersResponse.ProtoReflect.Descriptor instead. +func (*FindAllChangedNodeClustersResponse) Descriptor() ([]byte, []int) { + return file_service_node_cluster_proto_rawDescGZIP(), []int{3} +} + +func (x *FindAllChangedNodeClustersResponse) GetClusters() []*NodeCluster { + if x != nil { + return x.Clusters + } + return nil +} + +// 创建集群 +type CreateNodeClusterRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + GrantId int64 `protobuf:"varint,2,opt,name=grantId,proto3" json:"grantId,omitempty"` + InstallDir string `protobuf:"bytes,3,opt,name=installDir,proto3" json:"installDir,omitempty"` +} + +func (x *CreateNodeClusterRequest) Reset() { + *x = CreateNodeClusterRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_cluster_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateNodeClusterRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateNodeClusterRequest) ProtoMessage() {} + +func (x *CreateNodeClusterRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_node_cluster_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateNodeClusterRequest.ProtoReflect.Descriptor instead. +func (*CreateNodeClusterRequest) Descriptor() ([]byte, []int) { + return file_service_node_cluster_proto_rawDescGZIP(), []int{4} +} + +func (x *CreateNodeClusterRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *CreateNodeClusterRequest) GetGrantId() int64 { + if x != nil { + return x.GrantId + } + return 0 +} + +func (x *CreateNodeClusterRequest) GetInstallDir() string { + if x != nil { + return x.InstallDir + } + return "" +} + +type CreateNodeClusterResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ClusterId int64 `protobuf:"varint,1,opt,name=clusterId,proto3" json:"clusterId,omitempty"` +} + +func (x *CreateNodeClusterResponse) Reset() { + *x = CreateNodeClusterResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_cluster_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateNodeClusterResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateNodeClusterResponse) ProtoMessage() {} + +func (x *CreateNodeClusterResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_node_cluster_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 CreateNodeClusterResponse.ProtoReflect.Descriptor instead. +func (*CreateNodeClusterResponse) Descriptor() ([]byte, []int) { + return file_service_node_cluster_proto_rawDescGZIP(), []int{5} +} + +func (x *CreateNodeClusterResponse) GetClusterId() int64 { + if x != nil { + return x.ClusterId + } + return 0 +} + +// 修改集群 +type UpdateNodeClusterRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ClusterId int64 `protobuf:"varint,1,opt,name=clusterId,proto3" json:"clusterId,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + GrantId int64 `protobuf:"varint,3,opt,name=grantId,proto3" json:"grantId,omitempty"` + InstallDir string `protobuf:"bytes,4,opt,name=installDir,proto3" json:"installDir,omitempty"` +} + +func (x *UpdateNodeClusterRequest) Reset() { + *x = UpdateNodeClusterRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_cluster_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateNodeClusterRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateNodeClusterRequest) ProtoMessage() {} + +func (x *UpdateNodeClusterRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_node_cluster_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 UpdateNodeClusterRequest.ProtoReflect.Descriptor instead. +func (*UpdateNodeClusterRequest) Descriptor() ([]byte, []int) { + return file_service_node_cluster_proto_rawDescGZIP(), []int{6} +} + +func (x *UpdateNodeClusterRequest) GetClusterId() int64 { + if x != nil { + return x.ClusterId + } + return 0 +} + +func (x *UpdateNodeClusterRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *UpdateNodeClusterRequest) GetGrantId() int64 { + if x != nil { + return x.GrantId + } + return 0 +} + +func (x *UpdateNodeClusterRequest) GetInstallDir() string { + if x != nil { + return x.InstallDir + } + return "" +} + +type UpdateNodeClusterResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *UpdateNodeClusterResponse) Reset() { + *x = UpdateNodeClusterResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_cluster_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateNodeClusterResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateNodeClusterResponse) ProtoMessage() {} + +func (x *UpdateNodeClusterResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_node_cluster_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 UpdateNodeClusterResponse.ProtoReflect.Descriptor instead. +func (*UpdateNodeClusterResponse) Descriptor() ([]byte, []int) { + return file_service_node_cluster_proto_rawDescGZIP(), []int{7} +} + +// 禁用集群 +type DisableNodeClusterRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ClusterId int64 `protobuf:"varint,1,opt,name=clusterId,proto3" json:"clusterId,omitempty"` +} + +func (x *DisableNodeClusterRequest) Reset() { + *x = DisableNodeClusterRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_cluster_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DisableNodeClusterRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DisableNodeClusterRequest) ProtoMessage() {} + +func (x *DisableNodeClusterRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_node_cluster_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 DisableNodeClusterRequest.ProtoReflect.Descriptor instead. +func (*DisableNodeClusterRequest) Descriptor() ([]byte, []int) { + return file_service_node_cluster_proto_rawDescGZIP(), []int{8} +} + +func (x *DisableNodeClusterRequest) GetClusterId() int64 { + if x != nil { + return x.ClusterId + } + return 0 +} + +type DisableNodeClusterResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *DisableNodeClusterResponse) Reset() { + *x = DisableNodeClusterResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_cluster_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DisableNodeClusterResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DisableNodeClusterResponse) ProtoMessage() {} + +func (x *DisableNodeClusterResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_node_cluster_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 DisableNodeClusterResponse.ProtoReflect.Descriptor instead. +func (*DisableNodeClusterResponse) Descriptor() ([]byte, []int) { + return file_service_node_cluster_proto_rawDescGZIP(), []int{9} +} + +// 查找单个集群信息 +type FindEnabledNodeClusterRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ClusterId int64 `protobuf:"varint,1,opt,name=clusterId,proto3" json:"clusterId,omitempty"` +} + +func (x *FindEnabledNodeClusterRequest) Reset() { + *x = FindEnabledNodeClusterRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_cluster_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FindEnabledNodeClusterRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FindEnabledNodeClusterRequest) ProtoMessage() {} + +func (x *FindEnabledNodeClusterRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_node_cluster_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 FindEnabledNodeClusterRequest.ProtoReflect.Descriptor instead. +func (*FindEnabledNodeClusterRequest) Descriptor() ([]byte, []int) { + return file_service_node_cluster_proto_rawDescGZIP(), []int{10} +} + +func (x *FindEnabledNodeClusterRequest) GetClusterId() int64 { + if x != nil { + return x.ClusterId + } + return 0 +} + +type FindEnabledNodeClusterResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Cluster *NodeCluster `protobuf:"bytes,1,opt,name=cluster,proto3" json:"cluster,omitempty"` +} + +func (x *FindEnabledNodeClusterResponse) Reset() { + *x = FindEnabledNodeClusterResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_cluster_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FindEnabledNodeClusterResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FindEnabledNodeClusterResponse) ProtoMessage() {} + +func (x *FindEnabledNodeClusterResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_node_cluster_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 FindEnabledNodeClusterResponse.ProtoReflect.Descriptor instead. +func (*FindEnabledNodeClusterResponse) Descriptor() ([]byte, []int) { + return file_service_node_cluster_proto_rawDescGZIP(), []int{11} +} + +func (x *FindEnabledNodeClusterResponse) GetCluster() *NodeCluster { + if x != nil { + return x.Cluster + } + return nil +} + +// 计算所有集群数量 +type CountAllEnabledNodeClustersRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *CountAllEnabledNodeClustersRequest) Reset() { + *x = CountAllEnabledNodeClustersRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_cluster_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CountAllEnabledNodeClustersRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CountAllEnabledNodeClustersRequest) ProtoMessage() {} + +func (x *CountAllEnabledNodeClustersRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_node_cluster_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 CountAllEnabledNodeClustersRequest.ProtoReflect.Descriptor instead. +func (*CountAllEnabledNodeClustersRequest) Descriptor() ([]byte, []int) { + return file_service_node_cluster_proto_rawDescGZIP(), []int{12} +} + +type CountAllEnabledNodeClustersResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Count int64 `protobuf:"varint,1,opt,name=count,proto3" json:"count,omitempty"` +} + +func (x *CountAllEnabledNodeClustersResponse) Reset() { + *x = CountAllEnabledNodeClustersResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_cluster_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CountAllEnabledNodeClustersResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CountAllEnabledNodeClustersResponse) ProtoMessage() {} + +func (x *CountAllEnabledNodeClustersResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_node_cluster_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 CountAllEnabledNodeClustersResponse.ProtoReflect.Descriptor instead. +func (*CountAllEnabledNodeClustersResponse) Descriptor() ([]byte, []int) { + return file_service_node_cluster_proto_rawDescGZIP(), []int{13} +} + +func (x *CountAllEnabledNodeClustersResponse) GetCount() int64 { + if x != nil { + return x.Count + } + return 0 +} + +// 列出单页集群 +type ListEnabledNodeClustersRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Offset int64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` + Size int64 `protobuf:"varint,2,opt,name=size,proto3" json:"size,omitempty"` +} + +func (x *ListEnabledNodeClustersRequest) Reset() { + *x = ListEnabledNodeClustersRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_cluster_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListEnabledNodeClustersRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListEnabledNodeClustersRequest) ProtoMessage() {} + +func (x *ListEnabledNodeClustersRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_node_cluster_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 ListEnabledNodeClustersRequest.ProtoReflect.Descriptor instead. +func (*ListEnabledNodeClustersRequest) Descriptor() ([]byte, []int) { + return file_service_node_cluster_proto_rawDescGZIP(), []int{14} +} + +func (x *ListEnabledNodeClustersRequest) GetOffset() int64 { + if x != nil { + return x.Offset + } + return 0 +} + +func (x *ListEnabledNodeClustersRequest) GetSize() int64 { + if x != nil { + return x.Size + } + return 0 +} + +type ListEnabledNodeClustersResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Clusters []*NodeCluster `protobuf:"bytes,1,rep,name=clusters,proto3" json:"clusters,omitempty"` +} + +func (x *ListEnabledNodeClustersResponse) Reset() { + *x = ListEnabledNodeClustersResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_cluster_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListEnabledNodeClustersResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListEnabledNodeClustersResponse) ProtoMessage() {} + +func (x *ListEnabledNodeClustersResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_node_cluster_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 ListEnabledNodeClustersResponse.ProtoReflect.Descriptor instead. +func (*ListEnabledNodeClustersResponse) Descriptor() ([]byte, []int) { + return file_service_node_cluster_proto_rawDescGZIP(), []int{15} +} + +func (x *ListEnabledNodeClustersResponse) GetClusters() []*NodeCluster { + if x != nil { + return x.Clusters + } + return nil +} + +var File_service_node_cluster_proto protoreflect.FileDescriptor + +var file_service_node_cluster_proto_rawDesc = []byte{ + 0x0a, 0x1a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, + 0x1a, 0x18, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x23, 0x0a, 0x21, 0x46, 0x69, + 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, + 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, + 0x51, 0x0a, 0x22, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x08, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, + 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x08, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x73, 0x22, 0x23, 0x0a, 0x21, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x51, 0x0a, 0x22, 0x46, 0x69, 0x6e, 0x64, 0x41, + 0x6c, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, + 0x08, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x52, 0x08, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x22, 0x68, 0x0a, 0x18, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, + 0x61, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x67, 0x72, 0x61, + 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x44, + 0x69, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, + 0x6c, 0x44, 0x69, 0x72, 0x22, 0x39, 0x0a, 0x19, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, + 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, + 0x86, 0x01, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, + 0x0a, 0x07, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x07, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x6e, 0x73, 0x74, + 0x61, 0x6c, 0x6c, 0x44, 0x69, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x6e, + 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x44, 0x69, 0x72, 0x22, 0x1b, 0x0a, 0x19, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x39, 0x0a, 0x19, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, + 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, + 0x22, 0x1c, 0x0a, 0x1a, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3d, + 0x0a, 0x1d, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, + 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0x4b, 0x0a, + 0x1e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, + 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x29, 0x0a, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x52, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x22, 0x24, 0x0a, 0x22, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, + 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x22, 0x3b, 0x0a, 0x23, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x4c, 0x0a, + 0x1e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, + 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x22, 0x4e, 0x0a, 0x1f, 0x4c, + 0x69, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, + 0x0a, 0x08, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x52, 0x08, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x32, 0x9c, 0x06, 0x0a, 0x12, + 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x12, 0x50, 0x0a, 0x11, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, + 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x11, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, + 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x12, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, + 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1d, 0x2e, 0x70, + 0x62, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x62, + 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5f, 0x0a, 0x16, 0x66, + 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x21, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, + 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6b, 0x0a, 0x1a, + 0x66, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, + 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x12, 0x25, 0x2e, 0x70, 0x62, 0x2e, + 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, + 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x26, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6b, 0x0a, 0x1a, 0x66, 0x69, 0x6e, + 0x64, 0x41, 0x6c, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x12, 0x25, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, + 0x64, 0x41, 0x6c, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, + 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6e, 0x0a, 0x1b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, + 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x73, 0x12, 0x26, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, + 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, 0x17, 0x6c, 0x69, 0x73, 0x74, 0x45, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x73, 0x12, 0x22, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, + 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_service_node_cluster_proto_rawDescOnce sync.Once + file_service_node_cluster_proto_rawDescData = file_service_node_cluster_proto_rawDesc +) + +func file_service_node_cluster_proto_rawDescGZIP() []byte { + file_service_node_cluster_proto_rawDescOnce.Do(func() { + file_service_node_cluster_proto_rawDescData = protoimpl.X.CompressGZIP(file_service_node_cluster_proto_rawDescData) + }) + return file_service_node_cluster_proto_rawDescData +} + +var file_service_node_cluster_proto_msgTypes = make([]protoimpl.MessageInfo, 16) +var file_service_node_cluster_proto_goTypes = []interface{}{ + (*FindAllEnabledNodeClustersRequest)(nil), // 0: pb.FindAllEnabledNodeClustersRequest + (*FindAllEnabledNodeClustersResponse)(nil), // 1: pb.FindAllEnabledNodeClustersResponse + (*FindAllChangedNodeClustersRequest)(nil), // 2: pb.FindAllChangedNodeClustersRequest + (*FindAllChangedNodeClustersResponse)(nil), // 3: pb.FindAllChangedNodeClustersResponse + (*CreateNodeClusterRequest)(nil), // 4: pb.CreateNodeClusterRequest + (*CreateNodeClusterResponse)(nil), // 5: pb.CreateNodeClusterResponse + (*UpdateNodeClusterRequest)(nil), // 6: pb.UpdateNodeClusterRequest + (*UpdateNodeClusterResponse)(nil), // 7: pb.UpdateNodeClusterResponse + (*DisableNodeClusterRequest)(nil), // 8: pb.DisableNodeClusterRequest + (*DisableNodeClusterResponse)(nil), // 9: pb.DisableNodeClusterResponse + (*FindEnabledNodeClusterRequest)(nil), // 10: pb.FindEnabledNodeClusterRequest + (*FindEnabledNodeClusterResponse)(nil), // 11: pb.FindEnabledNodeClusterResponse + (*CountAllEnabledNodeClustersRequest)(nil), // 12: pb.CountAllEnabledNodeClustersRequest + (*CountAllEnabledNodeClustersResponse)(nil), // 13: pb.CountAllEnabledNodeClustersResponse + (*ListEnabledNodeClustersRequest)(nil), // 14: pb.ListEnabledNodeClustersRequest + (*ListEnabledNodeClustersResponse)(nil), // 15: pb.ListEnabledNodeClustersResponse + (*NodeCluster)(nil), // 16: pb.NodeCluster +} +var file_service_node_cluster_proto_depIdxs = []int32{ + 16, // 0: pb.FindAllEnabledNodeClustersResponse.clusters:type_name -> pb.NodeCluster + 16, // 1: pb.FindAllChangedNodeClustersResponse.clusters:type_name -> pb.NodeCluster + 16, // 2: pb.FindEnabledNodeClusterResponse.cluster:type_name -> pb.NodeCluster + 16, // 3: pb.ListEnabledNodeClustersResponse.clusters:type_name -> pb.NodeCluster + 4, // 4: pb.NodeClusterService.createNodeCluster:input_type -> pb.CreateNodeClusterRequest + 6, // 5: pb.NodeClusterService.updateNodeCluster:input_type -> pb.UpdateNodeClusterRequest + 8, // 6: pb.NodeClusterService.disableNodeCluster:input_type -> pb.DisableNodeClusterRequest + 10, // 7: pb.NodeClusterService.findEnabledNodeCluster:input_type -> pb.FindEnabledNodeClusterRequest + 0, // 8: pb.NodeClusterService.findAllEnabledNodeClusters:input_type -> pb.FindAllEnabledNodeClustersRequest + 2, // 9: pb.NodeClusterService.findAllChangedNodeClusters:input_type -> pb.FindAllChangedNodeClustersRequest + 12, // 10: pb.NodeClusterService.countAllEnabledNodeClusters:input_type -> pb.CountAllEnabledNodeClustersRequest + 14, // 11: pb.NodeClusterService.listEnabledNodeClusters:input_type -> pb.ListEnabledNodeClustersRequest + 5, // 12: pb.NodeClusterService.createNodeCluster:output_type -> pb.CreateNodeClusterResponse + 7, // 13: pb.NodeClusterService.updateNodeCluster:output_type -> pb.UpdateNodeClusterResponse + 9, // 14: pb.NodeClusterService.disableNodeCluster:output_type -> pb.DisableNodeClusterResponse + 11, // 15: pb.NodeClusterService.findEnabledNodeCluster:output_type -> pb.FindEnabledNodeClusterResponse + 1, // 16: pb.NodeClusterService.findAllEnabledNodeClusters:output_type -> pb.FindAllEnabledNodeClustersResponse + 3, // 17: pb.NodeClusterService.findAllChangedNodeClusters:output_type -> pb.FindAllChangedNodeClustersResponse + 13, // 18: pb.NodeClusterService.countAllEnabledNodeClusters:output_type -> pb.CountAllEnabledNodeClustersResponse + 15, // 19: pb.NodeClusterService.listEnabledNodeClusters:output_type -> pb.ListEnabledNodeClustersResponse + 12, // [12:20] is the sub-list for method output_type + 4, // [4:12] is the sub-list for method input_type + 4, // [4:4] is the sub-list for extension type_name + 4, // [4:4] is the sub-list for extension extendee + 0, // [0:4] is the sub-list for field type_name +} + +func init() { file_service_node_cluster_proto_init() } +func file_service_node_cluster_proto_init() { + if File_service_node_cluster_proto != nil { + return + } + file_model_node_cluster_proto_init() + if !protoimpl.UnsafeEnabled { + file_service_node_cluster_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FindAllEnabledNodeClustersRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_cluster_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FindAllEnabledNodeClustersResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_cluster_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FindAllChangedNodeClustersRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_cluster_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FindAllChangedNodeClustersResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_cluster_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateNodeClusterRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_cluster_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateNodeClusterResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_cluster_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateNodeClusterRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_cluster_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateNodeClusterResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_cluster_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DisableNodeClusterRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_cluster_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DisableNodeClusterResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_cluster_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FindEnabledNodeClusterRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_cluster_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FindEnabledNodeClusterResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_cluster_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CountAllEnabledNodeClustersRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_cluster_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CountAllEnabledNodeClustersResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_cluster_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListEnabledNodeClustersRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_cluster_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListEnabledNodeClustersResponse); 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_service_node_cluster_proto_rawDesc, + NumEnums: 0, + NumMessages: 16, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_service_node_cluster_proto_goTypes, + DependencyIndexes: file_service_node_cluster_proto_depIdxs, + MessageInfos: file_service_node_cluster_proto_msgTypes, + }.Build() + File_service_node_cluster_proto = out.File + file_service_node_cluster_proto_rawDesc = nil + file_service_node_cluster_proto_goTypes = nil + file_service_node_cluster_proto_depIdxs = nil +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConnInterface + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion6 + +// NodeClusterServiceClient is the client API for NodeClusterService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type NodeClusterServiceClient interface { + // 创建集群 + CreateNodeCluster(ctx context.Context, in *CreateNodeClusterRequest, opts ...grpc.CallOption) (*CreateNodeClusterResponse, error) + // 修改集群 + UpdateNodeCluster(ctx context.Context, in *UpdateNodeClusterRequest, opts ...grpc.CallOption) (*UpdateNodeClusterResponse, error) + // 禁用集群 + DisableNodeCluster(ctx context.Context, in *DisableNodeClusterRequest, opts ...grpc.CallOption) (*DisableNodeClusterResponse, error) + // 查找单个集群信息 + FindEnabledNodeCluster(ctx context.Context, in *FindEnabledNodeClusterRequest, opts ...grpc.CallOption) (*FindEnabledNodeClusterResponse, error) + // 获取所有集群的信息 + FindAllEnabledNodeClusters(ctx context.Context, in *FindAllEnabledNodeClustersRequest, opts ...grpc.CallOption) (*FindAllEnabledNodeClustersResponse, error) + // 获取变更的集群 + FindAllChangedNodeClusters(ctx context.Context, in *FindAllChangedNodeClustersRequest, opts ...grpc.CallOption) (*FindAllChangedNodeClustersResponse, error) + // 计算所有集群数量 + CountAllEnabledNodeClusters(ctx context.Context, in *CountAllEnabledNodeClustersRequest, opts ...grpc.CallOption) (*CountAllEnabledNodeClustersResponse, error) + // 列出单页集群 + ListEnabledNodeClusters(ctx context.Context, in *ListEnabledNodeClustersRequest, opts ...grpc.CallOption) (*ListEnabledNodeClustersResponse, error) +} + +type nodeClusterServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewNodeClusterServiceClient(cc grpc.ClientConnInterface) NodeClusterServiceClient { + return &nodeClusterServiceClient{cc} +} + +func (c *nodeClusterServiceClient) CreateNodeCluster(ctx context.Context, in *CreateNodeClusterRequest, opts ...grpc.CallOption) (*CreateNodeClusterResponse, error) { + out := new(CreateNodeClusterResponse) + err := c.cc.Invoke(ctx, "/pb.NodeClusterService/createNodeCluster", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClusterServiceClient) UpdateNodeCluster(ctx context.Context, in *UpdateNodeClusterRequest, opts ...grpc.CallOption) (*UpdateNodeClusterResponse, error) { + out := new(UpdateNodeClusterResponse) + err := c.cc.Invoke(ctx, "/pb.NodeClusterService/updateNodeCluster", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClusterServiceClient) DisableNodeCluster(ctx context.Context, in *DisableNodeClusterRequest, opts ...grpc.CallOption) (*DisableNodeClusterResponse, error) { + out := new(DisableNodeClusterResponse) + err := c.cc.Invoke(ctx, "/pb.NodeClusterService/disableNodeCluster", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClusterServiceClient) FindEnabledNodeCluster(ctx context.Context, in *FindEnabledNodeClusterRequest, opts ...grpc.CallOption) (*FindEnabledNodeClusterResponse, error) { + out := new(FindEnabledNodeClusterResponse) + err := c.cc.Invoke(ctx, "/pb.NodeClusterService/findEnabledNodeCluster", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClusterServiceClient) FindAllEnabledNodeClusters(ctx context.Context, in *FindAllEnabledNodeClustersRequest, opts ...grpc.CallOption) (*FindAllEnabledNodeClustersResponse, error) { + out := new(FindAllEnabledNodeClustersResponse) + err := c.cc.Invoke(ctx, "/pb.NodeClusterService/findAllEnabledNodeClusters", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClusterServiceClient) FindAllChangedNodeClusters(ctx context.Context, in *FindAllChangedNodeClustersRequest, opts ...grpc.CallOption) (*FindAllChangedNodeClustersResponse, error) { + out := new(FindAllChangedNodeClustersResponse) + err := c.cc.Invoke(ctx, "/pb.NodeClusterService/findAllChangedNodeClusters", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClusterServiceClient) CountAllEnabledNodeClusters(ctx context.Context, in *CountAllEnabledNodeClustersRequest, opts ...grpc.CallOption) (*CountAllEnabledNodeClustersResponse, error) { + out := new(CountAllEnabledNodeClustersResponse) + err := c.cc.Invoke(ctx, "/pb.NodeClusterService/countAllEnabledNodeClusters", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClusterServiceClient) ListEnabledNodeClusters(ctx context.Context, in *ListEnabledNodeClustersRequest, opts ...grpc.CallOption) (*ListEnabledNodeClustersResponse, error) { + out := new(ListEnabledNodeClustersResponse) + err := c.cc.Invoke(ctx, "/pb.NodeClusterService/listEnabledNodeClusters", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// NodeClusterServiceServer is the server API for NodeClusterService service. +type NodeClusterServiceServer interface { + // 创建集群 + CreateNodeCluster(context.Context, *CreateNodeClusterRequest) (*CreateNodeClusterResponse, error) + // 修改集群 + UpdateNodeCluster(context.Context, *UpdateNodeClusterRequest) (*UpdateNodeClusterResponse, error) + // 禁用集群 + DisableNodeCluster(context.Context, *DisableNodeClusterRequest) (*DisableNodeClusterResponse, error) + // 查找单个集群信息 + FindEnabledNodeCluster(context.Context, *FindEnabledNodeClusterRequest) (*FindEnabledNodeClusterResponse, error) + // 获取所有集群的信息 + FindAllEnabledNodeClusters(context.Context, *FindAllEnabledNodeClustersRequest) (*FindAllEnabledNodeClustersResponse, error) + // 获取变更的集群 + FindAllChangedNodeClusters(context.Context, *FindAllChangedNodeClustersRequest) (*FindAllChangedNodeClustersResponse, error) + // 计算所有集群数量 + CountAllEnabledNodeClusters(context.Context, *CountAllEnabledNodeClustersRequest) (*CountAllEnabledNodeClustersResponse, error) + // 列出单页集群 + ListEnabledNodeClusters(context.Context, *ListEnabledNodeClustersRequest) (*ListEnabledNodeClustersResponse, error) +} + +// UnimplementedNodeClusterServiceServer can be embedded to have forward compatible implementations. +type UnimplementedNodeClusterServiceServer struct { +} + +func (*UnimplementedNodeClusterServiceServer) CreateNodeCluster(context.Context, *CreateNodeClusterRequest) (*CreateNodeClusterResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateNodeCluster not implemented") +} +func (*UnimplementedNodeClusterServiceServer) UpdateNodeCluster(context.Context, *UpdateNodeClusterRequest) (*UpdateNodeClusterResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateNodeCluster not implemented") +} +func (*UnimplementedNodeClusterServiceServer) DisableNodeCluster(context.Context, *DisableNodeClusterRequest) (*DisableNodeClusterResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DisableNodeCluster not implemented") +} +func (*UnimplementedNodeClusterServiceServer) FindEnabledNodeCluster(context.Context, *FindEnabledNodeClusterRequest) (*FindEnabledNodeClusterResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method FindEnabledNodeCluster not implemented") +} +func (*UnimplementedNodeClusterServiceServer) FindAllEnabledNodeClusters(context.Context, *FindAllEnabledNodeClustersRequest) (*FindAllEnabledNodeClustersResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method FindAllEnabledNodeClusters not implemented") +} +func (*UnimplementedNodeClusterServiceServer) FindAllChangedNodeClusters(context.Context, *FindAllChangedNodeClustersRequest) (*FindAllChangedNodeClustersResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method FindAllChangedNodeClusters not implemented") +} +func (*UnimplementedNodeClusterServiceServer) CountAllEnabledNodeClusters(context.Context, *CountAllEnabledNodeClustersRequest) (*CountAllEnabledNodeClustersResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CountAllEnabledNodeClusters not implemented") +} +func (*UnimplementedNodeClusterServiceServer) ListEnabledNodeClusters(context.Context, *ListEnabledNodeClustersRequest) (*ListEnabledNodeClustersResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListEnabledNodeClusters not implemented") +} + +func RegisterNodeClusterServiceServer(s *grpc.Server, srv NodeClusterServiceServer) { + s.RegisterService(&_NodeClusterService_serviceDesc, srv) +} + +func _NodeClusterService_CreateNodeCluster_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateNodeClusterRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeClusterServiceServer).CreateNodeCluster(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.NodeClusterService/CreateNodeCluster", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeClusterServiceServer).CreateNodeCluster(ctx, req.(*CreateNodeClusterRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NodeClusterService_UpdateNodeCluster_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateNodeClusterRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeClusterServiceServer).UpdateNodeCluster(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.NodeClusterService/UpdateNodeCluster", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeClusterServiceServer).UpdateNodeCluster(ctx, req.(*UpdateNodeClusterRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NodeClusterService_DisableNodeCluster_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DisableNodeClusterRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeClusterServiceServer).DisableNodeCluster(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.NodeClusterService/DisableNodeCluster", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeClusterServiceServer).DisableNodeCluster(ctx, req.(*DisableNodeClusterRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NodeClusterService_FindEnabledNodeCluster_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(FindEnabledNodeClusterRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeClusterServiceServer).FindEnabledNodeCluster(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.NodeClusterService/FindEnabledNodeCluster", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeClusterServiceServer).FindEnabledNodeCluster(ctx, req.(*FindEnabledNodeClusterRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NodeClusterService_FindAllEnabledNodeClusters_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(FindAllEnabledNodeClustersRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeClusterServiceServer).FindAllEnabledNodeClusters(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.NodeClusterService/FindAllEnabledNodeClusters", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeClusterServiceServer).FindAllEnabledNodeClusters(ctx, req.(*FindAllEnabledNodeClustersRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NodeClusterService_FindAllChangedNodeClusters_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(FindAllChangedNodeClustersRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeClusterServiceServer).FindAllChangedNodeClusters(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.NodeClusterService/FindAllChangedNodeClusters", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeClusterServiceServer).FindAllChangedNodeClusters(ctx, req.(*FindAllChangedNodeClustersRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NodeClusterService_CountAllEnabledNodeClusters_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CountAllEnabledNodeClustersRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeClusterServiceServer).CountAllEnabledNodeClusters(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.NodeClusterService/CountAllEnabledNodeClusters", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeClusterServiceServer).CountAllEnabledNodeClusters(ctx, req.(*CountAllEnabledNodeClustersRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NodeClusterService_ListEnabledNodeClusters_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListEnabledNodeClustersRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeClusterServiceServer).ListEnabledNodeClusters(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.NodeClusterService/ListEnabledNodeClusters", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeClusterServiceServer).ListEnabledNodeClusters(ctx, req.(*ListEnabledNodeClustersRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _NodeClusterService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "pb.NodeClusterService", + HandlerType: (*NodeClusterServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "createNodeCluster", + Handler: _NodeClusterService_CreateNodeCluster_Handler, + }, + { + MethodName: "updateNodeCluster", + Handler: _NodeClusterService_UpdateNodeCluster_Handler, + }, + { + MethodName: "disableNodeCluster", + Handler: _NodeClusterService_DisableNodeCluster_Handler, + }, + { + MethodName: "findEnabledNodeCluster", + Handler: _NodeClusterService_FindEnabledNodeCluster_Handler, + }, + { + MethodName: "findAllEnabledNodeClusters", + Handler: _NodeClusterService_FindAllEnabledNodeClusters_Handler, + }, + { + MethodName: "findAllChangedNodeClusters", + Handler: _NodeClusterService_FindAllChangedNodeClusters_Handler, + }, + { + MethodName: "countAllEnabledNodeClusters", + Handler: _NodeClusterService_CountAllEnabledNodeClusters_Handler, + }, + { + MethodName: "listEnabledNodeClusters", + Handler: _NodeClusterService_ListEnabledNodeClusters_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "service_node_cluster.proto", +} diff --git a/pkg/rpc/pb/service_node_grant.pb.go b/pkg/rpc/pb/service_node_grant.pb.go new file mode 100644 index 0000000..69104de --- /dev/null +++ b/pkg/rpc/pb/service_node_grant.pb.go @@ -0,0 +1,1450 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.25.0 +// protoc v3.12.3 +// source: service_node_grant.proto + +package pb + +import ( + context "context" + proto "github.com/golang/protobuf/proto" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + 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) +) + +// This is a compile-time assertion that a sufficiently up-to-date version +// of the legacy proto package is being used. +const _ = proto.ProtoPackageIsVersion4 + +// 创建节点认证 +type CreateNodeGrantRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Method string `protobuf:"bytes,2,opt,name=method,proto3" json:"method,omitempty"` + Username string `protobuf:"bytes,3,opt,name=username,proto3" json:"username,omitempty"` + Password string `protobuf:"bytes,4,opt,name=password,proto3" json:"password,omitempty"` + PrivateKey string `protobuf:"bytes,5,opt,name=privateKey,proto3" json:"privateKey,omitempty"` + Description string `protobuf:"bytes,6,opt,name=description,proto3" json:"description,omitempty"` + NodeId int64 `protobuf:"varint,7,opt,name=nodeId,proto3" json:"nodeId,omitempty"` +} + +func (x *CreateNodeGrantRequest) Reset() { + *x = CreateNodeGrantRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_grant_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateNodeGrantRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateNodeGrantRequest) ProtoMessage() {} + +func (x *CreateNodeGrantRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_node_grant_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 CreateNodeGrantRequest.ProtoReflect.Descriptor instead. +func (*CreateNodeGrantRequest) Descriptor() ([]byte, []int) { + return file_service_node_grant_proto_rawDescGZIP(), []int{0} +} + +func (x *CreateNodeGrantRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *CreateNodeGrantRequest) GetMethod() string { + if x != nil { + return x.Method + } + return "" +} + +func (x *CreateNodeGrantRequest) GetUsername() string { + if x != nil { + return x.Username + } + return "" +} + +func (x *CreateNodeGrantRequest) GetPassword() string { + if x != nil { + return x.Password + } + return "" +} + +func (x *CreateNodeGrantRequest) GetPrivateKey() string { + if x != nil { + return x.PrivateKey + } + return "" +} + +func (x *CreateNodeGrantRequest) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *CreateNodeGrantRequest) GetNodeId() int64 { + if x != nil { + return x.NodeId + } + return 0 +} + +type CreateNodeGrantResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GrantId int64 `protobuf:"varint,1,opt,name=grantId,proto3" json:"grantId,omitempty"` +} + +func (x *CreateNodeGrantResponse) Reset() { + *x = CreateNodeGrantResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_grant_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateNodeGrantResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateNodeGrantResponse) ProtoMessage() {} + +func (x *CreateNodeGrantResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_node_grant_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 CreateNodeGrantResponse.ProtoReflect.Descriptor instead. +func (*CreateNodeGrantResponse) Descriptor() ([]byte, []int) { + return file_service_node_grant_proto_rawDescGZIP(), []int{1} +} + +func (x *CreateNodeGrantResponse) GetGrantId() int64 { + if x != nil { + return x.GrantId + } + return 0 +} + +// 修改节点认证 +type UpdateNodeGrantRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GrantId int64 `protobuf:"varint,8,opt,name=grantId,proto3" json:"grantId,omitempty"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Method string `protobuf:"bytes,2,opt,name=method,proto3" json:"method,omitempty"` + Username string `protobuf:"bytes,3,opt,name=username,proto3" json:"username,omitempty"` + Password string `protobuf:"bytes,4,opt,name=password,proto3" json:"password,omitempty"` + PrivateKey string `protobuf:"bytes,5,opt,name=privateKey,proto3" json:"privateKey,omitempty"` + Description string `protobuf:"bytes,6,opt,name=description,proto3" json:"description,omitempty"` + NodeId int64 `protobuf:"varint,7,opt,name=nodeId,proto3" json:"nodeId,omitempty"` +} + +func (x *UpdateNodeGrantRequest) Reset() { + *x = UpdateNodeGrantRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_grant_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateNodeGrantRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateNodeGrantRequest) ProtoMessage() {} + +func (x *UpdateNodeGrantRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_node_grant_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 UpdateNodeGrantRequest.ProtoReflect.Descriptor instead. +func (*UpdateNodeGrantRequest) Descriptor() ([]byte, []int) { + return file_service_node_grant_proto_rawDescGZIP(), []int{2} +} + +func (x *UpdateNodeGrantRequest) GetGrantId() int64 { + if x != nil { + return x.GrantId + } + return 0 +} + +func (x *UpdateNodeGrantRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *UpdateNodeGrantRequest) GetMethod() string { + if x != nil { + return x.Method + } + return "" +} + +func (x *UpdateNodeGrantRequest) GetUsername() string { + if x != nil { + return x.Username + } + return "" +} + +func (x *UpdateNodeGrantRequest) GetPassword() string { + if x != nil { + return x.Password + } + return "" +} + +func (x *UpdateNodeGrantRequest) GetPrivateKey() string { + if x != nil { + return x.PrivateKey + } + return "" +} + +func (x *UpdateNodeGrantRequest) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *UpdateNodeGrantRequest) GetNodeId() int64 { + if x != nil { + return x.NodeId + } + return 0 +} + +type UpdateNodeGrantResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *UpdateNodeGrantResponse) Reset() { + *x = UpdateNodeGrantResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_grant_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateNodeGrantResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateNodeGrantResponse) ProtoMessage() {} + +func (x *UpdateNodeGrantResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_node_grant_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 UpdateNodeGrantResponse.ProtoReflect.Descriptor instead. +func (*UpdateNodeGrantResponse) Descriptor() ([]byte, []int) { + return file_service_node_grant_proto_rawDescGZIP(), []int{3} +} + +// 禁用节点认证 +type DisableNodeGrantRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GrantId int64 `protobuf:"varint,1,opt,name=grantId,proto3" json:"grantId,omitempty"` +} + +func (x *DisableNodeGrantRequest) Reset() { + *x = DisableNodeGrantRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_grant_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DisableNodeGrantRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DisableNodeGrantRequest) ProtoMessage() {} + +func (x *DisableNodeGrantRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_node_grant_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 DisableNodeGrantRequest.ProtoReflect.Descriptor instead. +func (*DisableNodeGrantRequest) Descriptor() ([]byte, []int) { + return file_service_node_grant_proto_rawDescGZIP(), []int{4} +} + +func (x *DisableNodeGrantRequest) GetGrantId() int64 { + if x != nil { + return x.GrantId + } + return 0 +} + +type DisableNodeGrantResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *DisableNodeGrantResponse) Reset() { + *x = DisableNodeGrantResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_grant_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DisableNodeGrantResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DisableNodeGrantResponse) ProtoMessage() {} + +func (x *DisableNodeGrantResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_node_grant_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 DisableNodeGrantResponse.ProtoReflect.Descriptor instead. +func (*DisableNodeGrantResponse) Descriptor() ([]byte, []int) { + return file_service_node_grant_proto_rawDescGZIP(), []int{5} +} + +// 计算节点认证数量 +type CountAllEnabledNodeGrantsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *CountAllEnabledNodeGrantsRequest) Reset() { + *x = CountAllEnabledNodeGrantsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_grant_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CountAllEnabledNodeGrantsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CountAllEnabledNodeGrantsRequest) ProtoMessage() {} + +func (x *CountAllEnabledNodeGrantsRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_node_grant_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 CountAllEnabledNodeGrantsRequest.ProtoReflect.Descriptor instead. +func (*CountAllEnabledNodeGrantsRequest) Descriptor() ([]byte, []int) { + return file_service_node_grant_proto_rawDescGZIP(), []int{6} +} + +type CountAllEnabledNodeGrantsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Count int64 `protobuf:"varint,1,opt,name=count,proto3" json:"count,omitempty"` +} + +func (x *CountAllEnabledNodeGrantsResponse) Reset() { + *x = CountAllEnabledNodeGrantsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_grant_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CountAllEnabledNodeGrantsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CountAllEnabledNodeGrantsResponse) ProtoMessage() {} + +func (x *CountAllEnabledNodeGrantsResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_node_grant_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 CountAllEnabledNodeGrantsResponse.ProtoReflect.Descriptor instead. +func (*CountAllEnabledNodeGrantsResponse) Descriptor() ([]byte, []int) { + return file_service_node_grant_proto_rawDescGZIP(), []int{7} +} + +func (x *CountAllEnabledNodeGrantsResponse) GetCount() int64 { + if x != nil { + return x.Count + } + return 0 +} + +// 列出单页认证 +type ListEnabledNodeGrantsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Offset int64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` + Size int64 `protobuf:"varint,2,opt,name=size,proto3" json:"size,omitempty"` +} + +func (x *ListEnabledNodeGrantsRequest) Reset() { + *x = ListEnabledNodeGrantsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_grant_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListEnabledNodeGrantsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListEnabledNodeGrantsRequest) ProtoMessage() {} + +func (x *ListEnabledNodeGrantsRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_node_grant_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 ListEnabledNodeGrantsRequest.ProtoReflect.Descriptor instead. +func (*ListEnabledNodeGrantsRequest) Descriptor() ([]byte, []int) { + return file_service_node_grant_proto_rawDescGZIP(), []int{8} +} + +func (x *ListEnabledNodeGrantsRequest) GetOffset() int64 { + if x != nil { + return x.Offset + } + return 0 +} + +func (x *ListEnabledNodeGrantsRequest) GetSize() int64 { + if x != nil { + return x.Size + } + return 0 +} + +type ListEnabledNodeGrantsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Grants []*NodeGrant `protobuf:"bytes,1,rep,name=grants,proto3" json:"grants,omitempty"` +} + +func (x *ListEnabledNodeGrantsResponse) Reset() { + *x = ListEnabledNodeGrantsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_grant_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListEnabledNodeGrantsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListEnabledNodeGrantsResponse) ProtoMessage() {} + +func (x *ListEnabledNodeGrantsResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_node_grant_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 ListEnabledNodeGrantsResponse.ProtoReflect.Descriptor instead. +func (*ListEnabledNodeGrantsResponse) Descriptor() ([]byte, []int) { + return file_service_node_grant_proto_rawDescGZIP(), []int{9} +} + +func (x *ListEnabledNodeGrantsResponse) GetGrants() []*NodeGrant { + if x != nil { + return x.Grants + } + return nil +} + +// 获取所有认证信息 +type FindAllEnabledNodeGrantsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *FindAllEnabledNodeGrantsRequest) Reset() { + *x = FindAllEnabledNodeGrantsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_grant_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FindAllEnabledNodeGrantsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FindAllEnabledNodeGrantsRequest) ProtoMessage() {} + +func (x *FindAllEnabledNodeGrantsRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_node_grant_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 FindAllEnabledNodeGrantsRequest.ProtoReflect.Descriptor instead. +func (*FindAllEnabledNodeGrantsRequest) Descriptor() ([]byte, []int) { + return file_service_node_grant_proto_rawDescGZIP(), []int{10} +} + +type FindAllEnabledNodeGrantsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Grants []*NodeGrant `protobuf:"bytes,1,rep,name=grants,proto3" json:"grants,omitempty"` +} + +func (x *FindAllEnabledNodeGrantsResponse) Reset() { + *x = FindAllEnabledNodeGrantsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_grant_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FindAllEnabledNodeGrantsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FindAllEnabledNodeGrantsResponse) ProtoMessage() {} + +func (x *FindAllEnabledNodeGrantsResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_node_grant_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 FindAllEnabledNodeGrantsResponse.ProtoReflect.Descriptor instead. +func (*FindAllEnabledNodeGrantsResponse) Descriptor() ([]byte, []int) { + return file_service_node_grant_proto_rawDescGZIP(), []int{11} +} + +func (x *FindAllEnabledNodeGrantsResponse) GetGrants() []*NodeGrant { + if x != nil { + return x.Grants + } + return nil +} + +// 获取认证信息 +type FindEnabledGrantRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GrantId int64 `protobuf:"varint,1,opt,name=grantId,proto3" json:"grantId,omitempty"` +} + +func (x *FindEnabledGrantRequest) Reset() { + *x = FindEnabledGrantRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_grant_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FindEnabledGrantRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FindEnabledGrantRequest) ProtoMessage() {} + +func (x *FindEnabledGrantRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_node_grant_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 FindEnabledGrantRequest.ProtoReflect.Descriptor instead. +func (*FindEnabledGrantRequest) Descriptor() ([]byte, []int) { + return file_service_node_grant_proto_rawDescGZIP(), []int{12} +} + +func (x *FindEnabledGrantRequest) GetGrantId() int64 { + if x != nil { + return x.GrantId + } + return 0 +} + +type FindEnabledGrantResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Grant *NodeGrant `protobuf:"bytes,1,opt,name=grant,proto3" json:"grant,omitempty"` +} + +func (x *FindEnabledGrantResponse) Reset() { + *x = FindEnabledGrantResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_grant_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FindEnabledGrantResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FindEnabledGrantResponse) ProtoMessage() {} + +func (x *FindEnabledGrantResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_node_grant_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 FindEnabledGrantResponse.ProtoReflect.Descriptor instead. +func (*FindEnabledGrantResponse) Descriptor() ([]byte, []int) { + return file_service_node_grant_proto_rawDescGZIP(), []int{13} +} + +func (x *FindEnabledGrantResponse) GetGrant() *NodeGrant { + if x != nil { + return x.Grant + } + return nil +} + +var File_service_node_grant_proto protoreflect.FileDescriptor + +var file_service_node_grant_proto_rawDesc = []byte{ + 0x0a, 0x18, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x67, + 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x1a, 0x16, + 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x67, 0x72, 0x61, 0x6e, 0x74, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xd6, 0x01, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x1a, 0x0a, + 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, + 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, + 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, + 0x4b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x69, 0x76, 0x61, + 0x74, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, + 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x22, + 0x33, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x61, + 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, + 0x61, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x67, 0x72, 0x61, + 0x6e, 0x74, 0x49, 0x64, 0x22, 0xf0, 0x01, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, + 0x6f, 0x64, 0x65, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x18, 0x0a, 0x07, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x07, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, + 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x1e, 0x0a, + 0x0a, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x20, 0x0a, + 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x22, 0x19, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x33, 0x0a, 0x17, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x6f, 0x64, + 0x65, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, + 0x07, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, + 0x67, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x1a, 0x0a, 0x18, 0x44, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x22, 0x0a, 0x20, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x39, 0x0a, 0x21, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, + 0x61, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x22, 0x4a, 0x0a, 0x1c, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, + 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x22, 0x46, + 0x0a, 0x1d, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, + 0x65, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x25, 0x0a, 0x06, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x0d, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x52, 0x06, + 0x67, 0x72, 0x61, 0x6e, 0x74, 0x73, 0x22, 0x21, 0x0a, 0x1f, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, + 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x61, 0x6e, + 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x49, 0x0a, 0x20, 0x46, 0x69, 0x6e, + 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x47, + 0x72, 0x61, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, + 0x06, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, + 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x52, 0x06, 0x67, 0x72, + 0x61, 0x6e, 0x74, 0x73, 0x22, 0x33, 0x0a, 0x17, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x18, 0x0a, 0x07, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x07, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x3f, 0x0a, 0x18, 0x46, 0x69, 0x6e, + 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x23, 0x0a, 0x05, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, + 0x61, 0x6e, 0x74, 0x52, 0x05, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x32, 0xf7, 0x04, 0x0a, 0x10, 0x4e, + 0x6f, 0x64, 0x65, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, + 0x4a, 0x0a, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x61, + 0x6e, 0x74, 0x12, 0x1a, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, + 0x64, 0x65, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, + 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, + 0x61, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x0f, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x12, 0x1a, + 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, + 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x70, 0x62, 0x2e, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x10, 0x64, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x12, 0x1b, 0x2e, 0x70, 0x62, + 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x61, 0x6e, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x69, + 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x68, 0x0a, 0x19, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, + 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x61, + 0x6e, 0x74, 0x73, 0x12, 0x24, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, + 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x61, 0x6e, + 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x70, 0x62, 0x2e, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, + 0x64, 0x65, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x5c, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, + 0x6f, 0x64, 0x65, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x73, 0x12, 0x20, 0x2e, 0x70, 0x62, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, + 0x61, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x70, 0x62, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, + 0x47, 0x72, 0x61, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x65, + 0x0a, 0x18, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, + 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x73, 0x12, 0x23, 0x2e, 0x70, 0x62, 0x2e, + 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, + 0x64, 0x65, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x24, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x10, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x12, 0x1b, 0x2e, 0x70, 0x62, 0x2e, 0x46, + 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, + 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_service_node_grant_proto_rawDescOnce sync.Once + file_service_node_grant_proto_rawDescData = file_service_node_grant_proto_rawDesc +) + +func file_service_node_grant_proto_rawDescGZIP() []byte { + file_service_node_grant_proto_rawDescOnce.Do(func() { + file_service_node_grant_proto_rawDescData = protoimpl.X.CompressGZIP(file_service_node_grant_proto_rawDescData) + }) + return file_service_node_grant_proto_rawDescData +} + +var file_service_node_grant_proto_msgTypes = make([]protoimpl.MessageInfo, 14) +var file_service_node_grant_proto_goTypes = []interface{}{ + (*CreateNodeGrantRequest)(nil), // 0: pb.CreateNodeGrantRequest + (*CreateNodeGrantResponse)(nil), // 1: pb.CreateNodeGrantResponse + (*UpdateNodeGrantRequest)(nil), // 2: pb.UpdateNodeGrantRequest + (*UpdateNodeGrantResponse)(nil), // 3: pb.UpdateNodeGrantResponse + (*DisableNodeGrantRequest)(nil), // 4: pb.DisableNodeGrantRequest + (*DisableNodeGrantResponse)(nil), // 5: pb.DisableNodeGrantResponse + (*CountAllEnabledNodeGrantsRequest)(nil), // 6: pb.CountAllEnabledNodeGrantsRequest + (*CountAllEnabledNodeGrantsResponse)(nil), // 7: pb.CountAllEnabledNodeGrantsResponse + (*ListEnabledNodeGrantsRequest)(nil), // 8: pb.ListEnabledNodeGrantsRequest + (*ListEnabledNodeGrantsResponse)(nil), // 9: pb.ListEnabledNodeGrantsResponse + (*FindAllEnabledNodeGrantsRequest)(nil), // 10: pb.FindAllEnabledNodeGrantsRequest + (*FindAllEnabledNodeGrantsResponse)(nil), // 11: pb.FindAllEnabledNodeGrantsResponse + (*FindEnabledGrantRequest)(nil), // 12: pb.FindEnabledGrantRequest + (*FindEnabledGrantResponse)(nil), // 13: pb.FindEnabledGrantResponse + (*NodeGrant)(nil), // 14: pb.NodeGrant +} +var file_service_node_grant_proto_depIdxs = []int32{ + 14, // 0: pb.ListEnabledNodeGrantsResponse.grants:type_name -> pb.NodeGrant + 14, // 1: pb.FindAllEnabledNodeGrantsResponse.grants:type_name -> pb.NodeGrant + 14, // 2: pb.FindEnabledGrantResponse.grant:type_name -> pb.NodeGrant + 0, // 3: pb.NodeGrantService.createNodeGrant:input_type -> pb.CreateNodeGrantRequest + 2, // 4: pb.NodeGrantService.updateNodeGrant:input_type -> pb.UpdateNodeGrantRequest + 4, // 5: pb.NodeGrantService.disableNodeGrant:input_type -> pb.DisableNodeGrantRequest + 6, // 6: pb.NodeGrantService.countAllEnabledNodeGrants:input_type -> pb.CountAllEnabledNodeGrantsRequest + 8, // 7: pb.NodeGrantService.ListEnabledNodeGrants:input_type -> pb.ListEnabledNodeGrantsRequest + 10, // 8: pb.NodeGrantService.FindAllEnabledNodeGrants:input_type -> pb.FindAllEnabledNodeGrantsRequest + 12, // 9: pb.NodeGrantService.FindEnabledGrant:input_type -> pb.FindEnabledGrantRequest + 1, // 10: pb.NodeGrantService.createNodeGrant:output_type -> pb.CreateNodeGrantResponse + 3, // 11: pb.NodeGrantService.updateNodeGrant:output_type -> pb.UpdateNodeGrantResponse + 5, // 12: pb.NodeGrantService.disableNodeGrant:output_type -> pb.DisableNodeGrantResponse + 7, // 13: pb.NodeGrantService.countAllEnabledNodeGrants:output_type -> pb.CountAllEnabledNodeGrantsResponse + 9, // 14: pb.NodeGrantService.ListEnabledNodeGrants:output_type -> pb.ListEnabledNodeGrantsResponse + 11, // 15: pb.NodeGrantService.FindAllEnabledNodeGrants:output_type -> pb.FindAllEnabledNodeGrantsResponse + 13, // 16: pb.NodeGrantService.FindEnabledGrant:output_type -> pb.FindEnabledGrantResponse + 10, // [10:17] is the sub-list for method output_type + 3, // [3:10] is the sub-list for method input_type + 3, // [3:3] is the sub-list for extension type_name + 3, // [3:3] is the sub-list for extension extendee + 0, // [0:3] is the sub-list for field type_name +} + +func init() { file_service_node_grant_proto_init() } +func file_service_node_grant_proto_init() { + if File_service_node_grant_proto != nil { + return + } + file_model_node_grant_proto_init() + if !protoimpl.UnsafeEnabled { + file_service_node_grant_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateNodeGrantRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_grant_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateNodeGrantResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_grant_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateNodeGrantRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_grant_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateNodeGrantResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_grant_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DisableNodeGrantRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_grant_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DisableNodeGrantResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_grant_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CountAllEnabledNodeGrantsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_grant_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CountAllEnabledNodeGrantsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_grant_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListEnabledNodeGrantsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_grant_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListEnabledNodeGrantsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_grant_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FindAllEnabledNodeGrantsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_grant_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FindAllEnabledNodeGrantsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_grant_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FindEnabledGrantRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_grant_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FindEnabledGrantResponse); 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_service_node_grant_proto_rawDesc, + NumEnums: 0, + NumMessages: 14, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_service_node_grant_proto_goTypes, + DependencyIndexes: file_service_node_grant_proto_depIdxs, + MessageInfos: file_service_node_grant_proto_msgTypes, + }.Build() + File_service_node_grant_proto = out.File + file_service_node_grant_proto_rawDesc = nil + file_service_node_grant_proto_goTypes = nil + file_service_node_grant_proto_depIdxs = nil +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConnInterface + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion6 + +// NodeGrantServiceClient is the client API for NodeGrantService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type NodeGrantServiceClient interface { + // 创建认证 + CreateNodeGrant(ctx context.Context, in *CreateNodeGrantRequest, opts ...grpc.CallOption) (*CreateNodeGrantResponse, error) + // 修改认证 + UpdateNodeGrant(ctx context.Context, in *UpdateNodeGrantRequest, opts ...grpc.CallOption) (*UpdateNodeGrantResponse, error) + // 禁用认证 + DisableNodeGrant(ctx context.Context, in *DisableNodeGrantRequest, opts ...grpc.CallOption) (*DisableNodeGrantResponse, error) + // 计算认证的数量 + CountAllEnabledNodeGrants(ctx context.Context, in *CountAllEnabledNodeGrantsRequest, opts ...grpc.CallOption) (*CountAllEnabledNodeGrantsResponse, error) + // 列出单页认证 + ListEnabledNodeGrants(ctx context.Context, in *ListEnabledNodeGrantsRequest, opts ...grpc.CallOption) (*ListEnabledNodeGrantsResponse, error) + // 列出所有认证 + FindAllEnabledNodeGrants(ctx context.Context, in *FindAllEnabledNodeGrantsRequest, opts ...grpc.CallOption) (*FindAllEnabledNodeGrantsResponse, error) + // 获取单个认证信息 + FindEnabledGrant(ctx context.Context, in *FindEnabledGrantRequest, opts ...grpc.CallOption) (*FindEnabledGrantResponse, error) +} + +type nodeGrantServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewNodeGrantServiceClient(cc grpc.ClientConnInterface) NodeGrantServiceClient { + return &nodeGrantServiceClient{cc} +} + +func (c *nodeGrantServiceClient) CreateNodeGrant(ctx context.Context, in *CreateNodeGrantRequest, opts ...grpc.CallOption) (*CreateNodeGrantResponse, error) { + out := new(CreateNodeGrantResponse) + err := c.cc.Invoke(ctx, "/pb.NodeGrantService/createNodeGrant", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeGrantServiceClient) UpdateNodeGrant(ctx context.Context, in *UpdateNodeGrantRequest, opts ...grpc.CallOption) (*UpdateNodeGrantResponse, error) { + out := new(UpdateNodeGrantResponse) + err := c.cc.Invoke(ctx, "/pb.NodeGrantService/updateNodeGrant", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeGrantServiceClient) DisableNodeGrant(ctx context.Context, in *DisableNodeGrantRequest, opts ...grpc.CallOption) (*DisableNodeGrantResponse, error) { + out := new(DisableNodeGrantResponse) + err := c.cc.Invoke(ctx, "/pb.NodeGrantService/disableNodeGrant", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeGrantServiceClient) CountAllEnabledNodeGrants(ctx context.Context, in *CountAllEnabledNodeGrantsRequest, opts ...grpc.CallOption) (*CountAllEnabledNodeGrantsResponse, error) { + out := new(CountAllEnabledNodeGrantsResponse) + err := c.cc.Invoke(ctx, "/pb.NodeGrantService/countAllEnabledNodeGrants", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeGrantServiceClient) ListEnabledNodeGrants(ctx context.Context, in *ListEnabledNodeGrantsRequest, opts ...grpc.CallOption) (*ListEnabledNodeGrantsResponse, error) { + out := new(ListEnabledNodeGrantsResponse) + err := c.cc.Invoke(ctx, "/pb.NodeGrantService/ListEnabledNodeGrants", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeGrantServiceClient) FindAllEnabledNodeGrants(ctx context.Context, in *FindAllEnabledNodeGrantsRequest, opts ...grpc.CallOption) (*FindAllEnabledNodeGrantsResponse, error) { + out := new(FindAllEnabledNodeGrantsResponse) + err := c.cc.Invoke(ctx, "/pb.NodeGrantService/FindAllEnabledNodeGrants", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeGrantServiceClient) FindEnabledGrant(ctx context.Context, in *FindEnabledGrantRequest, opts ...grpc.CallOption) (*FindEnabledGrantResponse, error) { + out := new(FindEnabledGrantResponse) + err := c.cc.Invoke(ctx, "/pb.NodeGrantService/FindEnabledGrant", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// NodeGrantServiceServer is the server API for NodeGrantService service. +type NodeGrantServiceServer interface { + // 创建认证 + CreateNodeGrant(context.Context, *CreateNodeGrantRequest) (*CreateNodeGrantResponse, error) + // 修改认证 + UpdateNodeGrant(context.Context, *UpdateNodeGrantRequest) (*UpdateNodeGrantResponse, error) + // 禁用认证 + DisableNodeGrant(context.Context, *DisableNodeGrantRequest) (*DisableNodeGrantResponse, error) + // 计算认证的数量 + CountAllEnabledNodeGrants(context.Context, *CountAllEnabledNodeGrantsRequest) (*CountAllEnabledNodeGrantsResponse, error) + // 列出单页认证 + ListEnabledNodeGrants(context.Context, *ListEnabledNodeGrantsRequest) (*ListEnabledNodeGrantsResponse, error) + // 列出所有认证 + FindAllEnabledNodeGrants(context.Context, *FindAllEnabledNodeGrantsRequest) (*FindAllEnabledNodeGrantsResponse, error) + // 获取单个认证信息 + FindEnabledGrant(context.Context, *FindEnabledGrantRequest) (*FindEnabledGrantResponse, error) +} + +// UnimplementedNodeGrantServiceServer can be embedded to have forward compatible implementations. +type UnimplementedNodeGrantServiceServer struct { +} + +func (*UnimplementedNodeGrantServiceServer) CreateNodeGrant(context.Context, *CreateNodeGrantRequest) (*CreateNodeGrantResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateNodeGrant not implemented") +} +func (*UnimplementedNodeGrantServiceServer) UpdateNodeGrant(context.Context, *UpdateNodeGrantRequest) (*UpdateNodeGrantResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateNodeGrant not implemented") +} +func (*UnimplementedNodeGrantServiceServer) DisableNodeGrant(context.Context, *DisableNodeGrantRequest) (*DisableNodeGrantResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DisableNodeGrant not implemented") +} +func (*UnimplementedNodeGrantServiceServer) CountAllEnabledNodeGrants(context.Context, *CountAllEnabledNodeGrantsRequest) (*CountAllEnabledNodeGrantsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CountAllEnabledNodeGrants not implemented") +} +func (*UnimplementedNodeGrantServiceServer) ListEnabledNodeGrants(context.Context, *ListEnabledNodeGrantsRequest) (*ListEnabledNodeGrantsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListEnabledNodeGrants not implemented") +} +func (*UnimplementedNodeGrantServiceServer) FindAllEnabledNodeGrants(context.Context, *FindAllEnabledNodeGrantsRequest) (*FindAllEnabledNodeGrantsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method FindAllEnabledNodeGrants not implemented") +} +func (*UnimplementedNodeGrantServiceServer) FindEnabledGrant(context.Context, *FindEnabledGrantRequest) (*FindEnabledGrantResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method FindEnabledGrant not implemented") +} + +func RegisterNodeGrantServiceServer(s *grpc.Server, srv NodeGrantServiceServer) { + s.RegisterService(&_NodeGrantService_serviceDesc, srv) +} + +func _NodeGrantService_CreateNodeGrant_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateNodeGrantRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeGrantServiceServer).CreateNodeGrant(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.NodeGrantService/CreateNodeGrant", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeGrantServiceServer).CreateNodeGrant(ctx, req.(*CreateNodeGrantRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NodeGrantService_UpdateNodeGrant_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateNodeGrantRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeGrantServiceServer).UpdateNodeGrant(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.NodeGrantService/UpdateNodeGrant", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeGrantServiceServer).UpdateNodeGrant(ctx, req.(*UpdateNodeGrantRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NodeGrantService_DisableNodeGrant_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DisableNodeGrantRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeGrantServiceServer).DisableNodeGrant(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.NodeGrantService/DisableNodeGrant", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeGrantServiceServer).DisableNodeGrant(ctx, req.(*DisableNodeGrantRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NodeGrantService_CountAllEnabledNodeGrants_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CountAllEnabledNodeGrantsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeGrantServiceServer).CountAllEnabledNodeGrants(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.NodeGrantService/CountAllEnabledNodeGrants", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeGrantServiceServer).CountAllEnabledNodeGrants(ctx, req.(*CountAllEnabledNodeGrantsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NodeGrantService_ListEnabledNodeGrants_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListEnabledNodeGrantsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeGrantServiceServer).ListEnabledNodeGrants(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.NodeGrantService/ListEnabledNodeGrants", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeGrantServiceServer).ListEnabledNodeGrants(ctx, req.(*ListEnabledNodeGrantsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NodeGrantService_FindAllEnabledNodeGrants_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(FindAllEnabledNodeGrantsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeGrantServiceServer).FindAllEnabledNodeGrants(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.NodeGrantService/FindAllEnabledNodeGrants", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeGrantServiceServer).FindAllEnabledNodeGrants(ctx, req.(*FindAllEnabledNodeGrantsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NodeGrantService_FindEnabledGrant_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(FindEnabledGrantRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeGrantServiceServer).FindEnabledGrant(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.NodeGrantService/FindEnabledGrant", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeGrantServiceServer).FindEnabledGrant(ctx, req.(*FindEnabledGrantRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _NodeGrantService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "pb.NodeGrantService", + HandlerType: (*NodeGrantServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "createNodeGrant", + Handler: _NodeGrantService_CreateNodeGrant_Handler, + }, + { + MethodName: "updateNodeGrant", + Handler: _NodeGrantService_UpdateNodeGrant_Handler, + }, + { + MethodName: "disableNodeGrant", + Handler: _NodeGrantService_DisableNodeGrant_Handler, + }, + { + MethodName: "countAllEnabledNodeGrants", + Handler: _NodeGrantService_CountAllEnabledNodeGrants_Handler, + }, + { + MethodName: "ListEnabledNodeGrants", + Handler: _NodeGrantService_ListEnabledNodeGrants_Handler, + }, + { + MethodName: "FindAllEnabledNodeGrants", + Handler: _NodeGrantService_FindAllEnabledNodeGrants_Handler, + }, + { + MethodName: "FindEnabledGrant", + Handler: _NodeGrantService_FindEnabledGrant_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "service_node_grant.proto", +} diff --git a/pkg/rpc/pb/service_node_group.pb.go b/pkg/rpc/pb/service_node_group.pb.go new file mode 100644 index 0000000..82c627a --- /dev/null +++ b/pkg/rpc/pb/service_node_group.pb.go @@ -0,0 +1,66 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.25.0 +// protoc v3.12.3 +// source: service_node_group.proto + +package pb + +import ( + proto "github.com/golang/protobuf/proto" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" +) + +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) +) + +// This is a compile-time assertion that a sufficiently up-to-date version +// of the legacy proto package is being used. +const _ = proto.ProtoPackageIsVersion4 + +var File_service_node_group_proto protoreflect.FileDescriptor + +var file_service_node_group_proto_rawDesc = []byte{ + 0x0a, 0x18, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x42, 0x06, + 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var file_service_node_group_proto_goTypes = []interface{}{} +var file_service_node_group_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_service_node_group_proto_init() } +func file_service_node_group_proto_init() { + if File_service_node_group_proto != nil { + return + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_service_node_group_proto_rawDesc, + NumEnums: 0, + NumMessages: 0, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_service_node_group_proto_goTypes, + DependencyIndexes: file_service_node_group_proto_depIdxs, + }.Build() + File_service_node_group_proto = out.File + file_service_node_group_proto_rawDesc = nil + file_service_node_group_proto_goTypes = nil + file_service_node_group_proto_depIdxs = nil +} diff --git a/pkg/rpc/pb/service_node_ip_address.pb.go b/pkg/rpc/pb/service_node_ip_address.pb.go new file mode 100644 index 0000000..635c5f2 --- /dev/null +++ b/pkg/rpc/pb/service_node_ip_address.pb.go @@ -0,0 +1,1375 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.25.0 +// protoc v3.12.3 +// source: service_node_ip_address.proto + +package pb + +import ( + context "context" + proto "github.com/golang/protobuf/proto" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + 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) +) + +// This is a compile-time assertion that a sufficiently up-to-date version +// of the legacy proto package is being used. +const _ = proto.ProtoPackageIsVersion4 + +// 创建IP地址 +type CreateNodeIPAddressRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + NodeId int64 `protobuf:"varint,1,opt,name=nodeId,proto3" json:"nodeId,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Ip string `protobuf:"bytes,3,opt,name=ip,proto3" json:"ip,omitempty"` +} + +func (x *CreateNodeIPAddressRequest) Reset() { + *x = CreateNodeIPAddressRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_ip_address_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateNodeIPAddressRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateNodeIPAddressRequest) ProtoMessage() {} + +func (x *CreateNodeIPAddressRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_node_ip_address_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 CreateNodeIPAddressRequest.ProtoReflect.Descriptor instead. +func (*CreateNodeIPAddressRequest) Descriptor() ([]byte, []int) { + return file_service_node_ip_address_proto_rawDescGZIP(), []int{0} +} + +func (x *CreateNodeIPAddressRequest) GetNodeId() int64 { + if x != nil { + return x.NodeId + } + return 0 +} + +func (x *CreateNodeIPAddressRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *CreateNodeIPAddressRequest) GetIp() string { + if x != nil { + return x.Ip + } + return "" +} + +type CreateNodeIPAddressResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AddressId int64 `protobuf:"varint,1,opt,name=addressId,proto3" json:"addressId,omitempty"` +} + +func (x *CreateNodeIPAddressResponse) Reset() { + *x = CreateNodeIPAddressResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_ip_address_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateNodeIPAddressResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateNodeIPAddressResponse) ProtoMessage() {} + +func (x *CreateNodeIPAddressResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_node_ip_address_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 CreateNodeIPAddressResponse.ProtoReflect.Descriptor instead. +func (*CreateNodeIPAddressResponse) Descriptor() ([]byte, []int) { + return file_service_node_ip_address_proto_rawDescGZIP(), []int{1} +} + +func (x *CreateNodeIPAddressResponse) GetAddressId() int64 { + if x != nil { + return x.AddressId + } + return 0 +} + +// 修改IP地址 +type UpdateNodeIPAddressRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AddressId int64 `protobuf:"varint,1,opt,name=addressId,proto3" json:"addressId,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Ip string `protobuf:"bytes,3,opt,name=ip,proto3" json:"ip,omitempty"` +} + +func (x *UpdateNodeIPAddressRequest) Reset() { + *x = UpdateNodeIPAddressRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_ip_address_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateNodeIPAddressRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateNodeIPAddressRequest) ProtoMessage() {} + +func (x *UpdateNodeIPAddressRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_node_ip_address_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 UpdateNodeIPAddressRequest.ProtoReflect.Descriptor instead. +func (*UpdateNodeIPAddressRequest) Descriptor() ([]byte, []int) { + return file_service_node_ip_address_proto_rawDescGZIP(), []int{2} +} + +func (x *UpdateNodeIPAddressRequest) GetAddressId() int64 { + if x != nil { + return x.AddressId + } + return 0 +} + +func (x *UpdateNodeIPAddressRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *UpdateNodeIPAddressRequest) GetIp() string { + if x != nil { + return x.Ip + } + return "" +} + +type UpdateNodeIPAddressResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *UpdateNodeIPAddressResponse) Reset() { + *x = UpdateNodeIPAddressResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_ip_address_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateNodeIPAddressResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateNodeIPAddressResponse) ProtoMessage() {} + +func (x *UpdateNodeIPAddressResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_node_ip_address_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 UpdateNodeIPAddressResponse.ProtoReflect.Descriptor instead. +func (*UpdateNodeIPAddressResponse) Descriptor() ([]byte, []int) { + return file_service_node_ip_address_proto_rawDescGZIP(), []int{3} +} + +// 修改IP地址所属节点 +type UpdateNodeIPAddressNodeIdRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AddressId int64 `protobuf:"varint,1,opt,name=addressId,proto3" json:"addressId,omitempty"` + NodeId int64 `protobuf:"varint,2,opt,name=nodeId,proto3" json:"nodeId,omitempty"` +} + +func (x *UpdateNodeIPAddressNodeIdRequest) Reset() { + *x = UpdateNodeIPAddressNodeIdRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_ip_address_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateNodeIPAddressNodeIdRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateNodeIPAddressNodeIdRequest) ProtoMessage() {} + +func (x *UpdateNodeIPAddressNodeIdRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_node_ip_address_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 UpdateNodeIPAddressNodeIdRequest.ProtoReflect.Descriptor instead. +func (*UpdateNodeIPAddressNodeIdRequest) Descriptor() ([]byte, []int) { + return file_service_node_ip_address_proto_rawDescGZIP(), []int{4} +} + +func (x *UpdateNodeIPAddressNodeIdRequest) GetAddressId() int64 { + if x != nil { + return x.AddressId + } + return 0 +} + +func (x *UpdateNodeIPAddressNodeIdRequest) GetNodeId() int64 { + if x != nil { + return x.NodeId + } + return 0 +} + +type UpdateNodeIPAddressNodeIdResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *UpdateNodeIPAddressNodeIdResponse) Reset() { + *x = UpdateNodeIPAddressNodeIdResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_ip_address_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateNodeIPAddressNodeIdResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateNodeIPAddressNodeIdResponse) ProtoMessage() {} + +func (x *UpdateNodeIPAddressNodeIdResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_node_ip_address_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 UpdateNodeIPAddressNodeIdResponse.ProtoReflect.Descriptor instead. +func (*UpdateNodeIPAddressNodeIdResponse) Descriptor() ([]byte, []int) { + return file_service_node_ip_address_proto_rawDescGZIP(), []int{5} +} + +// 禁用单个IP地址 +type DisableNodeIPAddressRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AddressId int64 `protobuf:"varint,1,opt,name=addressId,proto3" json:"addressId,omitempty"` +} + +func (x *DisableNodeIPAddressRequest) Reset() { + *x = DisableNodeIPAddressRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_ip_address_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DisableNodeIPAddressRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DisableNodeIPAddressRequest) ProtoMessage() {} + +func (x *DisableNodeIPAddressRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_node_ip_address_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 DisableNodeIPAddressRequest.ProtoReflect.Descriptor instead. +func (*DisableNodeIPAddressRequest) Descriptor() ([]byte, []int) { + return file_service_node_ip_address_proto_rawDescGZIP(), []int{6} +} + +func (x *DisableNodeIPAddressRequest) GetAddressId() int64 { + if x != nil { + return x.AddressId + } + return 0 +} + +type DisableNodeIPAddressResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *DisableNodeIPAddressResponse) Reset() { + *x = DisableNodeIPAddressResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_ip_address_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DisableNodeIPAddressResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DisableNodeIPAddressResponse) ProtoMessage() {} + +func (x *DisableNodeIPAddressResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_node_ip_address_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 DisableNodeIPAddressResponse.ProtoReflect.Descriptor instead. +func (*DisableNodeIPAddressResponse) Descriptor() ([]byte, []int) { + return file_service_node_ip_address_proto_rawDescGZIP(), []int{7} +} + +// 禁用节点的所有IP地址 +type DisableAllIPAddressesWithNodeIdRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + NodeId int64 `protobuf:"varint,1,opt,name=nodeId,proto3" json:"nodeId,omitempty"` +} + +func (x *DisableAllIPAddressesWithNodeIdRequest) Reset() { + *x = DisableAllIPAddressesWithNodeIdRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_ip_address_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DisableAllIPAddressesWithNodeIdRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DisableAllIPAddressesWithNodeIdRequest) ProtoMessage() {} + +func (x *DisableAllIPAddressesWithNodeIdRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_node_ip_address_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 DisableAllIPAddressesWithNodeIdRequest.ProtoReflect.Descriptor instead. +func (*DisableAllIPAddressesWithNodeIdRequest) Descriptor() ([]byte, []int) { + return file_service_node_ip_address_proto_rawDescGZIP(), []int{8} +} + +func (x *DisableAllIPAddressesWithNodeIdRequest) GetNodeId() int64 { + if x != nil { + return x.NodeId + } + return 0 +} + +type DisableAllIPAddressesWithNodeIdResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *DisableAllIPAddressesWithNodeIdResponse) Reset() { + *x = DisableAllIPAddressesWithNodeIdResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_ip_address_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DisableAllIPAddressesWithNodeIdResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DisableAllIPAddressesWithNodeIdResponse) ProtoMessage() {} + +func (x *DisableAllIPAddressesWithNodeIdResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_node_ip_address_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 DisableAllIPAddressesWithNodeIdResponse.ProtoReflect.Descriptor instead. +func (*DisableAllIPAddressesWithNodeIdResponse) Descriptor() ([]byte, []int) { + return file_service_node_ip_address_proto_rawDescGZIP(), []int{9} +} + +// 查找单个IP地址 +type FindEnabledNodeIPAddressRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AddressId int64 `protobuf:"varint,1,opt,name=addressId,proto3" json:"addressId,omitempty"` +} + +func (x *FindEnabledNodeIPAddressRequest) Reset() { + *x = FindEnabledNodeIPAddressRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_ip_address_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FindEnabledNodeIPAddressRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FindEnabledNodeIPAddressRequest) ProtoMessage() {} + +func (x *FindEnabledNodeIPAddressRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_node_ip_address_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 FindEnabledNodeIPAddressRequest.ProtoReflect.Descriptor instead. +func (*FindEnabledNodeIPAddressRequest) Descriptor() ([]byte, []int) { + return file_service_node_ip_address_proto_rawDescGZIP(), []int{10} +} + +func (x *FindEnabledNodeIPAddressRequest) GetAddressId() int64 { + if x != nil { + return x.AddressId + } + return 0 +} + +type FindEnabledNodeIPAddressResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + IpAddress *NodeIPAddress `protobuf:"bytes,1,opt,name=ipAddress,proto3" json:"ipAddress,omitempty"` +} + +func (x *FindEnabledNodeIPAddressResponse) Reset() { + *x = FindEnabledNodeIPAddressResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_ip_address_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FindEnabledNodeIPAddressResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FindEnabledNodeIPAddressResponse) ProtoMessage() {} + +func (x *FindEnabledNodeIPAddressResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_node_ip_address_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 FindEnabledNodeIPAddressResponse.ProtoReflect.Descriptor instead. +func (*FindEnabledNodeIPAddressResponse) Descriptor() ([]byte, []int) { + return file_service_node_ip_address_proto_rawDescGZIP(), []int{11} +} + +func (x *FindEnabledNodeIPAddressResponse) GetIpAddress() *NodeIPAddress { + if x != nil { + return x.IpAddress + } + return nil +} + +// 查找节点的所有地址 +type FindAllEnabledIPAddressesWithNodeIdRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + NodeId int64 `protobuf:"varint,1,opt,name=nodeId,proto3" json:"nodeId,omitempty"` +} + +func (x *FindAllEnabledIPAddressesWithNodeIdRequest) Reset() { + *x = FindAllEnabledIPAddressesWithNodeIdRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_ip_address_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FindAllEnabledIPAddressesWithNodeIdRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FindAllEnabledIPAddressesWithNodeIdRequest) ProtoMessage() {} + +func (x *FindAllEnabledIPAddressesWithNodeIdRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_node_ip_address_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 FindAllEnabledIPAddressesWithNodeIdRequest.ProtoReflect.Descriptor instead. +func (*FindAllEnabledIPAddressesWithNodeIdRequest) Descriptor() ([]byte, []int) { + return file_service_node_ip_address_proto_rawDescGZIP(), []int{12} +} + +func (x *FindAllEnabledIPAddressesWithNodeIdRequest) GetNodeId() int64 { + if x != nil { + return x.NodeId + } + return 0 +} + +type FindAllEnabledIPAddressesWithNodeIdResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Addresses []*NodeIPAddress `protobuf:"bytes,1,rep,name=addresses,proto3" json:"addresses,omitempty"` +} + +func (x *FindAllEnabledIPAddressesWithNodeIdResponse) Reset() { + *x = FindAllEnabledIPAddressesWithNodeIdResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_ip_address_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FindAllEnabledIPAddressesWithNodeIdResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FindAllEnabledIPAddressesWithNodeIdResponse) ProtoMessage() {} + +func (x *FindAllEnabledIPAddressesWithNodeIdResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_node_ip_address_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 FindAllEnabledIPAddressesWithNodeIdResponse.ProtoReflect.Descriptor instead. +func (*FindAllEnabledIPAddressesWithNodeIdResponse) Descriptor() ([]byte, []int) { + return file_service_node_ip_address_proto_rawDescGZIP(), []int{13} +} + +func (x *FindAllEnabledIPAddressesWithNodeIdResponse) GetAddresses() []*NodeIPAddress { + if x != nil { + return x.Addresses + } + return nil +} + +var File_service_node_ip_address_proto protoreflect.FileDescriptor + +var file_service_node_ip_address_proto_rawDesc = []byte{ + 0x0a, 0x1d, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, + 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, + 0x02, 0x70, 0x62, 0x1a, 0x1b, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, + 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x22, 0x58, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x50, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, + 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, + 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x70, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x70, 0x22, 0x3b, 0x0a, 0x1b, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x49, 0x64, 0x22, 0x5e, 0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x70, 0x22, 0x1d, 0x0a, 0x1b, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x58, 0x0a, 0x20, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x4e, 0x6f, 0x64, + 0x65, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, + 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, + 0x22, 0x23, 0x0a, 0x21, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x50, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3b, 0x0a, 0x1b, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, + 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x49, 0x64, 0x22, 0x1e, 0x0a, 0x1c, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x6f, 0x64, + 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x40, 0x0a, 0x26, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x6c, 0x6c, + 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, + 0x6f, 0x64, 0x65, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, + 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, + 0x64, 0x65, 0x49, 0x64, 0x22, 0x29, 0x0a, 0x27, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x41, + 0x6c, 0x6c, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x57, 0x69, 0x74, + 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x3f, 0x0a, 0x1f, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, + 0x64, 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x49, 0x64, + 0x22, 0x53, 0x0a, 0x20, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, + 0x6f, 0x64, 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x09, 0x69, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, + 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x09, 0x69, 0x70, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x44, 0x0a, 0x2a, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, + 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x22, 0x5e, 0x0a, 0x2b, 0x46, + 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x49, 0x50, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, + 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x09, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, + 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x32, 0xf7, 0x05, 0x0a, 0x14, + 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x12, 0x56, 0x0a, 0x13, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, + 0x64, 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1e, 0x2e, 0x70, 0x62, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x70, 0x62, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x56, 0x0a, 0x13, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x12, 0x1e, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, + 0x6f, 0x64, 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, + 0x6f, 0x64, 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x68, 0x0a, 0x19, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, + 0x64, 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x49, + 0x64, 0x12, 0x24, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, + 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, + 0x0a, 0x14, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x50, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1f, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x69, 0x73, 0x61, + 0x62, 0x6c, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x69, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7a, 0x0a, 0x1f, 0x64, 0x69, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x41, 0x6c, 0x6c, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x2a, 0x2e, 0x70, + 0x62, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x6c, 0x6c, 0x49, 0x50, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x49, + 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x69, + 0x73, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x6c, 0x6c, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x65, 0x0a, 0x18, 0x66, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x12, 0x23, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, + 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x86, 0x01, 0x0a, + 0x23, 0x66, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x49, + 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, + 0x64, 0x65, 0x49, 0x64, 0x12, 0x2e, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, + 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, + 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_service_node_ip_address_proto_rawDescOnce sync.Once + file_service_node_ip_address_proto_rawDescData = file_service_node_ip_address_proto_rawDesc +) + +func file_service_node_ip_address_proto_rawDescGZIP() []byte { + file_service_node_ip_address_proto_rawDescOnce.Do(func() { + file_service_node_ip_address_proto_rawDescData = protoimpl.X.CompressGZIP(file_service_node_ip_address_proto_rawDescData) + }) + return file_service_node_ip_address_proto_rawDescData +} + +var file_service_node_ip_address_proto_msgTypes = make([]protoimpl.MessageInfo, 14) +var file_service_node_ip_address_proto_goTypes = []interface{}{ + (*CreateNodeIPAddressRequest)(nil), // 0: pb.CreateNodeIPAddressRequest + (*CreateNodeIPAddressResponse)(nil), // 1: pb.CreateNodeIPAddressResponse + (*UpdateNodeIPAddressRequest)(nil), // 2: pb.UpdateNodeIPAddressRequest + (*UpdateNodeIPAddressResponse)(nil), // 3: pb.UpdateNodeIPAddressResponse + (*UpdateNodeIPAddressNodeIdRequest)(nil), // 4: pb.UpdateNodeIPAddressNodeIdRequest + (*UpdateNodeIPAddressNodeIdResponse)(nil), // 5: pb.UpdateNodeIPAddressNodeIdResponse + (*DisableNodeIPAddressRequest)(nil), // 6: pb.DisableNodeIPAddressRequest + (*DisableNodeIPAddressResponse)(nil), // 7: pb.DisableNodeIPAddressResponse + (*DisableAllIPAddressesWithNodeIdRequest)(nil), // 8: pb.DisableAllIPAddressesWithNodeIdRequest + (*DisableAllIPAddressesWithNodeIdResponse)(nil), // 9: pb.DisableAllIPAddressesWithNodeIdResponse + (*FindEnabledNodeIPAddressRequest)(nil), // 10: pb.FindEnabledNodeIPAddressRequest + (*FindEnabledNodeIPAddressResponse)(nil), // 11: pb.FindEnabledNodeIPAddressResponse + (*FindAllEnabledIPAddressesWithNodeIdRequest)(nil), // 12: pb.FindAllEnabledIPAddressesWithNodeIdRequest + (*FindAllEnabledIPAddressesWithNodeIdResponse)(nil), // 13: pb.FindAllEnabledIPAddressesWithNodeIdResponse + (*NodeIPAddress)(nil), // 14: pb.NodeIPAddress +} +var file_service_node_ip_address_proto_depIdxs = []int32{ + 14, // 0: pb.FindEnabledNodeIPAddressResponse.ipAddress:type_name -> pb.NodeIPAddress + 14, // 1: pb.FindAllEnabledIPAddressesWithNodeIdResponse.addresses:type_name -> pb.NodeIPAddress + 0, // 2: pb.NodeIPAddressService.createNodeIPAddress:input_type -> pb.CreateNodeIPAddressRequest + 2, // 3: pb.NodeIPAddressService.updateNodeIPAddress:input_type -> pb.UpdateNodeIPAddressRequest + 4, // 4: pb.NodeIPAddressService.updateNodeIPAddressNodeId:input_type -> pb.UpdateNodeIPAddressNodeIdRequest + 6, // 5: pb.NodeIPAddressService.disableNodeIPAddress:input_type -> pb.DisableNodeIPAddressRequest + 8, // 6: pb.NodeIPAddressService.disableAllIPAddressesWithNodeId:input_type -> pb.DisableAllIPAddressesWithNodeIdRequest + 10, // 7: pb.NodeIPAddressService.findEnabledNodeIPAddress:input_type -> pb.FindEnabledNodeIPAddressRequest + 12, // 8: pb.NodeIPAddressService.findAllEnabledIPAddressesWithNodeId:input_type -> pb.FindAllEnabledIPAddressesWithNodeIdRequest + 1, // 9: pb.NodeIPAddressService.createNodeIPAddress:output_type -> pb.CreateNodeIPAddressResponse + 3, // 10: pb.NodeIPAddressService.updateNodeIPAddress:output_type -> pb.UpdateNodeIPAddressResponse + 5, // 11: pb.NodeIPAddressService.updateNodeIPAddressNodeId:output_type -> pb.UpdateNodeIPAddressNodeIdResponse + 7, // 12: pb.NodeIPAddressService.disableNodeIPAddress:output_type -> pb.DisableNodeIPAddressResponse + 9, // 13: pb.NodeIPAddressService.disableAllIPAddressesWithNodeId:output_type -> pb.DisableAllIPAddressesWithNodeIdResponse + 11, // 14: pb.NodeIPAddressService.findEnabledNodeIPAddress:output_type -> pb.FindEnabledNodeIPAddressResponse + 13, // 15: pb.NodeIPAddressService.findAllEnabledIPAddressesWithNodeId:output_type -> pb.FindAllEnabledIPAddressesWithNodeIdResponse + 9, // [9:16] is the sub-list for method output_type + 2, // [2:9] is the sub-list for method input_type + 2, // [2:2] is the sub-list for extension type_name + 2, // [2:2] is the sub-list for extension extendee + 0, // [0:2] is the sub-list for field type_name +} + +func init() { file_service_node_ip_address_proto_init() } +func file_service_node_ip_address_proto_init() { + if File_service_node_ip_address_proto != nil { + return + } + file_model_node_ip_address_proto_init() + if !protoimpl.UnsafeEnabled { + file_service_node_ip_address_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateNodeIPAddressRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_ip_address_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateNodeIPAddressResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_ip_address_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateNodeIPAddressRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_ip_address_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateNodeIPAddressResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_ip_address_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateNodeIPAddressNodeIdRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_ip_address_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateNodeIPAddressNodeIdResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_ip_address_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DisableNodeIPAddressRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_ip_address_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DisableNodeIPAddressResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_ip_address_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DisableAllIPAddressesWithNodeIdRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_ip_address_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DisableAllIPAddressesWithNodeIdResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_ip_address_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FindEnabledNodeIPAddressRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_ip_address_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FindEnabledNodeIPAddressResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_ip_address_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FindAllEnabledIPAddressesWithNodeIdRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_ip_address_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FindAllEnabledIPAddressesWithNodeIdResponse); 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_service_node_ip_address_proto_rawDesc, + NumEnums: 0, + NumMessages: 14, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_service_node_ip_address_proto_goTypes, + DependencyIndexes: file_service_node_ip_address_proto_depIdxs, + MessageInfos: file_service_node_ip_address_proto_msgTypes, + }.Build() + File_service_node_ip_address_proto = out.File + file_service_node_ip_address_proto_rawDesc = nil + file_service_node_ip_address_proto_goTypes = nil + file_service_node_ip_address_proto_depIdxs = nil +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConnInterface + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion6 + +// NodeIPAddressServiceClient is the client API for NodeIPAddressService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type NodeIPAddressServiceClient interface { + // 创建IP地址 + CreateNodeIPAddress(ctx context.Context, in *CreateNodeIPAddressRequest, opts ...grpc.CallOption) (*CreateNodeIPAddressResponse, error) + // 修改IP地址 + UpdateNodeIPAddress(ctx context.Context, in *UpdateNodeIPAddressRequest, opts ...grpc.CallOption) (*UpdateNodeIPAddressResponse, error) + // 修改IP地址所属节点 + UpdateNodeIPAddressNodeId(ctx context.Context, in *UpdateNodeIPAddressNodeIdRequest, opts ...grpc.CallOption) (*UpdateNodeIPAddressNodeIdResponse, error) + // 禁用单个IP地址 + DisableNodeIPAddress(ctx context.Context, in *DisableNodeIPAddressRequest, opts ...grpc.CallOption) (*DisableNodeIPAddressResponse, error) + // 禁用节点的所有IP地址 + DisableAllIPAddressesWithNodeId(ctx context.Context, in *DisableAllIPAddressesWithNodeIdRequest, opts ...grpc.CallOption) (*DisableAllIPAddressesWithNodeIdResponse, error) + // 查找单个IP地址 + FindEnabledNodeIPAddress(ctx context.Context, in *FindEnabledNodeIPAddressRequest, opts ...grpc.CallOption) (*FindEnabledNodeIPAddressResponse, error) + // 查找节点的所有地址 + FindAllEnabledIPAddressesWithNodeId(ctx context.Context, in *FindAllEnabledIPAddressesWithNodeIdRequest, opts ...grpc.CallOption) (*FindAllEnabledIPAddressesWithNodeIdResponse, error) +} + +type nodeIPAddressServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewNodeIPAddressServiceClient(cc grpc.ClientConnInterface) NodeIPAddressServiceClient { + return &nodeIPAddressServiceClient{cc} +} + +func (c *nodeIPAddressServiceClient) CreateNodeIPAddress(ctx context.Context, in *CreateNodeIPAddressRequest, opts ...grpc.CallOption) (*CreateNodeIPAddressResponse, error) { + out := new(CreateNodeIPAddressResponse) + err := c.cc.Invoke(ctx, "/pb.NodeIPAddressService/createNodeIPAddress", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeIPAddressServiceClient) UpdateNodeIPAddress(ctx context.Context, in *UpdateNodeIPAddressRequest, opts ...grpc.CallOption) (*UpdateNodeIPAddressResponse, error) { + out := new(UpdateNodeIPAddressResponse) + err := c.cc.Invoke(ctx, "/pb.NodeIPAddressService/updateNodeIPAddress", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeIPAddressServiceClient) UpdateNodeIPAddressNodeId(ctx context.Context, in *UpdateNodeIPAddressNodeIdRequest, opts ...grpc.CallOption) (*UpdateNodeIPAddressNodeIdResponse, error) { + out := new(UpdateNodeIPAddressNodeIdResponse) + err := c.cc.Invoke(ctx, "/pb.NodeIPAddressService/updateNodeIPAddressNodeId", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeIPAddressServiceClient) DisableNodeIPAddress(ctx context.Context, in *DisableNodeIPAddressRequest, opts ...grpc.CallOption) (*DisableNodeIPAddressResponse, error) { + out := new(DisableNodeIPAddressResponse) + err := c.cc.Invoke(ctx, "/pb.NodeIPAddressService/disableNodeIPAddress", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeIPAddressServiceClient) DisableAllIPAddressesWithNodeId(ctx context.Context, in *DisableAllIPAddressesWithNodeIdRequest, opts ...grpc.CallOption) (*DisableAllIPAddressesWithNodeIdResponse, error) { + out := new(DisableAllIPAddressesWithNodeIdResponse) + err := c.cc.Invoke(ctx, "/pb.NodeIPAddressService/disableAllIPAddressesWithNodeId", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeIPAddressServiceClient) FindEnabledNodeIPAddress(ctx context.Context, in *FindEnabledNodeIPAddressRequest, opts ...grpc.CallOption) (*FindEnabledNodeIPAddressResponse, error) { + out := new(FindEnabledNodeIPAddressResponse) + err := c.cc.Invoke(ctx, "/pb.NodeIPAddressService/findEnabledNodeIPAddress", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeIPAddressServiceClient) FindAllEnabledIPAddressesWithNodeId(ctx context.Context, in *FindAllEnabledIPAddressesWithNodeIdRequest, opts ...grpc.CallOption) (*FindAllEnabledIPAddressesWithNodeIdResponse, error) { + out := new(FindAllEnabledIPAddressesWithNodeIdResponse) + err := c.cc.Invoke(ctx, "/pb.NodeIPAddressService/findAllEnabledIPAddressesWithNodeId", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// NodeIPAddressServiceServer is the server API for NodeIPAddressService service. +type NodeIPAddressServiceServer interface { + // 创建IP地址 + CreateNodeIPAddress(context.Context, *CreateNodeIPAddressRequest) (*CreateNodeIPAddressResponse, error) + // 修改IP地址 + UpdateNodeIPAddress(context.Context, *UpdateNodeIPAddressRequest) (*UpdateNodeIPAddressResponse, error) + // 修改IP地址所属节点 + UpdateNodeIPAddressNodeId(context.Context, *UpdateNodeIPAddressNodeIdRequest) (*UpdateNodeIPAddressNodeIdResponse, error) + // 禁用单个IP地址 + DisableNodeIPAddress(context.Context, *DisableNodeIPAddressRequest) (*DisableNodeIPAddressResponse, error) + // 禁用节点的所有IP地址 + DisableAllIPAddressesWithNodeId(context.Context, *DisableAllIPAddressesWithNodeIdRequest) (*DisableAllIPAddressesWithNodeIdResponse, error) + // 查找单个IP地址 + FindEnabledNodeIPAddress(context.Context, *FindEnabledNodeIPAddressRequest) (*FindEnabledNodeIPAddressResponse, error) + // 查找节点的所有地址 + FindAllEnabledIPAddressesWithNodeId(context.Context, *FindAllEnabledIPAddressesWithNodeIdRequest) (*FindAllEnabledIPAddressesWithNodeIdResponse, error) +} + +// UnimplementedNodeIPAddressServiceServer can be embedded to have forward compatible implementations. +type UnimplementedNodeIPAddressServiceServer struct { +} + +func (*UnimplementedNodeIPAddressServiceServer) CreateNodeIPAddress(context.Context, *CreateNodeIPAddressRequest) (*CreateNodeIPAddressResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateNodeIPAddress not implemented") +} +func (*UnimplementedNodeIPAddressServiceServer) UpdateNodeIPAddress(context.Context, *UpdateNodeIPAddressRequest) (*UpdateNodeIPAddressResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateNodeIPAddress not implemented") +} +func (*UnimplementedNodeIPAddressServiceServer) UpdateNodeIPAddressNodeId(context.Context, *UpdateNodeIPAddressNodeIdRequest) (*UpdateNodeIPAddressNodeIdResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateNodeIPAddressNodeId not implemented") +} +func (*UnimplementedNodeIPAddressServiceServer) DisableNodeIPAddress(context.Context, *DisableNodeIPAddressRequest) (*DisableNodeIPAddressResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DisableNodeIPAddress not implemented") +} +func (*UnimplementedNodeIPAddressServiceServer) DisableAllIPAddressesWithNodeId(context.Context, *DisableAllIPAddressesWithNodeIdRequest) (*DisableAllIPAddressesWithNodeIdResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DisableAllIPAddressesWithNodeId not implemented") +} +func (*UnimplementedNodeIPAddressServiceServer) FindEnabledNodeIPAddress(context.Context, *FindEnabledNodeIPAddressRequest) (*FindEnabledNodeIPAddressResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method FindEnabledNodeIPAddress not implemented") +} +func (*UnimplementedNodeIPAddressServiceServer) FindAllEnabledIPAddressesWithNodeId(context.Context, *FindAllEnabledIPAddressesWithNodeIdRequest) (*FindAllEnabledIPAddressesWithNodeIdResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method FindAllEnabledIPAddressesWithNodeId not implemented") +} + +func RegisterNodeIPAddressServiceServer(s *grpc.Server, srv NodeIPAddressServiceServer) { + s.RegisterService(&_NodeIPAddressService_serviceDesc, srv) +} + +func _NodeIPAddressService_CreateNodeIPAddress_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateNodeIPAddressRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeIPAddressServiceServer).CreateNodeIPAddress(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.NodeIPAddressService/CreateNodeIPAddress", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeIPAddressServiceServer).CreateNodeIPAddress(ctx, req.(*CreateNodeIPAddressRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NodeIPAddressService_UpdateNodeIPAddress_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateNodeIPAddressRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeIPAddressServiceServer).UpdateNodeIPAddress(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.NodeIPAddressService/UpdateNodeIPAddress", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeIPAddressServiceServer).UpdateNodeIPAddress(ctx, req.(*UpdateNodeIPAddressRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NodeIPAddressService_UpdateNodeIPAddressNodeId_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateNodeIPAddressNodeIdRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeIPAddressServiceServer).UpdateNodeIPAddressNodeId(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.NodeIPAddressService/UpdateNodeIPAddressNodeId", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeIPAddressServiceServer).UpdateNodeIPAddressNodeId(ctx, req.(*UpdateNodeIPAddressNodeIdRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NodeIPAddressService_DisableNodeIPAddress_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DisableNodeIPAddressRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeIPAddressServiceServer).DisableNodeIPAddress(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.NodeIPAddressService/DisableNodeIPAddress", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeIPAddressServiceServer).DisableNodeIPAddress(ctx, req.(*DisableNodeIPAddressRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NodeIPAddressService_DisableAllIPAddressesWithNodeId_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DisableAllIPAddressesWithNodeIdRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeIPAddressServiceServer).DisableAllIPAddressesWithNodeId(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.NodeIPAddressService/DisableAllIPAddressesWithNodeId", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeIPAddressServiceServer).DisableAllIPAddressesWithNodeId(ctx, req.(*DisableAllIPAddressesWithNodeIdRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NodeIPAddressService_FindEnabledNodeIPAddress_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(FindEnabledNodeIPAddressRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeIPAddressServiceServer).FindEnabledNodeIPAddress(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.NodeIPAddressService/FindEnabledNodeIPAddress", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeIPAddressServiceServer).FindEnabledNodeIPAddress(ctx, req.(*FindEnabledNodeIPAddressRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NodeIPAddressService_FindAllEnabledIPAddressesWithNodeId_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(FindAllEnabledIPAddressesWithNodeIdRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeIPAddressServiceServer).FindAllEnabledIPAddressesWithNodeId(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.NodeIPAddressService/FindAllEnabledIPAddressesWithNodeId", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeIPAddressServiceServer).FindAllEnabledIPAddressesWithNodeId(ctx, req.(*FindAllEnabledIPAddressesWithNodeIdRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _NodeIPAddressService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "pb.NodeIPAddressService", + HandlerType: (*NodeIPAddressServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "createNodeIPAddress", + Handler: _NodeIPAddressService_CreateNodeIPAddress_Handler, + }, + { + MethodName: "updateNodeIPAddress", + Handler: _NodeIPAddressService_UpdateNodeIPAddress_Handler, + }, + { + MethodName: "updateNodeIPAddressNodeId", + Handler: _NodeIPAddressService_UpdateNodeIPAddressNodeId_Handler, + }, + { + MethodName: "disableNodeIPAddress", + Handler: _NodeIPAddressService_DisableNodeIPAddress_Handler, + }, + { + MethodName: "disableAllIPAddressesWithNodeId", + Handler: _NodeIPAddressService_DisableAllIPAddressesWithNodeId_Handler, + }, + { + MethodName: "findEnabledNodeIPAddress", + Handler: _NodeIPAddressService_FindEnabledNodeIPAddress_Handler, + }, + { + MethodName: "findAllEnabledIPAddressesWithNodeId", + Handler: _NodeIPAddressService_FindAllEnabledIPAddressesWithNodeId_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "service_node_ip_address.proto", +} diff --git a/pkg/rpc/pb/service_node_region.pb.go b/pkg/rpc/pb/service_node_region.pb.go new file mode 100644 index 0000000..2ced873 --- /dev/null +++ b/pkg/rpc/pb/service_node_region.pb.go @@ -0,0 +1,66 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.25.0 +// protoc v3.12.3 +// source: service_node_region.proto + +package pb + +import ( + proto "github.com/golang/protobuf/proto" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" +) + +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) +) + +// This is a compile-time assertion that a sufficiently up-to-date version +// of the legacy proto package is being used. +const _ = proto.ProtoPackageIsVersion4 + +var File_service_node_region_proto protoreflect.FileDescriptor + +var file_service_node_region_proto_rawDesc = []byte{ + 0x0a, 0x19, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x72, + 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x42, + 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var file_service_node_region_proto_goTypes = []interface{}{} +var file_service_node_region_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_service_node_region_proto_init() } +func file_service_node_region_proto_init() { + if File_service_node_region_proto != nil { + return + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_service_node_region_proto_rawDesc, + NumEnums: 0, + NumMessages: 0, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_service_node_region_proto_goTypes, + DependencyIndexes: file_service_node_region_proto_depIdxs, + }.Build() + File_service_node_region_proto = out.File + file_service_node_region_proto_rawDesc = nil + file_service_node_region_proto_goTypes = nil + file_service_node_region_proto_depIdxs = nil +} diff --git a/pkg/rpc/pb/service_origin_server.pb.go b/pkg/rpc/pb/service_origin_server.pb.go new file mode 100644 index 0000000..c39aabf --- /dev/null +++ b/pkg/rpc/pb/service_origin_server.pb.go @@ -0,0 +1,707 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.25.0 +// protoc v3.12.3 +// source: service_origin_server.proto + +package pb + +import ( + context "context" + proto "github.com/golang/protobuf/proto" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + 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) +) + +// This is a compile-time assertion that a sufficiently up-to-date version +// of the legacy proto package is being used. +const _ = proto.ProtoPackageIsVersion4 + +// 创建源站 +type CreateOriginServerRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Addr *NetworkAddress `protobuf:"bytes,2,opt,name=addr,proto3" json:"addr,omitempty"` + Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` +} + +func (x *CreateOriginServerRequest) Reset() { + *x = CreateOriginServerRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_origin_server_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateOriginServerRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateOriginServerRequest) ProtoMessage() {} + +func (x *CreateOriginServerRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_origin_server_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 CreateOriginServerRequest.ProtoReflect.Descriptor instead. +func (*CreateOriginServerRequest) Descriptor() ([]byte, []int) { + return file_service_origin_server_proto_rawDescGZIP(), []int{0} +} + +func (x *CreateOriginServerRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *CreateOriginServerRequest) GetAddr() *NetworkAddress { + if x != nil { + return x.Addr + } + return nil +} + +func (x *CreateOriginServerRequest) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +type CreateOriginServerResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OriginId int64 `protobuf:"varint,1,opt,name=originId,proto3" json:"originId,omitempty"` +} + +func (x *CreateOriginServerResponse) Reset() { + *x = CreateOriginServerResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_origin_server_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateOriginServerResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateOriginServerResponse) ProtoMessage() {} + +func (x *CreateOriginServerResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_origin_server_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 CreateOriginServerResponse.ProtoReflect.Descriptor instead. +func (*CreateOriginServerResponse) Descriptor() ([]byte, []int) { + return file_service_origin_server_proto_rawDescGZIP(), []int{1} +} + +func (x *CreateOriginServerResponse) GetOriginId() int64 { + if x != nil { + return x.OriginId + } + return 0 +} + +// 修改源站 +type UpdateOriginServerRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OriginId int64 `protobuf:"varint,1,opt,name=originId,proto3" json:"originId,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Addr *NetworkAddress `protobuf:"bytes,3,opt,name=addr,proto3" json:"addr,omitempty"` + Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"` +} + +func (x *UpdateOriginServerRequest) Reset() { + *x = UpdateOriginServerRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_origin_server_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateOriginServerRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateOriginServerRequest) ProtoMessage() {} + +func (x *UpdateOriginServerRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_origin_server_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 UpdateOriginServerRequest.ProtoReflect.Descriptor instead. +func (*UpdateOriginServerRequest) Descriptor() ([]byte, []int) { + return file_service_origin_server_proto_rawDescGZIP(), []int{2} +} + +func (x *UpdateOriginServerRequest) GetOriginId() int64 { + if x != nil { + return x.OriginId + } + return 0 +} + +func (x *UpdateOriginServerRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *UpdateOriginServerRequest) GetAddr() *NetworkAddress { + if x != nil { + return x.Addr + } + return nil +} + +func (x *UpdateOriginServerRequest) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +type UpdateOriginServerResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *UpdateOriginServerResponse) Reset() { + *x = UpdateOriginServerResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_origin_server_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateOriginServerResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateOriginServerResponse) ProtoMessage() {} + +func (x *UpdateOriginServerResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_origin_server_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 UpdateOriginServerResponse.ProtoReflect.Descriptor instead. +func (*UpdateOriginServerResponse) Descriptor() ([]byte, []int) { + return file_service_origin_server_proto_rawDescGZIP(), []int{3} +} + +// 查找单个源站信息 +type FindEnabledOriginServerRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OriginId int64 `protobuf:"varint,1,opt,name=originId,proto3" json:"originId,omitempty"` +} + +func (x *FindEnabledOriginServerRequest) Reset() { + *x = FindEnabledOriginServerRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_origin_server_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FindEnabledOriginServerRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FindEnabledOriginServerRequest) ProtoMessage() {} + +func (x *FindEnabledOriginServerRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_origin_server_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 FindEnabledOriginServerRequest.ProtoReflect.Descriptor instead. +func (*FindEnabledOriginServerRequest) Descriptor() ([]byte, []int) { + return file_service_origin_server_proto_rawDescGZIP(), []int{4} +} + +func (x *FindEnabledOriginServerRequest) GetOriginId() int64 { + if x != nil { + return x.OriginId + } + return 0 +} + +type FindEnabledOriginServerResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Origin *OriginServer `protobuf:"bytes,1,opt,name=Origin,proto3" json:"Origin,omitempty"` +} + +func (x *FindEnabledOriginServerResponse) Reset() { + *x = FindEnabledOriginServerResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_origin_server_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FindEnabledOriginServerResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FindEnabledOriginServerResponse) ProtoMessage() {} + +func (x *FindEnabledOriginServerResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_origin_server_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 FindEnabledOriginServerResponse.ProtoReflect.Descriptor instead. +func (*FindEnabledOriginServerResponse) Descriptor() ([]byte, []int) { + return file_service_origin_server_proto_rawDescGZIP(), []int{5} +} + +func (x *FindEnabledOriginServerResponse) GetOrigin() *OriginServer { + if x != nil { + return x.Origin + } + return nil +} + +var File_service_origin_server_proto protoreflect.FileDescriptor + +var file_service_origin_server_proto_rawDesc = []byte{ + 0x0a, 0x1b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, + 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, + 0x62, 0x1a, 0x19, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x6d, 0x6f, + 0x64, 0x65, 0x6c, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x79, 0x0a, 0x19, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x61, 0x64, + 0x64, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x04, 0x61, 0x64, + 0x64, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x38, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, + 0x69, 0x67, 0x69, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x49, 0x64, 0x22, 0x95, + 0x01, 0x0a, 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x53, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, + 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, + 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x04, + 0x61, 0x64, 0x64, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x62, 0x2e, + 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x04, + 0x61, 0x64, 0x64, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x1c, 0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3c, 0x0a, 0x1e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, + 0x49, 0x64, 0x22, 0x4b, 0x0a, 0x1f, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x64, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x06, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x62, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, + 0x6e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x06, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x32, + 0xa3, 0x02, 0x0a, 0x13, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x53, 0x0a, 0x12, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x1d, 0x2e, + 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x53, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x70, + 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x53, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x12, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x53, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x12, 0x1d, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, + 0x69, 0x67, 0x69, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x69, + 0x67, 0x69, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x62, 0x0a, 0x17, 0x66, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, + 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x22, 0x2e, 0x70, + 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4f, 0x72, 0x69, + 0x67, 0x69, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x23, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x64, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_service_origin_server_proto_rawDescOnce sync.Once + file_service_origin_server_proto_rawDescData = file_service_origin_server_proto_rawDesc +) + +func file_service_origin_server_proto_rawDescGZIP() []byte { + file_service_origin_server_proto_rawDescOnce.Do(func() { + file_service_origin_server_proto_rawDescData = protoimpl.X.CompressGZIP(file_service_origin_server_proto_rawDescData) + }) + return file_service_origin_server_proto_rawDescData +} + +var file_service_origin_server_proto_msgTypes = make([]protoimpl.MessageInfo, 6) +var file_service_origin_server_proto_goTypes = []interface{}{ + (*CreateOriginServerRequest)(nil), // 0: pb.CreateOriginServerRequest + (*CreateOriginServerResponse)(nil), // 1: pb.CreateOriginServerResponse + (*UpdateOriginServerRequest)(nil), // 2: pb.UpdateOriginServerRequest + (*UpdateOriginServerResponse)(nil), // 3: pb.UpdateOriginServerResponse + (*FindEnabledOriginServerRequest)(nil), // 4: pb.FindEnabledOriginServerRequest + (*FindEnabledOriginServerResponse)(nil), // 5: pb.FindEnabledOriginServerResponse + (*NetworkAddress)(nil), // 6: pb.NetworkAddress + (*OriginServer)(nil), // 7: pb.OriginServer +} +var file_service_origin_server_proto_depIdxs = []int32{ + 6, // 0: pb.CreateOriginServerRequest.addr:type_name -> pb.NetworkAddress + 6, // 1: pb.UpdateOriginServerRequest.addr:type_name -> pb.NetworkAddress + 7, // 2: pb.FindEnabledOriginServerResponse.Origin:type_name -> pb.OriginServer + 0, // 3: pb.OriginServerService.createOriginServer:input_type -> pb.CreateOriginServerRequest + 2, // 4: pb.OriginServerService.updateOriginServer:input_type -> pb.UpdateOriginServerRequest + 4, // 5: pb.OriginServerService.findEnabledOriginServer:input_type -> pb.FindEnabledOriginServerRequest + 1, // 6: pb.OriginServerService.createOriginServer:output_type -> pb.CreateOriginServerResponse + 3, // 7: pb.OriginServerService.updateOriginServer:output_type -> pb.UpdateOriginServerResponse + 5, // 8: pb.OriginServerService.findEnabledOriginServer:output_type -> pb.FindEnabledOriginServerResponse + 6, // [6:9] is the sub-list for method output_type + 3, // [3:6] is the sub-list for method input_type + 3, // [3:3] is the sub-list for extension type_name + 3, // [3:3] is the sub-list for extension extendee + 0, // [0:3] is the sub-list for field type_name +} + +func init() { file_service_origin_server_proto_init() } +func file_service_origin_server_proto_init() { + if File_service_origin_server_proto != nil { + return + } + file_model_origin_server_proto_init() + file_model_network_address_proto_init() + if !protoimpl.UnsafeEnabled { + file_service_origin_server_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateOriginServerRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_origin_server_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateOriginServerResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_origin_server_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateOriginServerRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_origin_server_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateOriginServerResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_origin_server_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FindEnabledOriginServerRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_origin_server_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FindEnabledOriginServerResponse); 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_service_origin_server_proto_rawDesc, + NumEnums: 0, + NumMessages: 6, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_service_origin_server_proto_goTypes, + DependencyIndexes: file_service_origin_server_proto_depIdxs, + MessageInfos: file_service_origin_server_proto_msgTypes, + }.Build() + File_service_origin_server_proto = out.File + file_service_origin_server_proto_rawDesc = nil + file_service_origin_server_proto_goTypes = nil + file_service_origin_server_proto_depIdxs = nil +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConnInterface + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion6 + +// OriginServerServiceClient is the client API for OriginServerService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type OriginServerServiceClient interface { + // 创建源站 + CreateOriginServer(ctx context.Context, in *CreateOriginServerRequest, opts ...grpc.CallOption) (*CreateOriginServerResponse, error) + // 修改源站 + UpdateOriginServer(ctx context.Context, in *UpdateOriginServerRequest, opts ...grpc.CallOption) (*UpdateOriginServerResponse, error) + // 查找单个源站信息 + FindEnabledOriginServer(ctx context.Context, in *FindEnabledOriginServerRequest, opts ...grpc.CallOption) (*FindEnabledOriginServerResponse, error) +} + +type originServerServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewOriginServerServiceClient(cc grpc.ClientConnInterface) OriginServerServiceClient { + return &originServerServiceClient{cc} +} + +func (c *originServerServiceClient) CreateOriginServer(ctx context.Context, in *CreateOriginServerRequest, opts ...grpc.CallOption) (*CreateOriginServerResponse, error) { + out := new(CreateOriginServerResponse) + err := c.cc.Invoke(ctx, "/pb.OriginServerService/createOriginServer", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *originServerServiceClient) UpdateOriginServer(ctx context.Context, in *UpdateOriginServerRequest, opts ...grpc.CallOption) (*UpdateOriginServerResponse, error) { + out := new(UpdateOriginServerResponse) + err := c.cc.Invoke(ctx, "/pb.OriginServerService/updateOriginServer", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *originServerServiceClient) FindEnabledOriginServer(ctx context.Context, in *FindEnabledOriginServerRequest, opts ...grpc.CallOption) (*FindEnabledOriginServerResponse, error) { + out := new(FindEnabledOriginServerResponse) + err := c.cc.Invoke(ctx, "/pb.OriginServerService/findEnabledOriginServer", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// OriginServerServiceServer is the server API for OriginServerService service. +type OriginServerServiceServer interface { + // 创建源站 + CreateOriginServer(context.Context, *CreateOriginServerRequest) (*CreateOriginServerResponse, error) + // 修改源站 + UpdateOriginServer(context.Context, *UpdateOriginServerRequest) (*UpdateOriginServerResponse, error) + // 查找单个源站信息 + FindEnabledOriginServer(context.Context, *FindEnabledOriginServerRequest) (*FindEnabledOriginServerResponse, error) +} + +// UnimplementedOriginServerServiceServer can be embedded to have forward compatible implementations. +type UnimplementedOriginServerServiceServer struct { +} + +func (*UnimplementedOriginServerServiceServer) CreateOriginServer(context.Context, *CreateOriginServerRequest) (*CreateOriginServerResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateOriginServer not implemented") +} +func (*UnimplementedOriginServerServiceServer) UpdateOriginServer(context.Context, *UpdateOriginServerRequest) (*UpdateOriginServerResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateOriginServer not implemented") +} +func (*UnimplementedOriginServerServiceServer) FindEnabledOriginServer(context.Context, *FindEnabledOriginServerRequest) (*FindEnabledOriginServerResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method FindEnabledOriginServer not implemented") +} + +func RegisterOriginServerServiceServer(s *grpc.Server, srv OriginServerServiceServer) { + s.RegisterService(&_OriginServerService_serviceDesc, srv) +} + +func _OriginServerService_CreateOriginServer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateOriginServerRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(OriginServerServiceServer).CreateOriginServer(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.OriginServerService/CreateOriginServer", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(OriginServerServiceServer).CreateOriginServer(ctx, req.(*CreateOriginServerRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _OriginServerService_UpdateOriginServer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateOriginServerRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(OriginServerServiceServer).UpdateOriginServer(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.OriginServerService/UpdateOriginServer", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(OriginServerServiceServer).UpdateOriginServer(ctx, req.(*UpdateOriginServerRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _OriginServerService_FindEnabledOriginServer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(FindEnabledOriginServerRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(OriginServerServiceServer).FindEnabledOriginServer(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.OriginServerService/FindEnabledOriginServer", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(OriginServerServiceServer).FindEnabledOriginServer(ctx, req.(*FindEnabledOriginServerRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _OriginServerService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "pb.OriginServerService", + HandlerType: (*OriginServerServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "createOriginServer", + Handler: _OriginServerService_CreateOriginServer_Handler, + }, + { + MethodName: "updateOriginServer", + Handler: _OriginServerService_UpdateOriginServer_Handler, + }, + { + MethodName: "findEnabledOriginServer", + Handler: _OriginServerService_FindEnabledOriginServer_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "service_origin_server.proto", +} diff --git a/pkg/rpc/pb/service_server.pb.go b/pkg/rpc/pb/service_server.pb.go new file mode 100644 index 0000000..740dcdf --- /dev/null +++ b/pkg/rpc/pb/service_server.pb.go @@ -0,0 +1,1311 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.25.0 +// protoc v3.12.3 +// source: service_server.proto + +package pb + +import ( + context "context" + proto "github.com/golang/protobuf/proto" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + 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) +) + +// This is a compile-time assertion that a sufficiently up-to-date version +// of the legacy proto package is being used. +const _ = proto.ProtoPackageIsVersion4 + +// 创建服务 +type CreateServerRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId int64 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` + AdminId int64 `protobuf:"varint,2,opt,name=adminId,proto3" json:"adminId,omitempty"` + Type string `protobuf:"bytes,3,opt,name=type,proto3" json:"type,omitempty"` + Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` + Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"` + ClusterId int64 `protobuf:"varint,6,opt,name=clusterId,proto3" json:"clusterId,omitempty"` + Config []byte `protobuf:"bytes,7,opt,name=config,proto3" json:"config,omitempty"` + IncludeNodesJSON []byte `protobuf:"bytes,8,opt,name=includeNodesJSON,proto3" json:"includeNodesJSON,omitempty"` + ExcludeNodesJSON []byte `protobuf:"bytes,9,opt,name=excludeNodesJSON,proto3" json:"excludeNodesJSON,omitempty"` +} + +func (x *CreateServerRequest) Reset() { + *x = CreateServerRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_server_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateServerRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateServerRequest) ProtoMessage() {} + +func (x *CreateServerRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_server_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 CreateServerRequest.ProtoReflect.Descriptor instead. +func (*CreateServerRequest) Descriptor() ([]byte, []int) { + return file_service_server_proto_rawDescGZIP(), []int{0} +} + +func (x *CreateServerRequest) GetUserId() int64 { + if x != nil { + return x.UserId + } + return 0 +} + +func (x *CreateServerRequest) GetAdminId() int64 { + if x != nil { + return x.AdminId + } + return 0 +} + +func (x *CreateServerRequest) GetType() string { + if x != nil { + return x.Type + } + return "" +} + +func (x *CreateServerRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *CreateServerRequest) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *CreateServerRequest) GetClusterId() int64 { + if x != nil { + return x.ClusterId + } + return 0 +} + +func (x *CreateServerRequest) GetConfig() []byte { + if x != nil { + return x.Config + } + return nil +} + +func (x *CreateServerRequest) GetIncludeNodesJSON() []byte { + if x != nil { + return x.IncludeNodesJSON + } + return nil +} + +func (x *CreateServerRequest) GetExcludeNodesJSON() []byte { + if x != nil { + return x.ExcludeNodesJSON + } + return nil +} + +type CreateServerResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ServerId int64 `protobuf:"varint,1,opt,name=serverId,proto3" json:"serverId,omitempty"` +} + +func (x *CreateServerResponse) Reset() { + *x = CreateServerResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_server_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateServerResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateServerResponse) ProtoMessage() {} + +func (x *CreateServerResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_server_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 CreateServerResponse.ProtoReflect.Descriptor instead. +func (*CreateServerResponse) Descriptor() ([]byte, []int) { + return file_service_server_proto_rawDescGZIP(), []int{1} +} + +func (x *CreateServerResponse) GetServerId() int64 { + if x != nil { + return x.ServerId + } + return 0 +} + +// 修改服务 +type UpdateServerRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ServerId int64 `protobuf:"varint,1,opt,name=serverId,proto3" json:"serverId,omitempty"` + UserId int64 `protobuf:"varint,2,opt,name=userId,proto3" json:"userId,omitempty"` + AdminId int64 `protobuf:"varint,3,opt,name=adminId,proto3" json:"adminId,omitempty"` + Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` + Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"` + ClusterId int64 `protobuf:"varint,6,opt,name=clusterId,proto3" json:"clusterId,omitempty"` + Config []byte `protobuf:"bytes,7,opt,name=config,proto3" json:"config,omitempty"` + IncludeNodesJSON []byte `protobuf:"bytes,8,opt,name=includeNodesJSON,proto3" json:"includeNodesJSON,omitempty"` + ExcludeNodesJSON []byte `protobuf:"bytes,9,opt,name=excludeNodesJSON,proto3" json:"excludeNodesJSON,omitempty"` +} + +func (x *UpdateServerRequest) Reset() { + *x = UpdateServerRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_server_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateServerRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateServerRequest) ProtoMessage() {} + +func (x *UpdateServerRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_server_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 UpdateServerRequest.ProtoReflect.Descriptor instead. +func (*UpdateServerRequest) Descriptor() ([]byte, []int) { + return file_service_server_proto_rawDescGZIP(), []int{2} +} + +func (x *UpdateServerRequest) GetServerId() int64 { + if x != nil { + return x.ServerId + } + return 0 +} + +func (x *UpdateServerRequest) GetUserId() int64 { + if x != nil { + return x.UserId + } + return 0 +} + +func (x *UpdateServerRequest) GetAdminId() int64 { + if x != nil { + return x.AdminId + } + return 0 +} + +func (x *UpdateServerRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *UpdateServerRequest) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *UpdateServerRequest) GetClusterId() int64 { + if x != nil { + return x.ClusterId + } + return 0 +} + +func (x *UpdateServerRequest) GetConfig() []byte { + if x != nil { + return x.Config + } + return nil +} + +func (x *UpdateServerRequest) GetIncludeNodesJSON() []byte { + if x != nil { + return x.IncludeNodesJSON + } + return nil +} + +func (x *UpdateServerRequest) GetExcludeNodesJSON() []byte { + if x != nil { + return x.ExcludeNodesJSON + } + return nil +} + +type UpdateServerResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *UpdateServerResponse) Reset() { + *x = UpdateServerResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_server_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateServerResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateServerResponse) ProtoMessage() {} + +func (x *UpdateServerResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_server_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 UpdateServerResponse.ProtoReflect.Descriptor instead. +func (*UpdateServerResponse) Descriptor() ([]byte, []int) { + return file_service_server_proto_rawDescGZIP(), []int{3} +} + +// 计算服务数量 +type CountAllEnabledServersRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *CountAllEnabledServersRequest) Reset() { + *x = CountAllEnabledServersRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_server_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CountAllEnabledServersRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CountAllEnabledServersRequest) ProtoMessage() {} + +func (x *CountAllEnabledServersRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_server_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 CountAllEnabledServersRequest.ProtoReflect.Descriptor instead. +func (*CountAllEnabledServersRequest) Descriptor() ([]byte, []int) { + return file_service_server_proto_rawDescGZIP(), []int{4} +} + +type CountAllEnabledServersResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Count int64 `protobuf:"varint,1,opt,name=count,proto3" json:"count,omitempty"` +} + +func (x *CountAllEnabledServersResponse) Reset() { + *x = CountAllEnabledServersResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_server_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CountAllEnabledServersResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CountAllEnabledServersResponse) ProtoMessage() {} + +func (x *CountAllEnabledServersResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_server_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 CountAllEnabledServersResponse.ProtoReflect.Descriptor instead. +func (*CountAllEnabledServersResponse) Descriptor() ([]byte, []int) { + return file_service_server_proto_rawDescGZIP(), []int{5} +} + +func (x *CountAllEnabledServersResponse) GetCount() int64 { + if x != nil { + return x.Count + } + return 0 +} + +// 列出单页服务 +type ListEnabledServersRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Offset int64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` + Size int64 `protobuf:"varint,2,opt,name=size,proto3" json:"size,omitempty"` +} + +func (x *ListEnabledServersRequest) Reset() { + *x = ListEnabledServersRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_server_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListEnabledServersRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListEnabledServersRequest) ProtoMessage() {} + +func (x *ListEnabledServersRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_server_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 ListEnabledServersRequest.ProtoReflect.Descriptor instead. +func (*ListEnabledServersRequest) Descriptor() ([]byte, []int) { + return file_service_server_proto_rawDescGZIP(), []int{6} +} + +func (x *ListEnabledServersRequest) GetOffset() int64 { + if x != nil { + return x.Offset + } + return 0 +} + +func (x *ListEnabledServersRequest) GetSize() int64 { + if x != nil { + return x.Size + } + return 0 +} + +type ListEnabledServersResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Servers []*Server `protobuf:"bytes,1,rep,name=servers,proto3" json:"servers,omitempty"` +} + +func (x *ListEnabledServersResponse) Reset() { + *x = ListEnabledServersResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_server_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListEnabledServersResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListEnabledServersResponse) ProtoMessage() {} + +func (x *ListEnabledServersResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_server_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 ListEnabledServersResponse.ProtoReflect.Descriptor instead. +func (*ListEnabledServersResponse) Descriptor() ([]byte, []int) { + return file_service_server_proto_rawDescGZIP(), []int{7} +} + +func (x *ListEnabledServersResponse) GetServers() []*Server { + if x != nil { + return x.Servers + } + return nil +} + +// 禁用服务 +type DisableServerRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ServerId int64 `protobuf:"varint,1,opt,name=serverId,proto3" json:"serverId,omitempty"` +} + +func (x *DisableServerRequest) Reset() { + *x = DisableServerRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_server_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DisableServerRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DisableServerRequest) ProtoMessage() {} + +func (x *DisableServerRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_server_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 DisableServerRequest.ProtoReflect.Descriptor instead. +func (*DisableServerRequest) Descriptor() ([]byte, []int) { + return file_service_server_proto_rawDescGZIP(), []int{8} +} + +func (x *DisableServerRequest) GetServerId() int64 { + if x != nil { + return x.ServerId + } + return 0 +} + +type DisableServerResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *DisableServerResponse) Reset() { + *x = DisableServerResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_server_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DisableServerResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DisableServerResponse) ProtoMessage() {} + +func (x *DisableServerResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_server_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 DisableServerResponse.ProtoReflect.Descriptor instead. +func (*DisableServerResponse) Descriptor() ([]byte, []int) { + return file_service_server_proto_rawDescGZIP(), []int{9} +} + +// 查找单个服务 +type FindEnabledServerRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ServerId int64 `protobuf:"varint,1,opt,name=serverId,proto3" json:"serverId,omitempty"` +} + +func (x *FindEnabledServerRequest) Reset() { + *x = FindEnabledServerRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_server_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FindEnabledServerRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FindEnabledServerRequest) ProtoMessage() {} + +func (x *FindEnabledServerRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_server_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 FindEnabledServerRequest.ProtoReflect.Descriptor instead. +func (*FindEnabledServerRequest) Descriptor() ([]byte, []int) { + return file_service_server_proto_rawDescGZIP(), []int{10} +} + +func (x *FindEnabledServerRequest) GetServerId() int64 { + if x != nil { + return x.ServerId + } + return 0 +} + +type FindEnabledServerResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Server *Server `protobuf:"bytes,1,opt,name=server,proto3" json:"server,omitempty"` +} + +func (x *FindEnabledServerResponse) Reset() { + *x = FindEnabledServerResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_server_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FindEnabledServerResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FindEnabledServerResponse) ProtoMessage() {} + +func (x *FindEnabledServerResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_server_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 FindEnabledServerResponse.ProtoReflect.Descriptor instead. +func (*FindEnabledServerResponse) Descriptor() ([]byte, []int) { + return file_service_server_proto_rawDescGZIP(), []int{11} +} + +func (x *FindEnabledServerResponse) GetServer() *Server { + if x != nil { + return x.Server + } + return nil +} + +var File_service_server_proto protoreflect.FileDescriptor + +var file_service_server_proto_rawDesc = []byte{ + 0x0a, 0x14, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x1a, 0x12, 0x6d, 0x6f, 0x64, 0x65, + 0x6c, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x9f, + 0x02, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x18, + 0x0a, 0x07, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x07, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, + 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2a, 0x0a, 0x10, 0x69, 0x6e, 0x63, 0x6c, + 0x75, 0x64, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x10, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x73, + 0x4a, 0x53, 0x4f, 0x4e, 0x12, 0x2a, 0x0a, 0x10, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4e, + 0x6f, 0x64, 0x65, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, + 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x4a, 0x53, 0x4f, 0x4e, + 0x22, 0x32, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x49, 0x64, 0x22, 0xa7, 0x02, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, + 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, + 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x07, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, + 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x16, + 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2a, 0x0a, 0x10, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, + 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x10, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x4a, 0x53, + 0x4f, 0x4e, 0x12, 0x2a, 0x0a, 0x10, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4e, 0x6f, 0x64, + 0x65, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x65, 0x78, + 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x16, + 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1f, 0x0a, 0x1d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, + 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x36, 0x0a, 0x1e, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, + 0x47, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x22, 0x42, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, + 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x22, 0x32, 0x0a, 0x14, + 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, + 0x22, 0x17, 0x0a, 0x15, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x36, 0x0a, 0x18, 0x46, 0x69, 0x6e, + 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, + 0x64, 0x22, 0x3f, 0x0a, 0x19, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, + 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x22, + 0x0a, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, + 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x06, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x32, 0xe3, 0x03, 0x0a, 0x0d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x12, 0x41, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x12, 0x17, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, + 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x17, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x18, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5f, 0x0a, 0x16, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x73, 0x12, 0x21, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, + 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x12, 0x6c, + 0x69, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x73, 0x12, 0x1d, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1e, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x44, 0x0a, 0x0d, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x12, 0x18, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x70, 0x62, + 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x11, 0x66, 0x69, 0x6e, 0x64, 0x45, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x70, 0x62, + 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x70, 0x62, 0x2e, 0x46, + 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_service_server_proto_rawDescOnce sync.Once + file_service_server_proto_rawDescData = file_service_server_proto_rawDesc +) + +func file_service_server_proto_rawDescGZIP() []byte { + file_service_server_proto_rawDescOnce.Do(func() { + file_service_server_proto_rawDescData = protoimpl.X.CompressGZIP(file_service_server_proto_rawDescData) + }) + return file_service_server_proto_rawDescData +} + +var file_service_server_proto_msgTypes = make([]protoimpl.MessageInfo, 12) +var file_service_server_proto_goTypes = []interface{}{ + (*CreateServerRequest)(nil), // 0: pb.CreateServerRequest + (*CreateServerResponse)(nil), // 1: pb.CreateServerResponse + (*UpdateServerRequest)(nil), // 2: pb.UpdateServerRequest + (*UpdateServerResponse)(nil), // 3: pb.UpdateServerResponse + (*CountAllEnabledServersRequest)(nil), // 4: pb.CountAllEnabledServersRequest + (*CountAllEnabledServersResponse)(nil), // 5: pb.CountAllEnabledServersResponse + (*ListEnabledServersRequest)(nil), // 6: pb.ListEnabledServersRequest + (*ListEnabledServersResponse)(nil), // 7: pb.ListEnabledServersResponse + (*DisableServerRequest)(nil), // 8: pb.DisableServerRequest + (*DisableServerResponse)(nil), // 9: pb.DisableServerResponse + (*FindEnabledServerRequest)(nil), // 10: pb.FindEnabledServerRequest + (*FindEnabledServerResponse)(nil), // 11: pb.FindEnabledServerResponse + (*Server)(nil), // 12: pb.Server +} +var file_service_server_proto_depIdxs = []int32{ + 12, // 0: pb.ListEnabledServersResponse.servers:type_name -> pb.Server + 12, // 1: pb.FindEnabledServerResponse.server:type_name -> pb.Server + 0, // 2: pb.ServerService.createServer:input_type -> pb.CreateServerRequest + 2, // 3: pb.ServerService.updateServer:input_type -> pb.UpdateServerRequest + 4, // 4: pb.ServerService.countAllEnabledServers:input_type -> pb.CountAllEnabledServersRequest + 6, // 5: pb.ServerService.listEnabledServers:input_type -> pb.ListEnabledServersRequest + 8, // 6: pb.ServerService.disableServer:input_type -> pb.DisableServerRequest + 10, // 7: pb.ServerService.findEnabledServer:input_type -> pb.FindEnabledServerRequest + 1, // 8: pb.ServerService.createServer:output_type -> pb.CreateServerResponse + 3, // 9: pb.ServerService.updateServer:output_type -> pb.UpdateServerResponse + 5, // 10: pb.ServerService.countAllEnabledServers:output_type -> pb.CountAllEnabledServersResponse + 7, // 11: pb.ServerService.listEnabledServers:output_type -> pb.ListEnabledServersResponse + 9, // 12: pb.ServerService.disableServer:output_type -> pb.DisableServerResponse + 11, // 13: pb.ServerService.findEnabledServer:output_type -> pb.FindEnabledServerResponse + 8, // [8:14] is the sub-list for method output_type + 2, // [2:8] is the sub-list for method input_type + 2, // [2:2] is the sub-list for extension type_name + 2, // [2:2] is the sub-list for extension extendee + 0, // [0:2] is the sub-list for field type_name +} + +func init() { file_service_server_proto_init() } +func file_service_server_proto_init() { + if File_service_server_proto != nil { + return + } + file_model_server_proto_init() + if !protoimpl.UnsafeEnabled { + file_service_server_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateServerRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_server_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateServerResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_server_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateServerRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_server_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateServerResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_server_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CountAllEnabledServersRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_server_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CountAllEnabledServersResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_server_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListEnabledServersRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_server_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListEnabledServersResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_server_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DisableServerRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_server_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DisableServerResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_server_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FindEnabledServerRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_server_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FindEnabledServerResponse); 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_service_server_proto_rawDesc, + NumEnums: 0, + NumMessages: 12, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_service_server_proto_goTypes, + DependencyIndexes: file_service_server_proto_depIdxs, + MessageInfos: file_service_server_proto_msgTypes, + }.Build() + File_service_server_proto = out.File + file_service_server_proto_rawDesc = nil + file_service_server_proto_goTypes = nil + file_service_server_proto_depIdxs = nil +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConnInterface + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion6 + +// ServerServiceClient is the client API for ServerService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type ServerServiceClient interface { + // 创建服务 + CreateServer(ctx context.Context, in *CreateServerRequest, opts ...grpc.CallOption) (*CreateServerResponse, error) + // 修改服务 + UpdateServer(ctx context.Context, in *UpdateServerRequest, opts ...grpc.CallOption) (*UpdateServerResponse, error) + // 计算服务数量 + CountAllEnabledServers(ctx context.Context, in *CountAllEnabledServersRequest, opts ...grpc.CallOption) (*CountAllEnabledServersResponse, error) + // 列出单页服务 + ListEnabledServers(ctx context.Context, in *ListEnabledServersRequest, opts ...grpc.CallOption) (*ListEnabledServersResponse, error) + // 禁用某服务 + DisableServer(ctx context.Context, in *DisableServerRequest, opts ...grpc.CallOption) (*DisableServerResponse, error) + // 查找单个服务 + FindEnabledServer(ctx context.Context, in *FindEnabledServerRequest, opts ...grpc.CallOption) (*FindEnabledServerResponse, error) +} + +type serverServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewServerServiceClient(cc grpc.ClientConnInterface) ServerServiceClient { + return &serverServiceClient{cc} +} + +func (c *serverServiceClient) CreateServer(ctx context.Context, in *CreateServerRequest, opts ...grpc.CallOption) (*CreateServerResponse, error) { + out := new(CreateServerResponse) + err := c.cc.Invoke(ctx, "/pb.ServerService/createServer", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *serverServiceClient) UpdateServer(ctx context.Context, in *UpdateServerRequest, opts ...grpc.CallOption) (*UpdateServerResponse, error) { + out := new(UpdateServerResponse) + err := c.cc.Invoke(ctx, "/pb.ServerService/updateServer", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *serverServiceClient) CountAllEnabledServers(ctx context.Context, in *CountAllEnabledServersRequest, opts ...grpc.CallOption) (*CountAllEnabledServersResponse, error) { + out := new(CountAllEnabledServersResponse) + err := c.cc.Invoke(ctx, "/pb.ServerService/countAllEnabledServers", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *serverServiceClient) ListEnabledServers(ctx context.Context, in *ListEnabledServersRequest, opts ...grpc.CallOption) (*ListEnabledServersResponse, error) { + out := new(ListEnabledServersResponse) + err := c.cc.Invoke(ctx, "/pb.ServerService/listEnabledServers", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *serverServiceClient) DisableServer(ctx context.Context, in *DisableServerRequest, opts ...grpc.CallOption) (*DisableServerResponse, error) { + out := new(DisableServerResponse) + err := c.cc.Invoke(ctx, "/pb.ServerService/disableServer", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *serverServiceClient) FindEnabledServer(ctx context.Context, in *FindEnabledServerRequest, opts ...grpc.CallOption) (*FindEnabledServerResponse, error) { + out := new(FindEnabledServerResponse) + err := c.cc.Invoke(ctx, "/pb.ServerService/findEnabledServer", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// ServerServiceServer is the server API for ServerService service. +type ServerServiceServer interface { + // 创建服务 + CreateServer(context.Context, *CreateServerRequest) (*CreateServerResponse, error) + // 修改服务 + UpdateServer(context.Context, *UpdateServerRequest) (*UpdateServerResponse, error) + // 计算服务数量 + CountAllEnabledServers(context.Context, *CountAllEnabledServersRequest) (*CountAllEnabledServersResponse, error) + // 列出单页服务 + ListEnabledServers(context.Context, *ListEnabledServersRequest) (*ListEnabledServersResponse, error) + // 禁用某服务 + DisableServer(context.Context, *DisableServerRequest) (*DisableServerResponse, error) + // 查找单个服务 + FindEnabledServer(context.Context, *FindEnabledServerRequest) (*FindEnabledServerResponse, error) +} + +// UnimplementedServerServiceServer can be embedded to have forward compatible implementations. +type UnimplementedServerServiceServer struct { +} + +func (*UnimplementedServerServiceServer) CreateServer(context.Context, *CreateServerRequest) (*CreateServerResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateServer not implemented") +} +func (*UnimplementedServerServiceServer) UpdateServer(context.Context, *UpdateServerRequest) (*UpdateServerResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateServer not implemented") +} +func (*UnimplementedServerServiceServer) CountAllEnabledServers(context.Context, *CountAllEnabledServersRequest) (*CountAllEnabledServersResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CountAllEnabledServers not implemented") +} +func (*UnimplementedServerServiceServer) ListEnabledServers(context.Context, *ListEnabledServersRequest) (*ListEnabledServersResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListEnabledServers not implemented") +} +func (*UnimplementedServerServiceServer) DisableServer(context.Context, *DisableServerRequest) (*DisableServerResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DisableServer not implemented") +} +func (*UnimplementedServerServiceServer) FindEnabledServer(context.Context, *FindEnabledServerRequest) (*FindEnabledServerResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method FindEnabledServer not implemented") +} + +func RegisterServerServiceServer(s *grpc.Server, srv ServerServiceServer) { + s.RegisterService(&_ServerService_serviceDesc, srv) +} + +func _ServerService_CreateServer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateServerRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ServerServiceServer).CreateServer(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.ServerService/CreateServer", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ServerServiceServer).CreateServer(ctx, req.(*CreateServerRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ServerService_UpdateServer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateServerRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ServerServiceServer).UpdateServer(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.ServerService/UpdateServer", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ServerServiceServer).UpdateServer(ctx, req.(*UpdateServerRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ServerService_CountAllEnabledServers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CountAllEnabledServersRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ServerServiceServer).CountAllEnabledServers(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.ServerService/CountAllEnabledServers", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ServerServiceServer).CountAllEnabledServers(ctx, req.(*CountAllEnabledServersRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ServerService_ListEnabledServers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListEnabledServersRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ServerServiceServer).ListEnabledServers(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.ServerService/ListEnabledServers", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ServerServiceServer).ListEnabledServers(ctx, req.(*ListEnabledServersRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ServerService_DisableServer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DisableServerRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ServerServiceServer).DisableServer(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.ServerService/DisableServer", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ServerServiceServer).DisableServer(ctx, req.(*DisableServerRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ServerService_FindEnabledServer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(FindEnabledServerRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ServerServiceServer).FindEnabledServer(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.ServerService/FindEnabledServer", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ServerServiceServer).FindEnabledServer(ctx, req.(*FindEnabledServerRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _ServerService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "pb.ServerService", + HandlerType: (*ServerServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "createServer", + Handler: _ServerService_CreateServer_Handler, + }, + { + MethodName: "updateServer", + Handler: _ServerService_UpdateServer_Handler, + }, + { + MethodName: "countAllEnabledServers", + Handler: _ServerService_CountAllEnabledServers_Handler, + }, + { + MethodName: "listEnabledServers", + Handler: _ServerService_ListEnabledServers_Handler, + }, + { + MethodName: "disableServer", + Handler: _ServerService_DisableServer_Handler, + }, + { + MethodName: "findEnabledServer", + Handler: _ServerService_FindEnabledServer_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "service_server.proto", +} diff --git a/pkg/rpc/pb/service_server_group.pb.go b/pkg/rpc/pb/service_server_group.pb.go new file mode 100644 index 0000000..fbf350d --- /dev/null +++ b/pkg/rpc/pb/service_server_group.pb.go @@ -0,0 +1,66 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.25.0 +// protoc v3.12.3 +// source: service_server_group.proto + +package pb + +import ( + proto "github.com/golang/protobuf/proto" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" +) + +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) +) + +// This is a compile-time assertion that a sufficiently up-to-date version +// of the legacy proto package is being used. +const _ = proto.ProtoPackageIsVersion4 + +var File_service_server_group_proto protoreflect.FileDescriptor + +var file_service_server_group_proto_rawDesc = []byte{ + 0x0a, 0x1a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, + 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var file_service_server_group_proto_goTypes = []interface{}{} +var file_service_server_group_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_service_server_group_proto_init() } +func file_service_server_group_proto_init() { + if File_service_server_group_proto != nil { + return + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_service_server_group_proto_rawDesc, + NumEnums: 0, + NumMessages: 0, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_service_server_group_proto_goTypes, + DependencyIndexes: file_service_server_group_proto_depIdxs, + }.Build() + File_service_server_group_proto = out.File + file_service_server_group_proto_rawDesc = nil + file_service_server_group_proto_goTypes = nil + file_service_server_group_proto_depIdxs = nil +} diff --git a/pkg/rpc/pb/service_user.pb.go b/pkg/rpc/pb/service_user.pb.go new file mode 100644 index 0000000..85aec58 --- /dev/null +++ b/pkg/rpc/pb/service_user.pb.go @@ -0,0 +1,66 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.25.0 +// protoc v3.12.3 +// source: service_user.proto + +package pb + +import ( + proto "github.com/golang/protobuf/proto" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" +) + +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) +) + +// This is a compile-time assertion that a sufficiently up-to-date version +// of the legacy proto package is being used. +const _ = proto.ProtoPackageIsVersion4 + +var File_service_user_proto protoreflect.FileDescriptor + +var file_service_user_proto_rawDesc = []byte{ + 0x0a, 0x12, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var file_service_user_proto_goTypes = []interface{}{} +var file_service_user_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_service_user_proto_init() } +func file_service_user_proto_init() { + if File_service_user_proto != nil { + return + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_service_user_proto_rawDesc, + NumEnums: 0, + NumMessages: 0, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_service_user_proto_goTypes, + DependencyIndexes: file_service_user_proto_depIdxs, + }.Build() + File_service_user_proto = out.File + file_service_user_proto_rawDesc = nil + file_service_user_proto_goTypes = nil + file_service_user_proto_depIdxs = nil +} diff --git a/pkg/rpc/protos/model_api_node.proto b/pkg/rpc/protos/model_api_node.proto new file mode 100644 index 0000000..090bcd1 --- /dev/null +++ b/pkg/rpc/protos/model_api_node.proto @@ -0,0 +1,18 @@ +syntax = "proto3"; +option go_package = "./pb"; + +package pb; + +message APINode { + int64 id = 1; + bool isOn = 2; + int64 clusterId = 3; + string uniqueId = 4; + string secret = 5; + string name = 6; + string description = 7; + string host = 8; + int32 port = 9; + + string address = 100; +} \ No newline at end of file diff --git a/pkg/rpc/protos/model_network_address.proto b/pkg/rpc/protos/model_network_address.proto new file mode 100644 index 0000000..e5e7b7b --- /dev/null +++ b/pkg/rpc/protos/model_network_address.proto @@ -0,0 +1,10 @@ +syntax = "proto3"; +option go_package = "./pb"; + +package pb; + +message NetworkAddress { + string protocol = 1; + string host = 2; + string portRange = 3; +} \ No newline at end of file diff --git a/pkg/rpc/protos/model_node.proto b/pkg/rpc/protos/model_node.proto new file mode 100644 index 0000000..69e0cfd --- /dev/null +++ b/pkg/rpc/protos/model_node.proto @@ -0,0 +1,23 @@ +syntax = "proto3"; +option go_package = "./pb"; + +package pb; + +import "model_node_cluster.proto"; +import "model_node_login.proto"; +import "model_node_install_status.proto"; + +message Node { + int64 id = 1; + string name = 2; + string status = 3; + string installDir = 4; + bool isInstalled = 5; + string code = 6; + string uniqueId = 7; + string secret = 8; + + NodeCluster cluster = 32; + NodeLogin login = 33; + NodeInstallStatus installStatus = 34; +} \ No newline at end of file diff --git a/pkg/rpc/protos/model_node_cluster.proto b/pkg/rpc/protos/model_node_cluster.proto new file mode 100644 index 0000000..810aec8 --- /dev/null +++ b/pkg/rpc/protos/model_node_cluster.proto @@ -0,0 +1,12 @@ +syntax = "proto3"; +option go_package = "./pb"; + +package pb; + +message NodeCluster { + int64 id = 1; + string name = 2; + int64 createdAt = 3; + int64 grantId = 4; + string installDir = 5; +} \ No newline at end of file diff --git a/pkg/rpc/protos/model_node_grant.proto b/pkg/rpc/protos/model_node_grant.proto new file mode 100644 index 0000000..6bddffc --- /dev/null +++ b/pkg/rpc/protos/model_node_grant.proto @@ -0,0 +1,16 @@ +syntax = "proto3"; +option go_package = "./pb"; + +package pb; + +message NodeGrant { + int64 id = 1; + string name = 2; + string method = 3; + string username = 4; + string password = 5; + bool su = 6; + string privateKey = 7; + string description = 8; + int64 nodeId = 9; +} \ No newline at end of file diff --git a/pkg/rpc/protos/model_node_install_status.proto b/pkg/rpc/protos/model_node_install_status.proto new file mode 100644 index 0000000..b74b87c --- /dev/null +++ b/pkg/rpc/protos/model_node_install_status.proto @@ -0,0 +1,12 @@ +syntax = "proto3"; +option go_package = "./pb"; + +package pb; + +message NodeInstallStatus { + bool isRunning = 1; + bool isFinished = 2; + bool isOk = 3; + string error = 4; + int64 updatedAt = 5; +} \ No newline at end of file diff --git a/pkg/rpc/protos/model_node_ip_address.proto b/pkg/rpc/protos/model_node_ip_address.proto new file mode 100644 index 0000000..512b5aa --- /dev/null +++ b/pkg/rpc/protos/model_node_ip_address.proto @@ -0,0 +1,14 @@ +syntax = "proto3"; +option go_package = "./pb"; + +package pb; + +message NodeIPAddress { + int64 id = 1; + int64 nodeId = 2; + string name = 3; + string ip = 4; + string description = 5; + int64 state = 6; + int64 order = 7; +} \ No newline at end of file diff --git a/pkg/rpc/protos/model_node_login.proto b/pkg/rpc/protos/model_node_login.proto new file mode 100644 index 0000000..3ad2869 --- /dev/null +++ b/pkg/rpc/protos/model_node_login.proto @@ -0,0 +1,11 @@ +syntax = "proto3"; +option go_package = "./pb"; + +package pb; + +message NodeLogin { + int64 id = 1; + string name = 2; + string type = 3; + bytes params = 4; +} \ No newline at end of file diff --git a/pkg/rpc/protos/model_origin_server.proto b/pkg/rpc/protos/model_origin_server.proto new file mode 100644 index 0000000..00e5d91 --- /dev/null +++ b/pkg/rpc/protos/model_origin_server.proto @@ -0,0 +1,14 @@ +syntax = "proto3"; +option go_package = "./pb"; + +package pb; + +import "model_network_address.proto"; + +message OriginServer { + int64 id = 1; + bool isOn = 2; + string name = 3; + NetworkAddress addr = 4; + string description = 5; +} \ No newline at end of file diff --git a/pkg/rpc/protos/model_server.proto b/pkg/rpc/protos/model_server.proto new file mode 100644 index 0000000..d7ed82c --- /dev/null +++ b/pkg/rpc/protos/model_server.proto @@ -0,0 +1,19 @@ +syntax = "proto3"; +option go_package = "./pb"; + +package pb; + +import "model_node_cluster.proto"; + +message Server { + int64 id = 1; + bytes config = 2; + string type = 3; + string name = 4; + string description = 5; + bytes includeNodes = 6; + bytes excludeNodes = 7; + int64 createdAt = 8; + + NodeCluster cluster = 10; +} diff --git a/pkg/rpc/protos/service_admin.proto b/pkg/rpc/protos/service_admin.proto new file mode 100644 index 0000000..a74b171 --- /dev/null +++ b/pkg/rpc/protos/service_admin.proto @@ -0,0 +1,65 @@ +syntax = "proto3"; +option go_package = "./pb"; + +package pb; + + +service AdminService { + // 登录 + rpc loginAdmin (LoginAdminRequest) returns (LoginAdminResponse) { + } + + // 创建操作日志 + rpc createAdminLog (CreateAdminLogRequest) returns (CreateAdminLogResponse) { + } + + // 检查管理员是否存在 + rpc checkAdminExists (CheckAdminExistsRequest) returns (CheckAdminExistsResponse) { + } + + // 获取管理员名称 + rpc findAdminFullname (FindAdminFullnameRequest) returns (FindAdminFullnameResponse) { + } + +} + +message LoginAdminRequest { + string username = 1; + string password = 2; +} + +message LoginAdminResponse { + int64 adminId = 1; + bool isOk = 2; + string message = 3; +} + +message CreateAdminLogRequest { + string level = 1; + string description = 2; + string action = 3; + string ip = 4; +} + +message CreateAdminLogResponse { + bool isOk = 1; +} + +message CheckAdminExistsRequest { + int64 adminId = 1; +} + +message CheckAdminExistsResponse { + bool isOk = 1; + string message = 2; +} + + +message FindAdminFullnameRequest { + int64 adminId = 1; +} + +message FindAdminFullnameResponse { + string fullname = 1; +} + diff --git a/pkg/rpc/protos/service_api_node.proto b/pkg/rpc/protos/service_api_node.proto new file mode 100644 index 0000000..2140bd7 --- /dev/null +++ b/pkg/rpc/protos/service_api_node.proto @@ -0,0 +1,99 @@ +syntax = "proto3"; +option go_package = "./pb"; + +package pb; +import "model_api_node.proto"; + +service APINodeService { + // 创建API节点 + rpc createAPINode (CreateAPINodeRequest) returns (CreateAPINodeResponse); + + // 修改API节点 + rpc updateAPINode (UpdateAPINodeRequest) returns (UpdateAPINodeResponse); + + // 删除API节点 + rpc deleteAPINode (DeleteAPINodeRequest) returns (DeleteAPINodeResponse); + + // 列出所有可用API节点 + rpc findAllEnabledAPINodes (FindAllEnabledAPINodesRequest) returns (FindAllEnabledAPINodesResponse); + + // 计算API节点数量 + rpc countAllEnabledAPINodes (CountAllEnabledAPINodesRequest) returns (CountAllEnabledAPINodesResponse); + + // 列出单页的API节点 + rpc listEnabledAPINodes (ListEnabledAPINodesRequest) returns (ListEnabledAPINodesResponse); + + // 根据ID查找节点 + rpc findEnabledAPINode (FindEnabledAPINodeRequest) returns (FindEnabledAPINodeResponse); +} + +// 创建API节点 +message CreateAPINodeRequest { + string name = 1; + string description = 2; + string host = 3; + int32 port = 4; +} + +message CreateAPINodeResponse { + int64 nodeId = 1; +} + +// 修改API节点 +message UpdateAPINodeRequest { + int64 nodeId = 1; + string name = 2; + string description = 3; + string host = 4; + int32 port = 5; +} + +message UpdateAPINodeResponse { + +} + +// 删除API节点 +message DeleteAPINodeRequest { + int64 nodeId = 1; +} + +message DeleteAPINodeResponse { + +} + +// 列出所有可用API节点 +message FindAllEnabledAPINodesRequest { + +} + +message FindAllEnabledAPINodesResponse { + repeated APINode nodes = 1; +} + +// 计算API节点数量 +message CountAllEnabledAPINodesRequest { + +} + +message CountAllEnabledAPINodesResponse { + int64 count = 1; +} + +// 列出单页的API节点 +message ListEnabledAPINodesRequest { + int64 offset = 1; + int64 size = 2; +} + +message ListEnabledAPINodesResponse { + repeated APINode nodes = 1; +} + +// 根据ID查找节点 +message FindEnabledAPINodeRequest { + int64 nodeId = 1; +} + +message FindEnabledAPINodeResponse { + APINode node = 1; +} \ No newline at end of file diff --git a/pkg/rpc/protos/service_log.proto b/pkg/rpc/protos/service_log.proto new file mode 100644 index 0000000..b169991 --- /dev/null +++ b/pkg/rpc/protos/service_log.proto @@ -0,0 +1,5 @@ +syntax = "proto3"; +option go_package = "./pb"; + +package pb; + diff --git a/pkg/rpc/protos/service_node.proto b/pkg/rpc/protos/service_node.proto new file mode 100644 index 0000000..7368e20 --- /dev/null +++ b/pkg/rpc/protos/service_node.proto @@ -0,0 +1,174 @@ +syntax = "proto3"; +option go_package = "./pb"; + +package pb; +import "model_node.proto"; +import "model_node_login.proto"; + +service NodeService { + // 创建节点 + rpc createNode (CreateNodeRequest) returns (CreateNodeResponse); + + // 节点数量 + rpc countAllEnabledNodes (CountAllEnabledNodesRequest) returns (CountAllEnabledNodesResponse); + + // 计算匹配的节点数量 + rpc countAllEnabledNodesMatch (CountAllEnabledNodesMatchRequest) returns (CountAllEnabledNodesMatchResponse); + + // 列出单页节点 + rpc listEnabledNodesMatch (ListEnabledNodesMatchRequest) returns (ListEnabledNodesMatchResponse); + + // 禁用节点 + rpc disableNode (DisableNodeRequest) returns (DisableNodeResponse); + + // 修改节点 + rpc updateNode (UpdateNodeRequest) returns (UpdateNodeResponse); + + // 查看单个节点 + rpc findEnabledNode (FindEnabledNodeRequest) returns (FindEnabledNodeResponse); + + // 组合单个节点配置 + rpc composeNodeConfig (ComposeNodeConfigRequest) returns (ComposeNodeConfigResponse); + + // 节点stream + rpc nodeStream (stream NodeStreamRequest) returns (stream NodeStreamResponse); + + // 更新节点状态 + rpc updateNodeStatus (UpdateNodeStatusRequest) returns (UpdateNodeStatusResponse); + + // 同步集群中的节点版本 + rpc syncNodesVersionWithCluster (SyncNodesVersionWithClusterRequest) returns (SyncNodesVersionWithClusterResponse); + + // 修改节点安装状态 + rpc updateNodeIsInstalled (UpdateNodeIsInstalledRequest) returns (UpdateNodeIsInstalledResponse); + + // 安装节点 + rpc installNode (InstallNodeRequest) returns (InstallNodeResponse); +} + +// 创建节点 +message CreateNodeRequest { + string name = 1; + int64 clusterId = 2; + NodeLogin Login = 3; +} + +message CreateNodeResponse { + int64 nodeId = 1; +} + +// 节点数量 +message CountAllEnabledNodesRequest { + +} + +message CountAllEnabledNodesResponse { + int64 count = 1; +} + +// 列出单页节点 +message ListEnabledNodesMatchRequest { + int64 offset = 1; + int64 size = 2; + int64 clusterId = 3; + int32 installState = 4; +} + +message ListEnabledNodesMatchResponse { + repeated Node nodes = 1; +} + +// 禁用节点 +message DisableNodeRequest { + int64 nodeId = 1; +} + +message DisableNodeResponse { + +} + +// 修改节点 +message UpdateNodeRequest { + int64 nodeId = 1; + string name = 2; + int64 clusterId = 3; + NodeLogin Login = 4; +} + +message UpdateNodeResponse { + +} + +// 查找节点 +message FindEnabledNodeRequest { + int64 nodeId = 1; +} + +message FindEnabledNodeResponse { + Node node = 1; +} + +// 组合单个节点配置 +message ComposeNodeConfigRequest { + +} + +message ComposeNodeConfigResponse { + bytes configJSON = 1; +} + +// 节点stream +message NodeStreamRequest { + +} + +message NodeStreamResponse { + +} + +// 更新节点状态 +message UpdateNodeStatusRequest { + int64 nodeId = 1; + bytes statusJSON = 2; +} + +message UpdateNodeStatusResponse { + +} + +// 同步集群中的节点版本 +message SyncNodesVersionWithClusterRequest { + int64 clusterId = 1; +} + +message SyncNodesVersionWithClusterResponse { +} + +// 计算匹配的节点数量 +message CountAllEnabledNodesMatchRequest { + int64 clusterId = 1; + int32 installState = 2; +} + +message CountAllEnabledNodesMatchResponse { + int64 count = 1; +} + +// 修改节点安装状态 +message UpdateNodeIsInstalledRequest { + int64 nodeId = 1; + bool isInstalled = 2; +} + +message UpdateNodeIsInstalledResponse { + +} + +// 安装节点 +message InstallNodeRequest { + int64 nodeId = 1; +} + +message InstallNodeResponse { + +} diff --git a/pkg/rpc/protos/service_node_cluster.proto b/pkg/rpc/protos/service_node_cluster.proto new file mode 100644 index 0000000..0cb0e97 --- /dev/null +++ b/pkg/rpc/protos/service_node_cluster.proto @@ -0,0 +1,109 @@ +syntax = "proto3"; +option go_package = "./pb"; + +package pb; +import "model_node_cluster.proto"; + +service NodeClusterService { + // 创建集群 + rpc createNodeCluster (CreateNodeClusterRequest) returns (CreateNodeClusterResponse); + + // 修改集群 + rpc updateNodeCluster (UpdateNodeClusterRequest) returns (UpdateNodeClusterResponse); + + // 禁用集群 + rpc disableNodeCluster (DisableNodeClusterRequest) returns (DisableNodeClusterResponse); + + // 查找单个集群信息 + rpc findEnabledNodeCluster (FindEnabledNodeClusterRequest) returns (FindEnabledNodeClusterResponse); + + // 获取所有集群的信息 + rpc findAllEnabledNodeClusters (FindAllEnabledNodeClustersRequest) returns (FindAllEnabledNodeClustersResponse); + + // 获取变更的集群 + rpc findAllChangedNodeClusters (FindAllChangedNodeClustersRequest) returns (FindAllChangedNodeClustersResponse); + + // 计算所有集群数量 + rpc countAllEnabledNodeClusters (CountAllEnabledNodeClustersRequest) returns (CountAllEnabledNodeClustersResponse); + + // 列出单页集群 + rpc listEnabledNodeClusters (ListEnabledNodeClustersRequest) returns (ListEnabledNodeClustersResponse); +} + +// 获取所有集群的信息 +message FindAllEnabledNodeClustersRequest { + +} + +message FindAllEnabledNodeClustersResponse { + repeated NodeCluster clusters = 1; +} + +// 获取变更的集群 +message FindAllChangedNodeClustersRequest { + +} + +message FindAllChangedNodeClustersResponse { + repeated NodeCluster clusters = 1; +} + +// 创建集群 +message CreateNodeClusterRequest { + string name = 1; + int64 grantId = 2; + string installDir = 3; +} + +message CreateNodeClusterResponse { + int64 clusterId = 1; +} + +// 修改集群 +message UpdateNodeClusterRequest { + int64 clusterId = 1; + string name = 2; + int64 grantId = 3; + string installDir = 4; +} + +message UpdateNodeClusterResponse { + +} + +// 禁用集群 +message DisableNodeClusterRequest { + int64 clusterId = 1; +} + +message DisableNodeClusterResponse { + +} + +// 查找单个集群信息 +message FindEnabledNodeClusterRequest { + int64 clusterId = 1; +} + +message FindEnabledNodeClusterResponse { + NodeCluster cluster = 1; +} + +// 计算所有集群数量 +message CountAllEnabledNodeClustersRequest { + +} + +message CountAllEnabledNodeClustersResponse { + int64 count = 1; +} + +// 列出单页集群 +message ListEnabledNodeClustersRequest { + int64 offset = 1; + int64 size = 2; +} + +message ListEnabledNodeClustersResponse { + repeated NodeCluster clusters = 1; +} \ No newline at end of file diff --git a/pkg/rpc/protos/service_node_grant.proto b/pkg/rpc/protos/service_node_grant.proto new file mode 100644 index 0000000..6a2d3c2 --- /dev/null +++ b/pkg/rpc/protos/service_node_grant.proto @@ -0,0 +1,105 @@ +syntax = "proto3"; +option go_package = "./pb"; + +package pb; +import "model_node_grant.proto"; + +service NodeGrantService { + // 创建认证 + rpc createNodeGrant (CreateNodeGrantRequest) returns (CreateNodeGrantResponse); + + // 修改认证 + rpc updateNodeGrant (UpdateNodeGrantRequest) returns (UpdateNodeGrantResponse); + + // 禁用认证 + rpc disableNodeGrant (DisableNodeGrantRequest) returns (DisableNodeGrantResponse); + + // 计算认证的数量 + rpc countAllEnabledNodeGrants (CountAllEnabledNodeGrantsRequest) returns (CountAllEnabledNodeGrantsResponse); + + // 列出单页认证 + rpc ListEnabledNodeGrants (ListEnabledNodeGrantsRequest) returns (ListEnabledNodeGrantsResponse); + + // 列出所有认证 + rpc FindAllEnabledNodeGrants(FindAllEnabledNodeGrantsRequest) returns (FindAllEnabledNodeGrantsResponse); + + // 获取单个认证信息 + rpc FindEnabledGrant(FindEnabledGrantRequest) returns (FindEnabledGrantResponse); +} + +// 创建节点认证 +message CreateNodeGrantRequest { + string name = 1; + string method = 2; + string username = 3; + string password = 4; + string privateKey = 5; + string description = 6; + int64 nodeId = 7; +} + +message CreateNodeGrantResponse { + int64 grantId = 1; +} + +// 修改节点认证 +message UpdateNodeGrantRequest { + int64 grantId = 8; + string name = 1; + string method = 2; + string username = 3; + string password = 4; + string privateKey = 5; + string description = 6; + int64 nodeId = 7; +} + +message UpdateNodeGrantResponse { + +} + +// 禁用节点认证 +message DisableNodeGrantRequest { + int64 grantId = 1; +} + +message DisableNodeGrantResponse { + +} + +// 计算节点认证数量 +message CountAllEnabledNodeGrantsRequest { + +} + +message CountAllEnabledNodeGrantsResponse { + int64 count = 1; +} + +// 列出单页认证 +message ListEnabledNodeGrantsRequest { + int64 offset = 1; + int64 size = 2; +} + +message ListEnabledNodeGrantsResponse { + repeated NodeGrant grants = 1; +} + +// 获取所有认证信息 +message FindAllEnabledNodeGrantsRequest { + +} + +message FindAllEnabledNodeGrantsResponse { + repeated NodeGrant grants = 1; +} + +// 获取认证信息 +message FindEnabledGrantRequest { + int64 grantId = 1; +} + +message FindEnabledGrantResponse { + NodeGrant grant = 1; +} \ No newline at end of file diff --git a/pkg/rpc/protos/service_node_group.proto b/pkg/rpc/protos/service_node_group.proto new file mode 100644 index 0000000..b169991 --- /dev/null +++ b/pkg/rpc/protos/service_node_group.proto @@ -0,0 +1,5 @@ +syntax = "proto3"; +option go_package = "./pb"; + +package pb; + diff --git a/pkg/rpc/protos/service_node_ip_address.proto b/pkg/rpc/protos/service_node_ip_address.proto new file mode 100644 index 0000000..dabdcd1 --- /dev/null +++ b/pkg/rpc/protos/service_node_ip_address.proto @@ -0,0 +1,97 @@ +syntax = "proto3"; +option go_package = "./pb"; + +package pb; + +import "model_node_ip_address.proto"; + +service NodeIPAddressService { + // 创建IP地址 + rpc createNodeIPAddress (CreateNodeIPAddressRequest) returns (CreateNodeIPAddressResponse); + + // 修改IP地址 + rpc updateNodeIPAddress (UpdateNodeIPAddressRequest) returns (UpdateNodeIPAddressResponse); + + // 修改IP地址所属节点 + rpc updateNodeIPAddressNodeId (UpdateNodeIPAddressNodeIdRequest) returns (UpdateNodeIPAddressNodeIdResponse); + + // 禁用单个IP地址 + rpc disableNodeIPAddress (DisableNodeIPAddressRequest) returns (DisableNodeIPAddressResponse); + + // 禁用节点的所有IP地址 + rpc disableAllIPAddressesWithNodeId (DisableAllIPAddressesWithNodeIdRequest) returns (DisableAllIPAddressesWithNodeIdResponse); + + // 查找单个IP地址 + rpc findEnabledNodeIPAddress (FindEnabledNodeIPAddressRequest) returns (FindEnabledNodeIPAddressResponse); + + // 查找节点的所有地址 + rpc findAllEnabledIPAddressesWithNodeId (FindAllEnabledIPAddressesWithNodeIdRequest) returns (FindAllEnabledIPAddressesWithNodeIdResponse); +} + +// 创建IP地址 +message CreateNodeIPAddressRequest { + int64 nodeId = 1; + string name = 2; + string ip = 3; +} + +message CreateNodeIPAddressResponse { + int64 addressId = 1; +} + +// 修改IP地址 +message UpdateNodeIPAddressRequest { + int64 addressId = 1; + string name = 2; + string ip = 3; +} + +message UpdateNodeIPAddressResponse { + +} + +// 修改IP地址所属节点 +message UpdateNodeIPAddressNodeIdRequest { + int64 addressId = 1; + int64 nodeId = 2; +} + +message UpdateNodeIPAddressNodeIdResponse { + +} + +// 禁用单个IP地址 +message DisableNodeIPAddressRequest { + int64 addressId = 1; +} + +message DisableNodeIPAddressResponse { + +} + +// 禁用节点的所有IP地址 +message DisableAllIPAddressesWithNodeIdRequest { + int64 nodeId = 1; +} + +message DisableAllIPAddressesWithNodeIdResponse { + +} + +// 查找单个IP地址 +message FindEnabledNodeIPAddressRequest { + int64 addressId = 1; +} + +message FindEnabledNodeIPAddressResponse { + NodeIPAddress ipAddress = 1; +} + +// 查找节点的所有地址 +message FindAllEnabledIPAddressesWithNodeIdRequest { + int64 nodeId = 1; +} + +message FindAllEnabledIPAddressesWithNodeIdResponse { + repeated NodeIPAddress addresses = 1; +} \ No newline at end of file diff --git a/pkg/rpc/protos/service_node_region.proto b/pkg/rpc/protos/service_node_region.proto new file mode 100644 index 0000000..b169991 --- /dev/null +++ b/pkg/rpc/protos/service_node_region.proto @@ -0,0 +1,5 @@ +syntax = "proto3"; +option go_package = "./pb"; + +package pb; + diff --git a/pkg/rpc/protos/service_origin_server.proto b/pkg/rpc/protos/service_origin_server.proto new file mode 100644 index 0000000..e36774f --- /dev/null +++ b/pkg/rpc/protos/service_origin_server.proto @@ -0,0 +1,50 @@ +syntax = "proto3"; +option go_package = "./pb"; + +package pb; + +import "model_origin_server.proto"; +import "model_network_address.proto"; + +service OriginServerService { + // 创建源站 + rpc createOriginServer (CreateOriginServerRequest) returns (CreateOriginServerResponse); + + // 修改源站 + rpc updateOriginServer (UpdateOriginServerRequest) returns (UpdateOriginServerResponse); + + // 查找单个源站信息 + rpc findEnabledOriginServer (FindEnabledOriginServerRequest) returns (FindEnabledOriginServerResponse); +} + +// 创建源站 +message CreateOriginServerRequest { + string name = 1; + NetworkAddress addr = 2; + string description = 3; +} + +message CreateOriginServerResponse { + int64 originId = 1; +} + +// 修改源站 +message UpdateOriginServerRequest { + int64 originId = 1; + string name = 2; + NetworkAddress addr = 3; + string description = 4; +} + +message UpdateOriginServerResponse { + +} + +// 查找单个源站信息 +message FindEnabledOriginServerRequest { + int64 originId = 1; +} + +message FindEnabledOriginServerResponse { + OriginServer Origin = 1; +} \ No newline at end of file diff --git a/pkg/rpc/protos/service_server.proto b/pkg/rpc/protos/service_server.proto new file mode 100644 index 0000000..1389a52 --- /dev/null +++ b/pkg/rpc/protos/service_server.proto @@ -0,0 +1,96 @@ +syntax = "proto3"; +option go_package = "./pb"; + +package pb; +import "model_server.proto"; + +service ServerService { + // 创建服务 + rpc createServer (CreateServerRequest) returns (CreateServerResponse); + + // 修改服务 + rpc updateServer (UpdateServerRequest) returns (UpdateServerResponse); + + // 计算服务数量 + rpc countAllEnabledServers (CountAllEnabledServersRequest) returns (CountAllEnabledServersResponse); + + // 列出单页服务 + rpc listEnabledServers (ListEnabledServersRequest) returns (ListEnabledServersResponse); + + // 禁用某服务 + rpc disableServer (DisableServerRequest) returns (DisableServerResponse); + + // 查找单个服务 + rpc findEnabledServer (FindEnabledServerRequest) returns (FindEnabledServerResponse); +} + +// 创建服务 +message CreateServerRequest { + int64 userId = 1; + int64 adminId = 2; + string type = 3; + string name = 4; + string description = 5; + int64 clusterId = 6; + bytes config = 7; + bytes includeNodesJSON = 8; + bytes excludeNodesJSON = 9; +} + +message CreateServerResponse { + int64 serverId = 1; +} + +// 修改服务 +message UpdateServerRequest { + int64 serverId = 1; + int64 userId = 2; + int64 adminId = 3; + string name = 4; + string description = 5; + int64 clusterId = 6; + bytes config = 7; + bytes includeNodesJSON = 8; + bytes excludeNodesJSON = 9; +} + +message UpdateServerResponse { + +} + +// 计算服务数量 +message CountAllEnabledServersRequest { + +} + +message CountAllEnabledServersResponse { + int64 count = 1; +} + +// 列出单页服务 +message ListEnabledServersRequest { + int64 offset = 1; + int64 size = 2; +} + +message ListEnabledServersResponse { + repeated Server servers = 1; +} + +// 禁用服务 +message DisableServerRequest { + int64 serverId = 1; +} + +message DisableServerResponse { + +} + +// 查找单个服务 +message FindEnabledServerRequest { + int64 serverId = 1; +} + +message FindEnabledServerResponse { + Server server = 1; +} \ No newline at end of file diff --git a/pkg/rpc/protos/service_server_group.proto b/pkg/rpc/protos/service_server_group.proto new file mode 100644 index 0000000..b169991 --- /dev/null +++ b/pkg/rpc/protos/service_server_group.proto @@ -0,0 +1,5 @@ +syntax = "proto3"; +option go_package = "./pb"; + +package pb; + diff --git a/pkg/rpc/protos/service_user.proto b/pkg/rpc/protos/service_user.proto new file mode 100644 index 0000000..b169991 --- /dev/null +++ b/pkg/rpc/protos/service_user.proto @@ -0,0 +1,5 @@ +syntax = "proto3"; +option go_package = "./pb"; + +package pb; + diff --git a/pkg/serverconfigs/cache_policy.go b/pkg/serverconfigs/cache_policy.go new file mode 100644 index 0000000..ab0c5a7 --- /dev/null +++ b/pkg/serverconfigs/cache_policy.go @@ -0,0 +1,155 @@ +package serverconfigs + +import ( + "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/configutils" + "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/shared" + "github.com/iwind/TeaGo/Tea" + "github.com/iwind/TeaGo/files" + "github.com/iwind/TeaGo/lists" + "github.com/iwind/TeaGo/logs" + "strconv" + "strings" + "time" +) + +var DefaultSkippedResponseCacheControlValues = []string{"private", "no-cache", "no-store"} + +// 缓存策略配置 +type CachePolicy struct { + Id int `yaml:"id" json:"id"` + IsOn bool `yaml:"isOn" json:"isOn"` // 是否开启 TODO + Name string `yaml:"name" json:"name"` // 名称 + + Key string `yaml:"key" json:"key"` // 每个缓存的Key规则,里面可以有变量 + Capacity shared.SizeCapacity `yaml:"capacity" json:"capacity"` // 最大内容容量 + Life shared.TimeDuration `yaml:"life" json:"life"` // 时间 + Status []int `yaml:"status" json:"status"` // 缓存的状态码列表 + MaxSize shared.SizeCapacity `yaml:"maxSize" json:"maxSize"` // 能够请求的最大尺寸 + + SkipResponseCacheControlValues []string `yaml:"skipCacheControlValues" json:"skipCacheControlValues"` // 可以跳过的响应的Cache-Control值 + SkipResponseSetCookie bool `yaml:"skipSetCookie" json:"skipSetCookie"` // 是否跳过响应的Set-Cookie Header + EnableRequestCachePragma bool `yaml:"enableRequestCachePragma" json:"enableRequestCachePragma"` // 是否支持客户端的Pragma: no-cache + + Cond []*shared.RequestCond `yaml:"cond" json:"cond"` + + life time.Duration + maxSize int64 + capacity int64 + + uppercaseSkipCacheControlValues []string + + Type string `yaml:"type" json:"type"` // 类型 + Options map[string]interface{} `yaml:"options" json:"options"` // 选项 +} + +// 获取新对象 +func NewCachePolicy() *CachePolicy { + return &CachePolicy{ + SkipResponseCacheControlValues: DefaultSkippedResponseCacheControlValues, + SkipResponseSetCookie: true, + } +} + +// 从文件中读取缓存策略 +func NewCachePolicyFromFile(file string) *CachePolicy { + if len(file) == 0 { + return nil + } + reader, err := files.NewReader(Tea.ConfigFile(file)) + if err != nil { + logs.Error(err) + return nil + } + defer func() { + _ = reader.Close() + }() + + p := NewCachePolicy() + err = reader.ReadYAML(p) + if err != nil { + logs.Error(err) + return nil + } + + return p +} + +// 校验 +func (this *CachePolicy) Validate() error { + var err error + this.maxSize = this.MaxSize.Bytes() + this.life = this.Life.Duration() + this.capacity = this.Capacity.Bytes() + + this.uppercaseSkipCacheControlValues = []string{} + for _, value := range this.SkipResponseCacheControlValues { + this.uppercaseSkipCacheControlValues = append(this.uppercaseSkipCacheControlValues, strings.ToUpper(value)) + } + + // cond + if len(this.Cond) > 0 { + for _, cond := range this.Cond { + err := cond.Validate() + if err != nil { + return err + } + } + } + + return err +} + +// 最大数据尺寸 +func (this *CachePolicy) MaxDataSize() int64 { + return this.maxSize +} + +// 容量 +func (this *CachePolicy) CapacitySize() int64 { + return this.capacity +} + +// 生命周期 +func (this *CachePolicy) LifeDuration() time.Duration { + return this.life +} + +// 保存 +func (this *CachePolicy) Save() error { + shared.Locker.Lock() + defer shared.Locker.Unlock() + + filename := "cache.policy." + strconv.Itoa(this.Id) + ".conf" + writer, err := files.NewWriter(Tea.ConfigFile(filename)) + if err != nil { + return err + } + defer func() { + _ = writer.Close() + }() + _, err = writer.WriteYAML(this) + return err +} + +// 删除 +func (this *CachePolicy) Delete() error { + filename := "cache.policy." + strconv.Itoa(this.Id) + ".conf" + return files.NewFile(Tea.ConfigFile(filename)).Delete() +} + +// 是否包含某个Cache-Control值 +func (this *CachePolicy) ContainsCacheControl(value string) bool { + return lists.ContainsString(this.uppercaseSkipCacheControlValues, strings.ToUpper(value)) +} + +// 检查是否匹配关键词 +func (this *CachePolicy) MatchKeyword(keyword string) (matched bool, name string, tags []string) { + if configutils.MatchKeyword(this.Name, keyword) || configutils.MatchKeyword(this.Type, keyword) { + matched = true + name = this.Name + if len(this.Type) > 0 { + tags = []string{"类型:" + this.Type} + } + } + return +} diff --git a/pkg/serverconfigs/component_config.go b/pkg/serverconfigs/component_config.go new file mode 100644 index 0000000..ad42b4b --- /dev/null +++ b/pkg/serverconfigs/component_config.go @@ -0,0 +1,4 @@ +package serverconfigs + +type ComponentConfig struct { +} diff --git a/pkg/serverconfigs/configutils/copy.go b/pkg/serverconfigs/configutils/copy.go new file mode 100644 index 0000000..732565f --- /dev/null +++ b/pkg/serverconfigs/configutils/copy.go @@ -0,0 +1,20 @@ +package configutils + +import ( + "reflect" +) + +// 拷贝同类型struct指针对象中的字段 +func CopyStructObject(destPtr, sourcePtr interface{}) { + value := reflect.ValueOf(destPtr) + value2 := reflect.ValueOf(sourcePtr) + + countFields := value2.Elem().NumField() + for i := 0; i < countFields; i++ { + v := value2.Elem().Field(i) + if !v.IsValid() || !v.CanSet() { + continue + } + value.Elem().Field(i).Set(v) + } +} diff --git a/pkg/serverconfigs/configutils/copy_test.go b/pkg/serverconfigs/configutils/copy_test.go new file mode 100644 index 0000000..549e26a --- /dev/null +++ b/pkg/serverconfigs/configutils/copy_test.go @@ -0,0 +1,28 @@ +package configutils + +import ( + "github.com/iwind/TeaGo/logs" + "testing" +) + +func TestCopyStructObject(t *testing.T) { + type Book struct { + Name string + Price int + Year int + Author string + press string + } + + book1 := &Book{ + Name: "Hello Golang", + Price: 100, + Year: 2020, + Author: "Liu", + press: "Beijing", + } + book2 := new(Book) + CopyStructObject(book2, book1) + logs.PrintAsJSON(book2, t) + logs.PrintAsJSON(book1, t) +} diff --git a/pkg/serverconfigs/configutils/domain.go b/pkg/serverconfigs/configutils/domain.go new file mode 100644 index 0000000..5a8ddcd --- /dev/null +++ b/pkg/serverconfigs/configutils/domain.go @@ -0,0 +1,59 @@ +package configutils + +import ( + "github.com/iwind/TeaGo/logs" + "github.com/iwind/TeaGo/utils/string" + "strings" +) + +// 从一组规则中匹配域名 +// 支持的格式:example.com, www.example.com, .example.com, *.example.com, ~(\d+).example.com +// 更多参考:http://nginx.org/en/docs/http/ngx_http_core_module.html#server_name +func MatchDomains(patterns []string, domain string) (isMatched bool) { + if len(patterns) == 0 { + return + } + for _, pattern := range patterns { + if matchDomain(pattern, domain) { + return true + } + } + return +} + +// 匹配单个域名规则 +func matchDomain(pattern string, domain string) (isMatched bool) { + if len(pattern) == 0 { + return + } + + // 正则表达式 + if pattern[0] == '~' { + reg, err := stringutil.RegexpCompile(strings.TrimSpace(pattern[1:])) + if err != nil { + logs.Error(err) + return false + } + return reg.MatchString(domain) + } + + if pattern[0] == '.' { + return strings.HasSuffix(domain, pattern) + } + + // 其他匹配 + patternPieces := strings.Split(pattern, ".") + domainPieces := strings.Split(domain, ".") + if len(patternPieces) != len(domainPieces) { + return + } + isMatched = true + for index, patternPiece := range patternPieces { + if patternPiece == "" || patternPiece == "*" || patternPiece == domainPieces[index] { + continue + } + isMatched = false + break + } + return isMatched +} diff --git a/pkg/serverconfigs/configutils/domain_test.go b/pkg/serverconfigs/configutils/domain_test.go new file mode 100644 index 0000000..c0ead00 --- /dev/null +++ b/pkg/serverconfigs/configutils/domain_test.go @@ -0,0 +1,79 @@ +package configutils + +import ( + "github.com/iwind/TeaGo/assert" + "testing" +) + +func TestMatchDomain(t *testing.T) { + a := assert.NewAssertion(t) + { + ok := MatchDomains([]string{}, "example.com") + a.IsFalse(ok) + } + + { + ok := MatchDomains([]string{"example.com"}, "example.com") + a.IsTrue(ok) + } + + { + ok := MatchDomains([]string{"www.example.com"}, "example.com") + a.IsFalse(ok) + } + + { + ok := MatchDomains([]string{".example.com"}, "www.example.com") + a.IsTrue(ok) + } + + { + ok := MatchDomains([]string{".example.com"}, "a.www.example.com") + a.IsTrue(ok) + } + + { + ok := MatchDomains([]string{".example.com"}, "a.www.example123.com") + a.IsFalse(ok) + } + + { + ok := MatchDomains([]string{"*.example.com"}, "www.example.com") + a.IsTrue(ok) + } + + { + ok := MatchDomains([]string{"*.*.com"}, "www.example.com") + a.IsTrue(ok) + } + + { + ok := MatchDomains([]string{"www.*.com"}, "www.example.com") + a.IsTrue(ok) + } + + { + ok := MatchDomains([]string{"gallery.*.com"}, "www.example.com") + a.IsFalse(ok) + } + + { + ok := MatchDomains([]string{"~\\w+.example.com"}, "www.example.com") + a.IsTrue(ok) + } + + { + ok := MatchDomains([]string{"~\\w+.example.com"}, "a.www.example.com") + a.IsTrue(ok) + } + + { + ok := MatchDomains([]string{"~^\\d+.example.com$"}, "www.example.com") + a.IsFalse(ok) + } + + { + ok := MatchDomains([]string{"~^\\d+.example.com$"}, "123.example.com") + a.IsTrue(ok) + } +} diff --git a/pkg/serverconfigs/configutils/log.go b/pkg/serverconfigs/configutils/log.go new file mode 100644 index 0000000..422903a --- /dev/null +++ b/pkg/serverconfigs/configutils/log.go @@ -0,0 +1,11 @@ +package configutils + +import "github.com/iwind/TeaGo/logs" + +// 记录错误 +func LogError(arg ...interface{}) { + if len(arg) == 0 { + return + } + logs.Println(arg...) +} diff --git a/pkg/serverconfigs/configutils/match.go b/pkg/serverconfigs/configutils/match.go new file mode 100644 index 0000000..961d7f8 --- /dev/null +++ b/pkg/serverconfigs/configutils/match.go @@ -0,0 +1,25 @@ +package configutils + +import ( + "regexp" + "strings" +) + +var whitespaceReg = regexp.MustCompile(`\s+`) + +// 关键词匹配 +func MatchKeyword(source, keyword string) bool { + if len(keyword) == 0 { + return false + } + + pieces := whitespaceReg.Split(keyword, -1) + source = strings.ToLower(source) + for _, piece := range pieces { + if strings.Index(source, strings.ToLower(piece)) > -1 { + return true + } + } + + return false +} diff --git a/pkg/serverconfigs/configutils/match_test.go b/pkg/serverconfigs/configutils/match_test.go new file mode 100644 index 0000000..26c4507 --- /dev/null +++ b/pkg/serverconfigs/configutils/match_test.go @@ -0,0 +1,13 @@ +package configutils + +import ( + "github.com/iwind/TeaGo/assert" + "testing" +) + +func TestMatchKeyword(t *testing.T) { + a := assert.NewAssertion(t) + a.IsTrue(MatchKeyword("a b c", "a")) + a.IsFalse(MatchKeyword("a b c", "")) + a.IsTrue(MatchKeyword("abc", "BC")) +} diff --git a/pkg/serverconfigs/configutils/yaml.go b/pkg/serverconfigs/configutils/yaml.go new file mode 100644 index 0000000..678c56d --- /dev/null +++ b/pkg/serverconfigs/configutils/yaml.go @@ -0,0 +1,14 @@ +package configutils + +import ( + "github.com/go-yaml/yaml" + "io/ioutil" +) + +func UnmarshalYamlFile(file string, ptr interface{}) error { + data, err := ioutil.ReadFile(file) + if err != nil { + return err + } + return yaml.Unmarshal(data, ptr) +} diff --git a/pkg/serverconfigs/filter_config.go b/pkg/serverconfigs/filter_config.go new file mode 100644 index 0000000..ba9268c --- /dev/null +++ b/pkg/serverconfigs/filter_config.go @@ -0,0 +1,4 @@ +package serverconfigs + +type FilterConfig struct { +} diff --git a/pkg/serverconfigs/global_config.go b/pkg/serverconfigs/global_config.go new file mode 100644 index 0000000..1d307ff --- /dev/null +++ b/pkg/serverconfigs/global_config.go @@ -0,0 +1,43 @@ +package serverconfigs + +import ( + "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/configutils" + "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/shared" +) + +var globalConfig *GlobalConfig = nil +var globalConfigFile = "global.yaml" + +// 全局设置 +type GlobalConfig struct { + HTTPAll struct { + MatchDomainStrictly bool `yaml:"matchDomainStrictly" json:"matchDomainStrictly"` + } `yaml:"httpAll" json:"httpAll"` + HTTP struct{} `yaml:"http" json:"http"` + HTTPS struct{} `yaml:"https" json:"https"` + TCPAll struct{} `yaml:"tcpAll" json:"tcpAll"` + TCP struct{} `yaml:"tcp" json:"tcp"` + TLS struct{} `yaml:"tls" json:"tls"` + Unix struct{} `yaml:"unix" json:"unix"` + UDP struct{} `yaml:"udp" json:"udp"` +} + +func SharedGlobalConfig() *GlobalConfig { + shared.Locker.Lock() + defer shared.Locker.Unlock() + + if globalConfig != nil { + return globalConfig + } + + err := configutils.UnmarshalYamlFile(globalConfigFile, globalConfig) + if err != nil { + configutils.LogError("[SharedGlobalConfig]" + err.Error()) + globalConfig = &GlobalConfig{} + } + return globalConfig +} + +func (this *GlobalConfig) Init() error { + return nil +} diff --git a/pkg/serverconfigs/health_check_config.go b/pkg/serverconfigs/health_check_config.go new file mode 100644 index 0000000..f95b6db --- /dev/null +++ b/pkg/serverconfigs/health_check_config.go @@ -0,0 +1,11 @@ +package serverconfigs + +import "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/shared" + +type HealthCheckConfig struct { + IsOn bool `yaml:"isOn" json:"isOn"` // 是否开启 TODO + URL string `yaml:"url" json:"url"` // TODO + Interval int `yaml:"interval" json:"interval"` // TODO + StatusCodes []int `yaml:"statusCodes" json:"statusCodes"` // TODO + Timeout shared.TimeDuration `yaml:"timeout" json:"timeout"` // 超时时间 TODO +} diff --git a/pkg/serverconfigs/ip_version.go b/pkg/serverconfigs/ip_version.go new file mode 100644 index 0000000..6471ea0 --- /dev/null +++ b/pkg/serverconfigs/ip_version.go @@ -0,0 +1,8 @@ +package serverconfigs + +type IPVersion = string + +const ( + IPv4 IPVersion = "4" + IPv6 IPVersion = "6" +) diff --git a/pkg/serverconfigs/location_config.go b/pkg/serverconfigs/location_config.go new file mode 100644 index 0000000..4a7c636 --- /dev/null +++ b/pkg/serverconfigs/location_config.go @@ -0,0 +1,4 @@ +package serverconfigs + +type LocationConfig struct { +} diff --git a/pkg/serverconfigs/network_address_config.go b/pkg/serverconfigs/network_address_config.go new file mode 100644 index 0000000..c34da8c --- /dev/null +++ b/pkg/serverconfigs/network_address_config.go @@ -0,0 +1,70 @@ +package serverconfigs + +import ( + "github.com/iwind/TeaGo/types" + "regexp" + "strconv" + "strings" +) + +var regexpSinglePort = regexp.MustCompile(`^\d+$`) + +// 网络地址配置 +type NetworkAddressConfig struct { + Protocol string `yaml:"protocol" json:"protocol"` // 协议,http、tcp、tcp4、tcp6、unix、udp等 + Host string `yaml:"host" json:"host"` // 主机地址或主机名 + PortRange string `yaml:"portRange" json:"portRange"` // 端口范围,支持 8080、8080-8090、8080:8090 + + minPort int + maxPort int +} + +func (this *NetworkAddressConfig) Init() error { + // 8080 + if regexpSinglePort.MatchString(this.PortRange) { + this.minPort = types.Int(this.PortRange) + this.maxPort = this.minPort + return nil + } + + // 8080:8090 + if strings.Contains(this.PortRange, ":") { + pieces := strings.SplitN(this.PortRange, ":", 2) + minPort := types.Int(pieces[0]) + maxPort := types.Int(pieces[1]) + if minPort > maxPort { + minPort, maxPort = maxPort, minPort + } + this.minPort = minPort + this.maxPort = maxPort + return nil + } + + // 8080-8090 + if strings.Contains(this.PortRange, "-") { + pieces := strings.SplitN(this.PortRange, "-", 2) + minPort := types.Int(pieces[0]) + maxPort := types.Int(pieces[1]) + if minPort > maxPort { + minPort, maxPort = maxPort, minPort + } + this.minPort = minPort + this.maxPort = maxPort + return nil + } + + return nil +} + +func (this *NetworkAddressConfig) FullAddresses() []string { + if this.Protocol == ProtocolUnix { + return []string{this.Protocol + ":" + this.Host} + } + + result := []string{} + for i := this.minPort; i <= this.maxPort; i++ { + host := this.Host + result = append(result, this.Protocol+"://"+host+":"+strconv.Itoa(i)) + } + return result +} diff --git a/pkg/serverconfigs/network_address_config_test.go b/pkg/serverconfigs/network_address_config_test.go new file mode 100644 index 0000000..bb14dba --- /dev/null +++ b/pkg/serverconfigs/network_address_config_test.go @@ -0,0 +1,57 @@ +package serverconfigs + +import "testing" + +func TestNetworkAddressConfig_FullAddresses(t *testing.T) { + { + addr := &NetworkAddressConfig{ + Protocol: "http", + Host: "127.0.0.1", + PortRange: "8080", + } + err := addr.Init() + if err != nil { + t.Fatal(err) + } + t.Log(addr.FullAddresses()) + } + + { + addr := &NetworkAddressConfig{ + Protocol: "http", + Host: "127.0.0.1", + PortRange: "8080:8090", + } + err := addr.Init() + if err != nil { + t.Fatal(err) + } + t.Log(addr.FullAddresses()) + } + + { + addr := &NetworkAddressConfig{ + Protocol: "http", + Host: "127.0.0.1", + PortRange: "8080-8090", + } + err := addr.Init() + if err != nil { + t.Fatal(err) + } + t.Log(addr.FullAddresses()) + } + + { + addr := &NetworkAddressConfig{ + Protocol: "http", + Host: "127.0.0.1", + PortRange: "8080-8070", + } + err := addr.Init() + if err != nil { + t.Fatal(err) + } + t.Log(addr.FullAddresses()) + } +} diff --git a/pkg/serverconfigs/origin_server_config.go b/pkg/serverconfigs/origin_server_config.go new file mode 100644 index 0000000..4ab1cce --- /dev/null +++ b/pkg/serverconfigs/origin_server_config.go @@ -0,0 +1,176 @@ +package serverconfigs + +import ( + "crypto/tls" + "errors" + "fmt" + "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/shared" + "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/sslconfigs" + "net" + "strconv" + "strings" + "time" +) + +// 源站服务配置 +type OriginServerConfig struct { + Id int64 `yaml:"id" json:"id"` // ID + IsOn bool `yaml:"isOn" json:"isOn"` // 是否启用 TODO + Version int `yaml:"version" json:"version"` // 版本 + Name string `yaml:"name" json:"name"` // 名称 TODO + Addr *NetworkAddressConfig `yaml:"addr" json:"addr"` // 地址 + Description string `yaml:"description" json:"description"` // 描述 TODO + Code string `yaml:"code" json:"code"` // 代号 TODO + + Weight uint `yaml:"weight" json:"weight"` // 权重 TODO + IsBackup bool `yaml:"backup" json:"isBackup"` // 是否为备份 TODO + ConnTimeout shared.TimeDuration `yaml:"failTimeout" json:"failTimeout"` // 连接失败超时 TODO + ReadTimeout shared.TimeDuration `yaml:"readTimeout" json:"readTimeout"` // 读取超时时间 TODO + IdleTimeout shared.TimeDuration `yaml:"idleTimeout" json:"idleTimeout"` // 空闲连接超时时间 TODO + MaxFails int32 `yaml:"maxFails" json:"maxFails"` // 最多失败次数 TODO + CurrentFails int32 `yaml:"currentFails" json:"currentFails"` // 当前已失败次数 TODO + MaxConns int32 `yaml:"maxConns" json:"maxConns"` // 最大并发连接数 TODO + CurrentConns int32 `yaml:"currentConns" json:"currentConns"` // 当前连接数 TODO + MaxIdleConns int32 `yaml:"idleConns" json:"idleConns"` // 最大空闲连接数 TODO + + IsDown bool `yaml:"down" json:"isDown"` // 是否下线 TODO + DownTime time.Time `yaml:"downTime,omitempty" json:"downTime,omitempty"` // 下线时间 TODO + + RequestURI string `yaml:"requestURI" json:"requestURI"` // 转发后的请求URI TODO + Host string `yaml:"host" json:"host"` // 自定义主机名 TODO + + RequestHeaders *shared.HTTPHeadersConfig `yaml:"requestHeaders" json:"requestHeaders"` // 请求Header设置 TODO + ResponseHeaders *shared.HTTPHeadersConfig `yaml:"responseHeaders" json:"responseHeaders"` + + // 健康检查URL,目前支持: + // - http|https 返回2xx-3xx认为成功 + HealthCheck *HealthCheckConfig `yaml:"healthCheck" json:"healthCheck"` + + Cert *sslconfigs.SSLCertConfig `yaml:"cert" json:"cert"` // 请求源服务器用的证书 + + // ftp + FTP *OriginServerFTPConfig `yaml:"ftp" json:"ftp"` + + connTimeoutDuration time.Duration + readTimeoutDuration time.Duration + idleTimeoutDuration time.Duration + + hasRequestURI bool + requestPath string + requestArgs string + + hasRequestHeaders bool + hasResponseHeaders bool + + hasHost bool + + uniqueKey string + + hasAddrVariables bool // 地址中是否含有变量 +} + +// 校验 +func (this *OriginServerConfig) Init() error { + // 证书 + if this.Cert != nil { + err := this.Cert.Init() + if err != nil { + return err + } + } + + // unique key + this.uniqueKey = strconv.FormatInt(this.Id, 10) + "@" + fmt.Sprintf("%d", this.Version) + + // failTimeout + this.connTimeoutDuration = this.ConnTimeout.Duration() + + // readTimeout + this.readTimeoutDuration = this.ReadTimeout.Duration() + + // idleTimeout + this.idleTimeoutDuration = this.IdleTimeout.Duration() + + // Headers + if this.RequestHeaders != nil { + err := this.RequestHeaders.Init() + if err != nil { + return err + } + } + if this.ResponseHeaders != nil { + err := this.ResponseHeaders.Init() + if err != nil { + return err + } + } + + // request uri + if len(this.RequestURI) == 0 || this.RequestURI == "${requestURI}" { + this.hasRequestURI = false + } else { + this.hasRequestURI = true + + if strings.Contains(this.RequestURI, "?") { + pieces := strings.SplitN(this.RequestURI, "?", -1) + this.requestPath = pieces[0] + this.requestArgs = pieces[1] + } else { + this.requestPath = this.RequestURI + } + } + + // TODO init health check + + // headers + this.hasRequestHeaders = this.RequestHeaders != nil && !this.RequestHeaders.IsEmpty() + this.hasRequestHeaders = this.ResponseHeaders != nil && !this.ResponseHeaders.IsEmpty() + + // host + this.hasHost = len(this.Host) > 0 + + // variables + // TODO 在host和port中支持变量 + this.hasAddrVariables = false + + return nil +} + +// 候选对象代号 +func (this *OriginServerConfig) CandidateCodes() []string { + codes := []string{strconv.FormatInt(this.Id, 10)} + if len(this.Code) > 0 { + codes = append(codes, this.Code) + } + return codes +} + +// 候选对象权重 +func (this *OriginServerConfig) CandidateWeight() uint { + return this.Weight +} + +// 连接源站 +func (this *OriginServerConfig) Connect() (net.Conn, error) { + if this.Addr == nil { + return nil, errors.New("origin server address should not be empty") + } + + switch this.Addr.Protocol { + case "", ProtocolTCP: + // TODO 支持TCP4/TCP6 + // TODO 支持指定特定网卡 + // TODO Addr支持端口范围,如果有多个端口时,随机一个端口使用 + return net.DialTimeout("tcp", this.Addr.Host+":"+this.Addr.PortRange, this.connTimeoutDuration) + case ProtocolTLS: + // TODO 支持TCP4/TCP6 + // TODO 支持指定特定网卡 + // TODO Addr支持端口范围,如果有多个端口时,随机一个端口使用 + // TODO 支持使用证书 + return tls.Dial("tcp", this.Addr.Host+":"+this.Addr.PortRange, &tls.Config{}) + } + + // TODO 支持从Unix、Pipe、HTTP、HTTPS中读取数据 + + return nil, errors.New("invalid scheme '" + this.Addr.Protocol + "'") +} diff --git a/pkg/serverconfigs/origin_server_ftp.go b/pkg/serverconfigs/origin_server_ftp.go new file mode 100644 index 0000000..4d4f309 --- /dev/null +++ b/pkg/serverconfigs/origin_server_ftp.go @@ -0,0 +1,8 @@ +package serverconfigs + +// FTP源站配置 +type OriginServerFTPConfig struct { + Username string `yaml:"username" json:"username"` // 用户名 + Password string `yaml:"password" json:"password"` // 密码 + Dir string `yaml:"dir" json:"dir"` // 目录 +} diff --git a/pkg/serverconfigs/origin_server_group_config.go b/pkg/serverconfigs/origin_server_group_config.go new file mode 100644 index 0000000..08701ea --- /dev/null +++ b/pkg/serverconfigs/origin_server_group_config.go @@ -0,0 +1,6 @@ +package serverconfigs + +// TODO 需要实现 +type OriginServerGroupConfig struct { + Origins []*OriginServerConfig `yaml:"origins" json:"origins"` // 源站列表 +} diff --git a/pkg/serverconfigs/protocol.go b/pkg/serverconfigs/protocol.go new file mode 100644 index 0000000..d2dfcf7 --- /dev/null +++ b/pkg/serverconfigs/protocol.go @@ -0,0 +1,29 @@ +package serverconfigs + +type Protocol = string + +const ( + ProtocolHTTP Protocol = "http" + ProtocolHTTPS Protocol = "https" + ProtocolTCP Protocol = "tcp" + ProtocolTLS Protocol = "tls" + ProtocolUnix Protocol = "unix" + ProtocolUDP Protocol = "udp" + + // 子协议 + ProtocolHTTP4 Protocol = "http4" + ProtocolHTTP6 Protocol = "http6" + + ProtocolHTTPS4 Protocol = "https4" + ProtocolHTTPS6 Protocol = "https6" + + ProtocolTCP4 Protocol = "tcp4" + ProtocolTCP6 Protocol = "tcp6" + + ProtocolTLS4 Protocol = "tls4" + ProtocolTLS6 Protocol = "tls6" +) + +func AllProtocols() []Protocol { + return []Protocol{ProtocolHTTP, ProtocolHTTPS, ProtocolTCP, ProtocolTLS, ProtocolUnix, ProtocolUDP, ProtocolHTTP4, ProtocolHTTP6, ProtocolHTTPS4, ProtocolHTTPS6, ProtocolTCP4, ProtocolTCP6, ProtocolTLS4, ProtocolTLS6} +} diff --git a/pkg/serverconfigs/protocol_base.go b/pkg/serverconfigs/protocol_base.go new file mode 100644 index 0000000..c0f6a05 --- /dev/null +++ b/pkg/serverconfigs/protocol_base.go @@ -0,0 +1,32 @@ +package serverconfigs + +// 协议基础数据结构 +type BaseProtocol struct { + IsOn bool `yaml:"isOn" json:"isOn"` // 是否开启 + Listen []*NetworkAddressConfig `yaml:"listen" json:"listen"` // 绑定的网络地址 +} + +// 初始化 +func (this *BaseProtocol) InitBase() error { + for _, addr := range this.Listen { + err := addr.Init() + if err != nil { + return err + } + } + return nil +} + +// 获取完整的地址列表 +func (this *BaseProtocol) FullAddresses() []string { + result := []string{} + for _, addr := range this.Listen { + result = append(result, addr.FullAddresses()...) + } + return result +} + +// 添加地址 +func (this *BaseProtocol) AddListen(addr ...*NetworkAddressConfig) { + this.Listen = append(this.Listen, addr...) +} diff --git a/pkg/serverconfigs/protocol_http_config.go b/pkg/serverconfigs/protocol_http_config.go new file mode 100644 index 0000000..9af8a8e --- /dev/null +++ b/pkg/serverconfigs/protocol_http_config.go @@ -0,0 +1,14 @@ +package serverconfigs + +type HTTPProtocolConfig struct { + BaseProtocol `yaml:",inline"` +} + +func (this *HTTPProtocolConfig) Init() error { + err := this.InitBase() + if err != nil { + return err + } + + return nil +} diff --git a/pkg/serverconfigs/protocol_https_config.go b/pkg/serverconfigs/protocol_https_config.go new file mode 100644 index 0000000..cf15247 --- /dev/null +++ b/pkg/serverconfigs/protocol_https_config.go @@ -0,0 +1,24 @@ +package serverconfigs + +import "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/sslconfigs" + +// TLS Version +type TLSVersion = string + +// Cipher Suites +type TLSCipherSuite = string + +type HTTPSProtocolConfig struct { + BaseProtocol `yaml:",inline"` + + SSL *sslconfigs.SSLConfig `yaml:"ssl"` +} + +func (this *HTTPSProtocolConfig) Init() error { + err := this.InitBase() + if err != nil { + return err + } + + return nil +} diff --git a/pkg/serverconfigs/protocol_tcp_config.go b/pkg/serverconfigs/protocol_tcp_config.go new file mode 100644 index 0000000..6d6fd09 --- /dev/null +++ b/pkg/serverconfigs/protocol_tcp_config.go @@ -0,0 +1,14 @@ +package serverconfigs + +type TCPProtocolConfig struct { + BaseProtocol `yaml:",inline"` +} + +func (this *TCPProtocolConfig) Init() error { + err := this.InitBase() + if err != nil { + return err + } + + return nil +} diff --git a/pkg/serverconfigs/protocol_tls_config.go b/pkg/serverconfigs/protocol_tls_config.go new file mode 100644 index 0000000..b0f852e --- /dev/null +++ b/pkg/serverconfigs/protocol_tls_config.go @@ -0,0 +1,19 @@ +package serverconfigs + +import "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/sslconfigs" + +type TLSProtocolConfig struct { + BaseProtocol `yaml:",inline"` + + SSL *sslconfigs.SSLConfig `yaml:"ssl" json:"ssl"` +} + +// 初始化 +func (this *TLSProtocolConfig) Init() error { + err := this.InitBase() + if err != nil { + return err + } + + return nil +} diff --git a/pkg/serverconfigs/protocol_udp_config.go b/pkg/serverconfigs/protocol_udp_config.go new file mode 100644 index 0000000..29dc854 --- /dev/null +++ b/pkg/serverconfigs/protocol_udp_config.go @@ -0,0 +1,14 @@ +package serverconfigs + +type UDPProtocolConfig struct { + BaseProtocol `yaml:",inline"` +} + +func (this *UDPProtocolConfig) Init() error { + err := this.InitBase() + if err != nil { + return err + } + + return nil +} diff --git a/pkg/serverconfigs/protocol_unix_config.go b/pkg/serverconfigs/protocol_unix_config.go new file mode 100644 index 0000000..63ac398 --- /dev/null +++ b/pkg/serverconfigs/protocol_unix_config.go @@ -0,0 +1,14 @@ +package serverconfigs + +type UnixProtocolConfig struct { + BaseProtocol `yaml:",inline"` +} + +func (this *UnixProtocolConfig) Init() error { + err := this.InitBase() + if err != nil { + return err + } + + return nil +} diff --git a/pkg/serverconfigs/reverse_proxy_config.go b/pkg/serverconfigs/reverse_proxy_config.go new file mode 100644 index 0000000..96390e8 --- /dev/null +++ b/pkg/serverconfigs/reverse_proxy_config.go @@ -0,0 +1,105 @@ +package serverconfigs + +import ( + "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/scheduling" + "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/shared" + "sync" +) + +// 反向代理设置 +type ReverseProxyConfig struct { + IsOn bool `yaml:"isOn" json:"isOn"` // 是否启用 TODO + Origins []*OriginServerConfig `yaml:"origins" json:"origins"` // 源站列表 + Scheduling *SchedulingConfig `yaml:"scheduling" json:"scheduling"` // 调度算法选项 + + hasOrigins bool + schedulingIsBackup bool + schedulingObject scheduling.SchedulingInterface + schedulingLocker sync.Mutex +} + +// 初始化 +func (this *ReverseProxyConfig) Init() error { + this.hasOrigins = len(this.Origins) > 0 + + for _, origin := range this.Origins { + err := origin.Init() + if err != nil { + return err + } + } + + // scheduling + this.SetupScheduling(false) + + return nil +} + +// 取得下一个可用的后端服务 +func (this *ReverseProxyConfig) NextOrigin(call *shared.RequestCall) *OriginServerConfig { + this.schedulingLocker.Lock() + defer this.schedulingLocker.Unlock() + + if this.schedulingObject == nil { + return nil + } + + if this.Scheduling != nil && call != nil && call.Options != nil { + for k, v := range this.Scheduling.Options { + call.Options[k] = v + } + } + + candidate := this.schedulingObject.Next(call) + if candidate == nil { + // 启用备用服务器 + if !this.schedulingIsBackup { + this.SetupScheduling(true) + + candidate = this.schedulingObject.Next(call) + if candidate == nil { + return nil + } + } + + if candidate == nil { + return nil + } + } + + return candidate.(*OriginServerConfig) +} + +// 设置调度算法 +func (this *ReverseProxyConfig) SetupScheduling(isBackup bool) { + if !isBackup { + this.schedulingLocker.Lock() + defer this.schedulingLocker.Unlock() + } + this.schedulingIsBackup = isBackup + + if this.Scheduling == nil { + this.schedulingObject = &scheduling.RandomScheduling{} + } else { + typeCode := this.Scheduling.Code + s := scheduling.FindSchedulingType(typeCode) + if s == nil { + this.Scheduling = nil + this.schedulingObject = &scheduling.RandomScheduling{} + } else { + this.schedulingObject = s["instance"].(scheduling.SchedulingInterface) + } + } + + for _, origin := range this.Origins { + if origin.IsOn && !origin.IsDown { + if isBackup && origin.IsBackup { + this.schedulingObject.Add(origin) + } else if !isBackup && !origin.IsBackup { + this.schedulingObject.Add(origin) + } + } + } + + this.schedulingObject.Start() +} diff --git a/pkg/serverconfigs/scheduling/candidate.go b/pkg/serverconfigs/scheduling/candidate.go new file mode 100644 index 0000000..701e3c0 --- /dev/null +++ b/pkg/serverconfigs/scheduling/candidate.go @@ -0,0 +1,10 @@ +package scheduling + +// 候选对象接口 +type CandidateInterface interface { + // 权重 + CandidateWeight() uint + + // 代号 + CandidateCodes() []string +} diff --git a/pkg/serverconfigs/scheduling/scheduling.go b/pkg/serverconfigs/scheduling/scheduling.go new file mode 100644 index 0000000..0fe1a3c --- /dev/null +++ b/pkg/serverconfigs/scheduling/scheduling.go @@ -0,0 +1,39 @@ +package scheduling + +import ( + "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/shared" + "github.com/iwind/TeaGo/maps" +) + +// 调度算法接口 +type SchedulingInterface interface { + // 是否有候选对象 + HasCandidates() bool + + // 添加候选对象 + Add(candidate ...CandidateInterface) + + // 启动 + Start() + + // 查找下一个候选对象 + Next(call *shared.RequestCall) CandidateInterface + + // 获取简要信息 + Summary() maps.Map +} + +// 调度算法基础类 +type Scheduling struct { + Candidates []CandidateInterface +} + +// 判断是否有候选对象 +func (this *Scheduling) HasCandidates() bool { + return len(this.Candidates) > 0 +} + +// 添加候选对象 +func (this *Scheduling) Add(candidate ...CandidateInterface) { + this.Candidates = append(this.Candidates, candidate...) +} diff --git a/pkg/serverconfigs/scheduling/scheduling_hash.go b/pkg/serverconfigs/scheduling/scheduling_hash.go new file mode 100644 index 0000000..2eba100 --- /dev/null +++ b/pkg/serverconfigs/scheduling/scheduling_hash.go @@ -0,0 +1,45 @@ +package scheduling + +import ( + "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/shared" + "github.com/iwind/TeaGo/maps" + "hash/crc32" +) + +// Hash调度算法 +type HashScheduling struct { + Scheduling + + count uint32 +} + +// 启动 +func (this *HashScheduling) Start() { + this.count = uint32(len(this.Candidates)) +} + +// 获取下一个候选对象 +func (this *HashScheduling) Next(call *shared.RequestCall) CandidateInterface { + if this.count == 0 { + return nil + } + + key := call.Options.GetString("key") + + if call.Formatter != nil { + key = call.Formatter(key) + } + + sum := crc32.ChecksumIEEE([]byte(key)) + return this.Candidates[sum%this.count] +} + +// 获取简要信息 +func (this *HashScheduling) Summary() maps.Map { + return maps.Map{ + "code": "hash", + "name": "Hash算法", + "description": "根据自定义的键值的Hash值分配后端服务器", + "networks": []string{"http"}, + } +} diff --git a/pkg/serverconfigs/scheduling/scheduling_hash_test.go b/pkg/serverconfigs/scheduling/scheduling_hash_test.go new file mode 100644 index 0000000..f766886 --- /dev/null +++ b/pkg/serverconfigs/scheduling/scheduling_hash_test.go @@ -0,0 +1,45 @@ +package scheduling + +import ( + "fmt" + "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/shared" + "math/rand" + "testing" + "time" +) + +func TestHashScheduling_Next(t *testing.T) { + s := &HashScheduling{} + s.Add(&TestCandidate{ + Name: "a", + Weight: 10, + }) + s.Add(&TestCandidate{ + Name: "b", + Weight: 10, + }) + s.Add(&TestCandidate{ + Name: "c", + Weight: 10, + }) + s.Add(&TestCandidate{ + Name: "d", + Weight: 30, + }) + s.Start() + + hits := map[string]uint{} + for _, c := range s.Candidates { + hits[c.(*TestCandidate).Name] = 0 + } + + rand.Seed(time.Now().UnixNano()) + for i := 0; i < 1000000; i ++ { + call := shared.NewRequestCall() + call.Options["key"] = "192.168.1." + fmt.Sprintf("%d", rand.Int()) + + c := s.Next(call) + hits[c.(*TestCandidate).Name] ++ + } + t.Log(hits) +} diff --git a/pkg/serverconfigs/scheduling/scheduling_random.go b/pkg/serverconfigs/scheduling/scheduling_random.go new file mode 100644 index 0000000..1ea4c4a --- /dev/null +++ b/pkg/serverconfigs/scheduling/scheduling_random.go @@ -0,0 +1,78 @@ +package scheduling + +import ( + "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/shared" + "github.com/iwind/TeaGo/maps" + "math" + "math/rand" + "time" +) + +// 随机调度算法 +type RandomScheduling struct { + Scheduling + + array []CandidateInterface + count uint // 实际总的服务器数 +} + +// 启动 +func (this *RandomScheduling) Start() { + sumWeight := uint(0) + for _, c := range this.Candidates { + weight := c.CandidateWeight() + if weight == 0 { + weight = 1 + } else if weight > 10000 { + weight = 10000 + } + sumWeight += weight + } + + if sumWeight == 0 { + return + } + + for _, c := range this.Candidates { + weight := c.CandidateWeight() + if weight == 0 { + weight = 1 + } else if weight > 10000 { + weight = 10000 + } + count := uint(0) + if sumWeight <= 1000 { + count = weight + } else { + count = uint(math.Round(float64(weight*10000) / float64(sumWeight))) // 1% 产生 100个数据,最多支持10000个服务器 + } + for i := uint(0); i < count; i++ { + this.array = append(this.array, c) + } + this.count += count + } + + rand.Seed(time.Now().UnixNano()) +} + +// 获取下一个候选对象 +func (this *RandomScheduling) Next(call *shared.RequestCall) CandidateInterface { + if this.count == 0 { + return nil + } + if this.count == 1 { + return this.array[0] + } + index := rand.Int() % int(this.count) + return this.array[index] +} + +// 获取简要信息 +func (this *RandomScheduling) Summary() maps.Map { + return maps.Map{ + "code": "random", + "name": "Random随机算法", + "description": "根据权重设置随机分配后端服务器", + "networks": []string{"http", "tcp"}, + } +} diff --git a/pkg/serverconfigs/scheduling/scheduling_random_test.go b/pkg/serverconfigs/scheduling/scheduling_random_test.go new file mode 100644 index 0000000..4b89e90 --- /dev/null +++ b/pkg/serverconfigs/scheduling/scheduling_random_test.go @@ -0,0 +1,79 @@ +package scheduling + +import ( + "sync" + "testing" +) + +type TestCandidate struct { + Name string + Weight uint +} + +func (this *TestCandidate) CandidateWeight() uint { + return this.Weight +} + +func (this *TestCandidate) CandidateCodes() []string { + return []string{this.Name} +} + +func TestRandomScheduling_Next(t *testing.T) { + s := &RandomScheduling{} + s.Add(&TestCandidate{ + Name: "a", + Weight: 10, + }) + s.Add(&TestCandidate{ + Name: "b", + Weight: 10, + }) + s.Add(&TestCandidate{ + Name: "c", + Weight: 10, + }) + s.Add(&TestCandidate{ + Name: "d", + Weight: 30, + }) + s.Start() + + /**for _, c := range s.array { + t.Log(c.(*TestCandidate).Name, ":", c.CandidateWeight()) + }**/ + + hits := map[string]uint{} + for _, c := range s.array { + hits[c.(*TestCandidate).Name] = 0 + } + + t.Log("count:", s.count, "array length:", len(s.array)) + + var locker sync.Mutex + var wg = sync.WaitGroup{} + wg.Add(100 * 10000) + for i := 0; i < 100*10000; i ++ { + go func() { + defer wg.Done() + + c := s.Next(nil) + + locker.Lock() + defer locker.Unlock() + hits[c.(*TestCandidate).Name] ++ + }() + } + wg.Wait() + + t.Log(hits) +} + +func TestRandomScheduling_NextZero(t *testing.T) { + s := &RandomScheduling{} + s.Add(&TestCandidate{ + Name: "a", + Weight: 0, + }) + s.Start() + t.Log(s.Next(nil)) +} diff --git a/pkg/serverconfigs/scheduling/scheduling_round_robin.go b/pkg/serverconfigs/scheduling/scheduling_round_robin.go new file mode 100644 index 0000000..6ffce55 --- /dev/null +++ b/pkg/serverconfigs/scheduling/scheduling_round_robin.go @@ -0,0 +1,80 @@ +package scheduling + +import ( + "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/shared" + "github.com/iwind/TeaGo/lists" + "github.com/iwind/TeaGo/maps" + "sync" +) + +// 轮询调度算法 +type RoundRobinScheduling struct { + Scheduling + + rawWeights []uint + currentWeights []uint + count uint + index uint + + locker sync.Mutex +} + +// 启动 +func (this *RoundRobinScheduling) Start() { + lists.Sort(this.Candidates, func(i int, j int) bool { + c1 := this.Candidates[i] + c2 := this.Candidates[j] + return c1.CandidateWeight() > c2.CandidateWeight() + }) + + for _, c := range this.Candidates { + weight := c.CandidateWeight() + if weight == 0 { + weight = 1 + } else if weight > 10000 { + weight = 10000 + } + this.rawWeights = append(this.rawWeights, weight) + } + + this.currentWeights = append([]uint{}, this.rawWeights...) + this.count = uint(len(this.Candidates)) +} + +// 获取下一个候选对象 +func (this *RoundRobinScheduling) Next(call *shared.RequestCall) CandidateInterface { + if this.count == 0 { + return nil + } + this.locker.Lock() + defer this.locker.Unlock() + + if this.index > this.count-1 { + this.index = 0 + } + weight := this.currentWeights[this.index] + + // 已经一轮了,则重置状态 + if weight == 0 { + if this.currentWeights[0] == 0 { + this.currentWeights = append([]uint{}, this.rawWeights...) + } + this.index = 0 + weight = this.currentWeights[this.index] + } + + c := this.Candidates[this.index] + this.currentWeights[this.index] -- + this.index++ + return c +} + +// 获取简要信息 +func (this *RoundRobinScheduling) Summary() maps.Map { + return maps.Map{ + "code": "roundRobin", + "name": "RoundRobin轮询算法", + "description": "根据权重,依次分配后端服务器", + "networks": []string{"http", "tcp"}, + } +} diff --git a/pkg/serverconfigs/scheduling/scheduling_round_robin_test.go b/pkg/serverconfigs/scheduling/scheduling_round_robin_test.go new file mode 100644 index 0000000..20c8152 --- /dev/null +++ b/pkg/serverconfigs/scheduling/scheduling_round_robin_test.go @@ -0,0 +1,101 @@ +package scheduling + +import "testing" + +func TestRoundRobinScheduling_Next(t *testing.T) { + s := &RoundRobinScheduling{} + s.Add(&TestCandidate{ + Name: "a", + Weight: 5, + }) + s.Add(&TestCandidate{ + Name: "b", + Weight: 10, + }) + s.Add(&TestCandidate{ + Name: "c", + Weight: 20, + }) + s.Add(&TestCandidate{ + Name: "d", + Weight: 30, + }) + s.Start() + + for _, c := range s.Candidates { + t.Log(c.(*TestCandidate).Name, c.CandidateWeight()) + } + + t.Log(s.currentWeights) + + for i := 0; i < 100; i ++ { + t.Log("===", "round", i, "===") + t.Log(s.Next(nil)) + t.Log(s.currentWeights) + t.Log(s.rawWeights) + } +} + +func TestRoundRobinScheduling_Two(t *testing.T) { + s := &RoundRobinScheduling{} + s.Add(&TestCandidate{ + Name: "a", + Weight: 10, + }) + s.Add(&TestCandidate{ + Name: "b", + Weight: 10, + }) + s.Start() + + for _, c := range s.Candidates { + t.Log(c.(*TestCandidate).Name, c.CandidateWeight()) + } + + t.Log(s.currentWeights) + + for i := 0; i < 100; i ++ { + t.Log("===", "round", i, "===") + t.Log(s.Next(nil)) + t.Log(s.currentWeights) + t.Log(s.rawWeights) + } +} + +func TestRoundRobinScheduling_NextPerformance(t *testing.T) { + s := &RoundRobinScheduling{} + s.Add(&TestCandidate{ + Name: "a", + Weight: 1, + }) + s.Add(&TestCandidate{ + Name: "b", + Weight: 2, + }) + s.Add(&TestCandidate{ + Name: "c", + Weight: 3, + }) + s.Add(&TestCandidate{ + Name: "d", + Weight: 6, + }) + s.Start() + + for _, c := range s.Candidates { + t.Log(c.(*TestCandidate).Name, c.CandidateWeight()) + } + + t.Log(s.currentWeights) + + hits := map[string]uint{} + for _, c := range s.Candidates { + hits[c.(*TestCandidate).Name] = 0 + } + for i := 0; i < 100*10000; i ++ { + c := s.Next(nil) + hits[c.(*TestCandidate).Name] ++ + } + + t.Log(hits) +} diff --git a/pkg/serverconfigs/scheduling/scheduling_sticky.go b/pkg/serverconfigs/scheduling/scheduling_sticky.go new file mode 100644 index 0000000..9a1b06a --- /dev/null +++ b/pkg/serverconfigs/scheduling/scheduling_sticky.go @@ -0,0 +1,106 @@ +package scheduling + +import ( + "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/shared" + "github.com/iwind/TeaGo/maps" + "math/rand" + "net/http" + "time" +) + +// Sticky调度算法 +type StickyScheduling struct { + Scheduling + + count uint32 + mapping map[string]CandidateInterface // code => candidate +} + +// 启动 +func (this *StickyScheduling) Start() { + this.mapping = map[string]CandidateInterface{} + for _, c := range this.Candidates { + for _, code := range c.CandidateCodes() { + this.mapping[code] = c + } + } + + this.count = uint32(len(this.Candidates)) + rand.Seed(time.Now().UnixNano()) +} + +// 获取下一个候选对象 +func (this *StickyScheduling) Next(call *shared.RequestCall) CandidateInterface { + if this.count == 0 { + return nil + } + typeCode := call.Options.GetString("type") + param := call.Options.GetString("param") + + if call.Request == nil { + return this.Candidates[uint32(rand.Int())%this.count] + } + + code := "" + if typeCode == "cookie" { + cookie, err := call.Request.Cookie(param) + if err == nil { + code = cookie.Value + } + } else if typeCode == "header" { + code = call.Request.Header.Get(param) + } else if typeCode == "argument" { + code = call.Request.URL.Query().Get(param) + } + + matched := false + var c CandidateInterface = nil + + defer func() { + if !matched && c != nil { + codes := c.CandidateCodes() + if len(codes) == 0 { + return + } + if typeCode == "cookie" { + call.AddResponseCall(func(resp http.ResponseWriter) { + http.SetCookie(resp, &http.Cookie{ + Name: param, + Value: codes[0], + Path: "/", + Expires: time.Now().AddDate(0, 1, 0), + }) + }) + } else { + call.AddResponseCall(func(resp http.ResponseWriter) { + resp.Header().Set(param, codes[0]) + }) + } + } + }() + + if len(code) == 0 { + c = this.Candidates[uint32(rand.Int())%this.count] + return c + } + + found := false + c, found = this.mapping[code] + if !found { + c = this.Candidates[uint32(rand.Int())%this.count] + return c + } + + matched = true + return c +} + +// 获取简要信息 +func (this *StickyScheduling) Summary() maps.Map { + return maps.Map{ + "code": "sticky", + "name": "Sticky算法", + "description": "利用Cookie、URL参数或者HTTP Header来指定后端服务器", + "networks": []string{"http"}, + } +} diff --git a/pkg/serverconfigs/scheduling/scheduling_sticky_test.go b/pkg/serverconfigs/scheduling/scheduling_sticky_test.go new file mode 100644 index 0000000..f7346fc --- /dev/null +++ b/pkg/serverconfigs/scheduling/scheduling_sticky_test.go @@ -0,0 +1,128 @@ +package scheduling + +import ( + "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/shared" + "github.com/iwind/TeaGo/maps" + "net/http" + "testing" +) + +func TestStickyScheduling_NextArgument(t *testing.T) { + s := &StickyScheduling{} + s.Add(&TestCandidate{ + Name: "a", + Weight: 1, + }) + s.Add(&TestCandidate{ + Name: "b", + Weight: 2, + }) + s.Add(&TestCandidate{ + Name: "c", + Weight: 3, + }) + s.Add(&TestCandidate{ + Name: "d", + Weight: 6, + }) + s.Start() + + t.Log(s.mapping) + + req, err := http.NewRequest("GET", "http://www.example.com/?backend=c", nil) + if err != nil { + t.Fatal(err) + } + + options := maps.Map{ + "type": "argument", + "param": "backend", + } + call := shared.NewRequestCall() + call.Request = req + call.Options = options + t.Log(s.Next(call)) + t.Log(options) +} + +func TestStickyScheduling_NextCookie(t *testing.T) { + s := &StickyScheduling{} + s.Add(&TestCandidate{ + Name: "a", + Weight: 1, + }) + s.Add(&TestCandidate{ + Name: "b", + Weight: 2, + }) + s.Add(&TestCandidate{ + Name: "c", + Weight: 3, + }) + s.Add(&TestCandidate{ + Name: "d", + Weight: 6, + }) + s.Start() + + t.Log(s.mapping) + + req, err := http.NewRequest("GET", "http://www.example.com/?backend=c", nil) + if err != nil { + t.Fatal(err) + } + + req.AddCookie(&http.Cookie{ + Name: "backend", + Value: "c", + }) + + options := maps.Map{ + "type": "cookie", + "param": "backend", + } + call := shared.NewRequestCall() + call.Request = req + call.Options = options + t.Log(s.Next(call)) + t.Log(options) +} + +func TestStickyScheduling_NextHeader(t *testing.T) { + s := &StickyScheduling{} + s.Add(&TestCandidate{ + Name: "a", + Weight: 1, + }) + s.Add(&TestCandidate{ + Name: "b", + Weight: 2, + }) + s.Add(&TestCandidate{ + Name: "c", + Weight: 3, + }) + s.Add(&TestCandidate{ + Name: "d", + Weight: 6, + }) + s.Start() + + t.Log(s.mapping) + + req, err := http.NewRequest("GET", "http://www.example.com/?backend=c", nil) + if err != nil { + t.Fatal(err) + } + req.Header.Set("backend", "c") + + options := maps.Map{ + "type": "header", + "param": "backend", + } + call := shared.NewRequestCall() + call.Request = req + call.Options = options + t.Log(s.Next(call)) + t.Log(options) +} diff --git a/pkg/serverconfigs/scheduling/utils.go b/pkg/serverconfigs/scheduling/utils.go new file mode 100644 index 0000000..aa44d98 --- /dev/null +++ b/pkg/serverconfigs/scheduling/utils.go @@ -0,0 +1,28 @@ +package scheduling + +import "github.com/iwind/TeaGo/maps" + +// 所有请求类型 +func AllSchedulingTypes() []maps.Map { + types := []maps.Map{} + for _, s := range []SchedulingInterface{ + new(RandomScheduling), + new(RoundRobinScheduling), + new(HashScheduling), + new(StickyScheduling), + } { + summary := s.Summary() + summary["instance"] = s + types = append(types, summary) + } + return types +} + +func FindSchedulingType(code string) maps.Map { + for _, summary := range AllSchedulingTypes() { + if summary["code"] == code { + return summary + } + } + return nil +} diff --git a/pkg/serverconfigs/scheduling_config.go b/pkg/serverconfigs/scheduling_config.go new file mode 100644 index 0000000..d091b1b --- /dev/null +++ b/pkg/serverconfigs/scheduling_config.go @@ -0,0 +1,14 @@ +package serverconfigs + +import "github.com/iwind/TeaGo/maps" + +// 调度算法配置 +type SchedulingConfig struct { + Code string `yaml:"code" json:"code"` // 类型 + Options maps.Map `yaml:"options" json:"options"` // 选项 +} + +// 获取新对象 +func NewSchedulingConfig() *SchedulingConfig { + return &SchedulingConfig{} +} diff --git a/pkg/serverconfigs/server_config.go b/pkg/serverconfigs/server_config.go new file mode 100644 index 0000000..1a0e7ce --- /dev/null +++ b/pkg/serverconfigs/server_config.go @@ -0,0 +1,192 @@ +package serverconfigs + +import ( + "encoding/json" + "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/sslconfigs" +) + +type ServerConfig struct { + Id string `yaml:"id" json:"id"` // ID + IsOn bool `yaml:"isOn" json:"isOn"` // 是否开启 + Components []*ComponentConfig `yaml:"components" json:"components"` // 组件 + Filters []*FilterConfig `yaml:"filters" json:"filters"` // 过滤器 + Name string `yaml:"name" json:"name"` // 名称 + Description string `yaml:"description" json:"description"` // 描述 + ServerNames []*ServerNameConfig `yaml:"serverNames" json:"serverNames"` // 域名 + + // 前端协议 + HTTP *HTTPProtocolConfig `yaml:"http" json:"http"` // HTTP配置 + HTTPS *HTTPSProtocolConfig `yaml:"https" json:"https"` // HTTPS配置 + TCP *TCPProtocolConfig `yaml:"tcp" json:"tcp"` // TCP配置 + TLS *TLSProtocolConfig `yaml:"tls" json:"tls"` // TLS配置 + Unix *UnixProtocolConfig `yaml:"unix" json:"unix"` // Unix配置 + UDP *UDPProtocolConfig `yaml:"udp" json:"udp"` // UDP配置 + + // Web配置 + Web *WebConfig `yaml:"web" json:"web"` + + // 反向代理配置 + ReverseProxy *ReverseProxyConfig `yaml:"reverseProxy" json:"reverseProxy"` +} + +// 从JSON中解析Server配置 +func NewServerConfigFromJSON(data []byte) (*ServerConfig, error) { + config := &ServerConfig{} + err := json.Unmarshal(data, config) + return config, err +} + +func NewServerConfig() *ServerConfig { + return &ServerConfig{} +} + +func (this *ServerConfig) Init() error { + if this.HTTP != nil { + err := this.HTTP.Init() + if err != nil { + return err + } + } + + if this.HTTPS != nil { + err := this.HTTPS.Init() + if err != nil { + return err + } + } + + if this.TCP != nil { + err := this.TCP.Init() + if err != nil { + return err + } + } + + if this.TLS != nil { + err := this.TLS.Init() + if err != nil { + return err + } + } + + if this.Unix != nil { + err := this.Unix.Init() + if err != nil { + return err + } + } + + if this.UDP != nil { + err := this.UDP.Init() + if err != nil { + return err + } + } + + if this.ReverseProxy != nil { + err := this.ReverseProxy.Init() + if err != nil { + return err + } + } + + return nil +} + +func (this *ServerConfig) FullAddresses() []string { + result := []Protocol{} + if this.HTTP != nil && this.HTTP.IsOn { + result = append(result, this.HTTP.FullAddresses()...) + } + if this.HTTPS != nil && this.HTTPS.IsOn { + result = append(result, this.HTTPS.FullAddresses()...) + } + if this.TCP != nil && this.TCP.IsOn { + result = append(result, this.TCP.FullAddresses()...) + } + if this.TLS != nil && this.TLS.IsOn { + result = append(result, this.TLS.FullAddresses()...) + } + if this.Unix != nil && this.Unix.IsOn { + result = append(result, this.Unix.FullAddresses()...) + } + if this.UDP != nil && this.UDP.IsOn { + result = append(result, this.UDP.FullAddresses()...) + } + + return result +} + +func (this *ServerConfig) Listen() []*NetworkAddressConfig { + result := []*NetworkAddressConfig{} + if this.HTTP != nil { + result = append(result, this.HTTP.Listen...) + } + if this.HTTPS != nil { + result = append(result, this.HTTPS.Listen...) + } + if this.TCP != nil { + result = append(result, this.TCP.Listen...) + } + if this.TLS != nil { + result = append(result, this.TLS.Listen...) + } + if this.Unix != nil { + result = append(result, this.Unix.Listen...) + } + if this.UDP != nil { + result = append(result, this.UDP.Listen...) + } + return result +} + +func (this *ServerConfig) AsJSON() ([]byte, error) { + return json.Marshal(this) +} + +func (this *ServerConfig) IsHTTP() bool { + return this.HTTP != nil || this.HTTPS != nil +} + +func (this *ServerConfig) IsTCP() bool { + return this.TCP != nil || this.TLS != nil +} + +func (this *ServerConfig) IsUnix() bool { + return this.Unix != nil +} + +func (this *ServerConfig) IsUDP() bool { + return this.UDP != nil +} + +// 判断是否和域名匹配 +func (this *ServerConfig) MatchName(name string) bool { + for _, serverName := range this.ServerNames { + if serverName.Match(name) { + return true + } + } + return false +} + +// 判断是否严格匹配 +func (this *ServerConfig) MatchNameStrictly(name string) bool { + for _, serverName := range this.ServerNames { + if serverName.Name == name { + return true + } + } + return false +} + +// SSL信息 +func (this *ServerConfig) SSLConfig() *sslconfigs.SSLConfig { + if this.HTTPS != nil { + return this.HTTPS.SSL + } + if this.TLS != nil { + return this.TLS.SSL + } + return nil +} diff --git a/pkg/serverconfigs/server_config_test.go b/pkg/serverconfigs/server_config_test.go new file mode 100644 index 0000000..33da9e1 --- /dev/null +++ b/pkg/serverconfigs/server_config_test.go @@ -0,0 +1,74 @@ +package serverconfigs + +import "testing" + +func TestServerConfig_Protocols(t *testing.T) { + { + server := NewServerConfig() + t.Log(server.FullAddresses()) + } + + { + server := NewServerConfig() + server.HTTP = &HTTPProtocolConfig{BaseProtocol: BaseProtocol{ + IsOn: true, + Listen: []*NetworkAddressConfig{ + { + Protocol: ProtocolHTTP, + PortRange: "1234", + }, + }, + }} + server.HTTPS = &HTTPSProtocolConfig{BaseProtocol: BaseProtocol{ + IsOn: true, + Listen: []*NetworkAddressConfig{ + { + Protocol: ProtocolUnix, + Host: "/hello.sock", + PortRange: "1235", + }, + }, + }} + server.TCP = &TCPProtocolConfig{BaseProtocol: BaseProtocol{ + IsOn: true, + Listen: []*NetworkAddressConfig{ + { + Protocol: ProtocolHTTPS, + PortRange: "1236", + }, + }, + }} + server.TLS = &TLSProtocolConfig{BaseProtocol: BaseProtocol{ + IsOn: true, + Listen: []*NetworkAddressConfig{ + { + Protocol: ProtocolTCP, + PortRange: "1234", + }, + }, + }} + server.Unix = &UnixProtocolConfig{BaseProtocol: BaseProtocol{ + IsOn: true, + Listen: []*NetworkAddressConfig{ + { + Protocol: ProtocolTLS, + PortRange: "1234", + }, + }, + }} + server.UDP = &UDPProtocolConfig{BaseProtocol: BaseProtocol{ + IsOn: true, + Listen: []*NetworkAddressConfig{ + { + Protocol: ProtocolUDP, + PortRange: "1234", + }, + }, + }} + err := server.Init() + if err != nil { + t.Fatal(err) + } + t.Log(server.FullAddresses()) + } +} diff --git a/pkg/serverconfigs/server_group.go b/pkg/serverconfigs/server_group.go new file mode 100644 index 0000000..0939f40 --- /dev/null +++ b/pkg/serverconfigs/server_group.go @@ -0,0 +1,85 @@ +package serverconfigs + +import "strings" + +type ServerGroup struct { + fullAddr string + Servers []*ServerConfig +} + +func NewServerGroup(fullAddr string) *ServerGroup { + return &ServerGroup{fullAddr: fullAddr} +} + +// 添加服务 +func (this *ServerGroup) Add(server *ServerConfig) { + this.Servers = append(this.Servers, server) +} + +// 获取完整的地址 +func (this *ServerGroup) FullAddr() string { + return this.fullAddr +} + +// 获取当前分组的协议 +func (this *ServerGroup) Protocol() Protocol { + for _, p := range AllProtocols() { + if strings.HasPrefix(this.fullAddr, p+":") { + return p + } + } + return ProtocolHTTP +} + +// 获取当前分组的地址 +func (this *ServerGroup) Addr() string { + protocol := this.Protocol() + if protocol == ProtocolUnix { + return strings.TrimPrefix(this.fullAddr, protocol+":") + } + return strings.TrimPrefix(this.fullAddr, protocol+"://") +} + +// 判断当前分组是否为HTTP +func (this *ServerGroup) IsHTTP() bool { + p := this.Protocol() + return p == ProtocolHTTP || p == ProtocolHTTP4 || p == ProtocolHTTP6 +} + +// 判断当前分组是否为HTTPS +func (this *ServerGroup) IsHTTPS() bool { + p := this.Protocol() + return p == ProtocolHTTPS || p == ProtocolHTTPS4 || p == ProtocolHTTPS6 +} + +// 判断当前分组是否为TCP +func (this *ServerGroup) IsTCP() bool { + p := this.Protocol() + return p == ProtocolTCP || p == ProtocolTCP4 || p == ProtocolTCP6 +} + +// 判断当前分组是否为TLS +func (this *ServerGroup) IsTLS() bool { + p := this.Protocol() + return p == ProtocolTLS || p == ProtocolTLS4 || p == ProtocolTLS6 +} + +// 判断当前分组是否为Unix +func (this *ServerGroup) IsUnix() bool { + p := this.Protocol() + return p == ProtocolUnix +} + +// 判断当前分组是否为UDP +func (this *ServerGroup) IsUDP() bool { + p := this.Protocol() + return p == ProtocolUDP +} + +// 获取第一个Server +func (this *ServerGroup) FirstServer() *ServerConfig { + if len(this.Servers) > 0 { + return this.Servers[0] + } + return nil +} diff --git a/pkg/serverconfigs/server_group_test.go b/pkg/serverconfigs/server_group_test.go new file mode 100644 index 0000000..2340750 --- /dev/null +++ b/pkg/serverconfigs/server_group_test.go @@ -0,0 +1,34 @@ +package serverconfigs + +import ( + "github.com/iwind/TeaGo/assert" + "testing" +) + +func TestServerGroup_Protocol(t *testing.T) { + a := assert.NewAssertion(t) + + { + group := NewServerGroup("tcp://127.0.0.1:1234") + a.IsTrue(group.Protocol() == ProtocolTCP) + a.IsTrue(group.Addr() == "127.0.0.1:1234") + } + + { + group := NewServerGroup("http4://127.0.0.1:1234") + a.IsTrue(group.Protocol() == ProtocolHTTP4) + a.IsTrue(group.Addr() == "127.0.0.1:1234") + } + + { + group := NewServerGroup("127.0.0.1:1234") + a.IsTrue(group.Protocol() == ProtocolHTTP) + a.IsTrue(group.Addr() == "127.0.0.1:1234") + } + + { + group := NewServerGroup("unix:/tmp/my.sock") + a.IsTrue(group.Protocol() == ProtocolUnix) + a.IsTrue(group.Addr() == "/tmp/my.sock") + } +} diff --git a/pkg/serverconfigs/server_name_config.go b/pkg/serverconfigs/server_name_config.go new file mode 100644 index 0000000..76b39d0 --- /dev/null +++ b/pkg/serverconfigs/server_name_config.go @@ -0,0 +1,23 @@ +package serverconfigs + +import "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/configutils" + +type ServerNameType = string + +const ( + ServerNameTypeFull = "full" // 完整的域名,包含通配符等 + ServerNameTypePrefix = "prefix" // 前缀 + ServerNameTypeSuffix = "suffix" // 后缀 + ServerNameTypeMatch = "match" // 正则匹配 +) + +// 主机名(域名)配置 +type ServerNameConfig struct { + Name string `yaml:"name" json:"name"` // 名称 + Type string `yaml:"type" json:"type"` // 类型 +} + +// 判断主机名是否匹配 +func (this *ServerNameConfig) Match(name string) bool { + return configutils.MatchDomains([]string{this.Name}, name) +} diff --git a/pkg/serverconfigs/server_types.go b/pkg/serverconfigs/server_types.go new file mode 100644 index 0000000..ff2afae --- /dev/null +++ b/pkg/serverconfigs/server_types.go @@ -0,0 +1,97 @@ +package serverconfigs + +import ( + "github.com/iwind/TeaGo/lists" + "github.com/iwind/TeaGo/maps" +) + +type ServerType = string + +const ( + ServerTypeHTTPProxy ServerType = "httpProxy" + ServerTypeHTTPWeb ServerType = "httpWeb" + ServerTypeTCPProxy ServerType = "tcpProxy" + ServerTypeUnixProxy ServerType = "unixProxy" + ServerTypeUDPProxy ServerType = "udp" +) + +// 获取所有的服务类型 +func AllServerTypes() []maps.Map { + return []maps.Map{ + { + "name": "HTTP反向代理", + "code": ServerTypeHTTPProxy, + }, + { + "name": "HTTP Web服务", + "code": ServerTypeHTTPWeb, + }, + { + "name": "TCP反向代理", + "code": ServerTypeTCPProxy, + }, + /**{ + "name": "UNIX协议反向代理", + "code": ServerTypeUnixProxy, + }, + { + "name": "UDP反向代理", + "code": ServerTypeUDPProxy, + },**/ + } +} + +// 查找服务类型 +func FindServerType(code string) maps.Map { + for _, m := range AllServerTypes() { + if m.GetString("code") == code { + return m + } + } + return nil +} + +// 获取所有协议 +func AllServerProtocolsForType(serverType ServerType) []maps.Map { + protocols := []maps.Map{ + { + "name": "HTTP", + "code": "http", + "serverTypes": []ServerType{ServerTypeHTTPProxy, ServerTypeHTTPWeb}, + }, + { + "name": "HTTPS", + "code": "https", + "serverTypes": []ServerType{ServerTypeHTTPProxy, ServerTypeHTTPWeb}, + }, + { + "name": "TCP", + "code": "tcp", + "serverTypes": []ServerType{ServerTypeTCPProxy}, + }, + { + "name": "TLS", + "code": "tls", + "serverTypes": []ServerType{ServerTypeTCPProxy}, + }, + { + "name": "Unix", + "code": "unix", + "serverTypes": []ServerType{ServerTypeUnixProxy}, + }, + { + "name": "UDP", + "code": "udp", + "serverTypes": []ServerType{ServerTypeUDPProxy}, + }, + } + + result := []maps.Map{} + for _, p := range protocols { + serverTypes := p.GetSlice("serverTypes") + if lists.Contains(serverTypes, serverType) { + result = append(result, p) + } + } + return result +} diff --git a/pkg/serverconfigs/shared/http_expire_header_config.go b/pkg/serverconfigs/shared/http_expire_header_config.go new file mode 100644 index 0000000..1842f2e --- /dev/null +++ b/pkg/serverconfigs/shared/http_expire_header_config.go @@ -0,0 +1,5 @@ +package shared + +// HTTP Header中Expire设置 +type HTTPExpireHeaderConfig struct { +} diff --git a/pkg/serverconfigs/shared/http_header_config.go b/pkg/serverconfigs/shared/http_header_config.go new file mode 100644 index 0000000..7d4d29a --- /dev/null +++ b/pkg/serverconfigs/shared/http_header_config.go @@ -0,0 +1,57 @@ +package shared + +import ( + "regexp" +) + +var regexpNamedVariable = regexp.MustCompile("\\${[\\w.-]+}") + +// 头部信息定义 +type HTTPHeaderConfig struct { + Id int `yaml:"id" json:"id"` // ID + IsOn bool `yaml:"isOn" json:"isOn"` // 是否开启 + Name string `yaml:"name" json:"name"` // Name + Value string `yaml:"value" json:"value"` // Value + Status *HTTPStatusConfig `yaml:"status" json:"status"` // 支持的状态码 TODO + + hasVariables bool +} + +// 获取新Header对象 +func NewHeaderConfig() *HTTPHeaderConfig { + return &HTTPHeaderConfig{ + IsOn: true, + } +} + +// 校验 +func (this *HTTPHeaderConfig) Init() error { + this.hasVariables = regexpNamedVariable.MatchString(this.Value) + + if this.Status != nil { + err := this.Status.Init() + if err != nil { + return err + } + } + + return nil +} + +// 判断是否匹配状态码 +func (this *HTTPHeaderConfig) Match(statusCode int) bool { + if !this.IsOn { + return false + } + + if this.Status == nil { + return false + } + + return this.Status.Match(statusCode) +} + +// 是否有变量 +func (this *HTTPHeaderConfig) HasVariables() bool { + return this.hasVariables +} diff --git a/pkg/serverconfigs/shared/http_header_config_test.go b/pkg/serverconfigs/shared/http_header_config_test.go new file mode 100644 index 0000000..1f30ccb --- /dev/null +++ b/pkg/serverconfigs/shared/http_header_config_test.go @@ -0,0 +1,31 @@ +package shared + +import ( + "github.com/iwind/TeaGo/assert" + "testing" +) + +func TestHeaderConfig_Match(t *testing.T) { + a := assert.NewAssertion(t) + h := NewHeaderConfig() + err := h.Init() + if err != nil { + t.Fatal(err) + } + a.IsFalse(h.Match(200)) + a.IsFalse(h.Match(400)) + + h.Status = &HTTPStatusConfig{ + Always: false, + Codes: []int{200, 301, 302, 400}, + } + err = h.Init() + if err != nil { + t.Fatal(err) + } + a.IsTrue(h.Match(400)) + a.IsFalse(h.Match(500)) + + h.Status.Always = true + a.IsTrue(h.Match(500)) +} diff --git a/pkg/serverconfigs/shared/http_headers_config.go b/pkg/serverconfigs/shared/http_headers_config.go new file mode 100644 index 0000000..b3a7ecd --- /dev/null +++ b/pkg/serverconfigs/shared/http_headers_config.go @@ -0,0 +1,54 @@ +package shared + +// HeaderList定义 +type HTTPHeadersConfig struct { + AddHeaders []*HTTPHeaderConfig `yaml:"addHeaders" json:"addHeaders"` // TODO + AddTrailers []*HTTPHeaderConfig `yaml:"addTrailers" json:"addTrailers"` // TODO + SetHeaders []*HTTPHeaderConfig `yaml:"setHeaders" json:"setHeaders"` // TODO + ReplaceHeaders []*HTTPHeaderConfig `yaml:"replaceHeaders" json:"replaceHeaders"` // TODO + + Expires *HTTPExpireHeaderConfig `yaml:"expires" json:"expires"` // TODO +} + +// 获取新对象 +func NewHTTPHeaders() *HTTPHeadersConfig { + return &HTTPHeadersConfig{} +} + +// 校验 +func (this *HTTPHeadersConfig) Init() error { + for _, h := range this.AddHeaders { + err := h.Init() + if err != nil { + return err + } + } + + for _, h := range this.AddTrailers { + err := h.Init() + if err != nil { + return err + } + } + + for _, h := range this.SetHeaders { + err := h.Init() + if err != nil { + return err + } + } + + for _, h := range this.ReplaceHeaders { + err := h.Init() + if err != nil { + return err + } + } + + return nil +} + +// 判断是否为空 +func (this *HTTPHeadersConfig) IsEmpty() bool { + return len(this.AddHeaders) == 0 && len(this.AddTrailers) == 0 && len(this.SetHeaders) == 0 && len(this.ReplaceHeaders) == 0 && this.Expires == nil +} diff --git a/pkg/serverconfigs/shared/http_headers_config_test.go b/pkg/serverconfigs/shared/http_headers_config_test.go new file mode 100644 index 0000000..c87b7ff --- /dev/null +++ b/pkg/serverconfigs/shared/http_headers_config_test.go @@ -0,0 +1,13 @@ +package shared + +import ( + "testing" +) + +func TestHeaderList_FormatHeaders(t *testing.T) { + list := NewHTTPHeaders() + err := list.Init() + if err != nil { + t.Fatal(err) + } +} diff --git a/pkg/serverconfigs/shared/http_status_config.go b/pkg/serverconfigs/shared/http_status_config.go new file mode 100644 index 0000000..4482109 --- /dev/null +++ b/pkg/serverconfigs/shared/http_status_config.go @@ -0,0 +1,27 @@ +package shared + +// 状态吗 +type HTTPStatusConfig struct { + Always bool `yaml:"always" json:"always"` + Codes []int `yaml:"codes" json:"codes"` +} + +func (this *HTTPStatusConfig) Init() error { + // TODO + return nil +} + +func (this *HTTPStatusConfig) Match(statusCode int) bool { + if this.Always { + return true + } + if len(this.Codes) == 0 { + return false + } + for _, c := range this.Codes { + if c == statusCode { + return true + } + } + return false +} diff --git a/pkg/serverconfigs/shared/locker.go b/pkg/serverconfigs/shared/locker.go new file mode 100644 index 0000000..5011d56 --- /dev/null +++ b/pkg/serverconfigs/shared/locker.go @@ -0,0 +1,21 @@ +package shared + +import ( + "sync" +) + +var Locker = new(FileLocker) + +// global file modify locker +type FileLocker struct { + locker sync.Mutex +} + +// lock +func (this *FileLocker) Lock() { + this.locker.Lock() +} + +func (this *FileLocker) Unlock() { + this.locker.Unlock() +} diff --git a/pkg/serverconfigs/shared/regexp.go b/pkg/serverconfigs/shared/regexp.go new file mode 100644 index 0000000..ab49949 --- /dev/null +++ b/pkg/serverconfigs/shared/regexp.go @@ -0,0 +1,13 @@ +package shared + +import "regexp" + +// 常用的正则表达式 +var ( + RegexpDigitNumber = regexp.MustCompile(`^\d+$`) // 正整数 + RegexpFloatNumber = regexp.MustCompile(`^\d+(\.\d+)?$`) // 正浮点数,不支持e + RegexpAllDigitNumber = regexp.MustCompile(`^[+-]?\d+$`) // 整数,支持正负数 + RegexpAllFloatNumber = regexp.MustCompile(`^[+-]?\d+(\.\d+)?$`) // 浮点数,支持正负数,不支持e + RegexpExternalURL = regexp.MustCompile("(?i)^(http|https|ftp)://") // URL + RegexpNamedVariable = regexp.MustCompile("\\${[\\w.-]+}") // 命名变量 +) diff --git a/pkg/serverconfigs/shared/regexp_test.go b/pkg/serverconfigs/shared/regexp_test.go new file mode 100644 index 0000000..44f6228 --- /dev/null +++ b/pkg/serverconfigs/shared/regexp_test.go @@ -0,0 +1,17 @@ +package shared + +import ( + "github.com/iwind/TeaGo/assert" + "testing" +) + +func TestRegexp(t *testing.T) { + a := assert.NewAssertion(t) + + a.IsTrue(RegexpFloatNumber.MatchString("123")) + a.IsTrue(RegexpFloatNumber.MatchString("123.456")) + a.IsFalse(RegexpFloatNumber.MatchString(".456")) + a.IsFalse(RegexpFloatNumber.MatchString("abc")) + a.IsFalse(RegexpFloatNumber.MatchString("123.")) + a.IsFalse(RegexpFloatNumber.MatchString("123.456e7")) +} diff --git a/pkg/serverconfigs/shared/request_call.go b/pkg/serverconfigs/shared/request_call.go new file mode 100644 index 0000000..95d5756 --- /dev/null +++ b/pkg/serverconfigs/shared/request_call.go @@ -0,0 +1,41 @@ +package shared + +import ( + "github.com/iwind/TeaGo/maps" + "net/http" +) + +// 请求调用 +type RequestCall struct { + Formatter func(source string) string + Request *http.Request + ResponseCallbacks []func(resp http.ResponseWriter) + Options maps.Map +} + +// 获取新对象 +func NewRequestCall() *RequestCall { + return &RequestCall{ + Options: maps.Map{}, + } +} + +// 重置 +func (this *RequestCall) Reset() { + this.Formatter = nil + this.Request = nil + this.ResponseCallbacks = nil + this.Options = maps.Map{} +} + +// 添加响应回调 +func (this *RequestCall) AddResponseCall(callback func(resp http.ResponseWriter)) { + this.ResponseCallbacks = append(this.ResponseCallbacks, callback) +} + +// 执行响应回调 +func (this *RequestCall) CallResponseCallbacks(resp http.ResponseWriter) { + for _, callback := range this.ResponseCallbacks { + callback(resp) + } +} diff --git a/pkg/serverconfigs/shared/request_cond.go b/pkg/serverconfigs/shared/request_cond.go new file mode 100644 index 0000000..11f9bd2 --- /dev/null +++ b/pkg/serverconfigs/shared/request_cond.go @@ -0,0 +1,372 @@ +package shared + +import ( + "bytes" + "encoding/binary" + "encoding/json" + "errors" + "github.com/iwind/TeaGo/Tea" + "github.com/iwind/TeaGo/lists" + "github.com/iwind/TeaGo/types" + "github.com/iwind/TeaGo/utils/string" + "net" + "os" + "path/filepath" + "regexp" + "strings" +) + +// 重写条件定义 +type RequestCond struct { + Id string `yaml:"id" json:"id"` // ID + + // 要测试的字符串 + // 其中可以使用跟请求相关的参数,比如: + // ${arg.name}, ${requestPath} + Param string `yaml:"param" json:"param"` + + // 运算符 + Operator RequestCondOperator `yaml:"operator" json:"operator"` + + // 对比 + Value string `yaml:"value" json:"value"` + + isInt bool + isFloat bool + isIP bool + + regValue *regexp.Regexp + floatValue float64 + ipValue net.IP + arrayValue []string +} + +// 取得新对象 +func NewRequestCond() *RequestCond { + return &RequestCond{ + Id: stringutil.Rand(16), + } +} + +// 校验配置 +func (this *RequestCond) Validate() error { + this.isInt = RegexpDigitNumber.MatchString(this.Value) + this.isFloat = RegexpFloatNumber.MatchString(this.Value) + + if lists.ContainsString([]string{ + RequestCondOperatorRegexp, + RequestCondOperatorNotRegexp, + }, this.Operator) { + reg, err := regexp.Compile(this.Value) + if err != nil { + return err + } + this.regValue = reg + } else if lists.ContainsString([]string{ + RequestCondOperatorEqFloat, + RequestCondOperatorGtFloat, + RequestCondOperatorGteFloat, + RequestCondOperatorLtFloat, + RequestCondOperatorLteFloat, + }, this.Operator) { + this.floatValue = types.Float64(this.Value) + } else if lists.ContainsString([]string{ + RequestCondOperatorEqIP, + RequestCondOperatorGtIP, + RequestCondOperatorGteIP, + RequestCondOperatorLtIP, + RequestCondOperatorLteIP, + }, this.Operator) { + this.ipValue = net.ParseIP(this.Value) + this.isIP = this.ipValue != nil + + if !this.isIP { + return errors.New("value should be a valid ip") + } + } else if lists.ContainsString([]string{ + RequestCondOperatorIPRange, + }, this.Operator) { + if strings.Contains(this.Value, ",") { + ipList := strings.SplitN(this.Value, ",", 2) + ipString1 := strings.TrimSpace(ipList[0]) + ipString2 := strings.TrimSpace(ipList[1]) + + if len(ipString1) > 0 { + ip1 := net.ParseIP(ipString1) + if ip1 == nil { + return errors.New("start ip is invalid") + } + } + + if len(ipString2) > 0 { + ip2 := net.ParseIP(ipString2) + if ip2 == nil { + return errors.New("end ip is invalid") + } + } + } else if strings.Contains(this.Value, "/") { + _, _, err := net.ParseCIDR(this.Value) + if err != nil { + return err + } + } else { + return errors.New("invalid ip range") + } + } else if lists.ContainsString([]string{ + RequestCondOperatorIn, + RequestCondOperatorNotIn, + RequestCondOperatorFileExt, + }, this.Operator) { + stringsValue := []string{} + err := json.Unmarshal([]byte(this.Value), &stringsValue) + if err != nil { + return err + } + this.arrayValue = stringsValue + } else if lists.ContainsString([]string{ + RequestCondOperatorFileMimeType, + }, this.Operator) { + stringsValue := []string{} + err := json.Unmarshal([]byte(this.Value), &stringsValue) + if err != nil { + return err + } + for k, v := range stringsValue { + if strings.Contains(v, "*") { + v = regexp.QuoteMeta(v) + v = strings.Replace(v, `\*`, ".*", -1) + stringsValue[k] = v + } + } + this.arrayValue = stringsValue + } + return nil +} + +// 将此条件应用于请求,检查是否匹配 +func (this *RequestCond) Match(formatter func(source string) string) bool { + paramValue := formatter(this.Param) + switch this.Operator { + case RequestCondOperatorRegexp: + if this.regValue == nil { + return false + } + return this.regValue.MatchString(paramValue) + case RequestCondOperatorNotRegexp: + if this.regValue == nil { + return false + } + return !this.regValue.MatchString(paramValue) + case RequestCondOperatorEqInt: + return this.isInt && paramValue == this.Value + case RequestCondOperatorEqFloat: + return this.isFloat && types.Float64(paramValue) == this.floatValue + case RequestCondOperatorGtFloat: + return this.isFloat && types.Float64(paramValue) > this.floatValue + case RequestCondOperatorGteFloat: + return this.isFloat && types.Float64(paramValue) >= this.floatValue + case RequestCondOperatorLtFloat: + return this.isFloat && types.Float64(paramValue) < this.floatValue + case RequestCondOperatorLteFloat: + return this.isFloat && types.Float64(paramValue) <= this.floatValue + case RequestCondOperatorMod: + pieces := strings.SplitN(this.Value, ",", 2) + if len(pieces) == 1 { + rem := types.Int64(pieces[0]) + return types.Int64(paramValue)%10 == rem + } + div := types.Int64(pieces[0]) + if div == 0 { + return false + } + rem := types.Int64(pieces[1]) + return types.Int64(paramValue)%div == rem + case RequestCondOperatorMod10: + return types.Int64(paramValue)%10 == types.Int64(this.Value) + case RequestCondOperatorMod100: + return types.Int64(paramValue)%100 == types.Int64(this.Value) + case RequestCondOperatorEqString: + return paramValue == this.Value + case RequestCondOperatorNeqString: + return paramValue != this.Value + case RequestCondOperatorHasPrefix: + return strings.HasPrefix(paramValue, this.Value) + case RequestCondOperatorHasSuffix: + return strings.HasSuffix(paramValue, this.Value) + case RequestCondOperatorContainsString: + return strings.Contains(paramValue, this.Value) + case RequestCondOperatorNotContainsString: + return !strings.Contains(paramValue, this.Value) + case RequestCondOperatorEqIP: + ip := net.ParseIP(paramValue) + if ip == nil { + return false + } + return this.isIP && bytes.Compare(this.ipValue, ip) == 0 + case RequestCondOperatorGtIP: + ip := net.ParseIP(paramValue) + if ip == nil { + return false + } + return this.isIP && bytes.Compare(ip, this.ipValue) > 0 + case RequestCondOperatorGteIP: + ip := net.ParseIP(paramValue) + if ip == nil { + return false + } + return this.isIP && bytes.Compare(ip, this.ipValue) >= 0 + case RequestCondOperatorLtIP: + ip := net.ParseIP(paramValue) + if ip == nil { + return false + } + return this.isIP && bytes.Compare(ip, this.ipValue) < 0 + case RequestCondOperatorLteIP: + ip := net.ParseIP(paramValue) + if ip == nil { + return false + } + return this.isIP && bytes.Compare(ip, this.ipValue) <= 0 + case RequestCondOperatorIPRange: + ip := net.ParseIP(paramValue) + if ip == nil { + return false + } + + // 检查IP范围格式 + if strings.Contains(this.Value, ",") { + ipList := strings.SplitN(this.Value, ",", 2) + ipString1 := strings.TrimSpace(ipList[0]) + ipString2 := strings.TrimSpace(ipList[1]) + + if len(ipString1) > 0 { + ip1 := net.ParseIP(ipString1) + if ip1 == nil { + return false + } + + if bytes.Compare(ip, ip1) < 0 { + return false + } + } + + if len(ipString2) > 0 { + ip2 := net.ParseIP(ipString2) + if ip2 == nil { + return false + } + + if bytes.Compare(ip, ip2) > 0 { + return false + } + } + + return true + } else if strings.Contains(this.Value, "/") { + _, ipNet, err := net.ParseCIDR(this.Value) + if err != nil { + return false + } + return ipNet.Contains(ip) + } else { + return false + } + case RequestCondOperatorIn: + return lists.ContainsString(this.arrayValue, paramValue) + case RequestCondOperatorNotIn: + return !lists.ContainsString(this.arrayValue, paramValue) + case RequestCondOperatorFileExt: + ext := filepath.Ext(paramValue) + if len(ext) > 0 { + ext = ext[1:] // remove dot + } + return lists.ContainsString(this.arrayValue, strings.ToLower(ext)) + case RequestCondOperatorFileMimeType: + index := strings.Index(paramValue, ";") + if index >= 0 { + paramValue = strings.TrimSpace(paramValue[:index]) + } + if len(this.arrayValue) == 0 { + return false + } + for _, v := range this.arrayValue { + if strings.Contains(v, "*") { + reg, err := stringutil.RegexpCompile("^" + v + "$") + if err == nil && reg.MatchString(paramValue) { + return true + } + } else if paramValue == v { + return true + } + } + case RequestCondOperatorVersionRange: + if strings.Contains(this.Value, ",") { + versions := strings.SplitN(this.Value, ",", 2) + version1 := strings.TrimSpace(versions[0]) + version2 := strings.TrimSpace(versions[1]) + if len(version1) > 0 && stringutil.VersionCompare(paramValue, version1) < 0 { + return false + } + if len(version2) > 0 && stringutil.VersionCompare(paramValue, version2) > 0 { + return false + } + return true + } else { + return stringutil.VersionCompare(paramValue, this.Value) >= 0 + } + case RequestCondOperatorIPMod: + pieces := strings.SplitN(this.Value, ",", 2) + if len(pieces) == 1 { + rem := types.Int64(pieces[0]) + return this.ipToInt64(net.ParseIP(paramValue))%10 == rem + } + div := types.Int64(pieces[0]) + if div == 0 { + return false + } + rem := types.Int64(pieces[1]) + return this.ipToInt64(net.ParseIP(paramValue))%div == rem + case RequestCondOperatorIPMod10: + return this.ipToInt64(net.ParseIP(paramValue))%10 == types.Int64(this.Value) + case RequestCondOperatorIPMod100: + return this.ipToInt64(net.ParseIP(paramValue))%100 == types.Int64(this.Value) + case RequestCondOperatorFileExist: + index := strings.Index(paramValue, "?") + if index > -1 { + paramValue = paramValue[:index] + } + if len(paramValue) == 0 { + return false + } + if !filepath.IsAbs(paramValue) { + paramValue = Tea.Root + Tea.DS + paramValue + } + stat, err := os.Stat(paramValue) + return err == nil && !stat.IsDir() + case RequestCondOperatorFileNotExist: + index := strings.Index(paramValue, "?") + if index > -1 { + paramValue = paramValue[:index] + } + if len(paramValue) == 0 { + return true + } + if !filepath.IsAbs(paramValue) { + paramValue = Tea.Root + Tea.DS + paramValue + } + stat, err := os.Stat(paramValue) + return err != nil || stat.IsDir() + } + + return false +} + +func (this *RequestCond) ipToInt64(ip net.IP) int64 { + if len(ip) == 0 { + return 0 + } + if len(ip) == 16 { + return int64(binary.BigEndian.Uint32(ip[12:16])) + } + return int64(binary.BigEndian.Uint32(ip)) +} diff --git a/pkg/serverconfigs/shared/request_cond_test.go b/pkg/serverconfigs/shared/request_cond_test.go new file mode 100644 index 0000000..b62ecbf --- /dev/null +++ b/pkg/serverconfigs/shared/request_cond_test.go @@ -0,0 +1,1000 @@ +package shared + +import ( + "bytes" + "fmt" + "github.com/iwind/TeaGo/Tea" + "github.com/iwind/TeaGo/assert" + "net" + "regexp" + "testing" +) + +func TestRequestCond_Compare1(t *testing.T) { + a := assert.NewAssertion(t) + + { + cond := RequestCond{ + Param: "/hello", + Operator: RequestCondOperatorRegexp, + Value: "abc", + } + a.IsNil(cond.Validate()) + a.IsFalse(cond.Match(func(format string) string { + return format + })) + } + + { + cond := RequestCond{ + Param: "/hello", + Operator: RequestCondOperatorRegexp, + Value: "/\\w+", + } + a.IsNil(cond.Validate()) + a.IsTrue(cond.Match(func(format string) string { + return format + })) + } + + { + cond := RequestCond{ + Param: "/article/123.html", + Operator: RequestCondOperatorRegexp, + Value: `^/article/\d+\.html$`, + } + a.IsNil(cond.Validate()) + a.IsTrue(cond.Match(func(format string) string { + return format + })) + } + + { + cond := RequestCond{ + Param: "/hello", + Operator: RequestCondOperatorRegexp, + Value: "[", + } + a.IsNotNil(cond.Validate()) + a.IsFalse(cond.Match(func(format string) string { + return format + })) + } + + { + cond := RequestCond{ + Param: "/hello", + Operator: RequestCondOperatorNotRegexp, + Value: "abc", + } + a.IsNil(cond.Validate()) + a.IsTrue(cond.Match(func(format string) string { + return format + })) + } + + { + cond := RequestCond{ + Param: "/hello", + Operator: RequestCondOperatorNotRegexp, + Value: "/\\w+", + } + a.IsNil(cond.Validate()) + a.IsFalse(cond.Match(func(format string) string { + return format + })) + } + + { + cond := RequestCond{ + Param: "123.123", + Operator: RequestCondOperatorEqInt, + Value: "123", + } + a.IsNil(cond.Validate()) + a.IsFalse(cond.Match(func(source string) string { + return source + })) + } + + { + cond := RequestCond{ + Param: "123", + Operator: RequestCondOperatorEqInt, + Value: "123", + } + a.IsNil(cond.Validate()) + a.IsTrue(cond.Match(func(source string) string { + return source + })) + } + + { + cond := RequestCond{ + Param: "abc", + Operator: RequestCondOperatorEqInt, + Value: "abc", + } + a.IsNil(cond.Validate()) + a.IsFalse(cond.Match(func(source string) string { + return source + })) + } + + { + cond := RequestCond{ + Param: "123", + Operator: RequestCondOperatorEqFloat, + Value: "123", + } + a.IsNil(cond.Validate()) + a.IsTrue(cond.Match(func(source string) string { + return source + })) + } + + { + cond := RequestCond{ + Param: "123.0", + Operator: RequestCondOperatorEqFloat, + Value: "123", + } + a.IsNil(cond.Validate()) + a.IsTrue(cond.Match(func(source string) string { + return source + })) + } + + { + cond := RequestCond{ + Param: "123.123", + Operator: RequestCondOperatorEqFloat, + Value: "123.12", + } + a.IsNil(cond.Validate()) + a.IsFalse(cond.Match(func(source string) string { + return source + })) + } + + { + cond := RequestCond{ + Param: "123", + Operator: RequestCondOperatorGtFloat, + Value: "1", + } + a.IsNil(cond.Validate()) + a.IsTrue(cond.Match(func(source string) string { + return source + })) + } + + { + cond := RequestCond{ + Param: "123", + Operator: RequestCondOperatorGtFloat, + Value: "125", + } + a.IsNil(cond.Validate()) + a.IsFalse(cond.Match(func(source string) string { + return source + })) + } + + { + cond := RequestCond{ + Param: "125", + Operator: RequestCondOperatorGteFloat, + Value: "125", + } + a.IsNil(cond.Validate()) + a.IsTrue(cond.Match(func(source string) string { + return source + })) + } + + { + cond := RequestCond{ + Param: "125", + Operator: RequestCondOperatorLtFloat, + Value: "127", + } + a.IsNil(cond.Validate()) + a.IsTrue(cond.Match(func(source string) string { + return source + })) + } + + { + cond := RequestCond{ + Param: "125", + Operator: RequestCondOperatorLteFloat, + Value: "127", + } + a.IsNil(cond.Validate()) + a.IsTrue(cond.Match(func(source string) string { + return source + })) + } + + { + cond := RequestCond{ + Param: "125", + Operator: RequestCondOperatorEqString, + Value: "125", + } + a.IsNil(cond.Validate()) + a.IsTrue(cond.Match(func(source string) string { + return source + })) + } + + { + cond := RequestCond{ + Param: "125", + Operator: RequestCondOperatorNeqString, + Value: "125", + } + a.IsNil(cond.Validate()) + a.IsFalse(cond.Match(func(source string) string { + return source + })) + } + + { + cond := RequestCond{ + Param: "125", + Operator: RequestCondOperatorNeqString, + Value: "127", + } + a.IsNil(cond.Validate()) + a.IsTrue(cond.Match(func(source string) string { + return source + })) + } + + { + cond := RequestCond{ + Param: "/hello/world", + Operator: RequestCondOperatorHasPrefix, + Value: "/hello", + } + a.IsNil(cond.Validate()) + a.IsTrue(cond.Match(func(source string) string { + return source + })) + } + + { + cond := RequestCond{ + Param: "/hello/world", + Operator: RequestCondOperatorHasPrefix, + Value: "/hello2", + } + a.IsNil(cond.Validate()) + a.IsFalse(cond.Match(func(source string) string { + return source + })) + } + + { + cond := RequestCond{ + Param: "/hello/world", + Operator: RequestCondOperatorHasSuffix, + Value: "world", + } + a.IsNil(cond.Validate()) + a.IsTrue(cond.Match(func(source string) string { + return source + })) + } + + { + cond := RequestCond{ + Param: "/hello/world", + Operator: RequestCondOperatorHasSuffix, + Value: "world/", + } + a.IsNil(cond.Validate()) + a.IsFalse(cond.Match(func(source string) string { + return source + })) + } + + { + cond := RequestCond{ + Param: "/hello/world", + Operator: RequestCondOperatorContainsString, + Value: "wo", + } + a.IsNil(cond.Validate()) + a.IsTrue(cond.Match(func(source string) string { + return source + })) + } + + { + cond := RequestCond{ + Param: "/hello/world", + Operator: RequestCondOperatorContainsString, + Value: "wr", + } + a.IsNil(cond.Validate()) + a.IsFalse(cond.Match(func(source string) string { + return source + })) + } + + { + cond := RequestCond{ + Param: "/hello/world", + Operator: RequestCondOperatorNotContainsString, + Value: "HELLO", + } + a.IsNil(cond.Validate()) + a.IsTrue(cond.Match(func(source string) string { + return source + })) + } + + { + cond := RequestCond{ + Param: "/hello/world", + Operator: RequestCondOperatorNotContainsString, + Value: "hello", + } + a.IsNil(cond.Validate()) + a.IsFalse(cond.Match(func(source string) string { + return source + })) + } +} + +func TestRequestCond_IP(t *testing.T) { + a := assert.NewAssertion(t) + + { + cond := RequestCond{ + Param: "hello", + Operator: RequestCondOperatorEqIP, + Value: "hello", + } + a.IsNotNil(cond.Validate()) + a.IsFalse(cond.Match(func(source string) string { + return source + })) + } + + { + cond := RequestCond{ + Param: "192.168.1.100", + Operator: RequestCondOperatorEqIP, + Value: "hello", + } + a.IsNotNil(cond.Validate()) + a.IsFalse(cond.Match(func(source string) string { + return source + })) + } + + { + cond := RequestCond{ + Param: "192.168.1.100", + Operator: RequestCondOperatorEqIP, + Value: "192.168.1.100", + } + a.IsNil(cond.Validate()) + a.IsTrue(cond.Match(func(source string) string { + return source + })) + } + + { + cond := RequestCond{ + Param: "192.168.1.100", + Operator: RequestCondOperatorGtIP, + Value: "192.168.1.90", + } + a.IsNil(cond.Validate()) + a.IsTrue(cond.Match(func(source string) string { + return source + })) + } + + { + cond := RequestCond{ + Param: "192.168.1.100", + Operator: RequestCondOperatorGteIP, + Value: "192.168.1.90", + } + a.IsNil(cond.Validate()) + a.IsTrue(cond.Match(func(source string) string { + return source + })) + } + + { + cond := RequestCond{ + Param: "192.168.1.80", + Operator: RequestCondOperatorLtIP, + Value: "192.168.1.90", + } + a.IsNil(cond.Validate()) + a.IsTrue(cond.Match(func(source string) string { + return source + })) + } + + { + cond := RequestCond{ + Param: "192.168.0.100", + Operator: RequestCondOperatorLteIP, + Value: "192.168.1.90", + } + a.IsNil(cond.Validate()) + a.IsTrue(cond.Match(func(source string) string { + return source + })) + } + + { + cond := RequestCond{ + Param: "192.168.0.100", + Operator: RequestCondOperatorIPRange, + Value: "192.168.0.90,", + } + a.IsNil(cond.Validate()) + a.IsTrue(cond.Match(func(source string) string { + return source + })) + } + + { + cond := RequestCond{ + Param: "192.168.0.100", + Operator: RequestCondOperatorIPRange, + Value: "192.168.0.90,192.168.1.100", + } + a.IsNil(cond.Validate()) + a.IsTrue(cond.Match(func(source string) string { + return source + })) + } + + { + cond := RequestCond{ + Param: "192.168.0.100", + Operator: RequestCondOperatorIPRange, + Value: ",192.168.1.100", + } + a.IsNil(cond.Validate()) + a.IsTrue(cond.Match(func(source string) string { + return source + })) + } + + { + cond := RequestCond{ + Param: "192.168.1.100", + Operator: RequestCondOperatorIPRange, + Value: "192.168.0.90,192.168.1.99", + } + a.IsNil(cond.Validate()) + a.IsFalse(cond.Match(func(source string) string { + return source + })) + } + + { + cond := RequestCond{ + Param: "192.168.1.100", + Operator: RequestCondOperatorIPRange, + Value: "192.168.0.90/24", + } + a.IsNil(cond.Validate()) + a.IsFalse(cond.Match(func(source string) string { + return source + })) + } + + { + cond := RequestCond{ + Param: "192.168.1.100", + Operator: RequestCondOperatorIPRange, + Value: "192.168.0.90/18", + } + a.IsNil(cond.Validate()) + a.IsTrue(cond.Match(func(source string) string { + return source + })) + } + + { + cond := RequestCond{ + Param: "192.168.1.100", + Operator: RequestCondOperatorIPRange, + Value: "a/18", + } + a.IsNotNil(cond.Validate()) + a.IsFalse(cond.Match(func(source string) string { + return source + })) + } + + { + cond := RequestCond{ + Param: "192.168.1.100", + Operator: RequestCondOperatorIPMod10, + Value: "6", + } + a.IsNil(cond.Validate()) + a.IsTrue(cond.Match(func(source string) string { + return source + })) + } + + { + cond := RequestCond{ + Param: "192.168.1.100", + Operator: RequestCondOperatorIPMod100, + Value: "76", + } + a.IsNil(cond.Validate()) + a.IsTrue(cond.Match(func(source string) string { + return source + })) + } + + { + cond := RequestCond{ + Param: "192.168.1.100", + Operator: RequestCondOperatorIPMod, + Value: "10,6", + } + a.IsNil(cond.Validate()) + a.IsTrue(cond.Match(func(source string) string { + return source + })) + } +} + +func TestRequestCondIPCompare(t *testing.T) { + { + ip1 := net.ParseIP("192.168.3.100") + ip2 := net.ParseIP("192.168.2.100") + t.Log(bytes.Compare(ip1, ip2)) + } + + { + ip1 := net.ParseIP("192.168.3.100") + ip2 := net.ParseIP("a") + t.Log(bytes.Compare(ip1, ip2)) + } + + { + ip1 := net.ParseIP("b") + ip2 := net.ParseIP("192.168.2.100") + t.Log(bytes.Compare(ip1, ip2)) + } + + { + ip1 := net.ParseIP("b") + ip2 := net.ParseIP("a") + t.Log(ip1 == nil) + t.Log(bytes.Compare(ip1, ip2)) + } + + { + cond := RequestCond{} + t.Log(cond.ipToInt64(net.ParseIP("192.168.1.100"))) + t.Log(cond.ipToInt64(net.ParseIP("192.168.1.99"))) + t.Log(cond.ipToInt64(net.ParseIP("0.0.0.0"))) + t.Log(cond.ipToInt64(net.ParseIP("127.0.0.1"))) + t.Log(cond.ipToInt64(net.ParseIP("abc"))) + t.Log(cond.ipToInt64(net.ParseIP("192.168"))) + t.Log(cond.ipToInt64(net.ParseIP("2001:0db8:0000:0000:0000:ff00:0042:8329"))) + } +} + +func TestRequestCond_In(t *testing.T) { + a := assert.NewAssertion(t) + + { + cond := RequestCond{ + Param: "a", + Operator: RequestCondOperatorIn, + Value: `a`, + } + a.IsNotNil(cond.Validate()) + a.IsFalse(cond.Match(func(source string) string { + return source + })) + } + + { + cond := RequestCond{ + Param: "a", + Operator: RequestCondOperatorIn, + Value: `["a", "b"]`, + } + a.IsNil(cond.Validate()) + a.IsTrue(cond.Match(func(source string) string { + return source + })) + } + + { + cond := RequestCond{ + Param: "c", + Operator: RequestCondOperatorNotIn, + Value: `["a", "b"]`, + } + a.IsNil(cond.Validate()) + a.IsTrue(cond.Match(func(source string) string { + return source + })) + } + + { + cond := RequestCond{ + Param: "a", + Operator: RequestCondOperatorNotIn, + Value: `["a", "b"]`, + } + a.IsNil(cond.Validate()) + a.IsFalse(cond.Match(func(source string) string { + return source + })) + } +} + +func TestRequestCond_File(t *testing.T) { + a := assert.NewAssertion(t) + + { + cond := RequestCond{ + Param: "a", + Operator: RequestCondOperatorFileExt, + Value: `["jpeg", "jpg", "png"]`, + } + a.IsNil(cond.Validate()) + a.IsFalse(cond.Match(func(source string) string { + return source + })) + } + + { + cond := RequestCond{ + Param: "a.gif", + Operator: RequestCondOperatorFileExt, + Value: `["jpeg", "jpg", "png"]`, + } + a.IsNil(cond.Validate()) + a.IsFalse(cond.Match(func(source string) string { + return source + })) + } + + { + cond := RequestCond{ + Param: "a.png", + Operator: RequestCondOperatorFileExt, + Value: `["jpeg", "jpg", "png"]`, + } + a.IsNil(cond.Validate()) + a.IsTrue(cond.Match(func(source string) string { + return source + })) + } + + { + cond := RequestCond{ + Param: "a.png", + Operator: RequestCondOperatorFileExist, + } + a.IsNil(cond.Validate()) + a.IsFalse(cond.Match(func(source string) string { + return source + })) + } + + { + cond := RequestCond{ + Param: Tea.Root + "/README.md", + Operator: RequestCondOperatorFileExist, + } + a.IsNil(cond.Validate()) + a.IsTrue(cond.Match(func(source string) string { + return source + })) + } + + { + cond := RequestCond{ + Param: Tea.Root + "/README.md?v=1", + Operator: RequestCondOperatorFileExist, + } + a.IsNil(cond.Validate()) + a.IsTrue(cond.Match(func(source string) string { + return source + })) + } + + { + cond := RequestCond{ + Param: Tea.Root, + Operator: RequestCondOperatorFileExist, + } + a.IsNil(cond.Validate()) + a.IsFalse(cond.Match(func(source string) string { + return source + })) + } + + { + cond := RequestCond{ + Param: Tea.Root, + Operator: RequestCondOperatorFileExist, + } + a.IsNil(cond.Validate()) + a.IsFalse(cond.Match(func(source string) string { + return source + })) + } + + { + cond := RequestCond{ + Param: "a.png", + Operator: RequestCondOperatorFileNotExist, + } + a.IsNil(cond.Validate()) + a.IsTrue(cond.Match(func(source string) string { + return source + })) + } + + { + cond := RequestCond{ + Param: Tea.Root + "/README.md", + Operator: RequestCondOperatorFileNotExist, + } + a.IsNil(cond.Validate()) + a.IsFalse(cond.Match(func(source string) string { + return source + })) + } +} + +func TestRequestCond_MimeType(t *testing.T) { + a := assert.NewAssertion(t) + + { + cond := RequestCond{ + Param: "text/html; charset=utf-8", + Operator: RequestCondOperatorFileMimeType, + Value: `["text/html"]`, + } + a.IsNil(cond.Validate()) + a.IsTrue(cond.Match(func(source string) string { + return source + })) + } + + { + cond := RequestCond{ + Param: "text/html; charset=utf-8", + Operator: RequestCondOperatorFileMimeType, + Value: `["text/*"]`, + } + a.IsNil(cond.Validate()) + a.IsTrue(cond.Match(func(source string) string { + return source + })) + } + + { + cond := RequestCond{ + Param: "text/html; charset=utf-8", + Operator: RequestCondOperatorFileMimeType, + Value: `["image/*"]`, + } + a.IsNil(cond.Validate()) + a.IsFalse(cond.Match(func(source string) string { + return source + })) + } + + { + cond := RequestCond{ + Param: "text/plain; charset=utf-8", + Operator: RequestCondOperatorFileMimeType, + Value: `["text/html", "image/jpeg", "image/png"]`, + } + a.IsNil(cond.Validate()) + a.IsFalse(cond.Match(func(source string) string { + return source + })) + } +} + +func TestRequestCond_Version(t *testing.T) { + a := assert.NewAssertion(t) + + { + cond := RequestCond{ + Param: "1.0", + Operator: RequestCondOperatorVersionRange, + Value: `1.0,1.1`, + } + a.IsNil(cond.Validate()) + a.IsTrue(cond.Match(func(source string) string { + return source + })) + } + + { + cond := RequestCond{ + Param: "1.0", + Operator: RequestCondOperatorVersionRange, + Value: `1.0,`, + } + a.IsNil(cond.Validate()) + a.IsTrue(cond.Match(func(source string) string { + return source + })) + } + + { + cond := RequestCond{ + Param: "1.0", + Operator: RequestCondOperatorVersionRange, + Value: `,1.1`, + } + a.IsNil(cond.Validate()) + a.IsTrue(cond.Match(func(source string) string { + return source + })) + } + + { + cond := RequestCond{ + Param: "0.9", + Operator: RequestCondOperatorVersionRange, + Value: `1.0,1.1`, + } + a.IsNil(cond.Validate()) + a.IsFalse(cond.Match(func(source string) string { + return source + })) + } + + { + cond := RequestCond{ + Param: "0.9", + Operator: RequestCondOperatorVersionRange, + Value: `1.0`, + } + a.IsNil(cond.Validate()) + a.IsFalse(cond.Match(func(source string) string { + return source + })) + } + + { + cond := RequestCond{ + Param: "1.1", + Operator: RequestCondOperatorVersionRange, + Value: `1.0`, + } + a.IsNil(cond.Validate()) + a.IsTrue(cond.Match(func(source string) string { + return source + })) + } +} + +func TestRequestCond_RegexpQuote(t *testing.T) { + t.Log(regexp.QuoteMeta("a")) + t.Log(regexp.QuoteMeta("*")) + t.Log(regexp.QuoteMeta("([\\d]).*")) +} + +func TestRequestCond_Mod(t *testing.T) { + a := assert.NewAssertion(t) + + { + cond := RequestCond{ + Param: "1", + Operator: RequestCondOperatorMod, + Value: "1", + } + a.IsNil(cond.Validate()) + a.IsTrue(cond.Match(func(source string) string { + return source + })) + } + + { + cond := RequestCond{ + Param: "1", + Operator: RequestCondOperatorMod, + Value: "2", + } + a.IsNil(cond.Validate()) + a.IsFalse(cond.Match(func(source string) string { + return source + })) + } + + { + cond := RequestCond{ + Param: "3", + Operator: RequestCondOperatorMod, + Value: "3", + } + a.IsNil(cond.Validate()) + a.IsTrue(cond.Match(func(source string) string { + return source + })) + } + + { + cond := RequestCond{ + Param: "1", + Operator: RequestCondOperatorMod, + Value: "11,1", + } + a.IsNil(cond.Validate()) + a.IsTrue(cond.Match(func(source string) string { + return source + })) + } + + { + cond := RequestCond{ + Param: "3", + Operator: RequestCondOperatorMod, + Value: "11,3", + } + a.IsNil(cond.Validate()) + a.IsTrue(cond.Match(func(source string) string { + return source + })) + } + + { + cond := RequestCond{ + Param: "4", + Operator: RequestCondOperatorMod, + Value: "2,0", + } + a.IsNil(cond.Validate()) + a.IsTrue(cond.Match(func(source string) string { + return source + })) + } + + for i := 0; i < 100; i++ { + cond := RequestCond{ + Param: fmt.Sprintf("%d", i), + Operator: RequestCondOperatorMod10, + Value: fmt.Sprintf("%d", i%10), + } + a.IsNil(cond.Validate()) + a.IsTrue(cond.Match(func(source string) string { + return source + })) + } + + for i := 0; i < 2000; i++ { + cond := RequestCond{ + Param: fmt.Sprintf("%d", i), + Operator: RequestCondOperatorMod100, + Value: fmt.Sprintf("%d", i%100), + } + a.IsNil(cond.Validate()) + a.IsTrue(cond.Match(func(source string) string { + return source + })) + } +} diff --git a/pkg/serverconfigs/shared/request_operators.go b/pkg/serverconfigs/shared/request_operators.go new file mode 100644 index 0000000..ce88cea --- /dev/null +++ b/pkg/serverconfigs/shared/request_operators.go @@ -0,0 +1,226 @@ +package shared + +import "github.com/iwind/TeaGo/maps" + +// 运算符定义 +type RequestCondOperator = string + +const ( + // 正则 + RequestCondOperatorRegexp RequestCondOperator = "regexp" + RequestCondOperatorNotRegexp RequestCondOperator = "not regexp" + + // 数字相关 + RequestCondOperatorEqInt RequestCondOperator = "eq int" // 整数等于 + RequestCondOperatorEqFloat RequestCondOperator = "eq float" // 浮点数等于 + RequestCondOperatorGtFloat RequestCondOperator = "gt" + RequestCondOperatorGteFloat RequestCondOperator = "gte" + RequestCondOperatorLtFloat RequestCondOperator = "lt" + RequestCondOperatorLteFloat RequestCondOperator = "lte" + + // 取模 + RequestCondOperatorMod10 RequestCondOperator = "mod 10" + RequestCondOperatorMod100 RequestCondOperator = "mod 100" + RequestCondOperatorMod RequestCondOperator = "mod" + + // 字符串相关 + RequestCondOperatorEqString RequestCondOperator = "eq" + RequestCondOperatorNeqString RequestCondOperator = "not" + RequestCondOperatorHasPrefix RequestCondOperator = "prefix" + RequestCondOperatorHasSuffix RequestCondOperator = "suffix" + RequestCondOperatorContainsString RequestCondOperator = "contains" + RequestCondOperatorNotContainsString RequestCondOperator = "not contains" + RequestCondOperatorIn RequestCondOperator = "in" + RequestCondOperatorNotIn RequestCondOperator = "not in" + RequestCondOperatorFileExt RequestCondOperator = "file ext" + RequestCondOperatorFileMimeType RequestCondOperator = "mime type" + RequestCondOperatorVersionRange RequestCondOperator = "version range" + + // IP相关 + RequestCondOperatorEqIP RequestCondOperator = "eq ip" + RequestCondOperatorGtIP RequestCondOperator = "gt ip" + RequestCondOperatorGteIP RequestCondOperator = "gte ip" + RequestCondOperatorLtIP RequestCondOperator = "lt ip" + RequestCondOperatorLteIP RequestCondOperator = "lte ip" + RequestCondOperatorIPRange RequestCondOperator = "ip range" + RequestCondOperatorIPMod10 RequestCondOperator = "ip mod 10" + RequestCondOperatorIPMod100 RequestCondOperator = "ip mod 100" + RequestCondOperatorIPMod RequestCondOperator = "ip mod" + + // 文件相关 + RequestCondOperatorFileExist RequestCondOperator = "file exist" + RequestCondOperatorFileNotExist RequestCondOperator = "file not exist" +) + +// 所有的运算符 +func AllRequestOperators() []maps.Map { + return []maps.Map{ + { + "name": "正则表达式匹配", + "op": RequestCondOperatorRegexp, + "description": "判断是否正则表达式匹配", + }, + { + "name": "正则表达式不匹配", + "op": RequestCondOperatorNotRegexp, + "description": "判断是否正则表达式不匹配", + }, + { + "name": "字符串等于", + "op": RequestCondOperatorEqString, + "description": "使用字符串对比参数值是否相等于某个值", + }, + { + "name": "字符串前缀", + "op": RequestCondOperatorHasPrefix, + "description": "参数值包含某个前缀", + }, + { + "name": "字符串后缀", + "op": RequestCondOperatorHasSuffix, + "description": "参数值包含某个后缀", + }, + { + "name": "字符串包含", + "op": RequestCondOperatorContainsString, + "description": "参数值包含另外一个字符串", + }, + { + "name": "字符串不包含", + "op": RequestCondOperatorNotContainsString, + "description": "参数值不包含另外一个字符串", + }, + { + "name": "字符串不等于", + "op": RequestCondOperatorNeqString, + "description": "使用字符串对比参数值是否不相等于某个值", + }, + { + "name": "在列表中", + "op": RequestCondOperatorIn, + "description": "判断参数值在某个列表中", + }, + { + "name": "不在列表中", + "op": RequestCondOperatorNotIn, + "description": "判断参数值不在某个列表中", + }, + { + "name": "扩展名", + "op": RequestCondOperatorFileExt, + "description": "判断小写的扩展名(不带点)在某个列表中", + }, + { + "name": "MimeType", + "op": RequestCondOperatorFileMimeType, + "description": "判断MimeType在某个列表中,支持类似于image/*的语法", + }, + { + "name": "版本号范围", + "op": RequestCondOperatorVersionRange, + "description": "判断版本号在某个范围内,格式为version1,version2", + }, + { + "name": "整数等于", + "op": RequestCondOperatorEqInt, + "description": "将参数转换为整数数字后进行对比", + }, + { + "name": "浮点数等于", + "op": RequestCondOperatorEqFloat, + "description": "将参数转换为可以有小数的浮点数字进行对比", + }, + { + "name": "数字大于", + "op": RequestCondOperatorGtFloat, + "description": "将参数转换为数字进行对比", + }, + { + "name": "数字大于等于", + "op": RequestCondOperatorGteFloat, + "description": "将参数转换为数字进行对比", + }, + { + "name": "数字小于", + "op": RequestCondOperatorLtFloat, + "description": "将参数转换为数字进行对比", + }, + { + "name": "数字小于等于", + "op": RequestCondOperatorLteFloat, + "description": "将参数转换为数字进行对比", + }, + { + "name": "整数取模10", + "op": RequestCondOperatorMod10, + "description": "对整数参数值取模,除数为10,对比值为余数", + }, + { + "name": "整数取模100", + "op": RequestCondOperatorMod100, + "description": "对整数参数值取模,除数为100,对比值为余数", + }, + { + "name": "整数取模", + "op": RequestCondOperatorMod, + "description": "对整数参数值取模,对比值格式为:除数,余数,比如10,1", + }, + { + "name": "IP等于", + "op": RequestCondOperatorEqIP, + "description": "将参数转换为IP进行对比", + }, + { + "name": "IP大于", + "op": RequestCondOperatorGtIP, + "description": "将参数转换为IP进行对比", + }, + { + "name": "IP大于等于", + "op": RequestCondOperatorGteIP, + "description": "将参数转换为IP进行对比", + }, + { + "name": "IP小于", + "op": RequestCondOperatorLtIP, + "description": "将参数转换为IP进行对比", + }, + { + "name": "IP小于等于", + "op": RequestCondOperatorLteIP, + "description": "将参数转换为IP进行对比", + }, + { + "name": "IP范围", + "op": RequestCondOperatorIPRange, + "description": "IP在某个范围之内,范围格式可以是英文逗号分隔的ip1,ip2,或者CIDR格式的ip/bits", + }, + { + "name": "IP取模10", + "op": RequestCondOperatorIPMod10, + "description": "对IP参数值取模,除数为10,对比值为余数", + }, + { + "name": "IP取模100", + "op": RequestCondOperatorIPMod100, + "description": "对IP参数值取模,除数为100,对比值为余数", + }, + { + "name": "IP取模", + "op": RequestCondOperatorIPMod, + "description": "对IP参数值取模,对比值格式为:除数,余数,比如10,1", + }, + + { + "name": "文件存在", + "op": RequestCondOperatorFileExist, + "description": "判断参数值解析后的文件是否存在", + }, + + { + "name": "文件不存在", + "op": RequestCondOperatorFileNotExist, + "description": "判断参数值解析后的文件是否不存在", + }, + } +} diff --git a/pkg/serverconfigs/shared/size_capacity.go b/pkg/serverconfigs/shared/size_capacity.go new file mode 100644 index 0000000..be2bc02 --- /dev/null +++ b/pkg/serverconfigs/shared/size_capacity.go @@ -0,0 +1,30 @@ +package shared + +type SizeCapacityUnit = string + +const ( + SizeCapacityUnitByte SizeCapacityUnit = "byte" + SizeCapacityUnitKB SizeCapacityUnit = "kb" + SizeCapacityUnitMB SizeCapacityUnit = "mb" + SizeCapacityUnitGB SizeCapacityUnit = "gb" +) + +type SizeCapacity struct { + Count int64 `json:"count" yaml:"count"` + Unit SizeCapacityUnit `json:"unit" yaml:"unit"` +} + +func (this *SizeCapacity) Bytes() int64 { + switch this.Unit { + case SizeCapacityUnitByte: + return this.Count + case SizeCapacityUnitKB: + return this.Count * 1024 + case SizeCapacityUnitMB: + return this.Count * 1024 * 1024 + case SizeCapacityUnitGB: + return this.Count * 1024 * 1024 * 1024 + default: + return this.Count + } +} diff --git a/pkg/serverconfigs/shared/time_duration.go b/pkg/serverconfigs/shared/time_duration.go new file mode 100644 index 0000000..af866d1 --- /dev/null +++ b/pkg/serverconfigs/shared/time_duration.go @@ -0,0 +1,36 @@ +package shared + +import "time" + +type TimeDurationUnit = string + +const ( + TimeDurationUnitMS TimeDurationUnit = "ms" + TimeDurationUnitSecond TimeDurationUnit = "second" + TimeDurationUnitMinute TimeDurationUnit = "minute" + TimeDurationUnitHour TimeDurationUnit = "hour" + TimeDurationUnitDay TimeDurationUnit = "day" +) + +// 时间间隔 +type TimeDuration struct { + Count int64 `yaml:"count" json:"count"` // 数量 + Unit TimeDurationUnit `yaml:"unit" json:"unit"` // 单位 +} + +func (this *TimeDuration) Duration() time.Duration { + switch this.Unit { + case TimeDurationUnitMS: + return time.Duration(this.Count) * time.Millisecond + case TimeDurationUnitSecond: + return time.Duration(this.Count) * time.Second + case TimeDurationUnitMinute: + return time.Duration(this.Count) * time.Minute + case TimeDurationUnitHour: + return time.Duration(this.Count) * time.Hour + case TimeDurationUnitDay: + return time.Duration(this.Count) * 24 * time.Hour + default: + return time.Duration(this.Count) * time.Second + } +} diff --git a/pkg/serverconfigs/sslconfigs/ssl.go b/pkg/serverconfigs/sslconfigs/ssl.go new file mode 100644 index 0000000..6f607ef --- /dev/null +++ b/pkg/serverconfigs/sslconfigs/ssl.go @@ -0,0 +1,207 @@ +package sslconfigs + +import ( + "crypto/tls" + "crypto/x509" + "errors" + "github.com/iwind/TeaGo/types" + "io/ioutil" + "net" + "regexp" + "strconv" + "strings" +) + +// TLS Version +type TLSVersion = string + +// Cipher Suites +type TLSCipherSuite = string + +// SSL配置 +type SSLConfig struct { + IsOn bool `yaml:"isOn" json:"isOn"` // 是否开启 + + Certs []*SSLCertConfig `yaml:"certs" json:"certs"` + ClientAuthType SSLClientAuthType `yaml:"clientAuthType" json:"clientAuthType"` // 客户端认证类型 + ClientCACertIds []string `yaml:"clientCACertIds" json:"clientCACertIds"` // 客户端认证CA + + Listen []string `yaml:"listen" json:"listen"` // 网络地址 + MinVersion TLSVersion `yaml:"minVersion" json:"minVersion"` // 支持的最小版本 + CipherSuites []TLSCipherSuite `yaml:"cipherSuites" json:"cipherSuites"` // 加密算法套件 + + HSTS *HSTSConfig `yaml:"hsts2" json:"hsts"` // HSTS配置,yaml之所以使用hsts2,是因为要和以前的版本分开 + HTTP2Disabled bool `yaml:"http2Disabled" json:"http2Disabled"` // 是否禁用HTTP2 + + nameMapping map[string]*tls.Certificate // dnsName => cert + + minVersion uint16 + cipherSuites []uint16 + + clientCAPool *x509.CertPool +} + +// 获取新对象 +func NewSSLConfig() *SSLConfig { + return &SSLConfig{} +} + +// 校验配置 +func (this *SSLConfig) Init() error { + if !this.IsOn { + return nil + } + + if len(this.Certs) == 0 { + return errors.New("no certificates in https config") + } + + for _, cert := range this.Certs { + err := cert.Init() + if err != nil { + return err + } + } + + if this.Listen == nil { + this.Listen = []string{} + } else { + for index, addr := range this.Listen { + _, _, err := net.SplitHostPort(addr) + if err != nil { + this.Listen[index] = strings.TrimSuffix(addr, ":") + ":443" + } + } + } + + // min version + this.convertMinVersion() + + // cipher suite categories + this.initCipherSuites() + + // hsts + if this.HSTS != nil { + err := this.HSTS.Init() + if err != nil { + return err + } + } + + // CA证书 + if len(this.ClientCACertIds) > 0 && this.ClientAuthType != SSLClientAuthTypeNoClientCert { + this.clientCAPool = x509.NewCertPool() + list := SharedSSLCertList() + for _, certId := range this.ClientCACertIds { + cert := list.FindCert(certId) + if cert == nil { + continue + } + if !cert.IsOn { + continue + } + data, err := ioutil.ReadFile(cert.FullCertPath()) + if err != nil { + return err + } + this.clientCAPool.AppendCertsFromPEM(data) + } + } + + return nil +} + +// 取得最小版本 +func (this *SSLConfig) TLSMinVersion() uint16 { + return this.minVersion +} + +// 套件 +func (this *SSLConfig) TLSCipherSuites() []uint16 { + return this.cipherSuites +} + +// 校验是否匹配某个域名 +func (this *SSLConfig) MatchDomain(domain string) (cert *tls.Certificate, ok bool) { + for _, cert := range this.Certs { + if cert.MatchDomain(domain) { + return cert.CertObject(), true + } + } + return nil, false +} + +// 取得第一个证书 +func (this *SSLConfig) FirstCert() *tls.Certificate { + for _, cert := range this.Certs { + return cert.CertObject() + } + return nil +} + +// 是否包含某个证书或密钥路径 +func (this *SSLConfig) ContainsFile(file string) bool { + for _, cert := range this.Certs { + if cert.CertFile == file || cert.KeyFile == file { + return true + } + } + return false +} + +// 删除证书文件 +func (this *SSLConfig) DeleteFiles() error { + var resultErr error = nil + + for _, cert := range this.Certs { + err := cert.DeleteFiles() + if err != nil { + resultErr = err + } + } + + return resultErr +} + +// 查找单个证书配置 +func (this *SSLConfig) FindCert(certId string) *SSLCertConfig { + for _, cert := range this.Certs { + if cert.Id == certId { + return cert + } + } + return nil +} + +// 添加证书 +func (this *SSLConfig) AddCert(cert *SSLCertConfig) { + this.Certs = append(this.Certs, cert) +} + +// CA证书Pool,用于TLS对客户端进行认证 +func (this *SSLConfig) CAPool() *x509.CertPool { + return this.clientCAPool +} + +// 分解所有监听地址 +func (this *SSLConfig) ParseListenAddresses() []string { + result := []string{} + var reg = regexp.MustCompile(`\[\s*(\d+)\s*[,:-]\s*(\d+)\s*]$`) + for _, addr := range this.Listen { + match := reg.FindStringSubmatch(addr) + if len(match) == 0 { + result = append(result, addr) + } else { + min := types.Int(match[1]) + max := types.Int(match[2]) + if min > max { + min, max = max, min + } + for i := min; i <= max; i++ { + newAddr := reg.ReplaceAllString(addr, ":"+strconv.Itoa(i)) + result = append(result, newAddr) + } + } + } + return result +} diff --git a/pkg/serverconfigs/sslconfigs/ssl_auth.go b/pkg/serverconfigs/sslconfigs/ssl_auth.go new file mode 100644 index 0000000..1298029 --- /dev/null +++ b/pkg/serverconfigs/sslconfigs/ssl_auth.go @@ -0,0 +1,75 @@ +package sslconfigs + +import ( + "crypto/tls" + "github.com/iwind/TeaGo/maps" +) + +// 认证类型 +type SSLClientAuthType = int + +const ( + SSLClientAuthTypeNoClientCert SSLClientAuthType = 0 + SSLClientAuthTypeRequestClientCert SSLClientAuthType = 1 + SSLClientAuthTypeRequireAnyClientCert SSLClientAuthType = 2 + SSLClientAuthTypeVerifyClientCertIfGiven SSLClientAuthType = 3 + SSLClientAuthTypeRequireAndVerifyClientCert SSLClientAuthType = 4 +) + +// 所有的客户端认证类型 +func AllSSLClientAuthTypes() []maps.Map { + return []maps.Map{ + { + "name": "不需要客户端证书", + "type": SSLClientAuthTypeNoClientCert, + "requireCA": false, + }, + { + "name": "请求客户端证书", + "type": SSLClientAuthTypeRequestClientCert, + "requireCA": true, + }, + { + "name": "需要客户端证书,但不校验", + "type": SSLClientAuthTypeRequireAnyClientCert, + "requireCA": true, + }, + { + "name": "有客户端证书的时候才校验", + "type": SSLClientAuthTypeVerifyClientCertIfGiven, + "requireCA": true, + }, + { + "name": "校验客户端提供的证书", + "type": SSLClientAuthTypeRequireAndVerifyClientCert, + "requireCA": true, + }, + } +} + +// 查找单个认证方式的名称 +func FindSSLClientAuthTypeName(authType SSLClientAuthType) string { + for _, m := range AllSSLClientAuthTypes() { + if m.GetInt("type") == authType { + return m.GetString("name") + } + } + return "" +} + +// 认证类型和tls包内类型的映射 +func GoSSLClientAuthType(authType SSLClientAuthType) tls.ClientAuthType { + switch authType { + case SSLClientAuthTypeNoClientCert: + return tls.NoClientCert + case SSLClientAuthTypeRequestClientCert: + return tls.RequestClientCert + case SSLClientAuthTypeRequireAnyClientCert: + return tls.RequireAnyClientCert + case SSLClientAuthTypeVerifyClientCertIfGiven: + return tls.VerifyClientCertIfGiven + case SSLClientAuthTypeRequireAndVerifyClientCert: + return tls.RequireAndVerifyClientCert + } + return tls.NoClientCert +} diff --git a/pkg/serverconfigs/sslconfigs/ssl_cert.go b/pkg/serverconfigs/sslconfigs/ssl_cert.go new file mode 100644 index 0000000..929c482 --- /dev/null +++ b/pkg/serverconfigs/sslconfigs/ssl_cert.go @@ -0,0 +1,271 @@ +package sslconfigs + +import ( + "crypto/tls" + "crypto/x509" + "crypto/x509/pkix" + "encoding/pem" + "errors" + "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/configutils" + "github.com/iwind/TeaGo/Tea" + "github.com/iwind/TeaGo/files" + "github.com/iwind/TeaGo/lists" + "github.com/iwind/TeaGo/utils/string" + "io/ioutil" + "strings" + "time" +) + +// SSL证书 +type SSLCertConfig struct { + Id string `yaml:"id" json:"id"` + IsOn bool `yaml:"isOn" json:"isOn"` + Description string `yaml:"description" json:"description"` // 说明 + CertFile string `yaml:"certFile" json:"certFile"` + KeyFile string `yaml:"keyFile" json:"keyFile"` + IsLocal bool `yaml:"isLocal" json:"isLocal"` // 是否为本地文件 + TaskId string `yaml:"taskId" json:"taskId"` // 生成证书任务ID + IsShared bool `yaml:"isShared" json:"isShared"` // 是否为公用组件 + ServerName string `yaml:"serverName" json:"serverName"` // 证书使用的主机名,在请求TLS服务器时需要 + IsCA bool `yaml:"isCA" json:"isCA"` // 是否为CA证书 + + dnsNames []string + cert *tls.Certificate + timeBefore time.Time + timeAfter time.Time + issuer pkix.Name +} + +// 获取新的SSL证书 +func NewSSLCertConfig(certFile string, keyFile string) *SSLCertConfig { + return &SSLCertConfig{ + IsOn: true, + Id: stringutil.Rand(16), + CertFile: certFile, + KeyFile: keyFile, + } +} + +// 校验 +func (this *SSLCertConfig) Init() error { + if this.IsShared { + shared := this.FindShared() + if shared == nil { + return errors.New("the shared cert has been deleted") + } + + // 拷贝之前需要保留的 + serverName := this.ServerName + + // copy + configutils.CopyStructObject(this, shared) + this.ServerName = serverName + } + + this.dnsNames = []string{} + + if len(this.CertFile) == 0 { + return errors.New("cert file should not be empty") + } + + // 分析证书 + if this.IsCA { // CA证书 + data, err := ioutil.ReadFile(this.FullCertPath()) + if err != nil { + return err + } + + index := -1 + this.cert = &tls.Certificate{ + Certificate: [][]byte{}, + } + for { + index++ + + block, rest := pem.Decode(data) + if block == nil { + break + } + if len(rest) == 0 { + break + } + this.cert.Certificate = append(this.cert.Certificate, block.Bytes) + data = rest + c, err := x509.ParseCertificate(block.Bytes) + if err != nil { + return err + } + if c == nil { + return errors.New("no available certificates in file") + } + + dnsNames := c.DNSNames + if len(dnsNames) > 0 { + for _, dnsName := range dnsNames { + if !lists.ContainsString(this.dnsNames, dnsName) { + this.dnsNames = append(this.dnsNames, dnsName) + } + } + } + + if index == 0 { + this.timeBefore = c.NotBefore + this.timeAfter = c.NotAfter + this.issuer = c.Issuer + } + } + } else { // 证书+私钥 + if len(this.KeyFile) == 0 { + return errors.New("key file should not be empty") + } + cert, err := tls.LoadX509KeyPair(this.FullCertPath(), this.FullKeyPath()) + if err != nil { + return errors.New("load certificate '" + this.CertFile + "', '" + this.KeyFile + "' failed:" + err.Error()) + } + + for index, data := range cert.Certificate { + c, err := x509.ParseCertificate(data) + if err != nil { + continue + } + dnsNames := c.DNSNames + if len(dnsNames) > 0 { + for _, dnsName := range dnsNames { + if !lists.ContainsString(this.dnsNames, dnsName) { + this.dnsNames = append(this.dnsNames, dnsName) + } + } + } + + if index == 0 { + this.timeBefore = c.NotBefore + this.timeAfter = c.NotAfter + this.issuer = c.Issuer + } + } + + this.cert = &cert + } + return nil +} + +// 查找共享的证书 +func (this *SSLCertConfig) FindShared() *SSLCertConfig { + if !this.IsShared { + return nil + } + return SharedSSLCertList().FindCert(this.Id) +} + +// 证书文件路径 +func (this *SSLCertConfig) FullCertPath() string { + if len(this.CertFile) == 0 { + return "" + } + if !strings.ContainsAny(this.CertFile, "/\\") { + return Tea.ConfigFile(this.CertFile) + } + return this.CertFile +} + +// 密钥文件路径 +func (this *SSLCertConfig) FullKeyPath() string { + if len(this.KeyFile) == 0 { + return "" + } + if !strings.ContainsAny(this.KeyFile, "/\\") { + return Tea.ConfigFile(this.KeyFile) + } + return this.KeyFile +} + +// 校验是否匹配某个域名 +func (this *SSLCertConfig) MatchDomain(domain string) bool { + if len(this.dnsNames) == 0 { + return false + } + return configutils.MatchDomains(this.dnsNames, domain) +} + +// 证书中的域名 +func (this *SSLCertConfig) DNSNames() []string { + return this.dnsNames +} + +// 获取证书对象 +func (this *SSLCertConfig) CertObject() *tls.Certificate { + return this.cert +} + +// 开始时间 +func (this *SSLCertConfig) TimeBefore() time.Time { + return this.timeBefore +} + +// 结束时间 +func (this *SSLCertConfig) TimeAfter() time.Time { + return this.timeAfter +} + +// 发行信息 +func (this *SSLCertConfig) Issuer() pkix.Name { + return this.issuer +} + +// 删除文件 +func (this *SSLCertConfig) DeleteFiles() error { + if this.IsLocal { + return nil + } + + var resultErr error = nil + if len(this.CertFile) > 0 && !strings.ContainsAny(this.CertFile, "/\\") { + err := files.NewFile(this.FullCertPath()).Delete() + if err != nil { + resultErr = err + } + } + + if len(this.KeyFile) > 0 && !strings.ContainsAny(this.KeyFile, "/\\") { + err := files.NewFile(this.FullKeyPath()).Delete() + if err != nil { + resultErr = err + } + } + return resultErr +} + +// 读取证书文件 +func (this *SSLCertConfig) ReadCert() ([]byte, error) { + if len(this.CertFile) == 0 { + return nil, errors.New("cert file should not be empty") + } + + if this.IsLocal { + return ioutil.ReadFile(this.CertFile) + } + + return ioutil.ReadFile(Tea.ConfigFile(this.CertFile)) +} + +// 读取密钥文件 +func (this *SSLCertConfig) ReadKey() ([]byte, error) { + if len(this.KeyFile) == 0 { + return nil, errors.New("key file should not be empty") + } + + if this.IsLocal { + return ioutil.ReadFile(this.KeyFile) + } + + return ioutil.ReadFile(Tea.ConfigFile(this.KeyFile)) +} + +// 匹配关键词 +func (this *SSLCertConfig) MatchKeyword(keyword string) (matched bool, name string, tags []string) { + if configutils.MatchKeyword(this.Description, keyword) { + matched = true + name = this.Description + } + return +} diff --git a/pkg/serverconfigs/sslconfigs/ssl_cert_list.go b/pkg/serverconfigs/sslconfigs/ssl_cert_list.go new file mode 100644 index 0000000..01de581 --- /dev/null +++ b/pkg/serverconfigs/sslconfigs/ssl_cert_list.go @@ -0,0 +1,86 @@ +package sslconfigs + +import ( + "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/shared" + "github.com/iwind/TeaGo/Tea" + "github.com/iwind/TeaGo/logs" + "gopkg.in/yaml.v3" + "io/ioutil" +) + +const ( + sslCertListFilename = "ssl.certs.conf" +) + +// 获取证书列表实例 +// 一定会返回不为nil的值 +func SharedSSLCertList() *SSLCertList { + data, err := ioutil.ReadFile(Tea.ConfigFile(sslCertListFilename)) + if err != nil { + return NewSSLCertList() + } + + list := &SSLCertList{} + err = yaml.Unmarshal(data, list) + if err != nil { + logs.Error(err) + return NewSSLCertList() + } + + return list +} + +// 公共的SSL证书列表 +type SSLCertList struct { + Certs []*SSLCertConfig `yaml:"certs" json:"certs"` // 证书 +} + +// 获取新对象 +func NewSSLCertList() *SSLCertList { + return &SSLCertList{ + Certs: []*SSLCertConfig{}, + } +} + +// 添加证书 +func (this *SSLCertList) AddCert(cert *SSLCertConfig) { + this.Certs = append(this.Certs, cert) +} + +// 删除证书 +func (this *SSLCertList) RemoveCert(certId string) { + result := []*SSLCertConfig{} + for _, cert := range this.Certs { + if cert.Id == certId { + continue + } + result = append(result, cert) + } + this.Certs = result +} + +// 查找证书 +func (this *SSLCertList) FindCert(certId string) *SSLCertConfig { + if len(certId) == 0 { + return nil + } + for _, cert := range this.Certs { + if cert.Id == certId { + return cert + } + } + return nil +} + +// 保存 +func (this *SSLCertList) Save() error { + shared.Locker.Lock() + defer shared.Locker.Unlock() + + data, err := yaml.Marshal(this) + if err != nil { + return err + } + + return ioutil.WriteFile(Tea.ConfigFile(sslCertListFilename), data, 0777) +} diff --git a/pkg/serverconfigs/sslconfigs/ssl_go_1.11.go b/pkg/serverconfigs/sslconfigs/ssl_go_1.11.go new file mode 100644 index 0000000..fbeade1 --- /dev/null +++ b/pkg/serverconfigs/sslconfigs/ssl_go_1.11.go @@ -0,0 +1,124 @@ +// +build !go1.12 + +package sslconfigs + +import "crypto/tls" + +var AllTlsVersions = []TLSVersion{"SSL 3.0", "TLS 1.0", "TLS 1.1", "TLS 1.2"} + +var AllTLSCipherSuites = []TLSCipherSuite{ + "TLS_RSA_WITH_RC4_128_SHA", + "TLS_RSA_WITH_3DES_EDE_CBC_SHA", + "TLS_RSA_WITH_AES_128_CBC_SHA", + "TLS_RSA_WITH_AES_256_CBC_SHA", + "TLS_RSA_WITH_AES_128_CBC_SHA256", + "TLS_RSA_WITH_AES_128_GCM_SHA256", + "TLS_RSA_WITH_AES_256_GCM_SHA384", + "TLS_ECDHE_ECDSA_WITH_RC4_128_SHA", + "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA", + "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA", + "TLS_ECDHE_RSA_WITH_RC4_128_SHA", + "TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA", + "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA", + "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA", + "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256", + "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256", + "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", + "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256", + "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384", + "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384", + "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305", + "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305", +} + +var TLSModernCipherSuites = []string{ + "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305", + "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305", + "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", + "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256", + "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384", + "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384", +} + +var TLSIntermediateCipherSuites = []string{ + "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305", + "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305", + "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", + "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256", + "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384", + "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384", + "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256", + "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256", + + "TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA", + "TLS_RSA_WITH_3DES_EDE_CBC_SHA", +} + +func (this *SSLConfig) convertMinVersion() { + switch this.MinVersion { + case "SSL 3.0": + this.minVersion = tls.VersionSSL30 + case "TLS 1.0": + this.minVersion = tls.VersionTLS10 + case "TLS 1.1": + this.minVersion = tls.VersionTLS11 + case "TLS 1.2": + this.minVersion = tls.VersionTLS12 + default: + this.minVersion = tls.VersionTLS10 + } +} + +func (this *SSLConfig) initCipherSuites() { + // cipher suites + suites := []uint16{} + for _, suite := range this.CipherSuites { + switch suite { + case "TLS_RSA_WITH_RC4_128_SHA": + suites = append(suites, tls.TLS_RSA_WITH_RC4_128_SHA) + case "TLS_RSA_WITH_3DES_EDE_CBC_SHA": + suites = append(suites, tls.TLS_RSA_WITH_3DES_EDE_CBC_SHA) + case "TLS_RSA_WITH_AES_128_CBC_SHA": + suites = append(suites, tls.TLS_RSA_WITH_AES_128_CBC_SHA) + case "TLS_RSA_WITH_AES_256_CBC_SHA": + suites = append(suites, tls.TLS_RSA_WITH_AES_256_CBC_SHA) + case "TLS_RSA_WITH_AES_128_CBC_SHA256": + suites = append(suites, tls.TLS_RSA_WITH_AES_128_CBC_SHA256) + case "TLS_RSA_WITH_AES_128_GCM_SHA256": + suites = append(suites, tls.TLS_RSA_WITH_AES_128_GCM_SHA256) + case "TLS_RSA_WITH_AES_256_GCM_SHA384": + suites = append(suites, tls.TLS_RSA_WITH_AES_256_GCM_SHA384) + case "TLS_ECDHE_ECDSA_WITH_RC4_128_SHA": + suites = append(suites, tls.TLS_ECDHE_ECDSA_WITH_RC4_128_SHA) + case "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA": + suites = append(suites, tls.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA) + case "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA": + suites = append(suites, tls.TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA) + case "TLS_ECDHE_RSA_WITH_RC4_128_SHA": + suites = append(suites, tls.TLS_ECDHE_RSA_WITH_RC4_128_SHA) + case "TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA": + suites = append(suites, tls.TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA) + case "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA": + suites = append(suites, tls.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) + case "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA": + suites = append(suites, tls.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA) + case "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256": + suites = append(suites, tls.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256) + case "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256": + suites = append(suites, tls.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) + case "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256": + suites = append(suites, tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) + case "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256": + suites = append(suites, tls.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256) + case "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384": + suites = append(suites, tls.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) + case "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384": + suites = append(suites, tls.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384) + case "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305": + suites = append(suites, tls.TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305) + case "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305": + suites = append(suites, tls.TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305) + } + } + this.cipherSuites = suites +} diff --git a/pkg/serverconfigs/sslconfigs/ssl_go_1.12.go b/pkg/serverconfigs/sslconfigs/ssl_go_1.12.go new file mode 100644 index 0000000..b84809f --- /dev/null +++ b/pkg/serverconfigs/sslconfigs/ssl_go_1.12.go @@ -0,0 +1,148 @@ +// +build go1.12 + +package sslconfigs + +import ( + "crypto/tls" + "os" +) + +var AllTlsVersions = []TLSVersion{"SSL 3.0", "TLS 1.0", "TLS 1.1", "TLS 1.2", "TLS 1.3"} + +var AllTLSCipherSuites = []TLSCipherSuite{ + "TLS_RSA_WITH_RC4_128_SHA", + "TLS_RSA_WITH_3DES_EDE_CBC_SHA", + "TLS_RSA_WITH_AES_128_CBC_SHA", + "TLS_RSA_WITH_AES_256_CBC_SHA", + "TLS_RSA_WITH_AES_128_CBC_SHA256", + "TLS_RSA_WITH_AES_128_GCM_SHA256", + "TLS_RSA_WITH_AES_256_GCM_SHA384", + "TLS_ECDHE_ECDSA_WITH_RC4_128_SHA", + "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA", + "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA", + "TLS_ECDHE_RSA_WITH_RC4_128_SHA", + "TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA", + "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA", + "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA", + "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256", + "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256", + "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", + "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256", + "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384", + "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384", + "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305", + "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305", + "TLS_AES_128_GCM_SHA256", + "TLS_AES_256_GCM_SHA384", + "TLS_CHACHA20_POLY1305_SHA256", +} + +var TLSModernCipherSuites = []string{ + "TLS_AES_128_GCM_SHA256", + "TLS_CHACHA20_POLY1305_SHA256", + "TLS_AES_256_GCM_SHA384", + + "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305", + "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305", + "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", + "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256", + "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384", + "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384", +} + +var TLSIntermediateCipherSuites = []string{ + "TLS_AES_128_GCM_SHA256", + "TLS_CHACHA20_POLY1305_SHA256", + "TLS_AES_256_GCM_SHA384", + + "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305", + "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305", + "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", + "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256", + "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384", + "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384", + "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256", + "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256", + + "TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA", + "TLS_RSA_WITH_3DES_EDE_CBC_SHA", +} + +func (this *SSLConfig) convertMinVersion() { + switch this.MinVersion { + case "SSL 3.0": + this.minVersion = tls.VersionSSL30 + case "TLS 1.0": + this.minVersion = tls.VersionTLS10 + case "TLS 1.1": + this.minVersion = tls.VersionTLS11 + case "TLS 1.2": + this.minVersion = tls.VersionTLS12 + case "TLS 1.3": + this.minVersion = tls.VersionTLS13 + + os.Setenv("GODEBUG", "tls13=1") // TODO should be removed in go 1.14, in go 1.12 tls IS NOT FULL IMPLEMENTED YET + default: + this.minVersion = tls.VersionTLS10 + } +} + +func (this *SSLConfig) initCipherSuites() { + // cipher suites + suites := []uint16{} + for _, suite := range this.CipherSuites { + switch suite { + case "TLS_RSA_WITH_RC4_128_SHA": + suites = append(suites, tls.TLS_RSA_WITH_RC4_128_SHA) + case "TLS_RSA_WITH_3DES_EDE_CBC_SHA": + suites = append(suites, tls.TLS_RSA_WITH_3DES_EDE_CBC_SHA) + case "TLS_RSA_WITH_AES_128_CBC_SHA": + suites = append(suites, tls.TLS_RSA_WITH_AES_128_CBC_SHA) + case "TLS_RSA_WITH_AES_256_CBC_SHA": + suites = append(suites, tls.TLS_RSA_WITH_AES_256_CBC_SHA) + case "TLS_RSA_WITH_AES_128_CBC_SHA256": + suites = append(suites, tls.TLS_RSA_WITH_AES_128_CBC_SHA256) + case "TLS_RSA_WITH_AES_128_GCM_SHA256": + suites = append(suites, tls.TLS_RSA_WITH_AES_128_GCM_SHA256) + case "TLS_RSA_WITH_AES_256_GCM_SHA384": + suites = append(suites, tls.TLS_RSA_WITH_AES_256_GCM_SHA384) + case "TLS_ECDHE_ECDSA_WITH_RC4_128_SHA": + suites = append(suites, tls.TLS_ECDHE_ECDSA_WITH_RC4_128_SHA) + case "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA": + suites = append(suites, tls.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA) + case "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA": + suites = append(suites, tls.TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA) + case "TLS_ECDHE_RSA_WITH_RC4_128_SHA": + suites = append(suites, tls.TLS_ECDHE_RSA_WITH_RC4_128_SHA) + case "TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA": + suites = append(suites, tls.TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA) + case "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA": + suites = append(suites, tls.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) + case "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA": + suites = append(suites, tls.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA) + case "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256": + suites = append(suites, tls.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256) + case "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256": + suites = append(suites, tls.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) + case "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256": + suites = append(suites, tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) + case "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256": + suites = append(suites, tls.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256) + case "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384": + suites = append(suites, tls.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) + case "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384": + suites = append(suites, tls.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384) + case "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305": + suites = append(suites, tls.TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305) + case "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305": + suites = append(suites, tls.TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305) + case "TLS_AES_128_GCM_SHA256": + suites = append(suites, tls.TLS_AES_128_GCM_SHA256) + case "TLS_AES_256_GCM_SHA384": + suites = append(suites, tls.TLS_AES_256_GCM_SHA384) + case "TLS_CHACHA20_POLY1305_SHA256": + suites = append(suites, tls.TLS_CHACHA20_POLY1305_SHA256) + } + } + this.cipherSuites = suites +} diff --git a/pkg/serverconfigs/sslconfigs/ssl_hsts.go b/pkg/serverconfigs/sslconfigs/ssl_hsts.go new file mode 100644 index 0000000..591fbda --- /dev/null +++ b/pkg/serverconfigs/sslconfigs/ssl_hsts.go @@ -0,0 +1,63 @@ +package sslconfigs + +import ( + "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/configutils" + "strconv" + "strings" +) + +// HSTS设置 +// 参考: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security +type HSTSConfig struct { + IsOn bool `yaml:"isOn" json:"isOn"` + MaxAge int `yaml:"maxAge" json:"maxAge"` // 单位秒 + IncludeSubDomains bool `yaml:"includeSubDomains" json:"includeSubDomains"` + Preload bool `yaml:"preload" json:"preload"` + Domains []string `yaml:"domains" json:"domains"` + + hasDomains bool + headerValue string +} + +// 校验 +func (this *HSTSConfig) Init() error { + this.hasDomains = len(this.Domains) > 0 + this.headerValue = this.asHeaderValue() + return nil +} + +// 判断是否匹配域名 +func (this *HSTSConfig) Match(domain string) bool { + if !this.hasDomains { + return true + } + return configutils.MatchDomains(this.Domains, domain) +} + +// Header Key +func (this *HSTSConfig) HeaderKey() string { + return "Strict-Transport-Security" +} + +// 取得当前的Header值 +func (this *HSTSConfig) HeaderValue() string { + return this.headerValue +} + +// 转换为Header值 +func (this *HSTSConfig) asHeaderValue() string { + b := strings.Builder{} + b.WriteString("max-age=") + if this.MaxAge > 0 { + b.WriteString(strconv.Itoa(this.MaxAge)) + } else { + b.WriteString("31536000") // 1 year + } + if this.IncludeSubDomains { + b.WriteString("; includeSubDomains") + } + if this.Preload { + b.WriteString("; preload") + } + return b.String() +} diff --git a/pkg/serverconfigs/sslconfigs/ssl_hsts_test.go b/pkg/serverconfigs/sslconfigs/ssl_hsts_test.go new file mode 100644 index 0000000..506a2b1 --- /dev/null +++ b/pkg/serverconfigs/sslconfigs/ssl_hsts_test.go @@ -0,0 +1,39 @@ +package sslconfigs + +import ( + "github.com/iwind/TeaGo/assert" + "testing" +) + +func TestHSTSConfig(t *testing.T) { + h := &HSTSConfig{} + h.Init() + t.Log(h.HeaderValue()) + + h.IncludeSubDomains = true + h.Init() + t.Log(h.HeaderValue()) + + h.Preload = true + h.Init() + t.Log(h.HeaderValue()) + + h.IncludeSubDomains = false + h.Init() + t.Log(h.HeaderValue()) + + h.MaxAge = 86400 + h.Init() + t.Log(h.HeaderValue()) + + a := assert.NewAssertion(t) + a.IsTrue(h.Match("abc.com")) + + h.Domains = []string{"abc.com"} + h.Init() + a.IsTrue(h.Match("abc.com")) + + h.Domains = []string{"1.abc.com"} + h.Init() + a.IsFalse(h.Match("abc.com")) +} diff --git a/pkg/serverconfigs/web_config.go b/pkg/serverconfigs/web_config.go new file mode 100644 index 0000000..5daec68 --- /dev/null +++ b/pkg/serverconfigs/web_config.go @@ -0,0 +1,10 @@ +package serverconfigs + +type WebConfig struct { + IsOn bool `yaml:"isOn" json:"isOn"` + + Locations []*LocationConfig `yaml:"locations" json:"locations"` // 路径规则 TODO + + // 本地静态资源配置 + Root string `yaml:"root" json:"root"` // 资源根目录 TODO +}