mirror of
https://github.com/TeaOSLab/EdgeAPI.git
synced 2025-11-03 15:00:27 +08:00
阶段性提交
This commit is contained in:
@@ -1,31 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
ADMIN_PROJECT="../../EdgeAdmin"
|
|
||||||
NODE_PROJECT="../../EdgeNode"
|
|
||||||
|
|
||||||
rm -f ../internal/rpc/pb/*
|
|
||||||
protoc --go_out=plugins=grpc:../internal/rpc --proto_path=../internal/rpc/protos ../internal/rpc/protos/*.proto
|
|
||||||
|
|
||||||
# admin
|
|
||||||
function pub() {
|
|
||||||
cp ../internal/rpc/protos/service_${2}.proto ${1}/internal/rpc/protos/
|
|
||||||
cp ../internal/rpc/pb/service_${2}.pb.go ${1}/internal/rpc/pb/
|
|
||||||
}
|
|
||||||
|
|
||||||
pub ${ADMIN_PROJECT} admin
|
|
||||||
pub ${ADMIN_PROJECT} node
|
|
||||||
pub ${ADMIN_PROJECT} node_cluster
|
|
||||||
pub ${ADMIN_PROJECT} node_grant
|
|
||||||
pub ${ADMIN_PROJECT} node_ip_address
|
|
||||||
pub ${ADMIN_PROJECT} server
|
|
||||||
pub ${ADMIN_PROJECT} api_node
|
|
||||||
|
|
||||||
cp ../internal/rpc/pb/model_*.go ${ADMIN_PROJECT}/internal/rpc/pb/
|
|
||||||
|
|
||||||
# node
|
|
||||||
pub ${NODE_PROJECT} node
|
|
||||||
|
|
||||||
cp ../internal/rpc/pb/model_node.pb.go ${NODE_PROJECT}/internal/rpc/pb/
|
|
||||||
cp ../internal/rpc/pb/model_node_login.pb.go ${NODE_PROJECT}/internal/rpc/pb/
|
|
||||||
cp ../internal/rpc/pb/model_node_grant.pb.go ${NODE_PROJECT}/internal/rpc/pb/
|
|
||||||
cp ../internal/rpc/pb/model_node_cluster.pb.go ${NODE_PROJECT}/internal/rpc/pb/
|
|
||||||
9
go.mod
9
go.mod
@@ -1,14 +1,17 @@
|
|||||||
module github.com/TeaOSLab/EdgeAPI
|
module github.com/TeaOSLab/EdgeAPI
|
||||||
|
|
||||||
go 1.14
|
go 1.15
|
||||||
|
|
||||||
|
replace github.com/TeaOSLab/EdgeCommon => ../EdgeCommon
|
||||||
|
|
||||||
require (
|
require (
|
||||||
|
github.com/TeaOSLab/EdgeCommon v0.0.0-00010101000000-000000000000
|
||||||
github.com/go-sql-driver/mysql v1.5.0
|
github.com/go-sql-driver/mysql v1.5.0
|
||||||
github.com/go-yaml/yaml v2.1.0+incompatible
|
github.com/go-yaml/yaml v2.1.0+incompatible
|
||||||
github.com/golang/protobuf v1.4.2
|
github.com/golang/protobuf v1.4.2
|
||||||
github.com/iwind/TeaGo v0.0.0-20200727075925-7e7e67b44f2d
|
github.com/iwind/TeaGo v0.0.0-20200910072805-729cffe36729
|
||||||
github.com/pkg/sftp v1.12.0
|
github.com/pkg/sftp v1.12.0
|
||||||
golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a
|
golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a
|
||||||
google.golang.org/grpc v1.30.0
|
google.golang.org/grpc v1.32.0
|
||||||
google.golang.org/protobuf v1.25.0
|
google.golang.org/protobuf v1.25.0
|
||||||
)
|
)
|
||||||
|
|||||||
62
go.sum
62
go.sum
@@ -1,18 +1,30 @@
|
|||||||
cloud.google.com/go v0.26.0 h1:e0WKqKTd5BnrG8aKH3J3h+QvEIQtSUcf2n5UZ5ZgLtQ=
|
cloud.google.com/go v0.26.0 h1:e0WKqKTd5BnrG8aKH3J3h+QvEIQtSUcf2n5UZ5ZgLtQ=
|
||||||
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
|
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/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/StackExchange/wmi v0.0.0-20190523213315-cbe66965904d/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg=
|
||||||
|
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/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/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/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
|
||||||
github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
|
github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
|
||||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
|
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||||
|
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.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.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/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/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.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
|
||||||
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
|
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-ole/go-ole v1.2.4/go.mod h1:XCwSNxSkXRo4vlyPy93sltvi/qJq0jqQhjqQNIwKuxM=
|
||||||
github.com/go-redis/redis v6.15.8+incompatible/go.mod h1:NAIEuMOZ/fxfXJIrKDQDz8wamY7mA7PouImQ2Jvg6kA=
|
github.com/go-redis/redis v6.15.8+incompatible/go.mod h1:NAIEuMOZ/fxfXJIrKDQDz8wamY7mA7PouImQ2Jvg6kA=
|
||||||
|
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 h1:ozyZYNQW3x3HtqT1jira07DN2PArx2v7/mN66gGcHOs=
|
github.com/go-sql-driver/mysql v1.5.0 h1:ozyZYNQW3x3HtqT1jira07DN2PArx2v7/mN66gGcHOs=
|
||||||
github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
|
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 h1:RYi2hDdss1u4YE7GwixGzWwVo47T8UQwnTLB6vQiq+o=
|
||||||
@@ -39,49 +51,78 @@ github.com/google/go-cmp v0.4.0 h1:xsAVV57WRhGj6kEIi8ReJzQlHHqcBYCElAvkovg3B/4=
|
|||||||
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
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 h1:/QaMHBdZ26BB3SSst0Iwl10Epc+xhTquomWX0oZEB6w=
|
||||||
github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
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/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
|
||||||
github.com/iwind/TeaGo v0.0.0-20200727075925-7e7e67b44f2d h1:V7HA0wUOdmZbXJTVpiUEvSD4ARKHwMLMmiCccfkqf24=
|
github.com/iwind/TeaGo v0.0.0-20200822074248-b1cf7248c98a/go.mod h1:KU4mS7QNiZ7QWEuDBk1zw0/Q2LrAPZv3tycEFBsuUwc=
|
||||||
github.com/iwind/TeaGo v0.0.0-20200727075925-7e7e67b44f2d/go.mod h1:zjM7k+b+Jthhf0T0fKwuF0iy4TWb5SsU1gmKR2l+OmE=
|
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 h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr68=
|
||||||
|
github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
|
||||||
github.com/kr/fs v0.1.0 h1:Jskdu9ieNAYnjxsi0LbQp1ulIKZV1LAFgK1tWhpZgl8=
|
github.com/kr/fs v0.1.0 h1:Jskdu9ieNAYnjxsi0LbQp1ulIKZV1LAFgK1tWhpZgl8=
|
||||||
github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg=
|
github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg=
|
||||||
|
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/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 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
|
||||||
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
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 h1:ZqeYNhU3OHLH3mGKHDcjJRFFRrJa6eAM5H+CtDdOsPc=
|
||||||
|
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
|
||||||
|
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
|
||||||
|
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
|
||||||
|
github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742 h1:Esafd1046DLDQ0W1YjYsBW+p8U2u7vzgW2SQVmlNazg=
|
||||||
|
github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
|
||||||
|
github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI=
|
||||||
|
github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
|
||||||
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs=
|
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/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/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.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.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk=
|
||||||
github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY=
|
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.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=
|
||||||
github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
|
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/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
||||||
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||||
github.com/pkg/sftp v1.12.0 h1:/f3b24xrDhkhddlaobPe2JgBqfdt+gC/NYl0QY9IOuI=
|
github.com/pkg/sftp v1.12.0 h1:/f3b24xrDhkhddlaobPe2JgBqfdt+gC/NYl0QY9IOuI=
|
||||||
github.com/pkg/sftp v1.12.0/go.mod h1:fUqqXB5vEgVCZ131L+9say31RAri6aF6KDViawhxKK8=
|
github.com/pkg/sftp v1.12.0/go.mod h1:fUqqXB5vEgVCZ131L+9say31RAri6aF6KDViawhxKK8=
|
||||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||||
github.com/pquerna/ffjson v0.0.0-20190930134022-aa0246cd15f7 h1:xoIK0ctDddBMnc74udxJYBqlo9Ylnsp1waqjLsnef20=
|
|
||||||
github.com/pquerna/ffjson v0.0.0-20190930134022-aa0246cd15f7/go.mod h1:YARuvh7BUWHNhzDq2OM5tzR2RiCcN2D7sapiKyCel/M=
|
github.com/pquerna/ffjson v0.0.0-20190930134022-aa0246cd15f7/go.mod h1:YARuvh7BUWHNhzDq2OM5tzR2RiCcN2D7sapiKyCel/M=
|
||||||
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
|
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
|
||||||
|
github.com/shirou/gopsutil v2.20.7+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA=
|
||||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
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 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0=
|
github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0=
|
||||||
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
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 h1:VklqNMn3ovrHsnt90PveolxSbWFaJdECFbxSq0Mqo2M=
|
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2 h1:VklqNMn3ovrHsnt90PveolxSbWFaJdECFbxSq0Mqo2M=
|
||||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
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/crypto v0.0.0-20200820211705-5c72a883971a h1:vclmkQCjlDX5OydZ9wv8rBCcS0QyQY66Mpf/7BZbInM=
|
golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a h1:vclmkQCjlDX5OydZ9wv8rBCcS0QyQY66Mpf/7BZbInM=
|
||||||
golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
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-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-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
|
||||||
golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
|
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-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-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-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-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 h1:oWX7TPOiFAMXLq8o0ikBYfCJVlRHBcsciT5bXOrH628=
|
||||||
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
|
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3 h1:0GoQqolDA55aaLxZyTzK/Y2ePZzZTUrRacwib7cNsYQ=
|
||||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/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 h1:AeiKBIuRw3UomYXSbLy0Mc2dDLfdtbT/IVn4keq83P0=
|
||||||
golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
|
golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
|
||||||
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be h1:vEDujvNQGv4jgYKudGeI/+DAX4Jffq6hpD55MmoEvKs=
|
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be h1:vEDujvNQGv4jgYKudGeI/+DAX4Jffq6hpD55MmoEvKs=
|
||||||
@@ -93,9 +134,13 @@ golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5h
|
|||||||
golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/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 h1:1BGLXjeY4akVXGgbC9HugT3Jv3hCI0z56oJR5vAMgBU=
|
||||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
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 h1:+R4KGOnez64A81RvjARKc4UT5/tI9ujCIVX+P5KiHuI=
|
||||||
golang.org/x/sys v0.0.0-20190412213103-97732733099d/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-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-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-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-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 h1:DYfZAGf2WMFjMxbgTjaC+2HC7NkNAQs+6Q8b9WEB/F4=
|
||||||
@@ -109,6 +154,8 @@ golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGm
|
|||||||
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
|
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-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-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 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
|
||||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||||
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
|
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
|
||||||
@@ -116,6 +163,7 @@ google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7
|
|||||||
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
|
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
|
||||||
google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55 h1:gSJIx1SDwno+2ElGhA4+qG2zF97qiUzTM+rQ0klBOcE=
|
google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55 h1:gSJIx1SDwno+2ElGhA4+qG2zF97qiUzTM+rQ0klBOcE=
|
||||||
google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
|
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 h1:+kGHl1aib/qcwaRi1CbqBZ1rk19r85MNUf8HaBghugY=
|
||||||
google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
|
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.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
|
||||||
@@ -124,6 +172,8 @@ google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQ
|
|||||||
google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
|
google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
|
||||||
google.golang.org/grpc v1.30.0 h1:M5a8xTlYTxwMn5ZFkwhRabsygDY5G8TYLyQDBxJNAxE=
|
google.golang.org/grpc v1.30.0 h1:M5a8xTlYTxwMn5ZFkwhRabsygDY5G8TYLyQDBxJNAxE=
|
||||||
google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
|
google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
|
||||||
|
google.golang.org/grpc v1.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-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
|
||||||
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
|
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
|
||||||
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
|
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
|
||||||
@@ -134,15 +184,21 @@ google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2
|
|||||||
google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/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 h1:Ejskq+SyPohKW+1uil0JJMtmHCgJPJ/qWTxr8qp+R4c=
|
||||||
google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
|
google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
|
||||||
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
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 h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU=
|
||||||
gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
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/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/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.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 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU=
|
||||||
gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=
|
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=
|
||||||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
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-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
||||||
honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
||||||
|
|||||||
@@ -3,9 +3,9 @@ package apis
|
|||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
"github.com/TeaOSLab/EdgeAPI/internal/configs"
|
"github.com/TeaOSLab/EdgeAPI/internal/configs"
|
||||||
"github.com/TeaOSLab/EdgeAPI/internal/rpc/pb"
|
|
||||||
"github.com/TeaOSLab/EdgeAPI/internal/rpc/services"
|
"github.com/TeaOSLab/EdgeAPI/internal/rpc/services"
|
||||||
"github.com/TeaOSLab/EdgeAPI/internal/utils"
|
"github.com/TeaOSLab/EdgeAPI/internal/utils"
|
||||||
|
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
|
||||||
"github.com/iwind/TeaGo/logs"
|
"github.com/iwind/TeaGo/logs"
|
||||||
"google.golang.org/grpc"
|
"google.golang.org/grpc"
|
||||||
"net"
|
"net"
|
||||||
@@ -58,6 +58,7 @@ func (this *APINode) listenRPC() error {
|
|||||||
pb.RegisterNodeClusterServiceServer(rpcServer, &services.NodeClusterService{})
|
pb.RegisterNodeClusterServiceServer(rpcServer, &services.NodeClusterService{})
|
||||||
pb.RegisterNodeIPAddressServiceServer(rpcServer, &services.NodeIPAddressService{})
|
pb.RegisterNodeIPAddressServiceServer(rpcServer, &services.NodeIPAddressService{})
|
||||||
pb.RegisterAPINodeServiceServer(rpcServer, &services.APINodeService{})
|
pb.RegisterAPINodeServiceServer(rpcServer, &services.APINodeService{})
|
||||||
|
pb.RegisterOriginServerServiceServer(rpcServer, &services.OriginServerService{})
|
||||||
err = rpcServer.Serve(listener)
|
err = rpcServer.Serve(listener)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return errors.New("[API]start rpc failed: " + err.Error())
|
return errors.New("[API]start rpc failed: " + err.Error())
|
||||||
|
|||||||
@@ -1 +1,8 @@
|
|||||||
package models
|
package models
|
||||||
|
|
||||||
|
import "strconv"
|
||||||
|
|
||||||
|
// 地址
|
||||||
|
func (this *APINode) Address() string {
|
||||||
|
return this.Host + ":" + strconv.Itoa(int(this.Port))
|
||||||
|
}
|
||||||
|
|||||||
53
internal/db/models/file_chunk_dao.go
Normal file
53
internal/db/models/file_chunk_dao.go
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
package models
|
||||||
|
|
||||||
|
import (
|
||||||
|
"errors"
|
||||||
|
_ "github.com/go-sql-driver/mysql"
|
||||||
|
"github.com/iwind/TeaGo/Tea"
|
||||||
|
"github.com/iwind/TeaGo/dbs"
|
||||||
|
)
|
||||||
|
|
||||||
|
type FileChunkDAO dbs.DAO
|
||||||
|
|
||||||
|
func NewFileChunkDAO() *FileChunkDAO {
|
||||||
|
return dbs.NewDAO(&FileChunkDAO{
|
||||||
|
DAOObject: dbs.DAOObject{
|
||||||
|
DB: Tea.Env,
|
||||||
|
Table: "edgeFileChunks",
|
||||||
|
Model: new(FileChunk),
|
||||||
|
PkName: "id",
|
||||||
|
},
|
||||||
|
}).(*FileChunkDAO)
|
||||||
|
}
|
||||||
|
|
||||||
|
var SharedFileChunkDAO = NewFileChunkDAO()
|
||||||
|
|
||||||
|
// 创建文件Chunk
|
||||||
|
func (this *FileChunkDAO) CreateFileChunk(fileId int, data []byte) error {
|
||||||
|
op := NewFileChunkOperator()
|
||||||
|
op.FileId = fileId
|
||||||
|
op.Data = data
|
||||||
|
_, err := this.Save(op)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// 列出所有的文件Chunk
|
||||||
|
func (this *FileChunkDAO) FindAllFileChunks(fileId int) (result []*FileChunk, err error) {
|
||||||
|
_, err = this.Query().
|
||||||
|
Attr("fileId", fileId).
|
||||||
|
AscPk().
|
||||||
|
Slice(&result).
|
||||||
|
FindAll()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除以前的文件
|
||||||
|
func (this *FileChunkDAO) DeleteFileChunks(fileId int) error {
|
||||||
|
if fileId <= 0 {
|
||||||
|
return errors.New("invalid fileId")
|
||||||
|
}
|
||||||
|
_, err := this.Query().
|
||||||
|
Attr("fileId", fileId).
|
||||||
|
Delete()
|
||||||
|
return err
|
||||||
|
}
|
||||||
5
internal/db/models/file_chunk_dao_test.go
Normal file
5
internal/db/models/file_chunk_dao_test.go
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
package models
|
||||||
|
|
||||||
|
import (
|
||||||
|
_ "github.com/go-sql-driver/mysql"
|
||||||
|
)
|
||||||
18
internal/db/models/file_chunk_model.go
Normal file
18
internal/db/models/file_chunk_model.go
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
package models
|
||||||
|
|
||||||
|
//
|
||||||
|
type FileChunk struct {
|
||||||
|
Id uint32 `field:"id"` // ID
|
||||||
|
FileId uint32 `field:"fileId"` // 文件ID
|
||||||
|
Data string `field:"data"` // 分块内容
|
||||||
|
}
|
||||||
|
|
||||||
|
type FileChunkOperator struct {
|
||||||
|
Id interface{} // ID
|
||||||
|
FileId interface{} // 文件ID
|
||||||
|
Data interface{} // 分块内容
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewFileChunkOperator() *FileChunkOperator {
|
||||||
|
return &FileChunkOperator{}
|
||||||
|
}
|
||||||
1
internal/db/models/file_chunk_model_ext.go
Normal file
1
internal/db/models/file_chunk_model_ext.go
Normal file
@@ -0,0 +1 @@
|
|||||||
|
package models
|
||||||
141
internal/db/models/file_dao.go
Normal file
141
internal/db/models/file_dao.go
Normal file
@@ -0,0 +1,141 @@
|
|||||||
|
package models
|
||||||
|
|
||||||
|
import (
|
||||||
|
_ "github.com/go-sql-driver/mysql"
|
||||||
|
"github.com/iwind/TeaGo/Tea"
|
||||||
|
"github.com/iwind/TeaGo/dbs"
|
||||||
|
"github.com/iwind/TeaGo/types"
|
||||||
|
"mime/multipart"
|
||||||
|
"os"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
FileStateEnabled = 1 // 已启用
|
||||||
|
FileStateDisabled = 0 // 已禁用
|
||||||
|
)
|
||||||
|
|
||||||
|
type FileDAO dbs.DAO
|
||||||
|
|
||||||
|
func NewFileDAO() *FileDAO {
|
||||||
|
return dbs.NewDAO(&FileDAO{
|
||||||
|
DAOObject: dbs.DAOObject{
|
||||||
|
DB: Tea.Env,
|
||||||
|
Table: "edgeFiles",
|
||||||
|
Model: new(File),
|
||||||
|
PkName: "id",
|
||||||
|
},
|
||||||
|
}).(*FileDAO)
|
||||||
|
}
|
||||||
|
|
||||||
|
var SharedFileDAO = NewFileDAO()
|
||||||
|
|
||||||
|
// 启用条目
|
||||||
|
func (this *FileDAO) EnableFile(id int64) error {
|
||||||
|
_, err := this.Query().
|
||||||
|
Pk(id).
|
||||||
|
Set("state", FileStateEnabled).
|
||||||
|
Update()
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// 禁用条目
|
||||||
|
func (this *FileDAO) DisableFile(id int64) error {
|
||||||
|
_, err := this.Query().
|
||||||
|
Pk(id).
|
||||||
|
Set("state", FileStateDisabled).
|
||||||
|
Update()
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查找启用中的条目
|
||||||
|
func (this *FileDAO) FindEnabledFile(id int64) (*File, error) {
|
||||||
|
result, err := this.Query().
|
||||||
|
Pk(id).
|
||||||
|
Attr("state", FileStateEnabled).
|
||||||
|
Find()
|
||||||
|
if result == nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return result.(*File), err
|
||||||
|
}
|
||||||
|
|
||||||
|
// 创建文件
|
||||||
|
func (this *FileDAO) CreateFileFromReader(businessType, description string, filename string, body *multipart.FileHeader, order int) (int, error) {
|
||||||
|
file, err := body.Open()
|
||||||
|
if err != nil {
|
||||||
|
return 0, err
|
||||||
|
}
|
||||||
|
|
||||||
|
op := NewFileOperator()
|
||||||
|
op.Type = businessType
|
||||||
|
op.Description = description
|
||||||
|
op.State = FileStateEnabled
|
||||||
|
op.Size = body.Size
|
||||||
|
op.Order = order
|
||||||
|
op.Filename = filename
|
||||||
|
_, err = this.Save(op)
|
||||||
|
if err != nil {
|
||||||
|
return 0, err
|
||||||
|
}
|
||||||
|
|
||||||
|
fileId := types.Int(op.Id)
|
||||||
|
|
||||||
|
// 保存chunk
|
||||||
|
buf := make([]byte, 512*1024)
|
||||||
|
for {
|
||||||
|
n, err := file.Read(buf)
|
||||||
|
if n > 0 {
|
||||||
|
err1 := SharedFileChunkDAO.CreateFileChunk(fileId, buf[:n])
|
||||||
|
if err1 != nil {
|
||||||
|
return 0, err1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if err != nil {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return fileId, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// 创建一个空文件
|
||||||
|
func (this *FileDAO) UploadLocalFile(businessType string, localFile string, filename string) (fileId int, err error) {
|
||||||
|
reader, err := os.Open(localFile)
|
||||||
|
if err != nil {
|
||||||
|
return 0, err
|
||||||
|
}
|
||||||
|
defer func() {
|
||||||
|
_ = reader.Close()
|
||||||
|
}()
|
||||||
|
stat, err := reader.Stat()
|
||||||
|
if err != nil {
|
||||||
|
return 0, err
|
||||||
|
}
|
||||||
|
|
||||||
|
op := NewFileOperator()
|
||||||
|
op.Type = businessType
|
||||||
|
op.Filename = filename
|
||||||
|
op.Size = stat.Size()
|
||||||
|
op.State = FileStateEnabled
|
||||||
|
_, err = this.Save(op)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
fileId = types.Int(op.Id)
|
||||||
|
|
||||||
|
buf := make([]byte, 512*1024)
|
||||||
|
for {
|
||||||
|
n, err := reader.Read(buf)
|
||||||
|
if n > 0 {
|
||||||
|
err1 := SharedFileChunkDAO.CreateFileChunk(fileId, buf[:n])
|
||||||
|
if err1 != nil {
|
||||||
|
return 0, err1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if err != nil {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return fileId, nil
|
||||||
|
}
|
||||||
5
internal/db/models/file_dao_test.go
Normal file
5
internal/db/models/file_dao_test.go
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
package models
|
||||||
|
|
||||||
|
import (
|
||||||
|
_ "github.com/go-sql-driver/mysql"
|
||||||
|
)
|
||||||
28
internal/db/models/file_model.go
Normal file
28
internal/db/models/file_model.go
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
package models
|
||||||
|
|
||||||
|
//
|
||||||
|
type File struct {
|
||||||
|
Id uint32 `field:"id"` // ID
|
||||||
|
Description string `field:"description"` // 文件描述
|
||||||
|
Filename string `field:"filename"` // 文件名
|
||||||
|
Size uint32 `field:"size"` // 文件尺寸
|
||||||
|
CreatedAt uint32 `field:"createdAt"` // 创建时间
|
||||||
|
Order uint32 `field:"order"` // 排序
|
||||||
|
Type string `field:"type"` // 类型
|
||||||
|
State uint8 `field:"state"` // 状态
|
||||||
|
}
|
||||||
|
|
||||||
|
type FileOperator struct {
|
||||||
|
Id interface{} // ID
|
||||||
|
Description interface{} // 文件描述
|
||||||
|
Filename interface{} // 文件名
|
||||||
|
Size interface{} // 文件尺寸
|
||||||
|
CreatedAt interface{} // 创建时间
|
||||||
|
Order interface{} // 排序
|
||||||
|
Type interface{} // 类型
|
||||||
|
State interface{} // 状态
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewFileOperator() *FileOperator {
|
||||||
|
return &FileOperator{}
|
||||||
|
}
|
||||||
1
internal/db/models/file_model_ext.go
Normal file
1
internal/db/models/file_model_ext.go
Normal file
@@ -0,0 +1 @@
|
|||||||
|
package models
|
||||||
65
internal/db/models/http_cache_policy_dao.go
Normal file
65
internal/db/models/http_cache_policy_dao.go
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
package models
|
||||||
|
|
||||||
|
import (
|
||||||
|
_ "github.com/go-sql-driver/mysql"
|
||||||
|
"github.com/iwind/TeaGo/Tea"
|
||||||
|
"github.com/iwind/TeaGo/dbs"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
HTTPCachePolicyStateEnabled = 1 // 已启用
|
||||||
|
HTTPCachePolicyStateDisabled = 0 // 已禁用
|
||||||
|
)
|
||||||
|
|
||||||
|
type HTTPCachePolicyDAO dbs.DAO
|
||||||
|
|
||||||
|
func NewHTTPCachePolicyDAO() *HTTPCachePolicyDAO {
|
||||||
|
return dbs.NewDAO(&HTTPCachePolicyDAO{
|
||||||
|
DAOObject: dbs.DAOObject{
|
||||||
|
DB: Tea.Env,
|
||||||
|
Table: "edgeHTTPCachePolicies",
|
||||||
|
Model: new(HTTPCachePolicy),
|
||||||
|
PkName: "id",
|
||||||
|
},
|
||||||
|
}).(*HTTPCachePolicyDAO)
|
||||||
|
}
|
||||||
|
|
||||||
|
var SharedHTTPCachePolicyDAO = NewHTTPCachePolicyDAO()
|
||||||
|
|
||||||
|
// 启用条目
|
||||||
|
func (this *HTTPCachePolicyDAO) EnableHTTPCachePolicy(id int64) error {
|
||||||
|
_, err := this.Query().
|
||||||
|
Pk(id).
|
||||||
|
Set("state", HTTPCachePolicyStateEnabled).
|
||||||
|
Update()
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// 禁用条目
|
||||||
|
func (this *HTTPCachePolicyDAO) DisableHTTPCachePolicy(id int64) error {
|
||||||
|
_, err := this.Query().
|
||||||
|
Pk(id).
|
||||||
|
Set("state", HTTPCachePolicyStateDisabled).
|
||||||
|
Update()
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查找启用中的条目
|
||||||
|
func (this *HTTPCachePolicyDAO) FindEnabledHTTPCachePolicy(id int64) (*HTTPCachePolicy, error) {
|
||||||
|
result, err := this.Query().
|
||||||
|
Pk(id).
|
||||||
|
Attr("state", HTTPCachePolicyStateEnabled).
|
||||||
|
Find()
|
||||||
|
if result == nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return result.(*HTTPCachePolicy), err
|
||||||
|
}
|
||||||
|
|
||||||
|
// 根据主键查找名称
|
||||||
|
func (this *HTTPCachePolicyDAO) FindHTTPCachePolicyName(id int64) (string, error) {
|
||||||
|
return this.Query().
|
||||||
|
Pk(id).
|
||||||
|
Result("name").
|
||||||
|
FindStringCol("")
|
||||||
|
}
|
||||||
5
internal/db/models/http_cache_policy_dao_test.go
Normal file
5
internal/db/models/http_cache_policy_dao_test.go
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
package models
|
||||||
|
|
||||||
|
import (
|
||||||
|
_ "github.com/go-sql-driver/mysql"
|
||||||
|
)
|
||||||
44
internal/db/models/http_cache_policy_model.go
Normal file
44
internal/db/models/http_cache_policy_model.go
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
package models
|
||||||
|
|
||||||
|
//
|
||||||
|
type HTTPCachePolicy struct {
|
||||||
|
Id uint32 `field:"id"` // ID
|
||||||
|
AdminId uint32 `field:"adminId"` // 管理员ID
|
||||||
|
UserId uint32 `field:"userId"` // 用户ID
|
||||||
|
IsOn uint8 `field:"isOn"` // 是否启用
|
||||||
|
Name string `field:"name"` // 名称
|
||||||
|
Key string `field:"key"` // 缓存Key规则
|
||||||
|
Capacity string `field:"capacity"` // 容量数据
|
||||||
|
Life string `field:"life"` // 有效期
|
||||||
|
Status string `field:"status"` // HTTP状态码列表
|
||||||
|
MaxSize string `field:"maxSize"` // 最大尺寸
|
||||||
|
SkipCacheControlValues string `field:"skipCacheControlValues"` // 忽略的cache-control
|
||||||
|
SkipSetCookie uint8 `field:"skipSetCookie"` // 是否忽略Set-Cookie Header
|
||||||
|
EnableRequestCachePragma uint8 `field:"enableRequestCachePragma"` // 是否支持客户端的Pragma: no-cache
|
||||||
|
Cond string `field:"cond"` // 请求条件
|
||||||
|
CreatedAt uint32 `field:"createdAt"` // 创建时间
|
||||||
|
State uint8 `field:"state"` // 状态
|
||||||
|
}
|
||||||
|
|
||||||
|
type HTTPCachePolicyOperator struct {
|
||||||
|
Id interface{} // ID
|
||||||
|
AdminId interface{} // 管理员ID
|
||||||
|
UserId interface{} // 用户ID
|
||||||
|
IsOn interface{} // 是否启用
|
||||||
|
Name interface{} // 名称
|
||||||
|
Key interface{} // 缓存Key规则
|
||||||
|
Capacity interface{} // 容量数据
|
||||||
|
Life interface{} // 有效期
|
||||||
|
Status interface{} // HTTP状态码列表
|
||||||
|
MaxSize interface{} // 最大尺寸
|
||||||
|
SkipCacheControlValues interface{} // 忽略的cache-control
|
||||||
|
SkipSetCookie interface{} // 是否忽略Set-Cookie Header
|
||||||
|
EnableRequestCachePragma interface{} // 是否支持客户端的Pragma: no-cache
|
||||||
|
Cond interface{} // 请求条件
|
||||||
|
CreatedAt interface{} // 创建时间
|
||||||
|
State interface{} // 状态
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewHTTPCachePolicyOperator() *HTTPCachePolicyOperator {
|
||||||
|
return &HTTPCachePolicyOperator{}
|
||||||
|
}
|
||||||
1
internal/db/models/http_cache_policy_model_ext.go
Normal file
1
internal/db/models/http_cache_policy_model_ext.go
Normal file
@@ -0,0 +1 @@
|
|||||||
|
package models
|
||||||
65
internal/db/models/http_header_dao.go
Normal file
65
internal/db/models/http_header_dao.go
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
package models
|
||||||
|
|
||||||
|
import (
|
||||||
|
_ "github.com/go-sql-driver/mysql"
|
||||||
|
"github.com/iwind/TeaGo/Tea"
|
||||||
|
"github.com/iwind/TeaGo/dbs"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
HTTPHeaderStateEnabled = 1 // 已启用
|
||||||
|
HTTPHeaderStateDisabled = 0 // 已禁用
|
||||||
|
)
|
||||||
|
|
||||||
|
type HTTPHeaderDAO dbs.DAO
|
||||||
|
|
||||||
|
func NewHTTPHeaderDAO() *HTTPHeaderDAO {
|
||||||
|
return dbs.NewDAO(&HTTPHeaderDAO{
|
||||||
|
DAOObject: dbs.DAOObject{
|
||||||
|
DB: Tea.Env,
|
||||||
|
Table: "edgeHTTPHeaders",
|
||||||
|
Model: new(HTTPHeader),
|
||||||
|
PkName: "id",
|
||||||
|
},
|
||||||
|
}).(*HTTPHeaderDAO)
|
||||||
|
}
|
||||||
|
|
||||||
|
var SharedHTTPHeaderDAO = NewHTTPHeaderDAO()
|
||||||
|
|
||||||
|
// 启用条目
|
||||||
|
func (this *HTTPHeaderDAO) EnableHTTPHeader(id uint32) error {
|
||||||
|
_, err := this.Query().
|
||||||
|
Pk(id).
|
||||||
|
Set("state", HTTPHeaderStateEnabled).
|
||||||
|
Update()
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// 禁用条目
|
||||||
|
func (this *HTTPHeaderDAO) DisableHTTPHeader(id uint32) error {
|
||||||
|
_, err := this.Query().
|
||||||
|
Pk(id).
|
||||||
|
Set("state", HTTPHeaderStateDisabled).
|
||||||
|
Update()
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查找启用中的条目
|
||||||
|
func (this *HTTPHeaderDAO) FindEnabledHTTPHeader(id uint32) (*HTTPHeader, error) {
|
||||||
|
result, err := this.Query().
|
||||||
|
Pk(id).
|
||||||
|
Attr("state", HTTPHeaderStateEnabled).
|
||||||
|
Find()
|
||||||
|
if result == nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return result.(*HTTPHeader), err
|
||||||
|
}
|
||||||
|
|
||||||
|
// 根据主键查找名称
|
||||||
|
func (this *HTTPHeaderDAO) FindHTTPHeaderName(id uint32) (string, error) {
|
||||||
|
return this.Query().
|
||||||
|
Pk(id).
|
||||||
|
Result("name").
|
||||||
|
FindStringCol("")
|
||||||
|
}
|
||||||
5
internal/db/models/http_header_dao_test.go
Normal file
5
internal/db/models/http_header_dao_test.go
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
package models
|
||||||
|
|
||||||
|
import (
|
||||||
|
_ "github.com/go-sql-driver/mysql"
|
||||||
|
)
|
||||||
32
internal/db/models/http_header_model.go
Normal file
32
internal/db/models/http_header_model.go
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
package models
|
||||||
|
|
||||||
|
//
|
||||||
|
type HTTPHeader struct {
|
||||||
|
Id uint32 `field:"id"` // ID
|
||||||
|
AdminId uint32 `field:"adminId"` // 管理员ID
|
||||||
|
UserId uint32 `field:"userId"` // 用户ID
|
||||||
|
IsOn uint8 `field:"isOn"` // 是否启用
|
||||||
|
Name string `field:"name"` // 名称
|
||||||
|
Value string `field:"value"` // 值
|
||||||
|
Order uint32 `field:"order"` // 排序
|
||||||
|
Status string `field:"status"` // 状态码设置
|
||||||
|
State uint8 `field:"state"` // 状态
|
||||||
|
CreatedAt uint32 `field:"createdAt"` // 创建时间
|
||||||
|
}
|
||||||
|
|
||||||
|
type HTTPHeaderOperator struct {
|
||||||
|
Id interface{} // ID
|
||||||
|
AdminId interface{} // 管理员ID
|
||||||
|
UserId interface{} // 用户ID
|
||||||
|
IsOn interface{} // 是否启用
|
||||||
|
Name interface{} // 名称
|
||||||
|
Value interface{} // 值
|
||||||
|
Order interface{} // 排序
|
||||||
|
Status interface{} // 状态码设置
|
||||||
|
State interface{} // 状态
|
||||||
|
CreatedAt interface{} // 创建时间
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewHTTPHeaderOperator() *HTTPHeaderOperator {
|
||||||
|
return &HTTPHeaderOperator{}
|
||||||
|
}
|
||||||
1
internal/db/models/http_header_model_ext.go
Normal file
1
internal/db/models/http_header_model_ext.go
Normal file
@@ -0,0 +1 @@
|
|||||||
|
package models
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
package models
|
package models
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"encoding/json"
|
||||||
"errors"
|
"errors"
|
||||||
_ "github.com/go-sql-driver/mysql"
|
_ "github.com/go-sql-driver/mysql"
|
||||||
"github.com/iwind/TeaGo/Tea"
|
"github.com/iwind/TeaGo/Tea"
|
||||||
@@ -12,6 +13,10 @@ import (
|
|||||||
const (
|
const (
|
||||||
NodeStateEnabled = 1 // 已启用
|
NodeStateEnabled = 1 // 已启用
|
||||||
NodeStateDisabled = 0 // 已禁用
|
NodeStateDisabled = 0 // 已禁用
|
||||||
|
|
||||||
|
NodeInstallStateAll = 0 // 全部
|
||||||
|
NodeInstallStateInstalled = 1 // 已安装
|
||||||
|
NodeInstallStateNotInstalled = 2 // 未安装
|
||||||
)
|
)
|
||||||
|
|
||||||
type NodeDAO dbs.DAO
|
type NodeDAO dbs.DAO
|
||||||
@@ -177,7 +182,7 @@ func (this *NodeDAO) CountAllEnabledNodes() (int64, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 列出单页节点
|
// 列出单页节点
|
||||||
func (this *NodeDAO) ListEnabledNodesMatch(offset int64, size int64, clusterId int64) (result []*Node, err error) {
|
func (this *NodeDAO) ListEnabledNodesMatch(offset int64, size int64, clusterId int64, installState int8) (result []*Node, err error) {
|
||||||
query := this.Query().
|
query := this.Query().
|
||||||
State(NodeStateEnabled).
|
State(NodeStateEnabled).
|
||||||
Offset(offset).
|
Offset(offset).
|
||||||
@@ -185,10 +190,21 @@ func (this *NodeDAO) ListEnabledNodesMatch(offset int64, size int64, clusterId i
|
|||||||
DescPk().
|
DescPk().
|
||||||
Slice(&result)
|
Slice(&result)
|
||||||
|
|
||||||
|
// 集群
|
||||||
if clusterId > 0 {
|
if clusterId > 0 {
|
||||||
query.Attr("clusterId", clusterId)
|
query.Attr("clusterId", clusterId)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 安装状态
|
||||||
|
switch installState {
|
||||||
|
case NodeInstallStateAll:
|
||||||
|
// 不做任何事情
|
||||||
|
case NodeInstallStateInstalled:
|
||||||
|
query.Attr("isInstalled", 1)
|
||||||
|
case NodeInstallStateNotInstalled:
|
||||||
|
query.Attr("isInstalled", 0)
|
||||||
|
}
|
||||||
|
|
||||||
_, err = query.FindAll()
|
_, err = query.FindAll()
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -250,12 +266,25 @@ func (this *NodeDAO) FindAllNodeIdsMatch(clusterId int64) (result []int64, err e
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 计算节点数量
|
// 计算节点数量
|
||||||
func (this *NodeDAO) CountAllEnabledNodesMatch(clusterId int64) (int64, error) {
|
func (this *NodeDAO) CountAllEnabledNodesMatch(clusterId int64, installState int8) (int64, error) {
|
||||||
query := this.Query()
|
query := this.Query()
|
||||||
query.State(NodeStateEnabled)
|
query.State(NodeStateEnabled)
|
||||||
|
|
||||||
|
// 集群
|
||||||
if clusterId > 0 {
|
if clusterId > 0 {
|
||||||
query.Attr("clusterId", clusterId)
|
query.Attr("clusterId", clusterId)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 安装状态
|
||||||
|
switch installState {
|
||||||
|
case NodeInstallStateAll:
|
||||||
|
// 不做任何事情
|
||||||
|
case NodeInstallStateInstalled:
|
||||||
|
query.Attr("isInstalled", 1)
|
||||||
|
case NodeInstallStateNotInstalled:
|
||||||
|
query.Attr("isInstalled", 0)
|
||||||
|
}
|
||||||
|
|
||||||
return query.Count()
|
return query.Count()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -273,6 +302,47 @@ func (this *NodeDAO) UpdateNodeIsInstalled(nodeId int64, isInstalled bool) error
|
|||||||
_, err := this.Query().
|
_, err := this.Query().
|
||||||
Pk(nodeId).
|
Pk(nodeId).
|
||||||
Set("isInstalled", isInstalled).
|
Set("isInstalled", isInstalled).
|
||||||
|
Set("installStatus", "null"). // 重置安装状态
|
||||||
|
Update()
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询节点的安装状态
|
||||||
|
func (this *NodeDAO) FindNodeInstallStatus(nodeId int64) (*NodeInstallStatus, error) {
|
||||||
|
installStatus, err := this.Query().
|
||||||
|
Pk(nodeId).
|
||||||
|
Result("installStatus").
|
||||||
|
FindStringCol("")
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(installStatus) == 0 {
|
||||||
|
return NewNodeInstallStatus(), nil
|
||||||
|
}
|
||||||
|
|
||||||
|
status := &NodeInstallStatus{}
|
||||||
|
err = json.Unmarshal([]byte(installStatus), status)
|
||||||
|
return status, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// 修改节点的安装状态
|
||||||
|
func (this *NodeDAO) UpdateNodeInstallStatus(nodeId int64, status *NodeInstallStatus) error {
|
||||||
|
if status == nil {
|
||||||
|
_, err := this.Query().
|
||||||
|
Pk(nodeId).
|
||||||
|
Set("installStatus", "null").
|
||||||
|
Update()
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
data, err := json.Marshal(status)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
_, err = this.Query().
|
||||||
|
Pk(nodeId).
|
||||||
|
Set("installStatus", string(data)).
|
||||||
Update()
|
Update()
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
15
internal/db/models/node_install_status.go
Normal file
15
internal/db/models/node_install_status.go
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
package models
|
||||||
|
|
||||||
|
// 节点安装状态
|
||||||
|
type NodeInstallStatus struct {
|
||||||
|
IsRunning bool `json:"isRunning"` // 是否在运行
|
||||||
|
IsFinished bool `json:"isFinished"` // 是否已结束
|
||||||
|
IsOk bool `json:"isOk"` // 是否正确安装
|
||||||
|
Error string `json:"error"` // 错误信息
|
||||||
|
UpdatedAt int64 `json:"updatedAt"` // 更新时间,安装过程中需要每隔N秒钟更新这个状态,以便于让系统知道安装仍在进行中
|
||||||
|
Steps []*NodeInstallStatusStep `json:"steps"` // 步骤
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewNodeInstallStatus() *NodeInstallStatus {
|
||||||
|
return &NodeInstallStatus{}
|
||||||
|
}
|
||||||
7
internal/db/models/node_install_status_step.go
Normal file
7
internal/db/models/node_install_status_step.go
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
package models
|
||||||
|
|
||||||
|
type NodeInstallStatusStep struct {
|
||||||
|
Name string `json:"name"`
|
||||||
|
Description string `json:"description"`
|
||||||
|
Percent int `json:"percent"`
|
||||||
|
}
|
||||||
@@ -11,6 +11,8 @@ import (
|
|||||||
const (
|
const (
|
||||||
NodeLoginStateEnabled = 1 // 已启用
|
NodeLoginStateEnabled = 1 // 已启用
|
||||||
NodeLoginStateDisabled = 0 // 已禁用
|
NodeLoginStateDisabled = 0 // 已禁用
|
||||||
|
|
||||||
|
NodeLoginTypeSSH = "ssh"
|
||||||
)
|
)
|
||||||
|
|
||||||
type NodeLoginDAO dbs.DAO
|
type NodeLoginDAO dbs.DAO
|
||||||
|
|||||||
@@ -1 +1,25 @@
|
|||||||
package models
|
package models
|
||||||
|
|
||||||
|
import (
|
||||||
|
"encoding/json"
|
||||||
|
"errors"
|
||||||
|
)
|
||||||
|
|
||||||
|
// 解析SSH登录参数
|
||||||
|
func (this *NodeLogin) DecodeSSHParams() (*NodeLoginSSHParams, error) {
|
||||||
|
if this.Type != NodeLoginTypeSSH {
|
||||||
|
return nil, errors.New("invalid login type '" + this.Type + "'")
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(this.Params) == 0 || this.Params == "null" {
|
||||||
|
return nil, errors.New("'params' should not be empty")
|
||||||
|
}
|
||||||
|
|
||||||
|
params := &NodeLoginSSHParams{}
|
||||||
|
err := json.Unmarshal([]byte(this.Params), params)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return params, nil
|
||||||
|
}
|
||||||
|
|||||||
7
internal/db/models/node_login_params_ssh.go
Normal file
7
internal/db/models/node_login_params_ssh.go
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
package models
|
||||||
|
|
||||||
|
type NodeLoginSSHParams struct {
|
||||||
|
GrantId int64 `json:"grantId"`
|
||||||
|
Host string `json:"host"`
|
||||||
|
Port int `json:"port"`
|
||||||
|
}
|
||||||
@@ -17,6 +17,7 @@ type Node struct {
|
|||||||
LatestVersion uint32 `field:"latestVersion"` // 最后版本号
|
LatestVersion uint32 `field:"latestVersion"` // 最后版本号
|
||||||
InstallDir string `field:"installDir"` // 安装目录
|
InstallDir string `field:"installDir"` // 安装目录
|
||||||
IsInstalled uint8 `field:"isInstalled"` // 是否已安装
|
IsInstalled uint8 `field:"isInstalled"` // 是否已安装
|
||||||
|
InstallStatus string `field:"installStatus"` // 安装状态
|
||||||
State uint8 `field:"state"` // 状态
|
State uint8 `field:"state"` // 状态
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -36,6 +37,7 @@ type NodeOperator struct {
|
|||||||
LatestVersion interface{} // 最后版本号
|
LatestVersion interface{} // 最后版本号
|
||||||
InstallDir interface{} // 安装目录
|
InstallDir interface{} // 安装目录
|
||||||
IsInstalled interface{} // 是否已安装
|
IsInstalled interface{} // 是否已安装
|
||||||
|
InstallStatus interface{} // 安装状态
|
||||||
State interface{} // 状态
|
State interface{} // 状态
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1 +1,27 @@
|
|||||||
package models
|
package models
|
||||||
|
|
||||||
|
import (
|
||||||
|
"encoding/json"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
// 安装状态
|
||||||
|
func (this *Node) DecodeInstallStatus() (*NodeInstallStatus, error) {
|
||||||
|
if len(this.InstallStatus) == 0 || this.InstallStatus == "null" {
|
||||||
|
return NewNodeInstallStatus(), nil
|
||||||
|
}
|
||||||
|
status := &NodeInstallStatus{}
|
||||||
|
err := json.Unmarshal([]byte(this.InstallStatus), status)
|
||||||
|
if err != nil {
|
||||||
|
return NewNodeInstallStatus(), err
|
||||||
|
}
|
||||||
|
|
||||||
|
// 如果N秒钟没有更新状态,则认为不在运行
|
||||||
|
if status.IsRunning && status.UpdatedAt < time.Now().Unix()-10 {
|
||||||
|
status.IsRunning = false
|
||||||
|
status.IsFinished = true
|
||||||
|
status.Error = "timeout"
|
||||||
|
}
|
||||||
|
|
||||||
|
return status, nil
|
||||||
|
}
|
||||||
|
|||||||
97
internal/db/models/origin_server_dao.go
Normal file
97
internal/db/models/origin_server_dao.go
Normal file
@@ -0,0 +1,97 @@
|
|||||||
|
package models
|
||||||
|
|
||||||
|
import (
|
||||||
|
"errors"
|
||||||
|
_ "github.com/go-sql-driver/mysql"
|
||||||
|
"github.com/iwind/TeaGo/Tea"
|
||||||
|
"github.com/iwind/TeaGo/dbs"
|
||||||
|
"github.com/iwind/TeaGo/types"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
OriginServerStateEnabled = 1 // 已启用
|
||||||
|
OriginServerStateDisabled = 0 // 已禁用
|
||||||
|
)
|
||||||
|
|
||||||
|
type OriginServerDAO dbs.DAO
|
||||||
|
|
||||||
|
func NewOriginServerDAO() *OriginServerDAO {
|
||||||
|
return dbs.NewDAO(&OriginServerDAO{
|
||||||
|
DAOObject: dbs.DAOObject{
|
||||||
|
DB: Tea.Env,
|
||||||
|
Table: "edgeOriginServers",
|
||||||
|
Model: new(OriginServer),
|
||||||
|
PkName: "id",
|
||||||
|
},
|
||||||
|
}).(*OriginServerDAO)
|
||||||
|
}
|
||||||
|
|
||||||
|
var SharedOriginServerDAO = NewOriginServerDAO()
|
||||||
|
|
||||||
|
// 启用条目
|
||||||
|
func (this *OriginServerDAO) EnableOriginServer(id int64) error {
|
||||||
|
_, err := this.Query().
|
||||||
|
Pk(id).
|
||||||
|
Set("state", OriginServerStateEnabled).
|
||||||
|
Update()
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// 禁用条目
|
||||||
|
func (this *OriginServerDAO) DisableOriginServer(id int64) error {
|
||||||
|
_, err := this.Query().
|
||||||
|
Pk(id).
|
||||||
|
Set("state", OriginServerStateDisabled).
|
||||||
|
Update()
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查找启用中的条目
|
||||||
|
func (this *OriginServerDAO) FindEnabledOriginServer(id int64) (*OriginServer, error) {
|
||||||
|
result, err := this.Query().
|
||||||
|
Pk(id).
|
||||||
|
Attr("state", OriginServerStateEnabled).
|
||||||
|
Find()
|
||||||
|
if result == nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return result.(*OriginServer), err
|
||||||
|
}
|
||||||
|
|
||||||
|
// 根据主键查找名称
|
||||||
|
func (this *OriginServerDAO) FindOriginServerName(id int64) (string, error) {
|
||||||
|
return this.Query().
|
||||||
|
Pk(id).
|
||||||
|
Result("name").
|
||||||
|
FindStringCol("")
|
||||||
|
}
|
||||||
|
|
||||||
|
// 创建源站
|
||||||
|
func (this *OriginServerDAO) CreateOriginServer(name string, addrJSON string, description string) (originId int64, err error) {
|
||||||
|
op := NewOriginServerOperator()
|
||||||
|
op.IsOn = true
|
||||||
|
op.Name = name
|
||||||
|
op.Addr = addrJSON
|
||||||
|
op.Description = description
|
||||||
|
op.State = OriginServerStateEnabled
|
||||||
|
_, err = this.Save(op)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
return types.Int64(op.Id), nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// 修改源站
|
||||||
|
func (this *OriginServerDAO) UpdateOriginServer(originId int64, name string, addrJSON string, description string) error {
|
||||||
|
if originId <= 0 {
|
||||||
|
return errors.New("invalid originId")
|
||||||
|
}
|
||||||
|
op := NewOriginServerOperator()
|
||||||
|
op.Id = originId
|
||||||
|
op.Name = name
|
||||||
|
op.Addr = addrJSON
|
||||||
|
op.Description = description
|
||||||
|
op.Version = dbs.SQL("version+1")
|
||||||
|
_, err := this.Save(op)
|
||||||
|
return err
|
||||||
|
}
|
||||||
5
internal/db/models/origin_server_dao_test.go
Normal file
5
internal/db/models/origin_server_dao_test.go
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
package models
|
||||||
|
|
||||||
|
import (
|
||||||
|
_ "github.com/go-sql-driver/mysql"
|
||||||
|
)
|
||||||
60
internal/db/models/origin_server_model.go
Normal file
60
internal/db/models/origin_server_model.go
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
package models
|
||||||
|
|
||||||
|
// 源站
|
||||||
|
type OriginServer struct {
|
||||||
|
Id uint32 `field:"id"` // ID
|
||||||
|
IsOn uint8 `field:"isOn"` // 是否启用
|
||||||
|
Name string `field:"name"` // 名称
|
||||||
|
Version uint32 `field:"version"` // 版本
|
||||||
|
Addr string `field:"addr"` // 地址
|
||||||
|
Description string `field:"description"` // 描述
|
||||||
|
Code string `field:"code"` // 代号
|
||||||
|
Weight uint32 `field:"weight"` // 权重
|
||||||
|
ConnTimeout string `field:"connTimeout"` // 连接超时
|
||||||
|
ReadTimeout string `field:"readTimeout"` // 读超时
|
||||||
|
IdleTimeout string `field:"idleTimeout"` // 空闲连接超时
|
||||||
|
MaxFails uint32 `field:"maxFails"` // 最多失败次数
|
||||||
|
MaxConns uint32 `field:"maxConns"` // 最大并发连接数
|
||||||
|
MaxIdleConns uint32 `field:"maxIdleConns"` // 最多空闲连接数
|
||||||
|
HttpRequestURI string `field:"httpRequestURI"` // 转发后的请求URI
|
||||||
|
HttpRequestHeaders string `field:"httpRequestHeaders"` // 请求Headers配置
|
||||||
|
HttpResponseHeaders string `field:"httpResponseHeaders"` // 响应Headers配置
|
||||||
|
Host string `field:"host"` // 自定义主机名
|
||||||
|
HealthCheck string `field:"healthCheck"` // 健康检查设置
|
||||||
|
IsDown uint8 `field:"isDown"` // 是否处于健康检查失败状态
|
||||||
|
Cert string `field:"cert"` // 证书设置
|
||||||
|
Ftp string `field:"ftp"` // FTP相关设置
|
||||||
|
CreatedAt uint32 `field:"createdAt"` // 创建时间
|
||||||
|
State uint8 `field:"state"` // 状态
|
||||||
|
}
|
||||||
|
|
||||||
|
type OriginServerOperator struct {
|
||||||
|
Id interface{} // ID
|
||||||
|
IsOn interface{} // 是否启用
|
||||||
|
Name interface{} // 名称
|
||||||
|
Version interface{} // 版本
|
||||||
|
Addr interface{} // 地址
|
||||||
|
Description interface{} // 描述
|
||||||
|
Code interface{} // 代号
|
||||||
|
Weight interface{} // 权重
|
||||||
|
ConnTimeout interface{} // 连接超时
|
||||||
|
ReadTimeout interface{} // 读超时
|
||||||
|
IdleTimeout interface{} // 空闲连接超时
|
||||||
|
MaxFails interface{} // 最多失败次数
|
||||||
|
MaxConns interface{} // 最大并发连接数
|
||||||
|
MaxIdleConns interface{} // 最多空闲连接数
|
||||||
|
HttpRequestURI interface{} // 转发后的请求URI
|
||||||
|
HttpRequestHeaders interface{} // 请求Headers配置
|
||||||
|
HttpResponseHeaders interface{} // 响应Headers配置
|
||||||
|
Host interface{} // 自定义主机名
|
||||||
|
HealthCheck interface{} // 健康检查设置
|
||||||
|
IsDown interface{} // 是否处于健康检查失败状态
|
||||||
|
Cert interface{} // 证书设置
|
||||||
|
Ftp interface{} // FTP相关设置
|
||||||
|
CreatedAt interface{} // 创建时间
|
||||||
|
State interface{} // 状态
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewOriginServerOperator() *OriginServerOperator {
|
||||||
|
return &OriginServerOperator{}
|
||||||
|
}
|
||||||
17
internal/db/models/origin_server_model_ext.go
Normal file
17
internal/db/models/origin_server_model_ext.go
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
package models
|
||||||
|
|
||||||
|
import (
|
||||||
|
"encoding/json"
|
||||||
|
"errors"
|
||||||
|
"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs"
|
||||||
|
)
|
||||||
|
|
||||||
|
// 解析地址
|
||||||
|
func (this *OriginServer) DecodeAddr() (*serverconfigs.NetworkAddressConfig, error) {
|
||||||
|
if len(this.Addr) == 0 || this.Addr == "null" {
|
||||||
|
return nil, errors.New("addr is empty")
|
||||||
|
}
|
||||||
|
addr := &serverconfigs.NetworkAddressConfig{}
|
||||||
|
err := json.Unmarshal([]byte(this.Addr), addr)
|
||||||
|
return addr, err
|
||||||
|
}
|
||||||
@@ -2,6 +2,7 @@ package models
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
|
"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs"
|
||||||
_ "github.com/go-sql-driver/mysql"
|
_ "github.com/go-sql-driver/mysql"
|
||||||
"github.com/iwind/TeaGo/Tea"
|
"github.com/iwind/TeaGo/Tea"
|
||||||
"github.com/iwind/TeaGo/dbs"
|
"github.com/iwind/TeaGo/dbs"
|
||||||
@@ -59,7 +60,7 @@ func (this *ServerDAO) FindEnabledServer(id int64) (*Server, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 创建服务
|
// 创建服务
|
||||||
func (this *ServerDAO) CreateServer(adminId int64, userId int64, clusterId int64, configJSON string, includeNodesJSON string, excludeNodesJSON string) (serverId int64, err error) {
|
func (this *ServerDAO) CreateServer(adminId int64, userId int64, serverType serverconfigs.ServerType, name string, description string, clusterId int64, configJSON string, includeNodesJSON string, excludeNodesJSON string) (serverId int64, err error) {
|
||||||
uniqueId, err := this.genUniqueId()
|
uniqueId, err := this.genUniqueId()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, err
|
return 0, err
|
||||||
@@ -69,6 +70,9 @@ func (this *ServerDAO) CreateServer(adminId int64, userId int64, clusterId int64
|
|||||||
op.UniqueId = uniqueId
|
op.UniqueId = uniqueId
|
||||||
op.UserId = userId
|
op.UserId = userId
|
||||||
op.AdminId = adminId
|
op.AdminId = adminId
|
||||||
|
op.Name = name
|
||||||
|
op.Type = serverType
|
||||||
|
op.Description = description
|
||||||
op.ClusterId = clusterId
|
op.ClusterId = clusterId
|
||||||
if len(configJSON) > 0 {
|
if len(configJSON) > 0 {
|
||||||
op.Config = configJSON
|
op.Config = configJSON
|
||||||
@@ -87,28 +91,33 @@ func (this *ServerDAO) CreateServer(adminId int64, userId int64, clusterId int64
|
|||||||
return types.Int64(op.Id), err
|
return types.Int64(op.Id), err
|
||||||
}
|
}
|
||||||
|
|
||||||
// 修改服务
|
// 修改服务基本信息
|
||||||
func (this *ServerDAO) UpdateServer(serverId int64, clusterId int64, configJSON string, includeNodesJSON string, excludeNodesJSON string) error {
|
func (this *ServerDAO) UpdateServerBasic(serverId int64, name string, description string, clusterId int64) error {
|
||||||
if serverId <= 0 {
|
if serverId <= 0 {
|
||||||
return errors.New("serverId should not be smaller than 0")
|
return errors.New("serverId should not be smaller than 0")
|
||||||
}
|
}
|
||||||
op := NewServerOperator()
|
op := NewServerOperator()
|
||||||
op.Id = serverId
|
op.Id = serverId
|
||||||
|
op.Name = name
|
||||||
|
op.Description = description
|
||||||
op.ClusterId = clusterId
|
op.ClusterId = clusterId
|
||||||
if len(configJSON) > 0 {
|
|
||||||
op.Config = configJSON
|
|
||||||
}
|
|
||||||
if len(includeNodesJSON) > 0 {
|
|
||||||
op.IncludeNodes = includeNodesJSON
|
|
||||||
}
|
|
||||||
if len(excludeNodesJSON) > 0 {
|
|
||||||
op.ExcludeNodes = excludeNodesJSON
|
|
||||||
}
|
|
||||||
op.Version = dbs.SQL("version=version+1")
|
op.Version = dbs.SQL("version=version+1")
|
||||||
_, err := this.Save(op)
|
_, err := this.Save(op)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 修改服务配置
|
||||||
|
func (this *ServerDAO) UpdateServerConfig(serverId int64, config []byte) error {
|
||||||
|
if serverId <= 0 {
|
||||||
|
return errors.New("serverId should not be smaller than 0")
|
||||||
|
}
|
||||||
|
_, err := this.Query().
|
||||||
|
Pk(serverId).
|
||||||
|
Set("config", string(config)).
|
||||||
|
Update()
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
// 计算所有可用服务数量
|
// 计算所有可用服务数量
|
||||||
func (this *ServerDAO) CountAllEnabledServers() (int64, error) {
|
func (this *ServerDAO) CountAllEnabledServers() (int64, error) {
|
||||||
return this.Query().
|
return this.Query().
|
||||||
@@ -148,6 +157,7 @@ func (this *ServerDAO) FindAllEnabledServersWithNode(nodeId int64) (result []*Se
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// 生成唯一ID
|
// 生成唯一ID
|
||||||
func (this *ServerDAO) genUniqueId() (string, error) {
|
func (this *ServerDAO) genUniqueId() (string, error) {
|
||||||
for {
|
for {
|
||||||
|
|||||||
@@ -3,10 +3,13 @@ package models
|
|||||||
// 服务
|
// 服务
|
||||||
type Server struct {
|
type Server struct {
|
||||||
Id uint32 `field:"id"` // ID
|
Id uint32 `field:"id"` // ID
|
||||||
UniqueId string `field:"uniqueId"` // 唯一ID
|
|
||||||
IsOn uint8 `field:"isOn"` // 是否启用
|
IsOn uint8 `field:"isOn"` // 是否启用
|
||||||
|
UniqueId string `field:"uniqueId"` // 唯一ID
|
||||||
UserId uint32 `field:"userId"` // 用户ID
|
UserId uint32 `field:"userId"` // 用户ID
|
||||||
AdminId uint32 `field:"adminId"` // 管理员ID
|
AdminId uint32 `field:"adminId"` // 管理员ID
|
||||||
|
Type string `field:"type"` // 服务类型
|
||||||
|
Name string `field:"name"` // 名称
|
||||||
|
Description string `field:"description"` // 描述
|
||||||
GroupIds string `field:"groupIds"` // 分组ID列表
|
GroupIds string `field:"groupIds"` // 分组ID列表
|
||||||
Config string `field:"config"` // 服务配置,自动生成
|
Config string `field:"config"` // 服务配置,自动生成
|
||||||
ClusterId uint32 `field:"clusterId"` // 集群ID
|
ClusterId uint32 `field:"clusterId"` // 集群ID
|
||||||
@@ -19,10 +22,13 @@ type Server struct {
|
|||||||
|
|
||||||
type ServerOperator struct {
|
type ServerOperator struct {
|
||||||
Id interface{} // ID
|
Id interface{} // ID
|
||||||
UniqueId interface{} // 唯一ID
|
|
||||||
IsOn interface{} // 是否启用
|
IsOn interface{} // 是否启用
|
||||||
|
UniqueId interface{} // 唯一ID
|
||||||
UserId interface{} // 用户ID
|
UserId interface{} // 用户ID
|
||||||
AdminId interface{} // 管理员ID
|
AdminId interface{} // 管理员ID
|
||||||
|
Type interface{} // 服务类型
|
||||||
|
Name interface{} // 名称
|
||||||
|
Description interface{} // 描述
|
||||||
GroupIds interface{} // 分组ID列表
|
GroupIds interface{} // 分组ID列表
|
||||||
Config interface{} // 服务配置,自动生成
|
Config interface{} // 服务配置,自动生成
|
||||||
ClusterId interface{} // 集群ID
|
ClusterId interface{} // 集群ID
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ func (this *NodeInstaller) Install(dir string, params interface{}) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
data = bytes.ReplaceAll(data, []byte("${endpoint}"), []byte(nodeParams.Endpoint))
|
data = bytes.ReplaceAll(data, []byte("${endpoints}"), []byte(nodeParams.QuoteEndpoints()))
|
||||||
data = bytes.ReplaceAll(data, []byte("${nodeId}"), []byte(nodeParams.NodeId))
|
data = bytes.ReplaceAll(data, []byte("${nodeId}"), []byte(nodeParams.NodeId))
|
||||||
data = bytes.ReplaceAll(data, []byte("${nodeSecret}"), []byte(nodeParams.Secret))
|
data = bytes.ReplaceAll(data, []byte("${nodeSecret}"), []byte(nodeParams.Secret))
|
||||||
|
|
||||||
|
|||||||
@@ -25,9 +25,9 @@ func TestNodeInstaller_Install(t *testing.T) {
|
|||||||
|
|
||||||
// 安装
|
// 安装
|
||||||
err = installer.Install("/opt/edge", &NodeParams{
|
err = installer.Install("/opt/edge", &NodeParams{
|
||||||
Endpoint: "192.168.2.40:8003",
|
Endpoints: []string{"192.168.2.40:8003"},
|
||||||
NodeId: "313fdb1b90d0a63c736f307b4d1ca358",
|
NodeId: "313fdb1b90d0a63c736f307b4d1ca358",
|
||||||
Secret: "Pl3u5kYqBDZddp7raw6QfHiuGPRCWF54",
|
Secret: "Pl3u5kYqBDZddp7raw6QfHiuGPRCWF54",
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
|
|||||||
@@ -1,15 +1,18 @@
|
|||||||
package installers
|
package installers
|
||||||
|
|
||||||
import "errors"
|
import (
|
||||||
|
"errors"
|
||||||
|
"strings"
|
||||||
|
)
|
||||||
|
|
||||||
type NodeParams struct {
|
type NodeParams struct {
|
||||||
Endpoint string
|
Endpoints []string
|
||||||
NodeId string
|
NodeId string
|
||||||
Secret string
|
Secret string
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *NodeParams) Validate() error {
|
func (this *NodeParams) Validate() error {
|
||||||
if len(this.Endpoint) == 0 {
|
if len(this.Endpoints) == 0 {
|
||||||
return errors.New("'endpoint' should not be empty")
|
return errors.New("'endpoint' should not be empty")
|
||||||
}
|
}
|
||||||
if len(this.NodeId) == 0 {
|
if len(this.NodeId) == 0 {
|
||||||
@@ -20,3 +23,10 @@ func (this *NodeParams) Validate() error {
|
|||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (this *NodeParams) QuoteEndpoints() string {
|
||||||
|
if len(this.Endpoints) == 0 {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
return "\"" + strings.Join(this.Endpoints, "\", \"") + "\""
|
||||||
|
}
|
||||||
|
|||||||
162
internal/installers/queue.go
Normal file
162
internal/installers/queue.go
Normal file
@@ -0,0 +1,162 @@
|
|||||||
|
package installers
|
||||||
|
|
||||||
|
import (
|
||||||
|
"errors"
|
||||||
|
"fmt"
|
||||||
|
"github.com/TeaOSLab/EdgeAPI/internal/db/models"
|
||||||
|
"github.com/TeaOSLab/EdgeAPI/internal/utils"
|
||||||
|
"github.com/iwind/TeaGo/logs"
|
||||||
|
"strconv"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
var sharedQueue = NewQueue()
|
||||||
|
|
||||||
|
type Queue struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewQueue() *Queue {
|
||||||
|
return &Queue{}
|
||||||
|
}
|
||||||
|
|
||||||
|
func SharedQueue() *Queue {
|
||||||
|
return sharedQueue
|
||||||
|
}
|
||||||
|
|
||||||
|
// 安装边缘节点流程控制
|
||||||
|
func (this *Queue) InstallNodeProcess(nodeId int64) error {
|
||||||
|
installStatus := models.NewNodeInstallStatus()
|
||||||
|
installStatus.IsRunning = true
|
||||||
|
installStatus.UpdatedAt = time.Now().Unix()
|
||||||
|
|
||||||
|
err := models.SharedNodeDAO.UpdateNodeInstallStatus(nodeId, installStatus)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// 更新时间
|
||||||
|
ticker := utils.NewTicker(3 * time.Second)
|
||||||
|
go func() {
|
||||||
|
for ticker.Wait() {
|
||||||
|
installStatus.UpdatedAt = time.Now().Unix()
|
||||||
|
err := models.SharedNodeDAO.UpdateNodeInstallStatus(nodeId, installStatus)
|
||||||
|
if err != nil {
|
||||||
|
logs.Println("[INSTALL]" + err.Error())
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
defer func() {
|
||||||
|
ticker.Stop()
|
||||||
|
}()
|
||||||
|
|
||||||
|
// 开始安装
|
||||||
|
err = this.InstallNode(nodeId)
|
||||||
|
|
||||||
|
// 安装结束
|
||||||
|
installStatus.IsRunning = false
|
||||||
|
installStatus.IsFinished = true
|
||||||
|
if err != nil {
|
||||||
|
installStatus.Error = err.Error()
|
||||||
|
} else {
|
||||||
|
installStatus.IsOk = true
|
||||||
|
}
|
||||||
|
err = models.SharedNodeDAO.UpdateNodeInstallStatus(nodeId, installStatus)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// 修改为已安装
|
||||||
|
if installStatus.IsOk {
|
||||||
|
err = models.SharedNodeDAO.UpdateNodeIsInstalled(nodeId, true)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// 安装边缘节点
|
||||||
|
func (this *Queue) InstallNode(nodeId int64) error {
|
||||||
|
node, err := models.SharedNodeDAO.FindEnabledNode(nodeId)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if node == nil {
|
||||||
|
return errors.New("can not find node, ID:'" + strconv.FormatInt(nodeId, 10) + "'")
|
||||||
|
}
|
||||||
|
|
||||||
|
// 登录信息
|
||||||
|
login, err := models.SharedNodeLoginDAO.FindEnabledNodeLoginWithNodeId(nodeId)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if login == nil {
|
||||||
|
return errors.New("can not find node login information")
|
||||||
|
}
|
||||||
|
loginParams, err := login.DecodeSSHParams()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
grant, err := models.SharedNodeGrantDAO.FindEnabledNodeGrant(loginParams.GrantId)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if grant == nil {
|
||||||
|
return errors.New("can not find user grant with id '" + strconv.FormatInt(loginParams.GrantId, 10) + "'")
|
||||||
|
}
|
||||||
|
|
||||||
|
// 安装目录
|
||||||
|
installDir := node.InstallDir
|
||||||
|
if len(installDir) == 0 {
|
||||||
|
clusterId := node.ClusterId
|
||||||
|
cluster, err := models.SharedNodeClusterDAO.FindEnabledNodeCluster(int64(clusterId))
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if cluster == nil {
|
||||||
|
return errors.New("can not find cluster, ID:'" + fmt.Sprintf("%d", clusterId) + "'")
|
||||||
|
}
|
||||||
|
installDir = cluster.InstallDir
|
||||||
|
if len(installDir) == 0 {
|
||||||
|
return errors.New("unable to find installation dir")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// API终端
|
||||||
|
apiNodes, err := models.SharedAPINodeDAO.FindAllEnabledAPINodes()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if len(apiNodes) == 0 {
|
||||||
|
return errors.New("no available api nodes")
|
||||||
|
}
|
||||||
|
|
||||||
|
apiEndpoints := []string{}
|
||||||
|
for _, apiNode := range apiNodes {
|
||||||
|
apiEndpoints = append(apiEndpoints, apiNode.Host+":"+strconv.Itoa(int(apiNode.Port)))
|
||||||
|
}
|
||||||
|
|
||||||
|
params := &NodeParams{
|
||||||
|
Endpoints: apiEndpoints,
|
||||||
|
NodeId: node.UniqueId,
|
||||||
|
Secret: node.Secret,
|
||||||
|
}
|
||||||
|
|
||||||
|
installer := &NodeInstaller{}
|
||||||
|
err = installer.Login(&Credentials{
|
||||||
|
Host: loginParams.Host,
|
||||||
|
Port: loginParams.Port,
|
||||||
|
Username: grant.Username,
|
||||||
|
Password: grant.Password,
|
||||||
|
PrivateKey: grant.PrivateKey,
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
err = installer.Install(installDir, params)
|
||||||
|
return err
|
||||||
|
}
|
||||||
19
internal/installers/queue_test.go
Normal file
19
internal/installers/queue_test.go
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
package installers
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestQueue_InstallNode(t *testing.T) {
|
||||||
|
queue := NewQueue()
|
||||||
|
err := queue.InstallNodeProcess(16)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
time.Sleep(1 * time.Second)
|
||||||
|
|
||||||
|
t.Log("OK")
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,222 +0,0 @@
|
|||||||
// 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"`
|
|
||||||
}
|
|
||||||
|
|
||||||
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
|
|
||||||
}
|
|
||||||
|
|
||||||
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, 0xdd, 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, 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
|
|
||||||
}
|
|
||||||
@@ -1,243 +0,0 @@
|
|||||||
// 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"`
|
|
||||||
}
|
|
||||||
|
|
||||||
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
|
|
||||||
}
|
|
||||||
|
|
||||||
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, 0x22, 0x9c, 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, 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
|
|
||||||
}
|
|
||||||
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
|
|
||||||
2, // [2:2] is the sub-list for method output_type
|
|
||||||
2, // [2:2] is the sub-list for method input_type
|
|
||||||
2, // [2:2] is the sub-list for extension type_name
|
|
||||||
2, // [2:2] is the sub-list for extension extendee
|
|
||||||
0, // [0:2] is the sub-list for field type_name
|
|
||||||
}
|
|
||||||
|
|
||||||
func init() { file_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()
|
|
||||||
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
|
|
||||||
}
|
|
||||||
@@ -1,185 +0,0 @@
|
|||||||
// 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
|
|
||||||
}
|
|
||||||
@@ -1,223 +0,0 @@
|
|||||||
// 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
|
|
||||||
}
|
|
||||||
@@ -1,203 +0,0 @@
|
|||||||
// 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
|
|
||||||
}
|
|
||||||
@@ -1,174 +0,0 @@
|
|||||||
// 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
|
|
||||||
}
|
|
||||||
@@ -1,201 +0,0 @@
|
|||||||
// 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"`
|
|
||||||
IncludeNodes []byte `protobuf:"bytes,3,opt,name=includeNodes,proto3" json:"includeNodes,omitempty"`
|
|
||||||
ExcludeNodes []byte `protobuf:"bytes,4,opt,name=excludeNodes,proto3" json:"excludeNodes,omitempty"`
|
|
||||||
CreatedAt int64 `protobuf:"varint,5,opt,name=createdAt,proto3" json:"createdAt,omitempty"`
|
|
||||||
Cluster *NodeCluster `protobuf:"bytes,6,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) 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, 0xc1, 0x01, 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, 0x22, 0x0a, 0x0c, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65,
|
|
||||||
0x4e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x03, 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, 0x04, 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, 0x05, 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, 0x06, 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
|
|
||||||
}
|
|
||||||
@@ -1,883 +0,0 @@
|
|||||||
// 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 FindAdminNameRequest struct {
|
|
||||||
state protoimpl.MessageState
|
|
||||||
sizeCache protoimpl.SizeCache
|
|
||||||
unknownFields protoimpl.UnknownFields
|
|
||||||
|
|
||||||
AdminId int64 `protobuf:"varint,1,opt,name=adminId,proto3" json:"adminId,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *FindAdminNameRequest) Reset() {
|
|
||||||
*x = FindAdminNameRequest{}
|
|
||||||
if protoimpl.UnsafeEnabled {
|
|
||||||
mi := &file_service_admin_proto_msgTypes[6]
|
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
||||||
ms.StoreMessageInfo(mi)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *FindAdminNameRequest) String() string {
|
|
||||||
return protoimpl.X.MessageStringOf(x)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (*FindAdminNameRequest) ProtoMessage() {}
|
|
||||||
|
|
||||||
func (x *FindAdminNameRequest) 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 FindAdminNameRequest.ProtoReflect.Descriptor instead.
|
|
||||||
func (*FindAdminNameRequest) Descriptor() ([]byte, []int) {
|
|
||||||
return file_service_admin_proto_rawDescGZIP(), []int{6}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *FindAdminNameRequest) GetAdminId() int64 {
|
|
||||||
if x != nil {
|
|
||||||
return x.AdminId
|
|
||||||
}
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
type FindAdminNameResponse struct {
|
|
||||||
state protoimpl.MessageState
|
|
||||||
sizeCache protoimpl.SizeCache
|
|
||||||
unknownFields protoimpl.UnknownFields
|
|
||||||
|
|
||||||
Fullname string `protobuf:"bytes,1,opt,name=fullname,proto3" json:"fullname,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *FindAdminNameResponse) Reset() {
|
|
||||||
*x = FindAdminNameResponse{}
|
|
||||||
if protoimpl.UnsafeEnabled {
|
|
||||||
mi := &file_service_admin_proto_msgTypes[7]
|
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
||||||
ms.StoreMessageInfo(mi)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *FindAdminNameResponse) String() string {
|
|
||||||
return protoimpl.X.MessageStringOf(x)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (*FindAdminNameResponse) ProtoMessage() {}
|
|
||||||
|
|
||||||
func (x *FindAdminNameResponse) 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 FindAdminNameResponse.ProtoReflect.Descriptor instead.
|
|
||||||
func (*FindAdminNameResponse) Descriptor() ([]byte, []int) {
|
|
||||||
return file_service_admin_proto_rawDescGZIP(), []int{7}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *FindAdminNameResponse) 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, 0x30, 0x0a, 0x14, 0x46, 0x69,
|
|
||||||
0x6e, 0x64, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4e, 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, 0x33, 0x0a, 0x15,
|
|
||||||
0x46, 0x69, 0x6e, 0x64, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4e, 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, 0xb5, 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, 0x4a, 0x0a,
|
|
||||||
0x11, 0x66, 0x69, 0x6e, 0x64, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x46, 0x75, 0x6c, 0x6c, 0x6e, 0x61,
|
|
||||||
0x6d, 0x65, 0x12, 0x18, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x64, 0x6d, 0x69,
|
|
||||||
0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x70,
|
|
||||||
0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4e, 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
|
|
||||||
(*FindAdminNameRequest)(nil), // 6: pb.FindAdminNameRequest
|
|
||||||
(*FindAdminNameResponse)(nil), // 7: pb.FindAdminNameResponse
|
|
||||||
}
|
|
||||||
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.FindAdminNameRequest
|
|
||||||
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.FindAdminNameResponse
|
|
||||||
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.(*FindAdminNameRequest); 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.(*FindAdminNameResponse); 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 *FindAdminNameRequest, opts ...grpc.CallOption) (*FindAdminNameResponse, 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 *FindAdminNameRequest, opts ...grpc.CallOption) (*FindAdminNameResponse, error) {
|
|
||||||
out := new(FindAdminNameResponse)
|
|
||||||
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, *FindAdminNameRequest) (*FindAdminNameResponse, 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, *FindAdminNameRequest) (*FindAdminNameResponse, 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(FindAdminNameRequest)
|
|
||||||
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.(*FindAdminNameRequest))
|
|
||||||
}
|
|
||||||
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",
|
|
||||||
}
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -1,66 +0,0 @@
|
|||||||
// 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
|
|
||||||
}
|
|
||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,66 +0,0 @@
|
|||||||
// 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
|
|
||||||
}
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -1,66 +0,0 @@
|
|||||||
// 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
|
|
||||||
}
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -1,66 +0,0 @@
|
|||||||
// 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
|
|
||||||
}
|
|
||||||
@@ -1,66 +0,0 @@
|
|||||||
// 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
|
|
||||||
}
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
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;
|
|
||||||
}
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
syntax = "proto3";
|
|
||||||
option go_package = "./pb";
|
|
||||||
|
|
||||||
package pb;
|
|
||||||
|
|
||||||
import "model_node_cluster.proto";
|
|
||||||
import "model_node_login.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;
|
|
||||||
}
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
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;
|
|
||||||
}
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
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;
|
|
||||||
}
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
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;
|
|
||||||
}
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
syntax = "proto3";
|
|
||||||
option go_package = "./pb";
|
|
||||||
|
|
||||||
package pb;
|
|
||||||
|
|
||||||
message NodeLogin {
|
|
||||||
int64 id = 1;
|
|
||||||
string name = 2;
|
|
||||||
string type = 3;
|
|
||||||
bytes params = 4;
|
|
||||||
}
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
syntax = "proto3";
|
|
||||||
option go_package = "./pb";
|
|
||||||
|
|
||||||
package pb;
|
|
||||||
|
|
||||||
import "model_node_cluster.proto";
|
|
||||||
|
|
||||||
message Server {
|
|
||||||
int64 id = 1;
|
|
||||||
bytes config = 2;
|
|
||||||
bytes includeNodes = 3;
|
|
||||||
bytes excludeNodes = 4;
|
|
||||||
int64 createdAt = 5;
|
|
||||||
|
|
||||||
NodeCluster cluster = 6;
|
|
||||||
}
|
|
||||||
@@ -1,65 +0,0 @@
|
|||||||
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 (FindAdminNameRequest) returns (FindAdminNameResponse) {
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
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 FindAdminNameRequest {
|
|
||||||
int64 adminId = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
message FindAdminNameResponse {
|
|
||||||
string fullname = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1,99 +0,0 @@
|
|||||||
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;
|
|
||||||
}
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
syntax = "proto3";
|
|
||||||
option go_package = "./pb";
|
|
||||||
|
|
||||||
package pb;
|
|
||||||
|
|
||||||
@@ -1,160 +0,0 @@
|
|||||||
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);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 创建节点
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
|
|
||||||
message CountAllEnabledNodesMatchResponse {
|
|
||||||
int64 count = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 修改节点安装状态
|
|
||||||
message UpdateNodeIsInstalledRequest {
|
|
||||||
int64 nodeId = 1;
|
|
||||||
bool isInstalled = 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
message UpdateNodeIsInstalledResponse {
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,109 +0,0 @@
|
|||||||
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;
|
|
||||||
}
|
|
||||||
@@ -1,105 +0,0 @@
|
|||||||
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;
|
|
||||||
}
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
syntax = "proto3";
|
|
||||||
option go_package = "./pb";
|
|
||||||
|
|
||||||
package pb;
|
|
||||||
|
|
||||||
@@ -1,97 +0,0 @@
|
|||||||
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;
|
|
||||||
}
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
syntax = "proto3";
|
|
||||||
option go_package = "./pb";
|
|
||||||
|
|
||||||
package pb;
|
|
||||||
|
|
||||||
@@ -1,91 +0,0 @@
|
|||||||
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;
|
|
||||||
int64 clusterId = 6;
|
|
||||||
bytes config = 3;
|
|
||||||
bytes includeNodesJSON = 4;
|
|
||||||
bytes excludeNodesJSON = 5;
|
|
||||||
}
|
|
||||||
|
|
||||||
message CreateServerResponse {
|
|
||||||
int64 serverId = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 修改服务
|
|
||||||
message UpdateServerRequest {
|
|
||||||
int64 serverId = 1;
|
|
||||||
int64 userId = 2;
|
|
||||||
int64 adminId = 3;
|
|
||||||
int64 clusterId = 4;
|
|
||||||
bytes config = 5;
|
|
||||||
bytes includeNodesJSON = 6;
|
|
||||||
bytes excludeNodesJSON = 7;
|
|
||||||
}
|
|
||||||
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
syntax = "proto3";
|
|
||||||
option go_package = "./pb";
|
|
||||||
|
|
||||||
package pb;
|
|
||||||
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
syntax = "proto3";
|
|
||||||
option go_package = "./pb";
|
|
||||||
|
|
||||||
package pb;
|
|
||||||
|
|
||||||
@@ -3,9 +3,9 @@ package services
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"github.com/TeaOSLab/EdgeAPI/internal/db/models"
|
"github.com/TeaOSLab/EdgeAPI/internal/db/models"
|
||||||
"github.com/TeaOSLab/EdgeAPI/internal/rpc/pb"
|
|
||||||
rpcutils "github.com/TeaOSLab/EdgeAPI/internal/rpc/utils"
|
rpcutils "github.com/TeaOSLab/EdgeAPI/internal/rpc/utils"
|
||||||
"github.com/TeaOSLab/EdgeAPI/internal/utils"
|
"github.com/TeaOSLab/EdgeAPI/internal/utils"
|
||||||
|
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
|
||||||
)
|
)
|
||||||
|
|
||||||
type AdminService struct {
|
type AdminService struct {
|
||||||
@@ -79,7 +79,7 @@ func (this *AdminService) CheckAdminExists(ctx context.Context, req *pb.CheckAdm
|
|||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *AdminService) FindAdminFullname(ctx context.Context, req *pb.FindAdminNameRequest) (*pb.FindAdminNameResponse, error) {
|
func (this *AdminService) FindAdminFullname(ctx context.Context, req *pb.FindAdminFullnameRequest) (*pb.FindAdminFullnameResponse, error) {
|
||||||
_, _, err := rpcutils.ValidateRequest(ctx)
|
_, _, err := rpcutils.ValidateRequest(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@@ -91,7 +91,7 @@ func (this *AdminService) FindAdminFullname(ctx context.Context, req *pb.FindAdm
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
return &pb.FindAdminNameResponse{
|
return &pb.FindAdminFullnameResponse{
|
||||||
Fullname: fullname,
|
Fullname: fullname,
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import (
|
|||||||
"encoding/base64"
|
"encoding/base64"
|
||||||
teaconst "github.com/TeaOSLab/EdgeAPI/internal/const"
|
teaconst "github.com/TeaOSLab/EdgeAPI/internal/const"
|
||||||
"github.com/TeaOSLab/EdgeAPI/internal/encrypt"
|
"github.com/TeaOSLab/EdgeAPI/internal/encrypt"
|
||||||
"github.com/TeaOSLab/EdgeAPI/internal/rpc/pb"
|
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
|
||||||
"github.com/iwind/TeaGo/assert"
|
"github.com/iwind/TeaGo/assert"
|
||||||
"github.com/iwind/TeaGo/maps"
|
"github.com/iwind/TeaGo/maps"
|
||||||
stringutil "github.com/iwind/TeaGo/utils/string"
|
stringutil "github.com/iwind/TeaGo/utils/string"
|
||||||
@@ -19,7 +19,7 @@ func TestAdminService_Login(t *testing.T) {
|
|||||||
service := &AdminService{
|
service := &AdminService{
|
||||||
debug: true,
|
debug: true,
|
||||||
}
|
}
|
||||||
resp, err := service.Login(testCtx(t), &pb.AdminLoginRequest{
|
resp, err := service.LoginAdmin(testCtx(t), &pb.LoginAdminRequest{
|
||||||
Username: "admin",
|
Username: "admin",
|
||||||
Password: stringutil.Md5("123456"),
|
Password: stringutil.Md5("123456"),
|
||||||
})
|
})
|
||||||
@@ -32,7 +32,7 @@ func TestAdminService_Login(t *testing.T) {
|
|||||||
func TestAdminService_CreateLog(t *testing.T) {
|
func TestAdminService_CreateLog(t *testing.T) {
|
||||||
service := &AdminService{debug: true}
|
service := &AdminService{debug: true}
|
||||||
|
|
||||||
resp, err := service.CreateLog(testCtx(t), &pb.AdminCreateLogRequest{
|
resp, err := service.CreateAdminLog(testCtx(t), &pb.CreateAdminLogRequest{
|
||||||
Level: "info",
|
Level: "info",
|
||||||
Description: "这是一个测试日志",
|
Description: "这是一个测试日志",
|
||||||
Action: "/login",
|
Action: "/login",
|
||||||
@@ -44,11 +44,11 @@ func TestAdminService_CreateLog(t *testing.T) {
|
|||||||
t.Log(resp)
|
t.Log(resp)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestAdminService_FindAllEnabledClusters(t *testing.T) {
|
func TestAdminService_FindAdminFullname(t *testing.T) {
|
||||||
service := &AdminService{
|
service := &AdminService{
|
||||||
debug: true,
|
debug: true,
|
||||||
}
|
}
|
||||||
resp, err := service.FindAllEnabledClusters(testCtx(t), &pb.AdminFindAllEnabledClustersRequest{})
|
resp, err := service.FindAdminFullname(testCtx(t), &pb.FindAdminFullnameRequest{AdminId: 1})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,8 +3,8 @@ package services
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"github.com/TeaOSLab/EdgeAPI/internal/db/models"
|
"github.com/TeaOSLab/EdgeAPI/internal/db/models"
|
||||||
"github.com/TeaOSLab/EdgeAPI/internal/rpc/pb"
|
|
||||||
rpcutils "github.com/TeaOSLab/EdgeAPI/internal/rpc/utils"
|
rpcutils "github.com/TeaOSLab/EdgeAPI/internal/rpc/utils"
|
||||||
|
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
|
||||||
)
|
)
|
||||||
|
|
||||||
type APINodeService struct {
|
type APINodeService struct {
|
||||||
@@ -79,6 +79,7 @@ func (this *APINodeService) FindAllEnabledAPINodes(ctx context.Context, req *pb.
|
|||||||
Description: node.Description,
|
Description: node.Description,
|
||||||
Host: node.Host,
|
Host: node.Host,
|
||||||
Port: int32(node.Port),
|
Port: int32(node.Port),
|
||||||
|
Address: node.Address(),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -124,6 +125,7 @@ func (this *APINodeService) ListEnabledAPINodes(ctx context.Context, req *pb.Lis
|
|||||||
Description: node.Description,
|
Description: node.Description,
|
||||||
Host: node.Host,
|
Host: node.Host,
|
||||||
Port: int32(node.Port),
|
Port: int32(node.Port),
|
||||||
|
Address: node.Address(),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -156,6 +158,7 @@ func (this *APINodeService) FindEnabledAPINode(ctx context.Context, req *pb.Find
|
|||||||
Description: node.Description,
|
Description: node.Description,
|
||||||
Host: node.Host,
|
Host: node.Host,
|
||||||
Port: int32(node.Port),
|
Port: int32(node.Port),
|
||||||
|
Address: node.Address(),
|
||||||
}
|
}
|
||||||
return &pb.FindEnabledAPINodeResponse{Node: result}, nil
|
return &pb.FindEnabledAPINodeResponse{Node: result}, nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,15 +5,18 @@ import (
|
|||||||
"encoding/json"
|
"encoding/json"
|
||||||
"errors"
|
"errors"
|
||||||
"github.com/TeaOSLab/EdgeAPI/internal/db/models"
|
"github.com/TeaOSLab/EdgeAPI/internal/db/models"
|
||||||
"github.com/TeaOSLab/EdgeAPI/internal/rpc/pb"
|
"github.com/TeaOSLab/EdgeAPI/internal/installers"
|
||||||
rpcutils "github.com/TeaOSLab/EdgeAPI/internal/rpc/utils"
|
rpcutils "github.com/TeaOSLab/EdgeAPI/internal/rpc/utils"
|
||||||
|
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
|
||||||
"github.com/iwind/TeaGo/logs"
|
"github.com/iwind/TeaGo/logs"
|
||||||
"github.com/iwind/TeaGo/maps"
|
"github.com/iwind/TeaGo/maps"
|
||||||
|
"github.com/iwind/TeaGo/types"
|
||||||
)
|
)
|
||||||
|
|
||||||
type NodeService struct {
|
type NodeService struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 创建节点
|
||||||
func (this *NodeService) CreateNode(ctx context.Context, req *pb.CreateNodeRequest) (*pb.CreateNodeResponse, error) {
|
func (this *NodeService) CreateNode(ctx context.Context, req *pb.CreateNodeRequest) (*pb.CreateNodeResponse, error) {
|
||||||
_, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin)
|
_, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -38,6 +41,7 @@ func (this *NodeService) CreateNode(ctx context.Context, req *pb.CreateNodeReque
|
|||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 计算节点数量
|
||||||
func (this *NodeService) CountAllEnabledNodes(ctx context.Context, req *pb.CountAllEnabledNodesRequest) (*pb.CountAllEnabledNodesResponse, error) {
|
func (this *NodeService) CountAllEnabledNodes(ctx context.Context, req *pb.CountAllEnabledNodesRequest) (*pb.CountAllEnabledNodesResponse, error) {
|
||||||
_ = req
|
_ = req
|
||||||
_, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin)
|
_, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin)
|
||||||
@@ -58,19 +62,20 @@ func (this *NodeService) CountAllEnabledNodesMatch(ctx context.Context, req *pb.
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
count, err := models.SharedNodeDAO.CountAllEnabledNodesMatch(req.ClusterId)
|
count, err := models.SharedNodeDAO.CountAllEnabledNodesMatch(req.ClusterId, types.Int8(req.InstallState))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
return &pb.CountAllEnabledNodesMatchResponse{Count: count}, nil
|
return &pb.CountAllEnabledNodesMatchResponse{Count: count}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 列出单页的节点
|
||||||
func (this *NodeService) ListEnabledNodesMatch(ctx context.Context, req *pb.ListEnabledNodesMatchRequest) (*pb.ListEnabledNodesMatchResponse, error) {
|
func (this *NodeService) ListEnabledNodesMatch(ctx context.Context, req *pb.ListEnabledNodesMatchRequest) (*pb.ListEnabledNodesMatchResponse, error) {
|
||||||
_, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin)
|
_, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
nodes, err := models.SharedNodeDAO.ListEnabledNodesMatch(req.Offset, req.Size, req.ClusterId)
|
nodes, err := models.SharedNodeDAO.ListEnabledNodesMatch(req.Offset, req.Size, req.ClusterId, types.Int8(req.InstallState))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -82,14 +87,32 @@ func (this *NodeService) ListEnabledNodesMatch(ctx context.Context, req *pb.List
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 安装信息
|
||||||
|
installStatus, err := node.DecodeInstallStatus()
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
installStatusResult := &pb.NodeInstallStatus{}
|
||||||
|
if installStatus != nil {
|
||||||
|
installStatusResult = &pb.NodeInstallStatus{
|
||||||
|
IsRunning: installStatus.IsRunning,
|
||||||
|
IsFinished: installStatus.IsFinished,
|
||||||
|
IsOk: installStatus.IsOk,
|
||||||
|
Error: installStatus.Error,
|
||||||
|
UpdatedAt: installStatus.UpdatedAt,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
result = append(result, &pb.Node{
|
result = append(result, &pb.Node{
|
||||||
Id: int64(node.Id),
|
Id: int64(node.Id),
|
||||||
Name: node.Name,
|
Name: node.Name,
|
||||||
Status: node.Status,
|
IsInstalled: node.IsInstalled == 1,
|
||||||
|
Status: node.Status,
|
||||||
Cluster: &pb.NodeCluster{
|
Cluster: &pb.NodeCluster{
|
||||||
Id: int64(node.ClusterId),
|
Id: int64(node.ClusterId),
|
||||||
Name: clusterName,
|
Name: clusterName,
|
||||||
},
|
},
|
||||||
|
InstallStatus: installStatusResult,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -183,6 +206,22 @@ func (this *NodeService) FindEnabledNode(ctx context.Context, req *pb.FindEnable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 安装信息
|
||||||
|
installStatus, err := node.DecodeInstallStatus()
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
installStatusResult := &pb.NodeInstallStatus{}
|
||||||
|
if installStatus != nil {
|
||||||
|
installStatusResult = &pb.NodeInstallStatus{
|
||||||
|
IsRunning: installStatus.IsRunning,
|
||||||
|
IsFinished: installStatus.IsFinished,
|
||||||
|
IsOk: installStatus.IsOk,
|
||||||
|
Error: installStatus.Error,
|
||||||
|
UpdatedAt: installStatus.UpdatedAt,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return &pb.FindEnabledNodeResponse{Node: &pb.Node{
|
return &pb.FindEnabledNodeResponse{Node: &pb.Node{
|
||||||
Id: int64(node.Id),
|
Id: int64(node.Id),
|
||||||
Name: node.Name,
|
Name: node.Name,
|
||||||
@@ -195,7 +234,8 @@ func (this *NodeService) FindEnabledNode(ctx context.Context, req *pb.FindEnable
|
|||||||
Id: int64(node.ClusterId),
|
Id: int64(node.ClusterId),
|
||||||
Name: clusterName,
|
Name: clusterName,
|
||||||
},
|
},
|
||||||
Login: respLogin,
|
Login: respLogin,
|
||||||
|
InstallStatus: installStatusResult,
|
||||||
}}, nil
|
}}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -323,3 +363,20 @@ func (this *NodeService) UpdateNodeIsInstalled(ctx context.Context, req *pb.Upda
|
|||||||
|
|
||||||
return &pb.UpdateNodeIsInstalledResponse{}, nil
|
return &pb.UpdateNodeIsInstalledResponse{}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 安装节点
|
||||||
|
func (this *NodeService) InstallNode(ctx context.Context, req *pb.InstallNodeRequest) (*pb.InstallNodeResponse, error) {
|
||||||
|
_, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
go func() {
|
||||||
|
err = installers.SharedQueue().InstallNodeProcess(req.NodeId)
|
||||||
|
if err != nil {
|
||||||
|
logs.Println("[RPC]install node:" + err.Error())
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
|
||||||
|
return &pb.InstallNodeResponse{}, nil
|
||||||
|
}
|
||||||
|
|||||||
@@ -3,8 +3,8 @@ package services
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"github.com/TeaOSLab/EdgeAPI/internal/db/models"
|
"github.com/TeaOSLab/EdgeAPI/internal/db/models"
|
||||||
"github.com/TeaOSLab/EdgeAPI/internal/rpc/pb"
|
|
||||||
rpcutils "github.com/TeaOSLab/EdgeAPI/internal/rpc/utils"
|
rpcutils "github.com/TeaOSLab/EdgeAPI/internal/rpc/utils"
|
||||||
|
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
|
||||||
)
|
)
|
||||||
|
|
||||||
type NodeClusterService struct {
|
type NodeClusterService struct {
|
||||||
|
|||||||
@@ -4,8 +4,8 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
"errors"
|
"errors"
|
||||||
"github.com/TeaOSLab/EdgeAPI/internal/db/models"
|
"github.com/TeaOSLab/EdgeAPI/internal/db/models"
|
||||||
"github.com/TeaOSLab/EdgeAPI/internal/rpc/pb"
|
|
||||||
rpcutils "github.com/TeaOSLab/EdgeAPI/internal/rpc/utils"
|
rpcutils "github.com/TeaOSLab/EdgeAPI/internal/rpc/utils"
|
||||||
|
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
|
||||||
)
|
)
|
||||||
|
|
||||||
type NodeGrantService struct {
|
type NodeGrantService struct {
|
||||||
|
|||||||
@@ -3,8 +3,8 @@ package services
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"github.com/TeaOSLab/EdgeAPI/internal/db/models"
|
"github.com/TeaOSLab/EdgeAPI/internal/db/models"
|
||||||
"github.com/TeaOSLab/EdgeAPI/internal/rpc/pb"
|
|
||||||
rpcutils "github.com/TeaOSLab/EdgeAPI/internal/rpc/utils"
|
rpcutils "github.com/TeaOSLab/EdgeAPI/internal/rpc/utils"
|
||||||
|
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
|
||||||
)
|
)
|
||||||
|
|
||||||
type NodeIPAddressService struct {
|
type NodeIPAddressService struct {
|
||||||
|
|||||||
95
internal/rpc/services/service_origin_server.go
Normal file
95
internal/rpc/services/service_origin_server.go
Normal file
@@ -0,0 +1,95 @@
|
|||||||
|
package services
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"errors"
|
||||||
|
"github.com/TeaOSLab/EdgeAPI/internal/db/models"
|
||||||
|
rpcutils "github.com/TeaOSLab/EdgeAPI/internal/rpc/utils"
|
||||||
|
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
|
||||||
|
"github.com/iwind/TeaGo/maps"
|
||||||
|
)
|
||||||
|
|
||||||
|
// 源站相关管理
|
||||||
|
type OriginServerService struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
// 创建源站
|
||||||
|
func (this *OriginServerService) CreateOriginServer(ctx context.Context, req *pb.CreateOriginServerRequest) (*pb.CreateOriginServerResponse, error) {
|
||||||
|
_, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
if req.Addr == nil {
|
||||||
|
return nil, errors.New("'addr' can not be nil")
|
||||||
|
}
|
||||||
|
addrMap := maps.Map{
|
||||||
|
"protocol": req.Addr.Protocol,
|
||||||
|
"portRange": req.Addr.PortRange,
|
||||||
|
"host": req.Addr.Host,
|
||||||
|
}
|
||||||
|
originId, err := models.SharedOriginServerDAO.CreateOriginServer(req.Name, string(addrMap.AsJSON()), req.Description)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return &pb.CreateOriginServerResponse{OriginId: originId}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// 修改源站
|
||||||
|
func (this *OriginServerService) UpdateOriginServer(ctx context.Context, req *pb.UpdateOriginServerRequest) (*pb.UpdateOriginServerResponse, error) {
|
||||||
|
_, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
if req.Addr == nil {
|
||||||
|
return nil, errors.New("'addr' can not be nil")
|
||||||
|
}
|
||||||
|
addrMap := maps.Map{
|
||||||
|
"protocol": req.Addr.Protocol,
|
||||||
|
"portRange": req.Addr.PortRange,
|
||||||
|
"host": req.Addr.Host,
|
||||||
|
}
|
||||||
|
err = models.SharedOriginServerDAO.UpdateOriginServer(req.OriginId, req.Name, string(addrMap.AsJSON()), req.Description)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return &pb.UpdateOriginServerResponse{}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查找单个源站信息
|
||||||
|
func (this *OriginServerService) FindEnabledOriginServer(ctx context.Context, req *pb.FindEnabledOriginServerRequest) (*pb.FindEnabledOriginServerResponse, error) {
|
||||||
|
_, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
origin, err := models.SharedOriginServerDAO.FindEnabledOriginServer(req.OriginId)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
if origin == nil {
|
||||||
|
return &pb.FindEnabledOriginServerResponse{Origin: nil}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
addr, err := origin.DecodeAddr()
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
result := &pb.OriginServer{
|
||||||
|
Id: int64(origin.Id),
|
||||||
|
IsOn: origin.IsOn == 1,
|
||||||
|
Name: origin.Name,
|
||||||
|
Addr: &pb.NetworkAddress{
|
||||||
|
Protocol: addr.Protocol,
|
||||||
|
Host: addr.Host,
|
||||||
|
PortRange: addr.PortRange,
|
||||||
|
},
|
||||||
|
Description: origin.Description,
|
||||||
|
}
|
||||||
|
return &pb.FindEnabledOriginServerResponse{Origin: result}, nil
|
||||||
|
}
|
||||||
@@ -4,8 +4,8 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
"errors"
|
"errors"
|
||||||
"github.com/TeaOSLab/EdgeAPI/internal/db/models"
|
"github.com/TeaOSLab/EdgeAPI/internal/db/models"
|
||||||
"github.com/TeaOSLab/EdgeAPI/internal/rpc/pb"
|
|
||||||
rpcutils "github.com/TeaOSLab/EdgeAPI/internal/rpc/utils"
|
rpcutils "github.com/TeaOSLab/EdgeAPI/internal/rpc/utils"
|
||||||
|
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
|
||||||
)
|
)
|
||||||
|
|
||||||
type ServerService struct {
|
type ServerService struct {
|
||||||
@@ -17,7 +17,7 @@ func (this *ServerService) CreateServer(ctx context.Context, req *pb.CreateServe
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
serverId, err := models.SharedServerDAO.CreateServer(req.AdminId, req.UserId, req.ClusterId, string(req.Config), string(req.IncludeNodesJSON), string(req.ExcludeNodesJSON))
|
serverId, err := models.SharedServerDAO.CreateServer(req.AdminId, req.UserId, req.Type, req.Name, req.Description, req.ClusterId, string(req.Config), string(req.IncludeNodesJSON), string(req.ExcludeNodesJSON))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -32,7 +32,7 @@ func (this *ServerService) CreateServer(ctx context.Context, req *pb.CreateServe
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 修改服务
|
// 修改服务
|
||||||
func (this *ServerService) UpdateServer(ctx context.Context, req *pb.UpdateServerRequest) (*pb.UpdateServerResponse, error) {
|
func (this *ServerService) UpdateServerBasic(ctx context.Context, req *pb.UpdateServerBasicRequest) (*pb.UpdateServerBasicResponse, error) {
|
||||||
_, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin)
|
_, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@@ -51,7 +51,7 @@ func (this *ServerService) UpdateServer(ctx context.Context, req *pb.UpdateServe
|
|||||||
return nil, errors.New("can not find server")
|
return nil, errors.New("can not find server")
|
||||||
}
|
}
|
||||||
|
|
||||||
err = models.SharedServerDAO.UpdateServer(req.ServerId, req.ClusterId, string(req.Config), string(req.IncludeNodesJSON), string(req.ExcludeNodesJSON))
|
err = models.SharedServerDAO.UpdateServerBasic(req.ServerId, req.Name, req.Description, req.ClusterId)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -70,7 +70,42 @@ func (this *ServerService) UpdateServer(ctx context.Context, req *pb.UpdateServe
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
return &pb.UpdateServerResponse{}, nil
|
return &pb.UpdateServerBasicResponse{}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// 修改服务配置
|
||||||
|
func (this *ServerService) UpdateServerConfig(ctx context.Context, req *pb.UpdateServerConfigRequest) (*pb.UpdateServerConfigResponse, error) {
|
||||||
|
_, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
if req.ServerId <= 0 {
|
||||||
|
return nil, errors.New("invalid serverId")
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查找Server
|
||||||
|
server, err := models.SharedServerDAO.FindEnabledServer(req.ServerId)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if server == nil {
|
||||||
|
return &pb.UpdateServerConfigResponse{}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// 修改
|
||||||
|
err = models.SharedServerDAO.UpdateServerConfig(req.ServerId, req.Config)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// 更新新的节点版本
|
||||||
|
err = models.SharedNodeDAO.UpdateAllNodesLatestVersionMatch(int64(server.ClusterId))
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return &pb.UpdateServerConfigResponse{}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// 计算服务数量
|
// 计算服务数量
|
||||||
@@ -106,6 +141,9 @@ func (this *ServerService) ListEnabledServers(ctx context.Context, req *pb.ListE
|
|||||||
}
|
}
|
||||||
result = append(result, &pb.Server{
|
result = append(result, &pb.Server{
|
||||||
Id: int64(server.Id),
|
Id: int64(server.Id),
|
||||||
|
Type: server.Type,
|
||||||
|
Name: server.Name,
|
||||||
|
Description: server.Description,
|
||||||
Config: []byte(server.Config),
|
Config: []byte(server.Config),
|
||||||
IncludeNodes: []byte(server.IncludeNodes),
|
IncludeNodes: []byte(server.IncludeNodes),
|
||||||
ExcludeNodes: []byte(server.ExcludeNodes),
|
ExcludeNodes: []byte(server.ExcludeNodes),
|
||||||
@@ -174,6 +212,9 @@ func (this *ServerService) FindEnabledServer(ctx context.Context, req *pb.FindEn
|
|||||||
|
|
||||||
return &pb.FindEnabledServerResponse{Server: &pb.Server{
|
return &pb.FindEnabledServerResponse{Server: &pb.Server{
|
||||||
Id: int64(server.Id),
|
Id: int64(server.Id),
|
||||||
|
Type: server.Type,
|
||||||
|
Name: server.Name,
|
||||||
|
Description: server.Description,
|
||||||
Config: []byte(server.Config),
|
Config: []byte(server.Config),
|
||||||
IncludeNodes: []byte(server.IncludeNodes),
|
IncludeNodes: []byte(server.IncludeNodes),
|
||||||
ExcludeNodes: []byte(server.ExcludeNodes),
|
ExcludeNodes: []byte(server.ExcludeNodes),
|
||||||
|
|||||||
@@ -3,9 +3,9 @@ package tests
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
pb2 "github.com/TeaOSLab/EdgeAPI/internal/rpc/pb"
|
|
||||||
"github.com/TeaOSLab/EdgeAPI/internal/rpc/services"
|
"github.com/TeaOSLab/EdgeAPI/internal/rpc/services"
|
||||||
pb "github.com/TeaOSLab/EdgeAPI/internal/tests/helloworld"
|
pb "github.com/TeaOSLab/EdgeAPI/internal/tests/helloworld"
|
||||||
|
pb2 "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
|
||||||
"google.golang.org/grpc"
|
"google.golang.org/grpc"
|
||||||
"google.golang.org/grpc/credentials"
|
"google.golang.org/grpc/credentials"
|
||||||
"google.golang.org/grpc/metadata"
|
"google.golang.org/grpc/metadata"
|
||||||
@@ -75,30 +75,6 @@ func TestTCPClient(t *testing.T) {
|
|||||||
t.Log(time.Since(before).Seconds()*1000, "ms")
|
t.Log(time.Since(before).Seconds()*1000, "ms")
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestTCPClient_Node(t *testing.T) {
|
|
||||||
conn, err := grpc.Dial("127.0.0.1:8001", grpc.WithInsecure())
|
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
defer func() {
|
|
||||||
_ = conn.Close()
|
|
||||||
}()
|
|
||||||
|
|
||||||
c := pb2.NewNodeServiceClient(conn)
|
|
||||||
|
|
||||||
before := time.Now()
|
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
ctx = metadata.AppendToOutgoingContext(ctx, "name", "liu", "age", "20")
|
|
||||||
reply, err := c.Config(ctx, &pb2.ConfigRequest{
|
|
||||||
})
|
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
t.Log(reply)
|
|
||||||
t.Log(time.Since(before).Seconds()*1000, "ms")
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestTLSServer(t *testing.T) {
|
func TestTLSServer(t *testing.T) {
|
||||||
listener, err := net.Listen("tcp", ":8001")
|
listener, err := net.Listen("tcp", ":8001")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
34
internal/utils/ticker.go
Normal file
34
internal/utils/ticker.go
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
package utils
|
||||||
|
|
||||||
|
import "time"
|
||||||
|
|
||||||
|
type Ticker struct {
|
||||||
|
raw *time.Ticker
|
||||||
|
isDone bool
|
||||||
|
done chan bool
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewTicker(duration time.Duration) *Ticker {
|
||||||
|
return &Ticker{
|
||||||
|
raw: time.NewTicker(duration),
|
||||||
|
done: make(chan bool),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *Ticker) Wait() bool {
|
||||||
|
select {
|
||||||
|
case <-this.raw.C:
|
||||||
|
return true
|
||||||
|
case <-this.done:
|
||||||
|
this.isDone = true
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *Ticker) Stop() {
|
||||||
|
if this.isDone {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
this.done <- true
|
||||||
|
this.raw.Stop()
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user