mirror of https://github.com/grafana/grafana.git
Unified Storage: Adds health check service for entity server (#86471)
This commit is contained in:
parent
a9ac648cf6
commit
40558899e4
36
go.work.sum
36
go.work.sum
|
@ -1,4 +1,4 @@
|
||||||
buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.31.0-20230721003620-2341cbb21958.1/go.mod h1:xafc+XIsTxTy76GJQ1TKgvJWsSugFBqMaN27WhUblew=
|
buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.31.0-20230802163732-1c33ebd9ecfa.1 h1:tdpHgTbmbvEIARu+bixzmleMi14+3imnpoFXz+Qzjp4=
|
||||||
buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.31.0-20230802163732-1c33ebd9ecfa.1/go.mod h1:xafc+XIsTxTy76GJQ1TKgvJWsSugFBqMaN27WhUblew=
|
buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.31.0-20230802163732-1c33ebd9ecfa.1/go.mod h1:xafc+XIsTxTy76GJQ1TKgvJWsSugFBqMaN27WhUblew=
|
||||||
buf.build/gen/go/grpc-ecosystem/grpc-gateway/bufbuild/connect-go v1.4.1-20221127060915-a1ecdc58eccd.1 h1:vp9EaPFSb75qe/793x58yE5fY1IJ/gdxb/kcDUzavtI=
|
buf.build/gen/go/grpc-ecosystem/grpc-gateway/bufbuild/connect-go v1.4.1-20221127060915-a1ecdc58eccd.1 h1:vp9EaPFSb75qe/793x58yE5fY1IJ/gdxb/kcDUzavtI=
|
||||||
buf.build/gen/go/grpc-ecosystem/grpc-gateway/bufbuild/connect-go v1.4.1-20221127060915-a1ecdc58eccd.1/go.mod h1:YDq2B5X5BChU0lxAG5MxHpDb8mx1fv9OGtF2mwOe7hY=
|
buf.build/gen/go/grpc-ecosystem/grpc-gateway/bufbuild/connect-go v1.4.1-20221127060915-a1ecdc58eccd.1/go.mod h1:YDq2B5X5BChU0lxAG5MxHpDb8mx1fv9OGtF2mwOe7hY=
|
||||||
|
@ -512,15 +512,19 @@ github.com/bgentry/speakeasy v0.1.0 h1:ByYyxL9InA1OWqxJqqp2A5pYHUrCiAL6K3J+LKSsQ
|
||||||
github.com/bitly/go-hostpool v0.0.0-20171023180738-a3a6125de932 h1:mXoPYz/Ul5HYEDvkta6I8/rnYM5gSdSV2tJ6XbZuEtY=
|
github.com/bitly/go-hostpool v0.0.0-20171023180738-a3a6125de932 h1:mXoPYz/Ul5HYEDvkta6I8/rnYM5gSdSV2tJ6XbZuEtY=
|
||||||
github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869 h1:DDGfHa7BWjL4YnC6+E63dPcxHo2sUxDIu8g3QgEJdRY=
|
github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869 h1:DDGfHa7BWjL4YnC6+E63dPcxHo2sUxDIu8g3QgEJdRY=
|
||||||
github.com/boombuler/barcode v1.0.1 h1:NDBbPmhS+EqABEs5Kg3n/5ZNjy73Pz7SIV+KCeqyXcs=
|
github.com/boombuler/barcode v1.0.1 h1:NDBbPmhS+EqABEs5Kg3n/5ZNjy73Pz7SIV+KCeqyXcs=
|
||||||
|
github.com/bufbuild/protovalidate-go v0.2.1 h1:pJr07sYhliyfj/STAM7hU4J3FKpVeLVKvOBmOTN8j+s=
|
||||||
github.com/bufbuild/protovalidate-go v0.2.1/go.mod h1:e7XXDtlxj5vlEyAgsrxpzayp4cEMKCSSb8ZCkin+MVA=
|
github.com/bufbuild/protovalidate-go v0.2.1/go.mod h1:e7XXDtlxj5vlEyAgsrxpzayp4cEMKCSSb8ZCkin+MVA=
|
||||||
github.com/bwesterb/go-ristretto v1.2.3 h1:1w53tCkGhCQ5djbat3+MH0BAQ5Kfgbt56UZQ/JMzngw=
|
github.com/bwesterb/go-ristretto v1.2.3 h1:1w53tCkGhCQ5djbat3+MH0BAQ5Kfgbt56UZQ/JMzngw=
|
||||||
|
github.com/bytedance/sonic v1.10.0-rc3 h1:uNSnscRapXTwUgTyOF0GVljYD08p9X/Lbr9MweSV3V0=
|
||||||
github.com/bytedance/sonic v1.10.0-rc3/go.mod h1:iZcSUejdk5aukTND/Eu/ivjQuEL0Cu9/rf50Hi0u/g4=
|
github.com/bytedance/sonic v1.10.0-rc3/go.mod h1:iZcSUejdk5aukTND/Eu/ivjQuEL0Cu9/rf50Hi0u/g4=
|
||||||
github.com/casbin/casbin/v2 v2.37.0 h1:/poEwPSovi4bTOcP752/CsTQiRz2xycyVKFG7GUhbDw=
|
github.com/casbin/casbin/v2 v2.37.0 h1:/poEwPSovi4bTOcP752/CsTQiRz2xycyVKFG7GUhbDw=
|
||||||
github.com/cenkalti/backoff v2.2.1+incompatible h1:tNowT99t7UNflLxfYYSlKYsBpXdEet03Pg2g16Swow4=
|
github.com/cenkalti/backoff v2.2.1+incompatible h1:tNowT99t7UNflLxfYYSlKYsBpXdEet03Pg2g16Swow4=
|
||||||
github.com/census-instrumentation/opencensus-proto v0.4.1 h1:iKLQ0xPNFxR/2hzXZMrBo8f1j86j5WHzznCCQxV/b8g=
|
github.com/census-instrumentation/opencensus-proto v0.4.1 h1:iKLQ0xPNFxR/2hzXZMrBo8f1j86j5WHzznCCQxV/b8g=
|
||||||
github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko=
|
github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko=
|
||||||
github.com/cheekybits/is v0.0.0-20150225183255-68e9c0620927/go.mod h1:h/aW8ynjgkuj+NQRlZcDbAbM1ORAbXjXX77sX7T289U=
|
github.com/cheekybits/is v0.0.0-20150225183255-68e9c0620927/go.mod h1:h/aW8ynjgkuj+NQRlZcDbAbM1ORAbXjXX77sX7T289U=
|
||||||
|
github.com/chenzhuoyu/base64x v0.0.0-20230717121745-296ad89f973d h1:77cEq6EriyTZ0g/qfRdp61a3Uu/AWrgIq2s0ClJV1g0=
|
||||||
github.com/chenzhuoyu/base64x v0.0.0-20230717121745-296ad89f973d/go.mod h1:8EPpVsBuRksnlj1mLy4AWzRNQYxauNi62uWcE3to6eA=
|
github.com/chenzhuoyu/base64x v0.0.0-20230717121745-296ad89f973d/go.mod h1:8EPpVsBuRksnlj1mLy4AWzRNQYxauNi62uWcE3to6eA=
|
||||||
|
github.com/chenzhuoyu/iasm v0.9.0 h1:9fhXjVzq5hUy2gkhhgHl95zG2cEAhw9OSGs8toWWAwo=
|
||||||
github.com/chenzhuoyu/iasm v0.9.0/go.mod h1:Xjy2NpN3h7aUqeqM+woSuuvxmIe6+DDsiNLIrkAmYog=
|
github.com/chenzhuoyu/iasm v0.9.0/go.mod h1:Xjy2NpN3h7aUqeqM+woSuuvxmIe6+DDsiNLIrkAmYog=
|
||||||
github.com/chromedp/cdproto v0.0.0-20220208224320-6efb837e6bc2/go.mod h1:At5TxYYdxkbQL0TSefRjhLE3Q0lgvqKKMSFUglJ7i1U=
|
github.com/chromedp/cdproto v0.0.0-20220208224320-6efb837e6bc2/go.mod h1:At5TxYYdxkbQL0TSefRjhLE3Q0lgvqKKMSFUglJ7i1U=
|
||||||
github.com/chromedp/chromedp v0.9.2 h1:dKtNz4kApb06KuSXoTQIyUC2TrA0fhGDwNZf3bcgfKw=
|
github.com/chromedp/chromedp v0.9.2 h1:dKtNz4kApb06KuSXoTQIyUC2TrA0fhGDwNZf3bcgfKw=
|
||||||
|
@ -734,10 +738,17 @@ github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7 h1:pdN6V1QBWet
|
||||||
github.com/grpc-ecosystem/grpc-gateway/v2 v2.18.1/go.mod h1:YvJ2f6MplWDhfxiUC3KpyTy76kYUZA4W3pTv/wdKQ9Y=
|
github.com/grpc-ecosystem/grpc-gateway/v2 v2.18.1/go.mod h1:YvJ2f6MplWDhfxiUC3KpyTy76kYUZA4W3pTv/wdKQ9Y=
|
||||||
github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 h1:MJG/KsmcqMwFAkh8mTnAwhyKoB+sTAnY4CACC110tbU=
|
github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 h1:MJG/KsmcqMwFAkh8mTnAwhyKoB+sTAnY4CACC110tbU=
|
||||||
github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645/go.mod h1:6iZfnjpejD4L/4DwD7NryNaJyCQdzwWwH2MWhCA90Kw=
|
github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645/go.mod h1:6iZfnjpejD4L/4DwD7NryNaJyCQdzwWwH2MWhCA90Kw=
|
||||||
|
github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed h1:5upAirOpQc1Q53c0bnx2ufif5kANL7bfZWcc6VJWJd8=
|
||||||
|
github.com/hamba/avro/v2 v2.17.2 h1:6PKpEWzJfNnvBgn7m2/8WYaDOUASxfDU+Jyb4ojDgFY=
|
||||||
github.com/hamba/avro/v2 v2.17.2/go.mod h1:Q9YK+qxAhtVrNqOhwlZTATLgLA8qxG2vtvkhK8fJ7Jo=
|
github.com/hamba/avro/v2 v2.17.2/go.mod h1:Q9YK+qxAhtVrNqOhwlZTATLgLA8qxG2vtvkhK8fJ7Jo=
|
||||||
|
github.com/hanwen/go-fuse v1.0.0 h1:GxS9Zrn6c35/BnfiVsZVWmsG803xwE7eVRDvcf/BEVc=
|
||||||
|
github.com/hanwen/go-fuse/v2 v2.1.0 h1:+32ffteETaLYClUj0a3aHjZ1hOPxxaNEHiZiujuDaek=
|
||||||
|
github.com/hashicorp/consul/sdk v0.15.0 h1:2qK9nDrr4tiJKRoxPGhm6B7xJjLVIQqkjiab2M4aKjU=
|
||||||
github.com/hashicorp/go-hclog v0.14.1/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ=
|
github.com/hashicorp/go-hclog v0.14.1/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ=
|
||||||
github.com/hashicorp/go-hclog v0.16.1 h1:IVQwpTGNRRIHafnTs2dQLIk4ENtneRIEEJWOVDqz99o=
|
github.com/hashicorp/go-hclog v0.16.1 h1:IVQwpTGNRRIHafnTs2dQLIk4ENtneRIEEJWOVDqz99o=
|
||||||
github.com/hashicorp/go-hclog v0.16.1/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ=
|
github.com/hashicorp/go-hclog v0.16.1/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ=
|
||||||
|
github.com/hashicorp/go-syslog v1.0.0 h1:KaodqZuhUoZereWVIYmpUgZysurB1kBLX2j0MwMrUAE=
|
||||||
|
github.com/hashicorp/go.net v0.0.1 h1:sNCoNyDEvN1xa+X0baata4RdcpKwcMS6DH+xwfqPgjw=
|
||||||
github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=
|
github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=
|
||||||
github.com/hashicorp/logutils v1.0.0 h1:dLEQVugN8vlakKOUE3ihGLTZJRB4j+M2cdTm/ORI65Y=
|
github.com/hashicorp/logutils v1.0.0 h1:dLEQVugN8vlakKOUE3ihGLTZJRB4j+M2cdTm/ORI65Y=
|
||||||
github.com/hashicorp/mdns v1.0.4 h1:sY0CMhFmjIPDMlTB+HfymFHCaYLhgifZ0QhjaYKD/UQ=
|
github.com/hashicorp/mdns v1.0.4 h1:sY0CMhFmjIPDMlTB+HfymFHCaYLhgifZ0QhjaYKD/UQ=
|
||||||
|
@ -791,6 +802,11 @@ github.com/joho/godotenv v1.4.0/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwA
|
||||||
github.com/jstemmer/go-junit-report v0.9.1 h1:6QPYqodiu3GuPL+7mfx+NwDdp2eTkp9IfEUpgAwUN0o=
|
github.com/jstemmer/go-junit-report v0.9.1 h1:6QPYqodiu3GuPL+7mfx+NwDdp2eTkp9IfEUpgAwUN0o=
|
||||||
github.com/jsternberg/zap-logfmt v1.2.0 h1:1v+PK4/B48cy8cfQbxL4FmmNZrjnIMr2BsnyEmXqv2o=
|
github.com/jsternberg/zap-logfmt v1.2.0 h1:1v+PK4/B48cy8cfQbxL4FmmNZrjnIMr2BsnyEmXqv2o=
|
||||||
github.com/jsternberg/zap-logfmt v1.2.0/go.mod h1:kz+1CUmCutPWABnNkOu9hOHKdT2q3TDYCcsFy9hpqb0=
|
github.com/jsternberg/zap-logfmt v1.2.0/go.mod h1:kz+1CUmCutPWABnNkOu9hOHKdT2q3TDYCcsFy9hpqb0=
|
||||||
|
github.com/juju/gnuflag v0.0.0-20171113085948-2ce1bb71843d h1:c93kUJDtVAXFEhsCh5jSxyOJmFHuzcihnslQiX8Urwo=
|
||||||
|
github.com/julienschmidt/httprouter v1.3.0 h1:U0609e9tgbseu3rBINet9P48AI/D3oJs4dN7jwJOQ1U=
|
||||||
|
github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5 h1:PJr+ZMXIecYc1Ey2zucXdR73SMBtgjPgwa31099IMv0=
|
||||||
|
github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 h1:iQTw/8FWTuc7uiaSepXwyf3o52HaUYcV+Tu66S3F5GA=
|
||||||
|
github.com/karrick/godirwalk v1.10.3 h1:lOpSw2vJP0y5eLBW906QwKsUK/fe/QDyoqM5rnnuPDY=
|
||||||
github.com/kataras/blocks v0.0.7 h1:cF3RDY/vxnSRezc7vLFlQFTYXG/yAr1o7WImJuZbzC4=
|
github.com/kataras/blocks v0.0.7 h1:cF3RDY/vxnSRezc7vLFlQFTYXG/yAr1o7WImJuZbzC4=
|
||||||
github.com/kataras/blocks v0.0.7/go.mod h1:UJIU97CluDo0f+zEjbnbkeMRlvYORtmc1304EeyXf4I=
|
github.com/kataras/blocks v0.0.7/go.mod h1:UJIU97CluDo0f+zEjbnbkeMRlvYORtmc1304EeyXf4I=
|
||||||
github.com/kataras/golog v0.1.9 h1:vLvSDpP7kihFGKFAvBSofYo7qZNULYSHOH2D7rPTKJk=
|
github.com/kataras/golog v0.1.9 h1:vLvSDpP7kihFGKFAvBSofYo7qZNULYSHOH2D7rPTKJk=
|
||||||
|
@ -805,9 +821,13 @@ github.com/kataras/sitemap v0.0.6 h1:w71CRMMKYMJh6LR2wTgnk5hSgjVNB9KL60n5e2KHvLY
|
||||||
github.com/kataras/sitemap v0.0.6/go.mod h1:dW4dOCNs896OR1HmG+dMLdT7JjDk7mYBzoIRwuj5jA4=
|
github.com/kataras/sitemap v0.0.6/go.mod h1:dW4dOCNs896OR1HmG+dMLdT7JjDk7mYBzoIRwuj5jA4=
|
||||||
github.com/kataras/tunnel v0.0.4 h1:sCAqWuJV7nPzGrlb0os3j49lk2JhILT0rID38NHNLpA=
|
github.com/kataras/tunnel v0.0.4 h1:sCAqWuJV7nPzGrlb0os3j49lk2JhILT0rID38NHNLpA=
|
||||||
github.com/kataras/tunnel v0.0.4/go.mod h1:9FkU4LaeifdMWqZu7o20ojmW4B7hdhv2CMLwfnHGpYw=
|
github.com/kataras/tunnel v0.0.4/go.mod h1:9FkU4LaeifdMWqZu7o20ojmW4B7hdhv2CMLwfnHGpYw=
|
||||||
|
github.com/kelseyhightower/envconfig v1.4.0 h1:Im6hONhd3pLkfDFsbRgu68RDNkGF1r3dvMUtDTo2cv8=
|
||||||
|
github.com/kisielk/errcheck v1.5.0 h1:e8esj/e4R+SAOwFwN+n3zr0nYeCyeweozKfO23MvHzY=
|
||||||
|
github.com/kisielk/gotool v1.0.0 h1:AV2c/EiW3KqPNT9ZKl07ehoAGi4C5/01Cfbblndcapg=
|
||||||
github.com/klauspost/compress v1.16.7/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
|
github.com/klauspost/compress v1.16.7/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
|
||||||
github.com/klauspost/cpuid/v2 v2.2.3/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY=
|
github.com/klauspost/cpuid/v2 v2.2.3/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY=
|
||||||
github.com/klauspost/cpuid/v2 v2.2.4/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY=
|
github.com/klauspost/cpuid/v2 v2.2.4/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY=
|
||||||
|
github.com/knadh/koanf v1.5.0 h1:q2TSd/3Pyc/5yP9ldIrSdIz26MCcyNQzW0pEAugLPNs=
|
||||||
github.com/knadh/koanf v1.5.0/go.mod h1:Hgyjp4y8v44hpZtPzs7JZfRAW5AhN7KfZcwv1RYggDs=
|
github.com/knadh/koanf v1.5.0/go.mod h1:Hgyjp4y8v44hpZtPzs7JZfRAW5AhN7KfZcwv1RYggDs=
|
||||||
github.com/konsorten/go-windows-terminal-sequences v1.0.3 h1:CE8S1cTafDpPvMhIxNJKvHsGVBgn1xWYf1NbHQhywc8=
|
github.com/konsorten/go-windows-terminal-sequences v1.0.3 h1:CE8S1cTafDpPvMhIxNJKvHsGVBgn1xWYf1NbHQhywc8=
|
||||||
github.com/kr/fs v0.1.0 h1:Jskdu9ieNAYnjxsi0LbQp1ulIKZV1LAFgK1tWhpZgl8=
|
github.com/kr/fs v0.1.0 h1:Jskdu9ieNAYnjxsi0LbQp1ulIKZV1LAFgK1tWhpZgl8=
|
||||||
|
@ -985,6 +1005,9 @@ github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5I
|
||||||
github.com/sony/gobreaker v0.4.1 h1:oMnRNZXX5j85zso6xCPRNPtmAycat+WcoKbklScLDgQ=
|
github.com/sony/gobreaker v0.4.1 h1:oMnRNZXX5j85zso6xCPRNPtmAycat+WcoKbklScLDgQ=
|
||||||
github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI=
|
github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI=
|
||||||
github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
|
github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
|
||||||
|
github.com/spf13/afero v1.9.2 h1:j49Hj62F0n+DaZ1dDCvhABaPNSGNkt32oRFxI33IEMw=
|
||||||
|
github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk=
|
||||||
|
github.com/spf13/viper v1.14.0 h1:Rg7d3Lo706X9tHsJMUjdiwMpHB7W8WnSVOssIY+JElU=
|
||||||
github.com/spf13/afero v1.10.0/go.mod h1:UBogFpq8E9Hx+xc5CNTTEpTnuHVmXDwZcZcE1eb/UhQ=
|
github.com/spf13/afero v1.10.0/go.mod h1:UBogFpq8E9Hx+xc5CNTTEpTnuHVmXDwZcZcE1eb/UhQ=
|
||||||
github.com/spf13/viper v1.14.0/go.mod h1:WT//axPky3FdvXHzGw33dNdXXXfFQqmEalje+egj8As=
|
github.com/spf13/viper v1.14.0/go.mod h1:WT//axPky3FdvXHzGw33dNdXXXfFQqmEalje+egj8As=
|
||||||
github.com/spkg/bom v0.0.0-20160624110644-59b7046e48ad h1:fiWzISvDn0Csy5H0iwgAuJGQTUpVfEMJJd4nRFXogbc=
|
github.com/spkg/bom v0.0.0-20160624110644-59b7046e48ad h1:fiWzISvDn0Csy5H0iwgAuJGQTUpVfEMJJd4nRFXogbc=
|
||||||
|
@ -999,9 +1022,13 @@ github.com/tdewolff/minify/v2 v2.12.9 h1:dvn5MtmuQ/DFMwqf5j8QhEVpPX6fi3WGImhv8RU
|
||||||
github.com/tdewolff/minify/v2 v2.12.9/go.mod h1:qOqdlDfL+7v0/fyymB+OP497nIxJYSvX4MQWA8OoiXU=
|
github.com/tdewolff/minify/v2 v2.12.9/go.mod h1:qOqdlDfL+7v0/fyymB+OP497nIxJYSvX4MQWA8OoiXU=
|
||||||
github.com/tdewolff/parse/v2 v2.6.8 h1:mhNZXYCx//xG7Yq2e/kVLNZw4YfYmeHbhx+Zc0OvFMA=
|
github.com/tdewolff/parse/v2 v2.6.8 h1:mhNZXYCx//xG7Yq2e/kVLNZw4YfYmeHbhx+Zc0OvFMA=
|
||||||
github.com/tdewolff/parse/v2 v2.6.8/go.mod h1:XHDhaU6IBgsryfdnpzUXBlT6leW/l25yrFBTEb4eIyM=
|
github.com/tdewolff/parse/v2 v2.6.8/go.mod h1:XHDhaU6IBgsryfdnpzUXBlT6leW/l25yrFBTEb4eIyM=
|
||||||
|
github.com/tidwall/gjson v1.14.2 h1:6BBkirS0rAHjumnjHF6qgy5d2YAJ1TLIaFE2lzfOLqo=
|
||||||
github.com/tidwall/gjson v1.14.2/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk=
|
github.com/tidwall/gjson v1.14.2/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk=
|
||||||
|
github.com/tidwall/match v1.1.1 h1:+Ho715JplO36QYgwN9PGYNhgZvoUSc9X2c80KVTi+GA=
|
||||||
github.com/tidwall/match v1.1.1/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM=
|
github.com/tidwall/match v1.1.1/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM=
|
||||||
|
github.com/tidwall/pretty v1.2.0 h1:RWIZEg2iJ8/g6fDDYzMpobmaoGh5OLl4AXtGUGPcqCs=
|
||||||
github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU=
|
github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU=
|
||||||
|
github.com/tidwall/sjson v1.2.5 h1:kLy8mja+1c9jlljvWTlSazM7cKDRfJuR/bOJhcY5NcY=
|
||||||
github.com/tidwall/sjson v1.2.5/go.mod h1:Fvgq9kS/6ociJEDnK0Fk1cpYF4FIW6ZF7LAe+6jwd28=
|
github.com/tidwall/sjson v1.2.5/go.mod h1:Fvgq9kS/6ociJEDnK0Fk1cpYF4FIW6ZF7LAe+6jwd28=
|
||||||
github.com/tinylib/msgp v1.1.8/go.mod h1:qkpG+2ldGg4xRFmx+jfTvZPxfGFhi64BcnL9vkCm/Tw=
|
github.com/tinylib/msgp v1.1.8/go.mod h1:qkpG+2ldGg4xRFmx+jfTvZPxfGFhi64BcnL9vkCm/Tw=
|
||||||
github.com/tklauser/go-sysconf v0.3.11 h1:89WgdJhk5SNwJfu+GKyYveZ4IaJ7xAkecBo+KdJV0CM=
|
github.com/tklauser/go-sysconf v0.3.11 h1:89WgdJhk5SNwJfu+GKyYveZ4IaJ7xAkecBo+KdJV0CM=
|
||||||
|
@ -1011,6 +1038,7 @@ github.com/tklauser/numcpus v0.6.0 h1:kebhY2Qt+3U6RNK7UqpYNA+tJ23IBEGKkB7JQBfDYm
|
||||||
github.com/tklauser/numcpus v0.6.0/go.mod h1:FEZLMke0lhOUG6w2JadTzp0a+Nl8PF/GFkQ5UVIcaL4=
|
github.com/tklauser/numcpus v0.6.0/go.mod h1:FEZLMke0lhOUG6w2JadTzp0a+Nl8PF/GFkQ5UVIcaL4=
|
||||||
github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY=
|
github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY=
|
||||||
github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926 h1:G3dpKMzFDjgEh2q1Z7zUUtKa8ViPtH+ocF0bE0g00O8=
|
github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926 h1:G3dpKMzFDjgEh2q1Z7zUUtKa8ViPtH+ocF0bE0g00O8=
|
||||||
|
github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI=
|
||||||
github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08=
|
github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08=
|
||||||
github.com/uber-go/atomic v1.4.0 h1:yOuPqEq4ovnhEjpHmfFwsqBXDYbQeT6Nb0bwD6XnD5o=
|
github.com/uber-go/atomic v1.4.0 h1:yOuPqEq4ovnhEjpHmfFwsqBXDYbQeT6Nb0bwD6XnD5o=
|
||||||
github.com/uber-go/atomic v1.4.0/go.mod h1:/Ct5t2lcmbJ4OSe/waGBoaVvVqtO0bmtfVNex1PFV8g=
|
github.com/uber-go/atomic v1.4.0/go.mod h1:/Ct5t2lcmbJ4OSe/waGBoaVvVqtO0bmtfVNex1PFV8g=
|
||||||
|
@ -1122,6 +1150,7 @@ go.uber.org/mock v0.2.0/go.mod h1:J0y0rp9L3xiff1+ZBfKxlC1fz2+aO16tw0tsDOixfuM=
|
||||||
go.uber.org/multierr v1.10.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
|
go.uber.org/multierr v1.10.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
|
||||||
go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee h1:0mgffUl7nfd+FpvXMVz4IDEaUSmT1ysygQC7qYo7sG4=
|
go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee h1:0mgffUl7nfd+FpvXMVz4IDEaUSmT1ysygQC7qYo7sG4=
|
||||||
go.uber.org/zap v1.19.0/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI=
|
go.uber.org/zap v1.19.0/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI=
|
||||||
|
golang.org/x/arch v0.4.0 h1:A8WCeEWhLwPBKNbFi5Wv5UTCBx5zzubnXDlMOFAzFMc=
|
||||||
golang.org/x/arch v0.4.0/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8=
|
golang.org/x/arch v0.4.0/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8=
|
||||||
golang.org/x/crypto v0.0.0-20190911031432-227b76d455e7/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20190911031432-227b76d455e7/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4=
|
golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4=
|
||||||
|
@ -1215,9 +1244,14 @@ gopkg.in/square/go-jose.v2 v2.6.0 h1:NGk74WTnPKBNUhNzQX7PYcTLUjoq7mzKk2OKbvwk2iI
|
||||||
gopkg.in/square/go-jose.v2 v2.6.0/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI=
|
gopkg.in/square/go-jose.v2 v2.6.0/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI=
|
||||||
gopkg.in/src-d/go-billy.v4 v4.3.2 h1:0SQA1pRztfTFx2miS8sA97XvooFeNOmvUenF4o0EcVg=
|
gopkg.in/src-d/go-billy.v4 v4.3.2 h1:0SQA1pRztfTFx2miS8sA97XvooFeNOmvUenF4o0EcVg=
|
||||||
gopkg.in/src-d/go-billy.v4 v4.3.2/go.mod h1:nDjArDMp+XMs1aFAESLRjfGSgfvoYN0hDfzEk0GjC98=
|
gopkg.in/src-d/go-billy.v4 v4.3.2/go.mod h1:nDjArDMp+XMs1aFAESLRjfGSgfvoYN0hDfzEk0GjC98=
|
||||||
|
gopkg.in/telebot.v3 v3.2.1 h1:3I4LohaAyJBiivGmkfB+CiVu7QFOWkuZ4+KHgO/G3rs=
|
||||||
|
gopkg.in/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME=
|
||||||
|
honnef.co/go/tools v0.1.3 h1:qTakTkI6ni6LFD5sBwwsdSO+AQqbSIxOauHTTQKZ/7o=
|
||||||
k8s.io/component-base v0.0.0-20240417101527-62c04b35eff6 h1:WN8Lymy+dCTDHgn4vhUSNIB6U+0sDiv/c9Zdr0UeAnI=
|
k8s.io/component-base v0.0.0-20240417101527-62c04b35eff6 h1:WN8Lymy+dCTDHgn4vhUSNIB6U+0sDiv/c9Zdr0UeAnI=
|
||||||
k8s.io/component-base v0.0.0-20240417101527-62c04b35eff6/go.mod h1:l0ukbPS0lwFxOzSq5ZqjutzF+5IL2TLp495PswRPSZk=
|
k8s.io/component-base v0.0.0-20240417101527-62c04b35eff6/go.mod h1:l0ukbPS0lwFxOzSq5ZqjutzF+5IL2TLp495PswRPSZk=
|
||||||
|
k8s.io/gengo v0.0.0-20230829151522-9cce18d56c01 h1:pWEwq4Asjm4vjW7vcsmijwBhOr1/shsbSYiWXmNGlks=
|
||||||
k8s.io/gengo v0.0.0-20230829151522-9cce18d56c01/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E=
|
k8s.io/gengo v0.0.0-20230829151522-9cce18d56c01/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E=
|
||||||
|
k8s.io/gengo/v2 v2.0.0-20240228010128-51d4e06bde70 h1:NGrVE502P0s0/1hudf8zjgwki1X/TByhmAoILTarmzo=
|
||||||
k8s.io/gengo/v2 v2.0.0-20240228010128-51d4e06bde70/go.mod h1:VH3AT8AaQOqiGjMF9p0/IM1Dj+82ZwjfxUP1IxaHE+8=
|
k8s.io/gengo/v2 v2.0.0-20240228010128-51d4e06bde70/go.mod h1:VH3AT8AaQOqiGjMF9p0/IM1Dj+82ZwjfxUP1IxaHE+8=
|
||||||
k8s.io/kms v0.29.0/go.mod h1:mB0f9HLxRXeXUfHfn1A7rpwOlzXI1gIWu86z6buNoYA=
|
k8s.io/kms v0.29.0/go.mod h1:mB0f9HLxRXeXUfHfn1A7rpwOlzXI1gIWu86z6buNoYA=
|
||||||
k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00/go.mod h1:AsvuZPBlUDVuCdzJ87iajxtXuR9oktsTctW/R9wwouA=
|
k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00/go.mod h1:AsvuZPBlUDVuCdzJ87iajxtXuR9oktsTctW/R9wwouA=
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// protoc-gen-go v1.33.0
|
// protoc-gen-go v1.33.0
|
||||||
// protoc v5.26.1
|
// protoc v4.25.3
|
||||||
// source: secretsmanager.proto
|
// source: secretsmanager.proto
|
||||||
|
|
||||||
package secretsmanagerplugin
|
package secretsmanagerplugin
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
|
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// - protoc-gen-go-grpc v1.3.0
|
// - protoc-gen-go-grpc v1.3.0
|
||||||
// - protoc v5.26.1
|
// - protoc v4.25.3
|
||||||
// source: secretsmanager.proto
|
// source: secretsmanager.proto
|
||||||
|
|
||||||
package secretsmanagerplugin
|
package secretsmanagerplugin
|
||||||
|
|
|
@ -16,6 +16,10 @@ func ProvideFakeEntityServer() entity.EntityStoreServer {
|
||||||
|
|
||||||
type fakeEntityStore struct{}
|
type fakeEntityStore struct{}
|
||||||
|
|
||||||
|
func (i fakeEntityStore) IsHealthy(ctx context.Context, r *entity.HealthCheckRequest) (*entity.HealthCheckResponse, error) {
|
||||||
|
return nil, fmt.Errorf("unimplemented")
|
||||||
|
}
|
||||||
|
|
||||||
func (i fakeEntityStore) Create(ctx context.Context, r *entity.CreateEntityRequest) (*entity.CreateEntityResponse, error) {
|
func (i fakeEntityStore) Create(ctx context.Context, r *entity.CreateEntityRequest) (*entity.CreateEntityResponse, error) {
|
||||||
return nil, fmt.Errorf("unimplemented")
|
return nil, fmt.Errorf("unimplemented")
|
||||||
}
|
}
|
||||||
|
|
|
@ -272,6 +272,58 @@ func (EntityWatchRequest_WatchAction) EnumDescriptor() ([]byte, []int) {
|
||||||
return file_entity_proto_rawDescGZIP(), []int{15, 0}
|
return file_entity_proto_rawDescGZIP(), []int{15, 0}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type HealthCheckResponse_ServingStatus int32
|
||||||
|
|
||||||
|
const (
|
||||||
|
HealthCheckResponse_UNKNOWN HealthCheckResponse_ServingStatus = 0
|
||||||
|
HealthCheckResponse_SERVING HealthCheckResponse_ServingStatus = 1
|
||||||
|
HealthCheckResponse_NOT_SERVING HealthCheckResponse_ServingStatus = 2
|
||||||
|
HealthCheckResponse_SERVICE_UNKNOWN HealthCheckResponse_ServingStatus = 3 // Used only by the Watch method.
|
||||||
|
)
|
||||||
|
|
||||||
|
// Enum value maps for HealthCheckResponse_ServingStatus.
|
||||||
|
var (
|
||||||
|
HealthCheckResponse_ServingStatus_name = map[int32]string{
|
||||||
|
0: "UNKNOWN",
|
||||||
|
1: "SERVING",
|
||||||
|
2: "NOT_SERVING",
|
||||||
|
3: "SERVICE_UNKNOWN",
|
||||||
|
}
|
||||||
|
HealthCheckResponse_ServingStatus_value = map[string]int32{
|
||||||
|
"UNKNOWN": 0,
|
||||||
|
"SERVING": 1,
|
||||||
|
"NOT_SERVING": 2,
|
||||||
|
"SERVICE_UNKNOWN": 3,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
func (x HealthCheckResponse_ServingStatus) Enum() *HealthCheckResponse_ServingStatus {
|
||||||
|
p := new(HealthCheckResponse_ServingStatus)
|
||||||
|
*p = x
|
||||||
|
return p
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x HealthCheckResponse_ServingStatus) String() string {
|
||||||
|
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
|
||||||
|
}
|
||||||
|
|
||||||
|
func (HealthCheckResponse_ServingStatus) Descriptor() protoreflect.EnumDescriptor {
|
||||||
|
return file_entity_proto_enumTypes[5].Descriptor()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (HealthCheckResponse_ServingStatus) Type() protoreflect.EnumType {
|
||||||
|
return &file_entity_proto_enumTypes[5]
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x HealthCheckResponse_ServingStatus) Number() protoreflect.EnumNumber {
|
||||||
|
return protoreflect.EnumNumber(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deprecated: Use HealthCheckResponse_ServingStatus.Descriptor instead.
|
||||||
|
func (HealthCheckResponse_ServingStatus) EnumDescriptor() ([]byte, []int) {
|
||||||
|
return file_entity_proto_rawDescGZIP(), []int{20, 0}
|
||||||
|
}
|
||||||
|
|
||||||
// The canonical entity/document data -- this represents the raw bytes and storage level metadata
|
// The canonical entity/document data -- this represents the raw bytes and storage level metadata
|
||||||
type Entity struct {
|
type Entity struct {
|
||||||
state protoimpl.MessageState
|
state protoimpl.MessageState
|
||||||
|
@ -2031,6 +2083,100 @@ func (x *EntityExternalReference) GetIdentifier() string {
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type HealthCheckRequest struct {
|
||||||
|
state protoimpl.MessageState
|
||||||
|
sizeCache protoimpl.SizeCache
|
||||||
|
unknownFields protoimpl.UnknownFields
|
||||||
|
|
||||||
|
Service string `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *HealthCheckRequest) Reset() {
|
||||||
|
*x = HealthCheckRequest{}
|
||||||
|
if protoimpl.UnsafeEnabled {
|
||||||
|
mi := &file_entity_proto_msgTypes[19]
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *HealthCheckRequest) String() string {
|
||||||
|
return protoimpl.X.MessageStringOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*HealthCheckRequest) ProtoMessage() {}
|
||||||
|
|
||||||
|
func (x *HealthCheckRequest) ProtoReflect() protoreflect.Message {
|
||||||
|
mi := &file_entity_proto_msgTypes[19]
|
||||||
|
if protoimpl.UnsafeEnabled && x != nil {
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
if ms.LoadMessageInfo() == nil {
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
return ms
|
||||||
|
}
|
||||||
|
return mi.MessageOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deprecated: Use HealthCheckRequest.ProtoReflect.Descriptor instead.
|
||||||
|
func (*HealthCheckRequest) Descriptor() ([]byte, []int) {
|
||||||
|
return file_entity_proto_rawDescGZIP(), []int{19}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *HealthCheckRequest) GetService() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.Service
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
type HealthCheckResponse struct {
|
||||||
|
state protoimpl.MessageState
|
||||||
|
sizeCache protoimpl.SizeCache
|
||||||
|
unknownFields protoimpl.UnknownFields
|
||||||
|
|
||||||
|
Status HealthCheckResponse_ServingStatus `protobuf:"varint,1,opt,name=status,proto3,enum=entity.HealthCheckResponse_ServingStatus" json:"status,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *HealthCheckResponse) Reset() {
|
||||||
|
*x = HealthCheckResponse{}
|
||||||
|
if protoimpl.UnsafeEnabled {
|
||||||
|
mi := &file_entity_proto_msgTypes[20]
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *HealthCheckResponse) String() string {
|
||||||
|
return protoimpl.X.MessageStringOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*HealthCheckResponse) ProtoMessage() {}
|
||||||
|
|
||||||
|
func (x *HealthCheckResponse) ProtoReflect() protoreflect.Message {
|
||||||
|
mi := &file_entity_proto_msgTypes[20]
|
||||||
|
if protoimpl.UnsafeEnabled && x != nil {
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
if ms.LoadMessageInfo() == nil {
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
return ms
|
||||||
|
}
|
||||||
|
return mi.MessageOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deprecated: Use HealthCheckResponse.ProtoReflect.Descriptor instead.
|
||||||
|
func (*HealthCheckResponse) Descriptor() ([]byte, []int) {
|
||||||
|
return file_entity_proto_rawDescGZIP(), []int{20}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *HealthCheckResponse) GetStatus() HealthCheckResponse_ServingStatus {
|
||||||
|
if x != nil {
|
||||||
|
return x.Status
|
||||||
|
}
|
||||||
|
return HealthCheckResponse_UNKNOWN
|
||||||
|
}
|
||||||
|
|
||||||
var File_entity_proto protoreflect.FileDescriptor
|
var File_entity_proto protoreflect.FileDescriptor
|
||||||
|
|
||||||
var file_entity_proto_rawDesc = []byte{
|
var file_entity_proto_rawDesc = []byte{
|
||||||
|
@ -2334,41 +2480,59 @@ var file_entity_proto_rawDesc = []byte{
|
||||||
0x6d, 0x69, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01,
|
0x6d, 0x69, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01,
|
||||||
0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x64, 0x65, 0x6e,
|
0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x64, 0x65, 0x6e,
|
||||||
0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x64,
|
0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x64,
|
||||||
0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x32, 0xdc, 0x03, 0x0a, 0x0b, 0x45, 0x6e, 0x74,
|
0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x22, 0x2e, 0x0a, 0x12, 0x48, 0x65, 0x61, 0x6c,
|
||||||
0x69, 0x74, 0x79, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x31, 0x0a, 0x04, 0x52, 0x65, 0x61, 0x64,
|
0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18,
|
||||||
0x12, 0x19, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x45, 0x6e,
|
0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
|
||||||
0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x65, 0x6e,
|
0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x22, 0xa9, 0x01, 0x0a, 0x13, 0x48, 0x65, 0x61,
|
||||||
0x74, 0x69, 0x74, 0x79, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x43, 0x0a, 0x06, 0x43,
|
0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
|
||||||
0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x43,
|
0x12, 0x41, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e,
|
||||||
0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65,
|
0x32, 0x29, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68,
|
||||||
0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x43, 0x72, 0x65, 0x61,
|
0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x65,
|
||||||
0x74, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
|
0x72, 0x76, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61,
|
||||||
0x12, 0x43, 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x2e, 0x65, 0x6e, 0x74,
|
0x74, 0x75, 0x73, 0x22, 0x4f, 0x0a, 0x0d, 0x53, 0x65, 0x72, 0x76, 0x69, 0x6e, 0x67, 0x53, 0x74,
|
||||||
0x69, 0x74, 0x79, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79,
|
0x61, 0x74, 0x75, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10,
|
||||||
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79,
|
0x00, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x45, 0x52, 0x56, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0f,
|
||||||
0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73,
|
0x0a, 0x0b, 0x4e, 0x4f, 0x54, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12,
|
||||||
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x06, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12,
|
0x13, 0x0a, 0x0f, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f,
|
||||||
0x1b, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45,
|
0x57, 0x4e, 0x10, 0x03, 0x32, 0xa2, 0x04, 0x0a, 0x0b, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x53,
|
||||||
0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x65,
|
0x74, 0x6f, 0x72, 0x65, 0x12, 0x31, 0x0a, 0x04, 0x52, 0x65, 0x61, 0x64, 0x12, 0x19, 0x2e, 0x65,
|
||||||
0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x69,
|
0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79,
|
||||||
0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x07, 0x48, 0x69,
|
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79,
|
||||||
0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1c, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x45,
|
0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x43, 0x0a, 0x06, 0x43, 0x72, 0x65, 0x61, 0x74,
|
||||||
0x6e, 0x74, 0x69, 0x74, 0x79, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75,
|
0x65, 0x12, 0x1b, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74,
|
||||||
0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x45, 0x6e, 0x74,
|
0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c,
|
||||||
0x69, 0x74, 0x79, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
|
0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6e,
|
||||||
0x73, 0x65, 0x12, 0x3d, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x19, 0x2e, 0x65, 0x6e, 0x74,
|
0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x06,
|
||||||
0x69, 0x74, 0x79, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65,
|
0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e,
|
||||||
0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x45,
|
0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75,
|
||||||
0x6e, 0x74, 0x69, 0x74, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
|
0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x55, 0x70, 0x64,
|
||||||
0x65, 0x12, 0x44, 0x0a, 0x05, 0x57, 0x61, 0x74, 0x63, 0x68, 0x12, 0x1a, 0x2e, 0x65, 0x6e, 0x74,
|
0x61, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
|
||||||
0x69, 0x74, 0x79, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x57, 0x61, 0x74, 0x63, 0x68, 0x52,
|
0x65, 0x12, 0x43, 0x0a, 0x06, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x1b, 0x2e, 0x65, 0x6e,
|
||||||
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e,
|
0x74, 0x69, 0x74, 0x79, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74,
|
||||||
0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x57, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f,
|
0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74,
|
||||||
0x6e, 0x73, 0x65, 0x28, 0x01, 0x30, 0x01, 0x42, 0x36, 0x5a, 0x34, 0x67, 0x69, 0x74, 0x68, 0x75,
|
0x79, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65,
|
||||||
0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x72, 0x61, 0x66, 0x61, 0x6e, 0x61, 0x2f, 0x67, 0x72,
|
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x07, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72,
|
||||||
0x61, 0x66, 0x61, 0x6e, 0x61, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63,
|
0x79, 0x12, 0x1c, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74,
|
||||||
0x65, 0x73, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x62,
|
0x79, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
|
||||||
0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
0x1d, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x48,
|
||||||
|
0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d,
|
||||||
|
0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x19, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e,
|
||||||
|
0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
|
||||||
|
0x74, 0x1a, 0x1a, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74,
|
||||||
|
0x79, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a,
|
||||||
|
0x05, 0x57, 0x61, 0x74, 0x63, 0x68, 0x12, 0x1a, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e,
|
||||||
|
0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x57, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65,
|
||||||
|
0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x45, 0x6e, 0x74, 0x69,
|
||||||
|
0x74, 0x79, 0x57, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x28,
|
||||||
|
0x01, 0x30, 0x01, 0x12, 0x44, 0x0a, 0x09, 0x49, 0x73, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79,
|
||||||
|
0x12, 0x1a, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68,
|
||||||
|
0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x65,
|
||||||
|
0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63,
|
||||||
|
0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x36, 0x5a, 0x34, 0x67, 0x69, 0x74,
|
||||||
|
0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x72, 0x61, 0x66, 0x61, 0x6e, 0x61, 0x2f,
|
||||||
|
0x67, 0x72, 0x61, 0x66, 0x61, 0x6e, 0x61, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x73, 0x65, 0x72, 0x76,
|
||||||
|
0x69, 0x63, 0x65, 0x73, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2f, 0x65, 0x6e, 0x74, 0x69, 0x74,
|
||||||
|
0x79, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
@ -2383,88 +2547,94 @@ func file_entity_proto_rawDescGZIP() []byte {
|
||||||
return file_entity_proto_rawDescData
|
return file_entity_proto_rawDescData
|
||||||
}
|
}
|
||||||
|
|
||||||
var file_entity_proto_enumTypes = make([]protoimpl.EnumInfo, 5)
|
var file_entity_proto_enumTypes = make([]protoimpl.EnumInfo, 6)
|
||||||
var file_entity_proto_msgTypes = make([]protoimpl.MessageInfo, 25)
|
var file_entity_proto_msgTypes = make([]protoimpl.MessageInfo, 27)
|
||||||
var file_entity_proto_goTypes = []interface{}{
|
var file_entity_proto_goTypes = []interface{}{
|
||||||
(Entity_Action)(0), // 0: entity.Entity.Action
|
(Entity_Action)(0), // 0: entity.Entity.Action
|
||||||
(CreateEntityResponse_Status)(0), // 1: entity.CreateEntityResponse.Status
|
(CreateEntityResponse_Status)(0), // 1: entity.CreateEntityResponse.Status
|
||||||
(UpdateEntityResponse_Status)(0), // 2: entity.UpdateEntityResponse.Status
|
(UpdateEntityResponse_Status)(0), // 2: entity.UpdateEntityResponse.Status
|
||||||
(DeleteEntityResponse_Status)(0), // 3: entity.DeleteEntityResponse.Status
|
(DeleteEntityResponse_Status)(0), // 3: entity.DeleteEntityResponse.Status
|
||||||
(EntityWatchRequest_WatchAction)(0), // 4: entity.EntityWatchRequest.WatchAction
|
(EntityWatchRequest_WatchAction)(0), // 4: entity.EntityWatchRequest.WatchAction
|
||||||
(*Entity)(nil), // 5: entity.Entity
|
(HealthCheckResponse_ServingStatus)(0), // 5: entity.HealthCheckResponse.ServingStatus
|
||||||
(*EntityOriginInfo)(nil), // 6: entity.EntityOriginInfo
|
(*Entity)(nil), // 6: entity.Entity
|
||||||
(*EntityErrorInfo)(nil), // 7: entity.EntityErrorInfo
|
(*EntityOriginInfo)(nil), // 7: entity.EntityOriginInfo
|
||||||
(*ReadEntityRequest)(nil), // 8: entity.ReadEntityRequest
|
(*EntityErrorInfo)(nil), // 8: entity.EntityErrorInfo
|
||||||
(*CreateEntityRequest)(nil), // 9: entity.CreateEntityRequest
|
(*ReadEntityRequest)(nil), // 9: entity.ReadEntityRequest
|
||||||
(*CreateEntityResponse)(nil), // 10: entity.CreateEntityResponse
|
(*CreateEntityRequest)(nil), // 10: entity.CreateEntityRequest
|
||||||
(*UpdateEntityRequest)(nil), // 11: entity.UpdateEntityRequest
|
(*CreateEntityResponse)(nil), // 11: entity.CreateEntityResponse
|
||||||
(*UpdateEntityResponse)(nil), // 12: entity.UpdateEntityResponse
|
(*UpdateEntityRequest)(nil), // 12: entity.UpdateEntityRequest
|
||||||
(*DeleteEntityRequest)(nil), // 13: entity.DeleteEntityRequest
|
(*UpdateEntityResponse)(nil), // 13: entity.UpdateEntityResponse
|
||||||
(*DeleteEntityResponse)(nil), // 14: entity.DeleteEntityResponse
|
(*DeleteEntityRequest)(nil), // 14: entity.DeleteEntityRequest
|
||||||
(*EntityHistoryRequest)(nil), // 15: entity.EntityHistoryRequest
|
(*DeleteEntityResponse)(nil), // 15: entity.DeleteEntityResponse
|
||||||
(*EntityHistoryResponse)(nil), // 16: entity.EntityHistoryResponse
|
(*EntityHistoryRequest)(nil), // 16: entity.EntityHistoryRequest
|
||||||
(*EntityListRequest)(nil), // 17: entity.EntityListRequest
|
(*EntityHistoryResponse)(nil), // 17: entity.EntityHistoryResponse
|
||||||
(*ReferenceRequest)(nil), // 18: entity.ReferenceRequest
|
(*EntityListRequest)(nil), // 18: entity.EntityListRequest
|
||||||
(*EntityListResponse)(nil), // 19: entity.EntityListResponse
|
(*ReferenceRequest)(nil), // 19: entity.ReferenceRequest
|
||||||
(*EntityWatchRequest)(nil), // 20: entity.EntityWatchRequest
|
(*EntityListResponse)(nil), // 20: entity.EntityListResponse
|
||||||
(*EntityWatchResponse)(nil), // 21: entity.EntityWatchResponse
|
(*EntityWatchRequest)(nil), // 21: entity.EntityWatchRequest
|
||||||
(*EntitySummary)(nil), // 22: entity.EntitySummary
|
(*EntityWatchResponse)(nil), // 22: entity.EntityWatchResponse
|
||||||
(*EntityExternalReference)(nil), // 23: entity.EntityExternalReference
|
(*EntitySummary)(nil), // 23: entity.EntitySummary
|
||||||
nil, // 24: entity.Entity.LabelsEntry
|
(*EntityExternalReference)(nil), // 24: entity.EntityExternalReference
|
||||||
nil, // 25: entity.Entity.FieldsEntry
|
(*HealthCheckRequest)(nil), // 25: entity.HealthCheckRequest
|
||||||
nil, // 26: entity.EntityListRequest.LabelsEntry
|
(*HealthCheckResponse)(nil), // 26: entity.HealthCheckResponse
|
||||||
nil, // 27: entity.EntityWatchRequest.LabelsEntry
|
nil, // 27: entity.Entity.LabelsEntry
|
||||||
nil, // 28: entity.EntitySummary.LabelsEntry
|
nil, // 28: entity.Entity.FieldsEntry
|
||||||
nil, // 29: entity.EntitySummary.FieldsEntry
|
nil, // 29: entity.EntityListRequest.LabelsEntry
|
||||||
|
nil, // 30: entity.EntityWatchRequest.LabelsEntry
|
||||||
|
nil, // 31: entity.EntitySummary.LabelsEntry
|
||||||
|
nil, // 32: entity.EntitySummary.FieldsEntry
|
||||||
}
|
}
|
||||||
var file_entity_proto_depIdxs = []int32{
|
var file_entity_proto_depIdxs = []int32{
|
||||||
6, // 0: entity.Entity.origin:type_name -> entity.EntityOriginInfo
|
7, // 0: entity.Entity.origin:type_name -> entity.EntityOriginInfo
|
||||||
24, // 1: entity.Entity.labels:type_name -> entity.Entity.LabelsEntry
|
27, // 1: entity.Entity.labels:type_name -> entity.Entity.LabelsEntry
|
||||||
25, // 2: entity.Entity.fields:type_name -> entity.Entity.FieldsEntry
|
28, // 2: entity.Entity.fields:type_name -> entity.Entity.FieldsEntry
|
||||||
7, // 3: entity.Entity.errors:type_name -> entity.EntityErrorInfo
|
8, // 3: entity.Entity.errors:type_name -> entity.EntityErrorInfo
|
||||||
0, // 4: entity.Entity.action:type_name -> entity.Entity.Action
|
0, // 4: entity.Entity.action:type_name -> entity.Entity.Action
|
||||||
5, // 5: entity.CreateEntityRequest.entity:type_name -> entity.Entity
|
6, // 5: entity.CreateEntityRequest.entity:type_name -> entity.Entity
|
||||||
7, // 6: entity.CreateEntityResponse.error:type_name -> entity.EntityErrorInfo
|
8, // 6: entity.CreateEntityResponse.error:type_name -> entity.EntityErrorInfo
|
||||||
5, // 7: entity.CreateEntityResponse.entity:type_name -> entity.Entity
|
6, // 7: entity.CreateEntityResponse.entity:type_name -> entity.Entity
|
||||||
1, // 8: entity.CreateEntityResponse.status:type_name -> entity.CreateEntityResponse.Status
|
1, // 8: entity.CreateEntityResponse.status:type_name -> entity.CreateEntityResponse.Status
|
||||||
5, // 9: entity.UpdateEntityRequest.entity:type_name -> entity.Entity
|
6, // 9: entity.UpdateEntityRequest.entity:type_name -> entity.Entity
|
||||||
7, // 10: entity.UpdateEntityResponse.error:type_name -> entity.EntityErrorInfo
|
8, // 10: entity.UpdateEntityResponse.error:type_name -> entity.EntityErrorInfo
|
||||||
5, // 11: entity.UpdateEntityResponse.entity:type_name -> entity.Entity
|
6, // 11: entity.UpdateEntityResponse.entity:type_name -> entity.Entity
|
||||||
2, // 12: entity.UpdateEntityResponse.status:type_name -> entity.UpdateEntityResponse.Status
|
2, // 12: entity.UpdateEntityResponse.status:type_name -> entity.UpdateEntityResponse.Status
|
||||||
7, // 13: entity.DeleteEntityResponse.error:type_name -> entity.EntityErrorInfo
|
8, // 13: entity.DeleteEntityResponse.error:type_name -> entity.EntityErrorInfo
|
||||||
5, // 14: entity.DeleteEntityResponse.entity:type_name -> entity.Entity
|
6, // 14: entity.DeleteEntityResponse.entity:type_name -> entity.Entity
|
||||||
3, // 15: entity.DeleteEntityResponse.status:type_name -> entity.DeleteEntityResponse.Status
|
3, // 15: entity.DeleteEntityResponse.status:type_name -> entity.DeleteEntityResponse.Status
|
||||||
5, // 16: entity.EntityHistoryResponse.versions:type_name -> entity.Entity
|
6, // 16: entity.EntityHistoryResponse.versions:type_name -> entity.Entity
|
||||||
26, // 17: entity.EntityListRequest.labels:type_name -> entity.EntityListRequest.LabelsEntry
|
29, // 17: entity.EntityListRequest.labels:type_name -> entity.EntityListRequest.LabelsEntry
|
||||||
5, // 18: entity.EntityListResponse.results:type_name -> entity.Entity
|
6, // 18: entity.EntityListResponse.results:type_name -> entity.Entity
|
||||||
4, // 19: entity.EntityWatchRequest.action:type_name -> entity.EntityWatchRequest.WatchAction
|
4, // 19: entity.EntityWatchRequest.action:type_name -> entity.EntityWatchRequest.WatchAction
|
||||||
27, // 20: entity.EntityWatchRequest.labels:type_name -> entity.EntityWatchRequest.LabelsEntry
|
30, // 20: entity.EntityWatchRequest.labels:type_name -> entity.EntityWatchRequest.LabelsEntry
|
||||||
5, // 21: entity.EntityWatchResponse.entity:type_name -> entity.Entity
|
6, // 21: entity.EntityWatchResponse.entity:type_name -> entity.Entity
|
||||||
5, // 22: entity.EntityWatchResponse.previous:type_name -> entity.Entity
|
6, // 22: entity.EntityWatchResponse.previous:type_name -> entity.Entity
|
||||||
28, // 23: entity.EntitySummary.labels:type_name -> entity.EntitySummary.LabelsEntry
|
31, // 23: entity.EntitySummary.labels:type_name -> entity.EntitySummary.LabelsEntry
|
||||||
7, // 24: entity.EntitySummary.error:type_name -> entity.EntityErrorInfo
|
8, // 24: entity.EntitySummary.error:type_name -> entity.EntityErrorInfo
|
||||||
29, // 25: entity.EntitySummary.fields:type_name -> entity.EntitySummary.FieldsEntry
|
32, // 25: entity.EntitySummary.fields:type_name -> entity.EntitySummary.FieldsEntry
|
||||||
22, // 26: entity.EntitySummary.nested:type_name -> entity.EntitySummary
|
23, // 26: entity.EntitySummary.nested:type_name -> entity.EntitySummary
|
||||||
23, // 27: entity.EntitySummary.references:type_name -> entity.EntityExternalReference
|
24, // 27: entity.EntitySummary.references:type_name -> entity.EntityExternalReference
|
||||||
8, // 28: entity.EntityStore.Read:input_type -> entity.ReadEntityRequest
|
5, // 28: entity.HealthCheckResponse.status:type_name -> entity.HealthCheckResponse.ServingStatus
|
||||||
9, // 29: entity.EntityStore.Create:input_type -> entity.CreateEntityRequest
|
9, // 29: entity.EntityStore.Read:input_type -> entity.ReadEntityRequest
|
||||||
11, // 30: entity.EntityStore.Update:input_type -> entity.UpdateEntityRequest
|
10, // 30: entity.EntityStore.Create:input_type -> entity.CreateEntityRequest
|
||||||
13, // 31: entity.EntityStore.Delete:input_type -> entity.DeleteEntityRequest
|
12, // 31: entity.EntityStore.Update:input_type -> entity.UpdateEntityRequest
|
||||||
15, // 32: entity.EntityStore.History:input_type -> entity.EntityHistoryRequest
|
14, // 32: entity.EntityStore.Delete:input_type -> entity.DeleteEntityRequest
|
||||||
17, // 33: entity.EntityStore.List:input_type -> entity.EntityListRequest
|
16, // 33: entity.EntityStore.History:input_type -> entity.EntityHistoryRequest
|
||||||
20, // 34: entity.EntityStore.Watch:input_type -> entity.EntityWatchRequest
|
18, // 34: entity.EntityStore.List:input_type -> entity.EntityListRequest
|
||||||
5, // 35: entity.EntityStore.Read:output_type -> entity.Entity
|
21, // 35: entity.EntityStore.Watch:input_type -> entity.EntityWatchRequest
|
||||||
10, // 36: entity.EntityStore.Create:output_type -> entity.CreateEntityResponse
|
25, // 36: entity.EntityStore.IsHealthy:input_type -> entity.HealthCheckRequest
|
||||||
12, // 37: entity.EntityStore.Update:output_type -> entity.UpdateEntityResponse
|
6, // 37: entity.EntityStore.Read:output_type -> entity.Entity
|
||||||
14, // 38: entity.EntityStore.Delete:output_type -> entity.DeleteEntityResponse
|
11, // 38: entity.EntityStore.Create:output_type -> entity.CreateEntityResponse
|
||||||
16, // 39: entity.EntityStore.History:output_type -> entity.EntityHistoryResponse
|
13, // 39: entity.EntityStore.Update:output_type -> entity.UpdateEntityResponse
|
||||||
19, // 40: entity.EntityStore.List:output_type -> entity.EntityListResponse
|
15, // 40: entity.EntityStore.Delete:output_type -> entity.DeleteEntityResponse
|
||||||
21, // 41: entity.EntityStore.Watch:output_type -> entity.EntityWatchResponse
|
17, // 41: entity.EntityStore.History:output_type -> entity.EntityHistoryResponse
|
||||||
35, // [35:42] is the sub-list for method output_type
|
20, // 42: entity.EntityStore.List:output_type -> entity.EntityListResponse
|
||||||
28, // [28:35] is the sub-list for method input_type
|
22, // 43: entity.EntityStore.Watch:output_type -> entity.EntityWatchResponse
|
||||||
28, // [28:28] is the sub-list for extension type_name
|
26, // 44: entity.EntityStore.IsHealthy:output_type -> entity.HealthCheckResponse
|
||||||
28, // [28:28] is the sub-list for extension extendee
|
37, // [37:45] is the sub-list for method output_type
|
||||||
0, // [0:28] is the sub-list for field type_name
|
29, // [29:37] is the sub-list for method input_type
|
||||||
|
29, // [29:29] is the sub-list for extension type_name
|
||||||
|
29, // [29:29] is the sub-list for extension extendee
|
||||||
|
0, // [0:29] is the sub-list for field type_name
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() { file_entity_proto_init() }
|
func init() { file_entity_proto_init() }
|
||||||
|
@ -2701,14 +2871,38 @@ func file_entity_proto_init() {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
file_entity_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
|
||||||
|
switch v := v.(*HealthCheckRequest); i {
|
||||||
|
case 0:
|
||||||
|
return &v.state
|
||||||
|
case 1:
|
||||||
|
return &v.sizeCache
|
||||||
|
case 2:
|
||||||
|
return &v.unknownFields
|
||||||
|
default:
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
file_entity_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
|
||||||
|
switch v := v.(*HealthCheckResponse); i {
|
||||||
|
case 0:
|
||||||
|
return &v.state
|
||||||
|
case 1:
|
||||||
|
return &v.sizeCache
|
||||||
|
case 2:
|
||||||
|
return &v.unknownFields
|
||||||
|
default:
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
type x struct{}
|
type x struct{}
|
||||||
out := protoimpl.TypeBuilder{
|
out := protoimpl.TypeBuilder{
|
||||||
File: protoimpl.DescBuilder{
|
File: protoimpl.DescBuilder{
|
||||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||||
RawDescriptor: file_entity_proto_rawDesc,
|
RawDescriptor: file_entity_proto_rawDesc,
|
||||||
NumEnums: 5,
|
NumEnums: 6,
|
||||||
NumMessages: 25,
|
NumMessages: 27,
|
||||||
NumExtensions: 0,
|
NumExtensions: 0,
|
||||||
NumServices: 1,
|
NumServices: 1,
|
||||||
},
|
},
|
||||||
|
|
|
@ -439,12 +439,29 @@ message EntityExternalReference {
|
||||||
string identifier = 3;
|
string identifier = 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//-----------------------------------------------
|
||||||
|
// Health
|
||||||
|
//-----------------------------------------------
|
||||||
|
|
||||||
|
message HealthCheckRequest {
|
||||||
|
string service = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message HealthCheckResponse {
|
||||||
|
enum ServingStatus {
|
||||||
|
UNKNOWN = 0;
|
||||||
|
SERVING = 1;
|
||||||
|
NOT_SERVING = 2;
|
||||||
|
SERVICE_UNKNOWN = 3; // Used only by the Watch method.
|
||||||
|
}
|
||||||
|
ServingStatus status = 1;
|
||||||
|
}
|
||||||
|
|
||||||
//-----------------------------------------------
|
//-----------------------------------------------
|
||||||
// Storage interface
|
// Storage interface
|
||||||
//-----------------------------------------------
|
//-----------------------------------------------
|
||||||
|
|
||||||
// The entity store provides a basic CRUD (+watch eventually) interface for generic entitys
|
// The entity store provides a basic CRUD (+watch eventually) interface for generic entities
|
||||||
service EntityStore {
|
service EntityStore {
|
||||||
rpc Read(ReadEntityRequest) returns (Entity);
|
rpc Read(ReadEntityRequest) returns (Entity);
|
||||||
rpc Create(CreateEntityRequest) returns (CreateEntityResponse);
|
rpc Create(CreateEntityRequest) returns (CreateEntityResponse);
|
||||||
|
@ -453,4 +470,5 @@ service EntityStore {
|
||||||
rpc History(EntityHistoryRequest) returns (EntityHistoryResponse);
|
rpc History(EntityHistoryRequest) returns (EntityHistoryResponse);
|
||||||
rpc List(EntityListRequest) returns (EntityListResponse);
|
rpc List(EntityListRequest) returns (EntityListResponse);
|
||||||
rpc Watch(stream EntityWatchRequest) returns (stream EntityWatchResponse);
|
rpc Watch(stream EntityWatchRequest) returns (stream EntityWatchResponse);
|
||||||
|
rpc IsHealthy(HealthCheckRequest) returns (HealthCheckResponse);
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,13 +19,14 @@ import (
|
||||||
const _ = grpc.SupportPackageIsVersion7
|
const _ = grpc.SupportPackageIsVersion7
|
||||||
|
|
||||||
const (
|
const (
|
||||||
EntityStore_Read_FullMethodName = "/entity.EntityStore/Read"
|
EntityStore_Read_FullMethodName = "/entity.EntityStore/Read"
|
||||||
EntityStore_Create_FullMethodName = "/entity.EntityStore/Create"
|
EntityStore_Create_FullMethodName = "/entity.EntityStore/Create"
|
||||||
EntityStore_Update_FullMethodName = "/entity.EntityStore/Update"
|
EntityStore_Update_FullMethodName = "/entity.EntityStore/Update"
|
||||||
EntityStore_Delete_FullMethodName = "/entity.EntityStore/Delete"
|
EntityStore_Delete_FullMethodName = "/entity.EntityStore/Delete"
|
||||||
EntityStore_History_FullMethodName = "/entity.EntityStore/History"
|
EntityStore_History_FullMethodName = "/entity.EntityStore/History"
|
||||||
EntityStore_List_FullMethodName = "/entity.EntityStore/List"
|
EntityStore_List_FullMethodName = "/entity.EntityStore/List"
|
||||||
EntityStore_Watch_FullMethodName = "/entity.EntityStore/Watch"
|
EntityStore_Watch_FullMethodName = "/entity.EntityStore/Watch"
|
||||||
|
EntityStore_IsHealthy_FullMethodName = "/entity.EntityStore/IsHealthy"
|
||||||
)
|
)
|
||||||
|
|
||||||
// EntityStoreClient is the client API for EntityStore service.
|
// EntityStoreClient is the client API for EntityStore service.
|
||||||
|
@ -39,6 +40,7 @@ type EntityStoreClient interface {
|
||||||
History(ctx context.Context, in *EntityHistoryRequest, opts ...grpc.CallOption) (*EntityHistoryResponse, error)
|
History(ctx context.Context, in *EntityHistoryRequest, opts ...grpc.CallOption) (*EntityHistoryResponse, error)
|
||||||
List(ctx context.Context, in *EntityListRequest, opts ...grpc.CallOption) (*EntityListResponse, error)
|
List(ctx context.Context, in *EntityListRequest, opts ...grpc.CallOption) (*EntityListResponse, error)
|
||||||
Watch(ctx context.Context, opts ...grpc.CallOption) (EntityStore_WatchClient, error)
|
Watch(ctx context.Context, opts ...grpc.CallOption) (EntityStore_WatchClient, error)
|
||||||
|
IsHealthy(ctx context.Context, in *HealthCheckRequest, opts ...grpc.CallOption) (*HealthCheckResponse, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
type entityStoreClient struct {
|
type entityStoreClient struct {
|
||||||
|
@ -134,6 +136,15 @@ func (x *entityStoreWatchClient) Recv() (*EntityWatchResponse, error) {
|
||||||
return m, nil
|
return m, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (c *entityStoreClient) IsHealthy(ctx context.Context, in *HealthCheckRequest, opts ...grpc.CallOption) (*HealthCheckResponse, error) {
|
||||||
|
out := new(HealthCheckResponse)
|
||||||
|
err := c.cc.Invoke(ctx, EntityStore_IsHealthy_FullMethodName, in, out, opts...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return out, nil
|
||||||
|
}
|
||||||
|
|
||||||
// EntityStoreServer is the server API for EntityStore service.
|
// EntityStoreServer is the server API for EntityStore service.
|
||||||
// All implementations should embed UnimplementedEntityStoreServer
|
// All implementations should embed UnimplementedEntityStoreServer
|
||||||
// for forward compatibility
|
// for forward compatibility
|
||||||
|
@ -145,6 +156,7 @@ type EntityStoreServer interface {
|
||||||
History(context.Context, *EntityHistoryRequest) (*EntityHistoryResponse, error)
|
History(context.Context, *EntityHistoryRequest) (*EntityHistoryResponse, error)
|
||||||
List(context.Context, *EntityListRequest) (*EntityListResponse, error)
|
List(context.Context, *EntityListRequest) (*EntityListResponse, error)
|
||||||
Watch(EntityStore_WatchServer) error
|
Watch(EntityStore_WatchServer) error
|
||||||
|
IsHealthy(context.Context, *HealthCheckRequest) (*HealthCheckResponse, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
// UnimplementedEntityStoreServer should be embedded to have forward compatible implementations.
|
// UnimplementedEntityStoreServer should be embedded to have forward compatible implementations.
|
||||||
|
@ -172,6 +184,9 @@ func (UnimplementedEntityStoreServer) List(context.Context, *EntityListRequest)
|
||||||
func (UnimplementedEntityStoreServer) Watch(EntityStore_WatchServer) error {
|
func (UnimplementedEntityStoreServer) Watch(EntityStore_WatchServer) error {
|
||||||
return status.Errorf(codes.Unimplemented, "method Watch not implemented")
|
return status.Errorf(codes.Unimplemented, "method Watch not implemented")
|
||||||
}
|
}
|
||||||
|
func (UnimplementedEntityStoreServer) IsHealthy(context.Context, *HealthCheckRequest) (*HealthCheckResponse, error) {
|
||||||
|
return nil, status.Errorf(codes.Unimplemented, "method IsHealthy not implemented")
|
||||||
|
}
|
||||||
|
|
||||||
// UnsafeEntityStoreServer may be embedded to opt out of forward compatibility for this service.
|
// UnsafeEntityStoreServer may be embedded to opt out of forward compatibility for this service.
|
||||||
// Use of this interface is not recommended, as added methods to EntityStoreServer will
|
// Use of this interface is not recommended, as added methods to EntityStoreServer will
|
||||||
|
@ -318,6 +333,24 @@ func (x *entityStoreWatchServer) Recv() (*EntityWatchRequest, error) {
|
||||||
return m, nil
|
return m, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func _EntityStore_IsHealthy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||||
|
in := new(HealthCheckRequest)
|
||||||
|
if err := dec(in); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if interceptor == nil {
|
||||||
|
return srv.(EntityStoreServer).IsHealthy(ctx, in)
|
||||||
|
}
|
||||||
|
info := &grpc.UnaryServerInfo{
|
||||||
|
Server: srv,
|
||||||
|
FullMethod: EntityStore_IsHealthy_FullMethodName,
|
||||||
|
}
|
||||||
|
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||||
|
return srv.(EntityStoreServer).IsHealthy(ctx, req.(*HealthCheckRequest))
|
||||||
|
}
|
||||||
|
return interceptor(ctx, in, info, handler)
|
||||||
|
}
|
||||||
|
|
||||||
// EntityStore_ServiceDesc is the grpc.ServiceDesc for EntityStore service.
|
// EntityStore_ServiceDesc is the grpc.ServiceDesc for EntityStore service.
|
||||||
// It's only intended for direct use with grpc.RegisterService,
|
// It's only intended for direct use with grpc.RegisterService,
|
||||||
// and not to be introspected or modified (even as a copy)
|
// and not to be introspected or modified (even as a copy)
|
||||||
|
@ -349,6 +382,10 @@ var EntityStore_ServiceDesc = grpc.ServiceDesc{
|
||||||
MethodName: "List",
|
MethodName: "List",
|
||||||
Handler: _EntityStore_List_Handler,
|
Handler: _EntityStore_List_Handler,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
MethodName: "IsHealthy",
|
||||||
|
Handler: _EntityStore_IsHealthy_Handler,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
Streams: []grpc.StreamDesc{
|
Streams: []grpc.StreamDesc{
|
||||||
{
|
{
|
||||||
|
|
|
@ -0,0 +1,88 @@
|
||||||
|
package entity
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"errors"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
grpcAuth "github.com/grpc-ecosystem/go-grpc-middleware/v2/interceptors/auth"
|
||||||
|
"google.golang.org/grpc/health/grpc_health_v1"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Compile-time assertion
|
||||||
|
var _ HealthService = &healthServer{}
|
||||||
|
|
||||||
|
type HealthService interface {
|
||||||
|
grpc_health_v1.HealthServer
|
||||||
|
grpcAuth.ServiceAuthFuncOverride
|
||||||
|
}
|
||||||
|
|
||||||
|
func ProvideHealthService(server EntityStoreServer) (grpc_health_v1.HealthServer, error) {
|
||||||
|
h := &healthServer{entityServer: server}
|
||||||
|
return h, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
type healthServer struct {
|
||||||
|
entityServer EntityStoreServer
|
||||||
|
}
|
||||||
|
|
||||||
|
// AuthFuncOverride for no auth for health service.
|
||||||
|
func (s *healthServer) AuthFuncOverride(ctx context.Context, _ string) (context.Context, error) {
|
||||||
|
return ctx, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *healthServer) Check(ctx context.Context, req *grpc_health_v1.HealthCheckRequest) (*grpc_health_v1.HealthCheckResponse, error) {
|
||||||
|
r, err := s.entityServer.IsHealthy(ctx, &HealthCheckRequest{})
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return &grpc_health_v1.HealthCheckResponse{
|
||||||
|
Status: grpc_health_v1.HealthCheckResponse_ServingStatus(r.Status.Number()),
|
||||||
|
}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *healthServer) Watch(req *grpc_health_v1.HealthCheckRequest, stream grpc_health_v1.Health_WatchServer) error {
|
||||||
|
h, err := s.entityServer.IsHealthy(stream.Context(), &HealthCheckRequest{})
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// send initial health status
|
||||||
|
err = stream.Send(&grpc_health_v1.HealthCheckResponse{
|
||||||
|
Status: grpc_health_v1.HealthCheckResponse_ServingStatus(h.Status.Number()),
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
currHealth := h.Status.Number()
|
||||||
|
ticker := time.NewTicker(5 * time.Second)
|
||||||
|
defer ticker.Stop()
|
||||||
|
for {
|
||||||
|
select {
|
||||||
|
case <-ticker.C:
|
||||||
|
// get current health status
|
||||||
|
h, err := s.entityServer.IsHealthy(stream.Context(), &HealthCheckRequest{})
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// if health status has not changed, continue
|
||||||
|
if h.Status.Number() == currHealth {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
// send the new health status
|
||||||
|
currHealth = h.Status.Number()
|
||||||
|
err = stream.Send(&grpc_health_v1.HealthCheckResponse{
|
||||||
|
Status: grpc_health_v1.HealthCheckResponse_ServingStatus(h.Status.Number()),
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
case <-stream.Context().Done():
|
||||||
|
return errors.New("stream closed, context cancelled")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,150 @@
|
||||||
|
package entity
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"errors"
|
||||||
|
"testing"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
"github.com/stretchr/testify/require"
|
||||||
|
"google.golang.org/grpc"
|
||||||
|
"google.golang.org/grpc/health/grpc_health_v1"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestHealthCheck(t *testing.T) {
|
||||||
|
t.Run("will return serving response when healthy", func(t *testing.T) {
|
||||||
|
stub := &entityStoreStub{healthResponse: HealthCheckResponse_SERVING}
|
||||||
|
svc, err := ProvideHealthService(stub)
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
req := &grpc_health_v1.HealthCheckRequest{}
|
||||||
|
res, err := svc.Check(context.Background(), req)
|
||||||
|
|
||||||
|
require.NoError(t, err)
|
||||||
|
assert.Equal(t, grpc_health_v1.HealthCheckResponse_SERVING, res.Status)
|
||||||
|
})
|
||||||
|
|
||||||
|
t.Run("will return not serving response when not healthy", func(t *testing.T) {
|
||||||
|
stub := &entityStoreStub{healthResponse: HealthCheckResponse_NOT_SERVING}
|
||||||
|
svc, err := ProvideHealthService(stub)
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
req := &grpc_health_v1.HealthCheckRequest{}
|
||||||
|
res, err := svc.Check(context.Background(), req)
|
||||||
|
|
||||||
|
require.NoError(t, err)
|
||||||
|
assert.Equal(t, grpc_health_v1.HealthCheckResponse_NOT_SERVING, res.Status)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestHealthWatch(t *testing.T) {
|
||||||
|
t.Run("watch will return message when called", func(t *testing.T) {
|
||||||
|
stub := &entityStoreStub{healthResponse: HealthCheckResponse_SERVING}
|
||||||
|
svc, err := ProvideHealthService(stub)
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
req := &grpc_health_v1.HealthCheckRequest{}
|
||||||
|
stream := &fakeHealthWatchServer{}
|
||||||
|
go func() {
|
||||||
|
err := svc.Watch(req, stream)
|
||||||
|
require.NoError(t, err)
|
||||||
|
}()
|
||||||
|
|
||||||
|
time.Sleep(100 * time.Millisecond)
|
||||||
|
err = stream.RecvMsg(nil)
|
||||||
|
require.NoError(t, err)
|
||||||
|
})
|
||||||
|
|
||||||
|
t.Run("watch will return error when context cancelled", func(t *testing.T) {
|
||||||
|
stub := &entityStoreStub{healthResponse: HealthCheckResponse_NOT_SERVING}
|
||||||
|
svc, err := ProvideHealthService(stub)
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
req := &grpc_health_v1.HealthCheckRequest{}
|
||||||
|
ctx, cancel := context.WithTimeout(context.Background(), 100*time.Millisecond)
|
||||||
|
defer cancel()
|
||||||
|
stream := &fakeHealthWatchServer{context: ctx}
|
||||||
|
err = svc.Watch(req, stream)
|
||||||
|
|
||||||
|
require.Error(t, err)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
var _ EntityStoreServer = &entityStoreStub{}
|
||||||
|
|
||||||
|
type entityStoreStub struct {
|
||||||
|
healthResponse HealthCheckResponse_ServingStatus
|
||||||
|
error error
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *entityStoreStub) IsHealthy(ctx context.Context, req *HealthCheckRequest) (*HealthCheckResponse, error) {
|
||||||
|
if s.error != nil {
|
||||||
|
return nil, s.error
|
||||||
|
}
|
||||||
|
|
||||||
|
return &HealthCheckResponse{Status: s.healthResponse}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Implement the EntityStoreServer methods
|
||||||
|
func (s *entityStoreStub) Create(ctx context.Context, r *CreateEntityRequest) (*CreateEntityResponse, error) {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *entityStoreStub) Update(ctx context.Context, r *UpdateEntityRequest) (*UpdateEntityResponse, error) {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *entityStoreStub) Read(ctx context.Context, r *ReadEntityRequest) (*Entity, error) {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *entityStoreStub) Delete(ctx context.Context, r *DeleteEntityRequest) (*DeleteEntityResponse, error) {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *entityStoreStub) History(ctx context.Context, r *EntityHistoryRequest) (*EntityHistoryResponse, error) {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *entityStoreStub) List(ctx context.Context, r *EntityListRequest) (*EntityListResponse, error) {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *entityStoreStub) Watch(EntityStore_WatchServer) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *entityStoreStub) FindReferences(ctx context.Context, r *ReferenceRequest) (*EntityListResponse, error) {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
type fakeHealthWatchServer struct {
|
||||||
|
grpc.ServerStream
|
||||||
|
healthChecks []*grpc_health_v1.HealthCheckResponse
|
||||||
|
context context.Context
|
||||||
|
}
|
||||||
|
|
||||||
|
func (f *fakeHealthWatchServer) Send(resp *grpc_health_v1.HealthCheckResponse) error {
|
||||||
|
f.healthChecks = append(f.healthChecks, resp)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (f *fakeHealthWatchServer) RecvMsg(m interface{}) error {
|
||||||
|
if len(f.healthChecks) == 0 {
|
||||||
|
return errors.New("no health checks received")
|
||||||
|
}
|
||||||
|
f.healthChecks = f.healthChecks[1:]
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (f *fakeHealthWatchServer) SendMsg(m interface{}) error {
|
||||||
|
return errors.New("not implemented")
|
||||||
|
}
|
||||||
|
|
||||||
|
func (f *fakeHealthWatchServer) Context() context.Context {
|
||||||
|
if f.context == nil {
|
||||||
|
f.context = context.Background()
|
||||||
|
}
|
||||||
|
return f.context
|
||||||
|
}
|
|
@ -17,6 +17,7 @@ import (
|
||||||
"github.com/grafana/grafana/pkg/services/store/entity/sqlstash"
|
"github.com/grafana/grafana/pkg/services/store/entity/sqlstash"
|
||||||
"github.com/grafana/grafana/pkg/setting"
|
"github.com/grafana/grafana/pkg/setting"
|
||||||
"github.com/prometheus/client_golang/prometheus"
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
|
"google.golang.org/grpc/health/grpc_health_v1"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
@ -125,7 +126,18 @@ func (s *service) start(ctx context.Context) error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
healthService, err := entity.ProvideHealthService(store)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
entity.RegisterEntityStoreServer(s.handler.GetServer(), store)
|
entity.RegisterEntityStoreServer(s.handler.GetServer(), store)
|
||||||
|
grpc_health_v1.RegisterHealthServer(s.handler.GetServer(), healthService)
|
||||||
|
// register reflection service
|
||||||
|
_, err = grpcserver.ProvideReflectionService(s.cfg, s.handler)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
err = s.handler.Run(ctx)
|
err = s.handler.Run(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
@ -130,6 +130,19 @@ func (s *sqlEntityServer) Init() error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *sqlEntityServer) IsHealthy(ctx context.Context, r *entity.HealthCheckRequest) (*entity.HealthCheckResponse, error) {
|
||||||
|
sess, err := s.db.GetSession()
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
_, err = sess.Query(ctx, "SELECT 1")
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return &entity.HealthCheckResponse{Status: entity.HealthCheckResponse_SERVING}, nil
|
||||||
|
}
|
||||||
|
|
||||||
func (s *sqlEntityServer) Stop() {
|
func (s *sqlEntityServer) Stop() {
|
||||||
s.cancel()
|
s.cancel()
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,6 +18,13 @@ func TestMain(m *testing.M) {
|
||||||
testsuite.Run(m)
|
testsuite.Run(m)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestIsHealthy(t *testing.T) {
|
||||||
|
s := setUpTestServer(t)
|
||||||
|
|
||||||
|
_, err := s.IsHealthy(context.Background(), &entity.HealthCheckRequest{})
|
||||||
|
require.NoError(t, err)
|
||||||
|
}
|
||||||
|
|
||||||
func TestCreate(t *testing.T) {
|
func TestCreate(t *testing.T) {
|
||||||
s := setUpTestServer(t)
|
s := setUpTestServer(t)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue