Merge pull request #110 from msau42/vendor
Update vendor to k8s 1.19 and csi-lib-utils to 0.9.0
This commit is contained in:
commit
556a4c42d6
74
go.mod
74
go.mod
@ -5,73 +5,67 @@ go 1.13
|
|||||||
require (
|
require (
|
||||||
github.com/container-storage-interface/spec v1.3.0
|
github.com/container-storage-interface/spec v1.3.0
|
||||||
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b
|
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b
|
||||||
github.com/golang/protobuf v1.4.1
|
github.com/golang/protobuf v1.4.2
|
||||||
github.com/kubernetes-csi/csi-lib-utils v0.7.0
|
github.com/kubernetes-csi/csi-lib-utils v0.9.0
|
||||||
github.com/kubernetes-csi/external-snapshotter/v2 v2.0.0-20200617021606-4800ca72d403
|
github.com/kubernetes-csi/external-snapshotter/v2 v2.0.0-20200617021606-4800ca72d403
|
||||||
github.com/onsi/ginkgo v1.11.0
|
github.com/onsi/ginkgo v1.11.0
|
||||||
github.com/onsi/gomega v1.7.1
|
github.com/onsi/gomega v1.7.1
|
||||||
github.com/pborman/uuid v1.2.0
|
github.com/pborman/uuid v1.2.0
|
||||||
github.com/prometheus/client_golang v1.5.1 // indirect
|
github.com/spf13/cobra v1.0.0
|
||||||
github.com/spf13/cobra v0.0.5
|
|
||||||
github.com/stretchr/testify v1.5.1
|
github.com/stretchr/testify v1.5.1
|
||||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 // indirect
|
golang.org/x/net v0.0.0-20200707034311-ab3426394381
|
||||||
golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e
|
google.golang.org/grpc v1.29.0
|
||||||
golang.org/x/text v0.3.3 // indirect
|
|
||||||
google.golang.org/grpc v1.28.0
|
|
||||||
google.golang.org/protobuf v1.25.0 // indirect
|
google.golang.org/protobuf v1.25.0 // indirect
|
||||||
k8s.io/api v0.18.1
|
k8s.io/api v0.19.0
|
||||||
k8s.io/apimachinery v0.18.2-beta.0
|
k8s.io/apimachinery v0.19.0
|
||||||
k8s.io/client-go v0.18.1
|
k8s.io/client-go v0.19.0
|
||||||
k8s.io/klog v1.0.0
|
k8s.io/klog/v2 v2.2.0
|
||||||
k8s.io/klog/v2 v2.2.0 // indirect
|
k8s.io/kubernetes v1.19.0
|
||||||
k8s.io/kubernetes v1.18.0
|
k8s.io/utils v0.0.0-20200729134348-d5654de09c73
|
||||||
k8s.io/utils v0.0.0-20200411171748-3d5a2fe318e4
|
|
||||||
)
|
)
|
||||||
|
|
||||||
replace k8s.io/api => k8s.io/api v0.18.0
|
replace k8s.io/api => k8s.io/api v0.19.0
|
||||||
|
|
||||||
replace k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.18.0
|
replace k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.19.0
|
||||||
|
|
||||||
replace k8s.io/apimachinery => k8s.io/apimachinery v0.18.2-beta.0
|
replace k8s.io/apimachinery => k8s.io/apimachinery v0.19.0
|
||||||
|
|
||||||
replace k8s.io/apiserver => k8s.io/apiserver v0.18.0
|
replace k8s.io/apiserver => k8s.io/apiserver v0.19.0
|
||||||
|
|
||||||
replace k8s.io/cli-runtime => k8s.io/cli-runtime v0.18.0
|
replace k8s.io/cli-runtime => k8s.io/cli-runtime v0.19.0
|
||||||
|
|
||||||
replace k8s.io/client-go => k8s.io/client-go v0.18.0
|
replace k8s.io/client-go => k8s.io/client-go v0.19.0
|
||||||
|
|
||||||
replace k8s.io/cloud-provider => k8s.io/cloud-provider v0.18.0
|
replace k8s.io/cloud-provider => k8s.io/cloud-provider v0.19.0
|
||||||
|
|
||||||
replace k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.18.0
|
replace k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.19.0
|
||||||
|
|
||||||
replace k8s.io/code-generator => k8s.io/code-generator v0.18.3-beta.0
|
replace k8s.io/code-generator => k8s.io/code-generator v0.19.0
|
||||||
|
|
||||||
replace k8s.io/component-base => k8s.io/component-base v0.18.0
|
replace k8s.io/component-base => k8s.io/component-base v0.19.0
|
||||||
|
|
||||||
replace k8s.io/cri-api => k8s.io/cri-api v0.18.11-rc.0
|
replace k8s.io/cri-api => k8s.io/cri-api v0.19.0
|
||||||
|
|
||||||
replace k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.18.0
|
replace k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.19.0
|
||||||
|
|
||||||
replace k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.18.0
|
replace k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.19.0
|
||||||
|
|
||||||
replace k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.18.0
|
replace k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.19.0
|
||||||
|
|
||||||
replace k8s.io/kube-proxy => k8s.io/kube-proxy v0.18.0
|
replace k8s.io/kube-proxy => k8s.io/kube-proxy v0.19.0
|
||||||
|
|
||||||
replace k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.18.0
|
replace k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.19.0
|
||||||
|
|
||||||
replace k8s.io/kubectl => k8s.io/kubectl v0.18.0
|
replace k8s.io/kubectl => k8s.io/kubectl v0.19.0
|
||||||
|
|
||||||
replace k8s.io/kubelet => k8s.io/kubelet v0.18.0
|
replace k8s.io/kubelet => k8s.io/kubelet v0.19.0
|
||||||
|
|
||||||
replace k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.18.0
|
replace k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.19.0
|
||||||
|
|
||||||
replace k8s.io/metrics => k8s.io/metrics v0.18.0
|
replace k8s.io/metrics => k8s.io/metrics v0.19.0
|
||||||
|
|
||||||
replace k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.18.0
|
replace k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.19.0
|
||||||
|
|
||||||
replace k8s.io/sample-cli-plugin => k8s.io/sample-cli-plugin v0.18.0
|
replace k8s.io/sample-cli-plugin => k8s.io/sample-cli-plugin v0.19.0
|
||||||
|
|
||||||
replace k8s.io/sample-controller => k8s.io/sample-controller v0.18.0
|
replace k8s.io/sample-controller => k8s.io/sample-controller v0.19.0
|
||||||
|
|
||||||
replace google.golang.org/grpc => google.golang.org/grpc v1.26.0
|
|
||||||
|
|||||||
339
go.sum
339
go.sum
@ -1,13 +1,29 @@
|
|||||||
bitbucket.org/bertimus9/systemstat v0.0.0-20180207000608-0eeff89b0690/go.mod h1:Ulb78X89vxKYgdL24HMTiXYHlyHEvruOj1ZPlqeNEZM=
|
bitbucket.org/bertimus9/systemstat v0.0.0-20180207000608-0eeff89b0690/go.mod h1:Ulb78X89vxKYgdL24HMTiXYHlyHEvruOj1ZPlqeNEZM=
|
||||||
|
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
|
||||||
cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
|
cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
|
||||||
cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU=
|
cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU=
|
||||||
|
cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU=
|
||||||
|
cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY=
|
||||||
|
cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc=
|
||||||
|
cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0=
|
||||||
|
cloud.google.com/go v0.51.0/go.mod h1:hWtGJ6gnXH+KgDv+V0zFGDvpi07n3z8ZNj3T1RW0Gcw=
|
||||||
|
cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o=
|
||||||
|
cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE=
|
||||||
|
cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I=
|
||||||
|
cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw=
|
||||||
|
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
|
||||||
github.com/Azure/azure-sdk-for-go v35.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc=
|
github.com/Azure/azure-sdk-for-go v35.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc=
|
||||||
|
github.com/Azure/azure-sdk-for-go v43.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc=
|
||||||
github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8=
|
github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8=
|
||||||
github.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI=
|
github.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI=
|
||||||
|
github.com/Azure/go-autorest/autorest v0.9.6/go.mod h1:/FALq9T/kS7b5J5qsQ+RSTUdAmGFqi0vUdVNNx8q630=
|
||||||
github.com/Azure/go-autorest/autorest/adal v0.5.0/go.mod h1:8Z9fGy2MpX0PvDjB1pEgQTmVqjGhiHBW7RJJEciWzS0=
|
github.com/Azure/go-autorest/autorest/adal v0.5.0/go.mod h1:8Z9fGy2MpX0PvDjB1pEgQTmVqjGhiHBW7RJJEciWzS0=
|
||||||
|
github.com/Azure/go-autorest/autorest/adal v0.8.2/go.mod h1:ZjhuQClTqx435SRJ2iMlOxPYt3d2C/T/7TiQCVZSn3Q=
|
||||||
github.com/Azure/go-autorest/autorest/date v0.1.0/go.mod h1:plvfp3oPSKwf2DNjlBjWF/7vwR+cUD/ELuzDCXwHUVA=
|
github.com/Azure/go-autorest/autorest/date v0.1.0/go.mod h1:plvfp3oPSKwf2DNjlBjWF/7vwR+cUD/ELuzDCXwHUVA=
|
||||||
|
github.com/Azure/go-autorest/autorest/date v0.2.0/go.mod h1:vcORJHLJEh643/Ioh9+vPmf1Ij9AEBM5FuBIXLmIy0g=
|
||||||
github.com/Azure/go-autorest/autorest/mocks v0.1.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0=
|
github.com/Azure/go-autorest/autorest/mocks v0.1.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0=
|
||||||
github.com/Azure/go-autorest/autorest/mocks v0.2.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0=
|
github.com/Azure/go-autorest/autorest/mocks v0.2.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0=
|
||||||
|
github.com/Azure/go-autorest/autorest/mocks v0.3.0/go.mod h1:a8FDP3DYzQ4RYfVAxAN3SVSiiO77gL2j2ronKKP0syM=
|
||||||
github.com/Azure/go-autorest/autorest/to v0.2.0/go.mod h1:GunWKJp1AEqgMaGLV+iocmRAJWqST1wQYhyyjXJ3SJc=
|
github.com/Azure/go-autorest/autorest/to v0.2.0/go.mod h1:GunWKJp1AEqgMaGLV+iocmRAJWqST1wQYhyyjXJ3SJc=
|
||||||
github.com/Azure/go-autorest/autorest/validation v0.1.0/go.mod h1:Ha3z/SqBeaalWQvokg3NZAlQTalVMtOIAs1aGK7G6u8=
|
github.com/Azure/go-autorest/autorest/validation v0.1.0/go.mod h1:Ha3z/SqBeaalWQvokg3NZAlQTalVMtOIAs1aGK7G6u8=
|
||||||
github.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc=
|
github.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc=
|
||||||
@ -15,12 +31,16 @@ github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbt
|
|||||||
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/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
|
||||||
github.com/GoogleCloudPlatform/k8s-cloud-provider v0.0.0-20190822182118-27a4ced34534/go.mod h1:iroGtC8B3tQiqtds1l+mgk/BBOrxbqjH+eUfFQYRc14=
|
github.com/GoogleCloudPlatform/k8s-cloud-provider v0.0.0-20190822182118-27a4ced34534/go.mod h1:iroGtC8B3tQiqtds1l+mgk/BBOrxbqjH+eUfFQYRc14=
|
||||||
|
github.com/GoogleCloudPlatform/k8s-cloud-provider v0.0.0-20200415212048-7901bc822317/go.mod h1:DF8FZRxMHMGv/vP2lQP6h+dYzzjpuRn24VeRiYn3qjQ=
|
||||||
github.com/JeffAshton/win_pdh v0.0.0-20161109143554-76bb4ee9f0ab/go.mod h1:3VYc5hodBMJ5+l/7J4xAyMeuM2PNuepvHlGs8yilUCA=
|
github.com/JeffAshton/win_pdh v0.0.0-20161109143554-76bb4ee9f0ab/go.mod h1:3VYc5hodBMJ5+l/7J4xAyMeuM2PNuepvHlGs8yilUCA=
|
||||||
github.com/MakeNowJust/heredoc v0.0.0-20170808103936-bb23615498cd/go.mod h1:64YHyfSL2R96J44Nlwm39UHepQbyR5q10x7iYa1ks2E=
|
github.com/MakeNowJust/heredoc v0.0.0-20170808103936-bb23615498cd/go.mod h1:64YHyfSL2R96J44Nlwm39UHepQbyR5q10x7iYa1ks2E=
|
||||||
github.com/Microsoft/go-winio v0.4.14 h1:+hMXMk01us9KgxGb7ftKQt2Xpf5hH/yky+TDA+qxleU=
|
github.com/Microsoft/go-winio v0.4.14 h1:+hMXMk01us9KgxGb7ftKQt2Xpf5hH/yky+TDA+qxleU=
|
||||||
github.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA=
|
github.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA=
|
||||||
|
github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5/go.mod h1:tTuCMEN+UleMWgg9dVx4Hu52b1bJo+59jBh3ajtinzw=
|
||||||
github.com/Microsoft/hcsshim v0.0.0-20190417211021-672e52e9209d/go.mod h1:Op3hHsoHPAvb6lceZHDtd9OkTew38wNoXnJs8iY7rUg=
|
github.com/Microsoft/hcsshim v0.0.0-20190417211021-672e52e9209d/go.mod h1:Op3hHsoHPAvb6lceZHDtd9OkTew38wNoXnJs8iY7rUg=
|
||||||
|
github.com/Microsoft/hcsshim v0.8.10-0.20200715222032-5eafd1556990/go.mod h1:ay/0dTb7NsG8QMDfsRfLHgZo/6xAJShLe1+ePPflihk=
|
||||||
github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
|
github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
|
||||||
|
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
|
||||||
github.com/OpenPeeDeeP/depguard v1.0.0/go.mod h1:7/4sitnI9YlQgTLLk734QlzXT8DuHVnAyztLplQjk+o=
|
github.com/OpenPeeDeeP/depguard v1.0.0/go.mod h1:7/4sitnI9YlQgTLLk734QlzXT8DuHVnAyztLplQjk+o=
|
||||||
github.com/OpenPeeDeeP/depguard v1.0.1/go.mod h1:xsIw86fROiiwelg+jB2uM9PiKihMMmUx/1V+TNhjQvM=
|
github.com/OpenPeeDeeP/depguard v1.0.1/go.mod h1:xsIw86fROiiwelg+jB2uM9PiKihMMmUx/1V+TNhjQvM=
|
||||||
github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
|
github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
|
||||||
@ -45,6 +65,7 @@ github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5
|
|||||||
github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
|
github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
|
||||||
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
|
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
|
||||||
github.com/auth0/go-jwt-middleware v0.0.0-20170425171159-5493cabe49f7/go.mod h1:LWMyo4iOLWXHGdBki7NIht1kHru/0wM179h+d3g8ATM=
|
github.com/auth0/go-jwt-middleware v0.0.0-20170425171159-5493cabe49f7/go.mod h1:LWMyo4iOLWXHGdBki7NIht1kHru/0wM179h+d3g8ATM=
|
||||||
|
github.com/aws/aws-sdk-go v1.6.10/go.mod h1:ZRmQr0FajVIyZ4ZzBYKG5P3ZqPz9IHG41ZoMu1ADI3k=
|
||||||
github.com/aws/aws-sdk-go v1.28.2/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
|
github.com/aws/aws-sdk-go v1.28.2/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
|
||||||
github.com/bazelbuild/bazel-gazelle v0.18.2/go.mod h1:D0ehMSbS+vesFsLGiD6JXu3mVEzOlfUl8wNnq+x/9p0=
|
github.com/bazelbuild/bazel-gazelle v0.18.2/go.mod h1:D0ehMSbS+vesFsLGiD6JXu3mVEzOlfUl8wNnq+x/9p0=
|
||||||
github.com/bazelbuild/bazel-gazelle v0.19.1-0.20191105222053-70208cbdc798/go.mod h1:rPwzNHUqEzngx1iVBfO/2X2npKaT3tqPqqHW6rVsn/A=
|
github.com/bazelbuild/bazel-gazelle v0.19.1-0.20191105222053-70208cbdc798/go.mod h1:rPwzNHUqEzngx1iVBfO/2X2npKaT3tqPqqHW6rVsn/A=
|
||||||
@ -59,6 +80,7 @@ github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
|
|||||||
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
|
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
|
||||||
github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs=
|
github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs=
|
||||||
github.com/bifurcation/mint v0.0.0-20180715133206-93c51c6ce115/go.mod h1:zVt7zX3K/aDCk9Tj+VM7YymsX66ERvzCJzw8rFCX2JU=
|
github.com/bifurcation/mint v0.0.0-20180715133206-93c51c6ce115/go.mod h1:zVt7zX3K/aDCk9Tj+VM7YymsX66ERvzCJzw8rFCX2JU=
|
||||||
|
github.com/blang/semver v3.1.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk=
|
||||||
github.com/blang/semver v3.5.0+incompatible h1:CGxCgetQ64DKk7rdZ++Vfnb1+ogGNnB17OJKJXD2Cfs=
|
github.com/blang/semver v3.5.0+incompatible h1:CGxCgetQ64DKk7rdZ++Vfnb1+ogGNnB17OJKJXD2Cfs=
|
||||||
github.com/blang/semver v3.5.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk=
|
github.com/blang/semver v3.5.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk=
|
||||||
github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps=
|
github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps=
|
||||||
@ -67,14 +89,25 @@ github.com/caddyserver/caddy v1.0.3/go.mod h1:G+ouvOY32gENkJC+jhgl62TyhvqEsFaDiZ
|
|||||||
github.com/cenkalti/backoff v2.1.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM=
|
github.com/cenkalti/backoff v2.1.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM=
|
||||||
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/prettybench v0.0.0-20150116022406-03b8cfe5406c/go.mod h1:Xe6ZsFhtM8HrDku0pxJ3/Lr51rwykrzgFwpmTzleatY=
|
github.com/cespare/prettybench v0.0.0-20150116022406-03b8cfe5406c/go.mod h1:Xe6ZsFhtM8HrDku0pxJ3/Lr51rwykrzgFwpmTzleatY=
|
||||||
|
github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko=
|
||||||
|
github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
|
||||||
github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY=
|
github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY=
|
||||||
github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
||||||
github.com/chai2010/gettext-go v0.0.0-20160711120539-c6fed771bfd5/go.mod h1:/iP1qXHoty45bqomnu2LM+VVyAEdWN+vtSHGlQgyxbw=
|
github.com/chai2010/gettext-go v0.0.0-20160711120539-c6fed771bfd5/go.mod h1:/iP1qXHoty45bqomnu2LM+VVyAEdWN+vtSHGlQgyxbw=
|
||||||
github.com/checkpoint-restore/go-criu v0.0.0-20181120144056-17b0214f6c48/go.mod h1:TrMrLQfeENAPYPRsJuq3jsqdlRh3lvi6trTZJG8+tho=
|
github.com/checkpoint-restore/go-criu v0.0.0-20181120144056-17b0214f6c48/go.mod h1:TrMrLQfeENAPYPRsJuq3jsqdlRh3lvi6trTZJG8+tho=
|
||||||
|
github.com/checkpoint-restore/go-criu/v4 v4.0.2/go.mod h1:xUQBLp4RLc5zJtWY++yjOoMoB5lihDt7fai+75m+rGw=
|
||||||
github.com/cheekybits/genny v0.0.0-20170328200008-9127e812e1e9/go.mod h1:+tQajlRqAUrPI7DOSpB0XAqZYtQakVtB7wXkRAgjxjQ=
|
github.com/cheekybits/genny v0.0.0-20170328200008-9127e812e1e9/go.mod h1:+tQajlRqAUrPI7DOSpB0XAqZYtQakVtB7wXkRAgjxjQ=
|
||||||
|
github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
|
||||||
|
github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=
|
||||||
|
github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
|
||||||
github.com/cilium/ebpf v0.0.0-20191025125908-95b36a581eed/go.mod h1:MA5e5Lr8slmEg9bt0VpxxWqJlO4iwu3FBdHUzV7wQVg=
|
github.com/cilium/ebpf v0.0.0-20191025125908-95b36a581eed/go.mod h1:MA5e5Lr8slmEg9bt0VpxxWqJlO4iwu3FBdHUzV7wQVg=
|
||||||
|
github.com/cilium/ebpf v0.0.0-20200110133405-4032b1d8aae3/go.mod h1:MA5e5Lr8slmEg9bt0VpxxWqJlO4iwu3FBdHUzV7wQVg=
|
||||||
|
github.com/cilium/ebpf v0.0.0-20200507155900-a9f01edf17e3/go.mod h1:XT+cAw5wfvsodedcijoh1l9cf7v1x9FlFB/3VmF/O8s=
|
||||||
|
github.com/cilium/ebpf v0.0.0-20200601085316-9f1617e5c574/go.mod h1:XT+cAw5wfvsodedcijoh1l9cf7v1x9FlFB/3VmF/O8s=
|
||||||
|
github.com/cilium/ebpf v0.0.0-20200702112145-1c8d4c9ef775/go.mod h1:7cR51M8ViRLIdUjrmSXlK9pkrsDlLHbO8jiB8X8JnOc=
|
||||||
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
|
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
|
||||||
github.com/clusterhq/flocker-go v0.0.0-20160920122132-2b8b7259d313/go.mod h1:P1wt9Z3DP8O6W3rvwCt0REIlshg1InHImaLW0t3ObY0=
|
github.com/clusterhq/flocker-go v0.0.0-20160920122132-2b8b7259d313/go.mod h1:P1wt9Z3DP8O6W3rvwCt0REIlshg1InHImaLW0t3ObY0=
|
||||||
|
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
|
||||||
github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa h1:OaNxuTZr7kxeODyLWsRMC+OD03aFUH+mW6r2d+MWa5Y=
|
github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa h1:OaNxuTZr7kxeODyLWsRMC+OD03aFUH+mW6r2d+MWa5Y=
|
||||||
github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8=
|
github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8=
|
||||||
github.com/codegangsta/negroni v1.0.0/go.mod h1:v0y3T5G7Y1UlFfyxFn/QLRU4a2EuNau2iZY63YTKWo0=
|
github.com/codegangsta/negroni v1.0.0/go.mod h1:v0y3T5G7Y1UlFfyxFn/QLRU4a2EuNau2iZY63YTKWo0=
|
||||||
@ -83,11 +116,26 @@ github.com/container-storage-interface/spec v1.2.0 h1:bD9KIVgaVKKkQ/UbVUY9kCaH/C
|
|||||||
github.com/container-storage-interface/spec v1.2.0/go.mod h1:6URME8mwIBbpVyZV93Ce5St17xBiQJQY67NDsuohiy4=
|
github.com/container-storage-interface/spec v1.2.0/go.mod h1:6URME8mwIBbpVyZV93Ce5St17xBiQJQY67NDsuohiy4=
|
||||||
github.com/container-storage-interface/spec v1.3.0 h1:wMH4UIoWnK/TXYw8mbcIHgZmB6kHOeIsYsiaTJwa6bc=
|
github.com/container-storage-interface/spec v1.3.0 h1:wMH4UIoWnK/TXYw8mbcIHgZmB6kHOeIsYsiaTJwa6bc=
|
||||||
github.com/container-storage-interface/spec v1.3.0/go.mod h1:6URME8mwIBbpVyZV93Ce5St17xBiQJQY67NDsuohiy4=
|
github.com/container-storage-interface/spec v1.3.0/go.mod h1:6URME8mwIBbpVyZV93Ce5St17xBiQJQY67NDsuohiy4=
|
||||||
|
github.com/containerd/cgroups v0.0.0-20200531161412-0dbf7f05ba59/go.mod h1:pA0z1pT8KYB3TCXK/ocprsh7MAkoW8bZVzPdih9snmM=
|
||||||
github.com/containerd/console v0.0.0-20170925154832-84eeaae905fa/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw=
|
github.com/containerd/console v0.0.0-20170925154832-84eeaae905fa/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw=
|
||||||
|
github.com/containerd/console v0.0.0-20180822173158-c12b1e7919c1/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw=
|
||||||
|
github.com/containerd/console v1.0.0/go.mod h1:8Pf4gM6VEbTNRIT26AyyU7hxdQU3MvAvxVI0sc00XBE=
|
||||||
github.com/containerd/containerd v1.0.2/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
|
github.com/containerd/containerd v1.0.2/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
|
||||||
|
github.com/containerd/containerd v1.3.2/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
|
||||||
|
github.com/containerd/containerd v1.3.3/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
|
||||||
|
github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y=
|
||||||
|
github.com/containerd/fifo v0.0.0-20190226154929-a9fb20d87448/go.mod h1:ODA38xgv3Kuk8dQz2ZQXpnv/UZZUHUCL7pnLehbXgQI=
|
||||||
|
github.com/containerd/go-runc v0.0.0-20180907222934-5a6d9f37cfa3/go.mod h1:IV7qH3hrUgRmyYrtgEeGWJfWbgcHL9CSRruz2Vqcph0=
|
||||||
|
github.com/containerd/ttrpc v0.0.0-20190828154514-0e0f228740de/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o=
|
||||||
|
github.com/containerd/ttrpc v1.0.0/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o=
|
||||||
|
github.com/containerd/typeurl v0.0.0-20180627222232-a93fcdb778cd/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc=
|
||||||
github.com/containerd/typeurl v0.0.0-20190228175220-2a93cfde8c20/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc=
|
github.com/containerd/typeurl v0.0.0-20190228175220-2a93cfde8c20/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc=
|
||||||
|
github.com/containerd/typeurl v1.0.0/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc=
|
||||||
github.com/containernetworking/cni v0.7.1/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY=
|
github.com/containernetworking/cni v0.7.1/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY=
|
||||||
|
github.com/containernetworking/cni v0.8.0/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY=
|
||||||
github.com/coredns/corefile-migration v1.0.6/go.mod h1:OFwBp/Wc9dJt5cAZzHWMNhK1r5L0p0jDwIBc6j8NC8E=
|
github.com/coredns/corefile-migration v1.0.6/go.mod h1:OFwBp/Wc9dJt5cAZzHWMNhK1r5L0p0jDwIBc6j8NC8E=
|
||||||
|
github.com/coredns/corefile-migration v1.0.10/go.mod h1:RMy/mXdeDlYwzt0vdMEJvT2hGJ2I86/eO0UdXmH9XNI=
|
||||||
|
github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk=
|
||||||
github.com/coreos/etcd v3.3.10+incompatible h1:jFneRYjIvLMLhDLCzuTuU4rSJUjRplcJQ7pD7MnhC04=
|
github.com/coreos/etcd v3.3.10+incompatible h1:jFneRYjIvLMLhDLCzuTuU4rSJUjRplcJQ7pD7MnhC04=
|
||||||
github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
|
github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
|
||||||
github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk=
|
github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk=
|
||||||
@ -100,10 +148,16 @@ github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7
|
|||||||
github.com/coreos/go-systemd v0.0.0-20181012123002-c6f51f82210d/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
|
github.com/coreos/go-systemd v0.0.0-20181012123002-c6f51f82210d/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
|
||||||
github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e h1:Wf6HqHfScWJN9/ZjdUKyjop4mf3Qdd+1TvvltAvM3m8=
|
github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e h1:Wf6HqHfScWJN9/ZjdUKyjop4mf3Qdd+1TvvltAvM3m8=
|
||||||
github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
|
github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
|
||||||
|
github.com/coreos/go-systemd/v22 v22.0.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk=
|
||||||
|
github.com/coreos/go-systemd/v22 v22.1.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk=
|
||||||
github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
|
github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
|
||||||
github.com/coreos/pkg v0.0.0-20180108230652-97fdf19511ea h1:n2Ltr3SrfQlf/9nOna1DoGKxLx3qTSI8Ttl6Xrqp6mw=
|
github.com/coreos/pkg v0.0.0-20180108230652-97fdf19511ea h1:n2Ltr3SrfQlf/9nOna1DoGKxLx3qTSI8Ttl6Xrqp6mw=
|
||||||
github.com/coreos/pkg v0.0.0-20180108230652-97fdf19511ea/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
|
github.com/coreos/pkg v0.0.0-20180108230652-97fdf19511ea/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
|
||||||
|
github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f h1:lBNOc5arjvs8E5mO2tbpBpLoyyu8B6e44T7hJy6potg=
|
||||||
|
github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
|
||||||
github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE=
|
github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE=
|
||||||
|
github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
|
||||||
|
github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
|
||||||
github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY=
|
github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY=
|
||||||
github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4=
|
github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4=
|
||||||
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=
|
||||||
@ -112,16 +166,21 @@ github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs
|
|||||||
github.com/daviddengcn/go-colortext v0.0.0-20160507010035-511bcaf42ccd/go.mod h1:dv4zxwHi5C/8AeI+4gX4dCWOIvNi7I6JCSX0HvlKPgE=
|
github.com/daviddengcn/go-colortext v0.0.0-20160507010035-511bcaf42ccd/go.mod h1:dv4zxwHi5C/8AeI+4gX4dCWOIvNi7I6JCSX0HvlKPgE=
|
||||||
github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM=
|
github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM=
|
||||||
github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
|
github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
|
||||||
|
github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no=
|
||||||
github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E=
|
github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E=
|
||||||
|
github.com/docker/distribution v2.7.1-0.20190205005809-0d3efadf0154+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
|
||||||
github.com/docker/distribution v2.7.1+incompatible h1:a5mlkVzth6W5A4fOsS3D2EO5BUmsJpcB+cRlLU7cSug=
|
github.com/docker/distribution v2.7.1+incompatible h1:a5mlkVzth6W5A4fOsS3D2EO5BUmsJpcB+cRlLU7cSug=
|
||||||
github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
|
github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
|
||||||
github.com/docker/docker v0.7.3-0.20190327010347-be7ac8be2ae0/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
|
github.com/docker/docker v0.7.3-0.20190327010347-be7ac8be2ae0/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
|
||||||
|
github.com/docker/docker v1.4.2-0.20200309214505-aa6a9891b09c/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
|
||||||
github.com/docker/go-connections v0.3.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec=
|
github.com/docker/go-connections v0.3.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec=
|
||||||
|
github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec=
|
||||||
github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
|
github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
|
||||||
github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
|
github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
|
||||||
github.com/docker/libnetwork v0.8.0-dev.2.0.20190925143933-c8a5fca4a652/go.mod h1:93m0aTqz6z+g32wla4l4WxTrdtvBRmVzYRkYvasA5Z8=
|
github.com/docker/libnetwork v0.8.0-dev.2.0.20190925143933-c8a5fca4a652/go.mod h1:93m0aTqz6z+g32wla4l4WxTrdtvBRmVzYRkYvasA5Z8=
|
||||||
github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96 h1:cenwrSVm+Z7QLSV/BsnenAOcDXdX4cMv4wP0B/5QbPg=
|
github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96 h1:cenwrSVm+Z7QLSV/BsnenAOcDXdX4cMv4wP0B/5QbPg=
|
||||||
github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM=
|
github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM=
|
||||||
|
github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE=
|
||||||
github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
|
github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
|
||||||
github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo=
|
github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo=
|
||||||
github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
|
github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
|
||||||
@ -131,13 +190,17 @@ github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633 h1:H2pdYOb3KQ1
|
|||||||
github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
|
github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
|
||||||
github.com/emicklei/go-restful v2.9.5+incompatible h1:spTtZBk5DYEvbxMVutUuTyh1Ao2r4iyvLdACqsl/Ljk=
|
github.com/emicklei/go-restful v2.9.5+incompatible h1:spTtZBk5DYEvbxMVutUuTyh1Ao2r4iyvLdACqsl/Ljk=
|
||||||
github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
|
github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
|
||||||
|
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/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/euank/go-kmsg-parser v2.0.0+incompatible/go.mod h1:MhmAMZ8V4CYH4ybgdRwPr2TU5ThnS43puaKEMpja1uw=
|
github.com/euank/go-kmsg-parser v2.0.0+incompatible/go.mod h1:MhmAMZ8V4CYH4ybgdRwPr2TU5ThnS43puaKEMpja1uw=
|
||||||
github.com/evanphx/json-patch v4.2.0+incompatible h1:fUDGZCv/7iAN7u0puUVhvKCcsR6vRfwrJatElLBEf0I=
|
github.com/evanphx/json-patch v4.2.0+incompatible h1:fUDGZCv/7iAN7u0puUVhvKCcsR6vRfwrJatElLBEf0I=
|
||||||
github.com/evanphx/json-patch v4.2.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
|
github.com/evanphx/json-patch v4.2.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
|
||||||
github.com/evanphx/json-patch v4.5.0+incompatible h1:ouOWdg56aJriqS0huScTkVXPC5IcNrDCXZ6OoTAWu7M=
|
github.com/evanphx/json-patch v4.5.0+incompatible h1:ouOWdg56aJriqS0huScTkVXPC5IcNrDCXZ6OoTAWu7M=
|
||||||
github.com/evanphx/json-patch v4.5.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
|
github.com/evanphx/json-patch v4.5.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
|
||||||
|
github.com/evanphx/json-patch v4.9.0+incompatible h1:kLcOMZeuLAJvL2BPWLMIj5oaZQobrkAqrL+WFZwQses=
|
||||||
|
github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
|
||||||
github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d/go.mod h1:ZZMPRZwes7CROmyNKgQzC3XPs6L/G2EJLHddWejkmf4=
|
github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d/go.mod h1:ZZMPRZwes7CROmyNKgQzC3XPs6L/G2EJLHddWejkmf4=
|
||||||
github.com/fatih/camelcase v1.0.0 h1:hxNvNX/xYBp0ovncs8WyWZrOrpBNub/JfaMvbURyft8=
|
github.com/fatih/camelcase v1.0.0 h1:hxNvNX/xYBp0ovncs8WyWZrOrpBNub/JfaMvbURyft8=
|
||||||
github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc=
|
github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc=
|
||||||
@ -147,6 +210,8 @@ github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI
|
|||||||
github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k=
|
github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k=
|
||||||
github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I=
|
github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I=
|
||||||
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 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4=
|
||||||
|
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
|
||||||
github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
|
github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
|
||||||
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
|
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
|
||||||
github.com/gliderlabs/ssh v0.1.1/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0=
|
github.com/gliderlabs/ssh v0.1.1/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0=
|
||||||
@ -155,6 +220,8 @@ github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0
|
|||||||
github.com/go-acme/lego v2.5.0+incompatible/go.mod h1:yzMNe9CasVUhkquNvti5nAtPmG94USbYxYrZfTkIn0M=
|
github.com/go-acme/lego v2.5.0+incompatible/go.mod h1:yzMNe9CasVUhkquNvti5nAtPmG94USbYxYrZfTkIn0M=
|
||||||
github.com/go-bindata/go-bindata v3.1.1+incompatible/go.mod h1:xK8Dsgwmeed+BBsSy2XTopBn/8uK2HWuGSnA11C3Joo=
|
github.com/go-bindata/go-bindata v3.1.1+incompatible/go.mod h1:xK8Dsgwmeed+BBsSy2XTopBn/8uK2HWuGSnA11C3Joo=
|
||||||
github.com/go-critic/go-critic v0.3.5-0.20190526074819-1df300866540/go.mod h1:+sE8vrLDS2M0pZkBk0wy6+nLdKexVDrl/jBqQOTDThA=
|
github.com/go-critic/go-critic v0.3.5-0.20190526074819-1df300866540/go.mod h1:+sE8vrLDS2M0pZkBk0wy6+nLdKexVDrl/jBqQOTDThA=
|
||||||
|
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
|
||||||
|
github.com/go-ini/ini v1.9.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8=
|
||||||
github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
|
github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
|
||||||
github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
|
github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
|
||||||
github.com/go-lintpack/lintpack v0.5.2/go.mod h1:NwZuYi2nUHho8XEIZ6SIxihrnPoqBTDqfpXvXAN0sXM=
|
github.com/go-lintpack/lintpack v0.5.2/go.mod h1:NwZuYi2nUHho8XEIZ6SIxihrnPoqBTDqfpXvXAN0sXM=
|
||||||
@ -224,6 +291,7 @@ github.com/go-toolsmith/strparse v1.0.0/go.mod h1:YI2nUKP9YGZnL/L1/DLFBfixrcjslW
|
|||||||
github.com/go-toolsmith/typep v1.0.0/go.mod h1:JSQCQMUPdRlMZFswiq3TGpNp1GMktqkR2Ns5AIQkATU=
|
github.com/go-toolsmith/typep v1.0.0/go.mod h1:JSQCQMUPdRlMZFswiq3TGpNp1GMktqkR2Ns5AIQkATU=
|
||||||
github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8=
|
github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8=
|
||||||
github.com/godbus/dbus v0.0.0-20181101234600-2ff6f7ffd60f/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw=
|
github.com/godbus/dbus v0.0.0-20181101234600-2ff6f7ffd60f/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw=
|
||||||
|
github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
|
||||||
github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
|
github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
|
||||||
github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4=
|
github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4=
|
||||||
github.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls=
|
github.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls=
|
||||||
@ -235,6 +303,9 @@ github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903 h1:LbsanbbD6LieF
|
|||||||
github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
|
github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
|
||||||
github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef h1:veQD95Isof8w9/WXiA+pa3tz3fJXkt5B7QaRBrM62gk=
|
github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef h1:veQD95Isof8w9/WXiA+pa3tz3fJXkt5B7QaRBrM62gk=
|
||||||
github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
|
github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
|
||||||
|
github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
|
||||||
|
github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7 h1:5ZkaAPbicIKTF2I64qf5Fh8Aa83Q/dnOafMYV0OMwjA=
|
||||||
|
github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
|
||||||
github.com/golang/mock v1.0.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
|
github.com/golang/mock v1.0.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
|
||||||
github.com/golang/mock v1.1.1 h1:G5FRp8JnTd7RQH5kemVNlMeyXQAztQ3mOWV95KxsXH8=
|
github.com/golang/mock v1.1.1 h1:G5FRp8JnTd7RQH5kemVNlMeyXQAztQ3mOWV95KxsXH8=
|
||||||
github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
|
github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
|
||||||
@ -249,6 +320,7 @@ github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y
|
|||||||
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
||||||
github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs=
|
github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs=
|
||||||
github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
||||||
|
github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
|
||||||
github.com/golang/protobuf v1.3.5 h1:F768QJ1E9tib+q5Sc8MkdJi1RxLTbRcTf8LJV56aRls=
|
github.com/golang/protobuf v1.3.5 h1:F768QJ1E9tib+q5Sc8MkdJi1RxLTbRcTf8LJV56aRls=
|
||||||
github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk=
|
github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk=
|
||||||
github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
|
github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
|
||||||
@ -258,6 +330,8 @@ github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:W
|
|||||||
github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
|
github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
|
||||||
github.com/golang/protobuf v1.4.1 h1:ZFgWrT+bLgsYPirOnRfKLYJLvssAegOj/hgyMFdJZe0=
|
github.com/golang/protobuf v1.4.1 h1:ZFgWrT+bLgsYPirOnRfKLYJLvssAegOj/hgyMFdJZe0=
|
||||||
github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=
|
github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=
|
||||||
|
github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0=
|
||||||
|
github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
|
||||||
github.com/golangci/check v0.0.0-20180506172741-cfe4005ccda2/go.mod h1:k9Qvh+8juN+UKMCS/3jFtGICgW8O96FVaZsaxdzDkR4=
|
github.com/golangci/check v0.0.0-20180506172741-cfe4005ccda2/go.mod h1:k9Qvh+8juN+UKMCS/3jFtGICgW8O96FVaZsaxdzDkR4=
|
||||||
github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a/go.mod h1:ryS0uhF+x9jgbj/N71xsEqODy9BN81/GonCZiOzirOk=
|
github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a/go.mod h1:ryS0uhF+x9jgbj/N71xsEqODy9BN81/GonCZiOzirOk=
|
||||||
github.com/golangci/errcheck v0.0.0-20181223084120-ef45e06d44b6/go.mod h1:DbHgvLiFKX1Sh2T1w8Q/h4NAI8MHIpzCdnBUDTXU3I0=
|
github.com/golangci/errcheck v0.0.0-20181223084120-ef45e06d44b6/go.mod h1:DbHgvLiFKX1Sh2T1w8Q/h4NAI8MHIpzCdnBUDTXU3I0=
|
||||||
@ -282,6 +356,7 @@ github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Z
|
|||||||
github.com/google/btree v1.0.0 h1:0udJVsspx3VBr5FwtLhQQtuAsVc79tTq0ocGIPAU6qo=
|
github.com/google/btree v1.0.0 h1:0udJVsspx3VBr5FwtLhQQtuAsVc79tTq0ocGIPAU6qo=
|
||||||
github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
|
github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
|
||||||
github.com/google/cadvisor v0.35.0/go.mod h1:1nql6U13uTHaLYB8rLS5x9IJc2qT6Xd/Tr1sTX6NE48=
|
github.com/google/cadvisor v0.35.0/go.mod h1:1nql6U13uTHaLYB8rLS5x9IJc2qT6Xd/Tr1sTX6NE48=
|
||||||
|
github.com/google/cadvisor v0.37.0/go.mod h1:OhDE+goNVel0eGY8mR7Ifq1QUI1in5vJBIgIpcajK/I=
|
||||||
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
|
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
|
||||||
github.com/google/go-cmp v0.3.0 h1:crn/baboCvb5fXaQ0IJ1SGTsTVrWpDsCWC8EGETZijY=
|
github.com/google/go-cmp v0.3.0 h1:crn/baboCvb5fXaQ0IJ1SGTsTVrWpDsCWC8EGETZijY=
|
||||||
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
||||||
@ -297,22 +372,28 @@ github.com/google/gofuzz v1.1.0 h1:Hsa8mG0dQ46ij8Sl2AYJDUv1oA9/d6Vk+3LG99Oe02g=
|
|||||||
github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
|
github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
|
||||||
github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
|
github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
|
||||||
github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
|
github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
|
||||||
|
github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
|
||||||
|
github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
|
||||||
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
|
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
|
||||||
github.com/google/uuid v1.0.0 h1:b4Gk+7WdP/d3HZH8EJsZpvV7EtDOgaZLtnaNGIu1adA=
|
github.com/google/uuid v1.0.0 h1:b4Gk+7WdP/d3HZH8EJsZpvV7EtDOgaZLtnaNGIu1adA=
|
||||||
github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||||
github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY=
|
github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY=
|
||||||
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||||
github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
|
github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
|
||||||
|
github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
|
||||||
github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d h1:7XGaL1e6bYS1yIonGp9761ExpPPV1ui0SAC59Yube9k=
|
github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d h1:7XGaL1e6bYS1yIonGp9761ExpPPV1ui0SAC59Yube9k=
|
||||||
github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY=
|
github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY=
|
||||||
github.com/googleapis/gnostic v0.1.0 h1:rVsPeBmXbYv4If/cumu1AzZPwV58q433hvONV1UEZoI=
|
github.com/googleapis/gnostic v0.1.0 h1:rVsPeBmXbYv4If/cumu1AzZPwV58q433hvONV1UEZoI=
|
||||||
github.com/googleapis/gnostic v0.1.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY=
|
github.com/googleapis/gnostic v0.1.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY=
|
||||||
github.com/googleapis/gnostic v0.2.0 h1:l6N3VoaVzTncYYW+9yOz2LJJammFZGBO13sqgEhpy9g=
|
github.com/googleapis/gnostic v0.2.0 h1:l6N3VoaVzTncYYW+9yOz2LJJammFZGBO13sqgEhpy9g=
|
||||||
github.com/googleapis/gnostic v0.2.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY=
|
github.com/googleapis/gnostic v0.2.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY=
|
||||||
|
github.com/googleapis/gnostic v0.4.1 h1:DLJCy1n/vrD4HPjOvYcT8aYQXpPIzoRZONaYwyycI+I=
|
||||||
|
github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg=
|
||||||
github.com/gophercloud/gophercloud v0.1.0/go.mod h1:vxM41WHh5uqHVBMZHzuwNOHh8XEoIEcSTewFxm1c5g8=
|
github.com/gophercloud/gophercloud v0.1.0/go.mod h1:vxM41WHh5uqHVBMZHzuwNOHh8XEoIEcSTewFxm1c5g8=
|
||||||
github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
|
github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
|
||||||
github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg=
|
github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg=
|
||||||
github.com/gorilla/mux v1.7.0/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
|
github.com/gorilla/mux v1.7.0/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
|
||||||
|
github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
|
||||||
github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c h1:Lh2aW+HnU2Nbe1gqD9SOJLJxW1jBMmQOktN2acDyJk8=
|
github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c h1:Lh2aW+HnU2Nbe1gqD9SOJLJxW1jBMmQOktN2acDyJk8=
|
||||||
github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
|
github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
|
||||||
github.com/gorilla/websocket v1.4.0 h1:WDFjx/TMzVgy9VdMMQi2K2Emtwi2QcUQsztZ/zLaH/Q=
|
github.com/gorilla/websocket v1.4.0 h1:WDFjx/TMzVgy9VdMMQi2K2Emtwi2QcUQsztZ/zLaH/Q=
|
||||||
@ -320,10 +401,12 @@ github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoA
|
|||||||
github.com/gostaticanalysis/analysisutil v0.0.0-20190318220348-4088753ea4d3/go.mod h1:eEOZF4jCKGi+aprrirO9e7WKB3beBRtWgqGunKl6pKE=
|
github.com/gostaticanalysis/analysisutil v0.0.0-20190318220348-4088753ea4d3/go.mod h1:eEOZF4jCKGi+aprrirO9e7WKB3beBRtWgqGunKl6pKE=
|
||||||
github.com/gostaticanalysis/analysisutil v0.0.3/go.mod h1:eEOZF4jCKGi+aprrirO9e7WKB3beBRtWgqGunKl6pKE=
|
github.com/gostaticanalysis/analysisutil v0.0.3/go.mod h1:eEOZF4jCKGi+aprrirO9e7WKB3beBRtWgqGunKl6pKE=
|
||||||
github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA=
|
github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA=
|
||||||
|
github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=
|
||||||
github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4 h1:z53tR0945TRRQO/fLEVPI6SMv7ZflF0TEaTAoU7tOzg=
|
github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4 h1:z53tR0945TRRQO/fLEVPI6SMv7ZflF0TEaTAoU7tOzg=
|
||||||
github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=
|
github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=
|
||||||
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 h1:Ovs26xHkKqVztRpIrF/92BcuyuQ/YW4NSIpoGtfXNho=
|
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 h1:Ovs26xHkKqVztRpIrF/92BcuyuQ/YW4NSIpoGtfXNho=
|
||||||
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk=
|
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk=
|
||||||
|
github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=
|
||||||
github.com/grpc-ecosystem/grpc-gateway v1.9.5 h1:UImYN5qQ8tuGpGE16ZmjvcTtTw24zw1QAp/SlnNrZhI=
|
github.com/grpc-ecosystem/grpc-gateway v1.9.5 h1:UImYN5qQ8tuGpGE16ZmjvcTtTw24zw1QAp/SlnNrZhI=
|
||||||
github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=
|
github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=
|
||||||
github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4=
|
github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4=
|
||||||
@ -338,14 +421,17 @@ github.com/heketi/heketi v9.0.1-0.20190917153846-c2e2a4ab7ab9+incompatible/go.mo
|
|||||||
github.com/heketi/tests v0.0.0-20151005000721-f3775cbcefd6/go.mod h1:xGMAM8JLi7UkZt1i4FQeQy0R2T8GLUwQhOP5M1gBhy4=
|
github.com/heketi/tests v0.0.0-20151005000721-f3775cbcefd6/go.mod h1:xGMAM8JLi7UkZt1i4FQeQy0R2T8GLUwQhOP5M1gBhy4=
|
||||||
github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI=
|
github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI=
|
||||||
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/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
|
||||||
github.com/imdario/mergo v0.3.5 h1:JboBksRwiiAJWvIYJVo46AfV+IAIKZpfrSzVKj42R4Q=
|
github.com/imdario/mergo v0.3.5 h1:JboBksRwiiAJWvIYJVo46AfV+IAIKZpfrSzVKj42R4Q=
|
||||||
github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
|
github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
|
||||||
github.com/imdario/mergo v0.3.9 h1:UauaLniWCFHWd+Jp9oCEkTBj8VO/9DKg3PV3VCNMDIg=
|
github.com/imdario/mergo v0.3.9 h1:UauaLniWCFHWd+Jp9oCEkTBj8VO/9DKg3PV3VCNMDIg=
|
||||||
github.com/imdario/mergo v0.3.9/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
|
github.com/imdario/mergo v0.3.9/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
|
||||||
github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM=
|
github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM=
|
||||||
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
|
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
|
||||||
|
github.com/ishidawataru/sctp v0.0.0-20190723014705-7c296d48a2b5/go.mod h1:DM4VvS+hD/kDi1U1QsX2fnZowwBhqD0Dk3bRPKF/Oc8=
|
||||||
github.com/jellevandenhooff/dkim v0.0.0-20150330215556-f50fe3d243e1/go.mod h1:E0B/fFc00Y+Rasa88328GlI/XbtyysCtTHZS8h7IrBU=
|
github.com/jellevandenhooff/dkim v0.0.0-20150330215556-f50fe3d243e1/go.mod h1:E0B/fFc00Y+Rasa88328GlI/XbtyysCtTHZS8h7IrBU=
|
||||||
github.com/jimstudt/http-authentication v0.0.0-20140401203705-3eca13d6893a/go.mod h1:wK6yTYYcgjHE1Z1QtXACPDjcFJyBskHEdagmnq3vsP8=
|
github.com/jimstudt/http-authentication v0.0.0-20140401203705-3eca13d6893a/go.mod h1:wK6yTYYcgjHE1Z1QtXACPDjcFJyBskHEdagmnq3vsP8=
|
||||||
|
github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k=
|
||||||
github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k=
|
github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k=
|
||||||
github.com/jonboulle/clockwork v0.1.0 h1:VKV+ZcuP6l3yW9doeqz6ziZGgcynBVQO+obU0+0hcPo=
|
github.com/jonboulle/clockwork v0.1.0 h1:VKV+ZcuP6l3yW9doeqz6ziZGgcynBVQO+obU0+0hcPo=
|
||||||
github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo=
|
github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo=
|
||||||
@ -353,9 +439,10 @@ github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCV
|
|||||||
github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
|
github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
|
||||||
github.com/json-iterator/go v1.1.8 h1:QiWkFLKq0T7mpzwOTu6BzNDbfTE8OLrYhVKYMLF46Ok=
|
github.com/json-iterator/go v1.1.8 h1:QiWkFLKq0T7mpzwOTu6BzNDbfTE8OLrYhVKYMLF46Ok=
|
||||||
github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
|
github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
|
||||||
github.com/json-iterator/go v1.1.9 h1:9yzud/Ht36ygwatGx56VwCZtlI/2AD15T1X2sjSuGns=
|
github.com/json-iterator/go v1.1.10 h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr68=
|
||||||
github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
|
github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
|
||||||
github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
|
github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
|
||||||
|
github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk=
|
||||||
github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
|
github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
|
||||||
github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
|
github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
|
||||||
github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes=
|
github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes=
|
||||||
@ -370,9 +457,14 @@ github.com/klauspost/cpuid v0.0.0-20180405133222-e7e905edc00e/go.mod h1:Pj4uuM52
|
|||||||
github.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek=
|
github.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek=
|
||||||
github.com/konsorten/go-windows-terminal-sequences v1.0.1 h1:mweAR1A6xJ3oS2pRaGiHgQ4OO8tzTaLawm8vnODuwDk=
|
github.com/konsorten/go-windows-terminal-sequences v1.0.1 h1:mweAR1A6xJ3oS2pRaGiHgQ4OO8tzTaLawm8vnODuwDk=
|
||||||
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
|
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
|
||||||
|
github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
|
||||||
|
github.com/konsorten/go-windows-terminal-sequences v1.0.3 h1:CE8S1cTafDpPvMhIxNJKvHsGVBgn1xWYf1NbHQhywc8=
|
||||||
|
github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
|
||||||
github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
|
github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
|
||||||
github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=
|
github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=
|
||||||
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
||||||
|
github.com/kr/pretty v0.2.0 h1:s5hAObm+yFO5uHYt5dYjxi2rXrsnmRpJx4OYvIWUaQs=
|
||||||
|
github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
|
||||||
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/pty v1.1.3/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
|
github.com/kr/pty v1.1.3/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
|
||||||
github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA=
|
github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA=
|
||||||
@ -380,6 +472,8 @@ 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/kubernetes-csi/csi-lib-utils v0.7.0 h1:t1cS7HTD7z5D7h9iAdjWuHtMxJPb9s1fIv34rxytzqs=
|
github.com/kubernetes-csi/csi-lib-utils v0.7.0 h1:t1cS7HTD7z5D7h9iAdjWuHtMxJPb9s1fIv34rxytzqs=
|
||||||
github.com/kubernetes-csi/csi-lib-utils v0.7.0/go.mod h1:bze+2G9+cmoHxN6+WyG1qT4MDxgZJMLGwc7V4acPNm0=
|
github.com/kubernetes-csi/csi-lib-utils v0.7.0/go.mod h1:bze+2G9+cmoHxN6+WyG1qT4MDxgZJMLGwc7V4acPNm0=
|
||||||
|
github.com/kubernetes-csi/csi-lib-utils v0.9.0 h1:TbuDmxoVqM+fvVkzG/7sShyX/8jUln0ElLHuETcsQJI=
|
||||||
|
github.com/kubernetes-csi/csi-lib-utils v0.9.0/go.mod h1:8E2jVUX9j3QgspwHXa6LwyN7IHQDjW9jX3kwoWnSC+M=
|
||||||
github.com/kubernetes-csi/csi-test v2.0.0+incompatible/go.mod h1:YxJ4UiuPWIhMBkxUKY5c267DyA0uDZ/MtAimhx/2TA0=
|
github.com/kubernetes-csi/csi-test v2.0.0+incompatible/go.mod h1:YxJ4UiuPWIhMBkxUKY5c267DyA0uDZ/MtAimhx/2TA0=
|
||||||
github.com/kubernetes-csi/external-snapshotter/v2 v2.0.0-20200617021606-4800ca72d403 h1:FMqYb5aUkq8JLzdm5m/abJPoclqdo9k446E4mNU7qsE=
|
github.com/kubernetes-csi/external-snapshotter/v2 v2.0.0-20200617021606-4800ca72d403 h1:FMqYb5aUkq8JLzdm5m/abJPoclqdo9k446E4mNU7qsE=
|
||||||
github.com/kubernetes-csi/external-snapshotter/v2 v2.0.0-20200617021606-4800ca72d403/go.mod h1:ArR2bKKq4dEfoRwRH69kt/xYOliLUlaqCZ+LM1teU8Q=
|
github.com/kubernetes-csi/external-snapshotter/v2 v2.0.0-20200617021606-4800ca72d403/go.mod h1:ArR2bKKq4dEfoRwRH69kt/xYOliLUlaqCZ+LM1teU8Q=
|
||||||
@ -413,18 +507,24 @@ github.com/mattn/go-shellwords v1.0.5/go.mod h1:3xCvwCdWdlDJUrvuMn7Wuy9eWs4pE8vq
|
|||||||
github.com/mattn/goveralls v0.0.2/go.mod h1:8d1ZMHsd7fW6IRPKQh46F2WRpyib5/X4FOpevwGNQEw=
|
github.com/mattn/goveralls v0.0.2/go.mod h1:8d1ZMHsd7fW6IRPKQh46F2WRpyib5/X4FOpevwGNQEw=
|
||||||
github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU=
|
github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU=
|
||||||
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
|
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
|
||||||
|
github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 h1:I0XW9+e1XWDxdcEniV4rQAIOPUGDq67JSCiRCgGCZLI=
|
||||||
|
github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4=
|
||||||
github.com/mesos/mesos-go v0.0.9/go.mod h1:kPYCMQ9gsOXVAle1OsoY4I1+9kPu8GHkf88aV59fDr4=
|
github.com/mesos/mesos-go v0.0.9/go.mod h1:kPYCMQ9gsOXVAle1OsoY4I1+9kPu8GHkf88aV59fDr4=
|
||||||
github.com/mholt/certmagic v0.6.2-0.20190624175158-6a42ef9fe8c2/go.mod h1:g4cOPxcjV0oFq3qwpjSA30LReKD8AoIfwAY9VvG35NY=
|
github.com/mholt/certmagic v0.6.2-0.20190624175158-6a42ef9fe8c2/go.mod h1:g4cOPxcjV0oFq3qwpjSA30LReKD8AoIfwAY9VvG35NY=
|
||||||
github.com/miekg/dns v1.1.3/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
|
github.com/miekg/dns v1.1.3/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
|
||||||
github.com/miekg/dns v1.1.4/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
|
github.com/miekg/dns v1.1.4/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
|
||||||
github.com/mindprince/gonvml v0.0.0-20190828220739-9ebdce4bb989/go.mod h1:2eu9pRWp8mo84xCg6KswZ+USQHjwgRhNp06sozOdsTY=
|
github.com/mindprince/gonvml v0.0.0-20190828220739-9ebdce4bb989/go.mod h1:2eu9pRWp8mo84xCg6KswZ+USQHjwgRhNp06sozOdsTY=
|
||||||
github.com/mistifyio/go-zfs v2.1.1+incompatible/go.mod h1:8AuVvqP/mXw1px98n46wfvcGfQ4ci2FwoAjKYxuo3Z4=
|
github.com/mistifyio/go-zfs v2.1.1+incompatible/go.mod h1:8AuVvqP/mXw1px98n46wfvcGfQ4ci2FwoAjKYxuo3Z4=
|
||||||
|
github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible/go.mod h1:8AuVvqP/mXw1px98n46wfvcGfQ4ci2FwoAjKYxuo3Z4=
|
||||||
github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
|
github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
|
||||||
github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
|
github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
|
||||||
github.com/mitchellh/go-ps v0.0.0-20170309133038-4fdf99ab2936/go.mod h1:r1VsdOzOPt1ZSrGZWFoNhsAedKnEd6r9Np1+5blZCWk=
|
github.com/mitchellh/go-ps v0.0.0-20170309133038-4fdf99ab2936/go.mod h1:r1VsdOzOPt1ZSrGZWFoNhsAedKnEd6r9Np1+5blZCWk=
|
||||||
github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo=
|
github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo=
|
||||||
github.com/mitchellh/mapstructure v0.0.0-20180220230111-00c29f56e238/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
|
github.com/mitchellh/mapstructure v0.0.0-20180220230111-00c29f56e238/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
|
||||||
github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
|
github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
|
||||||
|
github.com/moby/ipvs v1.0.1/go.mod h1:2pngiyseZbIKXNv7hsKj3O9UEz30c53MT9005gt2hxQ=
|
||||||
|
github.com/moby/sys/mountinfo v0.1.3/go.mod h1:w2t2Avltqx8vE7gX5l+QiBKxODu2TX0+Syr3h52Tw4o=
|
||||||
|
github.com/moby/term v0.0.0-20200312100748-672ec06f55cd/go.mod h1:DdlQx2hp0Ss5/fLikoLlEeIYiATotOjgB//nb973jeo=
|
||||||
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
|
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 h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
|
||||||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
|
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
|
||||||
@ -435,6 +535,7 @@ github.com/mohae/deepcopy v0.0.0-20170603005431-491d3605edfb/go.mod h1:TaXosZuwd
|
|||||||
github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc=
|
github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc=
|
||||||
github.com/mozilla/tls-observatory v0.0.0-20180409132520-8791a200eb40/go.mod h1:SrKMQvPiws7F7iqYp8/TX+IhxCYhzr6N/1yb8cwHsGk=
|
github.com/mozilla/tls-observatory v0.0.0-20180409132520-8791a200eb40/go.mod h1:SrKMQvPiws7F7iqYp8/TX+IhxCYhzr6N/1yb8cwHsGk=
|
||||||
github.com/mrunalp/fileutils v0.0.0-20171103030105-7d4729fb3618/go.mod h1:x8F1gnqOkIEiO4rqoeEEEqQbo7HjGMTvyoq3gej4iT0=
|
github.com/mrunalp/fileutils v0.0.0-20171103030105-7d4729fb3618/go.mod h1:x8F1gnqOkIEiO4rqoeEEEqQbo7HjGMTvyoq3gej4iT0=
|
||||||
|
github.com/mrunalp/fileutils v0.0.0-20200520151820-abd8a0e76976/go.mod h1:x8F1gnqOkIEiO4rqoeEEEqQbo7HjGMTvyoq3gej4iT0=
|
||||||
github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
|
github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
|
||||||
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
|
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
|
||||||
github.com/mvdan/xurls v1.1.0/go.mod h1:tQlNn3BED8bE/15hnSL2HLkDeLWpNPAwtw7wkEq44oU=
|
github.com/mvdan/xurls v1.1.0/go.mod h1:tQlNn3BED8bE/15hnSL2HLkDeLWpNPAwtw7wkEq44oU=
|
||||||
@ -444,6 +545,7 @@ github.com/naoina/go-stringutil v0.1.0/go.mod h1:XJ2SJL9jCtBh+P9q5btrd/Ylo8XwT/h
|
|||||||
github.com/naoina/toml v0.1.1/go.mod h1:NBIhNtsFMo3G2szEBne+bO4gS192HuIYRqfvOWb4i1E=
|
github.com/naoina/toml v0.1.1/go.mod h1:NBIhNtsFMo3G2szEBne+bO4gS192HuIYRqfvOWb4i1E=
|
||||||
github.com/nbutton23/zxcvbn-go v0.0.0-20160627004424-a22cb81b2ecd/go.mod h1:o96djdrsSGy3AWPyBgZMAGfxZNfgntdJG+11KU4QvbU=
|
github.com/nbutton23/zxcvbn-go v0.0.0-20160627004424-a22cb81b2ecd/go.mod h1:o96djdrsSGy3AWPyBgZMAGfxZNfgntdJG+11KU4QvbU=
|
||||||
github.com/nbutton23/zxcvbn-go v0.0.0-20171102151520-eafdab6b0663/go.mod h1:o96djdrsSGy3AWPyBgZMAGfxZNfgntdJG+11KU4QvbU=
|
github.com/nbutton23/zxcvbn-go v0.0.0-20171102151520-eafdab6b0663/go.mod h1:o96djdrsSGy3AWPyBgZMAGfxZNfgntdJG+11KU4QvbU=
|
||||||
|
github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U=
|
||||||
github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo=
|
github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo=
|
||||||
github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
|
github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
|
||||||
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=
|
||||||
@ -461,12 +563,20 @@ github.com/onsi/gomega v1.7.0 h1:XPnZz8VVBHjVsy1vzJmRwIcSwiUO+JFfrv/xGiigmME=
|
|||||||
github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
|
github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
|
||||||
github.com/onsi/gomega v1.7.1 h1:K0jcRCwNQM3vFGh1ppMtDh/+7ApJrjldlX8fA0jDTLQ=
|
github.com/onsi/gomega v1.7.1 h1:K0jcRCwNQM3vFGh1ppMtDh/+7ApJrjldlX8fA0jDTLQ=
|
||||||
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/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s=
|
||||||
github.com/opencontainers/go-digest v1.0.0-rc1 h1:WzifXhOVOEOuFYOJAW6aQqW0TooG2iki3E3Ii+WN7gQ=
|
github.com/opencontainers/go-digest v1.0.0-rc1 h1:WzifXhOVOEOuFYOJAW6aQqW0TooG2iki3E3Ii+WN7gQ=
|
||||||
github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s=
|
github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s=
|
||||||
github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0=
|
github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0=
|
||||||
|
github.com/opencontainers/runc v0.0.0-20190115041553-12f6a991201f/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U=
|
||||||
github.com/opencontainers/runc v1.0.0-rc10/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U=
|
github.com/opencontainers/runc v1.0.0-rc10/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U=
|
||||||
|
github.com/opencontainers/runc v1.0.0-rc90.0.20200616040943-82d2fa4eb069/go.mod h1:3Sm6Dt7OT8z88EbdQqqcRN2oCT54jbi72tT/HqgflT8=
|
||||||
|
github.com/opencontainers/runc v1.0.0-rc91.0.20200707015106-819fcc687efb/go.mod h1:ZuXhqlr4EiRYgDrBDNfSbE4+n9JX4+V107NwAmF7sZA=
|
||||||
github.com/opencontainers/runtime-spec v1.0.0/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
|
github.com/opencontainers/runtime-spec v1.0.0/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
|
||||||
|
github.com/opencontainers/runtime-spec v1.0.2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
|
||||||
|
github.com/opencontainers/runtime-spec v1.0.3-0.20200520003142-237cc4f519e2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
|
||||||
github.com/opencontainers/selinux v1.3.1-0.20190929122143-5215b1806f52/go.mod h1:+BLncwf63G4dgOzykXAxcmnFlUaOlkDdmw/CqsW6pjs=
|
github.com/opencontainers/selinux v1.3.1-0.20190929122143-5215b1806f52/go.mod h1:+BLncwf63G4dgOzykXAxcmnFlUaOlkDdmw/CqsW6pjs=
|
||||||
|
github.com/opencontainers/selinux v1.5.1/go.mod h1:yTcKuYAh6R95iDpefGLQaPaRwJFwyzAJufJyiTt7s0g=
|
||||||
|
github.com/opencontainers/selinux v1.5.2/go.mod h1:yTcKuYAh6R95iDpefGLQaPaRwJFwyzAJufJyiTt7s0g=
|
||||||
github.com/pborman/uuid v1.2.0 h1:J7Q5mO4ysT1dv8hyrUGHb9+ooztCXu1D8MY8DZYsu3g=
|
github.com/pborman/uuid v1.2.0 h1:J7Q5mO4ysT1dv8hyrUGHb9+ooztCXu1D8MY8DZYsu3g=
|
||||||
github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k=
|
github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k=
|
||||||
github.com/pelletier/go-toml v1.1.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
|
github.com/pelletier/go-toml v1.1.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
|
||||||
@ -477,31 +587,39 @@ github.com/pkg/errors v0.8.0 h1:WdK/asTD0HN+q6hsWO3/vpuAkAr+tw6aNJNDFFf0+qw=
|
|||||||
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||||
github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I=
|
github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I=
|
||||||
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||||
|
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
||||||
|
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||||
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/cachecontrol v0.0.0-20171018203845-0dec1b30a021/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA=
|
github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA=
|
||||||
github.com/pquerna/ffjson v0.0.0-20180717144149-af8b230fcd20 h1:7sBb9iOkeq+O7AXlVoH/8zpIcRXX523zMkKKspHjjx8=
|
github.com/pquerna/ffjson v0.0.0-20180717144149-af8b230fcd20 h1:7sBb9iOkeq+O7AXlVoH/8zpIcRXX523zMkKKspHjjx8=
|
||||||
github.com/pquerna/ffjson v0.0.0-20180717144149-af8b230fcd20/go.mod h1:YARuvh7BUWHNhzDq2OM5tzR2RiCcN2D7sapiKyCel/M=
|
github.com/pquerna/ffjson v0.0.0-20180717144149-af8b230fcd20/go.mod h1:YARuvh7BUWHNhzDq2OM5tzR2RiCcN2D7sapiKyCel/M=
|
||||||
github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
|
github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
|
||||||
|
github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso=
|
||||||
github.com/prometheus/client_golang v1.0.0 h1:vrDKnkGzuGvhNAL56c7DBz29ZL+KxnoR0x7enabFceM=
|
github.com/prometheus/client_golang v1.0.0 h1:vrDKnkGzuGvhNAL56c7DBz29ZL+KxnoR0x7enabFceM=
|
||||||
github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo=
|
github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo=
|
||||||
github.com/prometheus/client_golang v1.5.1 h1:bdHYieyGlH+6OLEk2YQha8THib30KP0/yD0YH9m6xcA=
|
github.com/prometheus/client_golang v1.7.1 h1:NTGy1Ja9pByO+xAeH/qiWnLrKtr3hJPNjaVUwnjpdpA=
|
||||||
github.com/prometheus/client_golang v1.5.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU=
|
github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M=
|
||||||
github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910 h1:idejC8f05m9MGOsuEi1ATq9shN03HrxNkD/luQvxCv8=
|
github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910 h1:idejC8f05m9MGOsuEi1ATq9shN03HrxNkD/luQvxCv8=
|
||||||
github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
|
github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
|
||||||
github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
|
github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
|
||||||
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/prometheus/client_model v0.2.0 h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M=
|
github.com/prometheus/client_model v0.2.0 h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M=
|
||||||
github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
|
github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
|
||||||
|
github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro=
|
||||||
|
github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
|
||||||
github.com/prometheus/common v0.4.1 h1:K0MGApIoQvMw27RTdJkPbr3JZ7DNbtxQNyi5STVM6Kw=
|
github.com/prometheus/common v0.4.1 h1:K0MGApIoQvMw27RTdJkPbr3JZ7DNbtxQNyi5STVM6Kw=
|
||||||
github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
|
github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
|
||||||
github.com/prometheus/common v0.9.1 h1:KOMtN28tlbam3/7ZKEYKHhKoJZYYj3gMH4uc62x7X7U=
|
github.com/prometheus/common v0.10.0 h1:RyRA7RzGXQZiW+tGMr7sxa85G1z0yOpM1qq5c8lNawc=
|
||||||
github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4=
|
github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo=
|
||||||
|
github.com/prometheus/procfs v0.0.0-20180125133057-cb4147076ac7/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
|
||||||
github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
|
github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
|
||||||
|
github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
|
||||||
github.com/prometheus/procfs v0.0.2 h1:6LJUbpNm42llc4HRCuvApCSWB/WfhuNo9K98Q9sNGfs=
|
github.com/prometheus/procfs v0.0.2 h1:6LJUbpNm42llc4HRCuvApCSWB/WfhuNo9K98Q9sNGfs=
|
||||||
github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
|
github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
|
||||||
github.com/prometheus/procfs v0.0.8 h1:+fpWZdT24pJBiqJdAwYBjPSk+5YmQzYNPYzQsdzLkt8=
|
github.com/prometheus/procfs v0.1.3 h1:F0+tqvhOksq22sc6iCHF5WGlWjdwj92p0udFh1VFBS8=
|
||||||
github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A=
|
github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU=
|
||||||
|
github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU=
|
||||||
github.com/quasilyte/go-consistent v0.0.0-20190521200055-c6f3937de18c/go.mod h1:5STLWrekHfjyYwxBRVRXNOSewLJ3PWfDJd1VyTS21fI=
|
github.com/quasilyte/go-consistent v0.0.0-20190521200055-c6f3937de18c/go.mod h1:5STLWrekHfjyYwxBRVRXNOSewLJ3PWfDJd1VyTS21fI=
|
||||||
github.com/quobyte/api v0.1.2/go.mod h1:jL7lIHrmqQ7yh05OJ+eEEdHr0u/kmT1Ff9iHd+4H6VI=
|
github.com/quobyte/api v0.1.2/go.mod h1:jL7lIHrmqQ7yh05OJ+eEEdHr0u/kmT1Ff9iHd+4H6VI=
|
||||||
github.com/remyoudompheng/bigfft v0.0.0-20170806203942-52369c62f446/go.mod h1:uYEyJGbgTkfkS4+E/PavXkNJcbFIpEtjt2B0KDQ5+9M=
|
github.com/remyoudompheng/bigfft v0.0.0-20170806203942-52369c62f446/go.mod h1:uYEyJGbgTkfkS4+E/PavXkNJcbFIpEtjt2B0KDQ5+9M=
|
||||||
@ -509,9 +627,10 @@ github.com/robfig/cron v1.1.0/go.mod h1:JGuDeoQd7Z6yL4zQhZ3OPEVHB7fL6Ka6skscFHfm
|
|||||||
github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
|
github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
|
||||||
github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
|
github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
|
||||||
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
|
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
|
||||||
github.com/rubiojr/go-vhd v0.0.0-20160810183302-0bfd3b39853c/go.mod h1:DM5xW0nvfNNm2uytzsvhI3OnX8uzaRAg8UX/CnDqbto=
|
github.com/rubiojr/go-vhd v0.0.0-20200706105327-02e210299021/go.mod h1:DM5xW0nvfNNm2uytzsvhI3OnX8uzaRAg8UX/CnDqbto=
|
||||||
github.com/russross/blackfriday v0.0.0-20170610170232-067529f716f4/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g=
|
github.com/russross/blackfriday v0.0.0-20170610170232-067529f716f4/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g=
|
||||||
github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g=
|
github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g=
|
||||||
|
github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
|
||||||
github.com/ryanuber/go-glob v0.0.0-20170128012129-256dc444b735/go.mod h1:807d1WSdnB0XRJzKNil9Om6lcp/3a0v4qIHxIXzX/Yc=
|
github.com/ryanuber/go-glob v0.0.0-20170128012129-256dc444b735/go.mod h1:807d1WSdnB0XRJzKNil9Om6lcp/3a0v4qIHxIXzX/Yc=
|
||||||
github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0=
|
github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0=
|
||||||
github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo=
|
github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo=
|
||||||
@ -520,6 +639,7 @@ github.com/shirou/gopsutil v0.0.0-20180427012116-c95755e4bcd7/go.mod h1:5b4v6he4
|
|||||||
github.com/shirou/w32 v0.0.0-20160930032740-bb4de0191aa4/go.mod h1:qsXQc7+bwAM3Q1u/4XEfrquwF8Lw7D7y5cD8CuHnfIc=
|
github.com/shirou/w32 v0.0.0-20160930032740-bb4de0191aa4/go.mod h1:qsXQc7+bwAM3Q1u/4XEfrquwF8Lw7D7y5cD8CuHnfIc=
|
||||||
github.com/shurcooL/go v0.0.0-20180423040247-9e1955d9fb6e/go.mod h1:TDJrrUr11Vxrven61rcy3hJMUqaf/CLWYhHNPmT14Lk=
|
github.com/shurcooL/go v0.0.0-20180423040247-9e1955d9fb6e/go.mod h1:TDJrrUr11Vxrven61rcy3hJMUqaf/CLWYhHNPmT14Lk=
|
||||||
github.com/shurcooL/go-goon v0.0.0-20170922171312-37c2f522c041/go.mod h1:N5mDOmsrJOB+vfqUK+7DmDyjhSLIIBnXo9lvZJj3MWQ=
|
github.com/shurcooL/go-goon v0.0.0-20170922171312-37c2f522c041/go.mod h1:N5mDOmsrJOB+vfqUK+7DmDyjhSLIIBnXo9lvZJj3MWQ=
|
||||||
|
github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
|
||||||
github.com/sirupsen/logrus v1.0.5/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc=
|
github.com/sirupsen/logrus v1.0.5/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc=
|
||||||
github.com/sirupsen/logrus v1.0.6/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc=
|
github.com/sirupsen/logrus v1.0.6/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc=
|
||||||
github.com/sirupsen/logrus v1.2.0 h1:juTguoYk5qI21pwyTXY3B3Y5cOTH3ZUyZCg1v/mihuo=
|
github.com/sirupsen/logrus v1.2.0 h1:juTguoYk5qI21pwyTXY3B3Y5cOTH3ZUyZCg1v/mihuo=
|
||||||
@ -527,11 +647,14 @@ github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPx
|
|||||||
github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q=
|
github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q=
|
||||||
github.com/sirupsen/logrus v1.4.2 h1:SPIRibHv4MatM3XXNO2BJeFLZwZ2LvZgfQ5+UNI2im4=
|
github.com/sirupsen/logrus v1.4.2 h1:SPIRibHv4MatM3XXNO2BJeFLZwZ2LvZgfQ5+UNI2im4=
|
||||||
github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
|
github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
|
||||||
|
github.com/sirupsen/logrus v1.6.0 h1:UBcNElsrwanuuMsnGSlYmtmgbb23qDR5dG+6X6Oo89I=
|
||||||
|
github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=
|
||||||
github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
|
github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
|
||||||
github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA=
|
github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA=
|
||||||
github.com/soheilhy/cmux v0.1.4 h1:0HKaf1o97UwFjHH9o5XsHUOF+tqmdA7KEzXLpiyaw0E=
|
github.com/soheilhy/cmux v0.1.4 h1:0HKaf1o97UwFjHH9o5XsHUOF+tqmdA7KEzXLpiyaw0E=
|
||||||
github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM=
|
github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM=
|
||||||
github.com/sourcegraph/go-diff v0.5.1/go.mod h1:j2dHj3m8aZgQO8lMTcTnBcXkRRRqi34cd2MNlA9u1mE=
|
github.com/sourcegraph/go-diff v0.5.1/go.mod h1:j2dHj3m8aZgQO8lMTcTnBcXkRRRqi34cd2MNlA9u1mE=
|
||||||
|
github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
|
||||||
github.com/spf13/afero v1.1.0/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ=
|
github.com/spf13/afero v1.1.0/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ=
|
||||||
github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ=
|
github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ=
|
||||||
github.com/spf13/afero v1.2.2 h1:5jhuqJyZCZf2JRofRvN/nIFgIWNzPa3/Vz8mYylgbWc=
|
github.com/spf13/afero v1.2.2 h1:5jhuqJyZCZf2JRofRvN/nIFgIWNzPa3/Vz8mYylgbWc=
|
||||||
@ -543,6 +666,8 @@ github.com/spf13/cobra v0.0.3 h1:ZlrZ4XsMRm04Fr5pSFxBgfND2EBVa1nLpiy1stUsX/8=
|
|||||||
github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ=
|
github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ=
|
||||||
github.com/spf13/cobra v0.0.5 h1:f0B+LkLX6DtmRH1isoNA9VTtNUK9K8xYd28JNNfOv/s=
|
github.com/spf13/cobra v0.0.5 h1:f0B+LkLX6DtmRH1isoNA9VTtNUK9K8xYd28JNNfOv/s=
|
||||||
github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU=
|
github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU=
|
||||||
|
github.com/spf13/cobra v1.0.0 h1:6m/oheQuQ13N9ks4hubMG6BnvwOeaJrqSPLahSnczz8=
|
||||||
|
github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE=
|
||||||
github.com/spf13/jwalterweatherman v0.0.0-20180109140146-7c0cea34c8ec/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo=
|
github.com/spf13/jwalterweatherman v0.0.0-20180109140146-7c0cea34c8ec/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo=
|
||||||
github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo=
|
github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo=
|
||||||
github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo=
|
github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo=
|
||||||
@ -554,6 +679,7 @@ github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
|
|||||||
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
|
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
|
||||||
github.com/spf13/viper v1.0.2/go.mod h1:A8kyI5cUJhb8N+3pkfONlcEcZbueH6nhAm0Fq7SrnBM=
|
github.com/spf13/viper v1.0.2/go.mod h1:A8kyI5cUJhb8N+3pkfONlcEcZbueH6nhAm0Fq7SrnBM=
|
||||||
github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s=
|
github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s=
|
||||||
|
github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE=
|
||||||
github.com/storageos/go-api v0.0.0-20180912212459-343b3eff91fc/go.mod h1:ZrLn+e0ZuF3Y65PNF6dIwbJPZqfmtCXxFm9ckv0agOY=
|
github.com/storageos/go-api v0.0.0-20180912212459-343b3eff91fc/go.mod h1:ZrLn+e0ZuF3Y65PNF6dIwbJPZqfmtCXxFm9ckv0agOY=
|
||||||
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/objx v0.1.1 h1:2vfRuCMp5sSVIDSqO8oNnWJq7mPa6KVP3iPIwFBuy8A=
|
github.com/stretchr/objx v0.1.1 h1:2vfRuCMp5sSVIDSqO8oNnWJq7mPa6KVP3iPIwFBuy8A=
|
||||||
@ -575,10 +701,15 @@ github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhV
|
|||||||
github.com/timakin/bodyclose v0.0.0-20190721030226-87058b9bfcec/go.mod h1:Qimiffbc6q9tBWlVV6x0P9sat/ao1xEkREYPPj9hphk=
|
github.com/timakin/bodyclose v0.0.0-20190721030226-87058b9bfcec/go.mod h1:Qimiffbc6q9tBWlVV6x0P9sat/ao1xEkREYPPj9hphk=
|
||||||
github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8 h1:ndzgwNDnKIqyCvHTXaCqh9KlOWKvBry6nuXMJmonVsE=
|
github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8 h1:ndzgwNDnKIqyCvHTXaCqh9KlOWKvBry6nuXMJmonVsE=
|
||||||
github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
|
github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
|
||||||
|
github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5 h1:LnC5Kc/wtumK+WB441p7ynQJzVuNRJiqddSIE3IlSEQ=
|
||||||
|
github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
|
||||||
|
github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc=
|
||||||
github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0=
|
github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0=
|
||||||
github.com/ultraware/funlen v0.0.1/go.mod h1:Dp4UiAus7Wdb9KUZsYWZEWiRzGuM2kXM1lPbfaF6xhA=
|
github.com/ultraware/funlen v0.0.1/go.mod h1:Dp4UiAus7Wdb9KUZsYWZEWiRzGuM2kXM1lPbfaF6xhA=
|
||||||
github.com/ultraware/funlen v0.0.2/go.mod h1:Dp4UiAus7Wdb9KUZsYWZEWiRzGuM2kXM1lPbfaF6xhA=
|
github.com/ultraware/funlen v0.0.2/go.mod h1:Dp4UiAus7Wdb9KUZsYWZEWiRzGuM2kXM1lPbfaF6xhA=
|
||||||
github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA=
|
github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA=
|
||||||
|
github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
|
||||||
|
github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
|
||||||
github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4=
|
github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4=
|
||||||
github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
|
github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
|
||||||
github.com/valyala/fasthttp v1.2.0/go.mod h1:4vX61m6KN+xDduDNwXrhIAVZaZaZiQ1luJk8LWSxF3s=
|
github.com/valyala/fasthttp v1.2.0/go.mod h1:4vX61m6KN+xDduDNwXrhIAVZaZaZiQ1luJk8LWSxF3s=
|
||||||
@ -586,22 +717,35 @@ github.com/valyala/quicktemplate v1.1.1/go.mod h1:EH+4AkTd43SvgIbQHYu59/cJyxDoOV
|
|||||||
github.com/valyala/tcplisten v0.0.0-20161114210144-ceec8f93295a/go.mod h1:v3UYOV9WzVtRmSR+PDvWpU/qWl4Wa5LApYYX4ZtKbio=
|
github.com/valyala/tcplisten v0.0.0-20161114210144-ceec8f93295a/go.mod h1:v3UYOV9WzVtRmSR+PDvWpU/qWl4Wa5LApYYX4ZtKbio=
|
||||||
github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw=
|
github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw=
|
||||||
github.com/vishvananda/netlink v1.0.0/go.mod h1:+SR5DhBJrl6ZM7CoCKvpw5BKroDKQ+PJqOg65H/2ktk=
|
github.com/vishvananda/netlink v1.0.0/go.mod h1:+SR5DhBJrl6ZM7CoCKvpw5BKroDKQ+PJqOg65H/2ktk=
|
||||||
|
github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE=
|
||||||
github.com/vishvananda/netns v0.0.0-20171111001504-be1fbeda1936/go.mod h1:ZjcWmFBXmLKZu9Nxj3WKYEafiSqer2rnvPr0en9UNpI=
|
github.com/vishvananda/netns v0.0.0-20171111001504-be1fbeda1936/go.mod h1:ZjcWmFBXmLKZu9Nxj3WKYEafiSqer2rnvPr0en9UNpI=
|
||||||
|
github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU=
|
||||||
|
github.com/vishvananda/netns v0.0.0-20200520041808-52d707b772fe/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0=
|
||||||
github.com/vmware/govmomi v0.20.3/go.mod h1:URlwyTFZX72RmxtxuaFL2Uj3fD1JTvZdx59bHWk6aFU=
|
github.com/vmware/govmomi v0.20.3/go.mod h1:URlwyTFZX72RmxtxuaFL2Uj3fD1JTvZdx59bHWk6aFU=
|
||||||
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 h1:eY9dn8+vbi4tKz5Qo6v2eYzo7kUS51QINcR5jNpbZS8=
|
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 h1:eY9dn8+vbi4tKz5Qo6v2eYzo7kUS51QINcR5jNpbZS8=
|
||||||
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
|
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
|
||||||
github.com/xlab/handysort v0.0.0-20150421192137-fb3537ed64a1/go.mod h1:QcJo0QPSfTONNIgpN5RA8prR7fF8nkF6cTWTcNerRO8=
|
github.com/xlab/handysort v0.0.0-20150421192137-fb3537ed64a1/go.mod h1:QcJo0QPSfTONNIgpN5RA8prR7fF8nkF6cTWTcNerRO8=
|
||||||
github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q=
|
github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q=
|
||||||
|
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||||
|
go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
|
||||||
go.etcd.io/bbolt v1.3.3 h1:MUGmc65QhB3pIlaQ5bB4LwqSj6GIonVJXpZiaKNyaKk=
|
go.etcd.io/bbolt v1.3.3 h1:MUGmc65QhB3pIlaQ5bB4LwqSj6GIonVJXpZiaKNyaKk=
|
||||||
go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
|
go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
|
||||||
|
go.etcd.io/bbolt v1.3.5 h1:XAzx9gjCb0Rxj7EoqcClPD1d5ZBxZJk0jbuoPHenBt0=
|
||||||
|
go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ=
|
||||||
go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738 h1:VcrIfasaLFkyjk6KNlXQSzO+B0fZcnECiDrKJsfxka0=
|
go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738 h1:VcrIfasaLFkyjk6KNlXQSzO+B0fZcnECiDrKJsfxka0=
|
||||||
go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg=
|
go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg=
|
||||||
|
go.etcd.io/etcd v0.5.0-alpha.5.0.20200819165624-17cef6e3e9d5 h1:Gqga3zA9tdAcfqobUGjSoCob5L3f8Dt5EuOp3ihNZko=
|
||||||
|
go.etcd.io/etcd v0.5.0-alpha.5.0.20200819165624-17cef6e3e9d5/go.mod h1:skWido08r9w6Lq/w70DO5XYIKMu4QFu1+4VsqLQuJy8=
|
||||||
go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM=
|
go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM=
|
||||||
go.mongodb.org/mongo-driver v1.1.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM=
|
go.mongodb.org/mongo-driver v1.1.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM=
|
||||||
go.mongodb.org/mongo-driver v1.1.2/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM=
|
go.mongodb.org/mongo-driver v1.1.2/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM=
|
||||||
go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
|
go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
|
||||||
|
go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
|
||||||
|
go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
|
||||||
go.uber.org/atomic v1.3.2 h1:2Oa65PReHzfn29GpvgsYwloV9AVFHPDk8tYxt2c2tr4=
|
go.uber.org/atomic v1.3.2 h1:2Oa65PReHzfn29GpvgsYwloV9AVFHPDk8tYxt2c2tr4=
|
||||||
go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
|
go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
|
||||||
|
go.uber.org/atomic v1.4.0 h1:cxzIVoETapQEqDhQu3QfnvXAV4AlzcvUCxkVUFw3+EU=
|
||||||
|
go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
|
||||||
go.uber.org/multierr v1.1.0 h1:HoEmRHQPVSqub6w2z2d2EOVs2fjyFRGyofhKuyDq0QI=
|
go.uber.org/multierr v1.1.0 h1:HoEmRHQPVSqub6w2z2d2EOVs2fjyFRGyofhKuyDq0QI=
|
||||||
go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
|
go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
|
||||||
go.uber.org/zap v1.10.0 h1:ORx85nbTijNz8ljznvCMR1ZBIPKFn3jQrag10X2AsuM=
|
go.uber.org/zap v1.10.0 h1:ORx85nbTijNz8ljznvCMR1ZBIPKFn3jQrag10X2AsuM=
|
||||||
@ -620,8 +764,11 @@ golang.org/x/crypto v0.0.0-20190313024323-a1f597ede03a/go.mod h1:djNgcEr1/C05ACk
|
|||||||
golang.org/x/crypto v0.0.0-20190320223903-b7391e95e576/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
golang.org/x/crypto v0.0.0-20190320223903-b7391e95e576/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||||
golang.org/x/crypto v0.0.0-20190424203555-c05e17bb3b2d/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20190424203555-c05e17bb3b2d/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
|
golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
golang.org/x/crypto v0.0.0-20190617133340-57b3e21c3d56/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20190617133340-57b3e21c3d56/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
|
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
|
golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
golang.org/x/crypto v0.0.0-20200220183623-bac4c82f6975 h1:/Tl7pH94bvbAAHBdZJT947M/+gp0+CqQXDtMRC0fseo=
|
golang.org/x/crypto v0.0.0-20200220183623-bac4c82f6975 h1:/Tl7pH94bvbAAHBdZJT947M/+gp0+CqQXDtMRC0fseo=
|
||||||
golang.org/x/crypto v0.0.0-20200220183623-bac4c82f6975/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
golang.org/x/crypto v0.0.0-20200220183623-bac4c82f6975/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI=
|
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI=
|
||||||
@ -630,18 +777,32 @@ golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL
|
|||||||
golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/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-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||||
golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/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-20190312203227-4b39c73a6495/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
|
golang.org/x/exp v0.0.0-20190312203227-4b39c73a6495/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
|
||||||
|
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
|
||||||
|
golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek=
|
||||||
|
golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
|
||||||
golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs=
|
golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs=
|
||||||
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
|
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
|
||||||
|
golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
|
||||||
|
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
||||||
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
|
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
|
||||||
golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
||||||
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/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
|
golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
|
||||||
|
golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
|
||||||
|
golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs=
|
||||||
golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE=
|
golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE=
|
||||||
|
golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o=
|
||||||
golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc=
|
golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc=
|
||||||
|
golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY=
|
||||||
|
golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
|
||||||
|
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||||
|
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||||
golang.org/x/net v0.0.0-20170114055629-f2499483f923/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20170114055629-f2499483f923/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
golang.org/x/net v0.0.0-20170915142106-8351a756f30f/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20170915142106-8351a756f30f/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-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
|
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
golang.org/x/net v0.0.0-20180911220305-26e67e76b6c3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20180911220305-26e67e76b6c3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
@ -655,8 +816,11 @@ golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn
|
|||||||
golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
golang.org/x/net v0.0.0-20190328230028-74de082e2cca/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
golang.org/x/net v0.0.0-20190328230028-74de082e2cca/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
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-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
golang.org/x/net v0.0.0-20190502183928-7f726cade0ab/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
golang.org/x/net v0.0.0-20190502183928-7f726cade0ab/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
|
golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
|
||||||
|
golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
|
||||||
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
@ -665,14 +829,19 @@ golang.org/x/net v0.0.0-20191004110552-13f9640d40b9 h1:rjwSpXsdiK0dV8/Naq3kAw9ym
|
|||||||
golang.org/x/net v0.0.0-20191004110552-13f9640d40b9/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20191004110552-13f9640d40b9/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553 h1:efeOvDhwQ29Dj3SdAV/MJf8oukgn+8D8WgaCaRMchF8=
|
golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553 h1:efeOvDhwQ29Dj3SdAV/MJf8oukgn+8D8WgaCaRMchF8=
|
||||||
golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e h1:3G+cUijn7XD+S4eJFddp53Pv7+slrESplyjG25HgL+k=
|
golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
|
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
|
golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
|
||||||
|
golang.org/x/net v0.0.0-20200707034311-ab3426394381 h1:VXak5I6aEWmAXeQjA+QSZzlgNrpq9mjcfDemuexIKsU=
|
||||||
|
golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
|
||||||
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be h1:vEDujvNQGv4jgYKudGeI/+DAX4Jffq6hpD55MmoEvKs=
|
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be h1:vEDujvNQGv4jgYKudGeI/+DAX4Jffq6hpD55MmoEvKs=
|
||||||
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
||||||
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||||
golang.org/x/oauth2 v0.0.0-20190402181905-9f3314589c9a/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
golang.org/x/oauth2 v0.0.0-20190402181905-9f3314589c9a/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||||
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45 h1:SVwTIAaPC2U/AvvLNZ2a7OVsmBpC8L5BlwK1whH3hm0=
|
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45 h1:SVwTIAaPC2U/AvvLNZ2a7OVsmBpC8L5BlwK1whH3hm0=
|
||||||
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||||
|
golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6 h1:pE8b58s1HRDMi8RDc79m0HISf9D4TzseP40cEA6IGfs=
|
||||||
|
golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||||
golang.org/x/perf v0.0.0-20180704124530-6e6d33e29852/go.mod h1:JLpeXjPJfIyPr5TlbXLkXWLhP8nz10XfvxElABhCtcw=
|
golang.org/x/perf v0.0.0-20180704124530-6e6d33e29852/go.mod h1:JLpeXjPJfIyPr5TlbXLkXWLhP8nz10XfvxElABhCtcw=
|
||||||
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f h1:Bl/8QSvNqXvPGPGXa2z5xUTmV7VDcZyvRZ+QQXkXTZQ=
|
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f h1:Bl/8QSvNqXvPGPGXa2z5xUTmV7VDcZyvRZ+QQXkXTZQ=
|
||||||
@ -683,6 +852,7 @@ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJ
|
|||||||
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sys v0.0.0-20170830134202-bb24a47a89ea/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20170830134202-bb24a47a89ea/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/sys v0.0.0-20171026204733-164713f0dfce/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20171026204733-164713f0dfce/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
|
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/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-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
@ -698,18 +868,38 @@ golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7w
|
|||||||
golang.org/x/sys v0.0.0-20190321052220-f7bb7a8bee54/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190321052220-f7bb7a8bee54/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
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-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190502175342-a43fa875dd82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190502175342-a43fa875dd82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20190606203320-7fc4e5ec1444/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20191022100944-742c48ecaeb7 h1:HmbHVPwrPEKPGLAcHSrMe6+hqSUlvZU0rab6x5EXfGU=
|
golang.org/x/sys v0.0.0-20191022100944-742c48ecaeb7 h1:HmbHVPwrPEKPGLAcHSrMe6+hqSUlvZU0rab6x5EXfGU=
|
||||||
golang.org/x/sys v0.0.0-20191022100944-742c48ecaeb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20191022100944-742c48ecaeb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20191115151921-52ab43148777/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20191220220014-0732a990476f h1:72l8qCJ1nGxMGH26QVBVIxKd/D34cfGt0OvrPtpemyY=
|
golang.org/x/sys v0.0.0-20191220220014-0732a990476f h1:72l8qCJ1nGxMGH26QVBVIxKd/D34cfGt0OvrPtpemyY=
|
||||||
golang.org/x/sys v0.0.0-20191220220014-0732a990476f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20191220220014-0732a990476f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20200120151820-655fe14d7479/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20200124204421-9fbb57f87de9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20200217220822-9197077df867/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd h1:xhmwyvizuTgC2qz7ZlMluP20uW+C3Rm0FD/WLDX8884=
|
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd h1:xhmwyvizuTgC2qz7ZlMluP20uW+C3Rm0FD/WLDX8884=
|
||||||
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-20200327173247-9dae0f8f5775/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4 h1:5/PjkGUjvEU5Gl6BxmvKRPpqo2uNMv4rcHBMwzk/st8=
|
||||||
|
golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
golang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||||
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||||
golang.org/x/text v0.0.0-20170915090833-1cbadb444a80/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
golang.org/x/text v0.0.0-20170915090833-1cbadb444a80/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||||
@ -722,6 +912,8 @@ golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxb
|
|||||||
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||||
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4 h1:SvFZT6jyqRaOeXpc5h/JSfZenJ2O330aBsf7JfSUXmQ=
|
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4 h1:SvFZT6jyqRaOeXpc5h/JSfZenJ2O330aBsf7JfSUXmQ=
|
||||||
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||||
|
golang.org/x/time v0.0.0-20191024005414-555d28b269f0 h1:/5xXl8Y5W96D+TtHSlonuFqGHIWVuyCkGJLwGh9JJFs=
|
||||||
|
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||||
golang.org/x/tools v0.0.0-20170915040203-e531a2a1c15f/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20170915040203-e531a2a1c15f/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
@ -730,6 +922,7 @@ golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGm
|
|||||||
golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
golang.org/x/tools v0.0.0-20181117154741-2ddaf7f79a09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20181117154741-2ddaf7f79a09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
golang.org/x/tools v0.0.0-20190110163146-51295c7ec13a/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20190110163146-51295c7ec13a/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
golang.org/x/tools v0.0.0-20190121143147-24cd39ecf745/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20190121143147-24cd39ecf745/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
golang.org/x/tools v0.0.0-20190122202912-9c309ee22fab/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20190122202912-9c309ee22fab/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
golang.org/x/tools v0.0.0-20190125232054-d66bd3c5d5a6/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20190125232054-d66bd3c5d5a6/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
@ -745,12 +938,23 @@ golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBn
|
|||||||
golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
|
golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
|
||||||
golang.org/x/tools v0.0.0-20190521203540-521d6ed310dd/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
|
golang.org/x/tools v0.0.0-20190521203540-521d6ed310dd/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
|
||||||
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-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
||||||
golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
||||||
golang.org/x/tools v0.0.0-20190617190820-da514acc4774/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
golang.org/x/tools v0.0.0-20190617190820-da514acc4774/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
||||||
golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
||||||
|
golang.org/x/tools v0.0.0-20190624222133-a101b041ded4/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
||||||
|
golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
||||||
|
golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||||
golang.org/x/tools v0.0.0-20190909030654-5b82db07426d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
golang.org/x/tools v0.0.0-20190909030654-5b82db07426d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||||
|
golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||||
golang.org/x/tools v0.0.0-20190920225731-5eefd052ad72/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
golang.org/x/tools v0.0.0-20190920225731-5eefd052ad72/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||||
|
golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||||
|
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||||
|
golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||||
|
golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
|
||||||
|
golang.org/x/tools v0.0.0-20200616133436-c1934b75d054/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
||||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||||
|
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=
|
||||||
gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo=
|
gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo=
|
||||||
@ -761,29 +965,57 @@ gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e/go.mod h1:kS+toOQn6AQKjmK
|
|||||||
gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc=
|
gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc=
|
||||||
google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE=
|
google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE=
|
||||||
google.golang.org/api v0.6.1-0.20190607001116-5213b8090861/go.mod h1:btoxGiFvQNVUZQ8W08zLtrVS08CNpINPEfxXxgJL1Q4=
|
google.golang.org/api v0.6.1-0.20190607001116-5213b8090861/go.mod h1:btoxGiFvQNVUZQ8W08zLtrVS08CNpINPEfxXxgJL1Q4=
|
||||||
|
google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M=
|
||||||
|
google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg=
|
||||||
|
google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg=
|
||||||
|
google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI=
|
||||||
|
google.golang.org/api v0.15.1-0.20200106000736-b8fc810ca6b5/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI=
|
||||||
|
google.golang.org/api v0.15.1/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI=
|
||||||
|
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
|
||||||
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
||||||
google.golang.org/appengine v1.5.0 h1:KxkO13IPW4Lslp2bz+KHP2E3gtFlrIGNThxkZQ3g+4c=
|
google.golang.org/appengine v1.5.0 h1:KxkO13IPW4Lslp2bz+KHP2E3gtFlrIGNThxkZQ3g+4c=
|
||||||
google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
||||||
|
google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0=
|
||||||
|
google.golang.org/appengine v1.6.5 h1:tycE03LOZYQNhDpS27tcQdAzLCVMaj7QT2SXxebnpCM=
|
||||||
|
google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
|
||||||
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8 h1:Nw54tB0rB7hY/N0NQvRW8DG4Yk3Q6T9cu9RcFQDu1tc=
|
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8 h1:Nw54tB0rB7hY/N0NQvRW8DG4Yk3Q6T9cu9RcFQDu1tc=
|
||||||
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-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
|
google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
|
||||||
google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
|
google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
|
||||||
|
google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
|
||||||
google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
|
google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
|
||||||
|
google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
|
||||||
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-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8=
|
||||||
google.golang.org/genproto v0.0.0-20191220175831-5c49e3ecc1c1 h1:PlscBL5CvF+v1mNR82G+i4kACGq2JQvKDnNq7LSS65o=
|
google.golang.org/genproto v0.0.0-20191220175831-5c49e3ecc1c1 h1:PlscBL5CvF+v1mNR82G+i4kACGq2JQvKDnNq7LSS65o=
|
||||||
google.golang.org/genproto v0.0.0-20191220175831-5c49e3ecc1c1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
|
google.golang.org/genproto v0.0.0-20191220175831-5c49e3ecc1c1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
|
||||||
|
google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
|
||||||
|
google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/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.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
|
||||||
|
google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
|
||||||
|
google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
|
||||||
|
google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
|
||||||
|
google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
|
||||||
|
google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
|
||||||
google.golang.org/grpc v1.26.0 h1:2dTRdpdFEEhJYQD8EMLB61nnrzSCTbG38PhqdhvOltg=
|
google.golang.org/grpc v1.26.0 h1:2dTRdpdFEEhJYQD8EMLB61nnrzSCTbG38PhqdhvOltg=
|
||||||
google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
|
google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
|
||||||
|
google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
|
||||||
|
google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60=
|
||||||
|
google.golang.org/grpc v1.29.0 h1:2pJjwYOdkZ9HlN4sWRYBg9ttH5bCOlsueaM+b/oYjwo=
|
||||||
|
google.golang.org/grpc v1.29.0/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk=
|
||||||
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=
|
||||||
google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
|
google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
|
||||||
google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
|
google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
|
||||||
google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
|
google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
|
||||||
|
google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
|
||||||
google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
|
google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
|
||||||
|
google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4=
|
||||||
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/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U=
|
gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U=
|
||||||
@ -821,34 +1053,38 @@ gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
|||||||
gotest.tools v2.1.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw=
|
gotest.tools v2.1.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw=
|
||||||
gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw=
|
gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw=
|
||||||
gotest.tools/gotestsum v0.3.5/go.mod h1:Mnf3e5FUzXbkCfynWBGOwLssY7gTQgCHObK9tMpAriY=
|
gotest.tools/gotestsum v0.3.5/go.mod h1:Mnf3e5FUzXbkCfynWBGOwLssY7gTQgCHObK9tMpAriY=
|
||||||
|
gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk=
|
||||||
grpc.go4.org v0.0.0-20170609214715-11d0a25b4919/go.mod h1:77eQGdRu53HpSqPFJFmuJdjuHRquDANNeA4x7B8WQ9o=
|
grpc.go4.org v0.0.0-20170609214715-11d0a25b4919/go.mod h1:77eQGdRu53HpSqPFJFmuJdjuHRquDANNeA4x7B8WQ9o=
|
||||||
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-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
||||||
honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/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=
|
||||||
honnef.co/go/tools v0.0.1-2019.2.2/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
|
honnef.co/go/tools v0.0.1-2019.2.2/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
|
||||||
k8s.io/api v0.18.0 h1:lwYk8Vt7rsVTwjRU6pzEsa9YNhThbmbocQlKvNBB4EQ=
|
honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
|
||||||
k8s.io/api v0.18.0/go.mod h1:q2HRQkfDzHMBZL9l/y9rH63PkQl4vae0xRT+8prbrK8=
|
k8s.io/api v0.19.0 h1:XyrFIJqTYZJ2DU7FBE/bSPz7b1HvbVBuBf07oeo6eTc=
|
||||||
k8s.io/apiextensions-apiserver v0.18.0/go.mod h1:18Cwn1Xws4xnWQNC00FLq1E350b9lUF+aOdIWDOZxgo=
|
k8s.io/api v0.19.0/go.mod h1:I1K45XlvTrDjmj5LoM5LuP/KYrhWbjUKT/SoPG0qTjw=
|
||||||
k8s.io/apimachinery v0.18.2-beta.0 h1:V0o4OmjKXgxbZ4v1fiJG2jBzEJirMcAEb1N0DuSQypI=
|
k8s.io/apiextensions-apiserver v0.19.0/go.mod h1:znfQxNpjqz/ZehvbfMg5N6fvBJW5Lqu5HVLTJQdP4Fs=
|
||||||
k8s.io/apimachinery v0.18.2-beta.0/go.mod h1:9SnR/e11v5IbyPCGbvJViimtJ0SwHG4nfZFjU77ftcA=
|
k8s.io/apimachinery v0.19.0 h1:gjKnAda/HZp5k4xQYjL0K/Yb66IvNqjthCb03QlKpaQ=
|
||||||
k8s.io/apiserver v0.18.0 h1:ELAWpGWC6XdbRLi5lwAbEbvksD7hkXxPdxaJsdpist4=
|
k8s.io/apimachinery v0.19.0/go.mod h1:DnPGDnARWFvYa3pMHgSxtbZb7gpzzAZ1pTfaUNDVlmA=
|
||||||
k8s.io/apiserver v0.18.0/go.mod h1:3S2O6FeBBd6XTo0njUrLxiqk8GNy6wWOftjhJcXYnjw=
|
k8s.io/apiserver v0.19.0 h1:jLhrL06wGAADbLUUQm8glSLnAGP6c7y5R3p19grkBoY=
|
||||||
k8s.io/cli-runtime v0.18.0/go.mod h1:1eXfmBsIJosjn9LjEBUd2WVPoPAY9XGTqTFcPMIBsUQ=
|
k8s.io/apiserver v0.19.0/go.mod h1:XvzqavYj73931x7FLtyagh8WibHpePJ1QwWrSJs2CLk=
|
||||||
k8s.io/client-go v0.18.0 h1:yqKw4cTUQraZK3fcVCMeSa+lqKwcjZ5wtcOIPnxQno4=
|
k8s.io/cli-runtime v0.19.0/go.mod h1:tun9l0eUklT8IHIM0jors17KmUjcrAxn0myoBYwuNuo=
|
||||||
k8s.io/client-go v0.18.0/go.mod h1:uQSYDYs4WhVZ9i6AIoEZuwUggLVEF64HOD37boKAtF8=
|
k8s.io/client-go v0.19.0 h1:1+0E0zfWFIWeyRhQYWzimJOyAk2UT7TiARaLNwJCf7k=
|
||||||
k8s.io/cloud-provider v0.18.0 h1:Ri82BTdMutzIoiBWz/IS5o7I/+fCgRbO09iPWNfrZEM=
|
k8s.io/client-go v0.19.0/go.mod h1:H9E/VT95blcFQnlyShFgnFT9ZnJOAceiUHM3MlRC+mU=
|
||||||
k8s.io/cloud-provider v0.18.0/go.mod h1:ZBq1FhoJ+XoQ8JYBYoyx81LS3JV0RAW/UmHf/6w9E6k=
|
k8s.io/cloud-provider v0.19.0 h1:Ae09nHr6BVPEzmAWbZedYC0gjsIPbt7YsIY0V/NHGr0=
|
||||||
k8s.io/cluster-bootstrap v0.18.0/go.mod h1:xSe+bOZ3asS/ciT91ESQYGhjOql43aBETfvbCzNvad8=
|
k8s.io/cloud-provider v0.19.0/go.mod h1:TYh7b7kQ6wiqF7Ftb+u3lN4IwvgOPbBrcvC3TDAW4cw=
|
||||||
k8s.io/code-generator v0.18.3-beta.0/go.mod h1:+UHX5rSbxmR8kzS+FAv7um6dtYrZokQvjHpDSYRVkTc=
|
k8s.io/cluster-bootstrap v0.19.0/go.mod h1:kBn1DKyqoM245wzz+AAnGkuysJ+9GqVbPYveTo4KiaA=
|
||||||
k8s.io/component-base v0.18.0 h1:I+lP0fNfsEdTDpHaL61bCAqTZLoiWjEEP304Mo5ZQgE=
|
k8s.io/code-generator v0.19.0/go.mod h1:moqLn7w0t9cMs4+5CQyxnfA/HV8MF6aAVENF+WZZhgk=
|
||||||
k8s.io/component-base v0.18.0/go.mod h1:u3BCg0z1uskkzrnAKFzulmYaEpZF7XC9Pf/uFyb1v2c=
|
k8s.io/component-base v0.19.0 h1:OueXf1q3RW7NlLlUCj2Dimwt7E1ys6ZqRnq53l2YuoE=
|
||||||
k8s.io/cri-api v0.18.11-rc.0 h1:1uKPBPwFa2tjQboVarenHyvH22XGThomh2RIGz8G1Uc=
|
k8s.io/component-base v0.19.0/go.mod h1:dKsY8BxkA+9dZIAh2aWJLL/UdASFDNtGYTCItL4LM7Y=
|
||||||
k8s.io/cri-api v0.18.11-rc.0/go.mod h1:OJtpjDvfsKoLGhvcc0qfygved0S0dGX56IJzPbqTG1s=
|
k8s.io/cri-api v0.19.0 h1:E7pzljbF7nF3DPHUAURy8ATCMaXV0RjmG2bKcvpd6iU=
|
||||||
k8s.io/csi-translation-lib v0.18.0 h1:tmQWO6UIXUFboUqlsxT27yCJS//RvC7BZvCDdTRyPyU=
|
k8s.io/cri-api v0.19.0/go.mod h1:UN/iU9Ua0iYdDREBXNE9vqCJ7MIh/FW3VIL0d8pw7Fw=
|
||||||
k8s.io/csi-translation-lib v0.18.0/go.mod h1:iF8TE4ACSaPqN1qxmiIjvcU1A8VgkOrpcFGD7Z0hVu0=
|
k8s.io/csi-translation-lib v0.19.0 h1:YvOGPac2+5ggChyttAAfHu/hEhQfzFEWAxCCnOu8KlQ=
|
||||||
|
k8s.io/csi-translation-lib v0.19.0/go.mod h1:zGS1YqV8U2So/t4Hz8SoRXMx5y5/KSKnA6BXXxGuo4A=
|
||||||
k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
|
k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
|
||||||
k8s.io/gengo v0.0.0-20200114144118-36b2048a9120/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
|
k8s.io/gengo v0.0.0-20200114144118-36b2048a9120/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
|
||||||
|
k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
|
||||||
|
k8s.io/gengo v0.0.0-20200428234225-8167cfdcfc14/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
|
||||||
k8s.io/heapster v1.2.0-beta.1/go.mod h1:h1uhptVXMwC8xtZBYsPXKVi8fpdlYkTs6k949KozGrM=
|
k8s.io/heapster v1.2.0-beta.1/go.mod h1:h1uhptVXMwC8xtZBYsPXKVi8fpdlYkTs6k949KozGrM=
|
||||||
k8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk=
|
k8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk=
|
||||||
k8s.io/klog v0.3.0 h1:0VPpR+sizsiivjIfIAQH/rl8tan6jvWkS7lU+0di3lE=
|
k8s.io/klog v0.3.0 h1:0VPpR+sizsiivjIfIAQH/rl8tan6jvWkS7lU+0di3lE=
|
||||||
@ -858,27 +1094,33 @@ k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I=
|
|||||||
k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE=
|
k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE=
|
||||||
k8s.io/klog/v2 v2.2.0 h1:XRvcwJozkgZ1UQJmfMGpvRthQHOvihEhYtDfAaxMz/A=
|
k8s.io/klog/v2 v2.2.0 h1:XRvcwJozkgZ1UQJmfMGpvRthQHOvihEhYtDfAaxMz/A=
|
||||||
k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y=
|
k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y=
|
||||||
k8s.io/kube-aggregator v0.18.0/go.mod h1:ateewQ5QbjMZF/dihEFXwaEwoA4v/mayRvzfmvb6eqI=
|
k8s.io/kube-aggregator v0.19.0/go.mod h1:1Ln45PQggFAG8xOqWPIYMxUq8WNtpPnYsbUJ39DpF/A=
|
||||||
k8s.io/kube-controller-manager v0.18.0/go.mod h1:pIRGUrSo+skWzwr5pgWNbgiFWEGSotbamGQpR/gKd5U=
|
k8s.io/kube-controller-manager v0.19.0/go.mod h1:uGZyiHK73NxNEN5EZv/Esm3fbCOzeq4ndttMexVZ1L0=
|
||||||
k8s.io/kube-openapi v0.0.0-20200121204235-bf4fb3bd569c h1:/KUFqjjqAcY4Us6luF5RDNZ16KJtb49HfR3ZHB9qYXM=
|
k8s.io/kube-openapi v0.0.0-20200121204235-bf4fb3bd569c h1:/KUFqjjqAcY4Us6luF5RDNZ16KJtb49HfR3ZHB9qYXM=
|
||||||
k8s.io/kube-openapi v0.0.0-20200121204235-bf4fb3bd569c/go.mod h1:GRQhZsXIAJ1xR0C9bd8UpWHZ5plfAS9fzPjJuQ6JL3E=
|
k8s.io/kube-openapi v0.0.0-20200121204235-bf4fb3bd569c/go.mod h1:GRQhZsXIAJ1xR0C9bd8UpWHZ5plfAS9fzPjJuQ6JL3E=
|
||||||
k8s.io/kube-proxy v0.18.0/go.mod h1:st3Gcg9wYAd1sn6UMeAs5AHN3R0NOItfB5P6qObKrr8=
|
k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6 h1:+WnxoVtG8TMiudHBSEtrVL1egv36TkkJm+bA8AxicmQ=
|
||||||
k8s.io/kube-scheduler v0.18.0 h1:dwVfXf1AWfGgNUHJdNvxRpk8qGnVQqv+KshALC3aWkg=
|
k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6/go.mod h1:UuqjUnNftUyPE5H64/qeyjQoUZhGpeFDVdxjTeEVN2o=
|
||||||
k8s.io/kube-scheduler v0.18.0/go.mod h1:GFaNT5Z5/zPZsjXmkGihac2qsT+0u2KIHDgXdFfPHPc=
|
k8s.io/kube-proxy v0.19.0/go.mod h1:7NoJCFgsWb7iiMB1F6bW1St5rEXC+ir2aWiJehASmTU=
|
||||||
k8s.io/kubectl v0.18.0 h1:hu52Ndq/d099YW+3sS3VARxFz61Wheiq8K9S7oa82Dk=
|
k8s.io/kube-scheduler v0.19.0 h1:cJlGp2LtdGwt0LxO+5BEEIV03pmZH3vGp7TkA/0VV8w=
|
||||||
k8s.io/kubectl v0.18.0/go.mod h1:LOkWx9Z5DXMEg5KtOjHhRiC1fqJPLyCr3KtQgEolCkU=
|
k8s.io/kube-scheduler v0.19.0/go.mod h1:1XGjJUgstM0/0x8to+bSGSyCs3Dp3dbCEr3Io/mvd4s=
|
||||||
k8s.io/kubelet v0.18.0/go.mod h1:1VULM2m7c/ePlIeNOVVK+kkprayDr1RPf1T8oaNaHuQ=
|
k8s.io/kubectl v0.19.0 h1:t9uxaZzGvqc2jY96mjnPSjFHtaKOxoUegeGZdaGT6aw=
|
||||||
|
k8s.io/kubectl v0.19.0/go.mod h1:gPCjjsmE6unJzgaUNXIFGZGafiUp5jh0If3F/x7/rRg=
|
||||||
|
k8s.io/kubelet v0.19.0/go.mod h1:cGds22piF/LnFzfAaIT+efvOYBHVYdunqka6NVuNw9g=
|
||||||
k8s.io/kubernetes v1.18.0 h1:rVe+edi5GwutPQJ4KIZq1Nk506nmnfyz/KOZVCLv7Yo=
|
k8s.io/kubernetes v1.18.0 h1:rVe+edi5GwutPQJ4KIZq1Nk506nmnfyz/KOZVCLv7Yo=
|
||||||
k8s.io/kubernetes v1.18.0/go.mod h1:z8xjOOO1Ljz+TaHpOxVGC7cxtF32TesIamoQ+BZrVS0=
|
k8s.io/kubernetes v1.18.0/go.mod h1:z8xjOOO1Ljz+TaHpOxVGC7cxtF32TesIamoQ+BZrVS0=
|
||||||
k8s.io/legacy-cloud-providers v0.18.0/go.mod h1:4Bc9CdZg8wl0mskyhnaXa8DdqLpTUfPEMkw3FZok+H8=
|
k8s.io/kubernetes v1.19.0 h1:ir53YuXsfsuVABmtYHCTUa3xjD41Htxv3o+xoQjJdUo=
|
||||||
k8s.io/metrics v0.18.0/go.mod h1:8aYTW18koXqjLVKL7Ds05RPMX9ipJZI3mywYvBOxXd4=
|
k8s.io/kubernetes v1.19.0/go.mod h1:yhT1/ltQajQsha3tnYc9QPFYSumGM45nlZdjf7WqE1A=
|
||||||
|
k8s.io/legacy-cloud-providers v0.19.0/go.mod h1:Q5czDCPnStdpFohMpcbnqL+MLR75kUhIDIsnmwEm0/o=
|
||||||
|
k8s.io/metrics v0.19.0/go.mod h1:WykpW8B60OeAJx1imdwUgyOID2kDljr/Q+1zrPJ98Wo=
|
||||||
k8s.io/repo-infra v0.0.1-alpha.1/go.mod h1:wO1t9WaB99V80ljbeENTnayuEEwNZt7gECYh/CEyOJ8=
|
k8s.io/repo-infra v0.0.1-alpha.1/go.mod h1:wO1t9WaB99V80ljbeENTnayuEEwNZt7gECYh/CEyOJ8=
|
||||||
k8s.io/sample-apiserver v0.18.0/go.mod h1:1RKw7QEixom4PIw/vjUvDgl2QQbuTXbeCUHLlNCzOjg=
|
k8s.io/sample-apiserver v0.19.0/go.mod h1:Bq9UulNoKnT72JqlkWF2JS14cXxJqcmvLtb5+EcwiNA=
|
||||||
k8s.io/system-validators v1.0.4/go.mod h1:HgSgTg4NAGNoYYjKsUyk52gdNi2PVDswQ9Iyn66R7NI=
|
k8s.io/system-validators v1.0.4/go.mod h1:HgSgTg4NAGNoYYjKsUyk52gdNi2PVDswQ9Iyn66R7NI=
|
||||||
|
k8s.io/system-validators v1.1.2/go.mod h1:bPldcLgkIUK22ALflnsXk8pvkTEndYdNuaHH6gRrl0Q=
|
||||||
k8s.io/utils v0.0.0-20200324210504-a9aa75ae1b89 h1:d4vVOjXm687F1iLSP2q3lyPPuyvTUt3aVoBpi2DqRsU=
|
k8s.io/utils v0.0.0-20200324210504-a9aa75ae1b89 h1:d4vVOjXm687F1iLSP2q3lyPPuyvTUt3aVoBpi2DqRsU=
|
||||||
k8s.io/utils v0.0.0-20200324210504-a9aa75ae1b89/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew=
|
k8s.io/utils v0.0.0-20200324210504-a9aa75ae1b89/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew=
|
||||||
k8s.io/utils v0.0.0-20200411171748-3d5a2fe318e4 h1:vEYeh6f+jz98bCG4BHRQ733tuZpjzsJ+C/xv8awA0qM=
|
k8s.io/utils v0.0.0-20200414100711-2df71ebbae66/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
|
||||||
k8s.io/utils v0.0.0-20200411171748-3d5a2fe318e4/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
|
k8s.io/utils v0.0.0-20200729134348-d5654de09c73 h1:uJmqzgNWG7XyClnU/mLPBWwfKKF1K8Hf8whTseBgJcg=
|
||||||
|
k8s.io/utils v0.0.0-20200729134348-d5654de09c73/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
|
||||||
modernc.org/cc v1.0.0/go.mod h1:1Sk4//wdnYJiUIxnW8ddKpaOJCF37yAdqYnkxUpaYxw=
|
modernc.org/cc v1.0.0/go.mod h1:1Sk4//wdnYJiUIxnW8ddKpaOJCF37yAdqYnkxUpaYxw=
|
||||||
modernc.org/golex v1.0.0/go.mod h1:b/QX9oBD/LhixY6NDh+IdGv17hgB+51fET1i2kPSmvk=
|
modernc.org/golex v1.0.0/go.mod h1:b/QX9oBD/LhixY6NDh+IdGv17hgB+51fET1i2kPSmvk=
|
||||||
modernc.org/mathutil v1.0.0/go.mod h1:wU0vUrJsVWBZ4P6e7xtFJEhFSNsfRLJ8H458uRjg03k=
|
modernc.org/mathutil v1.0.0/go.mod h1:wU0vUrJsVWBZ4P6e7xtFJEhFSNsfRLJ8H458uRjg03k=
|
||||||
@ -887,16 +1129,17 @@ modernc.org/xc v1.0.0/go.mod h1:mRNCo0bvLjGhHO9WsyuKVU4q0ceiDDDoEeWDJHrNx8I=
|
|||||||
mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed/go.mod h1:Xkxe497xwlCKkIaQYRfC7CSLworTXY9RMqwhhCm+8Nc=
|
mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed/go.mod h1:Xkxe497xwlCKkIaQYRfC7CSLworTXY9RMqwhhCm+8Nc=
|
||||||
mvdan.cc/lint v0.0.0-20170908181259-adc824a0674b/go.mod h1:2odslEg/xrtNQqCYg2/jCoyKnw3vv5biOc3JnIcYfL4=
|
mvdan.cc/lint v0.0.0-20170908181259-adc824a0674b/go.mod h1:2odslEg/xrtNQqCYg2/jCoyKnw3vv5biOc3JnIcYfL4=
|
||||||
mvdan.cc/unparam v0.0.0-20190209190245-fbb59629db34/go.mod h1:H6SUd1XjIs+qQCyskXg5OFSrilMRUkD8ePJpHKDPaeY=
|
mvdan.cc/unparam v0.0.0-20190209190245-fbb59629db34/go.mod h1:H6SUd1XjIs+qQCyskXg5OFSrilMRUkD8ePJpHKDPaeY=
|
||||||
|
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
|
||||||
rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4=
|
rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4=
|
||||||
rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
|
rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
|
||||||
rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
|
rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
|
||||||
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.7 h1:uuHDyjllyzRyCIvvn0OBjiRB0SgBZGqHNYAmjR7fO50=
|
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.9 h1:rusRLrDhjBp6aYtl9sGEvQJr6faoHoDLd0YcUBTZguI=
|
||||||
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.7/go.mod h1:PHgbrJT7lCHcxMU+mDHEm+nx46H4zuuHZkDP6icnhu0=
|
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.9/go.mod h1:dzAXnQbTRyDlZPJX2SUPEqvnB+j7AJjtlox7PEwigU0=
|
||||||
sigs.k8s.io/kustomize v2.0.3+incompatible h1:JUufWFNlI44MdtnjUqVnvh29rR37PQFzPbLXqhyOyX0=
|
sigs.k8s.io/kustomize v2.0.3+incompatible h1:JUufWFNlI44MdtnjUqVnvh29rR37PQFzPbLXqhyOyX0=
|
||||||
sigs.k8s.io/kustomize v2.0.3+incompatible/go.mod h1:MkjgH3RdOWrievjo6c9T245dYlB5QeXV4WCbnt/PEpU=
|
sigs.k8s.io/kustomize v2.0.3+incompatible/go.mod h1:MkjgH3RdOWrievjo6c9T245dYlB5QeXV4WCbnt/PEpU=
|
||||||
sigs.k8s.io/structured-merge-diff/v3 v3.0.0-20200116222232-67a7b8c61874/go.mod h1:PlARxl6Hbt/+BC80dRLi1qAmnMqwqDg62YvvVkZjemw=
|
sigs.k8s.io/structured-merge-diff/v3 v3.0.0-20200116222232-67a7b8c61874/go.mod h1:PlARxl6Hbt/+BC80dRLi1qAmnMqwqDg62YvvVkZjemw=
|
||||||
sigs.k8s.io/structured-merge-diff/v3 v3.0.0 h1:dOmIZBMfhcHS09XZkMyUgkq5trg3/jRyJYFZUiaOp8E=
|
sigs.k8s.io/structured-merge-diff/v4 v4.0.1 h1:YXTMot5Qz/X1iBRJhAt+vI+HVttY0WkSqqhKxQ0xVbA=
|
||||||
sigs.k8s.io/structured-merge-diff/v3 v3.0.0/go.mod h1:PlARxl6Hbt/+BC80dRLi1qAmnMqwqDg62YvvVkZjemw=
|
sigs.k8s.io/structured-merge-diff/v4 v4.0.1/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw=
|
||||||
sigs.k8s.io/yaml v1.1.0 h1:4A07+ZFc2wgJwo8YNlQpr1rVlgUDlxXHhPJciaPY5gs=
|
sigs.k8s.io/yaml v1.1.0 h1:4A07+ZFc2wgJwo8YNlQpr1rVlgUDlxXHhPJciaPY5gs=
|
||||||
sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o=
|
sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o=
|
||||||
sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q=
|
sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q=
|
||||||
|
|||||||
@ -27,7 +27,7 @@ import (
|
|||||||
storagev1 "k8s.io/api/storage/v1"
|
storagev1 "k8s.io/api/storage/v1"
|
||||||
"k8s.io/apimachinery/pkg/api/resource"
|
"k8s.io/apimachinery/pkg/api/resource"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/klog"
|
"k8s.io/klog/v2"
|
||||||
)
|
)
|
||||||
|
|
||||||
// NFSDriverNameVar is the environment variable use to switch the driver to be used.
|
// NFSDriverNameVar is the environment variable use to switch the driver to be used.
|
||||||
|
|||||||
@ -225,7 +225,7 @@ func (t *TestPersistentVolumeClaim) Cleanup() {
|
|||||||
t.removeFinalizers()
|
t.removeFinalizers()
|
||||||
}
|
}
|
||||||
ginkgo.By(fmt.Sprintf("waiting for claim's PV %q to be deleted", t.persistentVolume.Name))
|
ginkgo.By(fmt.Sprintf("waiting for claim's PV %q to be deleted", t.persistentVolume.Name))
|
||||||
err := framework.WaitForPersistentVolumeDeleted(t.client, t.persistentVolume.Name, 5*time.Second, 10*time.Minute)
|
err := e2epv.WaitForPersistentVolumeDeleted(t.client, t.persistentVolume.Name, 5*time.Second, 10*time.Minute)
|
||||||
framework.ExpectNoError(err)
|
framework.ExpectNoError(err)
|
||||||
}
|
}
|
||||||
// Wait for the PVC to be deleted
|
// Wait for the PVC to be deleted
|
||||||
@ -556,7 +556,7 @@ func (t *TestPersistentVolumeClaim) DeleteBoundPersistentVolume() {
|
|||||||
err := e2epv.DeletePersistentVolume(t.client, t.persistentVolume.Name)
|
err := e2epv.DeletePersistentVolume(t.client, t.persistentVolume.Name)
|
||||||
framework.ExpectNoError(err)
|
framework.ExpectNoError(err)
|
||||||
ginkgo.By(fmt.Sprintf("waiting for claim's PV %q to be deleted", t.persistentVolume.Name))
|
ginkgo.By(fmt.Sprintf("waiting for claim's PV %q to be deleted", t.persistentVolume.Name))
|
||||||
err = framework.WaitForPersistentVolumeDeleted(t.client, t.persistentVolume.Name, 5*time.Second, 10*time.Minute)
|
err = e2epv.WaitForPersistentVolumeDeleted(t.client, t.persistentVolume.Name, 5*time.Second, 10*time.Minute)
|
||||||
framework.ExpectNoError(err)
|
framework.ExpectNoError(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
191
vendor/github.com/coreos/go-systemd/LICENSE
generated
vendored
191
vendor/github.com/coreos/go-systemd/LICENSE
generated
vendored
@ -1,191 +0,0 @@
|
|||||||
Apache License
|
|
||||||
Version 2.0, January 2004
|
|
||||||
http://www.apache.org/licenses/
|
|
||||||
|
|
||||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
|
||||||
|
|
||||||
1. Definitions.
|
|
||||||
|
|
||||||
"License" shall mean the terms and conditions for use, reproduction, and
|
|
||||||
distribution as defined by Sections 1 through 9 of this document.
|
|
||||||
|
|
||||||
"Licensor" shall mean the copyright owner or entity authorized by the copyright
|
|
||||||
owner that is granting the License.
|
|
||||||
|
|
||||||
"Legal Entity" shall mean the union of the acting entity and all other entities
|
|
||||||
that control, are controlled by, or are under common control with that entity.
|
|
||||||
For the purposes of this definition, "control" means (i) the power, direct or
|
|
||||||
indirect, to cause the direction or management of such entity, whether by
|
|
||||||
contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
|
||||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
|
||||||
|
|
||||||
"You" (or "Your") shall mean an individual or Legal Entity exercising
|
|
||||||
permissions granted by this License.
|
|
||||||
|
|
||||||
"Source" form shall mean the preferred form for making modifications, including
|
|
||||||
but not limited to software source code, documentation source, and configuration
|
|
||||||
files.
|
|
||||||
|
|
||||||
"Object" form shall mean any form resulting from mechanical transformation or
|
|
||||||
translation of a Source form, including but not limited to compiled object code,
|
|
||||||
generated documentation, and conversions to other media types.
|
|
||||||
|
|
||||||
"Work" shall mean the work of authorship, whether in Source or Object form, made
|
|
||||||
available under the License, as indicated by a copyright notice that is included
|
|
||||||
in or attached to the work (an example is provided in the Appendix below).
|
|
||||||
|
|
||||||
"Derivative Works" shall mean any work, whether in Source or Object form, that
|
|
||||||
is based on (or derived from) the Work and for which the editorial revisions,
|
|
||||||
annotations, elaborations, or other modifications represent, as a whole, an
|
|
||||||
original work of authorship. For the purposes of this License, Derivative Works
|
|
||||||
shall not include works that remain separable from, or merely link (or bind by
|
|
||||||
name) to the interfaces of, the Work and Derivative Works thereof.
|
|
||||||
|
|
||||||
"Contribution" shall mean any work of authorship, including the original version
|
|
||||||
of the Work and any modifications or additions to that Work or Derivative Works
|
|
||||||
thereof, that is intentionally submitted to Licensor for inclusion in the Work
|
|
||||||
by the copyright owner or by an individual or Legal Entity authorized to submit
|
|
||||||
on behalf of the copyright owner. For the purposes of this definition,
|
|
||||||
"submitted" means any form of electronic, verbal, or written communication sent
|
|
||||||
to the Licensor or its representatives, including but not limited to
|
|
||||||
communication on electronic mailing lists, source code control systems, and
|
|
||||||
issue tracking systems that are managed by, or on behalf of, the Licensor for
|
|
||||||
the purpose of discussing and improving the Work, but excluding communication
|
|
||||||
that is conspicuously marked or otherwise designated in writing by the copyright
|
|
||||||
owner as "Not a Contribution."
|
|
||||||
|
|
||||||
"Contributor" shall mean Licensor and any individual or Legal Entity on behalf
|
|
||||||
of whom a Contribution has been received by Licensor and subsequently
|
|
||||||
incorporated within the Work.
|
|
||||||
|
|
||||||
2. Grant of Copyright License.
|
|
||||||
|
|
||||||
Subject to the terms and conditions of this License, each Contributor hereby
|
|
||||||
grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
|
|
||||||
irrevocable copyright license to reproduce, prepare Derivative Works of,
|
|
||||||
publicly display, publicly perform, sublicense, and distribute the Work and such
|
|
||||||
Derivative Works in Source or Object form.
|
|
||||||
|
|
||||||
3. Grant of Patent License.
|
|
||||||
|
|
||||||
Subject to the terms and conditions of this License, each Contributor hereby
|
|
||||||
grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
|
|
||||||
irrevocable (except as stated in this section) patent license to make, have
|
|
||||||
made, use, offer to sell, sell, import, and otherwise transfer the Work, where
|
|
||||||
such license applies only to those patent claims licensable by such Contributor
|
|
||||||
that are necessarily infringed by their Contribution(s) alone or by combination
|
|
||||||
of their Contribution(s) with the Work to which such Contribution(s) was
|
|
||||||
submitted. If You institute patent litigation against any entity (including a
|
|
||||||
cross-claim or counterclaim in a lawsuit) alleging that the Work or a
|
|
||||||
Contribution incorporated within the Work constitutes direct or contributory
|
|
||||||
patent infringement, then any patent licenses granted to You under this License
|
|
||||||
for that Work shall terminate as of the date such litigation is filed.
|
|
||||||
|
|
||||||
4. Redistribution.
|
|
||||||
|
|
||||||
You may reproduce and distribute copies of the Work or Derivative Works thereof
|
|
||||||
in any medium, with or without modifications, and in Source or Object form,
|
|
||||||
provided that You meet the following conditions:
|
|
||||||
|
|
||||||
You must give any other recipients of the Work or Derivative Works a copy of
|
|
||||||
this License; and
|
|
||||||
You must cause any modified files to carry prominent notices stating that You
|
|
||||||
changed the files; and
|
|
||||||
You must retain, in the Source form of any Derivative Works that You distribute,
|
|
||||||
all copyright, patent, trademark, and attribution notices from the Source form
|
|
||||||
of the Work, excluding those notices that do not pertain to any part of the
|
|
||||||
Derivative Works; and
|
|
||||||
If the Work includes a "NOTICE" text file as part of its distribution, then any
|
|
||||||
Derivative Works that You distribute must include a readable copy of the
|
|
||||||
attribution notices contained within such NOTICE file, excluding those notices
|
|
||||||
that do not pertain to any part of the Derivative Works, in at least one of the
|
|
||||||
following places: within a NOTICE text file distributed as part of the
|
|
||||||
Derivative Works; within the Source form or documentation, if provided along
|
|
||||||
with the Derivative Works; or, within a display generated by the Derivative
|
|
||||||
Works, if and wherever such third-party notices normally appear. The contents of
|
|
||||||
the NOTICE file are for informational purposes only and do not modify the
|
|
||||||
License. You may add Your own attribution notices within Derivative Works that
|
|
||||||
You distribute, alongside or as an addendum to the NOTICE text from the Work,
|
|
||||||
provided that such additional attribution notices cannot be construed as
|
|
||||||
modifying the License.
|
|
||||||
You may add Your own copyright statement to Your modifications and may provide
|
|
||||||
additional or different license terms and conditions for use, reproduction, or
|
|
||||||
distribution of Your modifications, or for any such Derivative Works as a whole,
|
|
||||||
provided Your use, reproduction, and distribution of the Work otherwise complies
|
|
||||||
with the conditions stated in this License.
|
|
||||||
|
|
||||||
5. Submission of Contributions.
|
|
||||||
|
|
||||||
Unless You explicitly state otherwise, any Contribution intentionally submitted
|
|
||||||
for inclusion in the Work by You to the Licensor shall be under the terms and
|
|
||||||
conditions of this License, without any additional terms or conditions.
|
|
||||||
Notwithstanding the above, nothing herein shall supersede or modify the terms of
|
|
||||||
any separate license agreement you may have executed with Licensor regarding
|
|
||||||
such Contributions.
|
|
||||||
|
|
||||||
6. Trademarks.
|
|
||||||
|
|
||||||
This License does not grant permission to use the trade names, trademarks,
|
|
||||||
service marks, or product names of the Licensor, except as required for
|
|
||||||
reasonable and customary use in describing the origin of the Work and
|
|
||||||
reproducing the content of the NOTICE file.
|
|
||||||
|
|
||||||
7. Disclaimer of Warranty.
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, Licensor provides the
|
|
||||||
Work (and each Contributor provides its Contributions) on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied,
|
|
||||||
including, without limitation, any warranties or conditions of TITLE,
|
|
||||||
NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are
|
|
||||||
solely responsible for determining the appropriateness of using or
|
|
||||||
redistributing the Work and assume any risks associated with Your exercise of
|
|
||||||
permissions under this License.
|
|
||||||
|
|
||||||
8. Limitation of Liability.
|
|
||||||
|
|
||||||
In no event and under no legal theory, whether in tort (including negligence),
|
|
||||||
contract, or otherwise, unless required by applicable law (such as deliberate
|
|
||||||
and grossly negligent acts) or agreed to in writing, shall any Contributor be
|
|
||||||
liable to You for damages, including any direct, indirect, special, incidental,
|
|
||||||
or consequential damages of any character arising as a result of this License or
|
|
||||||
out of the use or inability to use the Work (including but not limited to
|
|
||||||
damages for loss of goodwill, work stoppage, computer failure or malfunction, or
|
|
||||||
any and all other commercial damages or losses), even if such Contributor has
|
|
||||||
been advised of the possibility of such damages.
|
|
||||||
|
|
||||||
9. Accepting Warranty or Additional Liability.
|
|
||||||
|
|
||||||
While redistributing the Work or Derivative Works thereof, You may choose to
|
|
||||||
offer, and charge a fee for, acceptance of support, warranty, indemnity, or
|
|
||||||
other liability obligations and/or rights consistent with this License. However,
|
|
||||||
in accepting such obligations, You may act only on Your own behalf and on Your
|
|
||||||
sole responsibility, not on behalf of any other Contributor, and only if You
|
|
||||||
agree to indemnify, defend, and hold each Contributor harmless for any liability
|
|
||||||
incurred by, or claims asserted against, such Contributor by reason of your
|
|
||||||
accepting any such warranty or additional liability.
|
|
||||||
|
|
||||||
END OF TERMS AND CONDITIONS
|
|
||||||
|
|
||||||
APPENDIX: How to apply the Apache License to your work
|
|
||||||
|
|
||||||
To apply the Apache License to your work, attach the following boilerplate
|
|
||||||
notice, with the fields enclosed by brackets "[]" replaced with your own
|
|
||||||
identifying information. (Don't include the brackets!) The text should be
|
|
||||||
enclosed in the appropriate comment syntax for the file format. We also
|
|
||||||
recommend that a file or class name and description of purpose be included on
|
|
||||||
the same "printed page" as the copyright notice for easier identification within
|
|
||||||
third-party archives.
|
|
||||||
|
|
||||||
Copyright [yyyy] [name of copyright owner]
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
5
vendor/github.com/coreos/go-systemd/NOTICE
generated
vendored
5
vendor/github.com/coreos/go-systemd/NOTICE
generated
vendored
@ -1,5 +0,0 @@
|
|||||||
CoreOS Project
|
|
||||||
Copyright 2018 CoreOS, Inc
|
|
||||||
|
|
||||||
This product includes software developed at CoreOS, Inc.
|
|
||||||
(http://www.coreos.com/).
|
|
||||||
225
vendor/github.com/coreos/go-systemd/journal/journal.go
generated
vendored
225
vendor/github.com/coreos/go-systemd/journal/journal.go
generated
vendored
@ -1,225 +0,0 @@
|
|||||||
// Copyright 2015 CoreOS, Inc.
|
|
||||||
//
|
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
// you may not use this file except in compliance with the License.
|
|
||||||
// You may obtain a copy of the License at
|
|
||||||
//
|
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
//
|
|
||||||
// Unless required by applicable law or agreed to in writing, software
|
|
||||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
// See the License for the specific language governing permissions and
|
|
||||||
// limitations under the License.
|
|
||||||
|
|
||||||
// Package journal provides write bindings to the local systemd journal.
|
|
||||||
// It is implemented in pure Go and connects to the journal directly over its
|
|
||||||
// unix socket.
|
|
||||||
//
|
|
||||||
// To read from the journal, see the "sdjournal" package, which wraps the
|
|
||||||
// sd-journal a C API.
|
|
||||||
//
|
|
||||||
// http://www.freedesktop.org/software/systemd/man/systemd-journald.service.html
|
|
||||||
package journal
|
|
||||||
|
|
||||||
import (
|
|
||||||
"bytes"
|
|
||||||
"encoding/binary"
|
|
||||||
"errors"
|
|
||||||
"fmt"
|
|
||||||
"io"
|
|
||||||
"io/ioutil"
|
|
||||||
"net"
|
|
||||||
"os"
|
|
||||||
"strconv"
|
|
||||||
"strings"
|
|
||||||
"sync"
|
|
||||||
"sync/atomic"
|
|
||||||
"syscall"
|
|
||||||
"unsafe"
|
|
||||||
)
|
|
||||||
|
|
||||||
// Priority of a journal message
|
|
||||||
type Priority int
|
|
||||||
|
|
||||||
const (
|
|
||||||
PriEmerg Priority = iota
|
|
||||||
PriAlert
|
|
||||||
PriCrit
|
|
||||||
PriErr
|
|
||||||
PriWarning
|
|
||||||
PriNotice
|
|
||||||
PriInfo
|
|
||||||
PriDebug
|
|
||||||
)
|
|
||||||
|
|
||||||
var (
|
|
||||||
// This can be overridden at build-time:
|
|
||||||
// https://github.com/golang/go/wiki/GcToolchainTricks#including-build-information-in-the-executable
|
|
||||||
journalSocket = "/run/systemd/journal/socket"
|
|
||||||
|
|
||||||
// unixConnPtr atomically holds the local unconnected Unix-domain socket.
|
|
||||||
// Concrete safe pointer type: *net.UnixConn
|
|
||||||
unixConnPtr unsafe.Pointer
|
|
||||||
// onceConn ensures that unixConnPtr is initialized exactly once.
|
|
||||||
onceConn sync.Once
|
|
||||||
)
|
|
||||||
|
|
||||||
func init() {
|
|
||||||
onceConn.Do(initConn)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Enabled checks whether the local systemd journal is available for logging.
|
|
||||||
func Enabled() bool {
|
|
||||||
onceConn.Do(initConn)
|
|
||||||
|
|
||||||
if (*net.UnixConn)(atomic.LoadPointer(&unixConnPtr)) == nil {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
if _, err := net.Dial("unixgram", journalSocket); err != nil {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
|
|
||||||
// Send a message to the local systemd journal. vars is a map of journald
|
|
||||||
// fields to values. Fields must be composed of uppercase letters, numbers,
|
|
||||||
// and underscores, but must not start with an underscore. Within these
|
|
||||||
// restrictions, any arbitrary field name may be used. Some names have special
|
|
||||||
// significance: see the journalctl documentation
|
|
||||||
// (http://www.freedesktop.org/software/systemd/man/systemd.journal-fields.html)
|
|
||||||
// for more details. vars may be nil.
|
|
||||||
func Send(message string, priority Priority, vars map[string]string) error {
|
|
||||||
conn := (*net.UnixConn)(atomic.LoadPointer(&unixConnPtr))
|
|
||||||
if conn == nil {
|
|
||||||
return errors.New("could not initialize socket to journald")
|
|
||||||
}
|
|
||||||
|
|
||||||
socketAddr := &net.UnixAddr{
|
|
||||||
Name: journalSocket,
|
|
||||||
Net: "unixgram",
|
|
||||||
}
|
|
||||||
|
|
||||||
data := new(bytes.Buffer)
|
|
||||||
appendVariable(data, "PRIORITY", strconv.Itoa(int(priority)))
|
|
||||||
appendVariable(data, "MESSAGE", message)
|
|
||||||
for k, v := range vars {
|
|
||||||
appendVariable(data, k, v)
|
|
||||||
}
|
|
||||||
|
|
||||||
_, _, err := conn.WriteMsgUnix(data.Bytes(), nil, socketAddr)
|
|
||||||
if err == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
if !isSocketSpaceError(err) {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Large log entry, send it via tempfile and ancillary-fd.
|
|
||||||
file, err := tempFd()
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
defer file.Close()
|
|
||||||
_, err = io.Copy(file, data)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
rights := syscall.UnixRights(int(file.Fd()))
|
|
||||||
_, _, err = conn.WriteMsgUnix([]byte{}, rights, socketAddr)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// Print prints a message to the local systemd journal using Send().
|
|
||||||
func Print(priority Priority, format string, a ...interface{}) error {
|
|
||||||
return Send(fmt.Sprintf(format, a...), priority, nil)
|
|
||||||
}
|
|
||||||
|
|
||||||
func appendVariable(w io.Writer, name, value string) {
|
|
||||||
if err := validVarName(name); err != nil {
|
|
||||||
fmt.Fprintf(os.Stderr, "variable name %s contains invalid character, ignoring\n", name)
|
|
||||||
}
|
|
||||||
if strings.ContainsRune(value, '\n') {
|
|
||||||
/* When the value contains a newline, we write:
|
|
||||||
* - the variable name, followed by a newline
|
|
||||||
* - the size (in 64bit little endian format)
|
|
||||||
* - the data, followed by a newline
|
|
||||||
*/
|
|
||||||
fmt.Fprintln(w, name)
|
|
||||||
binary.Write(w, binary.LittleEndian, uint64(len(value)))
|
|
||||||
fmt.Fprintln(w, value)
|
|
||||||
} else {
|
|
||||||
/* just write the variable and value all on one line */
|
|
||||||
fmt.Fprintf(w, "%s=%s\n", name, value)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// validVarName validates a variable name to make sure journald will accept it.
|
|
||||||
// The variable name must be in uppercase and consist only of characters,
|
|
||||||
// numbers and underscores, and may not begin with an underscore:
|
|
||||||
// https://www.freedesktop.org/software/systemd/man/sd_journal_print.html
|
|
||||||
func validVarName(name string) error {
|
|
||||||
if name == "" {
|
|
||||||
return errors.New("Empty variable name")
|
|
||||||
} else if name[0] == '_' {
|
|
||||||
return errors.New("Variable name begins with an underscore")
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, c := range name {
|
|
||||||
if !(('A' <= c && c <= 'Z') || ('0' <= c && c <= '9') || c == '_') {
|
|
||||||
return errors.New("Variable name contains invalid characters")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// isSocketSpaceError checks whether the error is signaling
|
|
||||||
// an "overlarge message" condition.
|
|
||||||
func isSocketSpaceError(err error) bool {
|
|
||||||
opErr, ok := err.(*net.OpError)
|
|
||||||
if !ok || opErr == nil {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
sysErr, ok := opErr.Err.(*os.SyscallError)
|
|
||||||
if !ok || sysErr == nil {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
return sysErr.Err == syscall.EMSGSIZE || sysErr.Err == syscall.ENOBUFS
|
|
||||||
}
|
|
||||||
|
|
||||||
// tempFd creates a temporary, unlinked file under `/dev/shm`.
|
|
||||||
func tempFd() (*os.File, error) {
|
|
||||||
file, err := ioutil.TempFile("/dev/shm/", "journal.XXXXX")
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
err = syscall.Unlink(file.Name())
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return file, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// initConn initializes the global `unixConnPtr` socket.
|
|
||||||
// It is meant to be called exactly once, at program startup.
|
|
||||||
func initConn() {
|
|
||||||
autobind, err := net.ResolveUnixAddr("unixgram", "")
|
|
||||||
if err != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
sock, err := net.ListenUnixgram("unixgram", autobind)
|
|
||||||
if err != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
atomic.StorePointer(&unixConnPtr, unsafe.Pointer(sock))
|
|
||||||
}
|
|
||||||
202
vendor/github.com/coreos/pkg/LICENSE
generated
vendored
202
vendor/github.com/coreos/pkg/LICENSE
generated
vendored
@ -1,202 +0,0 @@
|
|||||||
Apache License
|
|
||||||
Version 2.0, January 2004
|
|
||||||
http://www.apache.org/licenses/
|
|
||||||
|
|
||||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
|
||||||
|
|
||||||
1. Definitions.
|
|
||||||
|
|
||||||
"License" shall mean the terms and conditions for use, reproduction,
|
|
||||||
and distribution as defined by Sections 1 through 9 of this document.
|
|
||||||
|
|
||||||
"Licensor" shall mean the copyright owner or entity authorized by
|
|
||||||
the copyright owner that is granting the License.
|
|
||||||
|
|
||||||
"Legal Entity" shall mean the union of the acting entity and all
|
|
||||||
other entities that control, are controlled by, or are under common
|
|
||||||
control with that entity. For the purposes of this definition,
|
|
||||||
"control" means (i) the power, direct or indirect, to cause the
|
|
||||||
direction or management of such entity, whether by contract or
|
|
||||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
|
||||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
|
||||||
|
|
||||||
"You" (or "Your") shall mean an individual or Legal Entity
|
|
||||||
exercising permissions granted by this License.
|
|
||||||
|
|
||||||
"Source" form shall mean the preferred form for making modifications,
|
|
||||||
including but not limited to software source code, documentation
|
|
||||||
source, and configuration files.
|
|
||||||
|
|
||||||
"Object" form shall mean any form resulting from mechanical
|
|
||||||
transformation or translation of a Source form, including but
|
|
||||||
not limited to compiled object code, generated documentation,
|
|
||||||
and conversions to other media types.
|
|
||||||
|
|
||||||
"Work" shall mean the work of authorship, whether in Source or
|
|
||||||
Object form, made available under the License, as indicated by a
|
|
||||||
copyright notice that is included in or attached to the work
|
|
||||||
(an example is provided in the Appendix below).
|
|
||||||
|
|
||||||
"Derivative Works" shall mean any work, whether in Source or Object
|
|
||||||
form, that is based on (or derived from) the Work and for which the
|
|
||||||
editorial revisions, annotations, elaborations, or other modifications
|
|
||||||
represent, as a whole, an original work of authorship. For the purposes
|
|
||||||
of this License, Derivative Works shall not include works that remain
|
|
||||||
separable from, or merely link (or bind by name) to the interfaces of,
|
|
||||||
the Work and Derivative Works thereof.
|
|
||||||
|
|
||||||
"Contribution" shall mean any work of authorship, including
|
|
||||||
the original version of the Work and any modifications or additions
|
|
||||||
to that Work or Derivative Works thereof, that is intentionally
|
|
||||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
|
||||||
or by an individual or Legal Entity authorized to submit on behalf of
|
|
||||||
the copyright owner. For the purposes of this definition, "submitted"
|
|
||||||
means any form of electronic, verbal, or written communication sent
|
|
||||||
to the Licensor or its representatives, including but not limited to
|
|
||||||
communication on electronic mailing lists, source code control systems,
|
|
||||||
and issue tracking systems that are managed by, or on behalf of, the
|
|
||||||
Licensor for the purpose of discussing and improving the Work, but
|
|
||||||
excluding communication that is conspicuously marked or otherwise
|
|
||||||
designated in writing by the copyright owner as "Not a Contribution."
|
|
||||||
|
|
||||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
|
||||||
on behalf of whom a Contribution has been received by Licensor and
|
|
||||||
subsequently incorporated within the Work.
|
|
||||||
|
|
||||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
|
||||||
this License, each Contributor hereby grants to You a perpetual,
|
|
||||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
||||||
copyright license to reproduce, prepare Derivative Works of,
|
|
||||||
publicly display, publicly perform, sublicense, and distribute the
|
|
||||||
Work and such Derivative Works in Source or Object form.
|
|
||||||
|
|
||||||
3. Grant of Patent License. Subject to the terms and conditions of
|
|
||||||
this License, each Contributor hereby grants to You a perpetual,
|
|
||||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
||||||
(except as stated in this section) patent license to make, have made,
|
|
||||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
|
||||||
where such license applies only to those patent claims licensable
|
|
||||||
by such Contributor that are necessarily infringed by their
|
|
||||||
Contribution(s) alone or by combination of their Contribution(s)
|
|
||||||
with the Work to which such Contribution(s) was submitted. If You
|
|
||||||
institute patent litigation against any entity (including a
|
|
||||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
|
||||||
or a Contribution incorporated within the Work constitutes direct
|
|
||||||
or contributory patent infringement, then any patent licenses
|
|
||||||
granted to You under this License for that Work shall terminate
|
|
||||||
as of the date such litigation is filed.
|
|
||||||
|
|
||||||
4. Redistribution. You may reproduce and distribute copies of the
|
|
||||||
Work or Derivative Works thereof in any medium, with or without
|
|
||||||
modifications, and in Source or Object form, provided that You
|
|
||||||
meet the following conditions:
|
|
||||||
|
|
||||||
(a) You must give any other recipients of the Work or
|
|
||||||
Derivative Works a copy of this License; and
|
|
||||||
|
|
||||||
(b) You must cause any modified files to carry prominent notices
|
|
||||||
stating that You changed the files; and
|
|
||||||
|
|
||||||
(c) You must retain, in the Source form of any Derivative Works
|
|
||||||
that You distribute, all copyright, patent, trademark, and
|
|
||||||
attribution notices from the Source form of the Work,
|
|
||||||
excluding those notices that do not pertain to any part of
|
|
||||||
the Derivative Works; and
|
|
||||||
|
|
||||||
(d) If the Work includes a "NOTICE" text file as part of its
|
|
||||||
distribution, then any Derivative Works that You distribute must
|
|
||||||
include a readable copy of the attribution notices contained
|
|
||||||
within such NOTICE file, excluding those notices that do not
|
|
||||||
pertain to any part of the Derivative Works, in at least one
|
|
||||||
of the following places: within a NOTICE text file distributed
|
|
||||||
as part of the Derivative Works; within the Source form or
|
|
||||||
documentation, if provided along with the Derivative Works; or,
|
|
||||||
within a display generated by the Derivative Works, if and
|
|
||||||
wherever such third-party notices normally appear. The contents
|
|
||||||
of the NOTICE file are for informational purposes only and
|
|
||||||
do not modify the License. You may add Your own attribution
|
|
||||||
notices within Derivative Works that You distribute, alongside
|
|
||||||
or as an addendum to the NOTICE text from the Work, provided
|
|
||||||
that such additional attribution notices cannot be construed
|
|
||||||
as modifying the License.
|
|
||||||
|
|
||||||
You may add Your own copyright statement to Your modifications and
|
|
||||||
may provide additional or different license terms and conditions
|
|
||||||
for use, reproduction, or distribution of Your modifications, or
|
|
||||||
for any such Derivative Works as a whole, provided Your use,
|
|
||||||
reproduction, and distribution of the Work otherwise complies with
|
|
||||||
the conditions stated in this License.
|
|
||||||
|
|
||||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
|
||||||
any Contribution intentionally submitted for inclusion in the Work
|
|
||||||
by You to the Licensor shall be under the terms and conditions of
|
|
||||||
this License, without any additional terms or conditions.
|
|
||||||
Notwithstanding the above, nothing herein shall supersede or modify
|
|
||||||
the terms of any separate license agreement you may have executed
|
|
||||||
with Licensor regarding such Contributions.
|
|
||||||
|
|
||||||
6. Trademarks. This License does not grant permission to use the trade
|
|
||||||
names, trademarks, service marks, or product names of the Licensor,
|
|
||||||
except as required for reasonable and customary use in describing the
|
|
||||||
origin of the Work and reproducing the content of the NOTICE file.
|
|
||||||
|
|
||||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
|
||||||
agreed to in writing, Licensor provides the Work (and each
|
|
||||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
||||||
implied, including, without limitation, any warranties or conditions
|
|
||||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
|
||||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
|
||||||
appropriateness of using or redistributing the Work and assume any
|
|
||||||
risks associated with Your exercise of permissions under this License.
|
|
||||||
|
|
||||||
8. Limitation of Liability. In no event and under no legal theory,
|
|
||||||
whether in tort (including negligence), contract, or otherwise,
|
|
||||||
unless required by applicable law (such as deliberate and grossly
|
|
||||||
negligent acts) or agreed to in writing, shall any Contributor be
|
|
||||||
liable to You for damages, including any direct, indirect, special,
|
|
||||||
incidental, or consequential damages of any character arising as a
|
|
||||||
result of this License or out of the use or inability to use the
|
|
||||||
Work (including but not limited to damages for loss of goodwill,
|
|
||||||
work stoppage, computer failure or malfunction, or any and all
|
|
||||||
other commercial damages or losses), even if such Contributor
|
|
||||||
has been advised of the possibility of such damages.
|
|
||||||
|
|
||||||
9. Accepting Warranty or Additional Liability. While redistributing
|
|
||||||
the Work or Derivative Works thereof, You may choose to offer,
|
|
||||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
|
||||||
or other liability obligations and/or rights consistent with this
|
|
||||||
License. However, in accepting such obligations, You may act only
|
|
||||||
on Your own behalf and on Your sole responsibility, not on behalf
|
|
||||||
of any other Contributor, and only if You agree to indemnify,
|
|
||||||
defend, and hold each Contributor harmless for any liability
|
|
||||||
incurred by, or claims asserted against, such Contributor by reason
|
|
||||||
of your accepting any such warranty or additional liability.
|
|
||||||
|
|
||||||
END OF TERMS AND CONDITIONS
|
|
||||||
|
|
||||||
APPENDIX: How to apply the Apache License to your work.
|
|
||||||
|
|
||||||
To apply the Apache License to your work, attach the following
|
|
||||||
boilerplate notice, with the fields enclosed by brackets "{}"
|
|
||||||
replaced with your own identifying information. (Don't include
|
|
||||||
the brackets!) The text should be enclosed in the appropriate
|
|
||||||
comment syntax for the file format. We also recommend that a
|
|
||||||
file or class name and description of purpose be included on the
|
|
||||||
same "printed page" as the copyright notice for easier
|
|
||||||
identification within third-party archives.
|
|
||||||
|
|
||||||
Copyright {yyyy} {name of copyright owner}
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
5
vendor/github.com/coreos/pkg/NOTICE
generated
vendored
5
vendor/github.com/coreos/pkg/NOTICE
generated
vendored
@ -1,5 +0,0 @@
|
|||||||
CoreOS Project
|
|
||||||
Copyright 2014 CoreOS, Inc
|
|
||||||
|
|
||||||
This product includes software developed at CoreOS, Inc.
|
|
||||||
(http://www.coreos.com/).
|
|
||||||
39
vendor/github.com/coreos/pkg/capnslog/README.md
generated
vendored
39
vendor/github.com/coreos/pkg/capnslog/README.md
generated
vendored
@ -1,39 +0,0 @@
|
|||||||
# capnslog, the CoreOS logging package
|
|
||||||
|
|
||||||
There are far too many logging packages out there, with varying degrees of licenses, far too many features (colorization, all sorts of log frameworks) or are just a pain to use (lack of `Fatalln()`?).
|
|
||||||
capnslog provides a simple but consistent logging interface suitable for all kinds of projects.
|
|
||||||
|
|
||||||
### Design Principles
|
|
||||||
|
|
||||||
##### `package main` is the place where logging gets turned on and routed
|
|
||||||
|
|
||||||
A library should not touch log options, only generate log entries. Libraries are silent until main lets them speak.
|
|
||||||
|
|
||||||
##### All log options are runtime-configurable.
|
|
||||||
|
|
||||||
Still the job of `main` to expose these configurations. `main` may delegate this to, say, a configuration webhook, but does so explicitly.
|
|
||||||
|
|
||||||
##### There is one log object per package. It is registered under its repository and package name.
|
|
||||||
|
|
||||||
`main` activates logging for its repository and any dependency repositories it would also like to have output in its logstream. `main` also dictates at which level each subpackage logs.
|
|
||||||
|
|
||||||
##### There is *one* output stream, and it is an `io.Writer` composed with a formatter.
|
|
||||||
|
|
||||||
Splitting streams is probably not the job of your program, but rather, your log aggregation framework. If you must split output streams, again, `main` configures this and you can write a very simple two-output struct that satisfies io.Writer.
|
|
||||||
|
|
||||||
Fancy colorful formatting and JSON output are beyond the scope of a basic logging framework -- they're application/log-collector dependent. These are, at best, provided as options, but more likely, provided by your application.
|
|
||||||
|
|
||||||
##### Log objects are an interface
|
|
||||||
|
|
||||||
An object knows best how to print itself. Log objects can collect more interesting metadata if they wish, however, because text isn't going away anytime soon, they must all be marshalable to text. The simplest log object is a string, which returns itself. If you wish to do more fancy tricks for printing your log objects, see also JSON output -- introspect and write a formatter which can handle your advanced log interface. Making strings is the only thing guaranteed.
|
|
||||||
|
|
||||||
##### Log levels have specific meanings:
|
|
||||||
|
|
||||||
* Critical: Unrecoverable. Must fail.
|
|
||||||
* Error: Data has been lost, a request has failed for a bad reason, or a required resource has been lost
|
|
||||||
* Warning: (Hopefully) Temporary conditions that may cause errors, but may work fine. A replica disappearing (that may reconnect) is a warning.
|
|
||||||
* Notice: Normal, but important (uncommon) log information.
|
|
||||||
* Info: Normal, working log information, everything is fine, but helpful notices for auditing or common operations.
|
|
||||||
* Debug: Everything is still fine, but even common operations may be logged, and less helpful but more quantity of notices.
|
|
||||||
* Trace: Anything goes, from logging every function call as part of a common operation, to tracing execution of a query.
|
|
||||||
|
|
||||||
157
vendor/github.com/coreos/pkg/capnslog/formatters.go
generated
vendored
157
vendor/github.com/coreos/pkg/capnslog/formatters.go
generated
vendored
@ -1,157 +0,0 @@
|
|||||||
// Copyright 2015 CoreOS, Inc.
|
|
||||||
//
|
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
// you may not use this file except in compliance with the License.
|
|
||||||
// You may obtain a copy of the License at
|
|
||||||
//
|
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
//
|
|
||||||
// Unless required by applicable law or agreed to in writing, software
|
|
||||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
// See the License for the specific language governing permissions and
|
|
||||||
// limitations under the License.
|
|
||||||
|
|
||||||
package capnslog
|
|
||||||
|
|
||||||
import (
|
|
||||||
"bufio"
|
|
||||||
"fmt"
|
|
||||||
"io"
|
|
||||||
"log"
|
|
||||||
"runtime"
|
|
||||||
"strings"
|
|
||||||
"time"
|
|
||||||
)
|
|
||||||
|
|
||||||
type Formatter interface {
|
|
||||||
Format(pkg string, level LogLevel, depth int, entries ...interface{})
|
|
||||||
Flush()
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewStringFormatter(w io.Writer) Formatter {
|
|
||||||
return &StringFormatter{
|
|
||||||
w: bufio.NewWriter(w),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
type StringFormatter struct {
|
|
||||||
w *bufio.Writer
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *StringFormatter) Format(pkg string, l LogLevel, i int, entries ...interface{}) {
|
|
||||||
now := time.Now().UTC()
|
|
||||||
s.w.WriteString(now.Format(time.RFC3339))
|
|
||||||
s.w.WriteByte(' ')
|
|
||||||
writeEntries(s.w, pkg, l, i, entries...)
|
|
||||||
s.Flush()
|
|
||||||
}
|
|
||||||
|
|
||||||
func writeEntries(w *bufio.Writer, pkg string, _ LogLevel, _ int, entries ...interface{}) {
|
|
||||||
if pkg != "" {
|
|
||||||
w.WriteString(pkg + ": ")
|
|
||||||
}
|
|
||||||
str := fmt.Sprint(entries...)
|
|
||||||
endsInNL := strings.HasSuffix(str, "\n")
|
|
||||||
w.WriteString(str)
|
|
||||||
if !endsInNL {
|
|
||||||
w.WriteString("\n")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *StringFormatter) Flush() {
|
|
||||||
s.w.Flush()
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewPrettyFormatter(w io.Writer, debug bool) Formatter {
|
|
||||||
return &PrettyFormatter{
|
|
||||||
w: bufio.NewWriter(w),
|
|
||||||
debug: debug,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
type PrettyFormatter struct {
|
|
||||||
w *bufio.Writer
|
|
||||||
debug bool
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *PrettyFormatter) Format(pkg string, l LogLevel, depth int, entries ...interface{}) {
|
|
||||||
now := time.Now()
|
|
||||||
ts := now.Format("2006-01-02 15:04:05")
|
|
||||||
c.w.WriteString(ts)
|
|
||||||
ms := now.Nanosecond() / 1000
|
|
||||||
c.w.WriteString(fmt.Sprintf(".%06d", ms))
|
|
||||||
if c.debug {
|
|
||||||
_, file, line, ok := runtime.Caller(depth) // It's always the same number of frames to the user's call.
|
|
||||||
if !ok {
|
|
||||||
file = "???"
|
|
||||||
line = 1
|
|
||||||
} else {
|
|
||||||
slash := strings.LastIndex(file, "/")
|
|
||||||
if slash >= 0 {
|
|
||||||
file = file[slash+1:]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if line < 0 {
|
|
||||||
line = 0 // not a real line number
|
|
||||||
}
|
|
||||||
c.w.WriteString(fmt.Sprintf(" [%s:%d]", file, line))
|
|
||||||
}
|
|
||||||
c.w.WriteString(fmt.Sprint(" ", l.Char(), " | "))
|
|
||||||
writeEntries(c.w, pkg, l, depth, entries...)
|
|
||||||
c.Flush()
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *PrettyFormatter) Flush() {
|
|
||||||
c.w.Flush()
|
|
||||||
}
|
|
||||||
|
|
||||||
// LogFormatter emulates the form of the traditional built-in logger.
|
|
||||||
type LogFormatter struct {
|
|
||||||
logger *log.Logger
|
|
||||||
prefix string
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewLogFormatter is a helper to produce a new LogFormatter struct. It uses the
|
|
||||||
// golang log package to actually do the logging work so that logs look similar.
|
|
||||||
func NewLogFormatter(w io.Writer, prefix string, flag int) Formatter {
|
|
||||||
return &LogFormatter{
|
|
||||||
logger: log.New(w, "", flag), // don't use prefix here
|
|
||||||
prefix: prefix, // save it instead
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Format builds a log message for the LogFormatter. The LogLevel is ignored.
|
|
||||||
func (lf *LogFormatter) Format(pkg string, _ LogLevel, _ int, entries ...interface{}) {
|
|
||||||
str := fmt.Sprint(entries...)
|
|
||||||
prefix := lf.prefix
|
|
||||||
if pkg != "" {
|
|
||||||
prefix = fmt.Sprintf("%s%s: ", prefix, pkg)
|
|
||||||
}
|
|
||||||
lf.logger.Output(5, fmt.Sprintf("%s%v", prefix, str)) // call depth is 5
|
|
||||||
}
|
|
||||||
|
|
||||||
// Flush is included so that the interface is complete, but is a no-op.
|
|
||||||
func (lf *LogFormatter) Flush() {
|
|
||||||
// noop
|
|
||||||
}
|
|
||||||
|
|
||||||
// NilFormatter is a no-op log formatter that does nothing.
|
|
||||||
type NilFormatter struct {
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewNilFormatter is a helper to produce a new LogFormatter struct. It logs no
|
|
||||||
// messages so that you can cause part of your logging to be silent.
|
|
||||||
func NewNilFormatter() Formatter {
|
|
||||||
return &NilFormatter{}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Format does nothing.
|
|
||||||
func (_ *NilFormatter) Format(_ string, _ LogLevel, _ int, _ ...interface{}) {
|
|
||||||
// noop
|
|
||||||
}
|
|
||||||
|
|
||||||
// Flush is included so that the interface is complete, but is a no-op.
|
|
||||||
func (_ *NilFormatter) Flush() {
|
|
||||||
// noop
|
|
||||||
}
|
|
||||||
96
vendor/github.com/coreos/pkg/capnslog/glog_formatter.go
generated
vendored
96
vendor/github.com/coreos/pkg/capnslog/glog_formatter.go
generated
vendored
@ -1,96 +0,0 @@
|
|||||||
// Copyright 2015 CoreOS, Inc.
|
|
||||||
//
|
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
// you may not use this file except in compliance with the License.
|
|
||||||
// You may obtain a copy of the License at
|
|
||||||
//
|
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
//
|
|
||||||
// Unless required by applicable law or agreed to in writing, software
|
|
||||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
// See the License for the specific language governing permissions and
|
|
||||||
// limitations under the License.
|
|
||||||
|
|
||||||
package capnslog
|
|
||||||
|
|
||||||
import (
|
|
||||||
"bufio"
|
|
||||||
"bytes"
|
|
||||||
"io"
|
|
||||||
"os"
|
|
||||||
"runtime"
|
|
||||||
"strconv"
|
|
||||||
"strings"
|
|
||||||
"time"
|
|
||||||
)
|
|
||||||
|
|
||||||
var pid = os.Getpid()
|
|
||||||
|
|
||||||
type GlogFormatter struct {
|
|
||||||
StringFormatter
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewGlogFormatter(w io.Writer) *GlogFormatter {
|
|
||||||
g := &GlogFormatter{}
|
|
||||||
g.w = bufio.NewWriter(w)
|
|
||||||
return g
|
|
||||||
}
|
|
||||||
|
|
||||||
func (g GlogFormatter) Format(pkg string, level LogLevel, depth int, entries ...interface{}) {
|
|
||||||
g.w.Write(GlogHeader(level, depth+1))
|
|
||||||
g.StringFormatter.Format(pkg, level, depth+1, entries...)
|
|
||||||
}
|
|
||||||
|
|
||||||
func GlogHeader(level LogLevel, depth int) []byte {
|
|
||||||
// Lmmdd hh:mm:ss.uuuuuu threadid file:line]
|
|
||||||
now := time.Now().UTC()
|
|
||||||
_, file, line, ok := runtime.Caller(depth) // It's always the same number of frames to the user's call.
|
|
||||||
if !ok {
|
|
||||||
file = "???"
|
|
||||||
line = 1
|
|
||||||
} else {
|
|
||||||
slash := strings.LastIndex(file, "/")
|
|
||||||
if slash >= 0 {
|
|
||||||
file = file[slash+1:]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if line < 0 {
|
|
||||||
line = 0 // not a real line number
|
|
||||||
}
|
|
||||||
buf := &bytes.Buffer{}
|
|
||||||
buf.Grow(30)
|
|
||||||
_, month, day := now.Date()
|
|
||||||
hour, minute, second := now.Clock()
|
|
||||||
buf.WriteString(level.Char())
|
|
||||||
twoDigits(buf, int(month))
|
|
||||||
twoDigits(buf, day)
|
|
||||||
buf.WriteByte(' ')
|
|
||||||
twoDigits(buf, hour)
|
|
||||||
buf.WriteByte(':')
|
|
||||||
twoDigits(buf, minute)
|
|
||||||
buf.WriteByte(':')
|
|
||||||
twoDigits(buf, second)
|
|
||||||
buf.WriteByte('.')
|
|
||||||
buf.WriteString(strconv.Itoa(now.Nanosecond() / 1000))
|
|
||||||
buf.WriteByte('Z')
|
|
||||||
buf.WriteByte(' ')
|
|
||||||
buf.WriteString(strconv.Itoa(pid))
|
|
||||||
buf.WriteByte(' ')
|
|
||||||
buf.WriteString(file)
|
|
||||||
buf.WriteByte(':')
|
|
||||||
buf.WriteString(strconv.Itoa(line))
|
|
||||||
buf.WriteByte(']')
|
|
||||||
buf.WriteByte(' ')
|
|
||||||
return buf.Bytes()
|
|
||||||
}
|
|
||||||
|
|
||||||
const digits = "0123456789"
|
|
||||||
|
|
||||||
func twoDigits(b *bytes.Buffer, d int) {
|
|
||||||
c2 := digits[d%10]
|
|
||||||
d /= 10
|
|
||||||
c1 := digits[d%10]
|
|
||||||
b.WriteByte(c1)
|
|
||||||
b.WriteByte(c2)
|
|
||||||
}
|
|
||||||
49
vendor/github.com/coreos/pkg/capnslog/init.go
generated
vendored
49
vendor/github.com/coreos/pkg/capnslog/init.go
generated
vendored
@ -1,49 +0,0 @@
|
|||||||
// Copyright 2015 CoreOS, Inc.
|
|
||||||
//
|
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
// you may not use this file except in compliance with the License.
|
|
||||||
// You may obtain a copy of the License at
|
|
||||||
//
|
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
//
|
|
||||||
// Unless required by applicable law or agreed to in writing, software
|
|
||||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
// See the License for the specific language governing permissions and
|
|
||||||
// limitations under the License.
|
|
||||||
//
|
|
||||||
// +build !windows
|
|
||||||
|
|
||||||
package capnslog
|
|
||||||
|
|
||||||
import (
|
|
||||||
"io"
|
|
||||||
"os"
|
|
||||||
"syscall"
|
|
||||||
)
|
|
||||||
|
|
||||||
// Here's where the opinionation comes in. We need some sensible defaults,
|
|
||||||
// especially after taking over the log package. Your project (whatever it may
|
|
||||||
// be) may see things differently. That's okay; there should be no defaults in
|
|
||||||
// the main package that cannot be controlled or overridden programatically,
|
|
||||||
// otherwise it's a bug. Doing so is creating your own init_log.go file much
|
|
||||||
// like this one.
|
|
||||||
|
|
||||||
func init() {
|
|
||||||
initHijack()
|
|
||||||
|
|
||||||
// Go `log` pacakge uses os.Stderr.
|
|
||||||
SetFormatter(NewDefaultFormatter(os.Stderr))
|
|
||||||
SetGlobalLogLevel(INFO)
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewDefaultFormatter(out io.Writer) Formatter {
|
|
||||||
if syscall.Getppid() == 1 {
|
|
||||||
// We're running under init, which may be systemd.
|
|
||||||
f, err := NewJournaldFormatter()
|
|
||||||
if err == nil {
|
|
||||||
return f
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return NewPrettyFormatter(out, false)
|
|
||||||
}
|
|
||||||
25
vendor/github.com/coreos/pkg/capnslog/init_windows.go
generated
vendored
25
vendor/github.com/coreos/pkg/capnslog/init_windows.go
generated
vendored
@ -1,25 +0,0 @@
|
|||||||
// Copyright 2015 CoreOS, Inc.
|
|
||||||
//
|
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
// you may not use this file except in compliance with the License.
|
|
||||||
// You may obtain a copy of the License at
|
|
||||||
//
|
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
//
|
|
||||||
// Unless required by applicable law or agreed to in writing, software
|
|
||||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
// See the License for the specific language governing permissions and
|
|
||||||
// limitations under the License.
|
|
||||||
|
|
||||||
package capnslog
|
|
||||||
|
|
||||||
import "os"
|
|
||||||
|
|
||||||
func init() {
|
|
||||||
initHijack()
|
|
||||||
|
|
||||||
// Go `log` package uses os.Stderr.
|
|
||||||
SetFormatter(NewPrettyFormatter(os.Stderr, false))
|
|
||||||
SetGlobalLogLevel(INFO)
|
|
||||||
}
|
|
||||||
68
vendor/github.com/coreos/pkg/capnslog/journald_formatter.go
generated
vendored
68
vendor/github.com/coreos/pkg/capnslog/journald_formatter.go
generated
vendored
@ -1,68 +0,0 @@
|
|||||||
// Copyright 2015 CoreOS, Inc.
|
|
||||||
//
|
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
// you may not use this file except in compliance with the License.
|
|
||||||
// You may obtain a copy of the License at
|
|
||||||
//
|
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
//
|
|
||||||
// Unless required by applicable law or agreed to in writing, software
|
|
||||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
// See the License for the specific language governing permissions and
|
|
||||||
// limitations under the License.
|
|
||||||
//
|
|
||||||
// +build !windows
|
|
||||||
|
|
||||||
package capnslog
|
|
||||||
|
|
||||||
import (
|
|
||||||
"errors"
|
|
||||||
"fmt"
|
|
||||||
"os"
|
|
||||||
"path/filepath"
|
|
||||||
|
|
||||||
"github.com/coreos/go-systemd/journal"
|
|
||||||
)
|
|
||||||
|
|
||||||
func NewJournaldFormatter() (Formatter, error) {
|
|
||||||
if !journal.Enabled() {
|
|
||||||
return nil, errors.New("No systemd detected")
|
|
||||||
}
|
|
||||||
return &journaldFormatter{}, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
type journaldFormatter struct{}
|
|
||||||
|
|
||||||
func (j *journaldFormatter) Format(pkg string, l LogLevel, _ int, entries ...interface{}) {
|
|
||||||
var pri journal.Priority
|
|
||||||
switch l {
|
|
||||||
case CRITICAL:
|
|
||||||
pri = journal.PriCrit
|
|
||||||
case ERROR:
|
|
||||||
pri = journal.PriErr
|
|
||||||
case WARNING:
|
|
||||||
pri = journal.PriWarning
|
|
||||||
case NOTICE:
|
|
||||||
pri = journal.PriNotice
|
|
||||||
case INFO:
|
|
||||||
pri = journal.PriInfo
|
|
||||||
case DEBUG:
|
|
||||||
pri = journal.PriDebug
|
|
||||||
case TRACE:
|
|
||||||
pri = journal.PriDebug
|
|
||||||
default:
|
|
||||||
panic("Unhandled loglevel")
|
|
||||||
}
|
|
||||||
msg := fmt.Sprint(entries...)
|
|
||||||
tags := map[string]string{
|
|
||||||
"PACKAGE": pkg,
|
|
||||||
"SYSLOG_IDENTIFIER": filepath.Base(os.Args[0]),
|
|
||||||
}
|
|
||||||
err := journal.Send(msg, pri, tags)
|
|
||||||
if err != nil {
|
|
||||||
fmt.Fprintln(os.Stderr, err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (j *journaldFormatter) Flush() {}
|
|
||||||
39
vendor/github.com/coreos/pkg/capnslog/log_hijack.go
generated
vendored
39
vendor/github.com/coreos/pkg/capnslog/log_hijack.go
generated
vendored
@ -1,39 +0,0 @@
|
|||||||
// Copyright 2015 CoreOS, Inc.
|
|
||||||
//
|
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
// you may not use this file except in compliance with the License.
|
|
||||||
// You may obtain a copy of the License at
|
|
||||||
//
|
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
//
|
|
||||||
// Unless required by applicable law or agreed to in writing, software
|
|
||||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
// See the License for the specific language governing permissions and
|
|
||||||
// limitations under the License.
|
|
||||||
|
|
||||||
package capnslog
|
|
||||||
|
|
||||||
import (
|
|
||||||
"log"
|
|
||||||
)
|
|
||||||
|
|
||||||
func initHijack() {
|
|
||||||
pkg := NewPackageLogger("log", "")
|
|
||||||
w := packageWriter{pkg}
|
|
||||||
log.SetFlags(0)
|
|
||||||
log.SetPrefix("")
|
|
||||||
log.SetOutput(w)
|
|
||||||
}
|
|
||||||
|
|
||||||
type packageWriter struct {
|
|
||||||
pl *PackageLogger
|
|
||||||
}
|
|
||||||
|
|
||||||
func (p packageWriter) Write(b []byte) (int, error) {
|
|
||||||
if p.pl.level < INFO {
|
|
||||||
return 0, nil
|
|
||||||
}
|
|
||||||
p.pl.internalLog(calldepth+2, INFO, string(b))
|
|
||||||
return len(b), nil
|
|
||||||
}
|
|
||||||
245
vendor/github.com/coreos/pkg/capnslog/logmap.go
generated
vendored
245
vendor/github.com/coreos/pkg/capnslog/logmap.go
generated
vendored
@ -1,245 +0,0 @@
|
|||||||
// Copyright 2015 CoreOS, Inc.
|
|
||||||
//
|
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
// you may not use this file except in compliance with the License.
|
|
||||||
// You may obtain a copy of the License at
|
|
||||||
//
|
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
//
|
|
||||||
// Unless required by applicable law or agreed to in writing, software
|
|
||||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
// See the License for the specific language governing permissions and
|
|
||||||
// limitations under the License.
|
|
||||||
|
|
||||||
package capnslog
|
|
||||||
|
|
||||||
import (
|
|
||||||
"errors"
|
|
||||||
"strings"
|
|
||||||
"sync"
|
|
||||||
)
|
|
||||||
|
|
||||||
// LogLevel is the set of all log levels.
|
|
||||||
type LogLevel int8
|
|
||||||
|
|
||||||
const (
|
|
||||||
// CRITICAL is the lowest log level; only errors which will end the program will be propagated.
|
|
||||||
CRITICAL LogLevel = iota - 1
|
|
||||||
// ERROR is for errors that are not fatal but lead to troubling behavior.
|
|
||||||
ERROR
|
|
||||||
// WARNING is for errors which are not fatal and not errors, but are unusual. Often sourced from misconfigurations.
|
|
||||||
WARNING
|
|
||||||
// NOTICE is for normal but significant conditions.
|
|
||||||
NOTICE
|
|
||||||
// INFO is a log level for common, everyday log updates.
|
|
||||||
INFO
|
|
||||||
// DEBUG is the default hidden level for more verbose updates about internal processes.
|
|
||||||
DEBUG
|
|
||||||
// TRACE is for (potentially) call by call tracing of programs.
|
|
||||||
TRACE
|
|
||||||
)
|
|
||||||
|
|
||||||
// Char returns a single-character representation of the log level.
|
|
||||||
func (l LogLevel) Char() string {
|
|
||||||
switch l {
|
|
||||||
case CRITICAL:
|
|
||||||
return "C"
|
|
||||||
case ERROR:
|
|
||||||
return "E"
|
|
||||||
case WARNING:
|
|
||||||
return "W"
|
|
||||||
case NOTICE:
|
|
||||||
return "N"
|
|
||||||
case INFO:
|
|
||||||
return "I"
|
|
||||||
case DEBUG:
|
|
||||||
return "D"
|
|
||||||
case TRACE:
|
|
||||||
return "T"
|
|
||||||
default:
|
|
||||||
panic("Unhandled loglevel")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// String returns a multi-character representation of the log level.
|
|
||||||
func (l LogLevel) String() string {
|
|
||||||
switch l {
|
|
||||||
case CRITICAL:
|
|
||||||
return "CRITICAL"
|
|
||||||
case ERROR:
|
|
||||||
return "ERROR"
|
|
||||||
case WARNING:
|
|
||||||
return "WARNING"
|
|
||||||
case NOTICE:
|
|
||||||
return "NOTICE"
|
|
||||||
case INFO:
|
|
||||||
return "INFO"
|
|
||||||
case DEBUG:
|
|
||||||
return "DEBUG"
|
|
||||||
case TRACE:
|
|
||||||
return "TRACE"
|
|
||||||
default:
|
|
||||||
panic("Unhandled loglevel")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update using the given string value. Fulfills the flag.Value interface.
|
|
||||||
func (l *LogLevel) Set(s string) error {
|
|
||||||
value, err := ParseLevel(s)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
*l = value
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// Returns an empty string, only here to fulfill the pflag.Value interface.
|
|
||||||
func (l *LogLevel) Type() string {
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
// ParseLevel translates some potential loglevel strings into their corresponding levels.
|
|
||||||
func ParseLevel(s string) (LogLevel, error) {
|
|
||||||
switch s {
|
|
||||||
case "CRITICAL", "C":
|
|
||||||
return CRITICAL, nil
|
|
||||||
case "ERROR", "0", "E":
|
|
||||||
return ERROR, nil
|
|
||||||
case "WARNING", "1", "W":
|
|
||||||
return WARNING, nil
|
|
||||||
case "NOTICE", "2", "N":
|
|
||||||
return NOTICE, nil
|
|
||||||
case "INFO", "3", "I":
|
|
||||||
return INFO, nil
|
|
||||||
case "DEBUG", "4", "D":
|
|
||||||
return DEBUG, nil
|
|
||||||
case "TRACE", "5", "T":
|
|
||||||
return TRACE, nil
|
|
||||||
}
|
|
||||||
return CRITICAL, errors.New("couldn't parse log level " + s)
|
|
||||||
}
|
|
||||||
|
|
||||||
type RepoLogger map[string]*PackageLogger
|
|
||||||
|
|
||||||
type loggerStruct struct {
|
|
||||||
sync.Mutex
|
|
||||||
repoMap map[string]RepoLogger
|
|
||||||
formatter Formatter
|
|
||||||
}
|
|
||||||
|
|
||||||
// logger is the global logger
|
|
||||||
var logger = new(loggerStruct)
|
|
||||||
|
|
||||||
// SetGlobalLogLevel sets the log level for all packages in all repositories
|
|
||||||
// registered with capnslog.
|
|
||||||
func SetGlobalLogLevel(l LogLevel) {
|
|
||||||
logger.Lock()
|
|
||||||
defer logger.Unlock()
|
|
||||||
for _, r := range logger.repoMap {
|
|
||||||
r.setRepoLogLevelInternal(l)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetRepoLogger may return the handle to the repository's set of packages' loggers.
|
|
||||||
func GetRepoLogger(repo string) (RepoLogger, error) {
|
|
||||||
logger.Lock()
|
|
||||||
defer logger.Unlock()
|
|
||||||
r, ok := logger.repoMap[repo]
|
|
||||||
if !ok {
|
|
||||||
return nil, errors.New("no packages registered for repo " + repo)
|
|
||||||
}
|
|
||||||
return r, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// MustRepoLogger returns the handle to the repository's packages' loggers.
|
|
||||||
func MustRepoLogger(repo string) RepoLogger {
|
|
||||||
r, err := GetRepoLogger(repo)
|
|
||||||
if err != nil {
|
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
return r
|
|
||||||
}
|
|
||||||
|
|
||||||
// SetRepoLogLevel sets the log level for all packages in the repository.
|
|
||||||
func (r RepoLogger) SetRepoLogLevel(l LogLevel) {
|
|
||||||
logger.Lock()
|
|
||||||
defer logger.Unlock()
|
|
||||||
r.setRepoLogLevelInternal(l)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r RepoLogger) setRepoLogLevelInternal(l LogLevel) {
|
|
||||||
for _, v := range r {
|
|
||||||
v.level = l
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// ParseLogLevelConfig parses a comma-separated string of "package=loglevel", in
|
|
||||||
// order, and returns a map of the results, for use in SetLogLevel.
|
|
||||||
func (r RepoLogger) ParseLogLevelConfig(conf string) (map[string]LogLevel, error) {
|
|
||||||
setlist := strings.Split(conf, ",")
|
|
||||||
out := make(map[string]LogLevel)
|
|
||||||
for _, setstring := range setlist {
|
|
||||||
setting := strings.Split(setstring, "=")
|
|
||||||
if len(setting) != 2 {
|
|
||||||
return nil, errors.New("oddly structured `pkg=level` option: " + setstring)
|
|
||||||
}
|
|
||||||
l, err := ParseLevel(setting[1])
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
out[setting[0]] = l
|
|
||||||
}
|
|
||||||
return out, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// SetLogLevel takes a map of package names within a repository to their desired
|
|
||||||
// loglevel, and sets the levels appropriately. Unknown packages are ignored.
|
|
||||||
// "*" is a special package name that corresponds to all packages, and will be
|
|
||||||
// processed first.
|
|
||||||
func (r RepoLogger) SetLogLevel(m map[string]LogLevel) {
|
|
||||||
logger.Lock()
|
|
||||||
defer logger.Unlock()
|
|
||||||
if l, ok := m["*"]; ok {
|
|
||||||
r.setRepoLogLevelInternal(l)
|
|
||||||
}
|
|
||||||
for k, v := range m {
|
|
||||||
l, ok := r[k]
|
|
||||||
if !ok {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
l.level = v
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// SetFormatter sets the formatting function for all logs.
|
|
||||||
func SetFormatter(f Formatter) {
|
|
||||||
logger.Lock()
|
|
||||||
defer logger.Unlock()
|
|
||||||
logger.formatter = f
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewPackageLogger creates a package logger object.
|
|
||||||
// This should be defined as a global var in your package, referencing your repo.
|
|
||||||
func NewPackageLogger(repo string, pkg string) (p *PackageLogger) {
|
|
||||||
logger.Lock()
|
|
||||||
defer logger.Unlock()
|
|
||||||
if logger.repoMap == nil {
|
|
||||||
logger.repoMap = make(map[string]RepoLogger)
|
|
||||||
}
|
|
||||||
r, rok := logger.repoMap[repo]
|
|
||||||
if !rok {
|
|
||||||
logger.repoMap[repo] = make(RepoLogger)
|
|
||||||
r = logger.repoMap[repo]
|
|
||||||
}
|
|
||||||
p, pok := r[pkg]
|
|
||||||
if !pok {
|
|
||||||
r[pkg] = &PackageLogger{
|
|
||||||
pkg: pkg,
|
|
||||||
level: INFO,
|
|
||||||
}
|
|
||||||
p = r[pkg]
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
191
vendor/github.com/coreos/pkg/capnslog/pkg_logger.go
generated
vendored
191
vendor/github.com/coreos/pkg/capnslog/pkg_logger.go
generated
vendored
@ -1,191 +0,0 @@
|
|||||||
// Copyright 2015 CoreOS, Inc.
|
|
||||||
//
|
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
// you may not use this file except in compliance with the License.
|
|
||||||
// You may obtain a copy of the License at
|
|
||||||
//
|
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
//
|
|
||||||
// Unless required by applicable law or agreed to in writing, software
|
|
||||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
// See the License for the specific language governing permissions and
|
|
||||||
// limitations under the License.
|
|
||||||
|
|
||||||
package capnslog
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
"os"
|
|
||||||
)
|
|
||||||
|
|
||||||
type PackageLogger struct {
|
|
||||||
pkg string
|
|
||||||
level LogLevel
|
|
||||||
}
|
|
||||||
|
|
||||||
const calldepth = 2
|
|
||||||
|
|
||||||
func (p *PackageLogger) internalLog(depth int, inLevel LogLevel, entries ...interface{}) {
|
|
||||||
logger.Lock()
|
|
||||||
defer logger.Unlock()
|
|
||||||
if inLevel != CRITICAL && p.level < inLevel {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if logger.formatter != nil {
|
|
||||||
logger.formatter.Format(p.pkg, inLevel, depth+1, entries...)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// SetLevel allows users to change the current logging level.
|
|
||||||
func (p *PackageLogger) SetLevel(l LogLevel) {
|
|
||||||
logger.Lock()
|
|
||||||
defer logger.Unlock()
|
|
||||||
p.level = l
|
|
||||||
}
|
|
||||||
|
|
||||||
// LevelAt checks if the given log level will be outputted under current setting.
|
|
||||||
func (p *PackageLogger) LevelAt(l LogLevel) bool {
|
|
||||||
logger.Lock()
|
|
||||||
defer logger.Unlock()
|
|
||||||
return p.level >= l
|
|
||||||
}
|
|
||||||
|
|
||||||
// Log a formatted string at any level between ERROR and TRACE
|
|
||||||
func (p *PackageLogger) Logf(l LogLevel, format string, args ...interface{}) {
|
|
||||||
p.internalLog(calldepth, l, fmt.Sprintf(format, args...))
|
|
||||||
}
|
|
||||||
|
|
||||||
// Log a message at any level between ERROR and TRACE
|
|
||||||
func (p *PackageLogger) Log(l LogLevel, args ...interface{}) {
|
|
||||||
p.internalLog(calldepth, l, fmt.Sprint(args...))
|
|
||||||
}
|
|
||||||
|
|
||||||
// log stdlib compatibility
|
|
||||||
|
|
||||||
func (p *PackageLogger) Println(args ...interface{}) {
|
|
||||||
p.internalLog(calldepth, INFO, fmt.Sprintln(args...))
|
|
||||||
}
|
|
||||||
|
|
||||||
func (p *PackageLogger) Printf(format string, args ...interface{}) {
|
|
||||||
p.Logf(INFO, format, args...)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (p *PackageLogger) Print(args ...interface{}) {
|
|
||||||
p.internalLog(calldepth, INFO, fmt.Sprint(args...))
|
|
||||||
}
|
|
||||||
|
|
||||||
// Panic and fatal
|
|
||||||
|
|
||||||
func (p *PackageLogger) Panicf(format string, args ...interface{}) {
|
|
||||||
s := fmt.Sprintf(format, args...)
|
|
||||||
p.internalLog(calldepth, CRITICAL, s)
|
|
||||||
panic(s)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (p *PackageLogger) Panic(args ...interface{}) {
|
|
||||||
s := fmt.Sprint(args...)
|
|
||||||
p.internalLog(calldepth, CRITICAL, s)
|
|
||||||
panic(s)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (p *PackageLogger) Panicln(args ...interface{}) {
|
|
||||||
s := fmt.Sprintln(args...)
|
|
||||||
p.internalLog(calldepth, CRITICAL, s)
|
|
||||||
panic(s)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (p *PackageLogger) Fatalf(format string, args ...interface{}) {
|
|
||||||
p.Logf(CRITICAL, format, args...)
|
|
||||||
os.Exit(1)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (p *PackageLogger) Fatal(args ...interface{}) {
|
|
||||||
s := fmt.Sprint(args...)
|
|
||||||
p.internalLog(calldepth, CRITICAL, s)
|
|
||||||
os.Exit(1)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (p *PackageLogger) Fatalln(args ...interface{}) {
|
|
||||||
s := fmt.Sprintln(args...)
|
|
||||||
p.internalLog(calldepth, CRITICAL, s)
|
|
||||||
os.Exit(1)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Error Functions
|
|
||||||
|
|
||||||
func (p *PackageLogger) Errorf(format string, args ...interface{}) {
|
|
||||||
p.Logf(ERROR, format, args...)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (p *PackageLogger) Error(entries ...interface{}) {
|
|
||||||
p.internalLog(calldepth, ERROR, entries...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Warning Functions
|
|
||||||
|
|
||||||
func (p *PackageLogger) Warningf(format string, args ...interface{}) {
|
|
||||||
p.Logf(WARNING, format, args...)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (p *PackageLogger) Warning(entries ...interface{}) {
|
|
||||||
p.internalLog(calldepth, WARNING, entries...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Notice Functions
|
|
||||||
|
|
||||||
func (p *PackageLogger) Noticef(format string, args ...interface{}) {
|
|
||||||
p.Logf(NOTICE, format, args...)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (p *PackageLogger) Notice(entries ...interface{}) {
|
|
||||||
p.internalLog(calldepth, NOTICE, entries...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Info Functions
|
|
||||||
|
|
||||||
func (p *PackageLogger) Infof(format string, args ...interface{}) {
|
|
||||||
p.Logf(INFO, format, args...)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (p *PackageLogger) Info(entries ...interface{}) {
|
|
||||||
p.internalLog(calldepth, INFO, entries...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Debug Functions
|
|
||||||
|
|
||||||
func (p *PackageLogger) Debugf(format string, args ...interface{}) {
|
|
||||||
if p.level < DEBUG {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
p.Logf(DEBUG, format, args...)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (p *PackageLogger) Debug(entries ...interface{}) {
|
|
||||||
if p.level < DEBUG {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
p.internalLog(calldepth, DEBUG, entries...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Trace Functions
|
|
||||||
|
|
||||||
func (p *PackageLogger) Tracef(format string, args ...interface{}) {
|
|
||||||
if p.level < TRACE {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
p.Logf(TRACE, format, args...)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (p *PackageLogger) Trace(entries ...interface{}) {
|
|
||||||
if p.level < TRACE {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
p.internalLog(calldepth, TRACE, entries...)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (p *PackageLogger) Flush() {
|
|
||||||
logger.Lock()
|
|
||||||
defer logger.Unlock()
|
|
||||||
logger.formatter.Flush()
|
|
||||||
}
|
|
||||||
65
vendor/github.com/coreos/pkg/capnslog/syslog_formatter.go
generated
vendored
65
vendor/github.com/coreos/pkg/capnslog/syslog_formatter.go
generated
vendored
@ -1,65 +0,0 @@
|
|||||||
// Copyright 2015 CoreOS, Inc.
|
|
||||||
//
|
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
// you may not use this file except in compliance with the License.
|
|
||||||
// You may obtain a copy of the License at
|
|
||||||
//
|
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
//
|
|
||||||
// Unless required by applicable law or agreed to in writing, software
|
|
||||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
// See the License for the specific language governing permissions and
|
|
||||||
// limitations under the License.
|
|
||||||
//
|
|
||||||
// +build !windows
|
|
||||||
|
|
||||||
package capnslog
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
"log/syslog"
|
|
||||||
)
|
|
||||||
|
|
||||||
func NewSyslogFormatter(w *syslog.Writer) Formatter {
|
|
||||||
return &syslogFormatter{w}
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewDefaultSyslogFormatter(tag string) (Formatter, error) {
|
|
||||||
w, err := syslog.New(syslog.LOG_DEBUG, tag)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return NewSyslogFormatter(w), nil
|
|
||||||
}
|
|
||||||
|
|
||||||
type syslogFormatter struct {
|
|
||||||
w *syslog.Writer
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *syslogFormatter) Format(pkg string, l LogLevel, _ int, entries ...interface{}) {
|
|
||||||
for _, entry := range entries {
|
|
||||||
str := fmt.Sprint(entry)
|
|
||||||
switch l {
|
|
||||||
case CRITICAL:
|
|
||||||
s.w.Crit(str)
|
|
||||||
case ERROR:
|
|
||||||
s.w.Err(str)
|
|
||||||
case WARNING:
|
|
||||||
s.w.Warning(str)
|
|
||||||
case NOTICE:
|
|
||||||
s.w.Notice(str)
|
|
||||||
case INFO:
|
|
||||||
s.w.Info(str)
|
|
||||||
case DEBUG:
|
|
||||||
s.w.Debug(str)
|
|
||||||
case TRACE:
|
|
||||||
s.w.Debug(str)
|
|
||||||
default:
|
|
||||||
panic("Unhandled loglevel")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *syslogFormatter) Flush() {
|
|
||||||
}
|
|
||||||
7
vendor/github.com/evanphx/json-patch/.travis.yml
generated
vendored
7
vendor/github.com/evanphx/json-patch/.travis.yml
generated
vendored
@ -1,8 +1,8 @@
|
|||||||
language: go
|
language: go
|
||||||
|
|
||||||
go:
|
go:
|
||||||
- 1.8
|
- 1.14
|
||||||
- 1.7
|
- 1.13
|
||||||
|
|
||||||
install:
|
install:
|
||||||
- if ! go get code.google.com/p/go.tools/cmd/cover; then go get golang.org/x/tools/cmd/cover; fi
|
- if ! go get code.google.com/p/go.tools/cmd/cover; then go get golang.org/x/tools/cmd/cover; fi
|
||||||
@ -11,6 +11,9 @@ install:
|
|||||||
script:
|
script:
|
||||||
- go get
|
- go get
|
||||||
- go test -cover ./...
|
- go test -cover ./...
|
||||||
|
- cd ./v5
|
||||||
|
- go get
|
||||||
|
- go test -cover ./...
|
||||||
|
|
||||||
notifications:
|
notifications:
|
||||||
email: false
|
email: false
|
||||||
|
|||||||
2
vendor/github.com/evanphx/json-patch/LICENSE
generated
vendored
2
vendor/github.com/evanphx/json-patch/LICENSE
generated
vendored
@ -6,7 +6,7 @@ modification, are permitted provided that the following conditions are met:
|
|||||||
|
|
||||||
* Redistributions of source code must retain the above copyright notice, this
|
* Redistributions of source code must retain the above copyright notice, this
|
||||||
list of conditions and the following disclaimer.
|
list of conditions and the following disclaimer.
|
||||||
* Redistributions in binary form must reproduce the above copyright notice
|
* Redistributions in binary form must reproduce the above copyright notice,
|
||||||
this list of conditions and the following disclaimer in the documentation
|
this list of conditions and the following disclaimer in the documentation
|
||||||
and/or other materials provided with the distribution.
|
and/or other materials provided with the distribution.
|
||||||
* Neither the name of the Evan Phoenix nor the names of its contributors
|
* Neither the name of the Evan Phoenix nor the names of its contributors
|
||||||
|
|||||||
11
vendor/github.com/evanphx/json-patch/README.md
generated
vendored
11
vendor/github.com/evanphx/json-patch/README.md
generated
vendored
@ -1,5 +1,5 @@
|
|||||||
# JSON-Patch
|
# JSON-Patch
|
||||||
`jsonpatch` is a library which provides functionallity for both applying
|
`jsonpatch` is a library which provides functionality for both applying
|
||||||
[RFC6902 JSON patches](http://tools.ietf.org/html/rfc6902) against documents, as
|
[RFC6902 JSON patches](http://tools.ietf.org/html/rfc6902) against documents, as
|
||||||
well as for calculating & applying [RFC7396 JSON merge patches](https://tools.ietf.org/html/rfc7396).
|
well as for calculating & applying [RFC7396 JSON merge patches](https://tools.ietf.org/html/rfc7396).
|
||||||
|
|
||||||
@ -11,10 +11,11 @@ well as for calculating & applying [RFC7396 JSON merge patches](https://tools.ie
|
|||||||
|
|
||||||
**Latest and greatest**:
|
**Latest and greatest**:
|
||||||
```bash
|
```bash
|
||||||
go get -u github.com/evanphx/json-patch
|
go get -u github.com/evanphx/json-patch/v5
|
||||||
```
|
```
|
||||||
|
|
||||||
**Stable Versions**:
|
**Stable Versions**:
|
||||||
|
* Version 5: `go get -u gopkg.in/evanphx/json-patch.v5`
|
||||||
* Version 4: `go get -u gopkg.in/evanphx/json-patch.v4`
|
* Version 4: `go get -u gopkg.in/evanphx/json-patch.v4`
|
||||||
|
|
||||||
(previous versions below `v3` are unavailable)
|
(previous versions below `v3` are unavailable)
|
||||||
@ -82,7 +83,7 @@ When ran, you get the following output:
|
|||||||
```bash
|
```bash
|
||||||
$ go run main.go
|
$ go run main.go
|
||||||
patch document: {"height":null,"name":"Jane"}
|
patch document: {"height":null,"name":"Jane"}
|
||||||
updated tina doc: {"age":28,"name":"Jane"}
|
updated alternative doc: {"age":28,"name":"Jane"}
|
||||||
```
|
```
|
||||||
|
|
||||||
## Create and apply a JSON Patch
|
## Create and apply a JSON Patch
|
||||||
@ -164,7 +165,7 @@ func main() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if !jsonpatch.Equal(original, different) {
|
if !jsonpatch.Equal(original, different) {
|
||||||
fmt.Println(`"original" is _not_ structurally equal to "similar"`)
|
fmt.Println(`"original" is _not_ structurally equal to "different"`)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
@ -173,7 +174,7 @@ When ran, you get the following output:
|
|||||||
```bash
|
```bash
|
||||||
$ go run main.go
|
$ go run main.go
|
||||||
"original" is structurally equal to "similar"
|
"original" is structurally equal to "similar"
|
||||||
"original" is _not_ structurally equal to "similar"
|
"original" is _not_ structurally equal to "different"
|
||||||
```
|
```
|
||||||
|
|
||||||
## Combine merge patches
|
## Combine merge patches
|
||||||
|
|||||||
13
vendor/github.com/evanphx/json-patch/merge.go
generated
vendored
13
vendor/github.com/evanphx/json-patch/merge.go
generated
vendored
@ -307,13 +307,16 @@ func matchesValue(av, bv interface{}) bool {
|
|||||||
return true
|
return true
|
||||||
case map[string]interface{}:
|
case map[string]interface{}:
|
||||||
bt := bv.(map[string]interface{})
|
bt := bv.(map[string]interface{})
|
||||||
for key := range at {
|
if len(bt) != len(at) {
|
||||||
if !matchesValue(at[key], bt[key]) {
|
return false
|
||||||
return false
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
for key := range bt {
|
for key := range bt {
|
||||||
if !matchesValue(at[key], bt[key]) {
|
av, aOK := at[key]
|
||||||
|
bv, bOK := bt[key]
|
||||||
|
if aOK != bOK {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
if !matchesValue(av, bv) {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
28
vendor/github.com/evanphx/json-patch/patch.go
generated
vendored
28
vendor/github.com/evanphx/json-patch/patch.go
generated
vendored
@ -202,6 +202,10 @@ func (n *lazyNode) equal(o *lazyNode) bool {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if len(n.doc) != len(o.doc) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
for k, v := range n.doc {
|
for k, v := range n.doc {
|
||||||
ov, ok := o.doc[k]
|
ov, ok := o.doc[k]
|
||||||
|
|
||||||
@ -209,6 +213,10 @@ func (n *lazyNode) equal(o *lazyNode) bool {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (v == nil) != (ov == nil) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
if v == nil && ov == nil {
|
if v == nil && ov == nil {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
@ -429,14 +437,14 @@ func (d *partialArray) add(key string, val *lazyNode) error {
|
|||||||
return errors.Wrapf(ErrInvalidIndex, "Unable to access invalid index: %d", idx)
|
return errors.Wrapf(ErrInvalidIndex, "Unable to access invalid index: %d", idx)
|
||||||
}
|
}
|
||||||
|
|
||||||
if SupportNegativeIndices {
|
if idx < 0 {
|
||||||
|
if !SupportNegativeIndices {
|
||||||
|
return errors.Wrapf(ErrInvalidIndex, "Unable to access invalid index: %d", idx)
|
||||||
|
}
|
||||||
if idx < -len(ary) {
|
if idx < -len(ary) {
|
||||||
return errors.Wrapf(ErrInvalidIndex, "Unable to access invalid index: %d", idx)
|
return errors.Wrapf(ErrInvalidIndex, "Unable to access invalid index: %d", idx)
|
||||||
}
|
}
|
||||||
|
idx += len(ary)
|
||||||
if idx < 0 {
|
|
||||||
idx += len(ary)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
copy(ary[0:idx], cur[0:idx])
|
copy(ary[0:idx], cur[0:idx])
|
||||||
@ -473,14 +481,14 @@ func (d *partialArray) remove(key string) error {
|
|||||||
return errors.Wrapf(ErrInvalidIndex, "Unable to access invalid index: %d", idx)
|
return errors.Wrapf(ErrInvalidIndex, "Unable to access invalid index: %d", idx)
|
||||||
}
|
}
|
||||||
|
|
||||||
if SupportNegativeIndices {
|
if idx < 0 {
|
||||||
|
if !SupportNegativeIndices {
|
||||||
|
return errors.Wrapf(ErrInvalidIndex, "Unable to access invalid index: %d", idx)
|
||||||
|
}
|
||||||
if idx < -len(cur) {
|
if idx < -len(cur) {
|
||||||
return errors.Wrapf(ErrInvalidIndex, "Unable to access invalid index: %d", idx)
|
return errors.Wrapf(ErrInvalidIndex, "Unable to access invalid index: %d", idx)
|
||||||
}
|
}
|
||||||
|
idx += len(cur)
|
||||||
if idx < 0 {
|
|
||||||
idx += len(cur)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ary := make([]*lazyNode, len(cur)-1)
|
ary := make([]*lazyNode, len(cur)-1)
|
||||||
|
|||||||
37
vendor/github.com/gogo/protobuf/gogoproto/Makefile
generated
vendored
37
vendor/github.com/gogo/protobuf/gogoproto/Makefile
generated
vendored
@ -1,37 +0,0 @@
|
|||||||
# Protocol Buffers for Go with Gadgets
|
|
||||||
#
|
|
||||||
# Copyright (c) 2013, The GoGo Authors. All rights reserved.
|
|
||||||
# http://github.com/gogo/protobuf
|
|
||||||
#
|
|
||||||
# Redistribution and use in source and binary forms, with or without
|
|
||||||
# modification, are permitted provided that the following conditions are
|
|
||||||
# met:
|
|
||||||
#
|
|
||||||
# * Redistributions of source code must retain the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer.
|
|
||||||
# * Redistributions in binary form must reproduce the above
|
|
||||||
# copyright notice, this list of conditions and the following disclaimer
|
|
||||||
# in the documentation and/or other materials provided with the
|
|
||||||
# distribution.
|
|
||||||
#
|
|
||||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
||||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
||||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
||||||
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
||||||
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
||||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
||||||
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
||||||
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
||||||
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
||||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
|
|
||||||
regenerate:
|
|
||||||
go install github.com/gogo/protobuf/protoc-gen-gogo
|
|
||||||
protoc --gogo_out=Mgoogle/protobuf/descriptor.proto=github.com/gogo/protobuf/protoc-gen-gogo/descriptor:../../../../ --proto_path=../../../../:../protobuf/:. *.proto
|
|
||||||
|
|
||||||
restore:
|
|
||||||
cp gogo.pb.golden gogo.pb.go
|
|
||||||
|
|
||||||
preserve:
|
|
||||||
cp gogo.pb.go gogo.pb.golden
|
|
||||||
169
vendor/github.com/gogo/protobuf/gogoproto/doc.go
generated
vendored
169
vendor/github.com/gogo/protobuf/gogoproto/doc.go
generated
vendored
@ -1,169 +0,0 @@
|
|||||||
// Protocol Buffers for Go with Gadgets
|
|
||||||
//
|
|
||||||
// Copyright (c) 2013, The GoGo Authors. All rights reserved.
|
|
||||||
// http://github.com/gogo/protobuf
|
|
||||||
//
|
|
||||||
// Redistribution and use in source and binary forms, with or without
|
|
||||||
// modification, are permitted provided that the following conditions are
|
|
||||||
// met:
|
|
||||||
//
|
|
||||||
// * Redistributions of source code must retain the above copyright
|
|
||||||
// notice, this list of conditions and the following disclaimer.
|
|
||||||
// * Redistributions in binary form must reproduce the above
|
|
||||||
// copyright notice, this list of conditions and the following disclaimer
|
|
||||||
// in the documentation and/or other materials provided with the
|
|
||||||
// distribution.
|
|
||||||
//
|
|
||||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
||||||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
||||||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
||||||
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
||||||
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
||||||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
||||||
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
||||||
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
||||||
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
||||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
|
|
||||||
/*
|
|
||||||
Package gogoproto provides extensions for protocol buffers to achieve:
|
|
||||||
|
|
||||||
- fast marshalling and unmarshalling.
|
|
||||||
- peace of mind by optionally generating test and benchmark code.
|
|
||||||
- more canonical Go structures.
|
|
||||||
- less typing by optionally generating extra helper code.
|
|
||||||
- goprotobuf compatibility
|
|
||||||
|
|
||||||
More Canonical Go Structures
|
|
||||||
|
|
||||||
A lot of time working with a goprotobuf struct will lead you to a place where you create another struct that is easier to work with and then have a function to copy the values between the two structs.
|
|
||||||
You might also find that basic structs that started their life as part of an API need to be sent over the wire. With gob, you could just send it. With goprotobuf, you need to make a parallel struct.
|
|
||||||
Gogoprotobuf tries to fix these problems with the nullable, embed, customtype and customname field extensions.
|
|
||||||
|
|
||||||
- nullable, if false, a field is generated without a pointer (see warning below).
|
|
||||||
- embed, if true, the field is generated as an embedded field.
|
|
||||||
- customtype, It works with the Marshal and Unmarshal methods, to allow you to have your own types in your struct, but marshal to bytes. For example, custom.Uuid or custom.Fixed128
|
|
||||||
- customname (beta), Changes the generated fieldname. This is especially useful when generated methods conflict with fieldnames.
|
|
||||||
- casttype (beta), Changes the generated fieldtype. All generated code assumes that this type is castable to the protocol buffer field type. It does not work for structs or enums.
|
|
||||||
- castkey (beta), Changes the generated fieldtype for a map key. All generated code assumes that this type is castable to the protocol buffer field type. Only supported on maps.
|
|
||||||
- castvalue (beta), Changes the generated fieldtype for a map value. All generated code assumes that this type is castable to the protocol buffer field type. Only supported on maps.
|
|
||||||
|
|
||||||
Warning about nullable: According to the Protocol Buffer specification, you should be able to tell whether a field is set or unset. With the option nullable=false this feature is lost, since your non-nullable fields will always be set. It can be seen as a layer on top of Protocol Buffers, where before and after marshalling all non-nullable fields are set and they cannot be unset.
|
|
||||||
|
|
||||||
Let us look at:
|
|
||||||
|
|
||||||
github.com/gogo/protobuf/test/example/example.proto
|
|
||||||
|
|
||||||
for a quicker overview.
|
|
||||||
|
|
||||||
The following message:
|
|
||||||
|
|
||||||
package test;
|
|
||||||
|
|
||||||
import "github.com/gogo/protobuf/gogoproto/gogo.proto";
|
|
||||||
|
|
||||||
message A {
|
|
||||||
optional string Description = 1 [(gogoproto.nullable) = false];
|
|
||||||
optional int64 Number = 2 [(gogoproto.nullable) = false];
|
|
||||||
optional bytes Id = 3 [(gogoproto.customtype) = "github.com/gogo/protobuf/test/custom.Uuid", (gogoproto.nullable) = false];
|
|
||||||
}
|
|
||||||
|
|
||||||
Will generate a go struct which looks a lot like this:
|
|
||||||
|
|
||||||
type A struct {
|
|
||||||
Description string
|
|
||||||
Number int64
|
|
||||||
Id github_com_gogo_protobuf_test_custom.Uuid
|
|
||||||
}
|
|
||||||
|
|
||||||
You will see there are no pointers, since all fields are non-nullable.
|
|
||||||
You will also see a custom type which marshals to a string.
|
|
||||||
Be warned it is your responsibility to test your custom types thoroughly.
|
|
||||||
You should think of every possible empty and nil case for your marshaling, unmarshaling and size methods.
|
|
||||||
|
|
||||||
Next we will embed the message A in message B.
|
|
||||||
|
|
||||||
message B {
|
|
||||||
optional A A = 1 [(gogoproto.nullable) = false, (gogoproto.embed) = true];
|
|
||||||
repeated bytes G = 2 [(gogoproto.customtype) = "github.com/gogo/protobuf/test/custom.Uint128", (gogoproto.nullable) = false];
|
|
||||||
}
|
|
||||||
|
|
||||||
See below that A is embedded in B.
|
|
||||||
|
|
||||||
type B struct {
|
|
||||||
A
|
|
||||||
G []github_com_gogo_protobuf_test_custom.Uint128
|
|
||||||
}
|
|
||||||
|
|
||||||
Also see the repeated custom type.
|
|
||||||
|
|
||||||
type Uint128 [2]uint64
|
|
||||||
|
|
||||||
Next we will create a custom name for one of our fields.
|
|
||||||
|
|
||||||
message C {
|
|
||||||
optional int64 size = 1 [(gogoproto.customname) = "MySize"];
|
|
||||||
}
|
|
||||||
|
|
||||||
See below that the field's name is MySize and not Size.
|
|
||||||
|
|
||||||
type C struct {
|
|
||||||
MySize *int64
|
|
||||||
}
|
|
||||||
|
|
||||||
The is useful when having a protocol buffer message with a field name which conflicts with a generated method.
|
|
||||||
As an example, having a field name size and using the sizer plugin to generate a Size method will cause a go compiler error.
|
|
||||||
Using customname you can fix this error without changing the field name.
|
|
||||||
This is typically useful when working with a protocol buffer that was designed before these methods and/or the go language were avialable.
|
|
||||||
|
|
||||||
Gogoprotobuf also has some more subtle changes, these could be changed back:
|
|
||||||
|
|
||||||
- the generated package name for imports do not have the extra /filename.pb,
|
|
||||||
but are actually the imports specified in the .proto file.
|
|
||||||
|
|
||||||
Gogoprotobuf also has lost some features which should be brought back with time:
|
|
||||||
|
|
||||||
- Marshalling and unmarshalling with reflect and without the unsafe package,
|
|
||||||
this requires work in pointer_reflect.go
|
|
||||||
|
|
||||||
Why does nullable break protocol buffer specifications:
|
|
||||||
|
|
||||||
The protocol buffer specification states, somewhere, that you should be able to tell whether a
|
|
||||||
field is set or unset. With the option nullable=false this feature is lost,
|
|
||||||
since your non-nullable fields will always be set. It can be seen as a layer on top of
|
|
||||||
protocol buffers, where before and after marshalling all non-nullable fields are set
|
|
||||||
and they cannot be unset.
|
|
||||||
|
|
||||||
Goprotobuf Compatibility:
|
|
||||||
|
|
||||||
Gogoprotobuf is compatible with Goprotobuf, because it is compatible with protocol buffers.
|
|
||||||
Gogoprotobuf generates the same code as goprotobuf if no extensions are used.
|
|
||||||
The enumprefix, getters and stringer extensions can be used to remove some of the unnecessary code generated by goprotobuf:
|
|
||||||
|
|
||||||
- gogoproto_import, if false, the generated code imports github.com/golang/protobuf/proto instead of github.com/gogo/protobuf/proto.
|
|
||||||
- goproto_enum_prefix, if false, generates the enum constant names without the messagetype prefix
|
|
||||||
- goproto_enum_stringer (experimental), if false, the enum is generated without the default string method, this is useful for rather using enum_stringer, or allowing you to write your own string method.
|
|
||||||
- goproto_getters, if false, the message is generated without get methods, this is useful when you would rather want to use face
|
|
||||||
- goproto_stringer, if false, the message is generated without the default string method, this is useful for rather using stringer, or allowing you to write your own string method.
|
|
||||||
- goproto_extensions_map (beta), if false, the extensions field is generated as type []byte instead of type map[int32]proto.Extension
|
|
||||||
- goproto_unrecognized (beta), if false, XXX_unrecognized field is not generated. This is useful in conjunction with gogoproto.nullable=false, to generate structures completely devoid of pointers and reduce GC pressure at the cost of losing information about unrecognized fields.
|
|
||||||
- goproto_registration (beta), if true, the generated files will register all messages and types against both gogo/protobuf and golang/protobuf. This is necessary when using third-party packages which read registrations from golang/protobuf (such as the grpc-gateway).
|
|
||||||
|
|
||||||
Less Typing and Peace of Mind is explained in their specific plugin folders godoc:
|
|
||||||
|
|
||||||
- github.com/gogo/protobuf/plugin/<extension_name>
|
|
||||||
|
|
||||||
If you do not use any of these extension the code that is generated
|
|
||||||
will be the same as if goprotobuf has generated it.
|
|
||||||
|
|
||||||
The most complete way to see examples is to look at
|
|
||||||
|
|
||||||
github.com/gogo/protobuf/test/thetest.proto
|
|
||||||
|
|
||||||
Gogoprototest is a seperate project,
|
|
||||||
because we want to keep gogoprotobuf independent of goprotobuf,
|
|
||||||
but we still want to test it thoroughly.
|
|
||||||
|
|
||||||
*/
|
|
||||||
package gogoproto
|
|
||||||
874
vendor/github.com/gogo/protobuf/gogoproto/gogo.pb.go
generated
vendored
874
vendor/github.com/gogo/protobuf/gogoproto/gogo.pb.go
generated
vendored
@ -1,874 +0,0 @@
|
|||||||
// Code generated by protoc-gen-gogo. DO NOT EDIT.
|
|
||||||
// source: gogo.proto
|
|
||||||
|
|
||||||
package gogoproto
|
|
||||||
|
|
||||||
import (
|
|
||||||
fmt "fmt"
|
|
||||||
proto "github.com/gogo/protobuf/proto"
|
|
||||||
descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
|
|
||||||
math "math"
|
|
||||||
)
|
|
||||||
|
|
||||||
// Reference imports to suppress errors if they are not otherwise used.
|
|
||||||
var _ = proto.Marshal
|
|
||||||
var _ = fmt.Errorf
|
|
||||||
var _ = math.Inf
|
|
||||||
|
|
||||||
// This is a compile-time assertion to ensure that this generated file
|
|
||||||
// is compatible with the proto package it is being compiled against.
|
|
||||||
// A compilation error at this line likely means your copy of the
|
|
||||||
// proto package needs to be updated.
|
|
||||||
const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package
|
|
||||||
|
|
||||||
var E_GoprotoEnumPrefix = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.EnumOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 62001,
|
|
||||||
Name: "gogoproto.goproto_enum_prefix",
|
|
||||||
Tag: "varint,62001,opt,name=goproto_enum_prefix",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_GoprotoEnumStringer = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.EnumOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 62021,
|
|
||||||
Name: "gogoproto.goproto_enum_stringer",
|
|
||||||
Tag: "varint,62021,opt,name=goproto_enum_stringer",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_EnumStringer = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.EnumOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 62022,
|
|
||||||
Name: "gogoproto.enum_stringer",
|
|
||||||
Tag: "varint,62022,opt,name=enum_stringer",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_EnumCustomname = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.EnumOptions)(nil),
|
|
||||||
ExtensionType: (*string)(nil),
|
|
||||||
Field: 62023,
|
|
||||||
Name: "gogoproto.enum_customname",
|
|
||||||
Tag: "bytes,62023,opt,name=enum_customname",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_Enumdecl = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.EnumOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 62024,
|
|
||||||
Name: "gogoproto.enumdecl",
|
|
||||||
Tag: "varint,62024,opt,name=enumdecl",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_EnumvalueCustomname = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.EnumValueOptions)(nil),
|
|
||||||
ExtensionType: (*string)(nil),
|
|
||||||
Field: 66001,
|
|
||||||
Name: "gogoproto.enumvalue_customname",
|
|
||||||
Tag: "bytes,66001,opt,name=enumvalue_customname",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_GoprotoGettersAll = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.FileOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 63001,
|
|
||||||
Name: "gogoproto.goproto_getters_all",
|
|
||||||
Tag: "varint,63001,opt,name=goproto_getters_all",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_GoprotoEnumPrefixAll = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.FileOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 63002,
|
|
||||||
Name: "gogoproto.goproto_enum_prefix_all",
|
|
||||||
Tag: "varint,63002,opt,name=goproto_enum_prefix_all",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_GoprotoStringerAll = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.FileOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 63003,
|
|
||||||
Name: "gogoproto.goproto_stringer_all",
|
|
||||||
Tag: "varint,63003,opt,name=goproto_stringer_all",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_VerboseEqualAll = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.FileOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 63004,
|
|
||||||
Name: "gogoproto.verbose_equal_all",
|
|
||||||
Tag: "varint,63004,opt,name=verbose_equal_all",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_FaceAll = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.FileOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 63005,
|
|
||||||
Name: "gogoproto.face_all",
|
|
||||||
Tag: "varint,63005,opt,name=face_all",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_GostringAll = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.FileOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 63006,
|
|
||||||
Name: "gogoproto.gostring_all",
|
|
||||||
Tag: "varint,63006,opt,name=gostring_all",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_PopulateAll = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.FileOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 63007,
|
|
||||||
Name: "gogoproto.populate_all",
|
|
||||||
Tag: "varint,63007,opt,name=populate_all",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_StringerAll = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.FileOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 63008,
|
|
||||||
Name: "gogoproto.stringer_all",
|
|
||||||
Tag: "varint,63008,opt,name=stringer_all",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_OnlyoneAll = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.FileOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 63009,
|
|
||||||
Name: "gogoproto.onlyone_all",
|
|
||||||
Tag: "varint,63009,opt,name=onlyone_all",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_EqualAll = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.FileOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 63013,
|
|
||||||
Name: "gogoproto.equal_all",
|
|
||||||
Tag: "varint,63013,opt,name=equal_all",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_DescriptionAll = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.FileOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 63014,
|
|
||||||
Name: "gogoproto.description_all",
|
|
||||||
Tag: "varint,63014,opt,name=description_all",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_TestgenAll = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.FileOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 63015,
|
|
||||||
Name: "gogoproto.testgen_all",
|
|
||||||
Tag: "varint,63015,opt,name=testgen_all",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_BenchgenAll = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.FileOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 63016,
|
|
||||||
Name: "gogoproto.benchgen_all",
|
|
||||||
Tag: "varint,63016,opt,name=benchgen_all",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_MarshalerAll = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.FileOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 63017,
|
|
||||||
Name: "gogoproto.marshaler_all",
|
|
||||||
Tag: "varint,63017,opt,name=marshaler_all",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_UnmarshalerAll = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.FileOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 63018,
|
|
||||||
Name: "gogoproto.unmarshaler_all",
|
|
||||||
Tag: "varint,63018,opt,name=unmarshaler_all",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_StableMarshalerAll = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.FileOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 63019,
|
|
||||||
Name: "gogoproto.stable_marshaler_all",
|
|
||||||
Tag: "varint,63019,opt,name=stable_marshaler_all",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_SizerAll = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.FileOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 63020,
|
|
||||||
Name: "gogoproto.sizer_all",
|
|
||||||
Tag: "varint,63020,opt,name=sizer_all",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_GoprotoEnumStringerAll = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.FileOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 63021,
|
|
||||||
Name: "gogoproto.goproto_enum_stringer_all",
|
|
||||||
Tag: "varint,63021,opt,name=goproto_enum_stringer_all",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_EnumStringerAll = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.FileOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 63022,
|
|
||||||
Name: "gogoproto.enum_stringer_all",
|
|
||||||
Tag: "varint,63022,opt,name=enum_stringer_all",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_UnsafeMarshalerAll = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.FileOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 63023,
|
|
||||||
Name: "gogoproto.unsafe_marshaler_all",
|
|
||||||
Tag: "varint,63023,opt,name=unsafe_marshaler_all",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_UnsafeUnmarshalerAll = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.FileOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 63024,
|
|
||||||
Name: "gogoproto.unsafe_unmarshaler_all",
|
|
||||||
Tag: "varint,63024,opt,name=unsafe_unmarshaler_all",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_GoprotoExtensionsMapAll = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.FileOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 63025,
|
|
||||||
Name: "gogoproto.goproto_extensions_map_all",
|
|
||||||
Tag: "varint,63025,opt,name=goproto_extensions_map_all",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_GoprotoUnrecognizedAll = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.FileOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 63026,
|
|
||||||
Name: "gogoproto.goproto_unrecognized_all",
|
|
||||||
Tag: "varint,63026,opt,name=goproto_unrecognized_all",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_GogoprotoImport = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.FileOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 63027,
|
|
||||||
Name: "gogoproto.gogoproto_import",
|
|
||||||
Tag: "varint,63027,opt,name=gogoproto_import",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_ProtosizerAll = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.FileOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 63028,
|
|
||||||
Name: "gogoproto.protosizer_all",
|
|
||||||
Tag: "varint,63028,opt,name=protosizer_all",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_CompareAll = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.FileOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 63029,
|
|
||||||
Name: "gogoproto.compare_all",
|
|
||||||
Tag: "varint,63029,opt,name=compare_all",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_TypedeclAll = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.FileOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 63030,
|
|
||||||
Name: "gogoproto.typedecl_all",
|
|
||||||
Tag: "varint,63030,opt,name=typedecl_all",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_EnumdeclAll = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.FileOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 63031,
|
|
||||||
Name: "gogoproto.enumdecl_all",
|
|
||||||
Tag: "varint,63031,opt,name=enumdecl_all",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_GoprotoRegistration = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.FileOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 63032,
|
|
||||||
Name: "gogoproto.goproto_registration",
|
|
||||||
Tag: "varint,63032,opt,name=goproto_registration",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_MessagenameAll = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.FileOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 63033,
|
|
||||||
Name: "gogoproto.messagename_all",
|
|
||||||
Tag: "varint,63033,opt,name=messagename_all",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_GoprotoSizecacheAll = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.FileOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 63034,
|
|
||||||
Name: "gogoproto.goproto_sizecache_all",
|
|
||||||
Tag: "varint,63034,opt,name=goproto_sizecache_all",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_GoprotoUnkeyedAll = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.FileOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 63035,
|
|
||||||
Name: "gogoproto.goproto_unkeyed_all",
|
|
||||||
Tag: "varint,63035,opt,name=goproto_unkeyed_all",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_GoprotoGetters = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.MessageOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 64001,
|
|
||||||
Name: "gogoproto.goproto_getters",
|
|
||||||
Tag: "varint,64001,opt,name=goproto_getters",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_GoprotoStringer = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.MessageOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 64003,
|
|
||||||
Name: "gogoproto.goproto_stringer",
|
|
||||||
Tag: "varint,64003,opt,name=goproto_stringer",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_VerboseEqual = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.MessageOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 64004,
|
|
||||||
Name: "gogoproto.verbose_equal",
|
|
||||||
Tag: "varint,64004,opt,name=verbose_equal",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_Face = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.MessageOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 64005,
|
|
||||||
Name: "gogoproto.face",
|
|
||||||
Tag: "varint,64005,opt,name=face",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_Gostring = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.MessageOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 64006,
|
|
||||||
Name: "gogoproto.gostring",
|
|
||||||
Tag: "varint,64006,opt,name=gostring",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_Populate = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.MessageOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 64007,
|
|
||||||
Name: "gogoproto.populate",
|
|
||||||
Tag: "varint,64007,opt,name=populate",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_Stringer = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.MessageOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 67008,
|
|
||||||
Name: "gogoproto.stringer",
|
|
||||||
Tag: "varint,67008,opt,name=stringer",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_Onlyone = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.MessageOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 64009,
|
|
||||||
Name: "gogoproto.onlyone",
|
|
||||||
Tag: "varint,64009,opt,name=onlyone",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_Equal = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.MessageOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 64013,
|
|
||||||
Name: "gogoproto.equal",
|
|
||||||
Tag: "varint,64013,opt,name=equal",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_Description = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.MessageOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 64014,
|
|
||||||
Name: "gogoproto.description",
|
|
||||||
Tag: "varint,64014,opt,name=description",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_Testgen = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.MessageOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 64015,
|
|
||||||
Name: "gogoproto.testgen",
|
|
||||||
Tag: "varint,64015,opt,name=testgen",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_Benchgen = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.MessageOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 64016,
|
|
||||||
Name: "gogoproto.benchgen",
|
|
||||||
Tag: "varint,64016,opt,name=benchgen",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_Marshaler = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.MessageOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 64017,
|
|
||||||
Name: "gogoproto.marshaler",
|
|
||||||
Tag: "varint,64017,opt,name=marshaler",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_Unmarshaler = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.MessageOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 64018,
|
|
||||||
Name: "gogoproto.unmarshaler",
|
|
||||||
Tag: "varint,64018,opt,name=unmarshaler",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_StableMarshaler = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.MessageOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 64019,
|
|
||||||
Name: "gogoproto.stable_marshaler",
|
|
||||||
Tag: "varint,64019,opt,name=stable_marshaler",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_Sizer = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.MessageOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 64020,
|
|
||||||
Name: "gogoproto.sizer",
|
|
||||||
Tag: "varint,64020,opt,name=sizer",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_UnsafeMarshaler = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.MessageOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 64023,
|
|
||||||
Name: "gogoproto.unsafe_marshaler",
|
|
||||||
Tag: "varint,64023,opt,name=unsafe_marshaler",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_UnsafeUnmarshaler = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.MessageOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 64024,
|
|
||||||
Name: "gogoproto.unsafe_unmarshaler",
|
|
||||||
Tag: "varint,64024,opt,name=unsafe_unmarshaler",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_GoprotoExtensionsMap = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.MessageOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 64025,
|
|
||||||
Name: "gogoproto.goproto_extensions_map",
|
|
||||||
Tag: "varint,64025,opt,name=goproto_extensions_map",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_GoprotoUnrecognized = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.MessageOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 64026,
|
|
||||||
Name: "gogoproto.goproto_unrecognized",
|
|
||||||
Tag: "varint,64026,opt,name=goproto_unrecognized",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_Protosizer = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.MessageOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 64028,
|
|
||||||
Name: "gogoproto.protosizer",
|
|
||||||
Tag: "varint,64028,opt,name=protosizer",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_Compare = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.MessageOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 64029,
|
|
||||||
Name: "gogoproto.compare",
|
|
||||||
Tag: "varint,64029,opt,name=compare",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_Typedecl = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.MessageOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 64030,
|
|
||||||
Name: "gogoproto.typedecl",
|
|
||||||
Tag: "varint,64030,opt,name=typedecl",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_Messagename = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.MessageOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 64033,
|
|
||||||
Name: "gogoproto.messagename",
|
|
||||||
Tag: "varint,64033,opt,name=messagename",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_GoprotoSizecache = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.MessageOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 64034,
|
|
||||||
Name: "gogoproto.goproto_sizecache",
|
|
||||||
Tag: "varint,64034,opt,name=goproto_sizecache",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_GoprotoUnkeyed = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.MessageOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 64035,
|
|
||||||
Name: "gogoproto.goproto_unkeyed",
|
|
||||||
Tag: "varint,64035,opt,name=goproto_unkeyed",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_Nullable = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.FieldOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 65001,
|
|
||||||
Name: "gogoproto.nullable",
|
|
||||||
Tag: "varint,65001,opt,name=nullable",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_Embed = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.FieldOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 65002,
|
|
||||||
Name: "gogoproto.embed",
|
|
||||||
Tag: "varint,65002,opt,name=embed",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_Customtype = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.FieldOptions)(nil),
|
|
||||||
ExtensionType: (*string)(nil),
|
|
||||||
Field: 65003,
|
|
||||||
Name: "gogoproto.customtype",
|
|
||||||
Tag: "bytes,65003,opt,name=customtype",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_Customname = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.FieldOptions)(nil),
|
|
||||||
ExtensionType: (*string)(nil),
|
|
||||||
Field: 65004,
|
|
||||||
Name: "gogoproto.customname",
|
|
||||||
Tag: "bytes,65004,opt,name=customname",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_Jsontag = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.FieldOptions)(nil),
|
|
||||||
ExtensionType: (*string)(nil),
|
|
||||||
Field: 65005,
|
|
||||||
Name: "gogoproto.jsontag",
|
|
||||||
Tag: "bytes,65005,opt,name=jsontag",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_Moretags = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.FieldOptions)(nil),
|
|
||||||
ExtensionType: (*string)(nil),
|
|
||||||
Field: 65006,
|
|
||||||
Name: "gogoproto.moretags",
|
|
||||||
Tag: "bytes,65006,opt,name=moretags",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_Casttype = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.FieldOptions)(nil),
|
|
||||||
ExtensionType: (*string)(nil),
|
|
||||||
Field: 65007,
|
|
||||||
Name: "gogoproto.casttype",
|
|
||||||
Tag: "bytes,65007,opt,name=casttype",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_Castkey = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.FieldOptions)(nil),
|
|
||||||
ExtensionType: (*string)(nil),
|
|
||||||
Field: 65008,
|
|
||||||
Name: "gogoproto.castkey",
|
|
||||||
Tag: "bytes,65008,opt,name=castkey",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_Castvalue = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.FieldOptions)(nil),
|
|
||||||
ExtensionType: (*string)(nil),
|
|
||||||
Field: 65009,
|
|
||||||
Name: "gogoproto.castvalue",
|
|
||||||
Tag: "bytes,65009,opt,name=castvalue",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_Stdtime = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.FieldOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 65010,
|
|
||||||
Name: "gogoproto.stdtime",
|
|
||||||
Tag: "varint,65010,opt,name=stdtime",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_Stdduration = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.FieldOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 65011,
|
|
||||||
Name: "gogoproto.stdduration",
|
|
||||||
Tag: "varint,65011,opt,name=stdduration",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_Wktpointer = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*descriptor.FieldOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 65012,
|
|
||||||
Name: "gogoproto.wktpointer",
|
|
||||||
Tag: "varint,65012,opt,name=wktpointer",
|
|
||||||
Filename: "gogo.proto",
|
|
||||||
}
|
|
||||||
|
|
||||||
func init() {
|
|
||||||
proto.RegisterExtension(E_GoprotoEnumPrefix)
|
|
||||||
proto.RegisterExtension(E_GoprotoEnumStringer)
|
|
||||||
proto.RegisterExtension(E_EnumStringer)
|
|
||||||
proto.RegisterExtension(E_EnumCustomname)
|
|
||||||
proto.RegisterExtension(E_Enumdecl)
|
|
||||||
proto.RegisterExtension(E_EnumvalueCustomname)
|
|
||||||
proto.RegisterExtension(E_GoprotoGettersAll)
|
|
||||||
proto.RegisterExtension(E_GoprotoEnumPrefixAll)
|
|
||||||
proto.RegisterExtension(E_GoprotoStringerAll)
|
|
||||||
proto.RegisterExtension(E_VerboseEqualAll)
|
|
||||||
proto.RegisterExtension(E_FaceAll)
|
|
||||||
proto.RegisterExtension(E_GostringAll)
|
|
||||||
proto.RegisterExtension(E_PopulateAll)
|
|
||||||
proto.RegisterExtension(E_StringerAll)
|
|
||||||
proto.RegisterExtension(E_OnlyoneAll)
|
|
||||||
proto.RegisterExtension(E_EqualAll)
|
|
||||||
proto.RegisterExtension(E_DescriptionAll)
|
|
||||||
proto.RegisterExtension(E_TestgenAll)
|
|
||||||
proto.RegisterExtension(E_BenchgenAll)
|
|
||||||
proto.RegisterExtension(E_MarshalerAll)
|
|
||||||
proto.RegisterExtension(E_UnmarshalerAll)
|
|
||||||
proto.RegisterExtension(E_StableMarshalerAll)
|
|
||||||
proto.RegisterExtension(E_SizerAll)
|
|
||||||
proto.RegisterExtension(E_GoprotoEnumStringerAll)
|
|
||||||
proto.RegisterExtension(E_EnumStringerAll)
|
|
||||||
proto.RegisterExtension(E_UnsafeMarshalerAll)
|
|
||||||
proto.RegisterExtension(E_UnsafeUnmarshalerAll)
|
|
||||||
proto.RegisterExtension(E_GoprotoExtensionsMapAll)
|
|
||||||
proto.RegisterExtension(E_GoprotoUnrecognizedAll)
|
|
||||||
proto.RegisterExtension(E_GogoprotoImport)
|
|
||||||
proto.RegisterExtension(E_ProtosizerAll)
|
|
||||||
proto.RegisterExtension(E_CompareAll)
|
|
||||||
proto.RegisterExtension(E_TypedeclAll)
|
|
||||||
proto.RegisterExtension(E_EnumdeclAll)
|
|
||||||
proto.RegisterExtension(E_GoprotoRegistration)
|
|
||||||
proto.RegisterExtension(E_MessagenameAll)
|
|
||||||
proto.RegisterExtension(E_GoprotoSizecacheAll)
|
|
||||||
proto.RegisterExtension(E_GoprotoUnkeyedAll)
|
|
||||||
proto.RegisterExtension(E_GoprotoGetters)
|
|
||||||
proto.RegisterExtension(E_GoprotoStringer)
|
|
||||||
proto.RegisterExtension(E_VerboseEqual)
|
|
||||||
proto.RegisterExtension(E_Face)
|
|
||||||
proto.RegisterExtension(E_Gostring)
|
|
||||||
proto.RegisterExtension(E_Populate)
|
|
||||||
proto.RegisterExtension(E_Stringer)
|
|
||||||
proto.RegisterExtension(E_Onlyone)
|
|
||||||
proto.RegisterExtension(E_Equal)
|
|
||||||
proto.RegisterExtension(E_Description)
|
|
||||||
proto.RegisterExtension(E_Testgen)
|
|
||||||
proto.RegisterExtension(E_Benchgen)
|
|
||||||
proto.RegisterExtension(E_Marshaler)
|
|
||||||
proto.RegisterExtension(E_Unmarshaler)
|
|
||||||
proto.RegisterExtension(E_StableMarshaler)
|
|
||||||
proto.RegisterExtension(E_Sizer)
|
|
||||||
proto.RegisterExtension(E_UnsafeMarshaler)
|
|
||||||
proto.RegisterExtension(E_UnsafeUnmarshaler)
|
|
||||||
proto.RegisterExtension(E_GoprotoExtensionsMap)
|
|
||||||
proto.RegisterExtension(E_GoprotoUnrecognized)
|
|
||||||
proto.RegisterExtension(E_Protosizer)
|
|
||||||
proto.RegisterExtension(E_Compare)
|
|
||||||
proto.RegisterExtension(E_Typedecl)
|
|
||||||
proto.RegisterExtension(E_Messagename)
|
|
||||||
proto.RegisterExtension(E_GoprotoSizecache)
|
|
||||||
proto.RegisterExtension(E_GoprotoUnkeyed)
|
|
||||||
proto.RegisterExtension(E_Nullable)
|
|
||||||
proto.RegisterExtension(E_Embed)
|
|
||||||
proto.RegisterExtension(E_Customtype)
|
|
||||||
proto.RegisterExtension(E_Customname)
|
|
||||||
proto.RegisterExtension(E_Jsontag)
|
|
||||||
proto.RegisterExtension(E_Moretags)
|
|
||||||
proto.RegisterExtension(E_Casttype)
|
|
||||||
proto.RegisterExtension(E_Castkey)
|
|
||||||
proto.RegisterExtension(E_Castvalue)
|
|
||||||
proto.RegisterExtension(E_Stdtime)
|
|
||||||
proto.RegisterExtension(E_Stdduration)
|
|
||||||
proto.RegisterExtension(E_Wktpointer)
|
|
||||||
}
|
|
||||||
|
|
||||||
func init() { proto.RegisterFile("gogo.proto", fileDescriptor_592445b5231bc2b9) }
|
|
||||||
|
|
||||||
var fileDescriptor_592445b5231bc2b9 = []byte{
|
|
||||||
// 1328 bytes of a gzipped FileDescriptorProto
|
|
||||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x98, 0x49, 0x6f, 0x1c, 0x45,
|
|
||||||
0x14, 0x80, 0x85, 0x48, 0x64, 0x4f, 0x79, 0x8b, 0xc7, 0xc6, 0x84, 0x08, 0x44, 0xe0, 0xc4, 0xc9,
|
|
||||||
0x3e, 0x45, 0x28, 0x65, 0x45, 0x96, 0x63, 0x39, 0x56, 0x10, 0x0e, 0xc6, 0x89, 0xc3, 0x76, 0x18,
|
|
||||||
0xf5, 0xf4, 0x94, 0xdb, 0x8d, 0xbb, 0xbb, 0x9a, 0xee, 0xea, 0x10, 0xe7, 0x86, 0xc2, 0x22, 0x84,
|
|
||||||
0xd8, 0x91, 0x20, 0x21, 0x09, 0x04, 0xc4, 0xbe, 0x86, 0x7d, 0xb9, 0x70, 0x61, 0xb9, 0xf2, 0x1f,
|
|
||||||
0xb8, 0x00, 0x66, 0xf7, 0xcd, 0x17, 0xf4, 0xba, 0xdf, 0xeb, 0xa9, 0x69, 0x8f, 0x54, 0x35, 0xb7,
|
|
||||||
0xf6, 0xb8, 0xbe, 0x6f, 0xaa, 0xdf, 0xeb, 0x7a, 0xef, 0x4d, 0x33, 0xe6, 0x49, 0x4f, 0x4e, 0xc6,
|
|
||||||
0x89, 0x54, 0xb2, 0x5e, 0x83, 0xeb, 0xfc, 0x72, 0xdf, 0x7e, 0x4f, 0x4a, 0x2f, 0x10, 0x53, 0xf9,
|
|
||||||
0x5f, 0xcd, 0x6c, 0x75, 0xaa, 0x25, 0x52, 0x37, 0xf1, 0x63, 0x25, 0x93, 0x62, 0x31, 0x3f, 0xc6,
|
|
||||||
0xc6, 0x70, 0x71, 0x43, 0x44, 0x59, 0xd8, 0x88, 0x13, 0xb1, 0xea, 0x9f, 0xae, 0x5f, 0x3f, 0x59,
|
|
||||||
0x90, 0x93, 0x44, 0x4e, 0xce, 0x47, 0x59, 0x78, 0x47, 0xac, 0x7c, 0x19, 0xa5, 0x7b, 0xaf, 0xfc,
|
|
||||||
0x72, 0xf5, 0xfe, 0xab, 0x6e, 0xe9, 0x5f, 0x1e, 0x45, 0x14, 0xfe, 0xb7, 0x94, 0x83, 0x7c, 0x99,
|
|
||||||
0x5d, 0xd3, 0xe1, 0x4b, 0x55, 0xe2, 0x47, 0x9e, 0x48, 0x0c, 0xc6, 0xef, 0xd1, 0x38, 0xa6, 0x19,
|
|
||||||
0x8f, 0x23, 0xca, 0xe7, 0xd8, 0x50, 0x2f, 0xae, 0x1f, 0xd0, 0x35, 0x28, 0x74, 0xc9, 0x02, 0x1b,
|
|
||||||
0xc9, 0x25, 0x6e, 0x96, 0x2a, 0x19, 0x46, 0x4e, 0x28, 0x0c, 0x9a, 0x1f, 0x73, 0x4d, 0x6d, 0x79,
|
|
||||||
0x18, 0xb0, 0xb9, 0x92, 0xe2, 0x9c, 0xf5, 0xc3, 0x27, 0x2d, 0xe1, 0x06, 0x06, 0xc3, 0x4f, 0xb8,
|
|
||||||
0x91, 0x72, 0x3d, 0x3f, 0xc9, 0xc6, 0xe1, 0xfa, 0x94, 0x13, 0x64, 0x42, 0xdf, 0xc9, 0x4d, 0x5d,
|
|
||||||
0x3d, 0x27, 0x61, 0x19, 0xc9, 0x7e, 0x3e, 0xbb, 0x2b, 0xdf, 0xce, 0x58, 0x29, 0xd0, 0xf6, 0xa4,
|
|
||||||
0x65, 0xd1, 0x13, 0x4a, 0x89, 0x24, 0x6d, 0x38, 0x41, 0xb7, 0xed, 0x1d, 0xf1, 0x83, 0xd2, 0x78,
|
|
||||||
0x6e, 0xb3, 0x33, 0x8b, 0x0b, 0x05, 0x39, 0x1b, 0x04, 0x7c, 0x85, 0x5d, 0xdb, 0xe5, 0xa9, 0xb0,
|
|
||||||
0x70, 0x9e, 0x47, 0xe7, 0xf8, 0x8e, 0x27, 0x03, 0xb4, 0x4b, 0x8c, 0x3e, 0x2f, 0x73, 0x69, 0xe1,
|
|
||||||
0x7c, 0x19, 0x9d, 0x75, 0x64, 0x29, 0xa5, 0x60, 0xbc, 0x8d, 0x8d, 0x9e, 0x12, 0x49, 0x53, 0xa6,
|
|
||||||
0xa2, 0x21, 0x1e, 0xc8, 0x9c, 0xc0, 0x42, 0x77, 0x01, 0x75, 0x23, 0x08, 0xce, 0x03, 0x07, 0xae,
|
|
||||||
0x83, 0xac, 0x7f, 0xd5, 0x71, 0x85, 0x85, 0xe2, 0x22, 0x2a, 0xfa, 0x60, 0x3d, 0xa0, 0xb3, 0x6c,
|
|
||||||
0xd0, 0x93, 0xc5, 0x2d, 0x59, 0xe0, 0x97, 0x10, 0x1f, 0x20, 0x06, 0x15, 0xb1, 0x8c, 0xb3, 0xc0,
|
|
||||||
0x51, 0x36, 0x3b, 0x78, 0x85, 0x14, 0xc4, 0xa0, 0xa2, 0x87, 0xb0, 0xbe, 0x4a, 0x8a, 0x54, 0x8b,
|
|
||||||
0xe7, 0x0c, 0x1b, 0x90, 0x51, 0xb0, 0x21, 0x23, 0x9b, 0x4d, 0x5c, 0x46, 0x03, 0x43, 0x04, 0x04,
|
|
||||||
0xd3, 0xac, 0x66, 0x9b, 0x88, 0x37, 0x36, 0xe9, 0x78, 0x50, 0x06, 0x16, 0xd8, 0x08, 0x15, 0x28,
|
|
||||||
0x5f, 0x46, 0x16, 0x8a, 0x37, 0x51, 0x31, 0xac, 0x61, 0x78, 0x1b, 0x4a, 0xa4, 0xca, 0x13, 0x36,
|
|
||||||
0x92, 0xb7, 0xe8, 0x36, 0x10, 0xc1, 0x50, 0x36, 0x45, 0xe4, 0xae, 0xd9, 0x19, 0xde, 0xa6, 0x50,
|
|
||||||
0x12, 0x03, 0x8a, 0x39, 0x36, 0x14, 0x3a, 0x49, 0xba, 0xe6, 0x04, 0x56, 0xe9, 0x78, 0x07, 0x1d,
|
|
||||||
0x83, 0x25, 0x84, 0x11, 0xc9, 0xa2, 0x5e, 0x34, 0xef, 0x52, 0x44, 0x34, 0x0c, 0x8f, 0x5e, 0xaa,
|
|
||||||
0x9c, 0x66, 0x20, 0x1a, 0xbd, 0xd8, 0xde, 0xa3, 0xa3, 0x57, 0xb0, 0x8b, 0xba, 0x71, 0x9a, 0xd5,
|
|
||||||
0x52, 0xff, 0x8c, 0x95, 0xe6, 0x7d, 0xca, 0x74, 0x0e, 0x00, 0x7c, 0x0f, 0xbb, 0xae, 0x6b, 0x9b,
|
|
||||||
0xb0, 0x90, 0x7d, 0x80, 0xb2, 0x89, 0x2e, 0xad, 0x02, 0x4b, 0x42, 0xaf, 0xca, 0x0f, 0xa9, 0x24,
|
|
||||||
0x88, 0x8a, 0x6b, 0x89, 0x8d, 0x67, 0x51, 0xea, 0xac, 0xf6, 0x16, 0xb5, 0x8f, 0x28, 0x6a, 0x05,
|
|
||||||
0xdb, 0x11, 0xb5, 0x13, 0x6c, 0x02, 0x8d, 0xbd, 0xe5, 0xf5, 0x63, 0x2a, 0xac, 0x05, 0xbd, 0xd2,
|
|
||||||
0x99, 0xdd, 0xfb, 0xd8, 0xbe, 0x32, 0x9c, 0xa7, 0x95, 0x88, 0x52, 0x60, 0x1a, 0xa1, 0x13, 0x5b,
|
|
||||||
0x98, 0xaf, 0xa0, 0x99, 0x2a, 0xfe, 0x7c, 0x29, 0x58, 0x74, 0x62, 0x90, 0xdf, 0xcd, 0xf6, 0x92,
|
|
||||||
0x3c, 0x8b, 0x12, 0xe1, 0x4a, 0x2f, 0xf2, 0xcf, 0x88, 0x96, 0x85, 0xfa, 0x93, 0x4a, 0xaa, 0x56,
|
|
||||||
0x34, 0x1c, 0xcc, 0x47, 0xd9, 0x9e, 0x72, 0x56, 0x69, 0xf8, 0x61, 0x2c, 0x13, 0x65, 0x30, 0x7e,
|
|
||||||
0x4a, 0x99, 0x2a, 0xb9, 0xa3, 0x39, 0xc6, 0xe7, 0xd9, 0x70, 0xfe, 0xa7, 0xed, 0x23, 0xf9, 0x19,
|
|
||||||
0x8a, 0x86, 0xda, 0x14, 0x16, 0x0e, 0x57, 0x86, 0xb1, 0x93, 0xd8, 0xd4, 0xbf, 0xcf, 0xa9, 0x70,
|
|
||||||
0x20, 0x82, 0x85, 0x43, 0x6d, 0xc4, 0x02, 0xba, 0xbd, 0x85, 0xe1, 0x0b, 0x2a, 0x1c, 0xc4, 0xa0,
|
|
||||||
0x82, 0x06, 0x06, 0x0b, 0xc5, 0x97, 0xa4, 0x20, 0x06, 0x14, 0x77, 0xb6, 0x1b, 0x6d, 0x22, 0x3c,
|
|
||||||
0x3f, 0x55, 0x89, 0x03, 0xab, 0x0d, 0xaa, 0xaf, 0x36, 0x3b, 0x87, 0xb0, 0x65, 0x0d, 0x85, 0x4a,
|
|
||||||
0x14, 0x8a, 0x34, 0x75, 0x3c, 0x01, 0x13, 0x87, 0xc5, 0xc6, 0xbe, 0xa6, 0x4a, 0xa4, 0x61, 0xb0,
|
|
||||||
0x37, 0x6d, 0x42, 0x84, 0xb0, 0xbb, 0x8e, 0xbb, 0x66, 0xa3, 0xfb, 0xa6, 0xb2, 0xb9, 0xe3, 0xc4,
|
|
||||||
0x82, 0x53, 0x9b, 0x7f, 0xb2, 0x68, 0x5d, 0x6c, 0x58, 0x3d, 0x9d, 0xdf, 0x56, 0xe6, 0x9f, 0x95,
|
|
||||||
0x82, 0x2c, 0x6a, 0xc8, 0x48, 0x65, 0x9e, 0xaa, 0xdf, 0xb8, 0xc3, 0xb5, 0x58, 0xdc, 0x17, 0xe9,
|
|
||||||
0x1e, 0xda, 0xc2, 0xfb, 0xed, 0x1c, 0xa7, 0xf8, 0xed, 0xf0, 0x90, 0x77, 0x0e, 0x3d, 0x66, 0xd9,
|
|
||||||
0xd9, 0xad, 0xf2, 0x39, 0xef, 0x98, 0x79, 0xf8, 0x11, 0x36, 0xd4, 0x31, 0xf0, 0x98, 0x55, 0x0f,
|
|
||||||
0xa3, 0x6a, 0x50, 0x9f, 0x77, 0xf8, 0x01, 0xb6, 0x0b, 0x86, 0x17, 0x33, 0xfe, 0x08, 0xe2, 0xf9,
|
|
||||||
0x72, 0x7e, 0x88, 0xf5, 0xd3, 0xd0, 0x62, 0x46, 0x1f, 0x45, 0xb4, 0x44, 0x00, 0xa7, 0x81, 0xc5,
|
|
||||||
0x8c, 0x3f, 0x46, 0x38, 0x21, 0x80, 0xdb, 0x87, 0xf0, 0xbb, 0x27, 0x76, 0x61, 0xd3, 0xa1, 0xd8,
|
|
||||||
0x4d, 0xb3, 0x3e, 0x9c, 0x54, 0xcc, 0xf4, 0xe3, 0xf8, 0xe5, 0x44, 0xf0, 0x5b, 0xd9, 0x6e, 0xcb,
|
|
||||||
0x80, 0x3f, 0x89, 0x68, 0xb1, 0x9e, 0xcf, 0xb1, 0x01, 0x6d, 0x3a, 0x31, 0xe3, 0x4f, 0x21, 0xae,
|
|
||||||
0x53, 0xb0, 0x75, 0x9c, 0x4e, 0xcc, 0x82, 0xa7, 0x69, 0xeb, 0x48, 0x40, 0xd8, 0x68, 0x30, 0x31,
|
|
||||||
0xd3, 0xcf, 0x50, 0xd4, 0x09, 0xe1, 0x33, 0xac, 0x56, 0x36, 0x1b, 0x33, 0xff, 0x2c, 0xf2, 0x6d,
|
|
||||||
0x06, 0x22, 0xa0, 0x35, 0x3b, 0xb3, 0xe2, 0x39, 0x8a, 0x80, 0x46, 0xc1, 0x31, 0xaa, 0x0e, 0x30,
|
|
||||||
0x66, 0xd3, 0xf3, 0x74, 0x8c, 0x2a, 0xf3, 0x0b, 0x64, 0x33, 0xaf, 0xf9, 0x66, 0xc5, 0x0b, 0x94,
|
|
||||||
0xcd, 0x7c, 0x3d, 0x6c, 0xa3, 0x3a, 0x11, 0x98, 0x1d, 0x2f, 0xd2, 0x36, 0x2a, 0x03, 0x01, 0x5f,
|
|
||||||
0x62, 0xf5, 0x9d, 0xd3, 0x80, 0xd9, 0xf7, 0x12, 0xfa, 0x46, 0x77, 0x0c, 0x03, 0xfc, 0x2e, 0x36,
|
|
||||||
0xd1, 0x7d, 0x12, 0x30, 0x5b, 0xcf, 0x6d, 0x55, 0x7e, 0xbb, 0xe9, 0x83, 0x00, 0x3f, 0xd1, 0x6e,
|
|
||||||
0x29, 0xfa, 0x14, 0x60, 0xd6, 0x9e, 0xdf, 0xea, 0x2c, 0xdc, 0xfa, 0x10, 0xc0, 0x67, 0x19, 0x6b,
|
|
||||||
0x37, 0x60, 0xb3, 0xeb, 0x02, 0xba, 0x34, 0x08, 0x8e, 0x06, 0xf6, 0x5f, 0x33, 0x7f, 0x91, 0x8e,
|
|
||||||
0x06, 0x12, 0x70, 0x34, 0xa8, 0xf5, 0x9a, 0xe9, 0x4b, 0x74, 0x34, 0x08, 0x81, 0x27, 0x5b, 0xeb,
|
|
||||||
0x6e, 0x66, 0xc3, 0x65, 0x7a, 0xb2, 0x35, 0x8a, 0x1f, 0x63, 0xa3, 0x3b, 0x1a, 0xa2, 0x59, 0xf5,
|
|
||||||
0x1a, 0xaa, 0xf6, 0x54, 0xfb, 0xa1, 0xde, 0xbc, 0xb0, 0x19, 0x9a, 0x6d, 0xaf, 0x57, 0x9a, 0x17,
|
|
||||||
0xf6, 0x42, 0x3e, 0xcd, 0xfa, 0xa3, 0x2c, 0x08, 0xe0, 0xf0, 0xd4, 0x6f, 0xe8, 0xd2, 0x4d, 0x45,
|
|
||||||
0xd0, 0x22, 0xc5, 0xaf, 0xdb, 0x18, 0x1d, 0x02, 0xf8, 0x01, 0xb6, 0x5b, 0x84, 0x4d, 0xd1, 0x32,
|
|
||||||
0x91, 0xbf, 0x6d, 0x53, 0xc1, 0x84, 0xd5, 0x7c, 0x86, 0xb1, 0xe2, 0xd5, 0x08, 0x84, 0xd9, 0xc4,
|
|
||||||
0xfe, 0xbe, 0x5d, 0xbc, 0xa5, 0xd1, 0x90, 0xb6, 0x20, 0x4f, 0x8a, 0x41, 0xb0, 0xd9, 0x29, 0xc8,
|
|
||||||
0x33, 0x72, 0x90, 0xf5, 0xdd, 0x9f, 0xca, 0x48, 0x39, 0x9e, 0x89, 0xfe, 0x03, 0x69, 0x5a, 0x0f,
|
|
||||||
0x01, 0x0b, 0x65, 0x22, 0x94, 0xe3, 0xa5, 0x26, 0xf6, 0x4f, 0x64, 0x4b, 0x00, 0x60, 0xd7, 0x49,
|
|
||||||
0x95, 0xcd, 0x7d, 0xff, 0x45, 0x30, 0x01, 0xb0, 0x69, 0xb8, 0x5e, 0x17, 0x1b, 0x26, 0xf6, 0x6f,
|
|
||||||
0xda, 0x34, 0xae, 0xe7, 0x87, 0x58, 0x0d, 0x2e, 0xf3, 0xb7, 0x4a, 0x26, 0xf8, 0x1f, 0x84, 0xdb,
|
|
||||||
0x04, 0x7c, 0x73, 0xaa, 0x5a, 0xca, 0x37, 0x07, 0xfb, 0x5f, 0xcc, 0x34, 0xad, 0xe7, 0xb3, 0x6c,
|
|
||||||
0x20, 0x55, 0xad, 0x56, 0x86, 0xf3, 0xa9, 0x01, 0xff, 0x6f, 0xbb, 0x7c, 0x65, 0x51, 0x32, 0x90,
|
|
||||||
0xed, 0x07, 0xd7, 0x55, 0x2c, 0xfd, 0x48, 0x89, 0xc4, 0x64, 0xd8, 0x42, 0x83, 0x86, 0x1c, 0x9e,
|
|
||||||
0x67, 0x63, 0xae, 0x0c, 0xab, 0xdc, 0x61, 0xb6, 0x20, 0x17, 0xe4, 0x52, 0x5e, 0x67, 0xee, 0xbd,
|
|
||||||
0xd9, 0xf3, 0xd5, 0x5a, 0xd6, 0x9c, 0x74, 0x65, 0x38, 0x05, 0xbf, 0x3c, 0xda, 0x2f, 0x54, 0xcb,
|
|
||||||
0xdf, 0x21, 0xff, 0x07, 0x00, 0x00, 0xff, 0xff, 0x9c, 0xaf, 0x70, 0x4e, 0x83, 0x15, 0x00, 0x00,
|
|
||||||
}
|
|
||||||
45
vendor/github.com/gogo/protobuf/gogoproto/gogo.pb.golden
generated
vendored
45
vendor/github.com/gogo/protobuf/gogoproto/gogo.pb.golden
generated
vendored
@ -1,45 +0,0 @@
|
|||||||
// Code generated by protoc-gen-go.
|
|
||||||
// source: gogo.proto
|
|
||||||
// DO NOT EDIT!
|
|
||||||
|
|
||||||
package gogoproto
|
|
||||||
|
|
||||||
import proto "github.com/gogo/protobuf/proto"
|
|
||||||
import json "encoding/json"
|
|
||||||
import math "math"
|
|
||||||
import google_protobuf "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
|
|
||||||
|
|
||||||
// Reference proto, json, and math imports to suppress error if they are not otherwise used.
|
|
||||||
var _ = proto.Marshal
|
|
||||||
var _ = &json.SyntaxError{}
|
|
||||||
var _ = math.Inf
|
|
||||||
|
|
||||||
var E_Nullable = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*google_protobuf.FieldOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 51235,
|
|
||||||
Name: "gogoproto.nullable",
|
|
||||||
Tag: "varint,51235,opt,name=nullable",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_Embed = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*google_protobuf.FieldOptions)(nil),
|
|
||||||
ExtensionType: (*bool)(nil),
|
|
||||||
Field: 51236,
|
|
||||||
Name: "gogoproto.embed",
|
|
||||||
Tag: "varint,51236,opt,name=embed",
|
|
||||||
}
|
|
||||||
|
|
||||||
var E_Customtype = &proto.ExtensionDesc{
|
|
||||||
ExtendedType: (*google_protobuf.FieldOptions)(nil),
|
|
||||||
ExtensionType: (*string)(nil),
|
|
||||||
Field: 51237,
|
|
||||||
Name: "gogoproto.customtype",
|
|
||||||
Tag: "bytes,51237,opt,name=customtype",
|
|
||||||
}
|
|
||||||
|
|
||||||
func init() {
|
|
||||||
proto.RegisterExtension(E_Nullable)
|
|
||||||
proto.RegisterExtension(E_Embed)
|
|
||||||
proto.RegisterExtension(E_Customtype)
|
|
||||||
}
|
|
||||||
144
vendor/github.com/gogo/protobuf/gogoproto/gogo.proto
generated
vendored
144
vendor/github.com/gogo/protobuf/gogoproto/gogo.proto
generated
vendored
@ -1,144 +0,0 @@
|
|||||||
// Protocol Buffers for Go with Gadgets
|
|
||||||
//
|
|
||||||
// Copyright (c) 2013, The GoGo Authors. All rights reserved.
|
|
||||||
// http://github.com/gogo/protobuf
|
|
||||||
//
|
|
||||||
// Redistribution and use in source and binary forms, with or without
|
|
||||||
// modification, are permitted provided that the following conditions are
|
|
||||||
// met:
|
|
||||||
//
|
|
||||||
// * Redistributions of source code must retain the above copyright
|
|
||||||
// notice, this list of conditions and the following disclaimer.
|
|
||||||
// * Redistributions in binary form must reproduce the above
|
|
||||||
// copyright notice, this list of conditions and the following disclaimer
|
|
||||||
// in the documentation and/or other materials provided with the
|
|
||||||
// distribution.
|
|
||||||
//
|
|
||||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
||||||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
||||||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
||||||
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
||||||
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
||||||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
||||||
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
||||||
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
||||||
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
||||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
|
|
||||||
syntax = "proto2";
|
|
||||||
package gogoproto;
|
|
||||||
|
|
||||||
import "google/protobuf/descriptor.proto";
|
|
||||||
|
|
||||||
option java_package = "com.google.protobuf";
|
|
||||||
option java_outer_classname = "GoGoProtos";
|
|
||||||
option go_package = "github.com/gogo/protobuf/gogoproto";
|
|
||||||
|
|
||||||
extend google.protobuf.EnumOptions {
|
|
||||||
optional bool goproto_enum_prefix = 62001;
|
|
||||||
optional bool goproto_enum_stringer = 62021;
|
|
||||||
optional bool enum_stringer = 62022;
|
|
||||||
optional string enum_customname = 62023;
|
|
||||||
optional bool enumdecl = 62024;
|
|
||||||
}
|
|
||||||
|
|
||||||
extend google.protobuf.EnumValueOptions {
|
|
||||||
optional string enumvalue_customname = 66001;
|
|
||||||
}
|
|
||||||
|
|
||||||
extend google.protobuf.FileOptions {
|
|
||||||
optional bool goproto_getters_all = 63001;
|
|
||||||
optional bool goproto_enum_prefix_all = 63002;
|
|
||||||
optional bool goproto_stringer_all = 63003;
|
|
||||||
optional bool verbose_equal_all = 63004;
|
|
||||||
optional bool face_all = 63005;
|
|
||||||
optional bool gostring_all = 63006;
|
|
||||||
optional bool populate_all = 63007;
|
|
||||||
optional bool stringer_all = 63008;
|
|
||||||
optional bool onlyone_all = 63009;
|
|
||||||
|
|
||||||
optional bool equal_all = 63013;
|
|
||||||
optional bool description_all = 63014;
|
|
||||||
optional bool testgen_all = 63015;
|
|
||||||
optional bool benchgen_all = 63016;
|
|
||||||
optional bool marshaler_all = 63017;
|
|
||||||
optional bool unmarshaler_all = 63018;
|
|
||||||
optional bool stable_marshaler_all = 63019;
|
|
||||||
|
|
||||||
optional bool sizer_all = 63020;
|
|
||||||
|
|
||||||
optional bool goproto_enum_stringer_all = 63021;
|
|
||||||
optional bool enum_stringer_all = 63022;
|
|
||||||
|
|
||||||
optional bool unsafe_marshaler_all = 63023;
|
|
||||||
optional bool unsafe_unmarshaler_all = 63024;
|
|
||||||
|
|
||||||
optional bool goproto_extensions_map_all = 63025;
|
|
||||||
optional bool goproto_unrecognized_all = 63026;
|
|
||||||
optional bool gogoproto_import = 63027;
|
|
||||||
optional bool protosizer_all = 63028;
|
|
||||||
optional bool compare_all = 63029;
|
|
||||||
optional bool typedecl_all = 63030;
|
|
||||||
optional bool enumdecl_all = 63031;
|
|
||||||
|
|
||||||
optional bool goproto_registration = 63032;
|
|
||||||
optional bool messagename_all = 63033;
|
|
||||||
|
|
||||||
optional bool goproto_sizecache_all = 63034;
|
|
||||||
optional bool goproto_unkeyed_all = 63035;
|
|
||||||
}
|
|
||||||
|
|
||||||
extend google.protobuf.MessageOptions {
|
|
||||||
optional bool goproto_getters = 64001;
|
|
||||||
optional bool goproto_stringer = 64003;
|
|
||||||
optional bool verbose_equal = 64004;
|
|
||||||
optional bool face = 64005;
|
|
||||||
optional bool gostring = 64006;
|
|
||||||
optional bool populate = 64007;
|
|
||||||
optional bool stringer = 67008;
|
|
||||||
optional bool onlyone = 64009;
|
|
||||||
|
|
||||||
optional bool equal = 64013;
|
|
||||||
optional bool description = 64014;
|
|
||||||
optional bool testgen = 64015;
|
|
||||||
optional bool benchgen = 64016;
|
|
||||||
optional bool marshaler = 64017;
|
|
||||||
optional bool unmarshaler = 64018;
|
|
||||||
optional bool stable_marshaler = 64019;
|
|
||||||
|
|
||||||
optional bool sizer = 64020;
|
|
||||||
|
|
||||||
optional bool unsafe_marshaler = 64023;
|
|
||||||
optional bool unsafe_unmarshaler = 64024;
|
|
||||||
|
|
||||||
optional bool goproto_extensions_map = 64025;
|
|
||||||
optional bool goproto_unrecognized = 64026;
|
|
||||||
|
|
||||||
optional bool protosizer = 64028;
|
|
||||||
optional bool compare = 64029;
|
|
||||||
|
|
||||||
optional bool typedecl = 64030;
|
|
||||||
|
|
||||||
optional bool messagename = 64033;
|
|
||||||
|
|
||||||
optional bool goproto_sizecache = 64034;
|
|
||||||
optional bool goproto_unkeyed = 64035;
|
|
||||||
}
|
|
||||||
|
|
||||||
extend google.protobuf.FieldOptions {
|
|
||||||
optional bool nullable = 65001;
|
|
||||||
optional bool embed = 65002;
|
|
||||||
optional string customtype = 65003;
|
|
||||||
optional string customname = 65004;
|
|
||||||
optional string jsontag = 65005;
|
|
||||||
optional string moretags = 65006;
|
|
||||||
optional string casttype = 65007;
|
|
||||||
optional string castkey = 65008;
|
|
||||||
optional string castvalue = 65009;
|
|
||||||
|
|
||||||
optional bool stdtime = 65010;
|
|
||||||
optional bool stdduration = 65011;
|
|
||||||
optional bool wktpointer = 65012;
|
|
||||||
|
|
||||||
}
|
|
||||||
415
vendor/github.com/gogo/protobuf/gogoproto/helper.go
generated
vendored
415
vendor/github.com/gogo/protobuf/gogoproto/helper.go
generated
vendored
@ -1,415 +0,0 @@
|
|||||||
// Protocol Buffers for Go with Gadgets
|
|
||||||
//
|
|
||||||
// Copyright (c) 2013, The GoGo Authors. All rights reserved.
|
|
||||||
// http://github.com/gogo/protobuf
|
|
||||||
//
|
|
||||||
// Redistribution and use in source and binary forms, with or without
|
|
||||||
// modification, are permitted provided that the following conditions are
|
|
||||||
// met:
|
|
||||||
//
|
|
||||||
// * Redistributions of source code must retain the above copyright
|
|
||||||
// notice, this list of conditions and the following disclaimer.
|
|
||||||
// * Redistributions in binary form must reproduce the above
|
|
||||||
// copyright notice, this list of conditions and the following disclaimer
|
|
||||||
// in the documentation and/or other materials provided with the
|
|
||||||
// distribution.
|
|
||||||
//
|
|
||||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
||||||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
||||||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
||||||
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
||||||
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
||||||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
||||||
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
||||||
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
||||||
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
||||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
|
|
||||||
package gogoproto
|
|
||||||
|
|
||||||
import google_protobuf "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
|
|
||||||
import proto "github.com/gogo/protobuf/proto"
|
|
||||||
|
|
||||||
func IsEmbed(field *google_protobuf.FieldDescriptorProto) bool {
|
|
||||||
return proto.GetBoolExtension(field.Options, E_Embed, false)
|
|
||||||
}
|
|
||||||
|
|
||||||
func IsNullable(field *google_protobuf.FieldDescriptorProto) bool {
|
|
||||||
return proto.GetBoolExtension(field.Options, E_Nullable, true)
|
|
||||||
}
|
|
||||||
|
|
||||||
func IsStdTime(field *google_protobuf.FieldDescriptorProto) bool {
|
|
||||||
return proto.GetBoolExtension(field.Options, E_Stdtime, false)
|
|
||||||
}
|
|
||||||
|
|
||||||
func IsStdDuration(field *google_protobuf.FieldDescriptorProto) bool {
|
|
||||||
return proto.GetBoolExtension(field.Options, E_Stdduration, false)
|
|
||||||
}
|
|
||||||
|
|
||||||
func IsStdDouble(field *google_protobuf.FieldDescriptorProto) bool {
|
|
||||||
return proto.GetBoolExtension(field.Options, E_Wktpointer, false) && *field.TypeName == ".google.protobuf.DoubleValue"
|
|
||||||
}
|
|
||||||
|
|
||||||
func IsStdFloat(field *google_protobuf.FieldDescriptorProto) bool {
|
|
||||||
return proto.GetBoolExtension(field.Options, E_Wktpointer, false) && *field.TypeName == ".google.protobuf.FloatValue"
|
|
||||||
}
|
|
||||||
|
|
||||||
func IsStdInt64(field *google_protobuf.FieldDescriptorProto) bool {
|
|
||||||
return proto.GetBoolExtension(field.Options, E_Wktpointer, false) && *field.TypeName == ".google.protobuf.Int64Value"
|
|
||||||
}
|
|
||||||
|
|
||||||
func IsStdUInt64(field *google_protobuf.FieldDescriptorProto) bool {
|
|
||||||
return proto.GetBoolExtension(field.Options, E_Wktpointer, false) && *field.TypeName == ".google.protobuf.UInt64Value"
|
|
||||||
}
|
|
||||||
|
|
||||||
func IsStdInt32(field *google_protobuf.FieldDescriptorProto) bool {
|
|
||||||
return proto.GetBoolExtension(field.Options, E_Wktpointer, false) && *field.TypeName == ".google.protobuf.Int32Value"
|
|
||||||
}
|
|
||||||
|
|
||||||
func IsStdUInt32(field *google_protobuf.FieldDescriptorProto) bool {
|
|
||||||
return proto.GetBoolExtension(field.Options, E_Wktpointer, false) && *field.TypeName == ".google.protobuf.UInt32Value"
|
|
||||||
}
|
|
||||||
|
|
||||||
func IsStdBool(field *google_protobuf.FieldDescriptorProto) bool {
|
|
||||||
return proto.GetBoolExtension(field.Options, E_Wktpointer, false) && *field.TypeName == ".google.protobuf.BoolValue"
|
|
||||||
}
|
|
||||||
|
|
||||||
func IsStdString(field *google_protobuf.FieldDescriptorProto) bool {
|
|
||||||
return proto.GetBoolExtension(field.Options, E_Wktpointer, false) && *field.TypeName == ".google.protobuf.StringValue"
|
|
||||||
}
|
|
||||||
|
|
||||||
func IsStdBytes(field *google_protobuf.FieldDescriptorProto) bool {
|
|
||||||
return proto.GetBoolExtension(field.Options, E_Wktpointer, false) && *field.TypeName == ".google.protobuf.BytesValue"
|
|
||||||
}
|
|
||||||
|
|
||||||
func IsStdType(field *google_protobuf.FieldDescriptorProto) bool {
|
|
||||||
return (IsStdTime(field) || IsStdDuration(field) ||
|
|
||||||
IsStdDouble(field) || IsStdFloat(field) ||
|
|
||||||
IsStdInt64(field) || IsStdUInt64(field) ||
|
|
||||||
IsStdInt32(field) || IsStdUInt32(field) ||
|
|
||||||
IsStdBool(field) ||
|
|
||||||
IsStdString(field) || IsStdBytes(field))
|
|
||||||
}
|
|
||||||
|
|
||||||
func IsWktPtr(field *google_protobuf.FieldDescriptorProto) bool {
|
|
||||||
return proto.GetBoolExtension(field.Options, E_Wktpointer, false)
|
|
||||||
}
|
|
||||||
|
|
||||||
func NeedsNilCheck(proto3 bool, field *google_protobuf.FieldDescriptorProto) bool {
|
|
||||||
nullable := IsNullable(field)
|
|
||||||
if field.IsMessage() || IsCustomType(field) {
|
|
||||||
return nullable
|
|
||||||
}
|
|
||||||
if proto3 {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
return nullable || *field.Type == google_protobuf.FieldDescriptorProto_TYPE_BYTES
|
|
||||||
}
|
|
||||||
|
|
||||||
func IsCustomType(field *google_protobuf.FieldDescriptorProto) bool {
|
|
||||||
typ := GetCustomType(field)
|
|
||||||
if len(typ) > 0 {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
func IsCastType(field *google_protobuf.FieldDescriptorProto) bool {
|
|
||||||
typ := GetCastType(field)
|
|
||||||
if len(typ) > 0 {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
func IsCastKey(field *google_protobuf.FieldDescriptorProto) bool {
|
|
||||||
typ := GetCastKey(field)
|
|
||||||
if len(typ) > 0 {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
func IsCastValue(field *google_protobuf.FieldDescriptorProto) bool {
|
|
||||||
typ := GetCastValue(field)
|
|
||||||
if len(typ) > 0 {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
func HasEnumDecl(file *google_protobuf.FileDescriptorProto, enum *google_protobuf.EnumDescriptorProto) bool {
|
|
||||||
return proto.GetBoolExtension(enum.Options, E_Enumdecl, proto.GetBoolExtension(file.Options, E_EnumdeclAll, true))
|
|
||||||
}
|
|
||||||
|
|
||||||
func HasTypeDecl(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool {
|
|
||||||
return proto.GetBoolExtension(message.Options, E_Typedecl, proto.GetBoolExtension(file.Options, E_TypedeclAll, true))
|
|
||||||
}
|
|
||||||
|
|
||||||
func GetCustomType(field *google_protobuf.FieldDescriptorProto) string {
|
|
||||||
if field == nil {
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
if field.Options != nil {
|
|
||||||
v, err := proto.GetExtension(field.Options, E_Customtype)
|
|
||||||
if err == nil && v.(*string) != nil {
|
|
||||||
return *(v.(*string))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
func GetCastType(field *google_protobuf.FieldDescriptorProto) string {
|
|
||||||
if field == nil {
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
if field.Options != nil {
|
|
||||||
v, err := proto.GetExtension(field.Options, E_Casttype)
|
|
||||||
if err == nil && v.(*string) != nil {
|
|
||||||
return *(v.(*string))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
func GetCastKey(field *google_protobuf.FieldDescriptorProto) string {
|
|
||||||
if field == nil {
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
if field.Options != nil {
|
|
||||||
v, err := proto.GetExtension(field.Options, E_Castkey)
|
|
||||||
if err == nil && v.(*string) != nil {
|
|
||||||
return *(v.(*string))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
func GetCastValue(field *google_protobuf.FieldDescriptorProto) string {
|
|
||||||
if field == nil {
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
if field.Options != nil {
|
|
||||||
v, err := proto.GetExtension(field.Options, E_Castvalue)
|
|
||||||
if err == nil && v.(*string) != nil {
|
|
||||||
return *(v.(*string))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
func IsCustomName(field *google_protobuf.FieldDescriptorProto) bool {
|
|
||||||
name := GetCustomName(field)
|
|
||||||
if len(name) > 0 {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
func IsEnumCustomName(field *google_protobuf.EnumDescriptorProto) bool {
|
|
||||||
name := GetEnumCustomName(field)
|
|
||||||
if len(name) > 0 {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
func IsEnumValueCustomName(field *google_protobuf.EnumValueDescriptorProto) bool {
|
|
||||||
name := GetEnumValueCustomName(field)
|
|
||||||
if len(name) > 0 {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
func GetCustomName(field *google_protobuf.FieldDescriptorProto) string {
|
|
||||||
if field == nil {
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
if field.Options != nil {
|
|
||||||
v, err := proto.GetExtension(field.Options, E_Customname)
|
|
||||||
if err == nil && v.(*string) != nil {
|
|
||||||
return *(v.(*string))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
func GetEnumCustomName(field *google_protobuf.EnumDescriptorProto) string {
|
|
||||||
if field == nil {
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
if field.Options != nil {
|
|
||||||
v, err := proto.GetExtension(field.Options, E_EnumCustomname)
|
|
||||||
if err == nil && v.(*string) != nil {
|
|
||||||
return *(v.(*string))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
func GetEnumValueCustomName(field *google_protobuf.EnumValueDescriptorProto) string {
|
|
||||||
if field == nil {
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
if field.Options != nil {
|
|
||||||
v, err := proto.GetExtension(field.Options, E_EnumvalueCustomname)
|
|
||||||
if err == nil && v.(*string) != nil {
|
|
||||||
return *(v.(*string))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
func GetJsonTag(field *google_protobuf.FieldDescriptorProto) *string {
|
|
||||||
if field == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
if field.Options != nil {
|
|
||||||
v, err := proto.GetExtension(field.Options, E_Jsontag)
|
|
||||||
if err == nil && v.(*string) != nil {
|
|
||||||
return (v.(*string))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func GetMoreTags(field *google_protobuf.FieldDescriptorProto) *string {
|
|
||||||
if field == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
if field.Options != nil {
|
|
||||||
v, err := proto.GetExtension(field.Options, E_Moretags)
|
|
||||||
if err == nil && v.(*string) != nil {
|
|
||||||
return (v.(*string))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
type EnableFunc func(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool
|
|
||||||
|
|
||||||
func EnabledGoEnumPrefix(file *google_protobuf.FileDescriptorProto, enum *google_protobuf.EnumDescriptorProto) bool {
|
|
||||||
return proto.GetBoolExtension(enum.Options, E_GoprotoEnumPrefix, proto.GetBoolExtension(file.Options, E_GoprotoEnumPrefixAll, true))
|
|
||||||
}
|
|
||||||
|
|
||||||
func EnabledGoStringer(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool {
|
|
||||||
return proto.GetBoolExtension(message.Options, E_GoprotoStringer, proto.GetBoolExtension(file.Options, E_GoprotoStringerAll, true))
|
|
||||||
}
|
|
||||||
|
|
||||||
func HasGoGetters(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool {
|
|
||||||
return proto.GetBoolExtension(message.Options, E_GoprotoGetters, proto.GetBoolExtension(file.Options, E_GoprotoGettersAll, true))
|
|
||||||
}
|
|
||||||
|
|
||||||
func IsUnion(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool {
|
|
||||||
return proto.GetBoolExtension(message.Options, E_Onlyone, proto.GetBoolExtension(file.Options, E_OnlyoneAll, false))
|
|
||||||
}
|
|
||||||
|
|
||||||
func HasGoString(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool {
|
|
||||||
return proto.GetBoolExtension(message.Options, E_Gostring, proto.GetBoolExtension(file.Options, E_GostringAll, false))
|
|
||||||
}
|
|
||||||
|
|
||||||
func HasEqual(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool {
|
|
||||||
return proto.GetBoolExtension(message.Options, E_Equal, proto.GetBoolExtension(file.Options, E_EqualAll, false))
|
|
||||||
}
|
|
||||||
|
|
||||||
func HasVerboseEqual(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool {
|
|
||||||
return proto.GetBoolExtension(message.Options, E_VerboseEqual, proto.GetBoolExtension(file.Options, E_VerboseEqualAll, false))
|
|
||||||
}
|
|
||||||
|
|
||||||
func IsStringer(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool {
|
|
||||||
return proto.GetBoolExtension(message.Options, E_Stringer, proto.GetBoolExtension(file.Options, E_StringerAll, false))
|
|
||||||
}
|
|
||||||
|
|
||||||
func IsFace(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool {
|
|
||||||
return proto.GetBoolExtension(message.Options, E_Face, proto.GetBoolExtension(file.Options, E_FaceAll, false))
|
|
||||||
}
|
|
||||||
|
|
||||||
func HasDescription(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool {
|
|
||||||
return proto.GetBoolExtension(message.Options, E_Description, proto.GetBoolExtension(file.Options, E_DescriptionAll, false))
|
|
||||||
}
|
|
||||||
|
|
||||||
func HasPopulate(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool {
|
|
||||||
return proto.GetBoolExtension(message.Options, E_Populate, proto.GetBoolExtension(file.Options, E_PopulateAll, false))
|
|
||||||
}
|
|
||||||
|
|
||||||
func HasTestGen(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool {
|
|
||||||
return proto.GetBoolExtension(message.Options, E_Testgen, proto.GetBoolExtension(file.Options, E_TestgenAll, false))
|
|
||||||
}
|
|
||||||
|
|
||||||
func HasBenchGen(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool {
|
|
||||||
return proto.GetBoolExtension(message.Options, E_Benchgen, proto.GetBoolExtension(file.Options, E_BenchgenAll, false))
|
|
||||||
}
|
|
||||||
|
|
||||||
func IsMarshaler(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool {
|
|
||||||
return proto.GetBoolExtension(message.Options, E_Marshaler, proto.GetBoolExtension(file.Options, E_MarshalerAll, false))
|
|
||||||
}
|
|
||||||
|
|
||||||
func IsUnmarshaler(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool {
|
|
||||||
return proto.GetBoolExtension(message.Options, E_Unmarshaler, proto.GetBoolExtension(file.Options, E_UnmarshalerAll, false))
|
|
||||||
}
|
|
||||||
|
|
||||||
func IsStableMarshaler(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool {
|
|
||||||
return proto.GetBoolExtension(message.Options, E_StableMarshaler, proto.GetBoolExtension(file.Options, E_StableMarshalerAll, false))
|
|
||||||
}
|
|
||||||
|
|
||||||
func IsSizer(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool {
|
|
||||||
return proto.GetBoolExtension(message.Options, E_Sizer, proto.GetBoolExtension(file.Options, E_SizerAll, false))
|
|
||||||
}
|
|
||||||
|
|
||||||
func IsProtoSizer(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool {
|
|
||||||
return proto.GetBoolExtension(message.Options, E_Protosizer, proto.GetBoolExtension(file.Options, E_ProtosizerAll, false))
|
|
||||||
}
|
|
||||||
|
|
||||||
func IsGoEnumStringer(file *google_protobuf.FileDescriptorProto, enum *google_protobuf.EnumDescriptorProto) bool {
|
|
||||||
return proto.GetBoolExtension(enum.Options, E_GoprotoEnumStringer, proto.GetBoolExtension(file.Options, E_GoprotoEnumStringerAll, true))
|
|
||||||
}
|
|
||||||
|
|
||||||
func IsEnumStringer(file *google_protobuf.FileDescriptorProto, enum *google_protobuf.EnumDescriptorProto) bool {
|
|
||||||
return proto.GetBoolExtension(enum.Options, E_EnumStringer, proto.GetBoolExtension(file.Options, E_EnumStringerAll, false))
|
|
||||||
}
|
|
||||||
|
|
||||||
func IsUnsafeMarshaler(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool {
|
|
||||||
return proto.GetBoolExtension(message.Options, E_UnsafeMarshaler, proto.GetBoolExtension(file.Options, E_UnsafeMarshalerAll, false))
|
|
||||||
}
|
|
||||||
|
|
||||||
func IsUnsafeUnmarshaler(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool {
|
|
||||||
return proto.GetBoolExtension(message.Options, E_UnsafeUnmarshaler, proto.GetBoolExtension(file.Options, E_UnsafeUnmarshalerAll, false))
|
|
||||||
}
|
|
||||||
|
|
||||||
func HasExtensionsMap(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool {
|
|
||||||
return proto.GetBoolExtension(message.Options, E_GoprotoExtensionsMap, proto.GetBoolExtension(file.Options, E_GoprotoExtensionsMapAll, true))
|
|
||||||
}
|
|
||||||
|
|
||||||
func HasUnrecognized(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool {
|
|
||||||
return proto.GetBoolExtension(message.Options, E_GoprotoUnrecognized, proto.GetBoolExtension(file.Options, E_GoprotoUnrecognizedAll, true))
|
|
||||||
}
|
|
||||||
|
|
||||||
func IsProto3(file *google_protobuf.FileDescriptorProto) bool {
|
|
||||||
return file.GetSyntax() == "proto3"
|
|
||||||
}
|
|
||||||
|
|
||||||
func ImportsGoGoProto(file *google_protobuf.FileDescriptorProto) bool {
|
|
||||||
return proto.GetBoolExtension(file.Options, E_GogoprotoImport, true)
|
|
||||||
}
|
|
||||||
|
|
||||||
func HasCompare(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool {
|
|
||||||
return proto.GetBoolExtension(message.Options, E_Compare, proto.GetBoolExtension(file.Options, E_CompareAll, false))
|
|
||||||
}
|
|
||||||
|
|
||||||
func RegistersGolangProto(file *google_protobuf.FileDescriptorProto) bool {
|
|
||||||
return proto.GetBoolExtension(file.Options, E_GoprotoRegistration, false)
|
|
||||||
}
|
|
||||||
|
|
||||||
func HasMessageName(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool {
|
|
||||||
return proto.GetBoolExtension(message.Options, E_Messagename, proto.GetBoolExtension(file.Options, E_MessagenameAll, false))
|
|
||||||
}
|
|
||||||
|
|
||||||
func HasSizecache(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool {
|
|
||||||
return proto.GetBoolExtension(message.Options, E_GoprotoSizecache, proto.GetBoolExtension(file.Options, E_GoprotoSizecacheAll, true))
|
|
||||||
}
|
|
||||||
|
|
||||||
func HasUnkeyed(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool {
|
|
||||||
return proto.GetBoolExtension(message.Options, E_GoprotoUnkeyed, proto.GetBoolExtension(file.Options, E_GoprotoUnkeyedAll, true))
|
|
||||||
}
|
|
||||||
36
vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/Makefile
generated
vendored
36
vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/Makefile
generated
vendored
@ -1,36 +0,0 @@
|
|||||||
# Go support for Protocol Buffers - Google's data interchange format
|
|
||||||
#
|
|
||||||
# Copyright 2010 The Go Authors. All rights reserved.
|
|
||||||
# https://github.com/golang/protobuf
|
|
||||||
#
|
|
||||||
# Redistribution and use in source and binary forms, with or without
|
|
||||||
# modification, are permitted provided that the following conditions are
|
|
||||||
# met:
|
|
||||||
#
|
|
||||||
# * Redistributions of source code must retain the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer.
|
|
||||||
# * Redistributions in binary form must reproduce the above
|
|
||||||
# copyright notice, this list of conditions and the following disclaimer
|
|
||||||
# in the documentation and/or other materials provided with the
|
|
||||||
# distribution.
|
|
||||||
# * Neither the name of Google Inc. nor the names of its
|
|
||||||
# contributors may be used to endorse or promote products derived from
|
|
||||||
# this software without specific prior written permission.
|
|
||||||
#
|
|
||||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
||||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
||||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
||||||
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
||||||
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
||||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
||||||
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
||||||
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
||||||
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
||||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
|
|
||||||
regenerate:
|
|
||||||
go install github.com/gogo/protobuf/protoc-gen-gogo
|
|
||||||
go install github.com/gogo/protobuf/protoc-gen-gostring
|
|
||||||
protoc --gogo_out=. -I=../../protobuf/google/protobuf ../../protobuf/google/protobuf/descriptor.proto
|
|
||||||
protoc --gostring_out=. -I=../../protobuf/google/protobuf ../../protobuf/google/protobuf/descriptor.proto
|
|
||||||
118
vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/descriptor.go
generated
vendored
118
vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/descriptor.go
generated
vendored
@ -1,118 +0,0 @@
|
|||||||
// Go support for Protocol Buffers - Google's data interchange format
|
|
||||||
//
|
|
||||||
// Copyright 2016 The Go Authors. All rights reserved.
|
|
||||||
// https://github.com/golang/protobuf
|
|
||||||
//
|
|
||||||
// Redistribution and use in source and binary forms, with or without
|
|
||||||
// modification, are permitted provided that the following conditions are
|
|
||||||
// met:
|
|
||||||
//
|
|
||||||
// * Redistributions of source code must retain the above copyright
|
|
||||||
// notice, this list of conditions and the following disclaimer.
|
|
||||||
// * Redistributions in binary form must reproduce the above
|
|
||||||
// copyright notice, this list of conditions and the following disclaimer
|
|
||||||
// in the documentation and/or other materials provided with the
|
|
||||||
// distribution.
|
|
||||||
// * Neither the name of Google Inc. nor the names of its
|
|
||||||
// contributors may be used to endorse or promote products derived from
|
|
||||||
// this software without specific prior written permission.
|
|
||||||
//
|
|
||||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
||||||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
||||||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
||||||
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
||||||
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
||||||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
||||||
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
||||||
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
||||||
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
||||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
|
|
||||||
// Package descriptor provides functions for obtaining protocol buffer
|
|
||||||
// descriptors for generated Go types.
|
|
||||||
//
|
|
||||||
// These functions cannot go in package proto because they depend on the
|
|
||||||
// generated protobuf descriptor messages, which themselves depend on proto.
|
|
||||||
package descriptor
|
|
||||||
|
|
||||||
import (
|
|
||||||
"bytes"
|
|
||||||
"compress/gzip"
|
|
||||||
"fmt"
|
|
||||||
"io/ioutil"
|
|
||||||
|
|
||||||
"github.com/gogo/protobuf/proto"
|
|
||||||
)
|
|
||||||
|
|
||||||
// extractFile extracts a FileDescriptorProto from a gzip'd buffer.
|
|
||||||
func extractFile(gz []byte) (*FileDescriptorProto, error) {
|
|
||||||
r, err := gzip.NewReader(bytes.NewReader(gz))
|
|
||||||
if err != nil {
|
|
||||||
return nil, fmt.Errorf("failed to open gzip reader: %v", err)
|
|
||||||
}
|
|
||||||
defer r.Close()
|
|
||||||
|
|
||||||
b, err := ioutil.ReadAll(r)
|
|
||||||
if err != nil {
|
|
||||||
return nil, fmt.Errorf("failed to uncompress descriptor: %v", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
fd := new(FileDescriptorProto)
|
|
||||||
if err := proto.Unmarshal(b, fd); err != nil {
|
|
||||||
return nil, fmt.Errorf("malformed FileDescriptorProto: %v", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
return fd, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// Message is a proto.Message with a method to return its descriptor.
|
|
||||||
//
|
|
||||||
// Message types generated by the protocol compiler always satisfy
|
|
||||||
// the Message interface.
|
|
||||||
type Message interface {
|
|
||||||
proto.Message
|
|
||||||
Descriptor() ([]byte, []int)
|
|
||||||
}
|
|
||||||
|
|
||||||
// ForMessage returns a FileDescriptorProto and a DescriptorProto from within it
|
|
||||||
// describing the given message.
|
|
||||||
func ForMessage(msg Message) (fd *FileDescriptorProto, md *DescriptorProto) {
|
|
||||||
gz, path := msg.Descriptor()
|
|
||||||
fd, err := extractFile(gz)
|
|
||||||
if err != nil {
|
|
||||||
panic(fmt.Sprintf("invalid FileDescriptorProto for %T: %v", msg, err))
|
|
||||||
}
|
|
||||||
|
|
||||||
md = fd.MessageType[path[0]]
|
|
||||||
for _, i := range path[1:] {
|
|
||||||
md = md.NestedType[i]
|
|
||||||
}
|
|
||||||
return fd, md
|
|
||||||
}
|
|
||||||
|
|
||||||
// Is this field a scalar numeric type?
|
|
||||||
func (field *FieldDescriptorProto) IsScalar() bool {
|
|
||||||
if field.Type == nil {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
switch *field.Type {
|
|
||||||
case FieldDescriptorProto_TYPE_DOUBLE,
|
|
||||||
FieldDescriptorProto_TYPE_FLOAT,
|
|
||||||
FieldDescriptorProto_TYPE_INT64,
|
|
||||||
FieldDescriptorProto_TYPE_UINT64,
|
|
||||||
FieldDescriptorProto_TYPE_INT32,
|
|
||||||
FieldDescriptorProto_TYPE_FIXED64,
|
|
||||||
FieldDescriptorProto_TYPE_FIXED32,
|
|
||||||
FieldDescriptorProto_TYPE_BOOL,
|
|
||||||
FieldDescriptorProto_TYPE_UINT32,
|
|
||||||
FieldDescriptorProto_TYPE_ENUM,
|
|
||||||
FieldDescriptorProto_TYPE_SFIXED32,
|
|
||||||
FieldDescriptorProto_TYPE_SFIXED64,
|
|
||||||
FieldDescriptorProto_TYPE_SINT32,
|
|
||||||
FieldDescriptorProto_TYPE_SINT64:
|
|
||||||
return true
|
|
||||||
default:
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
2865
vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/descriptor.pb.go
generated
vendored
2865
vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/descriptor.pb.go
generated
vendored
File diff suppressed because it is too large
Load Diff
752
vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/descriptor_gostring.gen.go
generated
vendored
752
vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/descriptor_gostring.gen.go
generated
vendored
@ -1,752 +0,0 @@
|
|||||||
// Code generated by protoc-gen-gogo. DO NOT EDIT.
|
|
||||||
// source: descriptor.proto
|
|
||||||
|
|
||||||
package descriptor
|
|
||||||
|
|
||||||
import (
|
|
||||||
fmt "fmt"
|
|
||||||
github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
|
|
||||||
proto "github.com/gogo/protobuf/proto"
|
|
||||||
math "math"
|
|
||||||
reflect "reflect"
|
|
||||||
sort "sort"
|
|
||||||
strconv "strconv"
|
|
||||||
strings "strings"
|
|
||||||
)
|
|
||||||
|
|
||||||
// Reference imports to suppress errors if they are not otherwise used.
|
|
||||||
var _ = proto.Marshal
|
|
||||||
var _ = fmt.Errorf
|
|
||||||
var _ = math.Inf
|
|
||||||
|
|
||||||
func (this *FileDescriptorSet) GoString() string {
|
|
||||||
if this == nil {
|
|
||||||
return "nil"
|
|
||||||
}
|
|
||||||
s := make([]string, 0, 5)
|
|
||||||
s = append(s, "&descriptor.FileDescriptorSet{")
|
|
||||||
if this.File != nil {
|
|
||||||
s = append(s, "File: "+fmt.Sprintf("%#v", this.File)+",\n")
|
|
||||||
}
|
|
||||||
if this.XXX_unrecognized != nil {
|
|
||||||
s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
|
|
||||||
}
|
|
||||||
s = append(s, "}")
|
|
||||||
return strings.Join(s, "")
|
|
||||||
}
|
|
||||||
func (this *FileDescriptorProto) GoString() string {
|
|
||||||
if this == nil {
|
|
||||||
return "nil"
|
|
||||||
}
|
|
||||||
s := make([]string, 0, 16)
|
|
||||||
s = append(s, "&descriptor.FileDescriptorProto{")
|
|
||||||
if this.Name != nil {
|
|
||||||
s = append(s, "Name: "+valueToGoStringDescriptor(this.Name, "string")+",\n")
|
|
||||||
}
|
|
||||||
if this.Package != nil {
|
|
||||||
s = append(s, "Package: "+valueToGoStringDescriptor(this.Package, "string")+",\n")
|
|
||||||
}
|
|
||||||
if this.Dependency != nil {
|
|
||||||
s = append(s, "Dependency: "+fmt.Sprintf("%#v", this.Dependency)+",\n")
|
|
||||||
}
|
|
||||||
if this.PublicDependency != nil {
|
|
||||||
s = append(s, "PublicDependency: "+fmt.Sprintf("%#v", this.PublicDependency)+",\n")
|
|
||||||
}
|
|
||||||
if this.WeakDependency != nil {
|
|
||||||
s = append(s, "WeakDependency: "+fmt.Sprintf("%#v", this.WeakDependency)+",\n")
|
|
||||||
}
|
|
||||||
if this.MessageType != nil {
|
|
||||||
s = append(s, "MessageType: "+fmt.Sprintf("%#v", this.MessageType)+",\n")
|
|
||||||
}
|
|
||||||
if this.EnumType != nil {
|
|
||||||
s = append(s, "EnumType: "+fmt.Sprintf("%#v", this.EnumType)+",\n")
|
|
||||||
}
|
|
||||||
if this.Service != nil {
|
|
||||||
s = append(s, "Service: "+fmt.Sprintf("%#v", this.Service)+",\n")
|
|
||||||
}
|
|
||||||
if this.Extension != nil {
|
|
||||||
s = append(s, "Extension: "+fmt.Sprintf("%#v", this.Extension)+",\n")
|
|
||||||
}
|
|
||||||
if this.Options != nil {
|
|
||||||
s = append(s, "Options: "+fmt.Sprintf("%#v", this.Options)+",\n")
|
|
||||||
}
|
|
||||||
if this.SourceCodeInfo != nil {
|
|
||||||
s = append(s, "SourceCodeInfo: "+fmt.Sprintf("%#v", this.SourceCodeInfo)+",\n")
|
|
||||||
}
|
|
||||||
if this.Syntax != nil {
|
|
||||||
s = append(s, "Syntax: "+valueToGoStringDescriptor(this.Syntax, "string")+",\n")
|
|
||||||
}
|
|
||||||
if this.XXX_unrecognized != nil {
|
|
||||||
s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
|
|
||||||
}
|
|
||||||
s = append(s, "}")
|
|
||||||
return strings.Join(s, "")
|
|
||||||
}
|
|
||||||
func (this *DescriptorProto) GoString() string {
|
|
||||||
if this == nil {
|
|
||||||
return "nil"
|
|
||||||
}
|
|
||||||
s := make([]string, 0, 14)
|
|
||||||
s = append(s, "&descriptor.DescriptorProto{")
|
|
||||||
if this.Name != nil {
|
|
||||||
s = append(s, "Name: "+valueToGoStringDescriptor(this.Name, "string")+",\n")
|
|
||||||
}
|
|
||||||
if this.Field != nil {
|
|
||||||
s = append(s, "Field: "+fmt.Sprintf("%#v", this.Field)+",\n")
|
|
||||||
}
|
|
||||||
if this.Extension != nil {
|
|
||||||
s = append(s, "Extension: "+fmt.Sprintf("%#v", this.Extension)+",\n")
|
|
||||||
}
|
|
||||||
if this.NestedType != nil {
|
|
||||||
s = append(s, "NestedType: "+fmt.Sprintf("%#v", this.NestedType)+",\n")
|
|
||||||
}
|
|
||||||
if this.EnumType != nil {
|
|
||||||
s = append(s, "EnumType: "+fmt.Sprintf("%#v", this.EnumType)+",\n")
|
|
||||||
}
|
|
||||||
if this.ExtensionRange != nil {
|
|
||||||
s = append(s, "ExtensionRange: "+fmt.Sprintf("%#v", this.ExtensionRange)+",\n")
|
|
||||||
}
|
|
||||||
if this.OneofDecl != nil {
|
|
||||||
s = append(s, "OneofDecl: "+fmt.Sprintf("%#v", this.OneofDecl)+",\n")
|
|
||||||
}
|
|
||||||
if this.Options != nil {
|
|
||||||
s = append(s, "Options: "+fmt.Sprintf("%#v", this.Options)+",\n")
|
|
||||||
}
|
|
||||||
if this.ReservedRange != nil {
|
|
||||||
s = append(s, "ReservedRange: "+fmt.Sprintf("%#v", this.ReservedRange)+",\n")
|
|
||||||
}
|
|
||||||
if this.ReservedName != nil {
|
|
||||||
s = append(s, "ReservedName: "+fmt.Sprintf("%#v", this.ReservedName)+",\n")
|
|
||||||
}
|
|
||||||
if this.XXX_unrecognized != nil {
|
|
||||||
s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
|
|
||||||
}
|
|
||||||
s = append(s, "}")
|
|
||||||
return strings.Join(s, "")
|
|
||||||
}
|
|
||||||
func (this *DescriptorProto_ExtensionRange) GoString() string {
|
|
||||||
if this == nil {
|
|
||||||
return "nil"
|
|
||||||
}
|
|
||||||
s := make([]string, 0, 7)
|
|
||||||
s = append(s, "&descriptor.DescriptorProto_ExtensionRange{")
|
|
||||||
if this.Start != nil {
|
|
||||||
s = append(s, "Start: "+valueToGoStringDescriptor(this.Start, "int32")+",\n")
|
|
||||||
}
|
|
||||||
if this.End != nil {
|
|
||||||
s = append(s, "End: "+valueToGoStringDescriptor(this.End, "int32")+",\n")
|
|
||||||
}
|
|
||||||
if this.Options != nil {
|
|
||||||
s = append(s, "Options: "+fmt.Sprintf("%#v", this.Options)+",\n")
|
|
||||||
}
|
|
||||||
if this.XXX_unrecognized != nil {
|
|
||||||
s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
|
|
||||||
}
|
|
||||||
s = append(s, "}")
|
|
||||||
return strings.Join(s, "")
|
|
||||||
}
|
|
||||||
func (this *DescriptorProto_ReservedRange) GoString() string {
|
|
||||||
if this == nil {
|
|
||||||
return "nil"
|
|
||||||
}
|
|
||||||
s := make([]string, 0, 6)
|
|
||||||
s = append(s, "&descriptor.DescriptorProto_ReservedRange{")
|
|
||||||
if this.Start != nil {
|
|
||||||
s = append(s, "Start: "+valueToGoStringDescriptor(this.Start, "int32")+",\n")
|
|
||||||
}
|
|
||||||
if this.End != nil {
|
|
||||||
s = append(s, "End: "+valueToGoStringDescriptor(this.End, "int32")+",\n")
|
|
||||||
}
|
|
||||||
if this.XXX_unrecognized != nil {
|
|
||||||
s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
|
|
||||||
}
|
|
||||||
s = append(s, "}")
|
|
||||||
return strings.Join(s, "")
|
|
||||||
}
|
|
||||||
func (this *ExtensionRangeOptions) GoString() string {
|
|
||||||
if this == nil {
|
|
||||||
return "nil"
|
|
||||||
}
|
|
||||||
s := make([]string, 0, 5)
|
|
||||||
s = append(s, "&descriptor.ExtensionRangeOptions{")
|
|
||||||
if this.UninterpretedOption != nil {
|
|
||||||
s = append(s, "UninterpretedOption: "+fmt.Sprintf("%#v", this.UninterpretedOption)+",\n")
|
|
||||||
}
|
|
||||||
s = append(s, "XXX_InternalExtensions: "+extensionToGoStringDescriptor(this)+",\n")
|
|
||||||
if this.XXX_unrecognized != nil {
|
|
||||||
s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
|
|
||||||
}
|
|
||||||
s = append(s, "}")
|
|
||||||
return strings.Join(s, "")
|
|
||||||
}
|
|
||||||
func (this *FieldDescriptorProto) GoString() string {
|
|
||||||
if this == nil {
|
|
||||||
return "nil"
|
|
||||||
}
|
|
||||||
s := make([]string, 0, 14)
|
|
||||||
s = append(s, "&descriptor.FieldDescriptorProto{")
|
|
||||||
if this.Name != nil {
|
|
||||||
s = append(s, "Name: "+valueToGoStringDescriptor(this.Name, "string")+",\n")
|
|
||||||
}
|
|
||||||
if this.Number != nil {
|
|
||||||
s = append(s, "Number: "+valueToGoStringDescriptor(this.Number, "int32")+",\n")
|
|
||||||
}
|
|
||||||
if this.Label != nil {
|
|
||||||
s = append(s, "Label: "+valueToGoStringDescriptor(this.Label, "FieldDescriptorProto_Label")+",\n")
|
|
||||||
}
|
|
||||||
if this.Type != nil {
|
|
||||||
s = append(s, "Type: "+valueToGoStringDescriptor(this.Type, "FieldDescriptorProto_Type")+",\n")
|
|
||||||
}
|
|
||||||
if this.TypeName != nil {
|
|
||||||
s = append(s, "TypeName: "+valueToGoStringDescriptor(this.TypeName, "string")+",\n")
|
|
||||||
}
|
|
||||||
if this.Extendee != nil {
|
|
||||||
s = append(s, "Extendee: "+valueToGoStringDescriptor(this.Extendee, "string")+",\n")
|
|
||||||
}
|
|
||||||
if this.DefaultValue != nil {
|
|
||||||
s = append(s, "DefaultValue: "+valueToGoStringDescriptor(this.DefaultValue, "string")+",\n")
|
|
||||||
}
|
|
||||||
if this.OneofIndex != nil {
|
|
||||||
s = append(s, "OneofIndex: "+valueToGoStringDescriptor(this.OneofIndex, "int32")+",\n")
|
|
||||||
}
|
|
||||||
if this.JsonName != nil {
|
|
||||||
s = append(s, "JsonName: "+valueToGoStringDescriptor(this.JsonName, "string")+",\n")
|
|
||||||
}
|
|
||||||
if this.Options != nil {
|
|
||||||
s = append(s, "Options: "+fmt.Sprintf("%#v", this.Options)+",\n")
|
|
||||||
}
|
|
||||||
if this.XXX_unrecognized != nil {
|
|
||||||
s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
|
|
||||||
}
|
|
||||||
s = append(s, "}")
|
|
||||||
return strings.Join(s, "")
|
|
||||||
}
|
|
||||||
func (this *OneofDescriptorProto) GoString() string {
|
|
||||||
if this == nil {
|
|
||||||
return "nil"
|
|
||||||
}
|
|
||||||
s := make([]string, 0, 6)
|
|
||||||
s = append(s, "&descriptor.OneofDescriptorProto{")
|
|
||||||
if this.Name != nil {
|
|
||||||
s = append(s, "Name: "+valueToGoStringDescriptor(this.Name, "string")+",\n")
|
|
||||||
}
|
|
||||||
if this.Options != nil {
|
|
||||||
s = append(s, "Options: "+fmt.Sprintf("%#v", this.Options)+",\n")
|
|
||||||
}
|
|
||||||
if this.XXX_unrecognized != nil {
|
|
||||||
s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
|
|
||||||
}
|
|
||||||
s = append(s, "}")
|
|
||||||
return strings.Join(s, "")
|
|
||||||
}
|
|
||||||
func (this *EnumDescriptorProto) GoString() string {
|
|
||||||
if this == nil {
|
|
||||||
return "nil"
|
|
||||||
}
|
|
||||||
s := make([]string, 0, 9)
|
|
||||||
s = append(s, "&descriptor.EnumDescriptorProto{")
|
|
||||||
if this.Name != nil {
|
|
||||||
s = append(s, "Name: "+valueToGoStringDescriptor(this.Name, "string")+",\n")
|
|
||||||
}
|
|
||||||
if this.Value != nil {
|
|
||||||
s = append(s, "Value: "+fmt.Sprintf("%#v", this.Value)+",\n")
|
|
||||||
}
|
|
||||||
if this.Options != nil {
|
|
||||||
s = append(s, "Options: "+fmt.Sprintf("%#v", this.Options)+",\n")
|
|
||||||
}
|
|
||||||
if this.ReservedRange != nil {
|
|
||||||
s = append(s, "ReservedRange: "+fmt.Sprintf("%#v", this.ReservedRange)+",\n")
|
|
||||||
}
|
|
||||||
if this.ReservedName != nil {
|
|
||||||
s = append(s, "ReservedName: "+fmt.Sprintf("%#v", this.ReservedName)+",\n")
|
|
||||||
}
|
|
||||||
if this.XXX_unrecognized != nil {
|
|
||||||
s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
|
|
||||||
}
|
|
||||||
s = append(s, "}")
|
|
||||||
return strings.Join(s, "")
|
|
||||||
}
|
|
||||||
func (this *EnumDescriptorProto_EnumReservedRange) GoString() string {
|
|
||||||
if this == nil {
|
|
||||||
return "nil"
|
|
||||||
}
|
|
||||||
s := make([]string, 0, 6)
|
|
||||||
s = append(s, "&descriptor.EnumDescriptorProto_EnumReservedRange{")
|
|
||||||
if this.Start != nil {
|
|
||||||
s = append(s, "Start: "+valueToGoStringDescriptor(this.Start, "int32")+",\n")
|
|
||||||
}
|
|
||||||
if this.End != nil {
|
|
||||||
s = append(s, "End: "+valueToGoStringDescriptor(this.End, "int32")+",\n")
|
|
||||||
}
|
|
||||||
if this.XXX_unrecognized != nil {
|
|
||||||
s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
|
|
||||||
}
|
|
||||||
s = append(s, "}")
|
|
||||||
return strings.Join(s, "")
|
|
||||||
}
|
|
||||||
func (this *EnumValueDescriptorProto) GoString() string {
|
|
||||||
if this == nil {
|
|
||||||
return "nil"
|
|
||||||
}
|
|
||||||
s := make([]string, 0, 7)
|
|
||||||
s = append(s, "&descriptor.EnumValueDescriptorProto{")
|
|
||||||
if this.Name != nil {
|
|
||||||
s = append(s, "Name: "+valueToGoStringDescriptor(this.Name, "string")+",\n")
|
|
||||||
}
|
|
||||||
if this.Number != nil {
|
|
||||||
s = append(s, "Number: "+valueToGoStringDescriptor(this.Number, "int32")+",\n")
|
|
||||||
}
|
|
||||||
if this.Options != nil {
|
|
||||||
s = append(s, "Options: "+fmt.Sprintf("%#v", this.Options)+",\n")
|
|
||||||
}
|
|
||||||
if this.XXX_unrecognized != nil {
|
|
||||||
s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
|
|
||||||
}
|
|
||||||
s = append(s, "}")
|
|
||||||
return strings.Join(s, "")
|
|
||||||
}
|
|
||||||
func (this *ServiceDescriptorProto) GoString() string {
|
|
||||||
if this == nil {
|
|
||||||
return "nil"
|
|
||||||
}
|
|
||||||
s := make([]string, 0, 7)
|
|
||||||
s = append(s, "&descriptor.ServiceDescriptorProto{")
|
|
||||||
if this.Name != nil {
|
|
||||||
s = append(s, "Name: "+valueToGoStringDescriptor(this.Name, "string")+",\n")
|
|
||||||
}
|
|
||||||
if this.Method != nil {
|
|
||||||
s = append(s, "Method: "+fmt.Sprintf("%#v", this.Method)+",\n")
|
|
||||||
}
|
|
||||||
if this.Options != nil {
|
|
||||||
s = append(s, "Options: "+fmt.Sprintf("%#v", this.Options)+",\n")
|
|
||||||
}
|
|
||||||
if this.XXX_unrecognized != nil {
|
|
||||||
s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
|
|
||||||
}
|
|
||||||
s = append(s, "}")
|
|
||||||
return strings.Join(s, "")
|
|
||||||
}
|
|
||||||
func (this *MethodDescriptorProto) GoString() string {
|
|
||||||
if this == nil {
|
|
||||||
return "nil"
|
|
||||||
}
|
|
||||||
s := make([]string, 0, 10)
|
|
||||||
s = append(s, "&descriptor.MethodDescriptorProto{")
|
|
||||||
if this.Name != nil {
|
|
||||||
s = append(s, "Name: "+valueToGoStringDescriptor(this.Name, "string")+",\n")
|
|
||||||
}
|
|
||||||
if this.InputType != nil {
|
|
||||||
s = append(s, "InputType: "+valueToGoStringDescriptor(this.InputType, "string")+",\n")
|
|
||||||
}
|
|
||||||
if this.OutputType != nil {
|
|
||||||
s = append(s, "OutputType: "+valueToGoStringDescriptor(this.OutputType, "string")+",\n")
|
|
||||||
}
|
|
||||||
if this.Options != nil {
|
|
||||||
s = append(s, "Options: "+fmt.Sprintf("%#v", this.Options)+",\n")
|
|
||||||
}
|
|
||||||
if this.ClientStreaming != nil {
|
|
||||||
s = append(s, "ClientStreaming: "+valueToGoStringDescriptor(this.ClientStreaming, "bool")+",\n")
|
|
||||||
}
|
|
||||||
if this.ServerStreaming != nil {
|
|
||||||
s = append(s, "ServerStreaming: "+valueToGoStringDescriptor(this.ServerStreaming, "bool")+",\n")
|
|
||||||
}
|
|
||||||
if this.XXX_unrecognized != nil {
|
|
||||||
s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
|
|
||||||
}
|
|
||||||
s = append(s, "}")
|
|
||||||
return strings.Join(s, "")
|
|
||||||
}
|
|
||||||
func (this *FileOptions) GoString() string {
|
|
||||||
if this == nil {
|
|
||||||
return "nil"
|
|
||||||
}
|
|
||||||
s := make([]string, 0, 25)
|
|
||||||
s = append(s, "&descriptor.FileOptions{")
|
|
||||||
if this.JavaPackage != nil {
|
|
||||||
s = append(s, "JavaPackage: "+valueToGoStringDescriptor(this.JavaPackage, "string")+",\n")
|
|
||||||
}
|
|
||||||
if this.JavaOuterClassname != nil {
|
|
||||||
s = append(s, "JavaOuterClassname: "+valueToGoStringDescriptor(this.JavaOuterClassname, "string")+",\n")
|
|
||||||
}
|
|
||||||
if this.JavaMultipleFiles != nil {
|
|
||||||
s = append(s, "JavaMultipleFiles: "+valueToGoStringDescriptor(this.JavaMultipleFiles, "bool")+",\n")
|
|
||||||
}
|
|
||||||
if this.JavaGenerateEqualsAndHash != nil {
|
|
||||||
s = append(s, "JavaGenerateEqualsAndHash: "+valueToGoStringDescriptor(this.JavaGenerateEqualsAndHash, "bool")+",\n")
|
|
||||||
}
|
|
||||||
if this.JavaStringCheckUtf8 != nil {
|
|
||||||
s = append(s, "JavaStringCheckUtf8: "+valueToGoStringDescriptor(this.JavaStringCheckUtf8, "bool")+",\n")
|
|
||||||
}
|
|
||||||
if this.OptimizeFor != nil {
|
|
||||||
s = append(s, "OptimizeFor: "+valueToGoStringDescriptor(this.OptimizeFor, "FileOptions_OptimizeMode")+",\n")
|
|
||||||
}
|
|
||||||
if this.GoPackage != nil {
|
|
||||||
s = append(s, "GoPackage: "+valueToGoStringDescriptor(this.GoPackage, "string")+",\n")
|
|
||||||
}
|
|
||||||
if this.CcGenericServices != nil {
|
|
||||||
s = append(s, "CcGenericServices: "+valueToGoStringDescriptor(this.CcGenericServices, "bool")+",\n")
|
|
||||||
}
|
|
||||||
if this.JavaGenericServices != nil {
|
|
||||||
s = append(s, "JavaGenericServices: "+valueToGoStringDescriptor(this.JavaGenericServices, "bool")+",\n")
|
|
||||||
}
|
|
||||||
if this.PyGenericServices != nil {
|
|
||||||
s = append(s, "PyGenericServices: "+valueToGoStringDescriptor(this.PyGenericServices, "bool")+",\n")
|
|
||||||
}
|
|
||||||
if this.PhpGenericServices != nil {
|
|
||||||
s = append(s, "PhpGenericServices: "+valueToGoStringDescriptor(this.PhpGenericServices, "bool")+",\n")
|
|
||||||
}
|
|
||||||
if this.Deprecated != nil {
|
|
||||||
s = append(s, "Deprecated: "+valueToGoStringDescriptor(this.Deprecated, "bool")+",\n")
|
|
||||||
}
|
|
||||||
if this.CcEnableArenas != nil {
|
|
||||||
s = append(s, "CcEnableArenas: "+valueToGoStringDescriptor(this.CcEnableArenas, "bool")+",\n")
|
|
||||||
}
|
|
||||||
if this.ObjcClassPrefix != nil {
|
|
||||||
s = append(s, "ObjcClassPrefix: "+valueToGoStringDescriptor(this.ObjcClassPrefix, "string")+",\n")
|
|
||||||
}
|
|
||||||
if this.CsharpNamespace != nil {
|
|
||||||
s = append(s, "CsharpNamespace: "+valueToGoStringDescriptor(this.CsharpNamespace, "string")+",\n")
|
|
||||||
}
|
|
||||||
if this.SwiftPrefix != nil {
|
|
||||||
s = append(s, "SwiftPrefix: "+valueToGoStringDescriptor(this.SwiftPrefix, "string")+",\n")
|
|
||||||
}
|
|
||||||
if this.PhpClassPrefix != nil {
|
|
||||||
s = append(s, "PhpClassPrefix: "+valueToGoStringDescriptor(this.PhpClassPrefix, "string")+",\n")
|
|
||||||
}
|
|
||||||
if this.PhpNamespace != nil {
|
|
||||||
s = append(s, "PhpNamespace: "+valueToGoStringDescriptor(this.PhpNamespace, "string")+",\n")
|
|
||||||
}
|
|
||||||
if this.PhpMetadataNamespace != nil {
|
|
||||||
s = append(s, "PhpMetadataNamespace: "+valueToGoStringDescriptor(this.PhpMetadataNamespace, "string")+",\n")
|
|
||||||
}
|
|
||||||
if this.RubyPackage != nil {
|
|
||||||
s = append(s, "RubyPackage: "+valueToGoStringDescriptor(this.RubyPackage, "string")+",\n")
|
|
||||||
}
|
|
||||||
if this.UninterpretedOption != nil {
|
|
||||||
s = append(s, "UninterpretedOption: "+fmt.Sprintf("%#v", this.UninterpretedOption)+",\n")
|
|
||||||
}
|
|
||||||
s = append(s, "XXX_InternalExtensions: "+extensionToGoStringDescriptor(this)+",\n")
|
|
||||||
if this.XXX_unrecognized != nil {
|
|
||||||
s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
|
|
||||||
}
|
|
||||||
s = append(s, "}")
|
|
||||||
return strings.Join(s, "")
|
|
||||||
}
|
|
||||||
func (this *MessageOptions) GoString() string {
|
|
||||||
if this == nil {
|
|
||||||
return "nil"
|
|
||||||
}
|
|
||||||
s := make([]string, 0, 9)
|
|
||||||
s = append(s, "&descriptor.MessageOptions{")
|
|
||||||
if this.MessageSetWireFormat != nil {
|
|
||||||
s = append(s, "MessageSetWireFormat: "+valueToGoStringDescriptor(this.MessageSetWireFormat, "bool")+",\n")
|
|
||||||
}
|
|
||||||
if this.NoStandardDescriptorAccessor != nil {
|
|
||||||
s = append(s, "NoStandardDescriptorAccessor: "+valueToGoStringDescriptor(this.NoStandardDescriptorAccessor, "bool")+",\n")
|
|
||||||
}
|
|
||||||
if this.Deprecated != nil {
|
|
||||||
s = append(s, "Deprecated: "+valueToGoStringDescriptor(this.Deprecated, "bool")+",\n")
|
|
||||||
}
|
|
||||||
if this.MapEntry != nil {
|
|
||||||
s = append(s, "MapEntry: "+valueToGoStringDescriptor(this.MapEntry, "bool")+",\n")
|
|
||||||
}
|
|
||||||
if this.UninterpretedOption != nil {
|
|
||||||
s = append(s, "UninterpretedOption: "+fmt.Sprintf("%#v", this.UninterpretedOption)+",\n")
|
|
||||||
}
|
|
||||||
s = append(s, "XXX_InternalExtensions: "+extensionToGoStringDescriptor(this)+",\n")
|
|
||||||
if this.XXX_unrecognized != nil {
|
|
||||||
s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
|
|
||||||
}
|
|
||||||
s = append(s, "}")
|
|
||||||
return strings.Join(s, "")
|
|
||||||
}
|
|
||||||
func (this *FieldOptions) GoString() string {
|
|
||||||
if this == nil {
|
|
||||||
return "nil"
|
|
||||||
}
|
|
||||||
s := make([]string, 0, 11)
|
|
||||||
s = append(s, "&descriptor.FieldOptions{")
|
|
||||||
if this.Ctype != nil {
|
|
||||||
s = append(s, "Ctype: "+valueToGoStringDescriptor(this.Ctype, "FieldOptions_CType")+",\n")
|
|
||||||
}
|
|
||||||
if this.Packed != nil {
|
|
||||||
s = append(s, "Packed: "+valueToGoStringDescriptor(this.Packed, "bool")+",\n")
|
|
||||||
}
|
|
||||||
if this.Jstype != nil {
|
|
||||||
s = append(s, "Jstype: "+valueToGoStringDescriptor(this.Jstype, "FieldOptions_JSType")+",\n")
|
|
||||||
}
|
|
||||||
if this.Lazy != nil {
|
|
||||||
s = append(s, "Lazy: "+valueToGoStringDescriptor(this.Lazy, "bool")+",\n")
|
|
||||||
}
|
|
||||||
if this.Deprecated != nil {
|
|
||||||
s = append(s, "Deprecated: "+valueToGoStringDescriptor(this.Deprecated, "bool")+",\n")
|
|
||||||
}
|
|
||||||
if this.Weak != nil {
|
|
||||||
s = append(s, "Weak: "+valueToGoStringDescriptor(this.Weak, "bool")+",\n")
|
|
||||||
}
|
|
||||||
if this.UninterpretedOption != nil {
|
|
||||||
s = append(s, "UninterpretedOption: "+fmt.Sprintf("%#v", this.UninterpretedOption)+",\n")
|
|
||||||
}
|
|
||||||
s = append(s, "XXX_InternalExtensions: "+extensionToGoStringDescriptor(this)+",\n")
|
|
||||||
if this.XXX_unrecognized != nil {
|
|
||||||
s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
|
|
||||||
}
|
|
||||||
s = append(s, "}")
|
|
||||||
return strings.Join(s, "")
|
|
||||||
}
|
|
||||||
func (this *OneofOptions) GoString() string {
|
|
||||||
if this == nil {
|
|
||||||
return "nil"
|
|
||||||
}
|
|
||||||
s := make([]string, 0, 5)
|
|
||||||
s = append(s, "&descriptor.OneofOptions{")
|
|
||||||
if this.UninterpretedOption != nil {
|
|
||||||
s = append(s, "UninterpretedOption: "+fmt.Sprintf("%#v", this.UninterpretedOption)+",\n")
|
|
||||||
}
|
|
||||||
s = append(s, "XXX_InternalExtensions: "+extensionToGoStringDescriptor(this)+",\n")
|
|
||||||
if this.XXX_unrecognized != nil {
|
|
||||||
s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
|
|
||||||
}
|
|
||||||
s = append(s, "}")
|
|
||||||
return strings.Join(s, "")
|
|
||||||
}
|
|
||||||
func (this *EnumOptions) GoString() string {
|
|
||||||
if this == nil {
|
|
||||||
return "nil"
|
|
||||||
}
|
|
||||||
s := make([]string, 0, 7)
|
|
||||||
s = append(s, "&descriptor.EnumOptions{")
|
|
||||||
if this.AllowAlias != nil {
|
|
||||||
s = append(s, "AllowAlias: "+valueToGoStringDescriptor(this.AllowAlias, "bool")+",\n")
|
|
||||||
}
|
|
||||||
if this.Deprecated != nil {
|
|
||||||
s = append(s, "Deprecated: "+valueToGoStringDescriptor(this.Deprecated, "bool")+",\n")
|
|
||||||
}
|
|
||||||
if this.UninterpretedOption != nil {
|
|
||||||
s = append(s, "UninterpretedOption: "+fmt.Sprintf("%#v", this.UninterpretedOption)+",\n")
|
|
||||||
}
|
|
||||||
s = append(s, "XXX_InternalExtensions: "+extensionToGoStringDescriptor(this)+",\n")
|
|
||||||
if this.XXX_unrecognized != nil {
|
|
||||||
s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
|
|
||||||
}
|
|
||||||
s = append(s, "}")
|
|
||||||
return strings.Join(s, "")
|
|
||||||
}
|
|
||||||
func (this *EnumValueOptions) GoString() string {
|
|
||||||
if this == nil {
|
|
||||||
return "nil"
|
|
||||||
}
|
|
||||||
s := make([]string, 0, 6)
|
|
||||||
s = append(s, "&descriptor.EnumValueOptions{")
|
|
||||||
if this.Deprecated != nil {
|
|
||||||
s = append(s, "Deprecated: "+valueToGoStringDescriptor(this.Deprecated, "bool")+",\n")
|
|
||||||
}
|
|
||||||
if this.UninterpretedOption != nil {
|
|
||||||
s = append(s, "UninterpretedOption: "+fmt.Sprintf("%#v", this.UninterpretedOption)+",\n")
|
|
||||||
}
|
|
||||||
s = append(s, "XXX_InternalExtensions: "+extensionToGoStringDescriptor(this)+",\n")
|
|
||||||
if this.XXX_unrecognized != nil {
|
|
||||||
s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
|
|
||||||
}
|
|
||||||
s = append(s, "}")
|
|
||||||
return strings.Join(s, "")
|
|
||||||
}
|
|
||||||
func (this *ServiceOptions) GoString() string {
|
|
||||||
if this == nil {
|
|
||||||
return "nil"
|
|
||||||
}
|
|
||||||
s := make([]string, 0, 6)
|
|
||||||
s = append(s, "&descriptor.ServiceOptions{")
|
|
||||||
if this.Deprecated != nil {
|
|
||||||
s = append(s, "Deprecated: "+valueToGoStringDescriptor(this.Deprecated, "bool")+",\n")
|
|
||||||
}
|
|
||||||
if this.UninterpretedOption != nil {
|
|
||||||
s = append(s, "UninterpretedOption: "+fmt.Sprintf("%#v", this.UninterpretedOption)+",\n")
|
|
||||||
}
|
|
||||||
s = append(s, "XXX_InternalExtensions: "+extensionToGoStringDescriptor(this)+",\n")
|
|
||||||
if this.XXX_unrecognized != nil {
|
|
||||||
s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
|
|
||||||
}
|
|
||||||
s = append(s, "}")
|
|
||||||
return strings.Join(s, "")
|
|
||||||
}
|
|
||||||
func (this *MethodOptions) GoString() string {
|
|
||||||
if this == nil {
|
|
||||||
return "nil"
|
|
||||||
}
|
|
||||||
s := make([]string, 0, 7)
|
|
||||||
s = append(s, "&descriptor.MethodOptions{")
|
|
||||||
if this.Deprecated != nil {
|
|
||||||
s = append(s, "Deprecated: "+valueToGoStringDescriptor(this.Deprecated, "bool")+",\n")
|
|
||||||
}
|
|
||||||
if this.IdempotencyLevel != nil {
|
|
||||||
s = append(s, "IdempotencyLevel: "+valueToGoStringDescriptor(this.IdempotencyLevel, "MethodOptions_IdempotencyLevel")+",\n")
|
|
||||||
}
|
|
||||||
if this.UninterpretedOption != nil {
|
|
||||||
s = append(s, "UninterpretedOption: "+fmt.Sprintf("%#v", this.UninterpretedOption)+",\n")
|
|
||||||
}
|
|
||||||
s = append(s, "XXX_InternalExtensions: "+extensionToGoStringDescriptor(this)+",\n")
|
|
||||||
if this.XXX_unrecognized != nil {
|
|
||||||
s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
|
|
||||||
}
|
|
||||||
s = append(s, "}")
|
|
||||||
return strings.Join(s, "")
|
|
||||||
}
|
|
||||||
func (this *UninterpretedOption) GoString() string {
|
|
||||||
if this == nil {
|
|
||||||
return "nil"
|
|
||||||
}
|
|
||||||
s := make([]string, 0, 11)
|
|
||||||
s = append(s, "&descriptor.UninterpretedOption{")
|
|
||||||
if this.Name != nil {
|
|
||||||
s = append(s, "Name: "+fmt.Sprintf("%#v", this.Name)+",\n")
|
|
||||||
}
|
|
||||||
if this.IdentifierValue != nil {
|
|
||||||
s = append(s, "IdentifierValue: "+valueToGoStringDescriptor(this.IdentifierValue, "string")+",\n")
|
|
||||||
}
|
|
||||||
if this.PositiveIntValue != nil {
|
|
||||||
s = append(s, "PositiveIntValue: "+valueToGoStringDescriptor(this.PositiveIntValue, "uint64")+",\n")
|
|
||||||
}
|
|
||||||
if this.NegativeIntValue != nil {
|
|
||||||
s = append(s, "NegativeIntValue: "+valueToGoStringDescriptor(this.NegativeIntValue, "int64")+",\n")
|
|
||||||
}
|
|
||||||
if this.DoubleValue != nil {
|
|
||||||
s = append(s, "DoubleValue: "+valueToGoStringDescriptor(this.DoubleValue, "float64")+",\n")
|
|
||||||
}
|
|
||||||
if this.StringValue != nil {
|
|
||||||
s = append(s, "StringValue: "+valueToGoStringDescriptor(this.StringValue, "byte")+",\n")
|
|
||||||
}
|
|
||||||
if this.AggregateValue != nil {
|
|
||||||
s = append(s, "AggregateValue: "+valueToGoStringDescriptor(this.AggregateValue, "string")+",\n")
|
|
||||||
}
|
|
||||||
if this.XXX_unrecognized != nil {
|
|
||||||
s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
|
|
||||||
}
|
|
||||||
s = append(s, "}")
|
|
||||||
return strings.Join(s, "")
|
|
||||||
}
|
|
||||||
func (this *UninterpretedOption_NamePart) GoString() string {
|
|
||||||
if this == nil {
|
|
||||||
return "nil"
|
|
||||||
}
|
|
||||||
s := make([]string, 0, 6)
|
|
||||||
s = append(s, "&descriptor.UninterpretedOption_NamePart{")
|
|
||||||
if this.NamePart != nil {
|
|
||||||
s = append(s, "NamePart: "+valueToGoStringDescriptor(this.NamePart, "string")+",\n")
|
|
||||||
}
|
|
||||||
if this.IsExtension != nil {
|
|
||||||
s = append(s, "IsExtension: "+valueToGoStringDescriptor(this.IsExtension, "bool")+",\n")
|
|
||||||
}
|
|
||||||
if this.XXX_unrecognized != nil {
|
|
||||||
s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
|
|
||||||
}
|
|
||||||
s = append(s, "}")
|
|
||||||
return strings.Join(s, "")
|
|
||||||
}
|
|
||||||
func (this *SourceCodeInfo) GoString() string {
|
|
||||||
if this == nil {
|
|
||||||
return "nil"
|
|
||||||
}
|
|
||||||
s := make([]string, 0, 5)
|
|
||||||
s = append(s, "&descriptor.SourceCodeInfo{")
|
|
||||||
if this.Location != nil {
|
|
||||||
s = append(s, "Location: "+fmt.Sprintf("%#v", this.Location)+",\n")
|
|
||||||
}
|
|
||||||
if this.XXX_unrecognized != nil {
|
|
||||||
s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
|
|
||||||
}
|
|
||||||
s = append(s, "}")
|
|
||||||
return strings.Join(s, "")
|
|
||||||
}
|
|
||||||
func (this *SourceCodeInfo_Location) GoString() string {
|
|
||||||
if this == nil {
|
|
||||||
return "nil"
|
|
||||||
}
|
|
||||||
s := make([]string, 0, 9)
|
|
||||||
s = append(s, "&descriptor.SourceCodeInfo_Location{")
|
|
||||||
if this.Path != nil {
|
|
||||||
s = append(s, "Path: "+fmt.Sprintf("%#v", this.Path)+",\n")
|
|
||||||
}
|
|
||||||
if this.Span != nil {
|
|
||||||
s = append(s, "Span: "+fmt.Sprintf("%#v", this.Span)+",\n")
|
|
||||||
}
|
|
||||||
if this.LeadingComments != nil {
|
|
||||||
s = append(s, "LeadingComments: "+valueToGoStringDescriptor(this.LeadingComments, "string")+",\n")
|
|
||||||
}
|
|
||||||
if this.TrailingComments != nil {
|
|
||||||
s = append(s, "TrailingComments: "+valueToGoStringDescriptor(this.TrailingComments, "string")+",\n")
|
|
||||||
}
|
|
||||||
if this.LeadingDetachedComments != nil {
|
|
||||||
s = append(s, "LeadingDetachedComments: "+fmt.Sprintf("%#v", this.LeadingDetachedComments)+",\n")
|
|
||||||
}
|
|
||||||
if this.XXX_unrecognized != nil {
|
|
||||||
s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
|
|
||||||
}
|
|
||||||
s = append(s, "}")
|
|
||||||
return strings.Join(s, "")
|
|
||||||
}
|
|
||||||
func (this *GeneratedCodeInfo) GoString() string {
|
|
||||||
if this == nil {
|
|
||||||
return "nil"
|
|
||||||
}
|
|
||||||
s := make([]string, 0, 5)
|
|
||||||
s = append(s, "&descriptor.GeneratedCodeInfo{")
|
|
||||||
if this.Annotation != nil {
|
|
||||||
s = append(s, "Annotation: "+fmt.Sprintf("%#v", this.Annotation)+",\n")
|
|
||||||
}
|
|
||||||
if this.XXX_unrecognized != nil {
|
|
||||||
s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
|
|
||||||
}
|
|
||||||
s = append(s, "}")
|
|
||||||
return strings.Join(s, "")
|
|
||||||
}
|
|
||||||
func (this *GeneratedCodeInfo_Annotation) GoString() string {
|
|
||||||
if this == nil {
|
|
||||||
return "nil"
|
|
||||||
}
|
|
||||||
s := make([]string, 0, 8)
|
|
||||||
s = append(s, "&descriptor.GeneratedCodeInfo_Annotation{")
|
|
||||||
if this.Path != nil {
|
|
||||||
s = append(s, "Path: "+fmt.Sprintf("%#v", this.Path)+",\n")
|
|
||||||
}
|
|
||||||
if this.SourceFile != nil {
|
|
||||||
s = append(s, "SourceFile: "+valueToGoStringDescriptor(this.SourceFile, "string")+",\n")
|
|
||||||
}
|
|
||||||
if this.Begin != nil {
|
|
||||||
s = append(s, "Begin: "+valueToGoStringDescriptor(this.Begin, "int32")+",\n")
|
|
||||||
}
|
|
||||||
if this.End != nil {
|
|
||||||
s = append(s, "End: "+valueToGoStringDescriptor(this.End, "int32")+",\n")
|
|
||||||
}
|
|
||||||
if this.XXX_unrecognized != nil {
|
|
||||||
s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
|
|
||||||
}
|
|
||||||
s = append(s, "}")
|
|
||||||
return strings.Join(s, "")
|
|
||||||
}
|
|
||||||
func valueToGoStringDescriptor(v interface{}, typ string) string {
|
|
||||||
rv := reflect.ValueOf(v)
|
|
||||||
if rv.IsNil() {
|
|
||||||
return "nil"
|
|
||||||
}
|
|
||||||
pv := reflect.Indirect(rv).Interface()
|
|
||||||
return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv)
|
|
||||||
}
|
|
||||||
func extensionToGoStringDescriptor(m github_com_gogo_protobuf_proto.Message) string {
|
|
||||||
e := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(m)
|
|
||||||
if e == nil {
|
|
||||||
return "nil"
|
|
||||||
}
|
|
||||||
s := "proto.NewUnsafeXXX_InternalExtensions(map[int32]proto.Extension{"
|
|
||||||
keys := make([]int, 0, len(e))
|
|
||||||
for k := range e {
|
|
||||||
keys = append(keys, int(k))
|
|
||||||
}
|
|
||||||
sort.Ints(keys)
|
|
||||||
ss := []string{}
|
|
||||||
for _, k := range keys {
|
|
||||||
ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString())
|
|
||||||
}
|
|
||||||
s += strings.Join(ss, ",") + "})"
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
390
vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/helper.go
generated
vendored
390
vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/helper.go
generated
vendored
@ -1,390 +0,0 @@
|
|||||||
// Protocol Buffers for Go with Gadgets
|
|
||||||
//
|
|
||||||
// Copyright (c) 2013, The GoGo Authors. All rights reserved.
|
|
||||||
// http://github.com/gogo/protobuf
|
|
||||||
//
|
|
||||||
// Redistribution and use in source and binary forms, with or without
|
|
||||||
// modification, are permitted provided that the following conditions are
|
|
||||||
// met:
|
|
||||||
//
|
|
||||||
// * Redistributions of source code must retain the above copyright
|
|
||||||
// notice, this list of conditions and the following disclaimer.
|
|
||||||
// * Redistributions in binary form must reproduce the above
|
|
||||||
// copyright notice, this list of conditions and the following disclaimer
|
|
||||||
// in the documentation and/or other materials provided with the
|
|
||||||
// distribution.
|
|
||||||
//
|
|
||||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
||||||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
||||||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
||||||
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
||||||
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
||||||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
||||||
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
||||||
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
||||||
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
||||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
|
|
||||||
package descriptor
|
|
||||||
|
|
||||||
import (
|
|
||||||
"strings"
|
|
||||||
)
|
|
||||||
|
|
||||||
func (msg *DescriptorProto) GetMapFields() (*FieldDescriptorProto, *FieldDescriptorProto) {
|
|
||||||
if !msg.GetOptions().GetMapEntry() {
|
|
||||||
return nil, nil
|
|
||||||
}
|
|
||||||
return msg.GetField()[0], msg.GetField()[1]
|
|
||||||
}
|
|
||||||
|
|
||||||
func dotToUnderscore(r rune) rune {
|
|
||||||
if r == '.' {
|
|
||||||
return '_'
|
|
||||||
}
|
|
||||||
return r
|
|
||||||
}
|
|
||||||
|
|
||||||
func (field *FieldDescriptorProto) WireType() (wire int) {
|
|
||||||
switch *field.Type {
|
|
||||||
case FieldDescriptorProto_TYPE_DOUBLE:
|
|
||||||
return 1
|
|
||||||
case FieldDescriptorProto_TYPE_FLOAT:
|
|
||||||
return 5
|
|
||||||
case FieldDescriptorProto_TYPE_INT64:
|
|
||||||
return 0
|
|
||||||
case FieldDescriptorProto_TYPE_UINT64:
|
|
||||||
return 0
|
|
||||||
case FieldDescriptorProto_TYPE_INT32:
|
|
||||||
return 0
|
|
||||||
case FieldDescriptorProto_TYPE_UINT32:
|
|
||||||
return 0
|
|
||||||
case FieldDescriptorProto_TYPE_FIXED64:
|
|
||||||
return 1
|
|
||||||
case FieldDescriptorProto_TYPE_FIXED32:
|
|
||||||
return 5
|
|
||||||
case FieldDescriptorProto_TYPE_BOOL:
|
|
||||||
return 0
|
|
||||||
case FieldDescriptorProto_TYPE_STRING:
|
|
||||||
return 2
|
|
||||||
case FieldDescriptorProto_TYPE_GROUP:
|
|
||||||
return 2
|
|
||||||
case FieldDescriptorProto_TYPE_MESSAGE:
|
|
||||||
return 2
|
|
||||||
case FieldDescriptorProto_TYPE_BYTES:
|
|
||||||
return 2
|
|
||||||
case FieldDescriptorProto_TYPE_ENUM:
|
|
||||||
return 0
|
|
||||||
case FieldDescriptorProto_TYPE_SFIXED32:
|
|
||||||
return 5
|
|
||||||
case FieldDescriptorProto_TYPE_SFIXED64:
|
|
||||||
return 1
|
|
||||||
case FieldDescriptorProto_TYPE_SINT32:
|
|
||||||
return 0
|
|
||||||
case FieldDescriptorProto_TYPE_SINT64:
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
panic("unreachable")
|
|
||||||
}
|
|
||||||
|
|
||||||
func (field *FieldDescriptorProto) GetKeyUint64() (x uint64) {
|
|
||||||
packed := field.IsPacked()
|
|
||||||
wireType := field.WireType()
|
|
||||||
fieldNumber := field.GetNumber()
|
|
||||||
if packed {
|
|
||||||
wireType = 2
|
|
||||||
}
|
|
||||||
x = uint64(uint32(fieldNumber)<<3 | uint32(wireType))
|
|
||||||
return x
|
|
||||||
}
|
|
||||||
|
|
||||||
func (field *FieldDescriptorProto) GetKey3Uint64() (x uint64) {
|
|
||||||
packed := field.IsPacked3()
|
|
||||||
wireType := field.WireType()
|
|
||||||
fieldNumber := field.GetNumber()
|
|
||||||
if packed {
|
|
||||||
wireType = 2
|
|
||||||
}
|
|
||||||
x = uint64(uint32(fieldNumber)<<3 | uint32(wireType))
|
|
||||||
return x
|
|
||||||
}
|
|
||||||
|
|
||||||
func (field *FieldDescriptorProto) GetKey() []byte {
|
|
||||||
x := field.GetKeyUint64()
|
|
||||||
i := 0
|
|
||||||
keybuf := make([]byte, 0)
|
|
||||||
for i = 0; x > 127; i++ {
|
|
||||||
keybuf = append(keybuf, 0x80|uint8(x&0x7F))
|
|
||||||
x >>= 7
|
|
||||||
}
|
|
||||||
keybuf = append(keybuf, uint8(x))
|
|
||||||
return keybuf
|
|
||||||
}
|
|
||||||
|
|
||||||
func (field *FieldDescriptorProto) GetKey3() []byte {
|
|
||||||
x := field.GetKey3Uint64()
|
|
||||||
i := 0
|
|
||||||
keybuf := make([]byte, 0)
|
|
||||||
for i = 0; x > 127; i++ {
|
|
||||||
keybuf = append(keybuf, 0x80|uint8(x&0x7F))
|
|
||||||
x >>= 7
|
|
||||||
}
|
|
||||||
keybuf = append(keybuf, uint8(x))
|
|
||||||
return keybuf
|
|
||||||
}
|
|
||||||
|
|
||||||
func (desc *FileDescriptorSet) GetField(packageName, messageName, fieldName string) *FieldDescriptorProto {
|
|
||||||
msg := desc.GetMessage(packageName, messageName)
|
|
||||||
if msg == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
for _, field := range msg.GetField() {
|
|
||||||
if field.GetName() == fieldName {
|
|
||||||
return field
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (file *FileDescriptorProto) GetMessage(typeName string) *DescriptorProto {
|
|
||||||
for _, msg := range file.GetMessageType() {
|
|
||||||
if msg.GetName() == typeName {
|
|
||||||
return msg
|
|
||||||
}
|
|
||||||
nes := file.GetNestedMessage(msg, strings.TrimPrefix(typeName, msg.GetName()+"."))
|
|
||||||
if nes != nil {
|
|
||||||
return nes
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (file *FileDescriptorProto) GetNestedMessage(msg *DescriptorProto, typeName string) *DescriptorProto {
|
|
||||||
for _, nes := range msg.GetNestedType() {
|
|
||||||
if nes.GetName() == typeName {
|
|
||||||
return nes
|
|
||||||
}
|
|
||||||
res := file.GetNestedMessage(nes, strings.TrimPrefix(typeName, nes.GetName()+"."))
|
|
||||||
if res != nil {
|
|
||||||
return res
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (desc *FileDescriptorSet) GetMessage(packageName string, typeName string) *DescriptorProto {
|
|
||||||
for _, file := range desc.GetFile() {
|
|
||||||
if strings.Map(dotToUnderscore, file.GetPackage()) != strings.Map(dotToUnderscore, packageName) {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
for _, msg := range file.GetMessageType() {
|
|
||||||
if msg.GetName() == typeName {
|
|
||||||
return msg
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for _, msg := range file.GetMessageType() {
|
|
||||||
for _, nes := range msg.GetNestedType() {
|
|
||||||
if nes.GetName() == typeName {
|
|
||||||
return nes
|
|
||||||
}
|
|
||||||
if msg.GetName()+"."+nes.GetName() == typeName {
|
|
||||||
return nes
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (desc *FileDescriptorSet) IsProto3(packageName string, typeName string) bool {
|
|
||||||
for _, file := range desc.GetFile() {
|
|
||||||
if strings.Map(dotToUnderscore, file.GetPackage()) != strings.Map(dotToUnderscore, packageName) {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
for _, msg := range file.GetMessageType() {
|
|
||||||
if msg.GetName() == typeName {
|
|
||||||
return file.GetSyntax() == "proto3"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for _, msg := range file.GetMessageType() {
|
|
||||||
for _, nes := range msg.GetNestedType() {
|
|
||||||
if nes.GetName() == typeName {
|
|
||||||
return file.GetSyntax() == "proto3"
|
|
||||||
}
|
|
||||||
if msg.GetName()+"."+nes.GetName() == typeName {
|
|
||||||
return file.GetSyntax() == "proto3"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
func (msg *DescriptorProto) IsExtendable() bool {
|
|
||||||
return len(msg.GetExtensionRange()) > 0
|
|
||||||
}
|
|
||||||
|
|
||||||
func (desc *FileDescriptorSet) FindExtension(packageName string, typeName string, fieldName string) (extPackageName string, field *FieldDescriptorProto) {
|
|
||||||
parent := desc.GetMessage(packageName, typeName)
|
|
||||||
if parent == nil {
|
|
||||||
return "", nil
|
|
||||||
}
|
|
||||||
if !parent.IsExtendable() {
|
|
||||||
return "", nil
|
|
||||||
}
|
|
||||||
extendee := "." + packageName + "." + typeName
|
|
||||||
for _, file := range desc.GetFile() {
|
|
||||||
for _, ext := range file.GetExtension() {
|
|
||||||
if strings.Map(dotToUnderscore, file.GetPackage()) == strings.Map(dotToUnderscore, packageName) {
|
|
||||||
if !(ext.GetExtendee() == typeName || ext.GetExtendee() == extendee) {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if ext.GetExtendee() != extendee {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ext.GetName() == fieldName {
|
|
||||||
return file.GetPackage(), ext
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return "", nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (desc *FileDescriptorSet) FindExtensionByFieldNumber(packageName string, typeName string, fieldNum int32) (extPackageName string, field *FieldDescriptorProto) {
|
|
||||||
parent := desc.GetMessage(packageName, typeName)
|
|
||||||
if parent == nil {
|
|
||||||
return "", nil
|
|
||||||
}
|
|
||||||
if !parent.IsExtendable() {
|
|
||||||
return "", nil
|
|
||||||
}
|
|
||||||
extendee := "." + packageName + "." + typeName
|
|
||||||
for _, file := range desc.GetFile() {
|
|
||||||
for _, ext := range file.GetExtension() {
|
|
||||||
if strings.Map(dotToUnderscore, file.GetPackage()) == strings.Map(dotToUnderscore, packageName) {
|
|
||||||
if !(ext.GetExtendee() == typeName || ext.GetExtendee() == extendee) {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if ext.GetExtendee() != extendee {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ext.GetNumber() == fieldNum {
|
|
||||||
return file.GetPackage(), ext
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return "", nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (desc *FileDescriptorSet) FindMessage(packageName string, typeName string, fieldName string) (msgPackageName string, msgName string) {
|
|
||||||
parent := desc.GetMessage(packageName, typeName)
|
|
||||||
if parent == nil {
|
|
||||||
return "", ""
|
|
||||||
}
|
|
||||||
field := parent.GetFieldDescriptor(fieldName)
|
|
||||||
if field == nil {
|
|
||||||
var extPackageName string
|
|
||||||
extPackageName, field = desc.FindExtension(packageName, typeName, fieldName)
|
|
||||||
if field == nil {
|
|
||||||
return "", ""
|
|
||||||
}
|
|
||||||
packageName = extPackageName
|
|
||||||
}
|
|
||||||
typeNames := strings.Split(field.GetTypeName(), ".")
|
|
||||||
if len(typeNames) == 1 {
|
|
||||||
msg := desc.GetMessage(packageName, typeName)
|
|
||||||
if msg == nil {
|
|
||||||
return "", ""
|
|
||||||
}
|
|
||||||
return packageName, msg.GetName()
|
|
||||||
}
|
|
||||||
if len(typeNames) > 2 {
|
|
||||||
for i := 1; i < len(typeNames)-1; i++ {
|
|
||||||
packageName = strings.Join(typeNames[1:len(typeNames)-i], ".")
|
|
||||||
typeName = strings.Join(typeNames[len(typeNames)-i:], ".")
|
|
||||||
msg := desc.GetMessage(packageName, typeName)
|
|
||||||
if msg != nil {
|
|
||||||
typeNames := strings.Split(msg.GetName(), ".")
|
|
||||||
if len(typeNames) == 1 {
|
|
||||||
return packageName, msg.GetName()
|
|
||||||
}
|
|
||||||
return strings.Join(typeNames[1:len(typeNames)-1], "."), typeNames[len(typeNames)-1]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return "", ""
|
|
||||||
}
|
|
||||||
|
|
||||||
func (msg *DescriptorProto) GetFieldDescriptor(fieldName string) *FieldDescriptorProto {
|
|
||||||
for _, field := range msg.GetField() {
|
|
||||||
if field.GetName() == fieldName {
|
|
||||||
return field
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (desc *FileDescriptorSet) GetEnum(packageName string, typeName string) *EnumDescriptorProto {
|
|
||||||
for _, file := range desc.GetFile() {
|
|
||||||
if strings.Map(dotToUnderscore, file.GetPackage()) != strings.Map(dotToUnderscore, packageName) {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
for _, enum := range file.GetEnumType() {
|
|
||||||
if enum.GetName() == typeName {
|
|
||||||
return enum
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *FieldDescriptorProto) IsEnum() bool {
|
|
||||||
return *f.Type == FieldDescriptorProto_TYPE_ENUM
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *FieldDescriptorProto) IsMessage() bool {
|
|
||||||
return *f.Type == FieldDescriptorProto_TYPE_MESSAGE
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *FieldDescriptorProto) IsBytes() bool {
|
|
||||||
return *f.Type == FieldDescriptorProto_TYPE_BYTES
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *FieldDescriptorProto) IsRepeated() bool {
|
|
||||||
return f.Label != nil && *f.Label == FieldDescriptorProto_LABEL_REPEATED
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *FieldDescriptorProto) IsString() bool {
|
|
||||||
return *f.Type == FieldDescriptorProto_TYPE_STRING
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *FieldDescriptorProto) IsBool() bool {
|
|
||||||
return *f.Type == FieldDescriptorProto_TYPE_BOOL
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *FieldDescriptorProto) IsRequired() bool {
|
|
||||||
return f.Label != nil && *f.Label == FieldDescriptorProto_LABEL_REQUIRED
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *FieldDescriptorProto) IsPacked() bool {
|
|
||||||
return f.Options != nil && f.GetOptions().GetPacked()
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *FieldDescriptorProto) IsPacked3() bool {
|
|
||||||
if f.IsRepeated() && f.IsScalar() {
|
|
||||||
if f.Options == nil || f.GetOptions().Packed == nil {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
return f.Options != nil && f.GetOptions().GetPacked()
|
|
||||||
}
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *DescriptorProto) HasExtension() bool {
|
|
||||||
return len(m.ExtensionRange) > 0
|
|
||||||
}
|
|
||||||
33
vendor/github.com/golang/protobuf/proto/deprecated.go
generated
vendored
33
vendor/github.com/golang/protobuf/proto/deprecated.go
generated
vendored
@ -9,6 +9,8 @@ import (
|
|||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
|
||||||
|
protoV2 "google.golang.org/protobuf/proto"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@ -82,11 +84,30 @@ func UnmarshalJSONEnum(m map[string]int32, data []byte, enumName string) (int32,
|
|||||||
return val, nil
|
return val, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Deprecated: Do not use.
|
// Deprecated: Do not use; this type existed for intenal-use only.
|
||||||
type InternalMessageInfo struct{}
|
type InternalMessageInfo struct{}
|
||||||
|
|
||||||
func (*InternalMessageInfo) DiscardUnknown(Message) { panic("not implemented") }
|
// Deprecated: Do not use; this method existed for intenal-use only.
|
||||||
func (*InternalMessageInfo) Marshal([]byte, Message, bool) ([]byte, error) { panic("not implemented") }
|
func (*InternalMessageInfo) DiscardUnknown(m Message) {
|
||||||
func (*InternalMessageInfo) Merge(Message, Message) { panic("not implemented") }
|
DiscardUnknown(m)
|
||||||
func (*InternalMessageInfo) Size(Message) int { panic("not implemented") }
|
}
|
||||||
func (*InternalMessageInfo) Unmarshal(Message, []byte) error { panic("not implemented") }
|
|
||||||
|
// Deprecated: Do not use; this method existed for intenal-use only.
|
||||||
|
func (*InternalMessageInfo) Marshal(b []byte, m Message, deterministic bool) ([]byte, error) {
|
||||||
|
return protoV2.MarshalOptions{Deterministic: deterministic}.MarshalAppend(b, MessageV2(m))
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deprecated: Do not use; this method existed for intenal-use only.
|
||||||
|
func (*InternalMessageInfo) Merge(dst, src Message) {
|
||||||
|
protoV2.Merge(MessageV2(dst), MessageV2(src))
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deprecated: Do not use; this method existed for intenal-use only.
|
||||||
|
func (*InternalMessageInfo) Size(m Message) int {
|
||||||
|
return protoV2.Size(MessageV2(m))
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deprecated: Do not use; this method existed for intenal-use only.
|
||||||
|
func (*InternalMessageInfo) Unmarshal(m Message, b []byte) error {
|
||||||
|
return protoV2.UnmarshalOptions{Merge: true}.Unmarshal(b, MessageV2(m))
|
||||||
|
}
|
||||||
|
|||||||
4455
vendor/github.com/googleapis/gnostic/OpenAPIv2/OpenAPIv2.pb.go
generated
vendored
4455
vendor/github.com/googleapis/gnostic/OpenAPIv2/OpenAPIv2.pb.go
generated
vendored
File diff suppressed because it is too large
Load Diff
118
vendor/github.com/googleapis/gnostic/compiler/reader.go
generated
vendored
118
vendor/github.com/googleapis/gnostic/compiler/reader.go
generated
vendored
@ -17,13 +17,14 @@ package compiler
|
|||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"gopkg.in/yaml.v2"
|
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"log"
|
"log"
|
||||||
"net/http"
|
"net/http"
|
||||||
"net/url"
|
"net/url"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
yaml "gopkg.in/yaml.v2"
|
||||||
)
|
)
|
||||||
|
|
||||||
var fileCache map[string][]byte
|
var fileCache map[string][]byte
|
||||||
@ -31,6 +32,8 @@ var infoCache map[string]interface{}
|
|||||||
var count int64
|
var count int64
|
||||||
|
|
||||||
var verboseReader = false
|
var verboseReader = false
|
||||||
|
var fileCacheEnable = true
|
||||||
|
var infoCacheEnable = true
|
||||||
|
|
||||||
func initializeFileCache() {
|
func initializeFileCache() {
|
||||||
if fileCache == nil {
|
if fileCache == nil {
|
||||||
@ -44,29 +47,84 @@ func initializeInfoCache() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func EnableFileCache() {
|
||||||
|
fileCacheEnable = true
|
||||||
|
}
|
||||||
|
|
||||||
|
func EnableInfoCache() {
|
||||||
|
infoCacheEnable = true
|
||||||
|
}
|
||||||
|
|
||||||
|
func DisableFileCache() {
|
||||||
|
fileCacheEnable = false
|
||||||
|
}
|
||||||
|
|
||||||
|
func DisableInfoCache() {
|
||||||
|
infoCacheEnable = false
|
||||||
|
}
|
||||||
|
|
||||||
|
func RemoveFromFileCache(fileurl string) {
|
||||||
|
if !fileCacheEnable {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
initializeFileCache()
|
||||||
|
delete(fileCache, fileurl)
|
||||||
|
}
|
||||||
|
|
||||||
|
func RemoveFromInfoCache(filename string) {
|
||||||
|
if !infoCacheEnable {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
initializeInfoCache()
|
||||||
|
delete(infoCache, filename)
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetInfoCache() map[string]interface{} {
|
||||||
|
if infoCache == nil {
|
||||||
|
initializeInfoCache()
|
||||||
|
}
|
||||||
|
return infoCache
|
||||||
|
}
|
||||||
|
|
||||||
|
func ClearFileCache() {
|
||||||
|
fileCache = make(map[string][]byte, 0)
|
||||||
|
}
|
||||||
|
|
||||||
|
func ClearInfoCache() {
|
||||||
|
infoCache = make(map[string]interface{})
|
||||||
|
}
|
||||||
|
|
||||||
|
func ClearCaches() {
|
||||||
|
ClearFileCache()
|
||||||
|
ClearInfoCache()
|
||||||
|
}
|
||||||
|
|
||||||
// FetchFile gets a specified file from the local filesystem or a remote location.
|
// FetchFile gets a specified file from the local filesystem or a remote location.
|
||||||
func FetchFile(fileurl string) ([]byte, error) {
|
func FetchFile(fileurl string) ([]byte, error) {
|
||||||
|
var bytes []byte
|
||||||
initializeFileCache()
|
initializeFileCache()
|
||||||
bytes, ok := fileCache[fileurl]
|
if fileCacheEnable {
|
||||||
if ok {
|
bytes, ok := fileCache[fileurl]
|
||||||
if verboseReader {
|
if ok {
|
||||||
log.Printf("Cache hit %s", fileurl)
|
if verboseReader {
|
||||||
|
log.Printf("Cache hit %s", fileurl)
|
||||||
|
}
|
||||||
|
return bytes, nil
|
||||||
|
}
|
||||||
|
if verboseReader {
|
||||||
|
log.Printf("Fetching %s", fileurl)
|
||||||
}
|
}
|
||||||
return bytes, nil
|
|
||||||
}
|
|
||||||
if verboseReader {
|
|
||||||
log.Printf("Fetching %s", fileurl)
|
|
||||||
}
|
}
|
||||||
response, err := http.Get(fileurl)
|
response, err := http.Get(fileurl)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
defer response.Body.Close()
|
||||||
if response.StatusCode != 200 {
|
if response.StatusCode != 200 {
|
||||||
return nil, errors.New(fmt.Sprintf("Error downloading %s: %s", fileurl, response.Status))
|
return nil, errors.New(fmt.Sprintf("Error downloading %s: %s", fileurl, response.Status))
|
||||||
}
|
}
|
||||||
defer response.Body.Close()
|
|
||||||
bytes, err = ioutil.ReadAll(response.Body)
|
bytes, err = ioutil.ReadAll(response.Body)
|
||||||
if err == nil {
|
if fileCacheEnable && err == nil {
|
||||||
fileCache[fileurl] = bytes
|
fileCache[fileurl] = bytes
|
||||||
}
|
}
|
||||||
return bytes, err
|
return bytes, err
|
||||||
@ -95,22 +153,24 @@ func ReadBytesForFile(filename string) ([]byte, error) {
|
|||||||
// ReadInfoFromBytes unmarshals a file as a yaml.MapSlice.
|
// ReadInfoFromBytes unmarshals a file as a yaml.MapSlice.
|
||||||
func ReadInfoFromBytes(filename string, bytes []byte) (interface{}, error) {
|
func ReadInfoFromBytes(filename string, bytes []byte) (interface{}, error) {
|
||||||
initializeInfoCache()
|
initializeInfoCache()
|
||||||
cachedInfo, ok := infoCache[filename]
|
if infoCacheEnable {
|
||||||
if ok {
|
cachedInfo, ok := infoCache[filename]
|
||||||
if verboseReader {
|
if ok {
|
||||||
log.Printf("Cache hit info for file %s", filename)
|
if verboseReader {
|
||||||
|
log.Printf("Cache hit info for file %s", filename)
|
||||||
|
}
|
||||||
|
return cachedInfo, nil
|
||||||
|
}
|
||||||
|
if verboseReader {
|
||||||
|
log.Printf("Reading info for file %s", filename)
|
||||||
}
|
}
|
||||||
return cachedInfo, nil
|
|
||||||
}
|
|
||||||
if verboseReader {
|
|
||||||
log.Printf("Reading info for file %s", filename)
|
|
||||||
}
|
}
|
||||||
var info yaml.MapSlice
|
var info yaml.MapSlice
|
||||||
err := yaml.Unmarshal(bytes, &info)
|
err := yaml.Unmarshal(bytes, &info)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
if len(filename) > 0 {
|
if infoCacheEnable && len(filename) > 0 {
|
||||||
infoCache[filename] = info
|
infoCache[filename] = info
|
||||||
}
|
}
|
||||||
return info, nil
|
return info, nil
|
||||||
@ -119,7 +179,7 @@ func ReadInfoFromBytes(filename string, bytes []byte) (interface{}, error) {
|
|||||||
// ReadInfoForRef reads a file and return the fragment needed to resolve a $ref.
|
// ReadInfoForRef reads a file and return the fragment needed to resolve a $ref.
|
||||||
func ReadInfoForRef(basefile string, ref string) (interface{}, error) {
|
func ReadInfoForRef(basefile string, ref string) (interface{}, error) {
|
||||||
initializeInfoCache()
|
initializeInfoCache()
|
||||||
{
|
if infoCacheEnable {
|
||||||
info, ok := infoCache[ref]
|
info, ok := infoCache[ref]
|
||||||
if ok {
|
if ok {
|
||||||
if verboseReader {
|
if verboseReader {
|
||||||
@ -127,16 +187,20 @@ func ReadInfoForRef(basefile string, ref string) (interface{}, error) {
|
|||||||
}
|
}
|
||||||
return info, nil
|
return info, nil
|
||||||
}
|
}
|
||||||
}
|
if verboseReader {
|
||||||
if verboseReader {
|
log.Printf("Reading info for ref %s#%s", basefile, ref)
|
||||||
log.Printf("Reading info for ref %s#%s", basefile, ref)
|
}
|
||||||
}
|
}
|
||||||
count = count + 1
|
count = count + 1
|
||||||
basedir, _ := filepath.Split(basefile)
|
basedir, _ := filepath.Split(basefile)
|
||||||
parts := strings.Split(ref, "#")
|
parts := strings.Split(ref, "#")
|
||||||
var filename string
|
var filename string
|
||||||
if parts[0] != "" {
|
if parts[0] != "" {
|
||||||
filename = basedir + parts[0]
|
filename = parts[0]
|
||||||
|
if _, err := url.ParseRequestURI(parts[0]); err != nil {
|
||||||
|
// It is not an URL, so the file is local
|
||||||
|
filename = basedir + parts[0]
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
filename = basefile
|
filename = basefile
|
||||||
}
|
}
|
||||||
@ -170,6 +234,8 @@ func ReadInfoForRef(basefile string, ref string) (interface{}, error) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
infoCache[ref] = info
|
if infoCacheEnable {
|
||||||
|
infoCache[ref] = info
|
||||||
|
}
|
||||||
return info, nil
|
return info, nil
|
||||||
}
|
}
|
||||||
|
|||||||
5
vendor/github.com/googleapis/gnostic/extensions/COMPILE-EXTENSION.sh
generated
vendored
5
vendor/github.com/googleapis/gnostic/extensions/COMPILE-EXTENSION.sh
generated
vendored
@ -1,5 +0,0 @@
|
|||||||
go get github.com/golang/protobuf/protoc-gen-go
|
|
||||||
|
|
||||||
protoc \
|
|
||||||
--go_out=Mgoogle/protobuf/any.proto=github.com/golang/protobuf/ptypes/any:. *.proto
|
|
||||||
|
|
||||||
228
vendor/github.com/googleapis/gnostic/extensions/extension.pb.go
generated
vendored
228
vendor/github.com/googleapis/gnostic/extensions/extension.pb.go
generated
vendored
@ -1,24 +1,14 @@
|
|||||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||||
// source: extension.proto
|
// source: extensions/extension.proto
|
||||||
|
|
||||||
/*
|
|
||||||
Package openapiextension_v1 is a generated protocol buffer package.
|
|
||||||
|
|
||||||
It is generated from these files:
|
|
||||||
extension.proto
|
|
||||||
|
|
||||||
It has these top-level messages:
|
|
||||||
Version
|
|
||||||
ExtensionHandlerRequest
|
|
||||||
ExtensionHandlerResponse
|
|
||||||
Wrapper
|
|
||||||
*/
|
|
||||||
package openapiextension_v1
|
package openapiextension_v1
|
||||||
|
|
||||||
import proto "github.com/golang/protobuf/proto"
|
import (
|
||||||
import fmt "fmt"
|
fmt "fmt"
|
||||||
import math "math"
|
proto "github.com/golang/protobuf/proto"
|
||||||
import google_protobuf "github.com/golang/protobuf/ptypes/any"
|
any "github.com/golang/protobuf/ptypes/any"
|
||||||
|
math "math"
|
||||||
|
)
|
||||||
|
|
||||||
// Reference imports to suppress errors if they are not otherwise used.
|
// Reference imports to suppress errors if they are not otherwise used.
|
||||||
var _ = proto.Marshal
|
var _ = proto.Marshal
|
||||||
@ -29,22 +19,45 @@ var _ = math.Inf
|
|||||||
// is compatible with the proto package it is being compiled against.
|
// is compatible with the proto package it is being compiled against.
|
||||||
// A compilation error at this line likely means your copy of the
|
// A compilation error at this line likely means your copy of the
|
||||||
// proto package needs to be updated.
|
// proto package needs to be updated.
|
||||||
const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
|
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
|
||||||
|
|
||||||
// The version number of OpenAPI compiler.
|
// The version number of OpenAPI compiler.
|
||||||
type Version struct {
|
type Version struct {
|
||||||
Major int32 `protobuf:"varint,1,opt,name=major" json:"major,omitempty"`
|
Major int32 `protobuf:"varint,1,opt,name=major,proto3" json:"major,omitempty"`
|
||||||
Minor int32 `protobuf:"varint,2,opt,name=minor" json:"minor,omitempty"`
|
Minor int32 `protobuf:"varint,2,opt,name=minor,proto3" json:"minor,omitempty"`
|
||||||
Patch int32 `protobuf:"varint,3,opt,name=patch" json:"patch,omitempty"`
|
Patch int32 `protobuf:"varint,3,opt,name=patch,proto3" json:"patch,omitempty"`
|
||||||
// A suffix for alpha, beta or rc release, e.g., "alpha-1", "rc2". It should
|
// A suffix for alpha, beta or rc release, e.g., "alpha-1", "rc2". It should
|
||||||
// be empty for mainline stable releases.
|
// be empty for mainline stable releases.
|
||||||
Suffix string `protobuf:"bytes,4,opt,name=suffix" json:"suffix,omitempty"`
|
Suffix string `protobuf:"bytes,4,opt,name=suffix,proto3" json:"suffix,omitempty"`
|
||||||
|
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||||
|
XXX_unrecognized []byte `json:"-"`
|
||||||
|
XXX_sizecache int32 `json:"-"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *Version) Reset() { *m = Version{} }
|
func (m *Version) Reset() { *m = Version{} }
|
||||||
func (m *Version) String() string { return proto.CompactTextString(m) }
|
func (m *Version) String() string { return proto.CompactTextString(m) }
|
||||||
func (*Version) ProtoMessage() {}
|
func (*Version) ProtoMessage() {}
|
||||||
func (*Version) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }
|
func (*Version) Descriptor() ([]byte, []int) {
|
||||||
|
return fileDescriptor_661e47e790f76671, []int{0}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *Version) XXX_Unmarshal(b []byte) error {
|
||||||
|
return xxx_messageInfo_Version.Unmarshal(m, b)
|
||||||
|
}
|
||||||
|
func (m *Version) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||||
|
return xxx_messageInfo_Version.Marshal(b, m, deterministic)
|
||||||
|
}
|
||||||
|
func (m *Version) XXX_Merge(src proto.Message) {
|
||||||
|
xxx_messageInfo_Version.Merge(m, src)
|
||||||
|
}
|
||||||
|
func (m *Version) XXX_Size() int {
|
||||||
|
return xxx_messageInfo_Version.Size(m)
|
||||||
|
}
|
||||||
|
func (m *Version) XXX_DiscardUnknown() {
|
||||||
|
xxx_messageInfo_Version.DiscardUnknown(m)
|
||||||
|
}
|
||||||
|
|
||||||
|
var xxx_messageInfo_Version proto.InternalMessageInfo
|
||||||
|
|
||||||
func (m *Version) GetMajor() int32 {
|
func (m *Version) GetMajor() int32 {
|
||||||
if m != nil {
|
if m != nil {
|
||||||
@ -78,15 +91,38 @@ func (m *Version) GetSuffix() string {
|
|||||||
type ExtensionHandlerRequest struct {
|
type ExtensionHandlerRequest struct {
|
||||||
// The OpenAPI descriptions that were explicitly listed on the command line.
|
// The OpenAPI descriptions that were explicitly listed on the command line.
|
||||||
// The specifications will appear in the order they are specified to gnostic.
|
// The specifications will appear in the order they are specified to gnostic.
|
||||||
Wrapper *Wrapper `protobuf:"bytes,1,opt,name=wrapper" json:"wrapper,omitempty"`
|
Wrapper *Wrapper `protobuf:"bytes,1,opt,name=wrapper,proto3" json:"wrapper,omitempty"`
|
||||||
// The version number of openapi compiler.
|
// The version number of openapi compiler.
|
||||||
CompilerVersion *Version `protobuf:"bytes,3,opt,name=compiler_version,json=compilerVersion" json:"compiler_version,omitempty"`
|
CompilerVersion *Version `protobuf:"bytes,3,opt,name=compiler_version,json=compilerVersion,proto3" json:"compiler_version,omitempty"`
|
||||||
|
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||||
|
XXX_unrecognized []byte `json:"-"`
|
||||||
|
XXX_sizecache int32 `json:"-"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *ExtensionHandlerRequest) Reset() { *m = ExtensionHandlerRequest{} }
|
func (m *ExtensionHandlerRequest) Reset() { *m = ExtensionHandlerRequest{} }
|
||||||
func (m *ExtensionHandlerRequest) String() string { return proto.CompactTextString(m) }
|
func (m *ExtensionHandlerRequest) String() string { return proto.CompactTextString(m) }
|
||||||
func (*ExtensionHandlerRequest) ProtoMessage() {}
|
func (*ExtensionHandlerRequest) ProtoMessage() {}
|
||||||
func (*ExtensionHandlerRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }
|
func (*ExtensionHandlerRequest) Descriptor() ([]byte, []int) {
|
||||||
|
return fileDescriptor_661e47e790f76671, []int{1}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *ExtensionHandlerRequest) XXX_Unmarshal(b []byte) error {
|
||||||
|
return xxx_messageInfo_ExtensionHandlerRequest.Unmarshal(m, b)
|
||||||
|
}
|
||||||
|
func (m *ExtensionHandlerRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||||
|
return xxx_messageInfo_ExtensionHandlerRequest.Marshal(b, m, deterministic)
|
||||||
|
}
|
||||||
|
func (m *ExtensionHandlerRequest) XXX_Merge(src proto.Message) {
|
||||||
|
xxx_messageInfo_ExtensionHandlerRequest.Merge(m, src)
|
||||||
|
}
|
||||||
|
func (m *ExtensionHandlerRequest) XXX_Size() int {
|
||||||
|
return xxx_messageInfo_ExtensionHandlerRequest.Size(m)
|
||||||
|
}
|
||||||
|
func (m *ExtensionHandlerRequest) XXX_DiscardUnknown() {
|
||||||
|
xxx_messageInfo_ExtensionHandlerRequest.DiscardUnknown(m)
|
||||||
|
}
|
||||||
|
|
||||||
|
var xxx_messageInfo_ExtensionHandlerRequest proto.InternalMessageInfo
|
||||||
|
|
||||||
func (m *ExtensionHandlerRequest) GetWrapper() *Wrapper {
|
func (m *ExtensionHandlerRequest) GetWrapper() *Wrapper {
|
||||||
if m != nil {
|
if m != nil {
|
||||||
@ -105,7 +141,7 @@ func (m *ExtensionHandlerRequest) GetCompilerVersion() *Version {
|
|||||||
// The extensions writes an encoded ExtensionHandlerResponse to stdout.
|
// The extensions writes an encoded ExtensionHandlerResponse to stdout.
|
||||||
type ExtensionHandlerResponse struct {
|
type ExtensionHandlerResponse struct {
|
||||||
// true if the extension is handled by the extension handler; false otherwise
|
// true if the extension is handled by the extension handler; false otherwise
|
||||||
Handled bool `protobuf:"varint,1,opt,name=handled" json:"handled,omitempty"`
|
Handled bool `protobuf:"varint,1,opt,name=handled,proto3" json:"handled,omitempty"`
|
||||||
// Error message. If non-empty, the extension handling failed.
|
// Error message. If non-empty, the extension handling failed.
|
||||||
// The extension handler process should exit with status code zero
|
// The extension handler process should exit with status code zero
|
||||||
// even if it reports an error in this way.
|
// even if it reports an error in this way.
|
||||||
@ -115,15 +151,38 @@ type ExtensionHandlerResponse struct {
|
|||||||
// itself -- such as the input Document being unparseable -- should be
|
// itself -- such as the input Document being unparseable -- should be
|
||||||
// reported by writing a message to stderr and exiting with a non-zero
|
// reported by writing a message to stderr and exiting with a non-zero
|
||||||
// status code.
|
// status code.
|
||||||
Error []string `protobuf:"bytes,2,rep,name=error" json:"error,omitempty"`
|
Error []string `protobuf:"bytes,2,rep,name=error,proto3" json:"error,omitempty"`
|
||||||
// text output
|
// text output
|
||||||
Value *google_protobuf.Any `protobuf:"bytes,3,opt,name=value" json:"value,omitempty"`
|
Value *any.Any `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"`
|
||||||
|
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||||
|
XXX_unrecognized []byte `json:"-"`
|
||||||
|
XXX_sizecache int32 `json:"-"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *ExtensionHandlerResponse) Reset() { *m = ExtensionHandlerResponse{} }
|
func (m *ExtensionHandlerResponse) Reset() { *m = ExtensionHandlerResponse{} }
|
||||||
func (m *ExtensionHandlerResponse) String() string { return proto.CompactTextString(m) }
|
func (m *ExtensionHandlerResponse) String() string { return proto.CompactTextString(m) }
|
||||||
func (*ExtensionHandlerResponse) ProtoMessage() {}
|
func (*ExtensionHandlerResponse) ProtoMessage() {}
|
||||||
func (*ExtensionHandlerResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} }
|
func (*ExtensionHandlerResponse) Descriptor() ([]byte, []int) {
|
||||||
|
return fileDescriptor_661e47e790f76671, []int{2}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *ExtensionHandlerResponse) XXX_Unmarshal(b []byte) error {
|
||||||
|
return xxx_messageInfo_ExtensionHandlerResponse.Unmarshal(m, b)
|
||||||
|
}
|
||||||
|
func (m *ExtensionHandlerResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||||
|
return xxx_messageInfo_ExtensionHandlerResponse.Marshal(b, m, deterministic)
|
||||||
|
}
|
||||||
|
func (m *ExtensionHandlerResponse) XXX_Merge(src proto.Message) {
|
||||||
|
xxx_messageInfo_ExtensionHandlerResponse.Merge(m, src)
|
||||||
|
}
|
||||||
|
func (m *ExtensionHandlerResponse) XXX_Size() int {
|
||||||
|
return xxx_messageInfo_ExtensionHandlerResponse.Size(m)
|
||||||
|
}
|
||||||
|
func (m *ExtensionHandlerResponse) XXX_DiscardUnknown() {
|
||||||
|
xxx_messageInfo_ExtensionHandlerResponse.DiscardUnknown(m)
|
||||||
|
}
|
||||||
|
|
||||||
|
var xxx_messageInfo_ExtensionHandlerResponse proto.InternalMessageInfo
|
||||||
|
|
||||||
func (m *ExtensionHandlerResponse) GetHandled() bool {
|
func (m *ExtensionHandlerResponse) GetHandled() bool {
|
||||||
if m != nil {
|
if m != nil {
|
||||||
@ -139,7 +198,7 @@ func (m *ExtensionHandlerResponse) GetError() []string {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *ExtensionHandlerResponse) GetValue() *google_protobuf.Any {
|
func (m *ExtensionHandlerResponse) GetValue() *any.Any {
|
||||||
if m != nil {
|
if m != nil {
|
||||||
return m.Value
|
return m.Value
|
||||||
}
|
}
|
||||||
@ -148,17 +207,40 @@ func (m *ExtensionHandlerResponse) GetValue() *google_protobuf.Any {
|
|||||||
|
|
||||||
type Wrapper struct {
|
type Wrapper struct {
|
||||||
// version of the OpenAPI specification in which this extension was written.
|
// version of the OpenAPI specification in which this extension was written.
|
||||||
Version string `protobuf:"bytes,1,opt,name=version" json:"version,omitempty"`
|
Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
|
||||||
// Name of the extension
|
// Name of the extension
|
||||||
ExtensionName string `protobuf:"bytes,2,opt,name=extension_name,json=extensionName" json:"extension_name,omitempty"`
|
ExtensionName string `protobuf:"bytes,2,opt,name=extension_name,json=extensionName,proto3" json:"extension_name,omitempty"`
|
||||||
// Must be a valid yaml for the proto
|
// Must be a valid yaml for the proto
|
||||||
Yaml string `protobuf:"bytes,3,opt,name=yaml" json:"yaml,omitempty"`
|
Yaml string `protobuf:"bytes,3,opt,name=yaml,proto3" json:"yaml,omitempty"`
|
||||||
|
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||||
|
XXX_unrecognized []byte `json:"-"`
|
||||||
|
XXX_sizecache int32 `json:"-"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *Wrapper) Reset() { *m = Wrapper{} }
|
func (m *Wrapper) Reset() { *m = Wrapper{} }
|
||||||
func (m *Wrapper) String() string { return proto.CompactTextString(m) }
|
func (m *Wrapper) String() string { return proto.CompactTextString(m) }
|
||||||
func (*Wrapper) ProtoMessage() {}
|
func (*Wrapper) ProtoMessage() {}
|
||||||
func (*Wrapper) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} }
|
func (*Wrapper) Descriptor() ([]byte, []int) {
|
||||||
|
return fileDescriptor_661e47e790f76671, []int{3}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *Wrapper) XXX_Unmarshal(b []byte) error {
|
||||||
|
return xxx_messageInfo_Wrapper.Unmarshal(m, b)
|
||||||
|
}
|
||||||
|
func (m *Wrapper) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||||
|
return xxx_messageInfo_Wrapper.Marshal(b, m, deterministic)
|
||||||
|
}
|
||||||
|
func (m *Wrapper) XXX_Merge(src proto.Message) {
|
||||||
|
xxx_messageInfo_Wrapper.Merge(m, src)
|
||||||
|
}
|
||||||
|
func (m *Wrapper) XXX_Size() int {
|
||||||
|
return xxx_messageInfo_Wrapper.Size(m)
|
||||||
|
}
|
||||||
|
func (m *Wrapper) XXX_DiscardUnknown() {
|
||||||
|
xxx_messageInfo_Wrapper.DiscardUnknown(m)
|
||||||
|
}
|
||||||
|
|
||||||
|
var xxx_messageInfo_Wrapper proto.InternalMessageInfo
|
||||||
|
|
||||||
func (m *Wrapper) GetVersion() string {
|
func (m *Wrapper) GetVersion() string {
|
||||||
if m != nil {
|
if m != nil {
|
||||||
@ -188,31 +270,31 @@ func init() {
|
|||||||
proto.RegisterType((*Wrapper)(nil), "openapiextension.v1.Wrapper")
|
proto.RegisterType((*Wrapper)(nil), "openapiextension.v1.Wrapper")
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() { proto.RegisterFile("extension.proto", fileDescriptor0) }
|
func init() { proto.RegisterFile("extensions/extension.proto", fileDescriptor_661e47e790f76671) }
|
||||||
|
|
||||||
var fileDescriptor0 = []byte{
|
var fileDescriptor_661e47e790f76671 = []byte{
|
||||||
// 357 bytes of a gzipped FileDescriptorProto
|
// 362 bytes of a gzipped FileDescriptorProto
|
||||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x91, 0x4d, 0x4b, 0xc3, 0x40,
|
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x91, 0x4d, 0x4b, 0xeb, 0x40,
|
||||||
0x18, 0x84, 0x49, 0xbf, 0x62, 0x56, 0x6c, 0x65, 0x2d, 0x1a, 0xc5, 0x43, 0x09, 0x08, 0x45, 0x64,
|
0x18, 0x85, 0x49, 0xbf, 0x72, 0x33, 0x97, 0xdb, 0x2b, 0x63, 0xd1, 0x58, 0x5c, 0x94, 0x80, 0x50,
|
||||||
0x4b, 0x15, 0xbc, 0xb7, 0x50, 0xd4, 0x8b, 0x2d, 0x7b, 0xa8, 0x37, 0xcb, 0x36, 0x7d, 0x9b, 0x46,
|
0x44, 0xa6, 0x54, 0xc1, 0x7d, 0x0b, 0x45, 0xdd, 0xd8, 0x32, 0x8b, 0xba, 0xb3, 0x4c, 0xd3, 0xb7,
|
||||||
0x92, 0xdd, 0x75, 0xf3, 0x61, 0xfb, 0x57, 0x3c, 0xfa, 0x4b, 0x25, 0xbb, 0x49, 0x3d, 0xa8, 0xb7,
|
0x69, 0x24, 0x99, 0x19, 0x27, 0x1f, 0xb6, 0x7f, 0xc5, 0xa5, 0xbf, 0x54, 0x32, 0x93, 0xc4, 0x85,
|
||||||
0xcc, 0xc3, 0x24, 0xef, 0xcc, 0x04, 0x75, 0x60, 0x9b, 0x02, 0x4f, 0x42, 0xc1, 0x89, 0x54, 0x22,
|
0xba, 0x9b, 0xf3, 0x70, 0xda, 0xf7, 0x9c, 0x13, 0xd4, 0x87, 0x7d, 0x0a, 0x3c, 0x09, 0x05, 0x4f,
|
||||||
0x15, 0xf8, 0x44, 0x48, 0xe0, 0x4c, 0x86, 0x3f, 0x3c, 0x1f, 0x5e, 0x9c, 0x07, 0x42, 0x04, 0x11,
|
0x46, 0xf5, 0x93, 0x48, 0x25, 0x52, 0x81, 0x8f, 0x85, 0x04, 0xce, 0x64, 0xf8, 0xc5, 0xf3, 0x71,
|
||||||
0x0c, 0xb4, 0x65, 0x99, 0xad, 0x07, 0x8c, 0xef, 0x8c, 0xdf, 0xf3, 0x91, 0x3d, 0x07, 0x55, 0x18,
|
0xff, 0x2c, 0x10, 0x22, 0x88, 0x60, 0xa4, 0x2d, 0xeb, 0x6c, 0x3b, 0x62, 0xfc, 0x60, 0xfc, 0x9e,
|
||||||
0x71, 0x17, 0x35, 0x63, 0xf6, 0x26, 0x94, 0x6b, 0xf5, 0xac, 0x7e, 0x93, 0x1a, 0xa1, 0x69, 0xc8,
|
0x8f, 0xec, 0x25, 0xa8, 0xc2, 0x88, 0x7b, 0xa8, 0x1d, 0xb3, 0x17, 0xa1, 0x5c, 0x6b, 0x60, 0x0d,
|
||||||
0x85, 0x72, 0x6b, 0x25, 0x2d, 0x44, 0x41, 0x25, 0x4b, 0xfd, 0x8d, 0x5b, 0x37, 0x54, 0x0b, 0x7c,
|
0xdb, 0xd4, 0x08, 0x4d, 0x43, 0x2e, 0x94, 0xdb, 0x28, 0x69, 0x21, 0x0a, 0x2a, 0x59, 0xea, 0xef,
|
||||||
0x8a, 0x5a, 0x49, 0xb6, 0x5e, 0x87, 0x5b, 0xb7, 0xd1, 0xb3, 0xfa, 0x0e, 0x2d, 0x95, 0xf7, 0x69,
|
0xdc, 0xa6, 0xa1, 0x5a, 0xe0, 0x13, 0xd4, 0x49, 0xb2, 0xed, 0x36, 0xdc, 0xbb, 0xad, 0x81, 0x35,
|
||||||
0xa1, 0xb3, 0x49, 0x15, 0xe8, 0x91, 0xf1, 0x55, 0x04, 0x8a, 0xc2, 0x7b, 0x06, 0x49, 0x8a, 0xef,
|
0x74, 0x68, 0xa9, 0xbc, 0x77, 0x0b, 0x9d, 0xce, 0xaa, 0x40, 0xf7, 0x8c, 0x6f, 0x22, 0x50, 0x14,
|
||||||
0x91, 0xfd, 0xa1, 0x98, 0x94, 0x60, 0xee, 0x1e, 0xde, 0x5e, 0x92, 0x3f, 0x2a, 0x90, 0x17, 0xe3,
|
0x5e, 0x33, 0x48, 0x52, 0x7c, 0x8b, 0xec, 0x37, 0xc5, 0xa4, 0x04, 0x73, 0xf7, 0xef, 0xf5, 0x39,
|
||||||
0xa1, 0x95, 0x19, 0x3f, 0xa0, 0x63, 0x5f, 0xc4, 0x32, 0x8c, 0x40, 0x2d, 0x72, 0xd3, 0x40, 0x87,
|
0xf9, 0xa1, 0x02, 0x79, 0x32, 0x1e, 0x5a, 0x99, 0xf1, 0x1d, 0x3a, 0xf2, 0x45, 0x2c, 0xc3, 0x08,
|
||||||
0xf9, 0xef, 0x03, 0x65, 0x4b, 0xda, 0xa9, 0xde, 0x2a, 0x81, 0x97, 0x23, 0xf7, 0x77, 0xb6, 0x44,
|
0xd4, 0x2a, 0x37, 0x0d, 0x74, 0x98, 0xdf, 0xfe, 0xa0, 0x6c, 0x49, 0xff, 0x57, 0xbf, 0x2a, 0x81,
|
||||||
0x0a, 0x9e, 0x00, 0x76, 0x91, 0xbd, 0xd1, 0x68, 0xa5, 0xc3, 0x1d, 0xd0, 0x4a, 0x16, 0x03, 0x80,
|
0x97, 0x23, 0xf7, 0x7b, 0xb6, 0x44, 0x0a, 0x9e, 0x00, 0x76, 0x91, 0xbd, 0xd3, 0x68, 0xa3, 0xc3,
|
||||||
0x52, 0x7a, 0x96, 0x7a, 0xdf, 0xa1, 0x46, 0xe0, 0x6b, 0xd4, 0xcc, 0x59, 0x94, 0x41, 0x99, 0xa4,
|
0xfd, 0xa1, 0x95, 0x2c, 0x06, 0x00, 0xa5, 0xf4, 0x2c, 0xcd, 0xa1, 0x43, 0x8d, 0xc0, 0x97, 0xa8,
|
||||||
0x4b, 0xcc, 0xf0, 0xa4, 0x1a, 0x9e, 0x8c, 0xf8, 0x8e, 0x1a, 0x8b, 0xf7, 0x8a, 0xec, 0xb2, 0x54,
|
0x9d, 0xb3, 0x28, 0x83, 0x32, 0x49, 0x8f, 0x98, 0xe1, 0x49, 0x35, 0x3c, 0x99, 0xf0, 0x03, 0x35,
|
||||||
0x71, 0xa6, 0xaa, 0x60, 0xe9, 0xe1, 0x2a, 0x89, 0xaf, 0x50, 0x7b, 0xdf, 0x62, 0xc1, 0x59, 0x0c,
|
0x16, 0xef, 0x19, 0xd9, 0x65, 0xa9, 0xe2, 0x4c, 0x55, 0xc1, 0xd2, 0xc3, 0x55, 0x12, 0x5f, 0xa0,
|
||||||
0xfa, 0x37, 0x38, 0xf4, 0x68, 0x4f, 0x9f, 0x59, 0x0c, 0x18, 0xa3, 0xc6, 0x8e, 0xc5, 0x91, 0x3e,
|
0x6e, 0xdd, 0x62, 0xc5, 0x59, 0x0c, 0xfa, 0x33, 0x38, 0xf4, 0x5f, 0x4d, 0x1f, 0x59, 0x0c, 0x18,
|
||||||
0xeb, 0x50, 0xfd, 0x3c, 0xbe, 0x41, 0x6d, 0xa1, 0x02, 0x12, 0x70, 0x91, 0xa4, 0xa1, 0x4f, 0xf2,
|
0xa3, 0xd6, 0x81, 0xc5, 0x91, 0x3e, 0xeb, 0x50, 0xfd, 0x9e, 0x5e, 0xa1, 0xae, 0x50, 0x01, 0x09,
|
||||||
0xe1, 0x18, 0x4f, 0x25, 0xf0, 0xd1, 0xec, 0x69, 0x5f, 0x77, 0x3e, 0x9c, 0x59, 0x5f, 0xb5, 0xfa,
|
0xb8, 0x48, 0xd2, 0xd0, 0x27, 0xf9, 0x78, 0x8a, 0xe7, 0x12, 0xf8, 0x64, 0xf1, 0x50, 0xd7, 0x5d,
|
||||||
0x74, 0x34, 0x59, 0xb6, 0x74, 0xc4, 0xbb, 0xef, 0x00, 0x00, 0x00, 0xff, 0xff, 0x84, 0x5c, 0x6b,
|
0x8e, 0x17, 0xd6, 0x47, 0xa3, 0x39, 0x9f, 0xcc, 0xd6, 0x1d, 0x1d, 0xf1, 0xe6, 0x33, 0x00, 0x00,
|
||||||
0x80, 0x51, 0x02, 0x00, 0x00,
|
0xff, 0xff, 0xeb, 0xf3, 0xfa, 0x65, 0x5c, 0x02, 0x00, 0x00,
|
||||||
}
|
}
|
||||||
|
|||||||
@ -7105,15 +7105,15 @@ func (m *Any) ToRawInfo() interface{} {
|
|||||||
// ToRawInfo returns a description of ApiKeySecurity suitable for JSON or YAML export.
|
// ToRawInfo returns a description of ApiKeySecurity suitable for JSON or YAML export.
|
||||||
func (m *ApiKeySecurity) ToRawInfo() interface{} {
|
func (m *ApiKeySecurity) ToRawInfo() interface{} {
|
||||||
info := yaml.MapSlice{}
|
info := yaml.MapSlice{}
|
||||||
if m.Type != "" {
|
if m == nil {
|
||||||
info = append(info, yaml.MapItem{Key: "type", Value: m.Type})
|
return info
|
||||||
}
|
|
||||||
if m.Name != "" {
|
|
||||||
info = append(info, yaml.MapItem{Key: "name", Value: m.Name})
|
|
||||||
}
|
|
||||||
if m.In != "" {
|
|
||||||
info = append(info, yaml.MapItem{Key: "in", Value: m.In})
|
|
||||||
}
|
}
|
||||||
|
// always include this required field.
|
||||||
|
info = append(info, yaml.MapItem{Key: "type", Value: m.Type})
|
||||||
|
// always include this required field.
|
||||||
|
info = append(info, yaml.MapItem{Key: "name", Value: m.Name})
|
||||||
|
// always include this required field.
|
||||||
|
info = append(info, yaml.MapItem{Key: "in", Value: m.In})
|
||||||
if m.Description != "" {
|
if m.Description != "" {
|
||||||
info = append(info, yaml.MapItem{Key: "description", Value: m.Description})
|
info = append(info, yaml.MapItem{Key: "description", Value: m.Description})
|
||||||
}
|
}
|
||||||
@ -7129,9 +7129,11 @@ func (m *ApiKeySecurity) ToRawInfo() interface{} {
|
|||||||
// ToRawInfo returns a description of BasicAuthenticationSecurity suitable for JSON or YAML export.
|
// ToRawInfo returns a description of BasicAuthenticationSecurity suitable for JSON or YAML export.
|
||||||
func (m *BasicAuthenticationSecurity) ToRawInfo() interface{} {
|
func (m *BasicAuthenticationSecurity) ToRawInfo() interface{} {
|
||||||
info := yaml.MapSlice{}
|
info := yaml.MapSlice{}
|
||||||
if m.Type != "" {
|
if m == nil {
|
||||||
info = append(info, yaml.MapItem{Key: "type", Value: m.Type})
|
return info
|
||||||
}
|
}
|
||||||
|
// always include this required field.
|
||||||
|
info = append(info, yaml.MapItem{Key: "type", Value: m.Type})
|
||||||
if m.Description != "" {
|
if m.Description != "" {
|
||||||
info = append(info, yaml.MapItem{Key: "description", Value: m.Description})
|
info = append(info, yaml.MapItem{Key: "description", Value: m.Description})
|
||||||
}
|
}
|
||||||
@ -7147,21 +7149,21 @@ func (m *BasicAuthenticationSecurity) ToRawInfo() interface{} {
|
|||||||
// ToRawInfo returns a description of BodyParameter suitable for JSON or YAML export.
|
// ToRawInfo returns a description of BodyParameter suitable for JSON or YAML export.
|
||||||
func (m *BodyParameter) ToRawInfo() interface{} {
|
func (m *BodyParameter) ToRawInfo() interface{} {
|
||||||
info := yaml.MapSlice{}
|
info := yaml.MapSlice{}
|
||||||
|
if m == nil {
|
||||||
|
return info
|
||||||
|
}
|
||||||
if m.Description != "" {
|
if m.Description != "" {
|
||||||
info = append(info, yaml.MapItem{Key: "description", Value: m.Description})
|
info = append(info, yaml.MapItem{Key: "description", Value: m.Description})
|
||||||
}
|
}
|
||||||
if m.Name != "" {
|
// always include this required field.
|
||||||
info = append(info, yaml.MapItem{Key: "name", Value: m.Name})
|
info = append(info, yaml.MapItem{Key: "name", Value: m.Name})
|
||||||
}
|
// always include this required field.
|
||||||
if m.In != "" {
|
info = append(info, yaml.MapItem{Key: "in", Value: m.In})
|
||||||
info = append(info, yaml.MapItem{Key: "in", Value: m.In})
|
|
||||||
}
|
|
||||||
if m.Required != false {
|
if m.Required != false {
|
||||||
info = append(info, yaml.MapItem{Key: "required", Value: m.Required})
|
info = append(info, yaml.MapItem{Key: "required", Value: m.Required})
|
||||||
}
|
}
|
||||||
if m.Schema != nil {
|
// always include this required field.
|
||||||
info = append(info, yaml.MapItem{Key: "schema", Value: m.Schema.ToRawInfo()})
|
info = append(info, yaml.MapItem{Key: "schema", Value: m.Schema.ToRawInfo()})
|
||||||
}
|
|
||||||
// &{Name:schema Type:Schema StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
|
// &{Name:schema Type:Schema StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
|
||||||
if m.VendorExtension != nil {
|
if m.VendorExtension != nil {
|
||||||
for _, item := range m.VendorExtension {
|
for _, item := range m.VendorExtension {
|
||||||
@ -7175,6 +7177,9 @@ func (m *BodyParameter) ToRawInfo() interface{} {
|
|||||||
// ToRawInfo returns a description of Contact suitable for JSON or YAML export.
|
// ToRawInfo returns a description of Contact suitable for JSON or YAML export.
|
||||||
func (m *Contact) ToRawInfo() interface{} {
|
func (m *Contact) ToRawInfo() interface{} {
|
||||||
info := yaml.MapSlice{}
|
info := yaml.MapSlice{}
|
||||||
|
if m == nil {
|
||||||
|
return info
|
||||||
|
}
|
||||||
if m.Name != "" {
|
if m.Name != "" {
|
||||||
info = append(info, yaml.MapItem{Key: "name", Value: m.Name})
|
info = append(info, yaml.MapItem{Key: "name", Value: m.Name})
|
||||||
}
|
}
|
||||||
@ -7196,6 +7201,9 @@ func (m *Contact) ToRawInfo() interface{} {
|
|||||||
// ToRawInfo returns a description of Default suitable for JSON or YAML export.
|
// ToRawInfo returns a description of Default suitable for JSON or YAML export.
|
||||||
func (m *Default) ToRawInfo() interface{} {
|
func (m *Default) ToRawInfo() interface{} {
|
||||||
info := yaml.MapSlice{}
|
info := yaml.MapSlice{}
|
||||||
|
if m == nil {
|
||||||
|
return info
|
||||||
|
}
|
||||||
if m.AdditionalProperties != nil {
|
if m.AdditionalProperties != nil {
|
||||||
for _, item := range m.AdditionalProperties {
|
for _, item := range m.AdditionalProperties {
|
||||||
info = append(info, yaml.MapItem{Key: item.Name, Value: item.Value.ToRawInfo()})
|
info = append(info, yaml.MapItem{Key: item.Name, Value: item.Value.ToRawInfo()})
|
||||||
@ -7208,6 +7216,9 @@ func (m *Default) ToRawInfo() interface{} {
|
|||||||
// ToRawInfo returns a description of Definitions suitable for JSON or YAML export.
|
// ToRawInfo returns a description of Definitions suitable for JSON or YAML export.
|
||||||
func (m *Definitions) ToRawInfo() interface{} {
|
func (m *Definitions) ToRawInfo() interface{} {
|
||||||
info := yaml.MapSlice{}
|
info := yaml.MapSlice{}
|
||||||
|
if m == nil {
|
||||||
|
return info
|
||||||
|
}
|
||||||
if m.AdditionalProperties != nil {
|
if m.AdditionalProperties != nil {
|
||||||
for _, item := range m.AdditionalProperties {
|
for _, item := range m.AdditionalProperties {
|
||||||
info = append(info, yaml.MapItem{Key: item.Name, Value: item.Value.ToRawInfo()})
|
info = append(info, yaml.MapItem{Key: item.Name, Value: item.Value.ToRawInfo()})
|
||||||
@ -7220,12 +7231,13 @@ func (m *Definitions) ToRawInfo() interface{} {
|
|||||||
// ToRawInfo returns a description of Document suitable for JSON or YAML export.
|
// ToRawInfo returns a description of Document suitable for JSON or YAML export.
|
||||||
func (m *Document) ToRawInfo() interface{} {
|
func (m *Document) ToRawInfo() interface{} {
|
||||||
info := yaml.MapSlice{}
|
info := yaml.MapSlice{}
|
||||||
if m.Swagger != "" {
|
if m == nil {
|
||||||
info = append(info, yaml.MapItem{Key: "swagger", Value: m.Swagger})
|
return info
|
||||||
}
|
|
||||||
if m.Info != nil {
|
|
||||||
info = append(info, yaml.MapItem{Key: "info", Value: m.Info.ToRawInfo()})
|
|
||||||
}
|
}
|
||||||
|
// always include this required field.
|
||||||
|
info = append(info, yaml.MapItem{Key: "swagger", Value: m.Swagger})
|
||||||
|
// always include this required field.
|
||||||
|
info = append(info, yaml.MapItem{Key: "info", Value: m.Info.ToRawInfo()})
|
||||||
// &{Name:info Type:Info StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
|
// &{Name:info Type:Info StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
|
||||||
if m.Host != "" {
|
if m.Host != "" {
|
||||||
info = append(info, yaml.MapItem{Key: "host", Value: m.Host})
|
info = append(info, yaml.MapItem{Key: "host", Value: m.Host})
|
||||||
@ -7242,9 +7254,8 @@ func (m *Document) ToRawInfo() interface{} {
|
|||||||
if len(m.Produces) != 0 {
|
if len(m.Produces) != 0 {
|
||||||
info = append(info, yaml.MapItem{Key: "produces", Value: m.Produces})
|
info = append(info, yaml.MapItem{Key: "produces", Value: m.Produces})
|
||||||
}
|
}
|
||||||
if m.Paths != nil {
|
// always include this required field.
|
||||||
info = append(info, yaml.MapItem{Key: "paths", Value: m.Paths.ToRawInfo()})
|
info = append(info, yaml.MapItem{Key: "paths", Value: m.Paths.ToRawInfo()})
|
||||||
}
|
|
||||||
// &{Name:paths Type:Paths StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
|
// &{Name:paths Type:Paths StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
|
||||||
if m.Definitions != nil {
|
if m.Definitions != nil {
|
||||||
info = append(info, yaml.MapItem{Key: "definitions", Value: m.Definitions.ToRawInfo()})
|
info = append(info, yaml.MapItem{Key: "definitions", Value: m.Definitions.ToRawInfo()})
|
||||||
@ -7294,6 +7305,9 @@ func (m *Document) ToRawInfo() interface{} {
|
|||||||
// ToRawInfo returns a description of Examples suitable for JSON or YAML export.
|
// ToRawInfo returns a description of Examples suitable for JSON or YAML export.
|
||||||
func (m *Examples) ToRawInfo() interface{} {
|
func (m *Examples) ToRawInfo() interface{} {
|
||||||
info := yaml.MapSlice{}
|
info := yaml.MapSlice{}
|
||||||
|
if m == nil {
|
||||||
|
return info
|
||||||
|
}
|
||||||
if m.AdditionalProperties != nil {
|
if m.AdditionalProperties != nil {
|
||||||
for _, item := range m.AdditionalProperties {
|
for _, item := range m.AdditionalProperties {
|
||||||
info = append(info, yaml.MapItem{Key: item.Name, Value: item.Value.ToRawInfo()})
|
info = append(info, yaml.MapItem{Key: item.Name, Value: item.Value.ToRawInfo()})
|
||||||
@ -7306,12 +7320,14 @@ func (m *Examples) ToRawInfo() interface{} {
|
|||||||
// ToRawInfo returns a description of ExternalDocs suitable for JSON or YAML export.
|
// ToRawInfo returns a description of ExternalDocs suitable for JSON or YAML export.
|
||||||
func (m *ExternalDocs) ToRawInfo() interface{} {
|
func (m *ExternalDocs) ToRawInfo() interface{} {
|
||||||
info := yaml.MapSlice{}
|
info := yaml.MapSlice{}
|
||||||
|
if m == nil {
|
||||||
|
return info
|
||||||
|
}
|
||||||
if m.Description != "" {
|
if m.Description != "" {
|
||||||
info = append(info, yaml.MapItem{Key: "description", Value: m.Description})
|
info = append(info, yaml.MapItem{Key: "description", Value: m.Description})
|
||||||
}
|
}
|
||||||
if m.Url != "" {
|
// always include this required field.
|
||||||
info = append(info, yaml.MapItem{Key: "url", Value: m.Url})
|
info = append(info, yaml.MapItem{Key: "url", Value: m.Url})
|
||||||
}
|
|
||||||
if m.VendorExtension != nil {
|
if m.VendorExtension != nil {
|
||||||
for _, item := range m.VendorExtension {
|
for _, item := range m.VendorExtension {
|
||||||
info = append(info, yaml.MapItem{Key: item.Name, Value: item.Value.ToRawInfo()})
|
info = append(info, yaml.MapItem{Key: item.Name, Value: item.Value.ToRawInfo()})
|
||||||
@ -7324,6 +7340,9 @@ func (m *ExternalDocs) ToRawInfo() interface{} {
|
|||||||
// ToRawInfo returns a description of FileSchema suitable for JSON or YAML export.
|
// ToRawInfo returns a description of FileSchema suitable for JSON or YAML export.
|
||||||
func (m *FileSchema) ToRawInfo() interface{} {
|
func (m *FileSchema) ToRawInfo() interface{} {
|
||||||
info := yaml.MapSlice{}
|
info := yaml.MapSlice{}
|
||||||
|
if m == nil {
|
||||||
|
return info
|
||||||
|
}
|
||||||
if m.Format != "" {
|
if m.Format != "" {
|
||||||
info = append(info, yaml.MapItem{Key: "format", Value: m.Format})
|
info = append(info, yaml.MapItem{Key: "format", Value: m.Format})
|
||||||
}
|
}
|
||||||
@ -7340,9 +7359,8 @@ func (m *FileSchema) ToRawInfo() interface{} {
|
|||||||
if len(m.Required) != 0 {
|
if len(m.Required) != 0 {
|
||||||
info = append(info, yaml.MapItem{Key: "required", Value: m.Required})
|
info = append(info, yaml.MapItem{Key: "required", Value: m.Required})
|
||||||
}
|
}
|
||||||
if m.Type != "" {
|
// always include this required field.
|
||||||
info = append(info, yaml.MapItem{Key: "type", Value: m.Type})
|
info = append(info, yaml.MapItem{Key: "type", Value: m.Type})
|
||||||
}
|
|
||||||
if m.ReadOnly != false {
|
if m.ReadOnly != false {
|
||||||
info = append(info, yaml.MapItem{Key: "readOnly", Value: m.ReadOnly})
|
info = append(info, yaml.MapItem{Key: "readOnly", Value: m.ReadOnly})
|
||||||
}
|
}
|
||||||
@ -7366,6 +7384,9 @@ func (m *FileSchema) ToRawInfo() interface{} {
|
|||||||
// ToRawInfo returns a description of FormDataParameterSubSchema suitable for JSON or YAML export.
|
// ToRawInfo returns a description of FormDataParameterSubSchema suitable for JSON or YAML export.
|
||||||
func (m *FormDataParameterSubSchema) ToRawInfo() interface{} {
|
func (m *FormDataParameterSubSchema) ToRawInfo() interface{} {
|
||||||
info := yaml.MapSlice{}
|
info := yaml.MapSlice{}
|
||||||
|
if m == nil {
|
||||||
|
return info
|
||||||
|
}
|
||||||
if m.Required != false {
|
if m.Required != false {
|
||||||
info = append(info, yaml.MapItem{Key: "required", Value: m.Required})
|
info = append(info, yaml.MapItem{Key: "required", Value: m.Required})
|
||||||
}
|
}
|
||||||
@ -7451,9 +7472,11 @@ func (m *FormDataParameterSubSchema) ToRawInfo() interface{} {
|
|||||||
// ToRawInfo returns a description of Header suitable for JSON or YAML export.
|
// ToRawInfo returns a description of Header suitable for JSON or YAML export.
|
||||||
func (m *Header) ToRawInfo() interface{} {
|
func (m *Header) ToRawInfo() interface{} {
|
||||||
info := yaml.MapSlice{}
|
info := yaml.MapSlice{}
|
||||||
if m.Type != "" {
|
if m == nil {
|
||||||
info = append(info, yaml.MapItem{Key: "type", Value: m.Type})
|
return info
|
||||||
}
|
}
|
||||||
|
// always include this required field.
|
||||||
|
info = append(info, yaml.MapItem{Key: "type", Value: m.Type})
|
||||||
if m.Format != "" {
|
if m.Format != "" {
|
||||||
info = append(info, yaml.MapItem{Key: "format", Value: m.Format})
|
info = append(info, yaml.MapItem{Key: "format", Value: m.Format})
|
||||||
}
|
}
|
||||||
@ -7524,6 +7547,9 @@ func (m *Header) ToRawInfo() interface{} {
|
|||||||
// ToRawInfo returns a description of HeaderParameterSubSchema suitable for JSON or YAML export.
|
// ToRawInfo returns a description of HeaderParameterSubSchema suitable for JSON or YAML export.
|
||||||
func (m *HeaderParameterSubSchema) ToRawInfo() interface{} {
|
func (m *HeaderParameterSubSchema) ToRawInfo() interface{} {
|
||||||
info := yaml.MapSlice{}
|
info := yaml.MapSlice{}
|
||||||
|
if m == nil {
|
||||||
|
return info
|
||||||
|
}
|
||||||
if m.Required != false {
|
if m.Required != false {
|
||||||
info = append(info, yaml.MapItem{Key: "required", Value: m.Required})
|
info = append(info, yaml.MapItem{Key: "required", Value: m.Required})
|
||||||
}
|
}
|
||||||
@ -7606,6 +7632,9 @@ func (m *HeaderParameterSubSchema) ToRawInfo() interface{} {
|
|||||||
// ToRawInfo returns a description of Headers suitable for JSON or YAML export.
|
// ToRawInfo returns a description of Headers suitable for JSON or YAML export.
|
||||||
func (m *Headers) ToRawInfo() interface{} {
|
func (m *Headers) ToRawInfo() interface{} {
|
||||||
info := yaml.MapSlice{}
|
info := yaml.MapSlice{}
|
||||||
|
if m == nil {
|
||||||
|
return info
|
||||||
|
}
|
||||||
if m.AdditionalProperties != nil {
|
if m.AdditionalProperties != nil {
|
||||||
for _, item := range m.AdditionalProperties {
|
for _, item := range m.AdditionalProperties {
|
||||||
info = append(info, yaml.MapItem{Key: item.Name, Value: item.Value.ToRawInfo()})
|
info = append(info, yaml.MapItem{Key: item.Name, Value: item.Value.ToRawInfo()})
|
||||||
@ -7618,12 +7647,13 @@ func (m *Headers) ToRawInfo() interface{} {
|
|||||||
// ToRawInfo returns a description of Info suitable for JSON or YAML export.
|
// ToRawInfo returns a description of Info suitable for JSON or YAML export.
|
||||||
func (m *Info) ToRawInfo() interface{} {
|
func (m *Info) ToRawInfo() interface{} {
|
||||||
info := yaml.MapSlice{}
|
info := yaml.MapSlice{}
|
||||||
if m.Title != "" {
|
if m == nil {
|
||||||
info = append(info, yaml.MapItem{Key: "title", Value: m.Title})
|
return info
|
||||||
}
|
|
||||||
if m.Version != "" {
|
|
||||||
info = append(info, yaml.MapItem{Key: "version", Value: m.Version})
|
|
||||||
}
|
}
|
||||||
|
// always include this required field.
|
||||||
|
info = append(info, yaml.MapItem{Key: "title", Value: m.Title})
|
||||||
|
// always include this required field.
|
||||||
|
info = append(info, yaml.MapItem{Key: "version", Value: m.Version})
|
||||||
if m.Description != "" {
|
if m.Description != "" {
|
||||||
info = append(info, yaml.MapItem{Key: "description", Value: m.Description})
|
info = append(info, yaml.MapItem{Key: "description", Value: m.Description})
|
||||||
}
|
}
|
||||||
@ -7650,6 +7680,9 @@ func (m *Info) ToRawInfo() interface{} {
|
|||||||
// ToRawInfo returns a description of ItemsItem suitable for JSON or YAML export.
|
// ToRawInfo returns a description of ItemsItem suitable for JSON or YAML export.
|
||||||
func (m *ItemsItem) ToRawInfo() interface{} {
|
func (m *ItemsItem) ToRawInfo() interface{} {
|
||||||
info := yaml.MapSlice{}
|
info := yaml.MapSlice{}
|
||||||
|
if m == nil {
|
||||||
|
return info
|
||||||
|
}
|
||||||
if len(m.Schema) != 0 {
|
if len(m.Schema) != 0 {
|
||||||
items := make([]interface{}, 0)
|
items := make([]interface{}, 0)
|
||||||
for _, item := range m.Schema {
|
for _, item := range m.Schema {
|
||||||
@ -7664,9 +7697,11 @@ func (m *ItemsItem) ToRawInfo() interface{} {
|
|||||||
// ToRawInfo returns a description of JsonReference suitable for JSON or YAML export.
|
// ToRawInfo returns a description of JsonReference suitable for JSON or YAML export.
|
||||||
func (m *JsonReference) ToRawInfo() interface{} {
|
func (m *JsonReference) ToRawInfo() interface{} {
|
||||||
info := yaml.MapSlice{}
|
info := yaml.MapSlice{}
|
||||||
if m.XRef != "" {
|
if m == nil {
|
||||||
info = append(info, yaml.MapItem{Key: "$ref", Value: m.XRef})
|
return info
|
||||||
}
|
}
|
||||||
|
// always include this required field.
|
||||||
|
info = append(info, yaml.MapItem{Key: "$ref", Value: m.XRef})
|
||||||
if m.Description != "" {
|
if m.Description != "" {
|
||||||
info = append(info, yaml.MapItem{Key: "description", Value: m.Description})
|
info = append(info, yaml.MapItem{Key: "description", Value: m.Description})
|
||||||
}
|
}
|
||||||
@ -7676,9 +7711,11 @@ func (m *JsonReference) ToRawInfo() interface{} {
|
|||||||
// ToRawInfo returns a description of License suitable for JSON or YAML export.
|
// ToRawInfo returns a description of License suitable for JSON or YAML export.
|
||||||
func (m *License) ToRawInfo() interface{} {
|
func (m *License) ToRawInfo() interface{} {
|
||||||
info := yaml.MapSlice{}
|
info := yaml.MapSlice{}
|
||||||
if m.Name != "" {
|
if m == nil {
|
||||||
info = append(info, yaml.MapItem{Key: "name", Value: m.Name})
|
return info
|
||||||
}
|
}
|
||||||
|
// always include this required field.
|
||||||
|
info = append(info, yaml.MapItem{Key: "name", Value: m.Name})
|
||||||
if m.Url != "" {
|
if m.Url != "" {
|
||||||
info = append(info, yaml.MapItem{Key: "url", Value: m.Url})
|
info = append(info, yaml.MapItem{Key: "url", Value: m.Url})
|
||||||
}
|
}
|
||||||
@ -7694,6 +7731,9 @@ func (m *License) ToRawInfo() interface{} {
|
|||||||
// ToRawInfo returns a description of NamedAny suitable for JSON or YAML export.
|
// ToRawInfo returns a description of NamedAny suitable for JSON or YAML export.
|
||||||
func (m *NamedAny) ToRawInfo() interface{} {
|
func (m *NamedAny) ToRawInfo() interface{} {
|
||||||
info := yaml.MapSlice{}
|
info := yaml.MapSlice{}
|
||||||
|
if m == nil {
|
||||||
|
return info
|
||||||
|
}
|
||||||
if m.Name != "" {
|
if m.Name != "" {
|
||||||
info = append(info, yaml.MapItem{Key: "name", Value: m.Name})
|
info = append(info, yaml.MapItem{Key: "name", Value: m.Name})
|
||||||
}
|
}
|
||||||
@ -7704,6 +7744,9 @@ func (m *NamedAny) ToRawInfo() interface{} {
|
|||||||
// ToRawInfo returns a description of NamedHeader suitable for JSON or YAML export.
|
// ToRawInfo returns a description of NamedHeader suitable for JSON or YAML export.
|
||||||
func (m *NamedHeader) ToRawInfo() interface{} {
|
func (m *NamedHeader) ToRawInfo() interface{} {
|
||||||
info := yaml.MapSlice{}
|
info := yaml.MapSlice{}
|
||||||
|
if m == nil {
|
||||||
|
return info
|
||||||
|
}
|
||||||
if m.Name != "" {
|
if m.Name != "" {
|
||||||
info = append(info, yaml.MapItem{Key: "name", Value: m.Name})
|
info = append(info, yaml.MapItem{Key: "name", Value: m.Name})
|
||||||
}
|
}
|
||||||
@ -7714,6 +7757,9 @@ func (m *NamedHeader) ToRawInfo() interface{} {
|
|||||||
// ToRawInfo returns a description of NamedParameter suitable for JSON or YAML export.
|
// ToRawInfo returns a description of NamedParameter suitable for JSON or YAML export.
|
||||||
func (m *NamedParameter) ToRawInfo() interface{} {
|
func (m *NamedParameter) ToRawInfo() interface{} {
|
||||||
info := yaml.MapSlice{}
|
info := yaml.MapSlice{}
|
||||||
|
if m == nil {
|
||||||
|
return info
|
||||||
|
}
|
||||||
if m.Name != "" {
|
if m.Name != "" {
|
||||||
info = append(info, yaml.MapItem{Key: "name", Value: m.Name})
|
info = append(info, yaml.MapItem{Key: "name", Value: m.Name})
|
||||||
}
|
}
|
||||||
@ -7724,6 +7770,9 @@ func (m *NamedParameter) ToRawInfo() interface{} {
|
|||||||
// ToRawInfo returns a description of NamedPathItem suitable for JSON or YAML export.
|
// ToRawInfo returns a description of NamedPathItem suitable for JSON or YAML export.
|
||||||
func (m *NamedPathItem) ToRawInfo() interface{} {
|
func (m *NamedPathItem) ToRawInfo() interface{} {
|
||||||
info := yaml.MapSlice{}
|
info := yaml.MapSlice{}
|
||||||
|
if m == nil {
|
||||||
|
return info
|
||||||
|
}
|
||||||
if m.Name != "" {
|
if m.Name != "" {
|
||||||
info = append(info, yaml.MapItem{Key: "name", Value: m.Name})
|
info = append(info, yaml.MapItem{Key: "name", Value: m.Name})
|
||||||
}
|
}
|
||||||
@ -7734,6 +7783,9 @@ func (m *NamedPathItem) ToRawInfo() interface{} {
|
|||||||
// ToRawInfo returns a description of NamedResponse suitable for JSON or YAML export.
|
// ToRawInfo returns a description of NamedResponse suitable for JSON or YAML export.
|
||||||
func (m *NamedResponse) ToRawInfo() interface{} {
|
func (m *NamedResponse) ToRawInfo() interface{} {
|
||||||
info := yaml.MapSlice{}
|
info := yaml.MapSlice{}
|
||||||
|
if m == nil {
|
||||||
|
return info
|
||||||
|
}
|
||||||
if m.Name != "" {
|
if m.Name != "" {
|
||||||
info = append(info, yaml.MapItem{Key: "name", Value: m.Name})
|
info = append(info, yaml.MapItem{Key: "name", Value: m.Name})
|
||||||
}
|
}
|
||||||
@ -7744,6 +7796,9 @@ func (m *NamedResponse) ToRawInfo() interface{} {
|
|||||||
// ToRawInfo returns a description of NamedResponseValue suitable for JSON or YAML export.
|
// ToRawInfo returns a description of NamedResponseValue suitable for JSON or YAML export.
|
||||||
func (m *NamedResponseValue) ToRawInfo() interface{} {
|
func (m *NamedResponseValue) ToRawInfo() interface{} {
|
||||||
info := yaml.MapSlice{}
|
info := yaml.MapSlice{}
|
||||||
|
if m == nil {
|
||||||
|
return info
|
||||||
|
}
|
||||||
if m.Name != "" {
|
if m.Name != "" {
|
||||||
info = append(info, yaml.MapItem{Key: "name", Value: m.Name})
|
info = append(info, yaml.MapItem{Key: "name", Value: m.Name})
|
||||||
}
|
}
|
||||||
@ -7754,6 +7809,9 @@ func (m *NamedResponseValue) ToRawInfo() interface{} {
|
|||||||
// ToRawInfo returns a description of NamedSchema suitable for JSON or YAML export.
|
// ToRawInfo returns a description of NamedSchema suitable for JSON or YAML export.
|
||||||
func (m *NamedSchema) ToRawInfo() interface{} {
|
func (m *NamedSchema) ToRawInfo() interface{} {
|
||||||
info := yaml.MapSlice{}
|
info := yaml.MapSlice{}
|
||||||
|
if m == nil {
|
||||||
|
return info
|
||||||
|
}
|
||||||
if m.Name != "" {
|
if m.Name != "" {
|
||||||
info = append(info, yaml.MapItem{Key: "name", Value: m.Name})
|
info = append(info, yaml.MapItem{Key: "name", Value: m.Name})
|
||||||
}
|
}
|
||||||
@ -7764,6 +7822,9 @@ func (m *NamedSchema) ToRawInfo() interface{} {
|
|||||||
// ToRawInfo returns a description of NamedSecurityDefinitionsItem suitable for JSON or YAML export.
|
// ToRawInfo returns a description of NamedSecurityDefinitionsItem suitable for JSON or YAML export.
|
||||||
func (m *NamedSecurityDefinitionsItem) ToRawInfo() interface{} {
|
func (m *NamedSecurityDefinitionsItem) ToRawInfo() interface{} {
|
||||||
info := yaml.MapSlice{}
|
info := yaml.MapSlice{}
|
||||||
|
if m == nil {
|
||||||
|
return info
|
||||||
|
}
|
||||||
if m.Name != "" {
|
if m.Name != "" {
|
||||||
info = append(info, yaml.MapItem{Key: "name", Value: m.Name})
|
info = append(info, yaml.MapItem{Key: "name", Value: m.Name})
|
||||||
}
|
}
|
||||||
@ -7774,6 +7835,9 @@ func (m *NamedSecurityDefinitionsItem) ToRawInfo() interface{} {
|
|||||||
// ToRawInfo returns a description of NamedString suitable for JSON or YAML export.
|
// ToRawInfo returns a description of NamedString suitable for JSON or YAML export.
|
||||||
func (m *NamedString) ToRawInfo() interface{} {
|
func (m *NamedString) ToRawInfo() interface{} {
|
||||||
info := yaml.MapSlice{}
|
info := yaml.MapSlice{}
|
||||||
|
if m == nil {
|
||||||
|
return info
|
||||||
|
}
|
||||||
if m.Name != "" {
|
if m.Name != "" {
|
||||||
info = append(info, yaml.MapItem{Key: "name", Value: m.Name})
|
info = append(info, yaml.MapItem{Key: "name", Value: m.Name})
|
||||||
}
|
}
|
||||||
@ -7786,6 +7850,9 @@ func (m *NamedString) ToRawInfo() interface{} {
|
|||||||
// ToRawInfo returns a description of NamedStringArray suitable for JSON or YAML export.
|
// ToRawInfo returns a description of NamedStringArray suitable for JSON or YAML export.
|
||||||
func (m *NamedStringArray) ToRawInfo() interface{} {
|
func (m *NamedStringArray) ToRawInfo() interface{} {
|
||||||
info := yaml.MapSlice{}
|
info := yaml.MapSlice{}
|
||||||
|
if m == nil {
|
||||||
|
return info
|
||||||
|
}
|
||||||
if m.Name != "" {
|
if m.Name != "" {
|
||||||
info = append(info, yaml.MapItem{Key: "name", Value: m.Name})
|
info = append(info, yaml.MapItem{Key: "name", Value: m.Name})
|
||||||
}
|
}
|
||||||
@ -7823,22 +7890,21 @@ func (m *NonBodyParameter) ToRawInfo() interface{} {
|
|||||||
// ToRawInfo returns a description of Oauth2AccessCodeSecurity suitable for JSON or YAML export.
|
// ToRawInfo returns a description of Oauth2AccessCodeSecurity suitable for JSON or YAML export.
|
||||||
func (m *Oauth2AccessCodeSecurity) ToRawInfo() interface{} {
|
func (m *Oauth2AccessCodeSecurity) ToRawInfo() interface{} {
|
||||||
info := yaml.MapSlice{}
|
info := yaml.MapSlice{}
|
||||||
if m.Type != "" {
|
if m == nil {
|
||||||
info = append(info, yaml.MapItem{Key: "type", Value: m.Type})
|
return info
|
||||||
}
|
|
||||||
if m.Flow != "" {
|
|
||||||
info = append(info, yaml.MapItem{Key: "flow", Value: m.Flow})
|
|
||||||
}
|
}
|
||||||
|
// always include this required field.
|
||||||
|
info = append(info, yaml.MapItem{Key: "type", Value: m.Type})
|
||||||
|
// always include this required field.
|
||||||
|
info = append(info, yaml.MapItem{Key: "flow", Value: m.Flow})
|
||||||
if m.Scopes != nil {
|
if m.Scopes != nil {
|
||||||
info = append(info, yaml.MapItem{Key: "scopes", Value: m.Scopes.ToRawInfo()})
|
info = append(info, yaml.MapItem{Key: "scopes", Value: m.Scopes.ToRawInfo()})
|
||||||
}
|
}
|
||||||
// &{Name:scopes Type:Oauth2Scopes StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
|
// &{Name:scopes Type:Oauth2Scopes StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
|
||||||
if m.AuthorizationUrl != "" {
|
// always include this required field.
|
||||||
info = append(info, yaml.MapItem{Key: "authorizationUrl", Value: m.AuthorizationUrl})
|
info = append(info, yaml.MapItem{Key: "authorizationUrl", Value: m.AuthorizationUrl})
|
||||||
}
|
// always include this required field.
|
||||||
if m.TokenUrl != "" {
|
info = append(info, yaml.MapItem{Key: "tokenUrl", Value: m.TokenUrl})
|
||||||
info = append(info, yaml.MapItem{Key: "tokenUrl", Value: m.TokenUrl})
|
|
||||||
}
|
|
||||||
if m.Description != "" {
|
if m.Description != "" {
|
||||||
info = append(info, yaml.MapItem{Key: "description", Value: m.Description})
|
info = append(info, yaml.MapItem{Key: "description", Value: m.Description})
|
||||||
}
|
}
|
||||||
@ -7854,19 +7920,19 @@ func (m *Oauth2AccessCodeSecurity) ToRawInfo() interface{} {
|
|||||||
// ToRawInfo returns a description of Oauth2ApplicationSecurity suitable for JSON or YAML export.
|
// ToRawInfo returns a description of Oauth2ApplicationSecurity suitable for JSON or YAML export.
|
||||||
func (m *Oauth2ApplicationSecurity) ToRawInfo() interface{} {
|
func (m *Oauth2ApplicationSecurity) ToRawInfo() interface{} {
|
||||||
info := yaml.MapSlice{}
|
info := yaml.MapSlice{}
|
||||||
if m.Type != "" {
|
if m == nil {
|
||||||
info = append(info, yaml.MapItem{Key: "type", Value: m.Type})
|
return info
|
||||||
}
|
|
||||||
if m.Flow != "" {
|
|
||||||
info = append(info, yaml.MapItem{Key: "flow", Value: m.Flow})
|
|
||||||
}
|
}
|
||||||
|
// always include this required field.
|
||||||
|
info = append(info, yaml.MapItem{Key: "type", Value: m.Type})
|
||||||
|
// always include this required field.
|
||||||
|
info = append(info, yaml.MapItem{Key: "flow", Value: m.Flow})
|
||||||
if m.Scopes != nil {
|
if m.Scopes != nil {
|
||||||
info = append(info, yaml.MapItem{Key: "scopes", Value: m.Scopes.ToRawInfo()})
|
info = append(info, yaml.MapItem{Key: "scopes", Value: m.Scopes.ToRawInfo()})
|
||||||
}
|
}
|
||||||
// &{Name:scopes Type:Oauth2Scopes StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
|
// &{Name:scopes Type:Oauth2Scopes StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
|
||||||
if m.TokenUrl != "" {
|
// always include this required field.
|
||||||
info = append(info, yaml.MapItem{Key: "tokenUrl", Value: m.TokenUrl})
|
info = append(info, yaml.MapItem{Key: "tokenUrl", Value: m.TokenUrl})
|
||||||
}
|
|
||||||
if m.Description != "" {
|
if m.Description != "" {
|
||||||
info = append(info, yaml.MapItem{Key: "description", Value: m.Description})
|
info = append(info, yaml.MapItem{Key: "description", Value: m.Description})
|
||||||
}
|
}
|
||||||
@ -7882,19 +7948,19 @@ func (m *Oauth2ApplicationSecurity) ToRawInfo() interface{} {
|
|||||||
// ToRawInfo returns a description of Oauth2ImplicitSecurity suitable for JSON or YAML export.
|
// ToRawInfo returns a description of Oauth2ImplicitSecurity suitable for JSON or YAML export.
|
||||||
func (m *Oauth2ImplicitSecurity) ToRawInfo() interface{} {
|
func (m *Oauth2ImplicitSecurity) ToRawInfo() interface{} {
|
||||||
info := yaml.MapSlice{}
|
info := yaml.MapSlice{}
|
||||||
if m.Type != "" {
|
if m == nil {
|
||||||
info = append(info, yaml.MapItem{Key: "type", Value: m.Type})
|
return info
|
||||||
}
|
|
||||||
if m.Flow != "" {
|
|
||||||
info = append(info, yaml.MapItem{Key: "flow", Value: m.Flow})
|
|
||||||
}
|
}
|
||||||
|
// always include this required field.
|
||||||
|
info = append(info, yaml.MapItem{Key: "type", Value: m.Type})
|
||||||
|
// always include this required field.
|
||||||
|
info = append(info, yaml.MapItem{Key: "flow", Value: m.Flow})
|
||||||
if m.Scopes != nil {
|
if m.Scopes != nil {
|
||||||
info = append(info, yaml.MapItem{Key: "scopes", Value: m.Scopes.ToRawInfo()})
|
info = append(info, yaml.MapItem{Key: "scopes", Value: m.Scopes.ToRawInfo()})
|
||||||
}
|
}
|
||||||
// &{Name:scopes Type:Oauth2Scopes StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
|
// &{Name:scopes Type:Oauth2Scopes StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
|
||||||
if m.AuthorizationUrl != "" {
|
// always include this required field.
|
||||||
info = append(info, yaml.MapItem{Key: "authorizationUrl", Value: m.AuthorizationUrl})
|
info = append(info, yaml.MapItem{Key: "authorizationUrl", Value: m.AuthorizationUrl})
|
||||||
}
|
|
||||||
if m.Description != "" {
|
if m.Description != "" {
|
||||||
info = append(info, yaml.MapItem{Key: "description", Value: m.Description})
|
info = append(info, yaml.MapItem{Key: "description", Value: m.Description})
|
||||||
}
|
}
|
||||||
@ -7910,19 +7976,19 @@ func (m *Oauth2ImplicitSecurity) ToRawInfo() interface{} {
|
|||||||
// ToRawInfo returns a description of Oauth2PasswordSecurity suitable for JSON or YAML export.
|
// ToRawInfo returns a description of Oauth2PasswordSecurity suitable for JSON or YAML export.
|
||||||
func (m *Oauth2PasswordSecurity) ToRawInfo() interface{} {
|
func (m *Oauth2PasswordSecurity) ToRawInfo() interface{} {
|
||||||
info := yaml.MapSlice{}
|
info := yaml.MapSlice{}
|
||||||
if m.Type != "" {
|
if m == nil {
|
||||||
info = append(info, yaml.MapItem{Key: "type", Value: m.Type})
|
return info
|
||||||
}
|
|
||||||
if m.Flow != "" {
|
|
||||||
info = append(info, yaml.MapItem{Key: "flow", Value: m.Flow})
|
|
||||||
}
|
}
|
||||||
|
// always include this required field.
|
||||||
|
info = append(info, yaml.MapItem{Key: "type", Value: m.Type})
|
||||||
|
// always include this required field.
|
||||||
|
info = append(info, yaml.MapItem{Key: "flow", Value: m.Flow})
|
||||||
if m.Scopes != nil {
|
if m.Scopes != nil {
|
||||||
info = append(info, yaml.MapItem{Key: "scopes", Value: m.Scopes.ToRawInfo()})
|
info = append(info, yaml.MapItem{Key: "scopes", Value: m.Scopes.ToRawInfo()})
|
||||||
}
|
}
|
||||||
// &{Name:scopes Type:Oauth2Scopes StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
|
// &{Name:scopes Type:Oauth2Scopes StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
|
||||||
if m.TokenUrl != "" {
|
// always include this required field.
|
||||||
info = append(info, yaml.MapItem{Key: "tokenUrl", Value: m.TokenUrl})
|
info = append(info, yaml.MapItem{Key: "tokenUrl", Value: m.TokenUrl})
|
||||||
}
|
|
||||||
if m.Description != "" {
|
if m.Description != "" {
|
||||||
info = append(info, yaml.MapItem{Key: "description", Value: m.Description})
|
info = append(info, yaml.MapItem{Key: "description", Value: m.Description})
|
||||||
}
|
}
|
||||||
@ -7938,6 +8004,9 @@ func (m *Oauth2PasswordSecurity) ToRawInfo() interface{} {
|
|||||||
// ToRawInfo returns a description of Oauth2Scopes suitable for JSON or YAML export.
|
// ToRawInfo returns a description of Oauth2Scopes suitable for JSON or YAML export.
|
||||||
func (m *Oauth2Scopes) ToRawInfo() interface{} {
|
func (m *Oauth2Scopes) ToRawInfo() interface{} {
|
||||||
info := yaml.MapSlice{}
|
info := yaml.MapSlice{}
|
||||||
|
if m == nil {
|
||||||
|
return info
|
||||||
|
}
|
||||||
// &{Name:additionalProperties Type:NamedString StringEnumValues:[] MapType:string Repeated:true Pattern: Implicit:true Description:}
|
// &{Name:additionalProperties Type:NamedString StringEnumValues:[] MapType:string Repeated:true Pattern: Implicit:true Description:}
|
||||||
return info
|
return info
|
||||||
}
|
}
|
||||||
@ -7945,6 +8014,9 @@ func (m *Oauth2Scopes) ToRawInfo() interface{} {
|
|||||||
// ToRawInfo returns a description of Operation suitable for JSON or YAML export.
|
// ToRawInfo returns a description of Operation suitable for JSON or YAML export.
|
||||||
func (m *Operation) ToRawInfo() interface{} {
|
func (m *Operation) ToRawInfo() interface{} {
|
||||||
info := yaml.MapSlice{}
|
info := yaml.MapSlice{}
|
||||||
|
if m == nil {
|
||||||
|
return info
|
||||||
|
}
|
||||||
if len(m.Tags) != 0 {
|
if len(m.Tags) != 0 {
|
||||||
info = append(info, yaml.MapItem{Key: "tags", Value: m.Tags})
|
info = append(info, yaml.MapItem{Key: "tags", Value: m.Tags})
|
||||||
}
|
}
|
||||||
@ -7975,9 +8047,8 @@ func (m *Operation) ToRawInfo() interface{} {
|
|||||||
info = append(info, yaml.MapItem{Key: "parameters", Value: items})
|
info = append(info, yaml.MapItem{Key: "parameters", Value: items})
|
||||||
}
|
}
|
||||||
// &{Name:parameters Type:ParametersItem StringEnumValues:[] MapType: Repeated:true Pattern: Implicit:false Description:The parameters needed to send a valid API call.}
|
// &{Name:parameters Type:ParametersItem StringEnumValues:[] MapType: Repeated:true Pattern: Implicit:false Description:The parameters needed to send a valid API call.}
|
||||||
if m.Responses != nil {
|
// always include this required field.
|
||||||
info = append(info, yaml.MapItem{Key: "responses", Value: m.Responses.ToRawInfo()})
|
info = append(info, yaml.MapItem{Key: "responses", Value: m.Responses.ToRawInfo()})
|
||||||
}
|
|
||||||
// &{Name:responses Type:Responses StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
|
// &{Name:responses Type:Responses StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
|
||||||
if len(m.Schemes) != 0 {
|
if len(m.Schemes) != 0 {
|
||||||
info = append(info, yaml.MapItem{Key: "schemes", Value: m.Schemes})
|
info = append(info, yaml.MapItem{Key: "schemes", Value: m.Schemes})
|
||||||
@ -8022,6 +8093,9 @@ func (m *Parameter) ToRawInfo() interface{} {
|
|||||||
// ToRawInfo returns a description of ParameterDefinitions suitable for JSON or YAML export.
|
// ToRawInfo returns a description of ParameterDefinitions suitable for JSON or YAML export.
|
||||||
func (m *ParameterDefinitions) ToRawInfo() interface{} {
|
func (m *ParameterDefinitions) ToRawInfo() interface{} {
|
||||||
info := yaml.MapSlice{}
|
info := yaml.MapSlice{}
|
||||||
|
if m == nil {
|
||||||
|
return info
|
||||||
|
}
|
||||||
if m.AdditionalProperties != nil {
|
if m.AdditionalProperties != nil {
|
||||||
for _, item := range m.AdditionalProperties {
|
for _, item := range m.AdditionalProperties {
|
||||||
info = append(info, yaml.MapItem{Key: item.Name, Value: item.Value.ToRawInfo()})
|
info = append(info, yaml.MapItem{Key: item.Name, Value: item.Value.ToRawInfo()})
|
||||||
@ -8051,6 +8125,9 @@ func (m *ParametersItem) ToRawInfo() interface{} {
|
|||||||
// ToRawInfo returns a description of PathItem suitable for JSON or YAML export.
|
// ToRawInfo returns a description of PathItem suitable for JSON or YAML export.
|
||||||
func (m *PathItem) ToRawInfo() interface{} {
|
func (m *PathItem) ToRawInfo() interface{} {
|
||||||
info := yaml.MapSlice{}
|
info := yaml.MapSlice{}
|
||||||
|
if m == nil {
|
||||||
|
return info
|
||||||
|
}
|
||||||
if m.XRef != "" {
|
if m.XRef != "" {
|
||||||
info = append(info, yaml.MapItem{Key: "$ref", Value: m.XRef})
|
info = append(info, yaml.MapItem{Key: "$ref", Value: m.XRef})
|
||||||
}
|
}
|
||||||
@ -8102,9 +8179,11 @@ func (m *PathItem) ToRawInfo() interface{} {
|
|||||||
// ToRawInfo returns a description of PathParameterSubSchema suitable for JSON or YAML export.
|
// ToRawInfo returns a description of PathParameterSubSchema suitable for JSON or YAML export.
|
||||||
func (m *PathParameterSubSchema) ToRawInfo() interface{} {
|
func (m *PathParameterSubSchema) ToRawInfo() interface{} {
|
||||||
info := yaml.MapSlice{}
|
info := yaml.MapSlice{}
|
||||||
if m.Required != false {
|
if m == nil {
|
||||||
info = append(info, yaml.MapItem{Key: "required", Value: m.Required})
|
return info
|
||||||
}
|
}
|
||||||
|
// always include this required field.
|
||||||
|
info = append(info, yaml.MapItem{Key: "required", Value: m.Required})
|
||||||
if m.In != "" {
|
if m.In != "" {
|
||||||
info = append(info, yaml.MapItem{Key: "in", Value: m.In})
|
info = append(info, yaml.MapItem{Key: "in", Value: m.In})
|
||||||
}
|
}
|
||||||
@ -8184,6 +8263,9 @@ func (m *PathParameterSubSchema) ToRawInfo() interface{} {
|
|||||||
// ToRawInfo returns a description of Paths suitable for JSON or YAML export.
|
// ToRawInfo returns a description of Paths suitable for JSON or YAML export.
|
||||||
func (m *Paths) ToRawInfo() interface{} {
|
func (m *Paths) ToRawInfo() interface{} {
|
||||||
info := yaml.MapSlice{}
|
info := yaml.MapSlice{}
|
||||||
|
if m == nil {
|
||||||
|
return info
|
||||||
|
}
|
||||||
if m.VendorExtension != nil {
|
if m.VendorExtension != nil {
|
||||||
for _, item := range m.VendorExtension {
|
for _, item := range m.VendorExtension {
|
||||||
info = append(info, yaml.MapItem{Key: item.Name, Value: item.Value.ToRawInfo()})
|
info = append(info, yaml.MapItem{Key: item.Name, Value: item.Value.ToRawInfo()})
|
||||||
@ -8202,6 +8284,9 @@ func (m *Paths) ToRawInfo() interface{} {
|
|||||||
// ToRawInfo returns a description of PrimitivesItems suitable for JSON or YAML export.
|
// ToRawInfo returns a description of PrimitivesItems suitable for JSON or YAML export.
|
||||||
func (m *PrimitivesItems) ToRawInfo() interface{} {
|
func (m *PrimitivesItems) ToRawInfo() interface{} {
|
||||||
info := yaml.MapSlice{}
|
info := yaml.MapSlice{}
|
||||||
|
if m == nil {
|
||||||
|
return info
|
||||||
|
}
|
||||||
if m.Type != "" {
|
if m.Type != "" {
|
||||||
info = append(info, yaml.MapItem{Key: "type", Value: m.Type})
|
info = append(info, yaml.MapItem{Key: "type", Value: m.Type})
|
||||||
}
|
}
|
||||||
@ -8272,6 +8357,9 @@ func (m *PrimitivesItems) ToRawInfo() interface{} {
|
|||||||
// ToRawInfo returns a description of Properties suitable for JSON or YAML export.
|
// ToRawInfo returns a description of Properties suitable for JSON or YAML export.
|
||||||
func (m *Properties) ToRawInfo() interface{} {
|
func (m *Properties) ToRawInfo() interface{} {
|
||||||
info := yaml.MapSlice{}
|
info := yaml.MapSlice{}
|
||||||
|
if m == nil {
|
||||||
|
return info
|
||||||
|
}
|
||||||
if m.AdditionalProperties != nil {
|
if m.AdditionalProperties != nil {
|
||||||
for _, item := range m.AdditionalProperties {
|
for _, item := range m.AdditionalProperties {
|
||||||
info = append(info, yaml.MapItem{Key: item.Name, Value: item.Value.ToRawInfo()})
|
info = append(info, yaml.MapItem{Key: item.Name, Value: item.Value.ToRawInfo()})
|
||||||
@ -8284,6 +8372,9 @@ func (m *Properties) ToRawInfo() interface{} {
|
|||||||
// ToRawInfo returns a description of QueryParameterSubSchema suitable for JSON or YAML export.
|
// ToRawInfo returns a description of QueryParameterSubSchema suitable for JSON or YAML export.
|
||||||
func (m *QueryParameterSubSchema) ToRawInfo() interface{} {
|
func (m *QueryParameterSubSchema) ToRawInfo() interface{} {
|
||||||
info := yaml.MapSlice{}
|
info := yaml.MapSlice{}
|
||||||
|
if m == nil {
|
||||||
|
return info
|
||||||
|
}
|
||||||
if m.Required != false {
|
if m.Required != false {
|
||||||
info = append(info, yaml.MapItem{Key: "required", Value: m.Required})
|
info = append(info, yaml.MapItem{Key: "required", Value: m.Required})
|
||||||
}
|
}
|
||||||
@ -8369,9 +8460,11 @@ func (m *QueryParameterSubSchema) ToRawInfo() interface{} {
|
|||||||
// ToRawInfo returns a description of Response suitable for JSON or YAML export.
|
// ToRawInfo returns a description of Response suitable for JSON or YAML export.
|
||||||
func (m *Response) ToRawInfo() interface{} {
|
func (m *Response) ToRawInfo() interface{} {
|
||||||
info := yaml.MapSlice{}
|
info := yaml.MapSlice{}
|
||||||
if m.Description != "" {
|
if m == nil {
|
||||||
info = append(info, yaml.MapItem{Key: "description", Value: m.Description})
|
return info
|
||||||
}
|
}
|
||||||
|
// always include this required field.
|
||||||
|
info = append(info, yaml.MapItem{Key: "description", Value: m.Description})
|
||||||
if m.Schema != nil {
|
if m.Schema != nil {
|
||||||
info = append(info, yaml.MapItem{Key: "schema", Value: m.Schema.ToRawInfo()})
|
info = append(info, yaml.MapItem{Key: "schema", Value: m.Schema.ToRawInfo()})
|
||||||
}
|
}
|
||||||
@ -8396,6 +8489,9 @@ func (m *Response) ToRawInfo() interface{} {
|
|||||||
// ToRawInfo returns a description of ResponseDefinitions suitable for JSON or YAML export.
|
// ToRawInfo returns a description of ResponseDefinitions suitable for JSON or YAML export.
|
||||||
func (m *ResponseDefinitions) ToRawInfo() interface{} {
|
func (m *ResponseDefinitions) ToRawInfo() interface{} {
|
||||||
info := yaml.MapSlice{}
|
info := yaml.MapSlice{}
|
||||||
|
if m == nil {
|
||||||
|
return info
|
||||||
|
}
|
||||||
if m.AdditionalProperties != nil {
|
if m.AdditionalProperties != nil {
|
||||||
for _, item := range m.AdditionalProperties {
|
for _, item := range m.AdditionalProperties {
|
||||||
info = append(info, yaml.MapItem{Key: item.Name, Value: item.Value.ToRawInfo()})
|
info = append(info, yaml.MapItem{Key: item.Name, Value: item.Value.ToRawInfo()})
|
||||||
@ -8425,6 +8521,9 @@ func (m *ResponseValue) ToRawInfo() interface{} {
|
|||||||
// ToRawInfo returns a description of Responses suitable for JSON or YAML export.
|
// ToRawInfo returns a description of Responses suitable for JSON or YAML export.
|
||||||
func (m *Responses) ToRawInfo() interface{} {
|
func (m *Responses) ToRawInfo() interface{} {
|
||||||
info := yaml.MapSlice{}
|
info := yaml.MapSlice{}
|
||||||
|
if m == nil {
|
||||||
|
return info
|
||||||
|
}
|
||||||
if m.ResponseCode != nil {
|
if m.ResponseCode != nil {
|
||||||
for _, item := range m.ResponseCode {
|
for _, item := range m.ResponseCode {
|
||||||
info = append(info, yaml.MapItem{Key: item.Name, Value: item.Value.ToRawInfo()})
|
info = append(info, yaml.MapItem{Key: item.Name, Value: item.Value.ToRawInfo()})
|
||||||
@ -8443,6 +8542,9 @@ func (m *Responses) ToRawInfo() interface{} {
|
|||||||
// ToRawInfo returns a description of Schema suitable for JSON or YAML export.
|
// ToRawInfo returns a description of Schema suitable for JSON or YAML export.
|
||||||
func (m *Schema) ToRawInfo() interface{} {
|
func (m *Schema) ToRawInfo() interface{} {
|
||||||
info := yaml.MapSlice{}
|
info := yaml.MapSlice{}
|
||||||
|
if m == nil {
|
||||||
|
return info
|
||||||
|
}
|
||||||
if m.XRef != "" {
|
if m.XRef != "" {
|
||||||
info = append(info, yaml.MapItem{Key: "$ref", Value: m.XRef})
|
info = append(info, yaml.MapItem{Key: "$ref", Value: m.XRef})
|
||||||
}
|
}
|
||||||
@ -8588,6 +8690,9 @@ func (m *SchemaItem) ToRawInfo() interface{} {
|
|||||||
// ToRawInfo returns a description of SecurityDefinitions suitable for JSON or YAML export.
|
// ToRawInfo returns a description of SecurityDefinitions suitable for JSON or YAML export.
|
||||||
func (m *SecurityDefinitions) ToRawInfo() interface{} {
|
func (m *SecurityDefinitions) ToRawInfo() interface{} {
|
||||||
info := yaml.MapSlice{}
|
info := yaml.MapSlice{}
|
||||||
|
if m == nil {
|
||||||
|
return info
|
||||||
|
}
|
||||||
if m.AdditionalProperties != nil {
|
if m.AdditionalProperties != nil {
|
||||||
for _, item := range m.AdditionalProperties {
|
for _, item := range m.AdditionalProperties {
|
||||||
info = append(info, yaml.MapItem{Key: item.Name, Value: item.Value.ToRawInfo()})
|
info = append(info, yaml.MapItem{Key: item.Name, Value: item.Value.ToRawInfo()})
|
||||||
@ -8637,6 +8742,9 @@ func (m *SecurityDefinitionsItem) ToRawInfo() interface{} {
|
|||||||
// ToRawInfo returns a description of SecurityRequirement suitable for JSON or YAML export.
|
// ToRawInfo returns a description of SecurityRequirement suitable for JSON or YAML export.
|
||||||
func (m *SecurityRequirement) ToRawInfo() interface{} {
|
func (m *SecurityRequirement) ToRawInfo() interface{} {
|
||||||
info := yaml.MapSlice{}
|
info := yaml.MapSlice{}
|
||||||
|
if m == nil {
|
||||||
|
return info
|
||||||
|
}
|
||||||
if m.AdditionalProperties != nil {
|
if m.AdditionalProperties != nil {
|
||||||
for _, item := range m.AdditionalProperties {
|
for _, item := range m.AdditionalProperties {
|
||||||
info = append(info, yaml.MapItem{Key: item.Name, Value: item.Value.ToRawInfo()})
|
info = append(info, yaml.MapItem{Key: item.Name, Value: item.Value.ToRawInfo()})
|
||||||
@ -8654,9 +8762,11 @@ func (m *StringArray) ToRawInfo() interface{} {
|
|||||||
// ToRawInfo returns a description of Tag suitable for JSON or YAML export.
|
// ToRawInfo returns a description of Tag suitable for JSON or YAML export.
|
||||||
func (m *Tag) ToRawInfo() interface{} {
|
func (m *Tag) ToRawInfo() interface{} {
|
||||||
info := yaml.MapSlice{}
|
info := yaml.MapSlice{}
|
||||||
if m.Name != "" {
|
if m == nil {
|
||||||
info = append(info, yaml.MapItem{Key: "name", Value: m.Name})
|
return info
|
||||||
}
|
}
|
||||||
|
// always include this required field.
|
||||||
|
info = append(info, yaml.MapItem{Key: "name", Value: m.Name})
|
||||||
if m.Description != "" {
|
if m.Description != "" {
|
||||||
info = append(info, yaml.MapItem{Key: "description", Value: m.Description})
|
info = append(info, yaml.MapItem{Key: "description", Value: m.Description})
|
||||||
}
|
}
|
||||||
@ -8676,6 +8786,9 @@ func (m *Tag) ToRawInfo() interface{} {
|
|||||||
// ToRawInfo returns a description of TypeItem suitable for JSON or YAML export.
|
// ToRawInfo returns a description of TypeItem suitable for JSON or YAML export.
|
||||||
func (m *TypeItem) ToRawInfo() interface{} {
|
func (m *TypeItem) ToRawInfo() interface{} {
|
||||||
info := yaml.MapSlice{}
|
info := yaml.MapSlice{}
|
||||||
|
if m == nil {
|
||||||
|
return info
|
||||||
|
}
|
||||||
if len(m.Value) != 0 {
|
if len(m.Value) != 0 {
|
||||||
info = append(info, yaml.MapItem{Key: "value", Value: m.Value})
|
info = append(info, yaml.MapItem{Key: "value", Value: m.Value})
|
||||||
}
|
}
|
||||||
@ -8685,6 +8798,9 @@ func (m *TypeItem) ToRawInfo() interface{} {
|
|||||||
// ToRawInfo returns a description of VendorExtension suitable for JSON or YAML export.
|
// ToRawInfo returns a description of VendorExtension suitable for JSON or YAML export.
|
||||||
func (m *VendorExtension) ToRawInfo() interface{} {
|
func (m *VendorExtension) ToRawInfo() interface{} {
|
||||||
info := yaml.MapSlice{}
|
info := yaml.MapSlice{}
|
||||||
|
if m == nil {
|
||||||
|
return info
|
||||||
|
}
|
||||||
if m.AdditionalProperties != nil {
|
if m.AdditionalProperties != nil {
|
||||||
for _, item := range m.AdditionalProperties {
|
for _, item := range m.AdditionalProperties {
|
||||||
info = append(info, yaml.MapItem{Key: item.Name, Value: item.Value.ToRawInfo()})
|
info = append(info, yaml.MapItem{Key: item.Name, Value: item.Value.ToRawInfo()})
|
||||||
@ -8697,6 +8813,9 @@ func (m *VendorExtension) ToRawInfo() interface{} {
|
|||||||
// ToRawInfo returns a description of Xml suitable for JSON or YAML export.
|
// ToRawInfo returns a description of Xml suitable for JSON or YAML export.
|
||||||
func (m *Xml) ToRawInfo() interface{} {
|
func (m *Xml) ToRawInfo() interface{} {
|
||||||
info := yaml.MapSlice{}
|
info := yaml.MapSlice{}
|
||||||
|
if m == nil {
|
||||||
|
return info
|
||||||
|
}
|
||||||
if m.Name != "" {
|
if m.Name != "" {
|
||||||
info = append(info, yaml.MapItem{Key: "name", Value: m.Name})
|
info = append(info, yaml.MapItem{Key: "name", Value: m.Name})
|
||||||
}
|
}
|
||||||
5226
vendor/github.com/googleapis/gnostic/openapiv2/OpenAPIv2.pb.go
generated
vendored
Normal file
5226
vendor/github.com/googleapis/gnostic/openapiv2/OpenAPIv2.pb.go
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
36
vendor/github.com/json-iterator/go/README.md
generated
vendored
36
vendor/github.com/json-iterator/go/README.md
generated
vendored
@ -1,5 +1,5 @@
|
|||||||
[](https://sourcegraph.com/github.com/json-iterator/go?badge)
|
[](https://sourcegraph.com/github.com/json-iterator/go?badge)
|
||||||
[](http://godoc.org/github.com/json-iterator/go)
|
[](https://pkg.go.dev/github.com/json-iterator/go)
|
||||||
[](https://travis-ci.org/json-iterator/go)
|
[](https://travis-ci.org/json-iterator/go)
|
||||||
[](https://codecov.io/gh/json-iterator/go)
|
[](https://codecov.io/gh/json-iterator/go)
|
||||||
[](https://goreportcard.com/report/github.com/json-iterator/go)
|
[](https://goreportcard.com/report/github.com/json-iterator/go)
|
||||||
@ -18,16 +18,16 @@ Source code: https://github.com/json-iterator/go-benchmark/blob/master/src/githu
|
|||||||
|
|
||||||
Raw Result (easyjson requires static code generation)
|
Raw Result (easyjson requires static code generation)
|
||||||
|
|
||||||
| | ns/op | allocation bytes | allocation times |
|
| | ns/op | allocation bytes | allocation times |
|
||||||
| --- | --- | --- | --- |
|
| --------------- | ----------- | ---------------- | ---------------- |
|
||||||
| std decode | 35510 ns/op | 1960 B/op | 99 allocs/op |
|
| std decode | 35510 ns/op | 1960 B/op | 99 allocs/op |
|
||||||
| easyjson decode | 8499 ns/op | 160 B/op | 4 allocs/op |
|
| easyjson decode | 8499 ns/op | 160 B/op | 4 allocs/op |
|
||||||
| jsoniter decode | 5623 ns/op | 160 B/op | 3 allocs/op |
|
| jsoniter decode | 5623 ns/op | 160 B/op | 3 allocs/op |
|
||||||
| std encode | 2213 ns/op | 712 B/op | 5 allocs/op |
|
| std encode | 2213 ns/op | 712 B/op | 5 allocs/op |
|
||||||
| easyjson encode | 883 ns/op | 576 B/op | 3 allocs/op |
|
| easyjson encode | 883 ns/op | 576 B/op | 3 allocs/op |
|
||||||
| jsoniter encode | 837 ns/op | 384 B/op | 4 allocs/op |
|
| jsoniter encode | 837 ns/op | 384 B/op | 4 allocs/op |
|
||||||
|
|
||||||
Always benchmark with your own workload.
|
Always benchmark with your own workload.
|
||||||
The result depends heavily on the data input.
|
The result depends heavily on the data input.
|
||||||
|
|
||||||
# Usage
|
# Usage
|
||||||
@ -41,10 +41,10 @@ import "encoding/json"
|
|||||||
json.Marshal(&data)
|
json.Marshal(&data)
|
||||||
```
|
```
|
||||||
|
|
||||||
with
|
with
|
||||||
|
|
||||||
```go
|
```go
|
||||||
import "github.com/json-iterator/go"
|
import jsoniter "github.com/json-iterator/go"
|
||||||
|
|
||||||
var json = jsoniter.ConfigCompatibleWithStandardLibrary
|
var json = jsoniter.ConfigCompatibleWithStandardLibrary
|
||||||
json.Marshal(&data)
|
json.Marshal(&data)
|
||||||
@ -60,7 +60,7 @@ json.Unmarshal(input, &data)
|
|||||||
with
|
with
|
||||||
|
|
||||||
```go
|
```go
|
||||||
import "github.com/json-iterator/go"
|
import jsoniter "github.com/json-iterator/go"
|
||||||
|
|
||||||
var json = jsoniter.ConfigCompatibleWithStandardLibrary
|
var json = jsoniter.ConfigCompatibleWithStandardLibrary
|
||||||
json.Unmarshal(input, &data)
|
json.Unmarshal(input, &data)
|
||||||
@ -78,10 +78,10 @@ go get github.com/json-iterator/go
|
|||||||
|
|
||||||
Contributors
|
Contributors
|
||||||
|
|
||||||
* [thockin](https://github.com/thockin)
|
- [thockin](https://github.com/thockin)
|
||||||
* [mattn](https://github.com/mattn)
|
- [mattn](https://github.com/mattn)
|
||||||
* [cch123](https://github.com/cch123)
|
- [cch123](https://github.com/cch123)
|
||||||
* [Oleg Shaldybin](https://github.com/olegshaldybin)
|
- [Oleg Shaldybin](https://github.com/olegshaldybin)
|
||||||
* [Jason Toffaletti](https://github.com/toffaletti)
|
- [Jason Toffaletti](https://github.com/toffaletti)
|
||||||
|
|
||||||
Report issue or pull request, or email taowen@gmail.com, or [](https://gitter.im/json-iterator/Lobby)
|
Report issue or pull request, or email taowen@gmail.com, or [](https://gitter.im/json-iterator/Lobby)
|
||||||
|
|||||||
4
vendor/github.com/json-iterator/go/any_str.go
generated
vendored
4
vendor/github.com/json-iterator/go/any_str.go
generated
vendored
@ -64,7 +64,6 @@ func (any *stringAny) ToInt64() int64 {
|
|||||||
|
|
||||||
flag := 1
|
flag := 1
|
||||||
startPos := 0
|
startPos := 0
|
||||||
endPos := 0
|
|
||||||
if any.val[0] == '+' || any.val[0] == '-' {
|
if any.val[0] == '+' || any.val[0] == '-' {
|
||||||
startPos = 1
|
startPos = 1
|
||||||
}
|
}
|
||||||
@ -73,6 +72,7 @@ func (any *stringAny) ToInt64() int64 {
|
|||||||
flag = -1
|
flag = -1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
endPos := startPos
|
||||||
for i := startPos; i < len(any.val); i++ {
|
for i := startPos; i < len(any.val); i++ {
|
||||||
if any.val[i] >= '0' && any.val[i] <= '9' {
|
if any.val[i] >= '0' && any.val[i] <= '9' {
|
||||||
endPos = i + 1
|
endPos = i + 1
|
||||||
@ -98,7 +98,6 @@ func (any *stringAny) ToUint64() uint64 {
|
|||||||
}
|
}
|
||||||
|
|
||||||
startPos := 0
|
startPos := 0
|
||||||
endPos := 0
|
|
||||||
|
|
||||||
if any.val[0] == '-' {
|
if any.val[0] == '-' {
|
||||||
return 0
|
return 0
|
||||||
@ -107,6 +106,7 @@ func (any *stringAny) ToUint64() uint64 {
|
|||||||
startPos = 1
|
startPos = 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
endPos := startPos
|
||||||
for i := startPos; i < len(any.val); i++ {
|
for i := startPos; i < len(any.val); i++ {
|
||||||
if any.val[i] >= '0' && any.val[i] <= '9' {
|
if any.val[i] >= '0' && any.val[i] <= '9' {
|
||||||
endPos = i + 1
|
endPos = i + 1
|
||||||
|
|||||||
4
vendor/github.com/json-iterator/go/config.go
generated
vendored
4
vendor/github.com/json-iterator/go/config.go
generated
vendored
@ -183,11 +183,11 @@ func (cfg *frozenConfig) validateJsonRawMessage(extension EncoderExtension) {
|
|||||||
encoder := &funcEncoder{func(ptr unsafe.Pointer, stream *Stream) {
|
encoder := &funcEncoder{func(ptr unsafe.Pointer, stream *Stream) {
|
||||||
rawMessage := *(*json.RawMessage)(ptr)
|
rawMessage := *(*json.RawMessage)(ptr)
|
||||||
iter := cfg.BorrowIterator([]byte(rawMessage))
|
iter := cfg.BorrowIterator([]byte(rawMessage))
|
||||||
|
defer cfg.ReturnIterator(iter)
|
||||||
iter.Read()
|
iter.Read()
|
||||||
if iter.Error != nil {
|
if iter.Error != nil && iter.Error != io.EOF {
|
||||||
stream.WriteRaw("null")
|
stream.WriteRaw("null")
|
||||||
} else {
|
} else {
|
||||||
cfg.ReturnIterator(iter)
|
|
||||||
stream.WriteRaw(string(rawMessage))
|
stream.WriteRaw(string(rawMessage))
|
||||||
}
|
}
|
||||||
}, func(ptr unsafe.Pointer) bool {
|
}, func(ptr unsafe.Pointer) bool {
|
||||||
|
|||||||
4
vendor/github.com/json-iterator/go/iter_object.go
generated
vendored
4
vendor/github.com/json-iterator/go/iter_object.go
generated
vendored
@ -150,7 +150,7 @@ func (iter *Iterator) ReadObjectCB(callback func(*Iterator, string) bool) bool {
|
|||||||
if c == '}' {
|
if c == '}' {
|
||||||
return iter.decrementDepth()
|
return iter.decrementDepth()
|
||||||
}
|
}
|
||||||
iter.ReportError("ReadObjectCB", `expect " after }, but found `+string([]byte{c}))
|
iter.ReportError("ReadObjectCB", `expect " after {, but found `+string([]byte{c}))
|
||||||
iter.decrementDepth()
|
iter.decrementDepth()
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
@ -206,7 +206,7 @@ func (iter *Iterator) ReadMapCB(callback func(*Iterator, string) bool) bool {
|
|||||||
if c == '}' {
|
if c == '}' {
|
||||||
return iter.decrementDepth()
|
return iter.decrementDepth()
|
||||||
}
|
}
|
||||||
iter.ReportError("ReadMapCB", `expect " after }, but found `+string([]byte{c}))
|
iter.ReportError("ReadMapCB", `expect " after {, but found `+string([]byte{c}))
|
||||||
iter.decrementDepth()
|
iter.decrementDepth()
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|||||||
2
vendor/github.com/json-iterator/go/reflect_extension.go
generated
vendored
2
vendor/github.com/json-iterator/go/reflect_extension.go
generated
vendored
@ -475,7 +475,7 @@ func calcFieldNames(originalFieldName string, tagProvidedFieldName string, whole
|
|||||||
fieldNames = []string{tagProvidedFieldName}
|
fieldNames = []string{tagProvidedFieldName}
|
||||||
}
|
}
|
||||||
// private?
|
// private?
|
||||||
isNotExported := unicode.IsLower(rune(originalFieldName[0]))
|
isNotExported := unicode.IsLower(rune(originalFieldName[0])) || originalFieldName[0] == '_'
|
||||||
if isNotExported {
|
if isNotExported {
|
||||||
fieldNames = []string{}
|
fieldNames = []string{}
|
||||||
}
|
}
|
||||||
|
|||||||
80
vendor/github.com/json-iterator/go/reflect_map.go
generated
vendored
80
vendor/github.com/json-iterator/go/reflect_map.go
generated
vendored
@ -49,6 +49,33 @@ func decoderOfMapKey(ctx *ctx, typ reflect2.Type) ValDecoder {
|
|||||||
return decoder
|
return decoder
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ptrType := reflect2.PtrTo(typ)
|
||||||
|
if ptrType.Implements(unmarshalerType) {
|
||||||
|
return &referenceDecoder{
|
||||||
|
&unmarshalerDecoder{
|
||||||
|
valType: ptrType,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if typ.Implements(unmarshalerType) {
|
||||||
|
return &unmarshalerDecoder{
|
||||||
|
valType: typ,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ptrType.Implements(textUnmarshalerType) {
|
||||||
|
return &referenceDecoder{
|
||||||
|
&textUnmarshalerDecoder{
|
||||||
|
valType: ptrType,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if typ.Implements(textUnmarshalerType) {
|
||||||
|
return &textUnmarshalerDecoder{
|
||||||
|
valType: typ,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
switch typ.Kind() {
|
switch typ.Kind() {
|
||||||
case reflect.String:
|
case reflect.String:
|
||||||
return decoderOfType(ctx, reflect2.DefaultTypeOfKind(reflect.String))
|
return decoderOfType(ctx, reflect2.DefaultTypeOfKind(reflect.String))
|
||||||
@ -63,31 +90,6 @@ func decoderOfMapKey(ctx *ctx, typ reflect2.Type) ValDecoder {
|
|||||||
typ = reflect2.DefaultTypeOfKind(typ.Kind())
|
typ = reflect2.DefaultTypeOfKind(typ.Kind())
|
||||||
return &numericMapKeyDecoder{decoderOfType(ctx, typ)}
|
return &numericMapKeyDecoder{decoderOfType(ctx, typ)}
|
||||||
default:
|
default:
|
||||||
ptrType := reflect2.PtrTo(typ)
|
|
||||||
if ptrType.Implements(unmarshalerType) {
|
|
||||||
return &referenceDecoder{
|
|
||||||
&unmarshalerDecoder{
|
|
||||||
valType: ptrType,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if typ.Implements(unmarshalerType) {
|
|
||||||
return &unmarshalerDecoder{
|
|
||||||
valType: typ,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ptrType.Implements(textUnmarshalerType) {
|
|
||||||
return &referenceDecoder{
|
|
||||||
&textUnmarshalerDecoder{
|
|
||||||
valType: ptrType,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if typ.Implements(textUnmarshalerType) {
|
|
||||||
return &textUnmarshalerDecoder{
|
|
||||||
valType: typ,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return &lazyErrorDecoder{err: fmt.Errorf("unsupported map key type: %v", typ)}
|
return &lazyErrorDecoder{err: fmt.Errorf("unsupported map key type: %v", typ)}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -103,6 +105,19 @@ func encoderOfMapKey(ctx *ctx, typ reflect2.Type) ValEncoder {
|
|||||||
return encoder
|
return encoder
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if typ == textMarshalerType {
|
||||||
|
return &directTextMarshalerEncoder{
|
||||||
|
stringEncoder: ctx.EncoderOf(reflect2.TypeOf("")),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if typ.Implements(textMarshalerType) {
|
||||||
|
return &textMarshalerEncoder{
|
||||||
|
valType: typ,
|
||||||
|
stringEncoder: ctx.EncoderOf(reflect2.TypeOf("")),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
switch typ.Kind() {
|
switch typ.Kind() {
|
||||||
case reflect.String:
|
case reflect.String:
|
||||||
return encoderOfType(ctx, reflect2.DefaultTypeOfKind(reflect.String))
|
return encoderOfType(ctx, reflect2.DefaultTypeOfKind(reflect.String))
|
||||||
@ -117,17 +132,6 @@ func encoderOfMapKey(ctx *ctx, typ reflect2.Type) ValEncoder {
|
|||||||
typ = reflect2.DefaultTypeOfKind(typ.Kind())
|
typ = reflect2.DefaultTypeOfKind(typ.Kind())
|
||||||
return &numericMapKeyEncoder{encoderOfType(ctx, typ)}
|
return &numericMapKeyEncoder{encoderOfType(ctx, typ)}
|
||||||
default:
|
default:
|
||||||
if typ == textMarshalerType {
|
|
||||||
return &directTextMarshalerEncoder{
|
|
||||||
stringEncoder: ctx.EncoderOf(reflect2.TypeOf("")),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if typ.Implements(textMarshalerType) {
|
|
||||||
return &textMarshalerEncoder{
|
|
||||||
valType: typ,
|
|
||||||
stringEncoder: ctx.EncoderOf(reflect2.TypeOf("")),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if typ.Kind() == reflect.Interface {
|
if typ.Kind() == reflect.Interface {
|
||||||
return &dynamicMapKeyEncoder{ctx, typ}
|
return &dynamicMapKeyEncoder{ctx, typ}
|
||||||
}
|
}
|
||||||
@ -163,10 +167,6 @@ func (decoder *mapDecoder) Decode(ptr unsafe.Pointer, iter *Iterator) {
|
|||||||
if c == '}' {
|
if c == '}' {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if c != '"' {
|
|
||||||
iter.ReportError("ReadMapCB", `expect " after }, but found `+string([]byte{c}))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
iter.unreadByte()
|
iter.unreadByte()
|
||||||
key := decoder.keyType.UnsafeNew()
|
key := decoder.keyType.UnsafeNew()
|
||||||
decoder.keyDecoder.Decode(key, iter)
|
decoder.keyDecoder.Decode(key, iter)
|
||||||
|
|||||||
4
vendor/github.com/json-iterator/go/reflect_optional.go
generated
vendored
4
vendor/github.com/json-iterator/go/reflect_optional.go
generated
vendored
@ -2,7 +2,6 @@ package jsoniter
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/modern-go/reflect2"
|
"github.com/modern-go/reflect2"
|
||||||
"reflect"
|
|
||||||
"unsafe"
|
"unsafe"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -10,9 +9,6 @@ func decoderOfOptional(ctx *ctx, typ reflect2.Type) ValDecoder {
|
|||||||
ptrType := typ.(*reflect2.UnsafePtrType)
|
ptrType := typ.(*reflect2.UnsafePtrType)
|
||||||
elemType := ptrType.Elem()
|
elemType := ptrType.Elem()
|
||||||
decoder := decoderOfType(ctx, elemType)
|
decoder := decoderOfType(ctx, elemType)
|
||||||
if ctx.prefix == "" && elemType.Kind() == reflect.Ptr {
|
|
||||||
return &dereferenceDecoder{elemType, decoder}
|
|
||||||
}
|
|
||||||
return &OptionalDecoder{elemType, decoder}
|
return &OptionalDecoder{elemType, decoder}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
22
vendor/github.com/json-iterator/go/reflect_struct_decoder.go
generated
vendored
22
vendor/github.com/json-iterator/go/reflect_struct_decoder.go
generated
vendored
@ -507,7 +507,7 @@ func (decoder *generalStructDecoder) Decode(ptr unsafe.Pointer, iter *Iterator)
|
|||||||
for c = ','; c == ','; c = iter.nextToken() {
|
for c = ','; c == ','; c = iter.nextToken() {
|
||||||
decoder.decodeOneField(ptr, iter)
|
decoder.decodeOneField(ptr, iter)
|
||||||
}
|
}
|
||||||
if iter.Error != nil && iter.Error != io.EOF {
|
if iter.Error != nil && iter.Error != io.EOF && len(decoder.typ.Type1().Name()) != 0 {
|
||||||
iter.Error = fmt.Errorf("%v.%s", decoder.typ, iter.Error.Error())
|
iter.Error = fmt.Errorf("%v.%s", decoder.typ, iter.Error.Error())
|
||||||
}
|
}
|
||||||
if c != '}' {
|
if c != '}' {
|
||||||
@ -588,7 +588,7 @@ func (decoder *oneFieldStructDecoder) Decode(ptr unsafe.Pointer, iter *Iterator)
|
|||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if iter.Error != nil && iter.Error != io.EOF {
|
if iter.Error != nil && iter.Error != io.EOF && len(decoder.typ.Type1().Name()) != 0 {
|
||||||
iter.Error = fmt.Errorf("%v.%s", decoder.typ, iter.Error.Error())
|
iter.Error = fmt.Errorf("%v.%s", decoder.typ, iter.Error.Error())
|
||||||
}
|
}
|
||||||
iter.decrementDepth()
|
iter.decrementDepth()
|
||||||
@ -622,7 +622,7 @@ func (decoder *twoFieldsStructDecoder) Decode(ptr unsafe.Pointer, iter *Iterator
|
|||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if iter.Error != nil && iter.Error != io.EOF {
|
if iter.Error != nil && iter.Error != io.EOF && len(decoder.typ.Type1().Name()) != 0 {
|
||||||
iter.Error = fmt.Errorf("%v.%s", decoder.typ, iter.Error.Error())
|
iter.Error = fmt.Errorf("%v.%s", decoder.typ, iter.Error.Error())
|
||||||
}
|
}
|
||||||
iter.decrementDepth()
|
iter.decrementDepth()
|
||||||
@ -660,7 +660,7 @@ func (decoder *threeFieldsStructDecoder) Decode(ptr unsafe.Pointer, iter *Iterat
|
|||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if iter.Error != nil && iter.Error != io.EOF {
|
if iter.Error != nil && iter.Error != io.EOF && len(decoder.typ.Type1().Name()) != 0 {
|
||||||
iter.Error = fmt.Errorf("%v.%s", decoder.typ, iter.Error.Error())
|
iter.Error = fmt.Errorf("%v.%s", decoder.typ, iter.Error.Error())
|
||||||
}
|
}
|
||||||
iter.decrementDepth()
|
iter.decrementDepth()
|
||||||
@ -702,7 +702,7 @@ func (decoder *fourFieldsStructDecoder) Decode(ptr unsafe.Pointer, iter *Iterato
|
|||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if iter.Error != nil && iter.Error != io.EOF {
|
if iter.Error != nil && iter.Error != io.EOF && len(decoder.typ.Type1().Name()) != 0 {
|
||||||
iter.Error = fmt.Errorf("%v.%s", decoder.typ, iter.Error.Error())
|
iter.Error = fmt.Errorf("%v.%s", decoder.typ, iter.Error.Error())
|
||||||
}
|
}
|
||||||
iter.decrementDepth()
|
iter.decrementDepth()
|
||||||
@ -748,7 +748,7 @@ func (decoder *fiveFieldsStructDecoder) Decode(ptr unsafe.Pointer, iter *Iterato
|
|||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if iter.Error != nil && iter.Error != io.EOF {
|
if iter.Error != nil && iter.Error != io.EOF && len(decoder.typ.Type1().Name()) != 0 {
|
||||||
iter.Error = fmt.Errorf("%v.%s", decoder.typ, iter.Error.Error())
|
iter.Error = fmt.Errorf("%v.%s", decoder.typ, iter.Error.Error())
|
||||||
}
|
}
|
||||||
iter.decrementDepth()
|
iter.decrementDepth()
|
||||||
@ -798,7 +798,7 @@ func (decoder *sixFieldsStructDecoder) Decode(ptr unsafe.Pointer, iter *Iterator
|
|||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if iter.Error != nil && iter.Error != io.EOF {
|
if iter.Error != nil && iter.Error != io.EOF && len(decoder.typ.Type1().Name()) != 0 {
|
||||||
iter.Error = fmt.Errorf("%v.%s", decoder.typ, iter.Error.Error())
|
iter.Error = fmt.Errorf("%v.%s", decoder.typ, iter.Error.Error())
|
||||||
}
|
}
|
||||||
iter.decrementDepth()
|
iter.decrementDepth()
|
||||||
@ -852,7 +852,7 @@ func (decoder *sevenFieldsStructDecoder) Decode(ptr unsafe.Pointer, iter *Iterat
|
|||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if iter.Error != nil && iter.Error != io.EOF {
|
if iter.Error != nil && iter.Error != io.EOF && len(decoder.typ.Type1().Name()) != 0 {
|
||||||
iter.Error = fmt.Errorf("%v.%s", decoder.typ, iter.Error.Error())
|
iter.Error = fmt.Errorf("%v.%s", decoder.typ, iter.Error.Error())
|
||||||
}
|
}
|
||||||
iter.decrementDepth()
|
iter.decrementDepth()
|
||||||
@ -910,7 +910,7 @@ func (decoder *eightFieldsStructDecoder) Decode(ptr unsafe.Pointer, iter *Iterat
|
|||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if iter.Error != nil && iter.Error != io.EOF {
|
if iter.Error != nil && iter.Error != io.EOF && len(decoder.typ.Type1().Name()) != 0 {
|
||||||
iter.Error = fmt.Errorf("%v.%s", decoder.typ, iter.Error.Error())
|
iter.Error = fmt.Errorf("%v.%s", decoder.typ, iter.Error.Error())
|
||||||
}
|
}
|
||||||
iter.decrementDepth()
|
iter.decrementDepth()
|
||||||
@ -972,7 +972,7 @@ func (decoder *nineFieldsStructDecoder) Decode(ptr unsafe.Pointer, iter *Iterato
|
|||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if iter.Error != nil && iter.Error != io.EOF {
|
if iter.Error != nil && iter.Error != io.EOF && len(decoder.typ.Type1().Name()) != 0 {
|
||||||
iter.Error = fmt.Errorf("%v.%s", decoder.typ, iter.Error.Error())
|
iter.Error = fmt.Errorf("%v.%s", decoder.typ, iter.Error.Error())
|
||||||
}
|
}
|
||||||
iter.decrementDepth()
|
iter.decrementDepth()
|
||||||
@ -1038,7 +1038,7 @@ func (decoder *tenFieldsStructDecoder) Decode(ptr unsafe.Pointer, iter *Iterator
|
|||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if iter.Error != nil && iter.Error != io.EOF {
|
if iter.Error != nil && iter.Error != io.EOF && len(decoder.typ.Type1().Name()) != 0 {
|
||||||
iter.Error = fmt.Errorf("%v.%s", decoder.typ, iter.Error.Error())
|
iter.Error = fmt.Errorf("%v.%s", decoder.typ, iter.Error.Error())
|
||||||
}
|
}
|
||||||
iter.decrementDepth()
|
iter.decrementDepth()
|
||||||
|
|||||||
5
vendor/github.com/json-iterator/go/stream.go
generated
vendored
5
vendor/github.com/json-iterator/go/stream.go
generated
vendored
@ -103,14 +103,14 @@ func (stream *Stream) Flush() error {
|
|||||||
if stream.Error != nil {
|
if stream.Error != nil {
|
||||||
return stream.Error
|
return stream.Error
|
||||||
}
|
}
|
||||||
n, err := stream.out.Write(stream.buf)
|
_, err := stream.out.Write(stream.buf)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if stream.Error == nil {
|
if stream.Error == nil {
|
||||||
stream.Error = err
|
stream.Error = err
|
||||||
}
|
}
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
stream.buf = stream.buf[n:]
|
stream.buf = stream.buf[:0]
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -177,7 +177,6 @@ func (stream *Stream) WriteEmptyObject() {
|
|||||||
func (stream *Stream) WriteMore() {
|
func (stream *Stream) WriteMore() {
|
||||||
stream.writeByte(',')
|
stream.writeByte(',')
|
||||||
stream.writeIndention(0)
|
stream.writeIndention(0)
|
||||||
stream.Flush()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// WriteArrayStart write [ with possible indention
|
// WriteArrayStart write [ with possible indention
|
||||||
|
|||||||
11
vendor/github.com/pkg/errors/.travis.yml
generated
vendored
11
vendor/github.com/pkg/errors/.travis.yml
generated
vendored
@ -1,15 +1,10 @@
|
|||||||
language: go
|
language: go
|
||||||
go_import_path: github.com/pkg/errors
|
go_import_path: github.com/pkg/errors
|
||||||
go:
|
go:
|
||||||
- 1.4.x
|
|
||||||
- 1.5.x
|
|
||||||
- 1.6.x
|
|
||||||
- 1.7.x
|
|
||||||
- 1.8.x
|
|
||||||
- 1.9.x
|
|
||||||
- 1.10.x
|
|
||||||
- 1.11.x
|
- 1.11.x
|
||||||
|
- 1.12.x
|
||||||
|
- 1.13.x
|
||||||
- tip
|
- tip
|
||||||
|
|
||||||
script:
|
script:
|
||||||
- go test -v ./...
|
- make check
|
||||||
|
|||||||
44
vendor/github.com/pkg/errors/Makefile
generated
vendored
Normal file
44
vendor/github.com/pkg/errors/Makefile
generated
vendored
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
PKGS := github.com/pkg/errors
|
||||||
|
SRCDIRS := $(shell go list -f '{{.Dir}}' $(PKGS))
|
||||||
|
GO := go
|
||||||
|
|
||||||
|
check: test vet gofmt misspell unconvert staticcheck ineffassign unparam
|
||||||
|
|
||||||
|
test:
|
||||||
|
$(GO) test $(PKGS)
|
||||||
|
|
||||||
|
vet: | test
|
||||||
|
$(GO) vet $(PKGS)
|
||||||
|
|
||||||
|
staticcheck:
|
||||||
|
$(GO) get honnef.co/go/tools/cmd/staticcheck
|
||||||
|
staticcheck -checks all $(PKGS)
|
||||||
|
|
||||||
|
misspell:
|
||||||
|
$(GO) get github.com/client9/misspell/cmd/misspell
|
||||||
|
misspell \
|
||||||
|
-locale GB \
|
||||||
|
-error \
|
||||||
|
*.md *.go
|
||||||
|
|
||||||
|
unconvert:
|
||||||
|
$(GO) get github.com/mdempsky/unconvert
|
||||||
|
unconvert -v $(PKGS)
|
||||||
|
|
||||||
|
ineffassign:
|
||||||
|
$(GO) get github.com/gordonklaus/ineffassign
|
||||||
|
find $(SRCDIRS) -name '*.go' | xargs ineffassign
|
||||||
|
|
||||||
|
pedantic: check errcheck
|
||||||
|
|
||||||
|
unparam:
|
||||||
|
$(GO) get mvdan.cc/unparam
|
||||||
|
unparam ./...
|
||||||
|
|
||||||
|
errcheck:
|
||||||
|
$(GO) get github.com/kisielk/errcheck
|
||||||
|
errcheck $(PKGS)
|
||||||
|
|
||||||
|
gofmt:
|
||||||
|
@echo Checking code is gofmted
|
||||||
|
@test -z "$(shell gofmt -s -l -d -e $(SRCDIRS) | tee /dev/stderr)"
|
||||||
11
vendor/github.com/pkg/errors/README.md
generated
vendored
11
vendor/github.com/pkg/errors/README.md
generated
vendored
@ -41,11 +41,18 @@ default:
|
|||||||
|
|
||||||
[Read the package documentation for more information](https://godoc.org/github.com/pkg/errors).
|
[Read the package documentation for more information](https://godoc.org/github.com/pkg/errors).
|
||||||
|
|
||||||
|
## Roadmap
|
||||||
|
|
||||||
|
With the upcoming [Go2 error proposals](https://go.googlesource.com/proposal/+/master/design/go2draft.md) this package is moving into maintenance mode. The roadmap for a 1.0 release is as follows:
|
||||||
|
|
||||||
|
- 0.9. Remove pre Go 1.9 and Go 1.10 support, address outstanding pull requests (if possible)
|
||||||
|
- 1.0. Final release.
|
||||||
|
|
||||||
## Contributing
|
## Contributing
|
||||||
|
|
||||||
We welcome pull requests, bug fixes and issue reports. With that said, the bar for adding new symbols to this package is intentionally set high.
|
Because of the Go2 errors changes, this package is not accepting proposals for new functionality. With that said, we welcome pull requests, bug fixes and issue reports.
|
||||||
|
|
||||||
Before proposing a change, please discuss your change by raising an issue.
|
Before sending a PR, please discuss your change by raising an issue.
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
|
|||||||
8
vendor/github.com/pkg/errors/errors.go
generated
vendored
8
vendor/github.com/pkg/errors/errors.go
generated
vendored
@ -82,7 +82,7 @@
|
|||||||
//
|
//
|
||||||
// if err, ok := err.(stackTracer); ok {
|
// if err, ok := err.(stackTracer); ok {
|
||||||
// for _, f := range err.StackTrace() {
|
// for _, f := range err.StackTrace() {
|
||||||
// fmt.Printf("%+s:%d", f)
|
// fmt.Printf("%+s:%d\n", f, f)
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
//
|
//
|
||||||
@ -159,6 +159,9 @@ type withStack struct {
|
|||||||
|
|
||||||
func (w *withStack) Cause() error { return w.error }
|
func (w *withStack) Cause() error { return w.error }
|
||||||
|
|
||||||
|
// Unwrap provides compatibility for Go 1.13 error chains.
|
||||||
|
func (w *withStack) Unwrap() error { return w.error }
|
||||||
|
|
||||||
func (w *withStack) Format(s fmt.State, verb rune) {
|
func (w *withStack) Format(s fmt.State, verb rune) {
|
||||||
switch verb {
|
switch verb {
|
||||||
case 'v':
|
case 'v':
|
||||||
@ -241,6 +244,9 @@ type withMessage struct {
|
|||||||
func (w *withMessage) Error() string { return w.msg + ": " + w.cause.Error() }
|
func (w *withMessage) Error() string { return w.msg + ": " + w.cause.Error() }
|
||||||
func (w *withMessage) Cause() error { return w.cause }
|
func (w *withMessage) Cause() error { return w.cause }
|
||||||
|
|
||||||
|
// Unwrap provides compatibility for Go 1.13 error chains.
|
||||||
|
func (w *withMessage) Unwrap() error { return w.cause }
|
||||||
|
|
||||||
func (w *withMessage) Format(s fmt.State, verb rune) {
|
func (w *withMessage) Format(s fmt.State, verb rune) {
|
||||||
switch verb {
|
switch verb {
|
||||||
case 'v':
|
case 'v':
|
||||||
|
|||||||
38
vendor/github.com/pkg/errors/go113.go
generated
vendored
Normal file
38
vendor/github.com/pkg/errors/go113.go
generated
vendored
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
// +build go1.13
|
||||||
|
|
||||||
|
package errors
|
||||||
|
|
||||||
|
import (
|
||||||
|
stderrors "errors"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Is reports whether any error in err's chain matches target.
|
||||||
|
//
|
||||||
|
// The chain consists of err itself followed by the sequence of errors obtained by
|
||||||
|
// repeatedly calling Unwrap.
|
||||||
|
//
|
||||||
|
// An error is considered to match a target if it is equal to that target or if
|
||||||
|
// it implements a method Is(error) bool such that Is(target) returns true.
|
||||||
|
func Is(err, target error) bool { return stderrors.Is(err, target) }
|
||||||
|
|
||||||
|
// As finds the first error in err's chain that matches target, and if so, sets
|
||||||
|
// target to that error value and returns true.
|
||||||
|
//
|
||||||
|
// The chain consists of err itself followed by the sequence of errors obtained by
|
||||||
|
// repeatedly calling Unwrap.
|
||||||
|
//
|
||||||
|
// An error matches target if the error's concrete value is assignable to the value
|
||||||
|
// pointed to by target, or if the error has a method As(interface{}) bool such that
|
||||||
|
// As(target) returns true. In the latter case, the As method is responsible for
|
||||||
|
// setting target.
|
||||||
|
//
|
||||||
|
// As will panic if target is not a non-nil pointer to either a type that implements
|
||||||
|
// error, or to any interface type. As returns false if err is nil.
|
||||||
|
func As(err error, target interface{}) bool { return stderrors.As(err, target) }
|
||||||
|
|
||||||
|
// Unwrap returns the result of calling the Unwrap method on err, if err's
|
||||||
|
// type contains an Unwrap method returning error.
|
||||||
|
// Otherwise, Unwrap returns nil.
|
||||||
|
func Unwrap(err error) error {
|
||||||
|
return stderrors.Unwrap(err)
|
||||||
|
}
|
||||||
58
vendor/github.com/pkg/errors/stack.go
generated
vendored
58
vendor/github.com/pkg/errors/stack.go
generated
vendored
@ -5,10 +5,13 @@ import (
|
|||||||
"io"
|
"io"
|
||||||
"path"
|
"path"
|
||||||
"runtime"
|
"runtime"
|
||||||
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Frame represents a program counter inside a stack frame.
|
// Frame represents a program counter inside a stack frame.
|
||||||
|
// For historical reasons if Frame is interpreted as a uintptr
|
||||||
|
// its value represents the program counter + 1.
|
||||||
type Frame uintptr
|
type Frame uintptr
|
||||||
|
|
||||||
// pc returns the program counter for this frame;
|
// pc returns the program counter for this frame;
|
||||||
@ -37,6 +40,15 @@ func (f Frame) line() int {
|
|||||||
return line
|
return line
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// name returns the name of this function, if known.
|
||||||
|
func (f Frame) name() string {
|
||||||
|
fn := runtime.FuncForPC(f.pc())
|
||||||
|
if fn == nil {
|
||||||
|
return "unknown"
|
||||||
|
}
|
||||||
|
return fn.Name()
|
||||||
|
}
|
||||||
|
|
||||||
// Format formats the frame according to the fmt.Formatter interface.
|
// Format formats the frame according to the fmt.Formatter interface.
|
||||||
//
|
//
|
||||||
// %s source file
|
// %s source file
|
||||||
@ -54,22 +66,16 @@ func (f Frame) Format(s fmt.State, verb rune) {
|
|||||||
case 's':
|
case 's':
|
||||||
switch {
|
switch {
|
||||||
case s.Flag('+'):
|
case s.Flag('+'):
|
||||||
pc := f.pc()
|
io.WriteString(s, f.name())
|
||||||
fn := runtime.FuncForPC(pc)
|
io.WriteString(s, "\n\t")
|
||||||
if fn == nil {
|
io.WriteString(s, f.file())
|
||||||
io.WriteString(s, "unknown")
|
|
||||||
} else {
|
|
||||||
file, _ := fn.FileLine(pc)
|
|
||||||
fmt.Fprintf(s, "%s\n\t%s", fn.Name(), file)
|
|
||||||
}
|
|
||||||
default:
|
default:
|
||||||
io.WriteString(s, path.Base(f.file()))
|
io.WriteString(s, path.Base(f.file()))
|
||||||
}
|
}
|
||||||
case 'd':
|
case 'd':
|
||||||
fmt.Fprintf(s, "%d", f.line())
|
io.WriteString(s, strconv.Itoa(f.line()))
|
||||||
case 'n':
|
case 'n':
|
||||||
name := runtime.FuncForPC(f.pc()).Name()
|
io.WriteString(s, funcname(f.name()))
|
||||||
io.WriteString(s, funcname(name))
|
|
||||||
case 'v':
|
case 'v':
|
||||||
f.Format(s, 's')
|
f.Format(s, 's')
|
||||||
io.WriteString(s, ":")
|
io.WriteString(s, ":")
|
||||||
@ -77,6 +83,16 @@ func (f Frame) Format(s fmt.State, verb rune) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// MarshalText formats a stacktrace Frame as a text string. The output is the
|
||||||
|
// same as that of fmt.Sprintf("%+v", f), but without newlines or tabs.
|
||||||
|
func (f Frame) MarshalText() ([]byte, error) {
|
||||||
|
name := f.name()
|
||||||
|
if name == "unknown" {
|
||||||
|
return []byte(name), nil
|
||||||
|
}
|
||||||
|
return []byte(fmt.Sprintf("%s %s:%d", name, f.file(), f.line())), nil
|
||||||
|
}
|
||||||
|
|
||||||
// StackTrace is stack of Frames from innermost (newest) to outermost (oldest).
|
// StackTrace is stack of Frames from innermost (newest) to outermost (oldest).
|
||||||
type StackTrace []Frame
|
type StackTrace []Frame
|
||||||
|
|
||||||
@ -94,18 +110,32 @@ func (st StackTrace) Format(s fmt.State, verb rune) {
|
|||||||
switch {
|
switch {
|
||||||
case s.Flag('+'):
|
case s.Flag('+'):
|
||||||
for _, f := range st {
|
for _, f := range st {
|
||||||
fmt.Fprintf(s, "\n%+v", f)
|
io.WriteString(s, "\n")
|
||||||
|
f.Format(s, verb)
|
||||||
}
|
}
|
||||||
case s.Flag('#'):
|
case s.Flag('#'):
|
||||||
fmt.Fprintf(s, "%#v", []Frame(st))
|
fmt.Fprintf(s, "%#v", []Frame(st))
|
||||||
default:
|
default:
|
||||||
fmt.Fprintf(s, "%v", []Frame(st))
|
st.formatSlice(s, verb)
|
||||||
}
|
}
|
||||||
case 's':
|
case 's':
|
||||||
fmt.Fprintf(s, "%s", []Frame(st))
|
st.formatSlice(s, verb)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// formatSlice will format this StackTrace into the given buffer as a slice of
|
||||||
|
// Frame, only valid when called with '%s' or '%v'.
|
||||||
|
func (st StackTrace) formatSlice(s fmt.State, verb rune) {
|
||||||
|
io.WriteString(s, "[")
|
||||||
|
for i, f := range st {
|
||||||
|
if i > 0 {
|
||||||
|
io.WriteString(s, " ")
|
||||||
|
}
|
||||||
|
f.Format(s, verb)
|
||||||
|
}
|
||||||
|
io.WriteString(s, "]")
|
||||||
|
}
|
||||||
|
|
||||||
// stack represents a stack of program counters.
|
// stack represents a stack of program counters.
|
||||||
type stack []uintptr
|
type stack []uintptr
|
||||||
|
|
||||||
|
|||||||
2
vendor/github.com/prometheus/client_golang/prometheus/counter.go
generated
vendored
2
vendor/github.com/prometheus/client_golang/prometheus/counter.go
generated
vendored
@ -309,6 +309,8 @@ type CounterFunc interface {
|
|||||||
// provided function must be concurrency-safe. The function should also honor
|
// provided function must be concurrency-safe. The function should also honor
|
||||||
// the contract for a Counter (values only go up, not down), but compliance will
|
// the contract for a Counter (values only go up, not down), but compliance will
|
||||||
// not be checked.
|
// not be checked.
|
||||||
|
//
|
||||||
|
// Check out the ExampleGaugeFunc examples for the similar GaugeFunc.
|
||||||
func NewCounterFunc(opts CounterOpts, function func() float64) CounterFunc {
|
func NewCounterFunc(opts CounterOpts, function func() float64) CounterFunc {
|
||||||
return newValueFunc(NewDesc(
|
return newValueFunc(NewDesc(
|
||||||
BuildFQName(opts.Namespace, opts.Subsystem, opts.Name),
|
BuildFQName(opts.Namespace, opts.Subsystem, opts.Name),
|
||||||
|
|||||||
1
vendor/github.com/prometheus/client_golang/prometheus/desc.go
generated
vendored
1
vendor/github.com/prometheus/client_golang/prometheus/desc.go
generated
vendored
@ -20,6 +20,7 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/cespare/xxhash/v2"
|
"github.com/cespare/xxhash/v2"
|
||||||
|
//lint:ignore SA1019 Need to keep deprecated package for compatibility.
|
||||||
"github.com/golang/protobuf/proto"
|
"github.com/golang/protobuf/proto"
|
||||||
"github.com/prometheus/common/model"
|
"github.com/prometheus/common/model"
|
||||||
|
|
||||||
|
|||||||
3
vendor/github.com/prometheus/client_golang/prometheus/histogram.go
generated
vendored
3
vendor/github.com/prometheus/client_golang/prometheus/histogram.go
generated
vendored
@ -22,6 +22,7 @@ import (
|
|||||||
"sync/atomic"
|
"sync/atomic"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
//lint:ignore SA1019 Need to keep deprecated package for compatibility.
|
||||||
"github.com/golang/protobuf/proto"
|
"github.com/golang/protobuf/proto"
|
||||||
|
|
||||||
dto "github.com/prometheus/client_model/go"
|
dto "github.com/prometheus/client_model/go"
|
||||||
@ -606,7 +607,7 @@ func NewConstHistogram(
|
|||||||
}
|
}
|
||||||
|
|
||||||
// MustNewConstHistogram is a version of NewConstHistogram that panics where
|
// MustNewConstHistogram is a version of NewConstHistogram that panics where
|
||||||
// NewConstMetric would have returned an error.
|
// NewConstHistogram would have returned an error.
|
||||||
func MustNewConstHistogram(
|
func MustNewConstHistogram(
|
||||||
desc *Desc,
|
desc *Desc,
|
||||||
count uint64,
|
count uint64,
|
||||||
|
|||||||
1
vendor/github.com/prometheus/client_golang/prometheus/metric.go
generated
vendored
1
vendor/github.com/prometheus/client_golang/prometheus/metric.go
generated
vendored
@ -17,6 +17,7 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
//lint:ignore SA1019 Need to keep deprecated package for compatibility.
|
||||||
"github.com/golang/protobuf/proto"
|
"github.com/golang/protobuf/proto"
|
||||||
"github.com/prometheus/common/model"
|
"github.com/prometheus/common/model"
|
||||||
|
|
||||||
|
|||||||
24
vendor/github.com/prometheus/client_golang/prometheus/process_collector_windows.go
generated
vendored
24
vendor/github.com/prometheus/client_golang/prometheus/process_collector_windows.go
generated
vendored
@ -33,18 +33,22 @@ var (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type processMemoryCounters struct {
|
type processMemoryCounters struct {
|
||||||
// https://docs.microsoft.com/en-us/windows/desktop/api/psapi/ns-psapi-_process_memory_counters_ex
|
// System interface description
|
||||||
|
// https://docs.microsoft.com/en-us/windows/desktop/api/psapi/ns-psapi-process_memory_counters_ex
|
||||||
|
|
||||||
|
// Refer to the Golang internal implementation
|
||||||
|
// https://golang.org/src/internal/syscall/windows/psapi_windows.go
|
||||||
_ uint32
|
_ uint32
|
||||||
PageFaultCount uint32
|
PageFaultCount uint32
|
||||||
PeakWorkingSetSize uint64
|
PeakWorkingSetSize uintptr
|
||||||
WorkingSetSize uint64
|
WorkingSetSize uintptr
|
||||||
QuotaPeakPagedPoolUsage uint64
|
QuotaPeakPagedPoolUsage uintptr
|
||||||
QuotaPagedPoolUsage uint64
|
QuotaPagedPoolUsage uintptr
|
||||||
QuotaPeakNonPagedPoolUsage uint64
|
QuotaPeakNonPagedPoolUsage uintptr
|
||||||
QuotaNonPagedPoolUsage uint64
|
QuotaNonPagedPoolUsage uintptr
|
||||||
PagefileUsage uint64
|
PagefileUsage uintptr
|
||||||
PeakPagefileUsage uint64
|
PeakPagefileUsage uintptr
|
||||||
PrivateUsage uint64
|
PrivateUsage uintptr
|
||||||
}
|
}
|
||||||
|
|
||||||
func getProcessMemoryInfo(handle windows.Handle) (processMemoryCounters, error) {
|
func getProcessMemoryInfo(handle windows.Handle) (processMemoryCounters, error) {
|
||||||
|
|||||||
1
vendor/github.com/prometheus/client_golang/prometheus/registry.go
generated
vendored
1
vendor/github.com/prometheus/client_golang/prometheus/registry.go
generated
vendored
@ -26,6 +26,7 @@ import (
|
|||||||
"unicode/utf8"
|
"unicode/utf8"
|
||||||
|
|
||||||
"github.com/cespare/xxhash/v2"
|
"github.com/cespare/xxhash/v2"
|
||||||
|
//lint:ignore SA1019 Need to keep deprecated package for compatibility.
|
||||||
"github.com/golang/protobuf/proto"
|
"github.com/golang/protobuf/proto"
|
||||||
"github.com/prometheus/common/expfmt"
|
"github.com/prometheus/common/expfmt"
|
||||||
|
|
||||||
|
|||||||
1
vendor/github.com/prometheus/client_golang/prometheus/summary.go
generated
vendored
1
vendor/github.com/prometheus/client_golang/prometheus/summary.go
generated
vendored
@ -23,6 +23,7 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/beorn7/perks/quantile"
|
"github.com/beorn7/perks/quantile"
|
||||||
|
//lint:ignore SA1019 Need to keep deprecated package for compatibility.
|
||||||
"github.com/golang/protobuf/proto"
|
"github.com/golang/protobuf/proto"
|
||||||
|
|
||||||
dto "github.com/prometheus/client_model/go"
|
dto "github.com/prometheus/client_model/go"
|
||||||
|
|||||||
46
vendor/github.com/prometheus/client_golang/prometheus/testutil/lint.go
generated
vendored
Normal file
46
vendor/github.com/prometheus/client_golang/prometheus/testutil/lint.go
generated
vendored
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
// Copyright 2020 The Prometheus Authors
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
package testutil
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
|
||||||
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
|
"github.com/prometheus/client_golang/prometheus/testutil/promlint"
|
||||||
|
)
|
||||||
|
|
||||||
|
// CollectAndLint registers the provided Collector with a newly created pedantic
|
||||||
|
// Registry. It then calls GatherAndLint with that Registry and with the
|
||||||
|
// provided metricNames.
|
||||||
|
func CollectAndLint(c prometheus.Collector, metricNames ...string) ([]promlint.Problem, error) {
|
||||||
|
reg := prometheus.NewPedanticRegistry()
|
||||||
|
if err := reg.Register(c); err != nil {
|
||||||
|
return nil, fmt.Errorf("registering collector failed: %s", err)
|
||||||
|
}
|
||||||
|
return GatherAndLint(reg, metricNames...)
|
||||||
|
}
|
||||||
|
|
||||||
|
// GatherAndLint gathers all metrics from the provided Gatherer and checks them
|
||||||
|
// with the linter in the promlint package. If any metricNames are provided,
|
||||||
|
// only metrics with those names are checked.
|
||||||
|
func GatherAndLint(g prometheus.Gatherer, metricNames ...string) ([]promlint.Problem, error) {
|
||||||
|
got, err := g.Gather()
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("gathering metrics failed: %s", err)
|
||||||
|
}
|
||||||
|
if metricNames != nil {
|
||||||
|
got = filterMetrics(got, metricNames)
|
||||||
|
}
|
||||||
|
return promlint.NewWithMetricFamilies(got).Lint()
|
||||||
|
}
|
||||||
386
vendor/github.com/prometheus/client_golang/prometheus/testutil/promlint/promlint.go
generated
vendored
Normal file
386
vendor/github.com/prometheus/client_golang/prometheus/testutil/promlint/promlint.go
generated
vendored
Normal file
@ -0,0 +1,386 @@
|
|||||||
|
// Copyright 2020 The Prometheus Authors
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
// Package promlint provides a linter for Prometheus metrics.
|
||||||
|
package promlint
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"io"
|
||||||
|
"regexp"
|
||||||
|
"sort"
|
||||||
|
"strings"
|
||||||
|
|
||||||
|
"github.com/prometheus/common/expfmt"
|
||||||
|
|
||||||
|
dto "github.com/prometheus/client_model/go"
|
||||||
|
)
|
||||||
|
|
||||||
|
// A Linter is a Prometheus metrics linter. It identifies issues with metric
|
||||||
|
// names, types, and metadata, and reports them to the caller.
|
||||||
|
type Linter struct {
|
||||||
|
// The linter will read metrics in the Prometheus text format from r and
|
||||||
|
// then lint it, _and_ it will lint the metrics provided directly as
|
||||||
|
// MetricFamily proto messages in mfs. Note, however, that the current
|
||||||
|
// constructor functions New and NewWithMetricFamilies only ever set one
|
||||||
|
// of them.
|
||||||
|
r io.Reader
|
||||||
|
mfs []*dto.MetricFamily
|
||||||
|
}
|
||||||
|
|
||||||
|
// A Problem is an issue detected by a Linter.
|
||||||
|
type Problem struct {
|
||||||
|
// The name of the metric indicated by this Problem.
|
||||||
|
Metric string
|
||||||
|
|
||||||
|
// A description of the issue for this Problem.
|
||||||
|
Text string
|
||||||
|
}
|
||||||
|
|
||||||
|
// newProblem is helper function to create a Problem.
|
||||||
|
func newProblem(mf *dto.MetricFamily, text string) Problem {
|
||||||
|
return Problem{
|
||||||
|
Metric: mf.GetName(),
|
||||||
|
Text: text,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// New creates a new Linter that reads an input stream of Prometheus metrics in
|
||||||
|
// the Prometheus text exposition format.
|
||||||
|
func New(r io.Reader) *Linter {
|
||||||
|
return &Linter{
|
||||||
|
r: r,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewWithMetricFamilies creates a new Linter that reads from a slice of
|
||||||
|
// MetricFamily protobuf messages.
|
||||||
|
func NewWithMetricFamilies(mfs []*dto.MetricFamily) *Linter {
|
||||||
|
return &Linter{
|
||||||
|
mfs: mfs,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Lint performs a linting pass, returning a slice of Problems indicating any
|
||||||
|
// issues found in the metrics stream. The slice is sorted by metric name
|
||||||
|
// and issue description.
|
||||||
|
func (l *Linter) Lint() ([]Problem, error) {
|
||||||
|
var problems []Problem
|
||||||
|
|
||||||
|
if l.r != nil {
|
||||||
|
d := expfmt.NewDecoder(l.r, expfmt.FmtText)
|
||||||
|
|
||||||
|
mf := &dto.MetricFamily{}
|
||||||
|
for {
|
||||||
|
if err := d.Decode(mf); err != nil {
|
||||||
|
if err == io.EOF {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
problems = append(problems, lint(mf)...)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for _, mf := range l.mfs {
|
||||||
|
problems = append(problems, lint(mf)...)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Ensure deterministic output.
|
||||||
|
sort.SliceStable(problems, func(i, j int) bool {
|
||||||
|
if problems[i].Metric == problems[j].Metric {
|
||||||
|
return problems[i].Text < problems[j].Text
|
||||||
|
}
|
||||||
|
return problems[i].Metric < problems[j].Metric
|
||||||
|
})
|
||||||
|
|
||||||
|
return problems, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// lint is the entry point for linting a single metric.
|
||||||
|
func lint(mf *dto.MetricFamily) []Problem {
|
||||||
|
fns := []func(mf *dto.MetricFamily) []Problem{
|
||||||
|
lintHelp,
|
||||||
|
lintMetricUnits,
|
||||||
|
lintCounter,
|
||||||
|
lintHistogramSummaryReserved,
|
||||||
|
lintMetricTypeInName,
|
||||||
|
lintReservedChars,
|
||||||
|
lintCamelCase,
|
||||||
|
lintUnitAbbreviations,
|
||||||
|
}
|
||||||
|
|
||||||
|
var problems []Problem
|
||||||
|
for _, fn := range fns {
|
||||||
|
problems = append(problems, fn(mf)...)
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO(mdlayher): lint rules for specific metrics types.
|
||||||
|
return problems
|
||||||
|
}
|
||||||
|
|
||||||
|
// lintHelp detects issues related to the help text for a metric.
|
||||||
|
func lintHelp(mf *dto.MetricFamily) []Problem {
|
||||||
|
var problems []Problem
|
||||||
|
|
||||||
|
// Expect all metrics to have help text available.
|
||||||
|
if mf.Help == nil {
|
||||||
|
problems = append(problems, newProblem(mf, "no help text"))
|
||||||
|
}
|
||||||
|
|
||||||
|
return problems
|
||||||
|
}
|
||||||
|
|
||||||
|
// lintMetricUnits detects issues with metric unit names.
|
||||||
|
func lintMetricUnits(mf *dto.MetricFamily) []Problem {
|
||||||
|
var problems []Problem
|
||||||
|
|
||||||
|
unit, base, ok := metricUnits(*mf.Name)
|
||||||
|
if !ok {
|
||||||
|
// No known units detected.
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Unit is already a base unit.
|
||||||
|
if unit == base {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
problems = append(problems, newProblem(mf, fmt.Sprintf("use base unit %q instead of %q", base, unit)))
|
||||||
|
|
||||||
|
return problems
|
||||||
|
}
|
||||||
|
|
||||||
|
// lintCounter detects issues specific to counters, as well as patterns that should
|
||||||
|
// only be used with counters.
|
||||||
|
func lintCounter(mf *dto.MetricFamily) []Problem {
|
||||||
|
var problems []Problem
|
||||||
|
|
||||||
|
isCounter := mf.GetType() == dto.MetricType_COUNTER
|
||||||
|
isUntyped := mf.GetType() == dto.MetricType_UNTYPED
|
||||||
|
hasTotalSuffix := strings.HasSuffix(mf.GetName(), "_total")
|
||||||
|
|
||||||
|
switch {
|
||||||
|
case isCounter && !hasTotalSuffix:
|
||||||
|
problems = append(problems, newProblem(mf, `counter metrics should have "_total" suffix`))
|
||||||
|
case !isUntyped && !isCounter && hasTotalSuffix:
|
||||||
|
problems = append(problems, newProblem(mf, `non-counter metrics should not have "_total" suffix`))
|
||||||
|
}
|
||||||
|
|
||||||
|
return problems
|
||||||
|
}
|
||||||
|
|
||||||
|
// lintHistogramSummaryReserved detects when other types of metrics use names or labels
|
||||||
|
// reserved for use by histograms and/or summaries.
|
||||||
|
func lintHistogramSummaryReserved(mf *dto.MetricFamily) []Problem {
|
||||||
|
// These rules do not apply to untyped metrics.
|
||||||
|
t := mf.GetType()
|
||||||
|
if t == dto.MetricType_UNTYPED {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
var problems []Problem
|
||||||
|
|
||||||
|
isHistogram := t == dto.MetricType_HISTOGRAM
|
||||||
|
isSummary := t == dto.MetricType_SUMMARY
|
||||||
|
|
||||||
|
n := mf.GetName()
|
||||||
|
|
||||||
|
if !isHistogram && strings.HasSuffix(n, "_bucket") {
|
||||||
|
problems = append(problems, newProblem(mf, `non-histogram metrics should not have "_bucket" suffix`))
|
||||||
|
}
|
||||||
|
if !isHistogram && !isSummary && strings.HasSuffix(n, "_count") {
|
||||||
|
problems = append(problems, newProblem(mf, `non-histogram and non-summary metrics should not have "_count" suffix`))
|
||||||
|
}
|
||||||
|
if !isHistogram && !isSummary && strings.HasSuffix(n, "_sum") {
|
||||||
|
problems = append(problems, newProblem(mf, `non-histogram and non-summary metrics should not have "_sum" suffix`))
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, m := range mf.GetMetric() {
|
||||||
|
for _, l := range m.GetLabel() {
|
||||||
|
ln := l.GetName()
|
||||||
|
|
||||||
|
if !isHistogram && ln == "le" {
|
||||||
|
problems = append(problems, newProblem(mf, `non-histogram metrics should not have "le" label`))
|
||||||
|
}
|
||||||
|
if !isSummary && ln == "quantile" {
|
||||||
|
problems = append(problems, newProblem(mf, `non-summary metrics should not have "quantile" label`))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return problems
|
||||||
|
}
|
||||||
|
|
||||||
|
// lintMetricTypeInName detects when metric types are included in the metric name.
|
||||||
|
func lintMetricTypeInName(mf *dto.MetricFamily) []Problem {
|
||||||
|
var problems []Problem
|
||||||
|
n := strings.ToLower(mf.GetName())
|
||||||
|
|
||||||
|
for i, t := range dto.MetricType_name {
|
||||||
|
if i == int32(dto.MetricType_UNTYPED) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
typename := strings.ToLower(t)
|
||||||
|
if strings.Contains(n, "_"+typename+"_") || strings.HasSuffix(n, "_"+typename) {
|
||||||
|
problems = append(problems, newProblem(mf, fmt.Sprintf(`metric name should not include type '%s'`, typename)))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return problems
|
||||||
|
}
|
||||||
|
|
||||||
|
// lintReservedChars detects colons in metric names.
|
||||||
|
func lintReservedChars(mf *dto.MetricFamily) []Problem {
|
||||||
|
var problems []Problem
|
||||||
|
if strings.Contains(mf.GetName(), ":") {
|
||||||
|
problems = append(problems, newProblem(mf, "metric names should not contain ':'"))
|
||||||
|
}
|
||||||
|
return problems
|
||||||
|
}
|
||||||
|
|
||||||
|
var camelCase = regexp.MustCompile(`[a-z][A-Z]`)
|
||||||
|
|
||||||
|
// lintCamelCase detects metric names and label names written in camelCase.
|
||||||
|
func lintCamelCase(mf *dto.MetricFamily) []Problem {
|
||||||
|
var problems []Problem
|
||||||
|
if camelCase.FindString(mf.GetName()) != "" {
|
||||||
|
problems = append(problems, newProblem(mf, "metric names should be written in 'snake_case' not 'camelCase'"))
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, m := range mf.GetMetric() {
|
||||||
|
for _, l := range m.GetLabel() {
|
||||||
|
if camelCase.FindString(l.GetName()) != "" {
|
||||||
|
problems = append(problems, newProblem(mf, "label names should be written in 'snake_case' not 'camelCase'"))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return problems
|
||||||
|
}
|
||||||
|
|
||||||
|
// lintUnitAbbreviations detects abbreviated units in the metric name.
|
||||||
|
func lintUnitAbbreviations(mf *dto.MetricFamily) []Problem {
|
||||||
|
var problems []Problem
|
||||||
|
n := strings.ToLower(mf.GetName())
|
||||||
|
for _, s := range unitAbbreviations {
|
||||||
|
if strings.Contains(n, "_"+s+"_") || strings.HasSuffix(n, "_"+s) {
|
||||||
|
problems = append(problems, newProblem(mf, "metric names should not contain abbreviated units"))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return problems
|
||||||
|
}
|
||||||
|
|
||||||
|
// metricUnits attempts to detect known unit types used as part of a metric name,
|
||||||
|
// e.g. "foo_bytes_total" or "bar_baz_milligrams".
|
||||||
|
func metricUnits(m string) (unit string, base string, ok bool) {
|
||||||
|
ss := strings.Split(m, "_")
|
||||||
|
|
||||||
|
for unit, base := range units {
|
||||||
|
// Also check for "no prefix".
|
||||||
|
for _, p := range append(unitPrefixes, "") {
|
||||||
|
for _, s := range ss {
|
||||||
|
// Attempt to explicitly match a known unit with a known prefix,
|
||||||
|
// as some words may look like "units" when matching suffix.
|
||||||
|
//
|
||||||
|
// As an example, "thermometers" should not match "meters", but
|
||||||
|
// "kilometers" should.
|
||||||
|
if s == p+unit {
|
||||||
|
return p + unit, base, true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return "", "", false
|
||||||
|
}
|
||||||
|
|
||||||
|
// Units and their possible prefixes recognized by this library. More can be
|
||||||
|
// added over time as needed.
|
||||||
|
var (
|
||||||
|
// map a unit to the appropriate base unit.
|
||||||
|
units = map[string]string{
|
||||||
|
// Base units.
|
||||||
|
"amperes": "amperes",
|
||||||
|
"bytes": "bytes",
|
||||||
|
"celsius": "celsius", // Also allow Celsius because it is common in typical Prometheus use cases.
|
||||||
|
"grams": "grams",
|
||||||
|
"joules": "joules",
|
||||||
|
"kelvin": "kelvin", // SI base unit, used in special cases (e.g. color temperature, scientific measurements).
|
||||||
|
"meters": "meters", // Both American and international spelling permitted.
|
||||||
|
"metres": "metres",
|
||||||
|
"seconds": "seconds",
|
||||||
|
"volts": "volts",
|
||||||
|
|
||||||
|
// Non base units.
|
||||||
|
// Time.
|
||||||
|
"minutes": "seconds",
|
||||||
|
"hours": "seconds",
|
||||||
|
"days": "seconds",
|
||||||
|
"weeks": "seconds",
|
||||||
|
// Temperature.
|
||||||
|
"kelvins": "kelvin",
|
||||||
|
"fahrenheit": "celsius",
|
||||||
|
"rankine": "celsius",
|
||||||
|
// Length.
|
||||||
|
"inches": "meters",
|
||||||
|
"yards": "meters",
|
||||||
|
"miles": "meters",
|
||||||
|
// Bytes.
|
||||||
|
"bits": "bytes",
|
||||||
|
// Energy.
|
||||||
|
"calories": "joules",
|
||||||
|
// Mass.
|
||||||
|
"pounds": "grams",
|
||||||
|
"ounces": "grams",
|
||||||
|
}
|
||||||
|
|
||||||
|
unitPrefixes = []string{
|
||||||
|
"pico",
|
||||||
|
"nano",
|
||||||
|
"micro",
|
||||||
|
"milli",
|
||||||
|
"centi",
|
||||||
|
"deci",
|
||||||
|
"deca",
|
||||||
|
"hecto",
|
||||||
|
"kilo",
|
||||||
|
"kibi",
|
||||||
|
"mega",
|
||||||
|
"mibi",
|
||||||
|
"giga",
|
||||||
|
"gibi",
|
||||||
|
"tera",
|
||||||
|
"tebi",
|
||||||
|
"peta",
|
||||||
|
"pebi",
|
||||||
|
}
|
||||||
|
|
||||||
|
// Common abbreviations that we'd like to discourage.
|
||||||
|
unitAbbreviations = []string{
|
||||||
|
"s",
|
||||||
|
"ms",
|
||||||
|
"us",
|
||||||
|
"ns",
|
||||||
|
"sec",
|
||||||
|
"b",
|
||||||
|
"kb",
|
||||||
|
"mb",
|
||||||
|
"gb",
|
||||||
|
"tb",
|
||||||
|
"pb",
|
||||||
|
"m",
|
||||||
|
"h",
|
||||||
|
"d",
|
||||||
|
}
|
||||||
|
)
|
||||||
66
vendor/github.com/prometheus/client_golang/prometheus/testutil/testutil.go
generated
vendored
66
vendor/github.com/prometheus/client_golang/prometheus/testutil/testutil.go
generated
vendored
@ -31,6 +31,10 @@
|
|||||||
// testing custom prometheus.Collector implementations and in particular whole
|
// testing custom prometheus.Collector implementations and in particular whole
|
||||||
// exporters, i.e. programs that retrieve telemetry data from a 3rd party source
|
// exporters, i.e. programs that retrieve telemetry data from a 3rd party source
|
||||||
// and convert it into Prometheus metrics.
|
// and convert it into Prometheus metrics.
|
||||||
|
//
|
||||||
|
// In a similar pattern, CollectAndLint and GatherAndLint can be used to detect
|
||||||
|
// metrics that have issues with their name, type, or metadata without being
|
||||||
|
// necessarily invalid, e.g. a counter with a name missing the “_total” suffix.
|
||||||
package testutil
|
package testutil
|
||||||
|
|
||||||
import (
|
import (
|
||||||
@ -108,36 +112,48 @@ func ToFloat64(c prometheus.Collector) float64 {
|
|||||||
panic(fmt.Errorf("collected a non-gauge/counter/untyped metric: %s", pb))
|
panic(fmt.Errorf("collected a non-gauge/counter/untyped metric: %s", pb))
|
||||||
}
|
}
|
||||||
|
|
||||||
// CollectAndCount collects all Metrics from the provided Collector and returns their number.
|
// CollectAndCount registers the provided Collector with a newly created
|
||||||
//
|
// pedantic Registry. It then calls GatherAndCount with that Registry and with
|
||||||
// This can be used to assert the number of metrics collected by a given collector after certain operations.
|
// the provided metricNames. In the unlikely case that the registration or the
|
||||||
//
|
// gathering fails, this function panics. (This is inconsistent with the other
|
||||||
// This function is only for testing purposes, and even for testing, other approaches
|
// CollectAnd… functions in this package and has historical reasons. Changing
|
||||||
// are often more appropriate (see this package's documentation).
|
// the function signature would be a breaking change and will therefore only
|
||||||
func CollectAndCount(c prometheus.Collector) int {
|
// happen with the next major version bump.)
|
||||||
var (
|
func CollectAndCount(c prometheus.Collector, metricNames ...string) int {
|
||||||
mCount int
|
reg := prometheus.NewPedanticRegistry()
|
||||||
mChan = make(chan prometheus.Metric)
|
if err := reg.Register(c); err != nil {
|
||||||
done = make(chan struct{})
|
panic(fmt.Errorf("registering collector failed: %s", err))
|
||||||
)
|
}
|
||||||
|
result, err := GatherAndCount(reg, metricNames...)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
go func() {
|
// GatherAndCount gathers all metrics from the provided Gatherer and counts
|
||||||
for range mChan {
|
// them. It returns the number of metric children in all gathered metric
|
||||||
mCount++
|
// families together. If any metricNames are provided, only metrics with those
|
||||||
}
|
// names are counted.
|
||||||
close(done)
|
func GatherAndCount(g prometheus.Gatherer, metricNames ...string) (int, error) {
|
||||||
}()
|
got, err := g.Gather()
|
||||||
|
if err != nil {
|
||||||
|
return 0, fmt.Errorf("gathering metrics failed: %s", err)
|
||||||
|
}
|
||||||
|
if metricNames != nil {
|
||||||
|
got = filterMetrics(got, metricNames)
|
||||||
|
}
|
||||||
|
|
||||||
c.Collect(mChan)
|
result := 0
|
||||||
close(mChan)
|
for _, mf := range got {
|
||||||
<-done
|
result += len(mf.GetMetric())
|
||||||
|
}
|
||||||
return mCount
|
return result, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// CollectAndCompare registers the provided Collector with a newly created
|
// CollectAndCompare registers the provided Collector with a newly created
|
||||||
// pedantic Registry. It then does the same as GatherAndCompare, gathering the
|
// pedantic Registry. It then calls GatherAndCompare with that Registry and with
|
||||||
// metrics from the pedantic Registry.
|
// the provided metricNames.
|
||||||
func CollectAndCompare(c prometheus.Collector, expected io.Reader, metricNames ...string) error {
|
func CollectAndCompare(c prometheus.Collector, expected io.Reader, metricNames ...string) error {
|
||||||
reg := prometheus.NewPedanticRegistry()
|
reg := prometheus.NewPedanticRegistry()
|
||||||
if err := reg.Register(c); err != nil {
|
if err := reg.Register(c); err != nil {
|
||||||
|
|||||||
1
vendor/github.com/prometheus/client_golang/prometheus/value.go
generated
vendored
1
vendor/github.com/prometheus/client_golang/prometheus/value.go
generated
vendored
@ -19,6 +19,7 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
"unicode/utf8"
|
"unicode/utf8"
|
||||||
|
|
||||||
|
//lint:ignore SA1019 Need to keep deprecated package for compatibility.
|
||||||
"github.com/golang/protobuf/proto"
|
"github.com/golang/protobuf/proto"
|
||||||
"github.com/golang/protobuf/ptypes"
|
"github.com/golang/protobuf/ptypes"
|
||||||
|
|
||||||
|
|||||||
14
vendor/github.com/prometheus/client_golang/prometheus/wrap.go
generated
vendored
14
vendor/github.com/prometheus/client_golang/prometheus/wrap.go
generated
vendored
@ -17,6 +17,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"sort"
|
"sort"
|
||||||
|
|
||||||
|
//lint:ignore SA1019 Need to keep deprecated package for compatibility.
|
||||||
"github.com/golang/protobuf/proto"
|
"github.com/golang/protobuf/proto"
|
||||||
|
|
||||||
dto "github.com/prometheus/client_model/go"
|
dto "github.com/prometheus/client_model/go"
|
||||||
@ -27,7 +28,8 @@ import (
|
|||||||
// registered with the wrapped Registerer in a modified way. The modified
|
// registered with the wrapped Registerer in a modified way. The modified
|
||||||
// Collector adds the provided Labels to all Metrics it collects (as
|
// Collector adds the provided Labels to all Metrics it collects (as
|
||||||
// ConstLabels). The Metrics collected by the unmodified Collector must not
|
// ConstLabels). The Metrics collected by the unmodified Collector must not
|
||||||
// duplicate any of those labels.
|
// duplicate any of those labels. Wrapping a nil value is valid, resulting
|
||||||
|
// in a no-op Registerer.
|
||||||
//
|
//
|
||||||
// WrapRegistererWith provides a way to add fixed labels to a subset of
|
// WrapRegistererWith provides a way to add fixed labels to a subset of
|
||||||
// Collectors. It should not be used to add fixed labels to all metrics exposed.
|
// Collectors. It should not be used to add fixed labels to all metrics exposed.
|
||||||
@ -50,6 +52,7 @@ func WrapRegistererWith(labels Labels, reg Registerer) Registerer {
|
|||||||
// Registerer. Collectors registered with the returned Registerer will be
|
// Registerer. Collectors registered with the returned Registerer will be
|
||||||
// registered with the wrapped Registerer in a modified way. The modified
|
// registered with the wrapped Registerer in a modified way. The modified
|
||||||
// Collector adds the provided prefix to the name of all Metrics it collects.
|
// Collector adds the provided prefix to the name of all Metrics it collects.
|
||||||
|
// Wrapping a nil value is valid, resulting in a no-op Registerer.
|
||||||
//
|
//
|
||||||
// WrapRegistererWithPrefix is useful to have one place to prefix all metrics of
|
// WrapRegistererWithPrefix is useful to have one place to prefix all metrics of
|
||||||
// a sub-system. To make this work, register metrics of the sub-system with the
|
// a sub-system. To make this work, register metrics of the sub-system with the
|
||||||
@ -80,6 +83,9 @@ type wrappingRegisterer struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (r *wrappingRegisterer) Register(c Collector) error {
|
func (r *wrappingRegisterer) Register(c Collector) error {
|
||||||
|
if r.wrappedRegisterer == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
return r.wrappedRegisterer.Register(&wrappingCollector{
|
return r.wrappedRegisterer.Register(&wrappingCollector{
|
||||||
wrappedCollector: c,
|
wrappedCollector: c,
|
||||||
prefix: r.prefix,
|
prefix: r.prefix,
|
||||||
@ -88,6 +94,9 @@ func (r *wrappingRegisterer) Register(c Collector) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (r *wrappingRegisterer) MustRegister(cs ...Collector) {
|
func (r *wrappingRegisterer) MustRegister(cs ...Collector) {
|
||||||
|
if r.wrappedRegisterer == nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
for _, c := range cs {
|
for _, c := range cs {
|
||||||
if err := r.Register(c); err != nil {
|
if err := r.Register(c); err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
@ -96,6 +105,9 @@ func (r *wrappingRegisterer) MustRegister(cs ...Collector) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (r *wrappingRegisterer) Unregister(c Collector) bool {
|
func (r *wrappingRegisterer) Unregister(c Collector) bool {
|
||||||
|
if r.wrappedRegisterer == nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
return r.wrappedRegisterer.Unregister(&wrappingCollector{
|
return r.wrappedRegisterer.Unregister(&wrappingCollector{
|
||||||
wrappedCollector: c,
|
wrappedCollector: c,
|
||||||
prefix: r.prefix,
|
prefix: r.prefix,
|
||||||
|
|||||||
4
vendor/github.com/prometheus/common/model/time.go
generated
vendored
4
vendor/github.com/prometheus/common/model/time.go
generated
vendored
@ -186,6 +186,10 @@ var durationRE = regexp.MustCompile("^([0-9]+)(y|w|d|h|m|s|ms)$")
|
|||||||
// ParseDuration parses a string into a time.Duration, assuming that a year
|
// ParseDuration parses a string into a time.Duration, assuming that a year
|
||||||
// always has 365d, a week always has 7d, and a day always has 24h.
|
// always has 365d, a week always has 7d, and a day always has 24h.
|
||||||
func ParseDuration(durationStr string) (Duration, error) {
|
func ParseDuration(durationStr string) (Duration, error) {
|
||||||
|
// Allow 0 without a unit.
|
||||||
|
if durationStr == "0" {
|
||||||
|
return 0, nil
|
||||||
|
}
|
||||||
matches := durationRE.FindStringSubmatch(durationStr)
|
matches := durationRE.FindStringSubmatch(durationStr)
|
||||||
if len(matches) != 3 {
|
if len(matches) != 3 {
|
||||||
return 0, fmt.Errorf("not a valid duration string: %q", durationStr)
|
return 0, fmt.Errorf("not a valid duration string: %q", durationStr)
|
||||||
|
|||||||
4
vendor/github.com/prometheus/procfs/.golangci.yml
generated
vendored
4
vendor/github.com/prometheus/procfs/.golangci.yml
generated
vendored
@ -1,4 +1,4 @@
|
|||||||
|
---
|
||||||
linters:
|
linters:
|
||||||
enable:
|
enable:
|
||||||
- staticcheck
|
- golint
|
||||||
- govet
|
|
||||||
|
|||||||
43
vendor/github.com/prometheus/procfs/Makefile.common
generated
vendored
43
vendor/github.com/prometheus/procfs/Makefile.common
generated
vendored
@ -69,12 +69,21 @@ else
|
|||||||
GO_BUILD_PLATFORM ?= $(GOHOSTOS)-$(GOHOSTARCH)
|
GO_BUILD_PLATFORM ?= $(GOHOSTOS)-$(GOHOSTARCH)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
PROMU_VERSION ?= 0.4.0
|
GOTEST := $(GO) test
|
||||||
|
GOTEST_DIR :=
|
||||||
|
ifneq ($(CIRCLE_JOB),)
|
||||||
|
ifneq ($(shell which gotestsum),)
|
||||||
|
GOTEST_DIR := test-results
|
||||||
|
GOTEST := gotestsum --junitfile $(GOTEST_DIR)/unit-tests.xml --
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
PROMU_VERSION ?= 0.5.0
|
||||||
PROMU_URL := https://github.com/prometheus/promu/releases/download/v$(PROMU_VERSION)/promu-$(PROMU_VERSION).$(GO_BUILD_PLATFORM).tar.gz
|
PROMU_URL := https://github.com/prometheus/promu/releases/download/v$(PROMU_VERSION)/promu-$(PROMU_VERSION).$(GO_BUILD_PLATFORM).tar.gz
|
||||||
|
|
||||||
GOLANGCI_LINT :=
|
GOLANGCI_LINT :=
|
||||||
GOLANGCI_LINT_OPTS ?=
|
GOLANGCI_LINT_OPTS ?=
|
||||||
GOLANGCI_LINT_VERSION ?= v1.16.0
|
GOLANGCI_LINT_VERSION ?= v1.18.0
|
||||||
# golangci-lint only supports linux, darwin and windows platforms on i386/amd64.
|
# golangci-lint only supports linux, darwin and windows platforms on i386/amd64.
|
||||||
# windows isn't included here because of the path separator being different.
|
# windows isn't included here because of the path separator being different.
|
||||||
ifeq ($(GOHOSTOS),$(filter $(GOHOSTOS),linux darwin))
|
ifeq ($(GOHOSTOS),$(filter $(GOHOSTOS),linux darwin))
|
||||||
@ -86,7 +95,8 @@ endif
|
|||||||
PREFIX ?= $(shell pwd)
|
PREFIX ?= $(shell pwd)
|
||||||
BIN_DIR ?= $(shell pwd)
|
BIN_DIR ?= $(shell pwd)
|
||||||
DOCKER_IMAGE_TAG ?= $(subst /,-,$(shell git rev-parse --abbrev-ref HEAD))
|
DOCKER_IMAGE_TAG ?= $(subst /,-,$(shell git rev-parse --abbrev-ref HEAD))
|
||||||
DOCKERFILE_PATH ?= ./
|
DOCKERFILE_PATH ?= ./Dockerfile
|
||||||
|
DOCKERBUILD_CONTEXT ?= ./
|
||||||
DOCKER_REPO ?= prom
|
DOCKER_REPO ?= prom
|
||||||
|
|
||||||
DOCKER_ARCHS ?= amd64
|
DOCKER_ARCHS ?= amd64
|
||||||
@ -140,15 +150,29 @@ else
|
|||||||
$(GO) get $(GOOPTS) -t ./...
|
$(GO) get $(GOOPTS) -t ./...
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
.PHONY: update-go-deps
|
||||||
|
update-go-deps:
|
||||||
|
@echo ">> updating Go dependencies"
|
||||||
|
@for m in $$($(GO) list -mod=readonly -m -f '{{ if and (not .Indirect) (not .Main)}}{{.Path}}{{end}}' all); do \
|
||||||
|
$(GO) get $$m; \
|
||||||
|
done
|
||||||
|
GO111MODULE=$(GO111MODULE) $(GO) mod tidy
|
||||||
|
ifneq (,$(wildcard vendor))
|
||||||
|
GO111MODULE=$(GO111MODULE) $(GO) mod vendor
|
||||||
|
endif
|
||||||
|
|
||||||
.PHONY: common-test-short
|
.PHONY: common-test-short
|
||||||
common-test-short:
|
common-test-short: $(GOTEST_DIR)
|
||||||
@echo ">> running short tests"
|
@echo ">> running short tests"
|
||||||
GO111MODULE=$(GO111MODULE) $(GO) test -short $(GOOPTS) $(pkgs)
|
GO111MODULE=$(GO111MODULE) $(GOTEST) -short $(GOOPTS) $(pkgs)
|
||||||
|
|
||||||
.PHONY: common-test
|
.PHONY: common-test
|
||||||
common-test:
|
common-test: $(GOTEST_DIR)
|
||||||
@echo ">> running all tests"
|
@echo ">> running all tests"
|
||||||
GO111MODULE=$(GO111MODULE) $(GO) test $(test-flags) $(GOOPTS) $(pkgs)
|
GO111MODULE=$(GO111MODULE) $(GOTEST) $(test-flags) $(GOOPTS) $(pkgs)
|
||||||
|
|
||||||
|
$(GOTEST_DIR):
|
||||||
|
@mkdir -p $@
|
||||||
|
|
||||||
.PHONY: common-format
|
.PHONY: common-format
|
||||||
common-format:
|
common-format:
|
||||||
@ -200,7 +224,7 @@ endif
|
|||||||
.PHONY: common-build
|
.PHONY: common-build
|
||||||
common-build: promu
|
common-build: promu
|
||||||
@echo ">> building binaries"
|
@echo ">> building binaries"
|
||||||
GO111MODULE=$(GO111MODULE) $(PROMU) build --prefix $(PREFIX)
|
GO111MODULE=$(GO111MODULE) $(PROMU) build --prefix $(PREFIX) $(PROMU_BINARIES)
|
||||||
|
|
||||||
.PHONY: common-tarball
|
.PHONY: common-tarball
|
||||||
common-tarball: promu
|
common-tarball: promu
|
||||||
@ -211,9 +235,10 @@ common-tarball: promu
|
|||||||
common-docker: $(BUILD_DOCKER_ARCHS)
|
common-docker: $(BUILD_DOCKER_ARCHS)
|
||||||
$(BUILD_DOCKER_ARCHS): common-docker-%:
|
$(BUILD_DOCKER_ARCHS): common-docker-%:
|
||||||
docker build -t "$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME)-linux-$*:$(DOCKER_IMAGE_TAG)" \
|
docker build -t "$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME)-linux-$*:$(DOCKER_IMAGE_TAG)" \
|
||||||
|
-f $(DOCKERFILE_PATH) \
|
||||||
--build-arg ARCH="$*" \
|
--build-arg ARCH="$*" \
|
||||||
--build-arg OS="linux" \
|
--build-arg OS="linux" \
|
||||||
$(DOCKERFILE_PATH)
|
$(DOCKERBUILD_CONTEXT)
|
||||||
|
|
||||||
.PHONY: common-docker-publish $(PUBLISH_DOCKER_ARCHS)
|
.PHONY: common-docker-publish $(PUBLISH_DOCKER_ARCHS)
|
||||||
common-docker-publish: $(PUBLISH_DOCKER_ARCHS)
|
common-docker-publish: $(PUBLISH_DOCKER_ARCHS)
|
||||||
|
|||||||
265
vendor/github.com/prometheus/procfs/cpuinfo.go
generated
vendored
265
vendor/github.com/prometheus/procfs/cpuinfo.go
generated
vendored
@ -11,11 +11,15 @@
|
|||||||
// See the License for the specific language governing permissions and
|
// See the License for the specific language governing permissions and
|
||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
|
|
||||||
|
// +build linux
|
||||||
|
|
||||||
package procfs
|
package procfs
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bufio"
|
"bufio"
|
||||||
"bytes"
|
"bytes"
|
||||||
|
"errors"
|
||||||
|
"regexp"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
@ -52,6 +56,11 @@ type CPUInfo struct {
|
|||||||
PowerManagement string
|
PowerManagement string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var (
|
||||||
|
cpuinfoClockRegexp = regexp.MustCompile(`([\d.]+)`)
|
||||||
|
cpuinfoS390XProcessorRegexp = regexp.MustCompile(`^processor\s+(\d+):.*`)
|
||||||
|
)
|
||||||
|
|
||||||
// CPUInfo returns information about current system CPUs.
|
// CPUInfo returns information about current system CPUs.
|
||||||
// See https://www.kernel.org/doc/Documentation/filesystems/proc.txt
|
// See https://www.kernel.org/doc/Documentation/filesystems/proc.txt
|
||||||
func (fs FS) CPUInfo() ([]CPUInfo, error) {
|
func (fs FS) CPUInfo() ([]CPUInfo, error) {
|
||||||
@ -62,14 +71,26 @@ func (fs FS) CPUInfo() ([]CPUInfo, error) {
|
|||||||
return parseCPUInfo(data)
|
return parseCPUInfo(data)
|
||||||
}
|
}
|
||||||
|
|
||||||
// parseCPUInfo parses data from /proc/cpuinfo
|
func parseCPUInfoX86(info []byte) ([]CPUInfo, error) {
|
||||||
func parseCPUInfo(info []byte) ([]CPUInfo, error) {
|
|
||||||
cpuinfo := []CPUInfo{}
|
|
||||||
i := -1
|
|
||||||
scanner := bufio.NewScanner(bytes.NewReader(info))
|
scanner := bufio.NewScanner(bytes.NewReader(info))
|
||||||
|
|
||||||
|
// find the first "processor" line
|
||||||
|
firstLine := firstNonEmptyLine(scanner)
|
||||||
|
if !strings.HasPrefix(firstLine, "processor") || !strings.Contains(firstLine, ":") {
|
||||||
|
return nil, errors.New("invalid cpuinfo file: " + firstLine)
|
||||||
|
}
|
||||||
|
field := strings.SplitN(firstLine, ": ", 2)
|
||||||
|
v, err := strconv.ParseUint(field[1], 0, 32)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
firstcpu := CPUInfo{Processor: uint(v)}
|
||||||
|
cpuinfo := []CPUInfo{firstcpu}
|
||||||
|
i := 0
|
||||||
|
|
||||||
for scanner.Scan() {
|
for scanner.Scan() {
|
||||||
line := scanner.Text()
|
line := scanner.Text()
|
||||||
if strings.TrimSpace(line) == "" {
|
if !strings.Contains(line, ":") {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
field := strings.SplitN(line, ": ", 2)
|
field := strings.SplitN(line, ": ", 2)
|
||||||
@ -82,7 +103,7 @@ func parseCPUInfo(info []byte) ([]CPUInfo, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
cpuinfo[i].Processor = uint(v)
|
cpuinfo[i].Processor = uint(v)
|
||||||
case "vendor_id":
|
case "vendor", "vendor_id":
|
||||||
cpuinfo[i].VendorID = field[1]
|
cpuinfo[i].VendorID = field[1]
|
||||||
case "cpu family":
|
case "cpu family":
|
||||||
cpuinfo[i].CPUFamily = field[1]
|
cpuinfo[i].CPUFamily = field[1]
|
||||||
@ -163,5 +184,237 @@ func parseCPUInfo(info []byte) ([]CPUInfo, error) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
return cpuinfo, nil
|
return cpuinfo, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func parseCPUInfoARM(info []byte) ([]CPUInfo, error) {
|
||||||
|
scanner := bufio.NewScanner(bytes.NewReader(info))
|
||||||
|
|
||||||
|
firstLine := firstNonEmptyLine(scanner)
|
||||||
|
match, _ := regexp.MatchString("^[Pp]rocessor", firstLine)
|
||||||
|
if !match || !strings.Contains(firstLine, ":") {
|
||||||
|
return nil, errors.New("invalid cpuinfo file: " + firstLine)
|
||||||
|
}
|
||||||
|
field := strings.SplitN(firstLine, ": ", 2)
|
||||||
|
cpuinfo := []CPUInfo{}
|
||||||
|
featuresLine := ""
|
||||||
|
commonCPUInfo := CPUInfo{}
|
||||||
|
i := 0
|
||||||
|
if strings.TrimSpace(field[0]) == "Processor" {
|
||||||
|
commonCPUInfo = CPUInfo{ModelName: field[1]}
|
||||||
|
i = -1
|
||||||
|
} else {
|
||||||
|
v, err := strconv.ParseUint(field[1], 0, 32)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
firstcpu := CPUInfo{Processor: uint(v)}
|
||||||
|
cpuinfo = []CPUInfo{firstcpu}
|
||||||
|
}
|
||||||
|
|
||||||
|
for scanner.Scan() {
|
||||||
|
line := scanner.Text()
|
||||||
|
if !strings.Contains(line, ":") {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
field := strings.SplitN(line, ": ", 2)
|
||||||
|
switch strings.TrimSpace(field[0]) {
|
||||||
|
case "processor":
|
||||||
|
cpuinfo = append(cpuinfo, commonCPUInfo) // start of the next processor
|
||||||
|
i++
|
||||||
|
v, err := strconv.ParseUint(field[1], 0, 32)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
cpuinfo[i].Processor = uint(v)
|
||||||
|
case "BogoMIPS":
|
||||||
|
if i == -1 {
|
||||||
|
cpuinfo = append(cpuinfo, commonCPUInfo) // There is only one processor
|
||||||
|
i++
|
||||||
|
cpuinfo[i].Processor = 0
|
||||||
|
}
|
||||||
|
v, err := strconv.ParseFloat(field[1], 64)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
cpuinfo[i].BogoMips = v
|
||||||
|
case "Features":
|
||||||
|
featuresLine = line
|
||||||
|
case "model name":
|
||||||
|
cpuinfo[i].ModelName = field[1]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fields := strings.SplitN(featuresLine, ": ", 2)
|
||||||
|
for i := range cpuinfo {
|
||||||
|
cpuinfo[i].Flags = strings.Fields(fields[1])
|
||||||
|
}
|
||||||
|
return cpuinfo, nil
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func parseCPUInfoS390X(info []byte) ([]CPUInfo, error) {
|
||||||
|
scanner := bufio.NewScanner(bytes.NewReader(info))
|
||||||
|
|
||||||
|
firstLine := firstNonEmptyLine(scanner)
|
||||||
|
if !strings.HasPrefix(firstLine, "vendor_id") || !strings.Contains(firstLine, ":") {
|
||||||
|
return nil, errors.New("invalid cpuinfo file: " + firstLine)
|
||||||
|
}
|
||||||
|
field := strings.SplitN(firstLine, ": ", 2)
|
||||||
|
cpuinfo := []CPUInfo{}
|
||||||
|
commonCPUInfo := CPUInfo{VendorID: field[1]}
|
||||||
|
|
||||||
|
for scanner.Scan() {
|
||||||
|
line := scanner.Text()
|
||||||
|
if !strings.Contains(line, ":") {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
field := strings.SplitN(line, ": ", 2)
|
||||||
|
switch strings.TrimSpace(field[0]) {
|
||||||
|
case "bogomips per cpu":
|
||||||
|
v, err := strconv.ParseFloat(field[1], 64)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
commonCPUInfo.BogoMips = v
|
||||||
|
case "features":
|
||||||
|
commonCPUInfo.Flags = strings.Fields(field[1])
|
||||||
|
}
|
||||||
|
if strings.HasPrefix(line, "processor") {
|
||||||
|
match := cpuinfoS390XProcessorRegexp.FindStringSubmatch(line)
|
||||||
|
if len(match) < 2 {
|
||||||
|
return nil, errors.New("Invalid line found in cpuinfo: " + line)
|
||||||
|
}
|
||||||
|
cpu := commonCPUInfo
|
||||||
|
v, err := strconv.ParseUint(match[1], 0, 32)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
cpu.Processor = uint(v)
|
||||||
|
cpuinfo = append(cpuinfo, cpu)
|
||||||
|
}
|
||||||
|
if strings.HasPrefix(line, "cpu number") {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
i := 0
|
||||||
|
for scanner.Scan() {
|
||||||
|
line := scanner.Text()
|
||||||
|
if !strings.Contains(line, ":") {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
field := strings.SplitN(line, ": ", 2)
|
||||||
|
switch strings.TrimSpace(field[0]) {
|
||||||
|
case "cpu number":
|
||||||
|
i++
|
||||||
|
case "cpu MHz dynamic":
|
||||||
|
clock := cpuinfoClockRegexp.FindString(strings.TrimSpace(field[1]))
|
||||||
|
v, err := strconv.ParseFloat(clock, 64)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
cpuinfo[i].CPUMHz = v
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return cpuinfo, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func parseCPUInfoMips(info []byte) ([]CPUInfo, error) {
|
||||||
|
scanner := bufio.NewScanner(bytes.NewReader(info))
|
||||||
|
|
||||||
|
// find the first "processor" line
|
||||||
|
firstLine := firstNonEmptyLine(scanner)
|
||||||
|
if !strings.HasPrefix(firstLine, "system type") || !strings.Contains(firstLine, ":") {
|
||||||
|
return nil, errors.New("invalid cpuinfo file: " + firstLine)
|
||||||
|
}
|
||||||
|
field := strings.SplitN(firstLine, ": ", 2)
|
||||||
|
cpuinfo := []CPUInfo{}
|
||||||
|
systemType := field[1]
|
||||||
|
|
||||||
|
i := 0
|
||||||
|
|
||||||
|
for scanner.Scan() {
|
||||||
|
line := scanner.Text()
|
||||||
|
if !strings.Contains(line, ":") {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
field := strings.SplitN(line, ": ", 2)
|
||||||
|
switch strings.TrimSpace(field[0]) {
|
||||||
|
case "processor":
|
||||||
|
v, err := strconv.ParseUint(field[1], 0, 32)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
i = int(v)
|
||||||
|
cpuinfo = append(cpuinfo, CPUInfo{}) // start of the next processor
|
||||||
|
cpuinfo[i].Processor = uint(v)
|
||||||
|
cpuinfo[i].VendorID = systemType
|
||||||
|
case "cpu model":
|
||||||
|
cpuinfo[i].ModelName = field[1]
|
||||||
|
case "BogoMIPS":
|
||||||
|
v, err := strconv.ParseFloat(field[1], 64)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
cpuinfo[i].BogoMips = v
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return cpuinfo, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func parseCPUInfoPPC(info []byte) ([]CPUInfo, error) {
|
||||||
|
scanner := bufio.NewScanner(bytes.NewReader(info))
|
||||||
|
|
||||||
|
firstLine := firstNonEmptyLine(scanner)
|
||||||
|
if !strings.HasPrefix(firstLine, "processor") || !strings.Contains(firstLine, ":") {
|
||||||
|
return nil, errors.New("invalid cpuinfo file: " + firstLine)
|
||||||
|
}
|
||||||
|
field := strings.SplitN(firstLine, ": ", 2)
|
||||||
|
v, err := strconv.ParseUint(field[1], 0, 32)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
firstcpu := CPUInfo{Processor: uint(v)}
|
||||||
|
cpuinfo := []CPUInfo{firstcpu}
|
||||||
|
i := 0
|
||||||
|
|
||||||
|
for scanner.Scan() {
|
||||||
|
line := scanner.Text()
|
||||||
|
if !strings.Contains(line, ":") {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
field := strings.SplitN(line, ": ", 2)
|
||||||
|
switch strings.TrimSpace(field[0]) {
|
||||||
|
case "processor":
|
||||||
|
cpuinfo = append(cpuinfo, CPUInfo{}) // start of the next processor
|
||||||
|
i++
|
||||||
|
v, err := strconv.ParseUint(field[1], 0, 32)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
cpuinfo[i].Processor = uint(v)
|
||||||
|
case "cpu":
|
||||||
|
cpuinfo[i].VendorID = field[1]
|
||||||
|
case "clock":
|
||||||
|
clock := cpuinfoClockRegexp.FindString(strings.TrimSpace(field[1]))
|
||||||
|
v, err := strconv.ParseFloat(clock, 64)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
cpuinfo[i].CPUMHz = v
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return cpuinfo, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// firstNonEmptyLine advances the scanner to the first non-empty line
|
||||||
|
// and returns the contents of that line
|
||||||
|
func firstNonEmptyLine(scanner *bufio.Scanner) string {
|
||||||
|
for scanner.Scan() {
|
||||||
|
line := scanner.Text()
|
||||||
|
if strings.TrimSpace(line) != "" {
|
||||||
|
return line
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|||||||
@ -1,10 +1,9 @@
|
|||||||
// Copyright 2018 The etcd Authors
|
// Copyright 2020 The Prometheus Authors
|
||||||
//
|
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
// you may not use this file except in compliance with the License.
|
// you may not use this file except in compliance with the License.
|
||||||
// You may obtain a copy of the License at
|
// You may obtain a copy of the License at
|
||||||
//
|
//
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
//
|
//
|
||||||
// Unless required by applicable law or agreed to in writing, software
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
@ -12,5 +11,8 @@
|
|||||||
// See the License for the specific language governing permissions and
|
// See the License for the specific language governing permissions and
|
||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
|
|
||||||
// Package systemd provides utility functions for systemd.
|
// +build linux
|
||||||
package systemd
|
|
||||||
|
package procfs
|
||||||
|
|
||||||
|
var parseCPUInfo = parseCPUInfoARM
|
||||||
@ -1,10 +1,9 @@
|
|||||||
// Copyright 2018 The etcd Authors
|
// Copyright 2020 The Prometheus Authors
|
||||||
//
|
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
// you may not use this file except in compliance with the License.
|
// you may not use this file except in compliance with the License.
|
||||||
// You may obtain a copy of the License at
|
// You may obtain a copy of the License at
|
||||||
//
|
//
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
//
|
//
|
||||||
// Unless required by applicable law or agreed to in writing, software
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
@ -12,5 +11,9 @@
|
|||||||
// See the License for the specific language governing permissions and
|
// See the License for the specific language governing permissions and
|
||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
|
|
||||||
// Package picker defines/implements client balancer picker policy.
|
// +build linux
|
||||||
package picker
|
// +build arm64
|
||||||
|
|
||||||
|
package procfs
|
||||||
|
|
||||||
|
var parseCPUInfo = parseCPUInfoARM
|
||||||
@ -1,10 +1,9 @@
|
|||||||
// Copyright 2018 The etcd Authors
|
// Copyright 2020 The Prometheus Authors
|
||||||
//
|
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
// you may not use this file except in compliance with the License.
|
// you may not use this file except in compliance with the License.
|
||||||
// You may obtain a copy of the License at
|
// You may obtain a copy of the License at
|
||||||
//
|
//
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
//
|
//
|
||||||
// Unless required by applicable law or agreed to in writing, software
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
@ -12,9 +11,9 @@
|
|||||||
// See the License for the specific language governing permissions and
|
// See the License for the specific language governing permissions and
|
||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
|
|
||||||
package rpctypes
|
// +build linux
|
||||||
|
// +build 386 amd64
|
||||||
|
|
||||||
var (
|
package procfs
|
||||||
TokenFieldNameGRPC = "token"
|
|
||||||
TokenFieldNameSwagger = "authorization"
|
var parseCPUInfo = parseCPUInfoX86
|
||||||
)
|
|
||||||
@ -1,10 +1,9 @@
|
|||||||
// Copyright 2018 The etcd Authors
|
// Copyright 2020 The Prometheus Authors
|
||||||
//
|
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
// you may not use this file except in compliance with the License.
|
// you may not use this file except in compliance with the License.
|
||||||
// You may obtain a copy of the License at
|
// You may obtain a copy of the License at
|
||||||
//
|
//
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
//
|
//
|
||||||
// Unless required by applicable law or agreed to in writing, software
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
@ -12,5 +11,8 @@
|
|||||||
// See the License for the specific language governing permissions and
|
// See the License for the specific language governing permissions and
|
||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
|
|
||||||
// Package logutil includes utilities to facilitate logging.
|
// +build linux
|
||||||
package logutil
|
|
||||||
|
package procfs
|
||||||
|
|
||||||
|
var parseCPUInfo = parseCPUInfoMips
|
||||||
18
vendor/github.com/prometheus/procfs/cpuinfo_mips64.go
generated
vendored
Normal file
18
vendor/github.com/prometheus/procfs/cpuinfo_mips64.go
generated
vendored
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
// Copyright 2020 The Prometheus Authors
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
// +build linux
|
||||||
|
|
||||||
|
package procfs
|
||||||
|
|
||||||
|
var parseCPUInfo = parseCPUInfoMips
|
||||||
18
vendor/github.com/prometheus/procfs/cpuinfo_mips64le.go
generated
vendored
Normal file
18
vendor/github.com/prometheus/procfs/cpuinfo_mips64le.go
generated
vendored
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
// Copyright 2020 The Prometheus Authors
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
// +build linux
|
||||||
|
|
||||||
|
package procfs
|
||||||
|
|
||||||
|
var parseCPUInfo = parseCPUInfoMips
|
||||||
18
vendor/github.com/prometheus/procfs/cpuinfo_mipsle.go
generated
vendored
Normal file
18
vendor/github.com/prometheus/procfs/cpuinfo_mipsle.go
generated
vendored
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
// Copyright 2020 The Prometheus Authors
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
// +build linux
|
||||||
|
|
||||||
|
package procfs
|
||||||
|
|
||||||
|
var parseCPUInfo = parseCPUInfoMips
|
||||||
18
vendor/github.com/prometheus/procfs/cpuinfo_ppc64.go
generated
vendored
Normal file
18
vendor/github.com/prometheus/procfs/cpuinfo_ppc64.go
generated
vendored
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
// Copyright 2020 The Prometheus Authors
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
// +build linux
|
||||||
|
|
||||||
|
package procfs
|
||||||
|
|
||||||
|
var parseCPUInfo = parseCPUInfoPPC
|
||||||
18
vendor/github.com/prometheus/procfs/cpuinfo_ppc64le.go
generated
vendored
Normal file
18
vendor/github.com/prometheus/procfs/cpuinfo_ppc64le.go
generated
vendored
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
// Copyright 2020 The Prometheus Authors
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
// +build linux
|
||||||
|
|
||||||
|
package procfs
|
||||||
|
|
||||||
|
var parseCPUInfo = parseCPUInfoPPC
|
||||||
18
vendor/github.com/prometheus/procfs/cpuinfo_s390x.go
generated
vendored
Normal file
18
vendor/github.com/prometheus/procfs/cpuinfo_s390x.go
generated
vendored
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
// Copyright 2020 The Prometheus Authors
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
// +build linux
|
||||||
|
|
||||||
|
package procfs
|
||||||
|
|
||||||
|
var parseCPUInfo = parseCPUInfoS390X
|
||||||
158
vendor/github.com/prometheus/procfs/crypto.go
generated
vendored
158
vendor/github.com/prometheus/procfs/crypto.go
generated
vendored
@ -14,10 +14,10 @@
|
|||||||
package procfs
|
package procfs
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"bufio"
|
||||||
"bytes"
|
"bytes"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io/ioutil"
|
"io"
|
||||||
"strconv"
|
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/prometheus/procfs/internal/util"
|
"github.com/prometheus/procfs/internal/util"
|
||||||
@ -52,80 +52,102 @@ type Crypto struct {
|
|||||||
// structs containing the relevant info. More information available here:
|
// structs containing the relevant info. More information available here:
|
||||||
// https://kernel.readthedocs.io/en/sphinx-samples/crypto-API.html
|
// https://kernel.readthedocs.io/en/sphinx-samples/crypto-API.html
|
||||||
func (fs FS) Crypto() ([]Crypto, error) {
|
func (fs FS) Crypto() ([]Crypto, error) {
|
||||||
data, err := ioutil.ReadFile(fs.proc.Path("crypto"))
|
path := fs.proc.Path("crypto")
|
||||||
|
b, err := util.ReadFileNoStat(path)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("error parsing crypto %s: %s", fs.proc.Path("crypto"), err)
|
return nil, fmt.Errorf("error reading crypto %s: %s", path, err)
|
||||||
}
|
}
|
||||||
crypto, err := parseCrypto(data)
|
|
||||||
|
crypto, err := parseCrypto(bytes.NewReader(b))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("error parsing crypto %s: %s", fs.proc.Path("crypto"), err)
|
return nil, fmt.Errorf("error parsing crypto %s: %s", path, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
return crypto, nil
|
return crypto, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func parseCrypto(cryptoData []byte) ([]Crypto, error) {
|
// parseCrypto parses a /proc/crypto stream into Crypto elements.
|
||||||
crypto := []Crypto{}
|
func parseCrypto(r io.Reader) ([]Crypto, error) {
|
||||||
|
var out []Crypto
|
||||||
|
|
||||||
cryptoBlocks := bytes.Split(cryptoData, []byte("\n\n"))
|
s := bufio.NewScanner(r)
|
||||||
|
for s.Scan() {
|
||||||
for _, block := range cryptoBlocks {
|
text := s.Text()
|
||||||
var newCryptoElem Crypto
|
switch {
|
||||||
|
case strings.HasPrefix(text, "name"):
|
||||||
lines := strings.Split(string(block), "\n")
|
// Each crypto element begins with its name.
|
||||||
for _, line := range lines {
|
out = append(out, Crypto{})
|
||||||
if strings.TrimSpace(line) == "" || line[0] == ' ' {
|
case text == "":
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
fields := strings.Split(line, ":")
|
|
||||||
key := strings.TrimSpace(fields[0])
|
kv := strings.Split(text, ":")
|
||||||
value := strings.TrimSpace(fields[1])
|
if len(kv) != 2 {
|
||||||
vp := util.NewValueParser(value)
|
return nil, fmt.Errorf("malformed crypto line: %q", text)
|
||||||
|
}
|
||||||
switch strings.TrimSpace(key) {
|
|
||||||
case "async":
|
k := strings.TrimSpace(kv[0])
|
||||||
b, err := strconv.ParseBool(value)
|
v := strings.TrimSpace(kv[1])
|
||||||
if err == nil {
|
|
||||||
newCryptoElem.Async = b
|
// Parse the key/value pair into the currently focused element.
|
||||||
}
|
c := &out[len(out)-1]
|
||||||
case "blocksize":
|
if err := c.parseKV(k, v); err != nil {
|
||||||
newCryptoElem.Blocksize = vp.PUInt64()
|
return nil, err
|
||||||
case "chunksize":
|
|
||||||
newCryptoElem.Chunksize = vp.PUInt64()
|
|
||||||
case "digestsize":
|
|
||||||
newCryptoElem.Digestsize = vp.PUInt64()
|
|
||||||
case "driver":
|
|
||||||
newCryptoElem.Driver = value
|
|
||||||
case "geniv":
|
|
||||||
newCryptoElem.Geniv = value
|
|
||||||
case "internal":
|
|
||||||
newCryptoElem.Internal = value
|
|
||||||
case "ivsize":
|
|
||||||
newCryptoElem.Ivsize = vp.PUInt64()
|
|
||||||
case "maxauthsize":
|
|
||||||
newCryptoElem.Maxauthsize = vp.PUInt64()
|
|
||||||
case "max keysize":
|
|
||||||
newCryptoElem.MaxKeysize = vp.PUInt64()
|
|
||||||
case "min keysize":
|
|
||||||
newCryptoElem.MinKeysize = vp.PUInt64()
|
|
||||||
case "module":
|
|
||||||
newCryptoElem.Module = value
|
|
||||||
case "name":
|
|
||||||
newCryptoElem.Name = value
|
|
||||||
case "priority":
|
|
||||||
newCryptoElem.Priority = vp.PInt64()
|
|
||||||
case "refcnt":
|
|
||||||
newCryptoElem.Refcnt = vp.PInt64()
|
|
||||||
case "seedsize":
|
|
||||||
newCryptoElem.Seedsize = vp.PUInt64()
|
|
||||||
case "selftest":
|
|
||||||
newCryptoElem.Selftest = value
|
|
||||||
case "type":
|
|
||||||
newCryptoElem.Type = value
|
|
||||||
case "walksize":
|
|
||||||
newCryptoElem.Walksize = vp.PUInt64()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
crypto = append(crypto, newCryptoElem)
|
|
||||||
}
|
}
|
||||||
return crypto, nil
|
|
||||||
|
if err := s.Err(); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return out, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// parseKV parses a key/value pair into the appropriate field of c.
|
||||||
|
func (c *Crypto) parseKV(k, v string) error {
|
||||||
|
vp := util.NewValueParser(v)
|
||||||
|
|
||||||
|
switch k {
|
||||||
|
case "async":
|
||||||
|
// Interpret literal yes as true.
|
||||||
|
c.Async = v == "yes"
|
||||||
|
case "blocksize":
|
||||||
|
c.Blocksize = vp.PUInt64()
|
||||||
|
case "chunksize":
|
||||||
|
c.Chunksize = vp.PUInt64()
|
||||||
|
case "digestsize":
|
||||||
|
c.Digestsize = vp.PUInt64()
|
||||||
|
case "driver":
|
||||||
|
c.Driver = v
|
||||||
|
case "geniv":
|
||||||
|
c.Geniv = v
|
||||||
|
case "internal":
|
||||||
|
c.Internal = v
|
||||||
|
case "ivsize":
|
||||||
|
c.Ivsize = vp.PUInt64()
|
||||||
|
case "maxauthsize":
|
||||||
|
c.Maxauthsize = vp.PUInt64()
|
||||||
|
case "max keysize":
|
||||||
|
c.MaxKeysize = vp.PUInt64()
|
||||||
|
case "min keysize":
|
||||||
|
c.MinKeysize = vp.PUInt64()
|
||||||
|
case "module":
|
||||||
|
c.Module = v
|
||||||
|
case "name":
|
||||||
|
c.Name = v
|
||||||
|
case "priority":
|
||||||
|
c.Priority = vp.PInt64()
|
||||||
|
case "refcnt":
|
||||||
|
c.Refcnt = vp.PInt64()
|
||||||
|
case "seedsize":
|
||||||
|
c.Seedsize = vp.PUInt64()
|
||||||
|
case "selftest":
|
||||||
|
c.Selftest = v
|
||||||
|
case "type":
|
||||||
|
c.Type = v
|
||||||
|
case "walksize":
|
||||||
|
c.Walksize = vp.PUInt64()
|
||||||
|
}
|
||||||
|
|
||||||
|
return vp.Err()
|
||||||
}
|
}
|
||||||
|
|||||||
806
vendor/github.com/prometheus/procfs/fixtures.ttar
generated
vendored
806
vendor/github.com/prometheus/procfs/fixtures.ttar
generated
vendored
@ -173,6 +173,283 @@ Lines: 1
|
|||||||
411605849 93680043 79
|
411605849 93680043 79
|
||||||
Mode: 644
|
Mode: 644
|
||||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/proc/26231/smaps
|
||||||
|
Lines: 252
|
||||||
|
00400000-00cb1000 r-xp 00000000 fd:01 952273 /bin/alertmanager
|
||||||
|
Size: 8900 kB
|
||||||
|
KernelPageSize: 4 kB
|
||||||
|
MMUPageSize: 4 kB
|
||||||
|
Rss: 2952 kB
|
||||||
|
Pss: 2952 kB
|
||||||
|
Shared_Clean: 0 kB
|
||||||
|
Shared_Dirty: 0 kB
|
||||||
|
Private_Clean: 2952 kB
|
||||||
|
Private_Dirty: 0 kB
|
||||||
|
Referenced: 2864 kB
|
||||||
|
Anonymous: 0 kB
|
||||||
|
LazyFree: 0 kB
|
||||||
|
AnonHugePages: 0 kB
|
||||||
|
ShmemPmdMapped: 0 kB
|
||||||
|
Shared_Hugetlb: 0 kB
|
||||||
|
Private_Hugetlb: 0 kB
|
||||||
|
Swap: 0 kB
|
||||||
|
SwapPss: 0 kB
|
||||||
|
Locked: 0 kB
|
||||||
|
VmFlags: rd ex mr mw me dw sd
|
||||||
|
00cb1000-016b0000 r--p 008b1000 fd:01 952273 /bin/alertmanager
|
||||||
|
Size: 10236 kB
|
||||||
|
KernelPageSize: 4 kB
|
||||||
|
MMUPageSize: 4 kB
|
||||||
|
Rss: 6152 kB
|
||||||
|
Pss: 6152 kB
|
||||||
|
Shared_Clean: 0 kB
|
||||||
|
Shared_Dirty: 0 kB
|
||||||
|
Private_Clean: 6152 kB
|
||||||
|
Private_Dirty: 0 kB
|
||||||
|
Referenced: 5308 kB
|
||||||
|
Anonymous: 0 kB
|
||||||
|
LazyFree: 0 kB
|
||||||
|
AnonHugePages: 0 kB
|
||||||
|
ShmemPmdMapped: 0 kB
|
||||||
|
Shared_Hugetlb: 0 kB
|
||||||
|
Private_Hugetlb: 0 kB
|
||||||
|
Swap: 0 kB
|
||||||
|
SwapPss: 0 kB
|
||||||
|
Locked: 0 kB
|
||||||
|
VmFlags: rd mr mw me dw sd
|
||||||
|
016b0000-0171a000 rw-p 012b0000 fd:01 952273 /bin/alertmanager
|
||||||
|
Size: 424 kB
|
||||||
|
KernelPageSize: 4 kB
|
||||||
|
MMUPageSize: 4 kB
|
||||||
|
Rss: 176 kB
|
||||||
|
Pss: 176 kB
|
||||||
|
Shared_Clean: 0 kB
|
||||||
|
Shared_Dirty: 0 kB
|
||||||
|
Private_Clean: 84 kB
|
||||||
|
Private_Dirty: 92 kB
|
||||||
|
Referenced: 176 kB
|
||||||
|
Anonymous: 92 kB
|
||||||
|
LazyFree: 0 kB
|
||||||
|
AnonHugePages: 0 kB
|
||||||
|
ShmemPmdMapped: 0 kB
|
||||||
|
Shared_Hugetlb: 0 kB
|
||||||
|
Private_Hugetlb: 0 kB
|
||||||
|
Swap: 12 kB
|
||||||
|
SwapPss: 12 kB
|
||||||
|
Locked: 0 kB
|
||||||
|
VmFlags: rd wr mr mw me dw ac sd
|
||||||
|
0171a000-0173f000 rw-p 00000000 00:00 0
|
||||||
|
Size: 148 kB
|
||||||
|
KernelPageSize: 4 kB
|
||||||
|
MMUPageSize: 4 kB
|
||||||
|
Rss: 76 kB
|
||||||
|
Pss: 76 kB
|
||||||
|
Shared_Clean: 0 kB
|
||||||
|
Shared_Dirty: 0 kB
|
||||||
|
Private_Clean: 0 kB
|
||||||
|
Private_Dirty: 76 kB
|
||||||
|
Referenced: 76 kB
|
||||||
|
Anonymous: 76 kB
|
||||||
|
LazyFree: 0 kB
|
||||||
|
AnonHugePages: 0 kB
|
||||||
|
ShmemPmdMapped: 0 kB
|
||||||
|
Shared_Hugetlb: 0 kB
|
||||||
|
Private_Hugetlb: 0 kB
|
||||||
|
Swap: 0 kB
|
||||||
|
SwapPss: 0 kB
|
||||||
|
Locked: 0 kB
|
||||||
|
VmFlags: rd wr mr mw me ac sd
|
||||||
|
c000000000-c000400000 rw-p 00000000 00:00 0
|
||||||
|
Size: 4096 kB
|
||||||
|
KernelPageSize: 4 kB
|
||||||
|
MMUPageSize: 4 kB
|
||||||
|
Rss: 2564 kB
|
||||||
|
Pss: 2564 kB
|
||||||
|
Shared_Clean: 0 kB
|
||||||
|
Shared_Dirty: 0 kB
|
||||||
|
Private_Clean: 20 kB
|
||||||
|
Private_Dirty: 2544 kB
|
||||||
|
Referenced: 2544 kB
|
||||||
|
Anonymous: 2564 kB
|
||||||
|
LazyFree: 0 kB
|
||||||
|
AnonHugePages: 0 kB
|
||||||
|
ShmemPmdMapped: 0 kB
|
||||||
|
Shared_Hugetlb: 0 kB
|
||||||
|
Private_Hugetlb: 0 kB
|
||||||
|
Swap: 1100 kB
|
||||||
|
SwapPss: 1100 kB
|
||||||
|
Locked: 0 kB
|
||||||
|
VmFlags: rd wr mr mw me ac sd
|
||||||
|
c000400000-c001600000 rw-p 00000000 00:00 0
|
||||||
|
Size: 18432 kB
|
||||||
|
KernelPageSize: 4 kB
|
||||||
|
MMUPageSize: 4 kB
|
||||||
|
Rss: 16024 kB
|
||||||
|
Pss: 16024 kB
|
||||||
|
Shared_Clean: 0 kB
|
||||||
|
Shared_Dirty: 0 kB
|
||||||
|
Private_Clean: 5864 kB
|
||||||
|
Private_Dirty: 10160 kB
|
||||||
|
Referenced: 11944 kB
|
||||||
|
Anonymous: 16024 kB
|
||||||
|
LazyFree: 5848 kB
|
||||||
|
AnonHugePages: 0 kB
|
||||||
|
ShmemPmdMapped: 0 kB
|
||||||
|
Shared_Hugetlb: 0 kB
|
||||||
|
Private_Hugetlb: 0 kB
|
||||||
|
Swap: 440 kB
|
||||||
|
SwapPss: 440 kB
|
||||||
|
Locked: 0 kB
|
||||||
|
VmFlags: rd wr mr mw me ac sd nh
|
||||||
|
c001600000-c004000000 rw-p 00000000 00:00 0
|
||||||
|
Size: 43008 kB
|
||||||
|
KernelPageSize: 4 kB
|
||||||
|
MMUPageSize: 4 kB
|
||||||
|
Rss: 0 kB
|
||||||
|
Pss: 0 kB
|
||||||
|
Shared_Clean: 0 kB
|
||||||
|
Shared_Dirty: 0 kB
|
||||||
|
Private_Clean: 0 kB
|
||||||
|
Private_Dirty: 0 kB
|
||||||
|
Referenced: 0 kB
|
||||||
|
Anonymous: 0 kB
|
||||||
|
LazyFree: 0 kB
|
||||||
|
AnonHugePages: 0 kB
|
||||||
|
ShmemPmdMapped: 0 kB
|
||||||
|
Shared_Hugetlb: 0 kB
|
||||||
|
Private_Hugetlb: 0 kB
|
||||||
|
Swap: 0 kB
|
||||||
|
SwapPss: 0 kB
|
||||||
|
Locked: 0 kB
|
||||||
|
VmFlags: rd wr mr mw me ac sd
|
||||||
|
7f0ab95ca000-7f0abbb7b000 rw-p 00000000 00:00 0
|
||||||
|
Size: 38596 kB
|
||||||
|
KernelPageSize: 4 kB
|
||||||
|
MMUPageSize: 4 kB
|
||||||
|
Rss: 1992 kB
|
||||||
|
Pss: 1992 kB
|
||||||
|
Shared_Clean: 0 kB
|
||||||
|
Shared_Dirty: 0 kB
|
||||||
|
Private_Clean: 476 kB
|
||||||
|
Private_Dirty: 1516 kB
|
||||||
|
Referenced: 1828 kB
|
||||||
|
Anonymous: 1992 kB
|
||||||
|
LazyFree: 0 kB
|
||||||
|
AnonHugePages: 0 kB
|
||||||
|
ShmemPmdMapped: 0 kB
|
||||||
|
Shared_Hugetlb: 0 kB
|
||||||
|
Private_Hugetlb: 0 kB
|
||||||
|
Swap: 384 kB
|
||||||
|
SwapPss: 384 kB
|
||||||
|
Locked: 0 kB
|
||||||
|
VmFlags: rd wr mr mw me ac sd
|
||||||
|
7ffc07ecf000-7ffc07ef0000 rw-p 00000000 00:00 0 [stack]
|
||||||
|
Size: 132 kB
|
||||||
|
KernelPageSize: 4 kB
|
||||||
|
MMUPageSize: 4 kB
|
||||||
|
Rss: 8 kB
|
||||||
|
Pss: 8 kB
|
||||||
|
Shared_Clean: 0 kB
|
||||||
|
Shared_Dirty: 0 kB
|
||||||
|
Private_Clean: 0 kB
|
||||||
|
Private_Dirty: 8 kB
|
||||||
|
Referenced: 8 kB
|
||||||
|
Anonymous: 8 kB
|
||||||
|
LazyFree: 0 kB
|
||||||
|
AnonHugePages: 0 kB
|
||||||
|
ShmemPmdMapped: 0 kB
|
||||||
|
Shared_Hugetlb: 0 kB
|
||||||
|
Private_Hugetlb: 0 kB
|
||||||
|
Swap: 4 kB
|
||||||
|
SwapPss: 4 kB
|
||||||
|
Locked: 0 kB
|
||||||
|
VmFlags: rd wr mr mw me gd ac
|
||||||
|
7ffc07f9e000-7ffc07fa1000 r--p 00000000 00:00 0 [vvar]
|
||||||
|
Size: 12 kB
|
||||||
|
KernelPageSize: 4 kB
|
||||||
|
MMUPageSize: 4 kB
|
||||||
|
Rss: 0 kB
|
||||||
|
Pss: 0 kB
|
||||||
|
Shared_Clean: 0 kB
|
||||||
|
Shared_Dirty: 0 kB
|
||||||
|
Private_Clean: 0 kB
|
||||||
|
Private_Dirty: 0 kB
|
||||||
|
Referenced: 0 kB
|
||||||
|
Anonymous: 0 kB
|
||||||
|
LazyFree: 0 kB
|
||||||
|
AnonHugePages: 0 kB
|
||||||
|
ShmemPmdMapped: 0 kB
|
||||||
|
Shared_Hugetlb: 0 kB
|
||||||
|
Private_Hugetlb: 0 kB
|
||||||
|
Swap: 0 kB
|
||||||
|
SwapPss: 0 kB
|
||||||
|
Locked: 0 kB
|
||||||
|
VmFlags: rd mr pf io de dd sd
|
||||||
|
7ffc07fa1000-7ffc07fa3000 r-xp 00000000 00:00 0 [vdso]
|
||||||
|
Size: 8 kB
|
||||||
|
KernelPageSize: 4 kB
|
||||||
|
MMUPageSize: 4 kB
|
||||||
|
Rss: 4 kB
|
||||||
|
Pss: 0 kB
|
||||||
|
Shared_Clean: 4 kB
|
||||||
|
Shared_Dirty: 0 kB
|
||||||
|
Private_Clean: 0 kB
|
||||||
|
Private_Dirty: 0 kB
|
||||||
|
Referenced: 4 kB
|
||||||
|
Anonymous: 0 kB
|
||||||
|
LazyFree: 0 kB
|
||||||
|
AnonHugePages: 0 kB
|
||||||
|
ShmemPmdMapped: 0 kB
|
||||||
|
Shared_Hugetlb: 0 kB
|
||||||
|
Private_Hugetlb: 0 kB
|
||||||
|
Swap: 0 kB
|
||||||
|
SwapPss: 0 kB
|
||||||
|
Locked: 0 kB
|
||||||
|
VmFlags: rd ex mr mw me de sd
|
||||||
|
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall]
|
||||||
|
Size: 4 kB
|
||||||
|
KernelPageSize: 4 kB
|
||||||
|
MMUPageSize: 4 kB
|
||||||
|
Rss: 0 kB
|
||||||
|
Pss: 0 kB
|
||||||
|
Shared_Clean: 0 kB
|
||||||
|
Shared_Dirty: 0 kB
|
||||||
|
Private_Clean: 0 kB
|
||||||
|
Private_Dirty: 0 kB
|
||||||
|
Referenced: 0 kB
|
||||||
|
Anonymous: 0 kB
|
||||||
|
LazyFree: 0 kB
|
||||||
|
AnonHugePages: 0 kB
|
||||||
|
ShmemPmdMapped: 0 kB
|
||||||
|
Shared_Hugetlb: 0 kB
|
||||||
|
Private_Hugetlb: 0 kB
|
||||||
|
Swap: 0 kB
|
||||||
|
SwapPss: 0 kB
|
||||||
|
Locked: 0 kB
|
||||||
|
VmFlags: rd ex
|
||||||
|
Mode: 644
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/proc/26231/smaps_rollup
|
||||||
|
Lines: 17
|
||||||
|
00400000-ffffffffff601000 ---p 00000000 00:00 0 [rollup]
|
||||||
|
Rss: 29948 kB
|
||||||
|
Pss: 29944 kB
|
||||||
|
Shared_Clean: 4 kB
|
||||||
|
Shared_Dirty: 0 kB
|
||||||
|
Private_Clean: 15548 kB
|
||||||
|
Private_Dirty: 14396 kB
|
||||||
|
Referenced: 24752 kB
|
||||||
|
Anonymous: 20756 kB
|
||||||
|
LazyFree: 5848 kB
|
||||||
|
AnonHugePages: 0 kB
|
||||||
|
ShmemPmdMapped: 0 kB
|
||||||
|
Shared_Hugetlb: 0 kB
|
||||||
|
Private_Hugetlb: 0 kB
|
||||||
|
Swap: 1940 kB
|
||||||
|
SwapPss: 1940 kB
|
||||||
|
Locked: 0 kB
|
||||||
|
Mode: 644
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
Path: fixtures/proc/26231/stat
|
Path: fixtures/proc/26231/stat
|
||||||
Lines: 1
|
Lines: 1
|
||||||
26231 (vim) R 5392 7446 5392 34835 7446 4218880 32533 309516 26 82 1677 44 158 99 20 0 1 0 82375 56274944 1981 18446744073709551615 4194304 6294284 140736914091744 140736914087944 139965136429984 0 0 12288 1870679807 0 0 0 17 0 0 0 31 0 0 8391624 8481048 16420864 140736914093252 140736914093279 140736914093279 140736914096107 0
|
26231 (vim) R 5392 7446 5392 34835 7446 4218880 32533 309516 26 82 1677 44 158 99 20 0 1 0 82375 56274944 1981 18446744073709551615 4194304 6294284 140736914091744 140736914087944 139965136429984 0 0 12288 1870679807 0 0 0 17 0 0 0 31 0 0 8391624 8481048 16420864 140736914093252 140736914093279 140736914093279 140736914096107 0
|
||||||
@ -189,7 +466,7 @@ Ngid: 0
|
|||||||
Pid: 26231
|
Pid: 26231
|
||||||
PPid: 1
|
PPid: 1
|
||||||
TracerPid: 0
|
TracerPid: 0
|
||||||
Uid: 0 0 0 0
|
Uid: 1000 1000 1000 0
|
||||||
Gid: 0 0 0 0
|
Gid: 0 0 0 0
|
||||||
FDSize: 128
|
FDSize: 128
|
||||||
Groups:
|
Groups:
|
||||||
@ -235,6 +512,11 @@ voluntary_ctxt_switches: 4742839
|
|||||||
nonvoluntary_ctxt_switches: 1727500
|
nonvoluntary_ctxt_switches: 1727500
|
||||||
Mode: 644
|
Mode: 644
|
||||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/proc/26231/wchan
|
||||||
|
Lines: 1
|
||||||
|
poll_schedule_timeoutEOF
|
||||||
|
Mode: 664
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
Directory: fixtures/proc/26232
|
Directory: fixtures/proc/26232
|
||||||
Mode: 755
|
Mode: 755
|
||||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
@ -289,6 +571,19 @@ Max realtime priority 0 0
|
|||||||
Max realtime timeout unlimited unlimited us
|
Max realtime timeout unlimited unlimited us
|
||||||
Mode: 644
|
Mode: 644
|
||||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/proc/26232/maps
|
||||||
|
Lines: 9
|
||||||
|
55680ae1e000-55680ae20000 r--p 00000000 fd:01 47316994 /bin/cat
|
||||||
|
55680ae29000-55680ae2a000 rwxs 0000a000 fd:01 47316994 /bin/cat
|
||||||
|
55680bed6000-55680bef7000 rw-p 00000000 00:00 0 [heap]
|
||||||
|
7fdf964fc000-7fdf973f2000 r--p 00000000 fd:01 17432624 /usr/lib/locale/locale-archive
|
||||||
|
7fdf973f2000-7fdf97417000 r--p 00000000 fd:01 60571062 /lib/x86_64-linux-gnu/libc-2.29.so
|
||||||
|
7ffe9215c000-7ffe9217f000 rw-p 00000000 00:00 0 [stack]
|
||||||
|
7ffe921da000-7ffe921dd000 r--p 00000000 00:00 0 [vvar]
|
||||||
|
7ffe921dd000-7ffe921de000 r-xp 00000000 00:00 0 [vdso]
|
||||||
|
ffffffffff600000-ffffffffff601000 --xp 00000000 00:00 0 [vsyscall]
|
||||||
|
Mode: 644
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
Path: fixtures/proc/26232/root
|
Path: fixtures/proc/26232/root
|
||||||
SymlinkTo: /does/not/exist
|
SymlinkTo: /does/not/exist
|
||||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
@ -297,6 +592,11 @@ Lines: 1
|
|||||||
33 (ata_sff) S 2 0 0 0 -1 69238880 0 0 0 0 0 0 0 0 0 -20 1 0 5 0 0 18446744073709551615 0 0 0 0 0 0 0 2147483647 0 18446744073709551615 0 0 17 1 0 0 0 0 0 0 0 0 0 0 0 0 0
|
33 (ata_sff) S 2 0 0 0 -1 69238880 0 0 0 0 0 0 0 0 0 -20 1 0 5 0 0 18446744073709551615 0 0 0 0 0 0 0 2147483647 0 18446744073709551615 0 0 17 1 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||||
Mode: 644
|
Mode: 644
|
||||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/proc/26232/wchan
|
||||||
|
Lines: 1
|
||||||
|
0EOF
|
||||||
|
Mode: 664
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
Directory: fixtures/proc/26233
|
Directory: fixtures/proc/26233
|
||||||
Mode: 755
|
Mode: 755
|
||||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
@ -317,6 +617,17 @@ Lines: 8
|
|||||||
|| ||
|
|| ||
|
||||||
Mode: 644
|
Mode: 644
|
||||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Directory: fixtures/proc/26234
|
||||||
|
Mode: 755
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/proc/26234/maps
|
||||||
|
Lines: 4
|
||||||
|
08048000-08089000 r-xp 00000000 03:01 104219 /bin/tcsh
|
||||||
|
08089000-0808c000 rw-p 00041000 03:01 104219 /bin/tcsh
|
||||||
|
0808c000-08146000 rwxp 00000000 00:00 0
|
||||||
|
40000000-40015000 r-xp 00000000 03:01 61874 /lib/ld-2.3.2.so
|
||||||
|
Mode: 644
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
Directory: fixtures/proc/584
|
Directory: fixtures/proc/584
|
||||||
Mode: 755
|
Mode: 755
|
||||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
@ -554,7 +865,7 @@ power management:
|
|||||||
Mode: 444
|
Mode: 444
|
||||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
Path: fixtures/proc/crypto
|
Path: fixtures/proc/crypto
|
||||||
Lines: 971
|
Lines: 972
|
||||||
name : ccm(aes)
|
name : ccm(aes)
|
||||||
driver : ccm_base(ctr(aes-aesni),cbcmac(aes-aesni))
|
driver : ccm_base(ctr(aes-aesni),cbcmac(aes-aesni))
|
||||||
module : ccm
|
module : ccm
|
||||||
@ -588,6 +899,7 @@ refcnt : 1
|
|||||||
selftest : passed
|
selftest : passed
|
||||||
internal : no
|
internal : no
|
||||||
type : kpp
|
type : kpp
|
||||||
|
async : yes
|
||||||
|
|
||||||
name : ecb(arc4)
|
name : ecb(arc4)
|
||||||
driver : ecb(arc4)-generic
|
driver : ecb(arc4)-generic
|
||||||
@ -1529,7 +1841,7 @@ max keysize : 32
|
|||||||
Mode: 444
|
Mode: 444
|
||||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
Path: fixtures/proc/diskstats
|
Path: fixtures/proc/diskstats
|
||||||
Lines: 49
|
Lines: 52
|
||||||
1 0 ram0 0 0 0 0 0 0 0 0 0 0 0
|
1 0 ram0 0 0 0 0 0 0 0 0 0 0 0
|
||||||
1 1 ram1 0 0 0 0 0 0 0 0 0 0 0
|
1 1 ram1 0 0 0 0 0 0 0 0 0 0 0
|
||||||
1 2 ram2 0 0 0 0 0 0 0 0 0 0 0
|
1 2 ram2 0 0 0 0 0 0 0 0 0 0 0
|
||||||
@ -1579,11 +1891,45 @@ Lines: 49
|
|||||||
8 0 sdb 326552 841 9657779 84 41822 2895 1972905 5007 0 60730 67070 68851 0 1925173784 11130
|
8 0 sdb 326552 841 9657779 84 41822 2895 1972905 5007 0 60730 67070 68851 0 1925173784 11130
|
||||||
8 1 sdb1 231 3 34466 4 24 23 106 0 0 64 64 0 0 0 0
|
8 1 sdb1 231 3 34466 4 24 23 106 0 0 64 64 0 0 0 0
|
||||||
8 2 sdb2 326310 838 9622281 67 40726 2872 1972799 4924 0 58250 64567 68851 0 1925173784 11130
|
8 2 sdb2 326310 838 9622281 67 40726 2872 1972799 4924 0 58250 64567 68851 0 1925173784 11130
|
||||||
|
8 0 sdc 14202 71 579164 21861 2995 1589 180500 40875 0 11628 55200 0 0 0 0 127 182
|
||||||
|
8 1 sdc1 1027 0 13795 5021 2 0 4096 3 0 690 4579 0 0 0 0 0 0
|
||||||
|
8 2 sdc2 13126 71 561749 16802 2830 1589 176404 40620 0 10931 50449 0 0 0 0 0 0
|
||||||
Mode: 664
|
Mode: 664
|
||||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
Directory: fixtures/proc/fs
|
Directory: fixtures/proc/fs
|
||||||
Mode: 755
|
Mode: 755
|
||||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Directory: fixtures/proc/fs/fscache
|
||||||
|
Mode: 755
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/proc/fs/fscache/stats
|
||||||
|
Lines: 24
|
||||||
|
FS-Cache statistics
|
||||||
|
Cookies: idx=3 dat=67877 spc=0
|
||||||
|
Objects: alc=67473 nal=0 avl=67473 ded=388
|
||||||
|
ChkAux : non=12 ok=33 upd=44 obs=55
|
||||||
|
Pages : mrk=547164 unc=364577
|
||||||
|
Acquire: n=67880 nul=98 noc=25 ok=67780 nbf=39 oom=26
|
||||||
|
Lookups: n=67473 neg=67470 pos=58 crt=67473 tmo=85
|
||||||
|
Invals : n=14 run=13
|
||||||
|
Updates: n=7 nul=3 run=8
|
||||||
|
Relinqs: n=394 nul=1 wcr=2 rtr=3
|
||||||
|
AttrChg: n=6 ok=5 nbf=4 oom=3 run=2
|
||||||
|
Allocs : n=20 ok=19 wt=18 nbf=17 int=16
|
||||||
|
Allocs : ops=15 owt=14 abt=13
|
||||||
|
Retrvls: n=151959 ok=82823 wt=23467 nod=69136 nbf=15 int=69 oom=43
|
||||||
|
Retrvls: ops=151959 owt=42747 abt=44
|
||||||
|
Stores : n=225565 ok=225565 agn=12 nbf=13 oom=14
|
||||||
|
Stores : ops=69156 run=294721 pgs=225565 rxd=225565 olm=43
|
||||||
|
VmScan : nos=364512 gon=2 bsy=43 can=12 wt=66
|
||||||
|
Ops : pend=42753 run=221129 enq=628798 can=11 rej=88
|
||||||
|
Ops : ini=377538 dfr=27 rel=377538 gc=37
|
||||||
|
CacheOp: alo=1 luo=2 luc=3 gro=4
|
||||||
|
CacheOp: inv=5 upo=6 dro=7 pto=8 atc=9 syn=10
|
||||||
|
CacheOp: rap=11 ras=12 alp=13 als=14 wrp=15 ucp=16 dsp=17
|
||||||
|
CacheEv: nsp=18 stl=19 rtr=20 cul=21EOF
|
||||||
|
Mode: 644
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
Directory: fixtures/proc/fs/xfs
|
Directory: fixtures/proc/fs/xfs
|
||||||
Mode: 755
|
Mode: 755
|
||||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
@ -1614,6 +1960,11 @@ xpc 399724544 92823103 86219234
|
|||||||
debug 0
|
debug 0
|
||||||
Mode: 644
|
Mode: 644
|
||||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/proc/loadavg
|
||||||
|
Lines: 1
|
||||||
|
0.02 0.04 0.05 1/497 11947
|
||||||
|
Mode: 444
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
Path: fixtures/proc/mdstat
|
Path: fixtures/proc/mdstat
|
||||||
Lines: 56
|
Lines: 56
|
||||||
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
|
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
|
||||||
@ -1821,8 +2172,35 @@ FRAG6: inuse 0 memory 0
|
|||||||
Mode: 444
|
Mode: 444
|
||||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
Path: fixtures/proc/net/softnet_stat
|
Path: fixtures/proc/net/softnet_stat
|
||||||
Lines: 1
|
Lines: 2
|
||||||
00015c73 00020e76 F0000769 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
|
00015c73 00020e76 F0000769 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
|
||||||
|
01663fb2 00000000 000109a4 00000000 00000000 00000000 00000000 00000000 00000000
|
||||||
|
Mode: 644
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/proc/net/softnet_stat.broken
|
||||||
|
Lines: 1
|
||||||
|
00015c73 00020e76 F0000769 00000000
|
||||||
|
Mode: 644
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/proc/net/udp
|
||||||
|
Lines: 4
|
||||||
|
sl local_address rem_address st tx_queue rx_queue tr tm->when retrnsmt uid timeout inode
|
||||||
|
0: 0A000005:0016 00000000:0000 0A 00000000:00000001 00:00000000 00000000 0 0 2740 1 ffff88003d3af3c0 100 0 0 10 0
|
||||||
|
1: 00000000:0016 00000000:0000 0A 00000001:00000000 00:00000000 00000000 0 0 2740 1 ffff88003d3af3c0 100 0 0 10 0
|
||||||
|
2: 00000000:0016 00000000:0000 0A 00000001:00000001 00:00000000 00000000 0 0 2740 1 ffff88003d3af3c0 100 0 0 10 0
|
||||||
|
Mode: 644
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/proc/net/udp6
|
||||||
|
Lines: 3
|
||||||
|
sl local_address remote_address st tx_queue rx_queue tr tm->when retrnsmt uid timeout inode ref pointer drops
|
||||||
|
1315: 00000000000000000000000000000000:14EB 00000000000000000000000000000000:0000 07 00000000:00000000 00:00000000 00000000 981 0 21040 2 0000000013726323 0
|
||||||
|
6073: 000080FE00000000FFADE15609667CFE:C781 00000000000000000000000000000000:0000 07 00000000:00000000 00:00000000 00000000 1000 0 11337031 2 00000000b9256fdd 0
|
||||||
|
Mode: 644
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/proc/net/udp_broken
|
||||||
|
Lines: 2
|
||||||
|
sl local_address rem_address st
|
||||||
|
1: 00000000:0016 00000000:0000 0A
|
||||||
Mode: 644
|
Mode: 644
|
||||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
Path: fixtures/proc/net/unix
|
Path: fixtures/proc/net/unix
|
||||||
@ -1930,6 +2308,12 @@ procs_blocked 1
|
|||||||
softirq 5057579 250191 1481983 1647 211099 186066 0 1783454 622196 12499 508444
|
softirq 5057579 250191 1481983 1647 211099 186066 0 1783454 622196 12499 508444
|
||||||
Mode: 644
|
Mode: 644
|
||||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/proc/swaps
|
||||||
|
Lines: 2
|
||||||
|
Filename Type Size Used Priority
|
||||||
|
/dev/dm-2 partition 131068 176 -2
|
||||||
|
Mode: 444
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
Directory: fixtures/proc/symlinktargets
|
Directory: fixtures/proc/symlinktargets
|
||||||
Mode: 755
|
Mode: 755
|
||||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
@ -1962,6 +2346,32 @@ Mode: 644
|
|||||||
Directory: fixtures/proc/sys
|
Directory: fixtures/proc/sys
|
||||||
Mode: 775
|
Mode: 775
|
||||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Directory: fixtures/proc/sys/kernel
|
||||||
|
Mode: 775
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Directory: fixtures/proc/sys/kernel/random
|
||||||
|
Mode: 755
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/proc/sys/kernel/random/entropy_avail
|
||||||
|
Lines: 1
|
||||||
|
3943
|
||||||
|
Mode: 644
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/proc/sys/kernel/random/poolsize
|
||||||
|
Lines: 1
|
||||||
|
4096
|
||||||
|
Mode: 644
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/proc/sys/kernel/random/urandom_min_reseed_secs
|
||||||
|
Lines: 1
|
||||||
|
60
|
||||||
|
Mode: 644
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/proc/sys/kernel/random/write_wakeup_threshold
|
||||||
|
Lines: 1
|
||||||
|
3072
|
||||||
|
Mode: 644
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
Directory: fixtures/proc/sys/vm
|
Directory: fixtures/proc/sys/vm
|
||||||
Mode: 775
|
Mode: 775
|
||||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
@ -2463,6 +2873,237 @@ Mode: 664
|
|||||||
Directory: fixtures/sys/block/sda
|
Directory: fixtures/sys/block/sda
|
||||||
Mode: 775
|
Mode: 775
|
||||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Directory: fixtures/sys/block/sda/queue
|
||||||
|
Mode: 755
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/block/sda/queue/add_random
|
||||||
|
Lines: 1
|
||||||
|
1
|
||||||
|
Mode: 644
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/block/sda/queue/chunk_sectors
|
||||||
|
Lines: 1
|
||||||
|
0
|
||||||
|
Mode: 444
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/block/sda/queue/dax
|
||||||
|
Lines: 1
|
||||||
|
0
|
||||||
|
Mode: 444
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/block/sda/queue/discard_granularity
|
||||||
|
Lines: 1
|
||||||
|
0
|
||||||
|
Mode: 444
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/block/sda/queue/discard_max_bytes
|
||||||
|
Lines: 1
|
||||||
|
0
|
||||||
|
Mode: 644
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/block/sda/queue/discard_max_hw_bytes
|
||||||
|
Lines: 1
|
||||||
|
0
|
||||||
|
Mode: 444
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/block/sda/queue/discard_zeroes_data
|
||||||
|
Lines: 1
|
||||||
|
0
|
||||||
|
Mode: 444
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/block/sda/queue/fua
|
||||||
|
Lines: 1
|
||||||
|
0
|
||||||
|
Mode: 444
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/block/sda/queue/hw_sector_size
|
||||||
|
Lines: 1
|
||||||
|
512
|
||||||
|
Mode: 444
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/block/sda/queue/io_poll
|
||||||
|
Lines: 1
|
||||||
|
0
|
||||||
|
Mode: 644
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/block/sda/queue/io_poll_delay
|
||||||
|
Lines: 1
|
||||||
|
-1
|
||||||
|
Mode: 644
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/block/sda/queue/io_timeout
|
||||||
|
Lines: 1
|
||||||
|
30000
|
||||||
|
Mode: 644
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Directory: fixtures/sys/block/sda/queue/iosched
|
||||||
|
Mode: 755
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/block/sda/queue/iosched/back_seek_max
|
||||||
|
Lines: 1
|
||||||
|
16384
|
||||||
|
Mode: 644
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/block/sda/queue/iosched/back_seek_penalty
|
||||||
|
Lines: 1
|
||||||
|
2
|
||||||
|
Mode: 644
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/block/sda/queue/iosched/fifo_expire_async
|
||||||
|
Lines: 1
|
||||||
|
250
|
||||||
|
Mode: 644
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/block/sda/queue/iosched/fifo_expire_sync
|
||||||
|
Lines: 1
|
||||||
|
125
|
||||||
|
Mode: 644
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/block/sda/queue/iosched/low_latency
|
||||||
|
Lines: 1
|
||||||
|
1
|
||||||
|
Mode: 644
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/block/sda/queue/iosched/max_budget
|
||||||
|
Lines: 1
|
||||||
|
0
|
||||||
|
Mode: 644
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/block/sda/queue/iosched/slice_idle
|
||||||
|
Lines: 1
|
||||||
|
8
|
||||||
|
Mode: 644
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/block/sda/queue/iosched/slice_idle_us
|
||||||
|
Lines: 1
|
||||||
|
8000
|
||||||
|
Mode: 644
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/block/sda/queue/iosched/strict_guarantees
|
||||||
|
Lines: 1
|
||||||
|
0
|
||||||
|
Mode: 644
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/block/sda/queue/iosched/timeout_sync
|
||||||
|
Lines: 1
|
||||||
|
125
|
||||||
|
Mode: 644
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/block/sda/queue/iostats
|
||||||
|
Lines: 1
|
||||||
|
1
|
||||||
|
Mode: 644
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/block/sda/queue/logical_block_size
|
||||||
|
Lines: 1
|
||||||
|
512
|
||||||
|
Mode: 444
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/block/sda/queue/max_discard_segments
|
||||||
|
Lines: 1
|
||||||
|
1
|
||||||
|
Mode: 444
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/block/sda/queue/max_hw_sectors_kb
|
||||||
|
Lines: 1
|
||||||
|
32767
|
||||||
|
Mode: 444
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/block/sda/queue/max_integrity_segments
|
||||||
|
Lines: 1
|
||||||
|
0
|
||||||
|
Mode: 444
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/block/sda/queue/max_sectors_kb
|
||||||
|
Lines: 1
|
||||||
|
1280
|
||||||
|
Mode: 644
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/block/sda/queue/max_segment_size
|
||||||
|
Lines: 1
|
||||||
|
65536
|
||||||
|
Mode: 444
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/block/sda/queue/max_segments
|
||||||
|
Lines: 1
|
||||||
|
168
|
||||||
|
Mode: 444
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/block/sda/queue/minimum_io_size
|
||||||
|
Lines: 1
|
||||||
|
512
|
||||||
|
Mode: 444
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/block/sda/queue/nomerges
|
||||||
|
Lines: 1
|
||||||
|
0
|
||||||
|
Mode: 644
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/block/sda/queue/nr_requests
|
||||||
|
Lines: 1
|
||||||
|
64
|
||||||
|
Mode: 644
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/block/sda/queue/nr_zones
|
||||||
|
Lines: 1
|
||||||
|
0
|
||||||
|
Mode: 444
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/block/sda/queue/optimal_io_size
|
||||||
|
Lines: 1
|
||||||
|
0
|
||||||
|
Mode: 444
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/block/sda/queue/physical_block_size
|
||||||
|
Lines: 1
|
||||||
|
512
|
||||||
|
Mode: 444
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/block/sda/queue/read_ahead_kb
|
||||||
|
Lines: 1
|
||||||
|
128
|
||||||
|
Mode: 644
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/block/sda/queue/rotational
|
||||||
|
Lines: 1
|
||||||
|
1
|
||||||
|
Mode: 644
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/block/sda/queue/rq_affinity
|
||||||
|
Lines: 1
|
||||||
|
1
|
||||||
|
Mode: 644
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/block/sda/queue/scheduler
|
||||||
|
Lines: 1
|
||||||
|
mq-deadline kyber [bfq] none
|
||||||
|
Mode: 644
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/block/sda/queue/wbt_lat_usec
|
||||||
|
Lines: 1
|
||||||
|
75000
|
||||||
|
Mode: 644
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/block/sda/queue/write_cache
|
||||||
|
Lines: 1
|
||||||
|
write back
|
||||||
|
Mode: 644
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/block/sda/queue/write_same_max_bytes
|
||||||
|
Lines: 1
|
||||||
|
0
|
||||||
|
Mode: 444
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/block/sda/queue/write_zeroes_max_bytes
|
||||||
|
Lines: 1
|
||||||
|
0
|
||||||
|
Mode: 444
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/block/sda/queue/zoned
|
||||||
|
Lines: 1
|
||||||
|
none
|
||||||
|
Mode: 444
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
Path: fixtures/sys/block/sda/stat
|
Path: fixtures/sys/block/sda/stat
|
||||||
Lines: 1
|
Lines: 1
|
||||||
9652963 396792 759304206 412943 8422549 6731723 286915323 13947418 0 5658367 19174573 1 2 3 12
|
9652963 396792 759304206 412943 8422549 6731723 286915323 13947418 0 5658367 19174573 1 2 3 12
|
||||||
@ -2471,6 +3112,140 @@ Mode: 664
|
|||||||
Directory: fixtures/sys/class
|
Directory: fixtures/sys/class
|
||||||
Mode: 775
|
Mode: 775
|
||||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Directory: fixtures/sys/class/fc_host
|
||||||
|
Mode: 755
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Directory: fixtures/sys/class/fc_host/host0
|
||||||
|
Mode: 755
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/class/fc_host/host0/dev_loss_tmo
|
||||||
|
Lines: 1
|
||||||
|
30
|
||||||
|
Mode: 644
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/class/fc_host/host0/fabric_name
|
||||||
|
Lines: 1
|
||||||
|
0x0
|
||||||
|
Mode: 644
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/class/fc_host/host0/node_name
|
||||||
|
Lines: 1
|
||||||
|
0x2000e0071bce95f2
|
||||||
|
Mode: 644
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/class/fc_host/host0/port_id
|
||||||
|
Lines: 1
|
||||||
|
0x000002
|
||||||
|
Mode: 644
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/class/fc_host/host0/port_name
|
||||||
|
Lines: 1
|
||||||
|
0x1000e0071bce95f2
|
||||||
|
Mode: 644
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/class/fc_host/host0/port_state
|
||||||
|
Lines: 1
|
||||||
|
Online
|
||||||
|
Mode: 644
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/class/fc_host/host0/port_type
|
||||||
|
Lines: 1
|
||||||
|
Point-To-Point (direct nport connection)
|
||||||
|
Mode: 644
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/class/fc_host/host0/speed
|
||||||
|
Lines: 1
|
||||||
|
16 Gbit
|
||||||
|
Mode: 644
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Directory: fixtures/sys/class/fc_host/host0/statistics
|
||||||
|
Mode: 755
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/class/fc_host/host0/statistics/dumped_frames
|
||||||
|
Lines: 1
|
||||||
|
0xffffffffffffffff
|
||||||
|
Mode: 644
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/class/fc_host/host0/statistics/error_frames
|
||||||
|
Lines: 1
|
||||||
|
0x0
|
||||||
|
Mode: 644
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/class/fc_host/host0/statistics/fcp_packet_aborts
|
||||||
|
Lines: 1
|
||||||
|
0x13
|
||||||
|
Mode: 644
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/class/fc_host/host0/statistics/invalid_crc_count
|
||||||
|
Lines: 1
|
||||||
|
0x2
|
||||||
|
Mode: 644
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/class/fc_host/host0/statistics/invalid_tx_word_count
|
||||||
|
Lines: 1
|
||||||
|
0x8
|
||||||
|
Mode: 644
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/class/fc_host/host0/statistics/link_failure_count
|
||||||
|
Lines: 1
|
||||||
|
0x9
|
||||||
|
Mode: 644
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/class/fc_host/host0/statistics/loss_of_signal_count
|
||||||
|
Lines: 1
|
||||||
|
0x11
|
||||||
|
Mode: 644
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/class/fc_host/host0/statistics/loss_of_sync_count
|
||||||
|
Lines: 1
|
||||||
|
0x10
|
||||||
|
Mode: 644
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/class/fc_host/host0/statistics/nos_count
|
||||||
|
Lines: 1
|
||||||
|
0x12
|
||||||
|
Mode: 644
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/class/fc_host/host0/statistics/rx_frames
|
||||||
|
Lines: 1
|
||||||
|
0x3
|
||||||
|
Mode: 644
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/class/fc_host/host0/statistics/rx_words
|
||||||
|
Lines: 1
|
||||||
|
0x4
|
||||||
|
Mode: 644
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/class/fc_host/host0/statistics/seconds_since_last_reset
|
||||||
|
Lines: 1
|
||||||
|
0x7
|
||||||
|
Mode: 644
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/class/fc_host/host0/statistics/tx_frames
|
||||||
|
Lines: 1
|
||||||
|
0x5
|
||||||
|
Mode: 644
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/class/fc_host/host0/statistics/tx_words
|
||||||
|
Lines: 1
|
||||||
|
0x6
|
||||||
|
Mode: 644
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/class/fc_host/host0/supported_classes
|
||||||
|
Lines: 1
|
||||||
|
Class 3
|
||||||
|
Mode: 644
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/class/fc_host/host0/supported_speeds
|
||||||
|
Lines: 1
|
||||||
|
4 Gbit, 8 Gbit, 16 Gbit
|
||||||
|
Mode: 644
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/class/fc_host/host0/symbolic_name
|
||||||
|
Lines: 1
|
||||||
|
Emulex SN1100E2P FV12.4.270.3 DV12.4.0.0. HN:gotest. OS:Linux
|
||||||
|
Mode: 644
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
Directory: fixtures/sys/class/infiniband
|
Directory: fixtures/sys/class/infiniband
|
||||||
Mode: 755
|
Mode: 755
|
||||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
@ -2501,6 +3276,11 @@ Mode: 755
|
|||||||
Directory: fixtures/sys/class/infiniband/mlx4_0/ports/1/counters
|
Directory: fixtures/sys/class/infiniband/mlx4_0/ports/1/counters
|
||||||
Mode: 755
|
Mode: 755
|
||||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/class/infiniband/mlx4_0/ports/1/counters/VL15_dropped
|
||||||
|
Lines: 1
|
||||||
|
0
|
||||||
|
Mode: 664
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
Path: fixtures/sys/class/infiniband/mlx4_0/ports/1/counters/excessive_buffer_overrun_errors
|
Path: fixtures/sys/class/infiniband/mlx4_0/ports/1/counters/excessive_buffer_overrun_errors
|
||||||
Lines: 1
|
Lines: 1
|
||||||
0
|
0
|
||||||
@ -2602,6 +3382,11 @@ Mode: 755
|
|||||||
Directory: fixtures/sys/class/infiniband/mlx4_0/ports/2/counters
|
Directory: fixtures/sys/class/infiniband/mlx4_0/ports/2/counters
|
||||||
Mode: 755
|
Mode: 755
|
||||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/class/infiniband/mlx4_0/ports/2/counters/VL15_dropped
|
||||||
|
Lines: 1
|
||||||
|
0
|
||||||
|
Mode: 664
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
Path: fixtures/sys/class/infiniband/mlx4_0/ports/2/counters/excessive_buffer_overrun_errors
|
Path: fixtures/sys/class/infiniband/mlx4_0/ports/2/counters/excessive_buffer_overrun_errors
|
||||||
Lines: 1
|
Lines: 1
|
||||||
0
|
0
|
||||||
@ -3046,7 +3831,7 @@ Mode: 664
|
|||||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
Path: fixtures/sys/class/thermal/thermal_zone1/temp
|
Path: fixtures/sys/class/thermal/thermal_zone1/temp
|
||||||
Lines: 1
|
Lines: 1
|
||||||
44000
|
-44000
|
||||||
Mode: 664
|
Mode: 664
|
||||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
Path: fixtures/sys/class/thermal/thermal_zone1/type
|
Path: fixtures/sys/class/thermal/thermal_zone1/type
|
||||||
@ -4224,6 +5009,17 @@ Lines: 1
|
|||||||
0
|
0
|
||||||
Mode: 644
|
Mode: 644
|
||||||
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Path: fixtures/sys/fs/bcache/deaddd54-c735-46d5-868e-f331c5fd7c74/bdev0/writeback_rate_debug
|
||||||
|
Lines: 7
|
||||||
|
rate: 1.1M/sec
|
||||||
|
dirty: 20.4G
|
||||||
|
target: 20.4G
|
||||||
|
proportional: 427.5k
|
||||||
|
integral: 790.0k
|
||||||
|
change: 321.5k/sec
|
||||||
|
next io: 17ms
|
||||||
|
Mode: 644
|
||||||
|
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
Path: fixtures/sys/fs/bcache/deaddd54-c735-46d5-868e-f331c5fd7c74/btree_cache_size
|
Path: fixtures/sys/fs/bcache/deaddd54-c735-46d5-868e-f331c5fd7c74/btree_cache_size
|
||||||
Lines: 1
|
Lines: 1
|
||||||
0
|
0
|
||||||
|
|||||||
422
vendor/github.com/prometheus/procfs/fscache.go
generated
vendored
Normal file
422
vendor/github.com/prometheus/procfs/fscache.go
generated
vendored
Normal file
@ -0,0 +1,422 @@
|
|||||||
|
// Copyright 2019 The Prometheus Authors
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
package procfs
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bufio"
|
||||||
|
"bytes"
|
||||||
|
"fmt"
|
||||||
|
"io"
|
||||||
|
"strconv"
|
||||||
|
"strings"
|
||||||
|
|
||||||
|
"github.com/prometheus/procfs/internal/util"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Fscacheinfo represents fscache statistics.
|
||||||
|
type Fscacheinfo struct {
|
||||||
|
// Number of index cookies allocated
|
||||||
|
IndexCookiesAllocated uint64
|
||||||
|
// data storage cookies allocated
|
||||||
|
DataStorageCookiesAllocated uint64
|
||||||
|
// Number of special cookies allocated
|
||||||
|
SpecialCookiesAllocated uint64
|
||||||
|
// Number of objects allocated
|
||||||
|
ObjectsAllocated uint64
|
||||||
|
// Number of object allocation failures
|
||||||
|
ObjectAllocationsFailure uint64
|
||||||
|
// Number of objects that reached the available state
|
||||||
|
ObjectsAvailable uint64
|
||||||
|
// Number of objects that reached the dead state
|
||||||
|
ObjectsDead uint64
|
||||||
|
// Number of objects that didn't have a coherency check
|
||||||
|
ObjectsWithoutCoherencyCheck uint64
|
||||||
|
// Number of objects that passed a coherency check
|
||||||
|
ObjectsWithCoherencyCheck uint64
|
||||||
|
// Number of objects that needed a coherency data update
|
||||||
|
ObjectsNeedCoherencyCheckUpdate uint64
|
||||||
|
// Number of objects that were declared obsolete
|
||||||
|
ObjectsDeclaredObsolete uint64
|
||||||
|
// Number of pages marked as being cached
|
||||||
|
PagesMarkedAsBeingCached uint64
|
||||||
|
// Number of uncache page requests seen
|
||||||
|
UncachePagesRequestSeen uint64
|
||||||
|
// Number of acquire cookie requests seen
|
||||||
|
AcquireCookiesRequestSeen uint64
|
||||||
|
// Number of acq reqs given a NULL parent
|
||||||
|
AcquireRequestsWithNullParent uint64
|
||||||
|
// Number of acq reqs rejected due to no cache available
|
||||||
|
AcquireRequestsRejectedNoCacheAvailable uint64
|
||||||
|
// Number of acq reqs succeeded
|
||||||
|
AcquireRequestsSucceeded uint64
|
||||||
|
// Number of acq reqs rejected due to error
|
||||||
|
AcquireRequestsRejectedDueToError uint64
|
||||||
|
// Number of acq reqs failed on ENOMEM
|
||||||
|
AcquireRequestsFailedDueToEnomem uint64
|
||||||
|
// Number of lookup calls made on cache backends
|
||||||
|
LookupsNumber uint64
|
||||||
|
// Number of negative lookups made
|
||||||
|
LookupsNegative uint64
|
||||||
|
// Number of positive lookups made
|
||||||
|
LookupsPositive uint64
|
||||||
|
// Number of objects created by lookup
|
||||||
|
ObjectsCreatedByLookup uint64
|
||||||
|
// Number of lookups timed out and requeued
|
||||||
|
LookupsTimedOutAndRequed uint64
|
||||||
|
InvalidationsNumber uint64
|
||||||
|
InvalidationsRunning uint64
|
||||||
|
// Number of update cookie requests seen
|
||||||
|
UpdateCookieRequestSeen uint64
|
||||||
|
// Number of upd reqs given a NULL parent
|
||||||
|
UpdateRequestsWithNullParent uint64
|
||||||
|
// Number of upd reqs granted CPU time
|
||||||
|
UpdateRequestsRunning uint64
|
||||||
|
// Number of relinquish cookie requests seen
|
||||||
|
RelinquishCookiesRequestSeen uint64
|
||||||
|
// Number of rlq reqs given a NULL parent
|
||||||
|
RelinquishCookiesWithNullParent uint64
|
||||||
|
// Number of rlq reqs waited on completion of creation
|
||||||
|
RelinquishRequestsWaitingCompleteCreation uint64
|
||||||
|
// Relinqs rtr
|
||||||
|
RelinquishRetries uint64
|
||||||
|
// Number of attribute changed requests seen
|
||||||
|
AttributeChangedRequestsSeen uint64
|
||||||
|
// Number of attr changed requests queued
|
||||||
|
AttributeChangedRequestsQueued uint64
|
||||||
|
// Number of attr changed rejected -ENOBUFS
|
||||||
|
AttributeChangedRejectDueToEnobufs uint64
|
||||||
|
// Number of attr changed failed -ENOMEM
|
||||||
|
AttributeChangedFailedDueToEnomem uint64
|
||||||
|
// Number of attr changed ops given CPU time
|
||||||
|
AttributeChangedOps uint64
|
||||||
|
// Number of allocation requests seen
|
||||||
|
AllocationRequestsSeen uint64
|
||||||
|
// Number of successful alloc reqs
|
||||||
|
AllocationOkRequests uint64
|
||||||
|
// Number of alloc reqs that waited on lookup completion
|
||||||
|
AllocationWaitingOnLookup uint64
|
||||||
|
// Number of alloc reqs rejected -ENOBUFS
|
||||||
|
AllocationsRejectedDueToEnobufs uint64
|
||||||
|
// Number of alloc reqs aborted -ERESTARTSYS
|
||||||
|
AllocationsAbortedDueToErestartsys uint64
|
||||||
|
// Number of alloc reqs submitted
|
||||||
|
AllocationOperationsSubmitted uint64
|
||||||
|
// Number of alloc reqs waited for CPU time
|
||||||
|
AllocationsWaitedForCPU uint64
|
||||||
|
// Number of alloc reqs aborted due to object death
|
||||||
|
AllocationsAbortedDueToObjectDeath uint64
|
||||||
|
// Number of retrieval (read) requests seen
|
||||||
|
RetrievalsReadRequests uint64
|
||||||
|
// Number of successful retr reqs
|
||||||
|
RetrievalsOk uint64
|
||||||
|
// Number of retr reqs that waited on lookup completion
|
||||||
|
RetrievalsWaitingLookupCompletion uint64
|
||||||
|
// Number of retr reqs returned -ENODATA
|
||||||
|
RetrievalsReturnedEnodata uint64
|
||||||
|
// Number of retr reqs rejected -ENOBUFS
|
||||||
|
RetrievalsRejectedDueToEnobufs uint64
|
||||||
|
// Number of retr reqs aborted -ERESTARTSYS
|
||||||
|
RetrievalsAbortedDueToErestartsys uint64
|
||||||
|
// Number of retr reqs failed -ENOMEM
|
||||||
|
RetrievalsFailedDueToEnomem uint64
|
||||||
|
// Number of retr reqs submitted
|
||||||
|
RetrievalsRequests uint64
|
||||||
|
// Number of retr reqs waited for CPU time
|
||||||
|
RetrievalsWaitingCPU uint64
|
||||||
|
// Number of retr reqs aborted due to object death
|
||||||
|
RetrievalsAbortedDueToObjectDeath uint64
|
||||||
|
// Number of storage (write) requests seen
|
||||||
|
StoreWriteRequests uint64
|
||||||
|
// Number of successful store reqs
|
||||||
|
StoreSuccessfulRequests uint64
|
||||||
|
// Number of store reqs on a page already pending storage
|
||||||
|
StoreRequestsOnPendingStorage uint64
|
||||||
|
// Number of store reqs rejected -ENOBUFS
|
||||||
|
StoreRequestsRejectedDueToEnobufs uint64
|
||||||
|
// Number of store reqs failed -ENOMEM
|
||||||
|
StoreRequestsFailedDueToEnomem uint64
|
||||||
|
// Number of store reqs submitted
|
||||||
|
StoreRequestsSubmitted uint64
|
||||||
|
// Number of store reqs granted CPU time
|
||||||
|
StoreRequestsRunning uint64
|
||||||
|
// Number of pages given store req processing time
|
||||||
|
StorePagesWithRequestsProcessing uint64
|
||||||
|
// Number of store reqs deleted from tracking tree
|
||||||
|
StoreRequestsDeleted uint64
|
||||||
|
// Number of store reqs over store limit
|
||||||
|
StoreRequestsOverStoreLimit uint64
|
||||||
|
// Number of release reqs against pages with no pending store
|
||||||
|
ReleaseRequestsAgainstPagesWithNoPendingStorage uint64
|
||||||
|
// Number of release reqs against pages stored by time lock granted
|
||||||
|
ReleaseRequestsAgainstPagesStoredByTimeLockGranted uint64
|
||||||
|
// Number of release reqs ignored due to in-progress store
|
||||||
|
ReleaseRequestsIgnoredDueToInProgressStore uint64
|
||||||
|
// Number of page stores cancelled due to release req
|
||||||
|
PageStoresCancelledByReleaseRequests uint64
|
||||||
|
VmscanWaiting uint64
|
||||||
|
// Number of times async ops added to pending queues
|
||||||
|
OpsPending uint64
|
||||||
|
// Number of times async ops given CPU time
|
||||||
|
OpsRunning uint64
|
||||||
|
// Number of times async ops queued for processing
|
||||||
|
OpsEnqueued uint64
|
||||||
|
// Number of async ops cancelled
|
||||||
|
OpsCancelled uint64
|
||||||
|
// Number of async ops rejected due to object lookup/create failure
|
||||||
|
OpsRejected uint64
|
||||||
|
// Number of async ops initialised
|
||||||
|
OpsInitialised uint64
|
||||||
|
// Number of async ops queued for deferred release
|
||||||
|
OpsDeferred uint64
|
||||||
|
// Number of async ops released (should equal ini=N when idle)
|
||||||
|
OpsReleased uint64
|
||||||
|
// Number of deferred-release async ops garbage collected
|
||||||
|
OpsGarbageCollected uint64
|
||||||
|
// Number of in-progress alloc_object() cache ops
|
||||||
|
CacheopAllocationsinProgress uint64
|
||||||
|
// Number of in-progress lookup_object() cache ops
|
||||||
|
CacheopLookupObjectInProgress uint64
|
||||||
|
// Number of in-progress lookup_complete() cache ops
|
||||||
|
CacheopLookupCompleteInPorgress uint64
|
||||||
|
// Number of in-progress grab_object() cache ops
|
||||||
|
CacheopGrabObjectInProgress uint64
|
||||||
|
CacheopInvalidations uint64
|
||||||
|
// Number of in-progress update_object() cache ops
|
||||||
|
CacheopUpdateObjectInProgress uint64
|
||||||
|
// Number of in-progress drop_object() cache ops
|
||||||
|
CacheopDropObjectInProgress uint64
|
||||||
|
// Number of in-progress put_object() cache ops
|
||||||
|
CacheopPutObjectInProgress uint64
|
||||||
|
// Number of in-progress attr_changed() cache ops
|
||||||
|
CacheopAttributeChangeInProgress uint64
|
||||||
|
// Number of in-progress sync_cache() cache ops
|
||||||
|
CacheopSyncCacheInProgress uint64
|
||||||
|
// Number of in-progress read_or_alloc_page() cache ops
|
||||||
|
CacheopReadOrAllocPageInProgress uint64
|
||||||
|
// Number of in-progress read_or_alloc_pages() cache ops
|
||||||
|
CacheopReadOrAllocPagesInProgress uint64
|
||||||
|
// Number of in-progress allocate_page() cache ops
|
||||||
|
CacheopAllocatePageInProgress uint64
|
||||||
|
// Number of in-progress allocate_pages() cache ops
|
||||||
|
CacheopAllocatePagesInProgress uint64
|
||||||
|
// Number of in-progress write_page() cache ops
|
||||||
|
CacheopWritePagesInProgress uint64
|
||||||
|
// Number of in-progress uncache_page() cache ops
|
||||||
|
CacheopUncachePagesInProgress uint64
|
||||||
|
// Number of in-progress dissociate_pages() cache ops
|
||||||
|
CacheopDissociatePagesInProgress uint64
|
||||||
|
// Number of object lookups/creations rejected due to lack of space
|
||||||
|
CacheevLookupsAndCreationsRejectedLackSpace uint64
|
||||||
|
// Number of stale objects deleted
|
||||||
|
CacheevStaleObjectsDeleted uint64
|
||||||
|
// Number of objects retired when relinquished
|
||||||
|
CacheevRetiredWhenReliquished uint64
|
||||||
|
// Number of objects culled
|
||||||
|
CacheevObjectsCulled uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
// Fscacheinfo returns information about current fscache statistics.
|
||||||
|
// See https://www.kernel.org/doc/Documentation/filesystems/caching/fscache.txt
|
||||||
|
func (fs FS) Fscacheinfo() (Fscacheinfo, error) {
|
||||||
|
b, err := util.ReadFileNoStat(fs.proc.Path("fs/fscache/stats"))
|
||||||
|
if err != nil {
|
||||||
|
return Fscacheinfo{}, err
|
||||||
|
}
|
||||||
|
|
||||||
|
m, err := parseFscacheinfo(bytes.NewReader(b))
|
||||||
|
if err != nil {
|
||||||
|
return Fscacheinfo{}, fmt.Errorf("failed to parse Fscacheinfo: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
return *m, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func setFSCacheFields(fields []string, setFields ...*uint64) error {
|
||||||
|
var err error
|
||||||
|
if len(fields) < len(setFields) {
|
||||||
|
return fmt.Errorf("Insufficient number of fields, expected %v, got %v", len(setFields), len(fields))
|
||||||
|
}
|
||||||
|
|
||||||
|
for i := range setFields {
|
||||||
|
*setFields[i], err = strconv.ParseUint(strings.Split(fields[i], "=")[1], 0, 64)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func parseFscacheinfo(r io.Reader) (*Fscacheinfo, error) {
|
||||||
|
var m Fscacheinfo
|
||||||
|
s := bufio.NewScanner(r)
|
||||||
|
for s.Scan() {
|
||||||
|
fields := strings.Fields(s.Text())
|
||||||
|
if len(fields) < 2 {
|
||||||
|
return nil, fmt.Errorf("malformed Fscacheinfo line: %q", s.Text())
|
||||||
|
}
|
||||||
|
|
||||||
|
switch fields[0] {
|
||||||
|
case "Cookies:":
|
||||||
|
err := setFSCacheFields(fields[1:], &m.IndexCookiesAllocated, &m.DataStorageCookiesAllocated,
|
||||||
|
&m.SpecialCookiesAllocated)
|
||||||
|
if err != nil {
|
||||||
|
return &m, err
|
||||||
|
}
|
||||||
|
case "Objects:":
|
||||||
|
err := setFSCacheFields(fields[1:], &m.ObjectsAllocated, &m.ObjectAllocationsFailure,
|
||||||
|
&m.ObjectsAvailable, &m.ObjectsDead)
|
||||||
|
if err != nil {
|
||||||
|
return &m, err
|
||||||
|
}
|
||||||
|
case "ChkAux":
|
||||||
|
err := setFSCacheFields(fields[2:], &m.ObjectsWithoutCoherencyCheck, &m.ObjectsWithCoherencyCheck,
|
||||||
|
&m.ObjectsNeedCoherencyCheckUpdate, &m.ObjectsDeclaredObsolete)
|
||||||
|
if err != nil {
|
||||||
|
return &m, err
|
||||||
|
}
|
||||||
|
case "Pages":
|
||||||
|
err := setFSCacheFields(fields[2:], &m.PagesMarkedAsBeingCached, &m.UncachePagesRequestSeen)
|
||||||
|
if err != nil {
|
||||||
|
return &m, err
|
||||||
|
}
|
||||||
|
case "Acquire:":
|
||||||
|
err := setFSCacheFields(fields[1:], &m.AcquireCookiesRequestSeen, &m.AcquireRequestsWithNullParent,
|
||||||
|
&m.AcquireRequestsRejectedNoCacheAvailable, &m.AcquireRequestsSucceeded, &m.AcquireRequestsRejectedDueToError,
|
||||||
|
&m.AcquireRequestsFailedDueToEnomem)
|
||||||
|
if err != nil {
|
||||||
|
return &m, err
|
||||||
|
}
|
||||||
|
case "Lookups:":
|
||||||
|
err := setFSCacheFields(fields[1:], &m.LookupsNumber, &m.LookupsNegative, &m.LookupsPositive,
|
||||||
|
&m.ObjectsCreatedByLookup, &m.LookupsTimedOutAndRequed)
|
||||||
|
if err != nil {
|
||||||
|
return &m, err
|
||||||
|
}
|
||||||
|
case "Invals":
|
||||||
|
err := setFSCacheFields(fields[2:], &m.InvalidationsNumber, &m.InvalidationsRunning)
|
||||||
|
if err != nil {
|
||||||
|
return &m, err
|
||||||
|
}
|
||||||
|
case "Updates:":
|
||||||
|
err := setFSCacheFields(fields[1:], &m.UpdateCookieRequestSeen, &m.UpdateRequestsWithNullParent,
|
||||||
|
&m.UpdateRequestsRunning)
|
||||||
|
if err != nil {
|
||||||
|
return &m, err
|
||||||
|
}
|
||||||
|
case "Relinqs:":
|
||||||
|
err := setFSCacheFields(fields[1:], &m.RelinquishCookiesRequestSeen, &m.RelinquishCookiesWithNullParent,
|
||||||
|
&m.RelinquishRequestsWaitingCompleteCreation, &m.RelinquishRetries)
|
||||||
|
if err != nil {
|
||||||
|
return &m, err
|
||||||
|
}
|
||||||
|
case "AttrChg:":
|
||||||
|
err := setFSCacheFields(fields[1:], &m.AttributeChangedRequestsSeen, &m.AttributeChangedRequestsQueued,
|
||||||
|
&m.AttributeChangedRejectDueToEnobufs, &m.AttributeChangedFailedDueToEnomem, &m.AttributeChangedOps)
|
||||||
|
if err != nil {
|
||||||
|
return &m, err
|
||||||
|
}
|
||||||
|
case "Allocs":
|
||||||
|
if strings.Split(fields[2], "=")[0] == "n" {
|
||||||
|
err := setFSCacheFields(fields[2:], &m.AllocationRequestsSeen, &m.AllocationOkRequests,
|
||||||
|
&m.AllocationWaitingOnLookup, &m.AllocationsRejectedDueToEnobufs, &m.AllocationsAbortedDueToErestartsys)
|
||||||
|
if err != nil {
|
||||||
|
return &m, err
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
err := setFSCacheFields(fields[2:], &m.AllocationOperationsSubmitted, &m.AllocationsWaitedForCPU,
|
||||||
|
&m.AllocationsAbortedDueToObjectDeath)
|
||||||
|
if err != nil {
|
||||||
|
return &m, err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
case "Retrvls:":
|
||||||
|
if strings.Split(fields[1], "=")[0] == "n" {
|
||||||
|
err := setFSCacheFields(fields[1:], &m.RetrievalsReadRequests, &m.RetrievalsOk, &m.RetrievalsWaitingLookupCompletion,
|
||||||
|
&m.RetrievalsReturnedEnodata, &m.RetrievalsRejectedDueToEnobufs, &m.RetrievalsAbortedDueToErestartsys,
|
||||||
|
&m.RetrievalsFailedDueToEnomem)
|
||||||
|
if err != nil {
|
||||||
|
return &m, err
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
err := setFSCacheFields(fields[1:], &m.RetrievalsRequests, &m.RetrievalsWaitingCPU, &m.RetrievalsAbortedDueToObjectDeath)
|
||||||
|
if err != nil {
|
||||||
|
return &m, err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
case "Stores":
|
||||||
|
if strings.Split(fields[2], "=")[0] == "n" {
|
||||||
|
err := setFSCacheFields(fields[2:], &m.StoreWriteRequests, &m.StoreSuccessfulRequests,
|
||||||
|
&m.StoreRequestsOnPendingStorage, &m.StoreRequestsRejectedDueToEnobufs, &m.StoreRequestsFailedDueToEnomem)
|
||||||
|
if err != nil {
|
||||||
|
return &m, err
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
err := setFSCacheFields(fields[2:], &m.StoreRequestsSubmitted, &m.StoreRequestsRunning,
|
||||||
|
&m.StorePagesWithRequestsProcessing, &m.StoreRequestsDeleted, &m.StoreRequestsOverStoreLimit)
|
||||||
|
if err != nil {
|
||||||
|
return &m, err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
case "VmScan":
|
||||||
|
err := setFSCacheFields(fields[2:], &m.ReleaseRequestsAgainstPagesWithNoPendingStorage,
|
||||||
|
&m.ReleaseRequestsAgainstPagesStoredByTimeLockGranted, &m.ReleaseRequestsIgnoredDueToInProgressStore,
|
||||||
|
&m.PageStoresCancelledByReleaseRequests, &m.VmscanWaiting)
|
||||||
|
if err != nil {
|
||||||
|
return &m, err
|
||||||
|
}
|
||||||
|
case "Ops":
|
||||||
|
if strings.Split(fields[2], "=")[0] == "pend" {
|
||||||
|
err := setFSCacheFields(fields[2:], &m.OpsPending, &m.OpsRunning, &m.OpsEnqueued, &m.OpsCancelled, &m.OpsRejected)
|
||||||
|
if err != nil {
|
||||||
|
return &m, err
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
err := setFSCacheFields(fields[2:], &m.OpsInitialised, &m.OpsDeferred, &m.OpsReleased, &m.OpsGarbageCollected)
|
||||||
|
if err != nil {
|
||||||
|
return &m, err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
case "CacheOp:":
|
||||||
|
if strings.Split(fields[1], "=")[0] == "alo" {
|
||||||
|
err := setFSCacheFields(fields[1:], &m.CacheopAllocationsinProgress, &m.CacheopLookupObjectInProgress,
|
||||||
|
&m.CacheopLookupCompleteInPorgress, &m.CacheopGrabObjectInProgress)
|
||||||
|
if err != nil {
|
||||||
|
return &m, err
|
||||||
|
}
|
||||||
|
} else if strings.Split(fields[1], "=")[0] == "inv" {
|
||||||
|
err := setFSCacheFields(fields[1:], &m.CacheopInvalidations, &m.CacheopUpdateObjectInProgress,
|
||||||
|
&m.CacheopDropObjectInProgress, &m.CacheopPutObjectInProgress, &m.CacheopAttributeChangeInProgress,
|
||||||
|
&m.CacheopSyncCacheInProgress)
|
||||||
|
if err != nil {
|
||||||
|
return &m, err
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
err := setFSCacheFields(fields[1:], &m.CacheopReadOrAllocPageInProgress, &m.CacheopReadOrAllocPagesInProgress,
|
||||||
|
&m.CacheopAllocatePageInProgress, &m.CacheopAllocatePagesInProgress, &m.CacheopWritePagesInProgress,
|
||||||
|
&m.CacheopUncachePagesInProgress, &m.CacheopDissociatePagesInProgress)
|
||||||
|
if err != nil {
|
||||||
|
return &m, err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
case "CacheEv:":
|
||||||
|
err := setFSCacheFields(fields[1:], &m.CacheevLookupsAndCreationsRejectedLackSpace, &m.CacheevStaleObjectsDeleted,
|
||||||
|
&m.CacheevRetiredWhenReliquished, &m.CacheevObjectsCulled)
|
||||||
|
if err != nil {
|
||||||
|
return &m, err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return &m, nil
|
||||||
|
}
|
||||||
1
vendor/github.com/prometheus/procfs/go.mod
generated
vendored
1
vendor/github.com/prometheus/procfs/go.mod
generated
vendored
@ -5,4 +5,5 @@ go 1.12
|
|||||||
require (
|
require (
|
||||||
github.com/google/go-cmp v0.3.1
|
github.com/google/go-cmp v0.3.1
|
||||||
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e
|
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e
|
||||||
|
golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e
|
||||||
)
|
)
|
||||||
|
|||||||
2
vendor/github.com/prometheus/procfs/go.sum
generated
vendored
2
vendor/github.com/prometheus/procfs/go.sum
generated
vendored
@ -2,3 +2,5 @@ github.com/google/go-cmp v0.3.1 h1:Xye71clBPdm5HgqGwUkwhbynsUJZhDbS20FvLhQ2izg=
|
|||||||
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
||||||
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e h1:vcxGaoTs7kV8m5Np9uUNQin4BrLOthgV7252N8V+FwY=
|
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e h1:vcxGaoTs7kV8m5Np9uUNQin4BrLOthgV7252N8V+FwY=
|
||||||
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
|
golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e h1:LwyF2AFISC9nVbS6MgzsaQNSUsRXI49GS+YQ5KX/QH0=
|
||||||
|
golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
|||||||
9
vendor/github.com/prometheus/procfs/internal/util/parse.go
generated
vendored
9
vendor/github.com/prometheus/procfs/internal/util/parse.go
generated
vendored
@ -73,6 +73,15 @@ func ReadUintFromFile(path string) (uint64, error) {
|
|||||||
return strconv.ParseUint(strings.TrimSpace(string(data)), 10, 64)
|
return strconv.ParseUint(strings.TrimSpace(string(data)), 10, 64)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ReadIntFromFile reads a file and attempts to parse a int64 from it.
|
||||||
|
func ReadIntFromFile(path string) (int64, error) {
|
||||||
|
data, err := ioutil.ReadFile(path)
|
||||||
|
if err != nil {
|
||||||
|
return 0, err
|
||||||
|
}
|
||||||
|
return strconv.ParseInt(strings.TrimSpace(string(data)), 10, 64)
|
||||||
|
}
|
||||||
|
|
||||||
// ParseBool parses a string into a boolean pointer.
|
// ParseBool parses a string into a boolean pointer.
|
||||||
func ParseBool(b string) *bool {
|
func ParseBool(b string) *bool {
|
||||||
var truth bool
|
var truth bool
|
||||||
|
|||||||
62
vendor/github.com/prometheus/procfs/kernel_random.go
generated
vendored
Normal file
62
vendor/github.com/prometheus/procfs/kernel_random.go
generated
vendored
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
// Copyright 2020 The Prometheus Authors
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
// +build !windows
|
||||||
|
|
||||||
|
package procfs
|
||||||
|
|
||||||
|
import (
|
||||||
|
"os"
|
||||||
|
|
||||||
|
"github.com/prometheus/procfs/internal/util"
|
||||||
|
)
|
||||||
|
|
||||||
|
// KernelRandom contains information about to the kernel's random number generator.
|
||||||
|
type KernelRandom struct {
|
||||||
|
// EntropyAvaliable gives the available entropy, in bits.
|
||||||
|
EntropyAvaliable *uint64
|
||||||
|
// PoolSize gives the size of the entropy pool, in bytes.
|
||||||
|
PoolSize *uint64
|
||||||
|
// URandomMinReseedSeconds is the number of seconds after which the DRNG will be reseeded.
|
||||||
|
URandomMinReseedSeconds *uint64
|
||||||
|
// WriteWakeupThreshold the number of bits of entropy below which we wake up processes
|
||||||
|
// that do a select(2) or poll(2) for write access to /dev/random.
|
||||||
|
WriteWakeupThreshold *uint64
|
||||||
|
// ReadWakeupThreshold is the number of bits of entropy required for waking up processes that sleep
|
||||||
|
// waiting for entropy from /dev/random.
|
||||||
|
ReadWakeupThreshold *uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
// KernelRandom returns values from /proc/sys/kernel/random.
|
||||||
|
func (fs FS) KernelRandom() (KernelRandom, error) {
|
||||||
|
random := KernelRandom{}
|
||||||
|
|
||||||
|
for file, p := range map[string]**uint64{
|
||||||
|
"entropy_avail": &random.EntropyAvaliable,
|
||||||
|
"poolsize": &random.PoolSize,
|
||||||
|
"urandom_min_reseed_secs": &random.URandomMinReseedSeconds,
|
||||||
|
"write_wakeup_threshold": &random.WriteWakeupThreshold,
|
||||||
|
"read_wakeup_threshold": &random.ReadWakeupThreshold,
|
||||||
|
} {
|
||||||
|
val, err := util.ReadUintFromFile(fs.proc.Path("sys", "kernel", "random", file))
|
||||||
|
if os.IsNotExist(err) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if err != nil {
|
||||||
|
return random, err
|
||||||
|
}
|
||||||
|
*p = &val
|
||||||
|
}
|
||||||
|
|
||||||
|
return random, nil
|
||||||
|
}
|
||||||
62
vendor/github.com/prometheus/procfs/loadavg.go
generated
vendored
Normal file
62
vendor/github.com/prometheus/procfs/loadavg.go
generated
vendored
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
// Copyright 2019 The Prometheus Authors
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
package procfs
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"strconv"
|
||||||
|
"strings"
|
||||||
|
|
||||||
|
"github.com/prometheus/procfs/internal/util"
|
||||||
|
)
|
||||||
|
|
||||||
|
// LoadAvg represents an entry in /proc/loadavg
|
||||||
|
type LoadAvg struct {
|
||||||
|
Load1 float64
|
||||||
|
Load5 float64
|
||||||
|
Load15 float64
|
||||||
|
}
|
||||||
|
|
||||||
|
// LoadAvg returns loadavg from /proc.
|
||||||
|
func (fs FS) LoadAvg() (*LoadAvg, error) {
|
||||||
|
path := fs.proc.Path("loadavg")
|
||||||
|
|
||||||
|
data, err := util.ReadFileNoStat(path)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return parseLoad(data)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Parse /proc loadavg and return 1m, 5m and 15m.
|
||||||
|
func parseLoad(loadavgBytes []byte) (*LoadAvg, error) {
|
||||||
|
loads := make([]float64, 3)
|
||||||
|
parts := strings.Fields(string(loadavgBytes))
|
||||||
|
if len(parts) < 3 {
|
||||||
|
return nil, fmt.Errorf("malformed loadavg line: too few fields in loadavg string: %s", string(loadavgBytes))
|
||||||
|
}
|
||||||
|
|
||||||
|
var err error
|
||||||
|
for i, load := range parts[0:3] {
|
||||||
|
loads[i], err = strconv.ParseFloat(load, 64)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("could not parse load '%s': %s", load, err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return &LoadAvg{
|
||||||
|
Load1: loads[0],
|
||||||
|
Load5: loads[1],
|
||||||
|
Load15: loads[2],
|
||||||
|
}, nil
|
||||||
|
}
|
||||||
2
vendor/github.com/prometheus/procfs/mdstat.go
generated
vendored
2
vendor/github.com/prometheus/procfs/mdstat.go
generated
vendored
@ -52,7 +52,7 @@ type MDStat struct {
|
|||||||
func (fs FS) MDStat() ([]MDStat, error) {
|
func (fs FS) MDStat() ([]MDStat, error) {
|
||||||
data, err := ioutil.ReadFile(fs.proc.Path("mdstat"))
|
data, err := ioutil.ReadFile(fs.proc.Path("mdstat"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("error parsing mdstat %s: %s", fs.proc.Path("mdstat"), err)
|
return nil, err
|
||||||
}
|
}
|
||||||
mdstat, err := parseMDStat(data)
|
mdstat, err := parseMDStat(data)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
20
vendor/github.com/prometheus/procfs/mountinfo.go
generated
vendored
20
vendor/github.com/prometheus/procfs/mountinfo.go
generated
vendored
@ -29,10 +29,10 @@ import (
|
|||||||
// is described in the following man page.
|
// is described in the following man page.
|
||||||
// http://man7.org/linux/man-pages/man5/proc.5.html
|
// http://man7.org/linux/man-pages/man5/proc.5.html
|
||||||
type MountInfo struct {
|
type MountInfo struct {
|
||||||
// Unique Id for the mount
|
// Unique ID for the mount
|
||||||
MountId int
|
MountID int
|
||||||
// The Id of the parent mount
|
// The ID of the parent mount
|
||||||
ParentId int
|
ParentID int
|
||||||
// The value of `st_dev` for the files on this FS
|
// The value of `st_dev` for the files on this FS
|
||||||
MajorMinorVer string
|
MajorMinorVer string
|
||||||
// The pathname of the directory in the FS that forms
|
// The pathname of the directory in the FS that forms
|
||||||
@ -77,7 +77,7 @@ func parseMountInfoString(mountString string) (*MountInfo, error) {
|
|||||||
|
|
||||||
mountInfo := strings.Split(mountString, " ")
|
mountInfo := strings.Split(mountString, " ")
|
||||||
mountInfoLength := len(mountInfo)
|
mountInfoLength := len(mountInfo)
|
||||||
if mountInfoLength < 11 {
|
if mountInfoLength < 10 {
|
||||||
return nil, fmt.Errorf("couldn't find enough fields in mount string: %s", mountString)
|
return nil, fmt.Errorf("couldn't find enough fields in mount string: %s", mountString)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -96,11 +96,11 @@ func parseMountInfoString(mountString string) (*MountInfo, error) {
|
|||||||
SuperOptions: mountOptionsParser(mountInfo[mountInfoLength-1]),
|
SuperOptions: mountOptionsParser(mountInfo[mountInfoLength-1]),
|
||||||
}
|
}
|
||||||
|
|
||||||
mount.MountId, err = strconv.Atoi(mountInfo[0])
|
mount.MountID, err = strconv.Atoi(mountInfo[0])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("failed to parse mount ID")
|
return nil, fmt.Errorf("failed to parse mount ID")
|
||||||
}
|
}
|
||||||
mount.ParentId, err = strconv.Atoi(mountInfo[1])
|
mount.ParentID, err = strconv.Atoi(mountInfo[1])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("failed to parse parent ID")
|
return nil, fmt.Errorf("failed to parse parent ID")
|
||||||
}
|
}
|
||||||
@ -144,7 +144,7 @@ func mountOptionsParseOptionalFields(o []string) (map[string]string, error) {
|
|||||||
return optionalFields, nil
|
return optionalFields, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Parses the mount options, superblock options.
|
// mountOptionsParser parses the mount options, superblock options.
|
||||||
func mountOptionsParser(mountOptions string) map[string]string {
|
func mountOptionsParser(mountOptions string) map[string]string {
|
||||||
opts := make(map[string]string)
|
opts := make(map[string]string)
|
||||||
options := strings.Split(mountOptions, ",")
|
options := strings.Split(mountOptions, ",")
|
||||||
@ -161,7 +161,7 @@ func mountOptionsParser(mountOptions string) map[string]string {
|
|||||||
return opts
|
return opts
|
||||||
}
|
}
|
||||||
|
|
||||||
// Retrieves mountinfo information from `/proc/self/mountinfo`.
|
// GetMounts retrieves mountinfo information from `/proc/self/mountinfo`.
|
||||||
func GetMounts() ([]*MountInfo, error) {
|
func GetMounts() ([]*MountInfo, error) {
|
||||||
data, err := util.ReadFileNoStat("/proc/self/mountinfo")
|
data, err := util.ReadFileNoStat("/proc/self/mountinfo")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -170,7 +170,7 @@ func GetMounts() ([]*MountInfo, error) {
|
|||||||
return parseMountInfo(data)
|
return parseMountInfo(data)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Retrieves mountinfo information from a processes' `/proc/<pid>/mountinfo`.
|
// GetProcMounts retrieves mountinfo information from a processes' `/proc/<pid>/mountinfo`.
|
||||||
func GetProcMounts(pid int) ([]*MountInfo, error) {
|
func GetProcMounts(pid int) ([]*MountInfo, error) {
|
||||||
data, err := util.ReadFileNoStat(fmt.Sprintf("/proc/%d/mountinfo", pid))
|
data, err := util.ReadFileNoStat(fmt.Sprintf("/proc/%d/mountinfo", pid))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
20
vendor/github.com/prometheus/procfs/mountstats.go
generated
vendored
20
vendor/github.com/prometheus/procfs/mountstats.go
generated
vendored
@ -186,6 +186,8 @@ type NFSOperationStats struct {
|
|||||||
CumulativeTotalResponseMilliseconds uint64
|
CumulativeTotalResponseMilliseconds uint64
|
||||||
// Duration from when a request was enqueued to when it was completely handled.
|
// Duration from when a request was enqueued to when it was completely handled.
|
||||||
CumulativeTotalRequestMilliseconds uint64
|
CumulativeTotalRequestMilliseconds uint64
|
||||||
|
// The count of operations that complete with tk_status < 0. These statuses usually indicate error conditions.
|
||||||
|
Errors uint64
|
||||||
}
|
}
|
||||||
|
|
||||||
// A NFSTransportStats contains statistics for the NFS mount RPC requests and
|
// A NFSTransportStats contains statistics for the NFS mount RPC requests and
|
||||||
@ -494,8 +496,8 @@ func parseNFSEventsStats(ss []string) (*NFSEventsStats, error) {
|
|||||||
// line is reached.
|
// line is reached.
|
||||||
func parseNFSOperationStats(s *bufio.Scanner) ([]NFSOperationStats, error) {
|
func parseNFSOperationStats(s *bufio.Scanner) ([]NFSOperationStats, error) {
|
||||||
const (
|
const (
|
||||||
// Number of expected fields in each per-operation statistics set
|
// Minimum number of expected fields in each per-operation statistics set
|
||||||
numFields = 9
|
minFields = 9
|
||||||
)
|
)
|
||||||
|
|
||||||
var ops []NFSOperationStats
|
var ops []NFSOperationStats
|
||||||
@ -508,12 +510,12 @@ func parseNFSOperationStats(s *bufio.Scanner) ([]NFSOperationStats, error) {
|
|||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(ss) != numFields {
|
if len(ss) < minFields {
|
||||||
return nil, fmt.Errorf("invalid NFS per-operations stats: %v", ss)
|
return nil, fmt.Errorf("invalid NFS per-operations stats: %v", ss)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Skip string operation name for integers
|
// Skip string operation name for integers
|
||||||
ns := make([]uint64, 0, numFields-1)
|
ns := make([]uint64, 0, minFields-1)
|
||||||
for _, st := range ss[1:] {
|
for _, st := range ss[1:] {
|
||||||
n, err := strconv.ParseUint(st, 10, 64)
|
n, err := strconv.ParseUint(st, 10, 64)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -523,7 +525,7 @@ func parseNFSOperationStats(s *bufio.Scanner) ([]NFSOperationStats, error) {
|
|||||||
ns = append(ns, n)
|
ns = append(ns, n)
|
||||||
}
|
}
|
||||||
|
|
||||||
ops = append(ops, NFSOperationStats{
|
opStats := NFSOperationStats{
|
||||||
Operation: strings.TrimSuffix(ss[0], ":"),
|
Operation: strings.TrimSuffix(ss[0], ":"),
|
||||||
Requests: ns[0],
|
Requests: ns[0],
|
||||||
Transmissions: ns[1],
|
Transmissions: ns[1],
|
||||||
@ -533,7 +535,13 @@ func parseNFSOperationStats(s *bufio.Scanner) ([]NFSOperationStats, error) {
|
|||||||
CumulativeQueueMilliseconds: ns[5],
|
CumulativeQueueMilliseconds: ns[5],
|
||||||
CumulativeTotalResponseMilliseconds: ns[6],
|
CumulativeTotalResponseMilliseconds: ns[6],
|
||||||
CumulativeTotalRequestMilliseconds: ns[7],
|
CumulativeTotalRequestMilliseconds: ns[7],
|
||||||
})
|
}
|
||||||
|
|
||||||
|
if len(ns) > 8 {
|
||||||
|
opStats.Errors = ns[8]
|
||||||
|
}
|
||||||
|
|
||||||
|
ops = append(ops, opStats)
|
||||||
}
|
}
|
||||||
|
|
||||||
return ops, s.Err()
|
return ops, s.Err()
|
||||||
|
|||||||
153
vendor/github.com/prometheus/procfs/net_conntrackstat.go
generated
vendored
Normal file
153
vendor/github.com/prometheus/procfs/net_conntrackstat.go
generated
vendored
Normal file
@ -0,0 +1,153 @@
|
|||||||
|
// Copyright 2020 The Prometheus Authors
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
package procfs
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bufio"
|
||||||
|
"bytes"
|
||||||
|
"fmt"
|
||||||
|
"io"
|
||||||
|
"strconv"
|
||||||
|
"strings"
|
||||||
|
|
||||||
|
"github.com/prometheus/procfs/internal/util"
|
||||||
|
)
|
||||||
|
|
||||||
|
// A ConntrackStatEntry represents one line from net/stat/nf_conntrack
|
||||||
|
// and contains netfilter conntrack statistics at one CPU core
|
||||||
|
type ConntrackStatEntry struct {
|
||||||
|
Entries uint64
|
||||||
|
Found uint64
|
||||||
|
Invalid uint64
|
||||||
|
Ignore uint64
|
||||||
|
Insert uint64
|
||||||
|
InsertFailed uint64
|
||||||
|
Drop uint64
|
||||||
|
EarlyDrop uint64
|
||||||
|
SearchRestart uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
// ConntrackStat retrieves netfilter's conntrack statistics, split by CPU cores
|
||||||
|
func (fs FS) ConntrackStat() ([]ConntrackStatEntry, error) {
|
||||||
|
return readConntrackStat(fs.proc.Path("net", "stat", "nf_conntrack"))
|
||||||
|
}
|
||||||
|
|
||||||
|
// Parses a slice of ConntrackStatEntries from the given filepath
|
||||||
|
func readConntrackStat(path string) ([]ConntrackStatEntry, error) {
|
||||||
|
// This file is small and can be read with one syscall.
|
||||||
|
b, err := util.ReadFileNoStat(path)
|
||||||
|
if err != nil {
|
||||||
|
// Do not wrap this error so the caller can detect os.IsNotExist and
|
||||||
|
// similar conditions.
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
stat, err := parseConntrackStat(bytes.NewReader(b))
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("failed to read conntrack stats from %q: %v", path, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
return stat, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Reads the contents of a conntrack statistics file and parses a slice of ConntrackStatEntries
|
||||||
|
func parseConntrackStat(r io.Reader) ([]ConntrackStatEntry, error) {
|
||||||
|
var entries []ConntrackStatEntry
|
||||||
|
|
||||||
|
scanner := bufio.NewScanner(r)
|
||||||
|
scanner.Scan()
|
||||||
|
for scanner.Scan() {
|
||||||
|
fields := strings.Fields(scanner.Text())
|
||||||
|
conntrackEntry, err := parseConntrackStatEntry(fields)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
entries = append(entries, *conntrackEntry)
|
||||||
|
}
|
||||||
|
|
||||||
|
return entries, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Parses a ConntrackStatEntry from given array of fields
|
||||||
|
func parseConntrackStatEntry(fields []string) (*ConntrackStatEntry, error) {
|
||||||
|
if len(fields) != 17 {
|
||||||
|
return nil, fmt.Errorf("invalid conntrackstat entry, missing fields")
|
||||||
|
}
|
||||||
|
entry := &ConntrackStatEntry{}
|
||||||
|
|
||||||
|
entries, err := parseConntrackStatField(fields[0])
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
entry.Entries = entries
|
||||||
|
|
||||||
|
found, err := parseConntrackStatField(fields[2])
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
entry.Found = found
|
||||||
|
|
||||||
|
invalid, err := parseConntrackStatField(fields[4])
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
entry.Invalid = invalid
|
||||||
|
|
||||||
|
ignore, err := parseConntrackStatField(fields[5])
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
entry.Ignore = ignore
|
||||||
|
|
||||||
|
insert, err := parseConntrackStatField(fields[8])
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
entry.Insert = insert
|
||||||
|
|
||||||
|
insertFailed, err := parseConntrackStatField(fields[9])
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
entry.InsertFailed = insertFailed
|
||||||
|
|
||||||
|
drop, err := parseConntrackStatField(fields[10])
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
entry.Drop = drop
|
||||||
|
|
||||||
|
earlyDrop, err := parseConntrackStatField(fields[11])
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
entry.EarlyDrop = earlyDrop
|
||||||
|
|
||||||
|
searchRestart, err := parseConntrackStatField(fields[16])
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
entry.SearchRestart = searchRestart
|
||||||
|
|
||||||
|
return entry, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Parses a uint64 from given hex in string
|
||||||
|
func parseConntrackStatField(field string) (uint64, error) {
|
||||||
|
val, err := strconv.ParseUint(field, 16, 64)
|
||||||
|
if err != nil {
|
||||||
|
return 0, fmt.Errorf("couldn't parse \"%s\" field: %s", field, err)
|
||||||
|
}
|
||||||
|
return val, err
|
||||||
|
}
|
||||||
115
vendor/github.com/prometheus/procfs/net_softnet.go
generated
vendored
115
vendor/github.com/prometheus/procfs/net_softnet.go
generated
vendored
@ -14,78 +14,89 @@
|
|||||||
package procfs
|
package procfs
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"bufio"
|
||||||
|
"bytes"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io/ioutil"
|
"io"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"github.com/prometheus/procfs/internal/util"
|
||||||
)
|
)
|
||||||
|
|
||||||
// For the proc file format details,
|
// For the proc file format details,
|
||||||
// see https://elixir.bootlin.com/linux/v4.17/source/net/core/net-procfs.c#L162
|
// See:
|
||||||
|
// * Linux 2.6.23 https://elixir.bootlin.com/linux/v2.6.23/source/net/core/dev.c#L2343
|
||||||
|
// * Linux 4.17 https://elixir.bootlin.com/linux/v4.17/source/net/core/net-procfs.c#L162
|
||||||
// and https://elixir.bootlin.com/linux/v4.17/source/include/linux/netdevice.h#L2810.
|
// and https://elixir.bootlin.com/linux/v4.17/source/include/linux/netdevice.h#L2810.
|
||||||
|
|
||||||
// SoftnetEntry contains a single row of data from /proc/net/softnet_stat
|
// SoftnetStat contains a single row of data from /proc/net/softnet_stat
|
||||||
type SoftnetEntry struct {
|
type SoftnetStat struct {
|
||||||
// Number of processed packets
|
// Number of processed packets
|
||||||
Processed uint
|
Processed uint32
|
||||||
// Number of dropped packets
|
// Number of dropped packets
|
||||||
Dropped uint
|
Dropped uint32
|
||||||
// Number of times processing packets ran out of quota
|
// Number of times processing packets ran out of quota
|
||||||
TimeSqueezed uint
|
TimeSqueezed uint32
|
||||||
}
|
}
|
||||||
|
|
||||||
// GatherSoftnetStats reads /proc/net/softnet_stat, parse the relevant columns,
|
var softNetProcFile = "net/softnet_stat"
|
||||||
// and then return a slice of SoftnetEntry's.
|
|
||||||
func (fs FS) GatherSoftnetStats() ([]SoftnetEntry, error) {
|
// NetSoftnetStat reads data from /proc/net/softnet_stat.
|
||||||
data, err := ioutil.ReadFile(fs.proc.Path("net/softnet_stat"))
|
func (fs FS) NetSoftnetStat() ([]SoftnetStat, error) {
|
||||||
|
b, err := util.ReadFileNoStat(fs.proc.Path(softNetProcFile))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("error reading softnet %s: %s", fs.proc.Path("net/softnet_stat"), err)
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
return parseSoftnetEntries(data)
|
entries, err := parseSoftnet(bytes.NewReader(b))
|
||||||
}
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("failed to parse /proc/net/softnet_stat: %v", err)
|
||||||
func parseSoftnetEntries(data []byte) ([]SoftnetEntry, error) {
|
|
||||||
lines := strings.Split(string(data), "\n")
|
|
||||||
entries := make([]SoftnetEntry, 0)
|
|
||||||
var err error
|
|
||||||
const (
|
|
||||||
expectedColumns = 11
|
|
||||||
)
|
|
||||||
for _, line := range lines {
|
|
||||||
columns := strings.Fields(line)
|
|
||||||
width := len(columns)
|
|
||||||
if width == 0 {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
if width != expectedColumns {
|
|
||||||
return []SoftnetEntry{}, fmt.Errorf("%d columns were detected, but %d were expected", width, expectedColumns)
|
|
||||||
}
|
|
||||||
var entry SoftnetEntry
|
|
||||||
if entry, err = parseSoftnetEntry(columns); err != nil {
|
|
||||||
return []SoftnetEntry{}, err
|
|
||||||
}
|
|
||||||
entries = append(entries, entry)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return entries, nil
|
return entries, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func parseSoftnetEntry(columns []string) (SoftnetEntry, error) {
|
func parseSoftnet(r io.Reader) ([]SoftnetStat, error) {
|
||||||
var err error
|
const minColumns = 9
|
||||||
var processed, dropped, timeSqueezed uint64
|
|
||||||
if processed, err = strconv.ParseUint(columns[0], 16, 32); err != nil {
|
s := bufio.NewScanner(r)
|
||||||
return SoftnetEntry{}, fmt.Errorf("Unable to parse column 0: %s", err)
|
|
||||||
|
var stats []SoftnetStat
|
||||||
|
for s.Scan() {
|
||||||
|
columns := strings.Fields(s.Text())
|
||||||
|
width := len(columns)
|
||||||
|
|
||||||
|
if width < minColumns {
|
||||||
|
return nil, fmt.Errorf("%d columns were detected, but at least %d were expected", width, minColumns)
|
||||||
|
}
|
||||||
|
|
||||||
|
// We only parse the first three columns at the moment.
|
||||||
|
us, err := parseHexUint32s(columns[0:3])
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
stats = append(stats, SoftnetStat{
|
||||||
|
Processed: us[0],
|
||||||
|
Dropped: us[1],
|
||||||
|
TimeSqueezed: us[2],
|
||||||
|
})
|
||||||
}
|
}
|
||||||
if dropped, err = strconv.ParseUint(columns[1], 16, 32); err != nil {
|
|
||||||
return SoftnetEntry{}, fmt.Errorf("Unable to parse column 1: %s", err)
|
return stats, nil
|
||||||
}
|
}
|
||||||
if timeSqueezed, err = strconv.ParseUint(columns[2], 16, 32); err != nil {
|
|
||||||
return SoftnetEntry{}, fmt.Errorf("Unable to parse column 2: %s", err)
|
func parseHexUint32s(ss []string) ([]uint32, error) {
|
||||||
}
|
us := make([]uint32, 0, len(ss))
|
||||||
return SoftnetEntry{
|
for _, s := range ss {
|
||||||
Processed: uint(processed),
|
u, err := strconv.ParseUint(s, 16, 32)
|
||||||
Dropped: uint(dropped),
|
if err != nil {
|
||||||
TimeSqueezed: uint(timeSqueezed),
|
return nil, err
|
||||||
}, nil
|
}
|
||||||
|
|
||||||
|
us = append(us, uint32(u))
|
||||||
|
}
|
||||||
|
|
||||||
|
return us, nil
|
||||||
}
|
}
|
||||||
|
|||||||
229
vendor/github.com/prometheus/procfs/net_udp.go
generated
vendored
Normal file
229
vendor/github.com/prometheus/procfs/net_udp.go
generated
vendored
Normal file
@ -0,0 +1,229 @@
|
|||||||
|
// Copyright 2020 The Prometheus Authors
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
package procfs
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bufio"
|
||||||
|
"encoding/hex"
|
||||||
|
"fmt"
|
||||||
|
"io"
|
||||||
|
"net"
|
||||||
|
"os"
|
||||||
|
"strconv"
|
||||||
|
"strings"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
// readLimit is used by io.LimitReader while reading the content of the
|
||||||
|
// /proc/net/udp{,6} files. The number of lines inside such a file is dynamic
|
||||||
|
// as each line represents a single used socket.
|
||||||
|
// In theory, the number of available sockets is 65535 (2^16 - 1) per IP.
|
||||||
|
// With e.g. 150 Byte per line and the maximum number of 65535,
|
||||||
|
// the reader needs to handle 150 Byte * 65535 =~ 10 MB for a single IP.
|
||||||
|
readLimit = 4294967296 // Byte -> 4 GiB
|
||||||
|
)
|
||||||
|
|
||||||
|
type (
|
||||||
|
// NetUDP represents the contents of /proc/net/udp{,6} file without the header.
|
||||||
|
NetUDP []*netUDPLine
|
||||||
|
|
||||||
|
// NetUDPSummary provides already computed values like the total queue lengths or
|
||||||
|
// the total number of used sockets. In contrast to NetUDP it does not collect
|
||||||
|
// the parsed lines into a slice.
|
||||||
|
NetUDPSummary struct {
|
||||||
|
// TxQueueLength shows the total queue length of all parsed tx_queue lengths.
|
||||||
|
TxQueueLength uint64
|
||||||
|
// RxQueueLength shows the total queue length of all parsed rx_queue lengths.
|
||||||
|
RxQueueLength uint64
|
||||||
|
// UsedSockets shows the total number of parsed lines representing the
|
||||||
|
// number of used sockets.
|
||||||
|
UsedSockets uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
// netUDPLine represents the fields parsed from a single line
|
||||||
|
// in /proc/net/udp{,6}. Fields which are not used by UDP are skipped.
|
||||||
|
// For the proc file format details, see https://linux.die.net/man/5/proc.
|
||||||
|
netUDPLine struct {
|
||||||
|
Sl uint64
|
||||||
|
LocalAddr net.IP
|
||||||
|
LocalPort uint64
|
||||||
|
RemAddr net.IP
|
||||||
|
RemPort uint64
|
||||||
|
St uint64
|
||||||
|
TxQueue uint64
|
||||||
|
RxQueue uint64
|
||||||
|
UID uint64
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
// NetUDP returns the IPv4 kernel/networking statistics for UDP datagrams
|
||||||
|
// read from /proc/net/udp.
|
||||||
|
func (fs FS) NetUDP() (NetUDP, error) {
|
||||||
|
return newNetUDP(fs.proc.Path("net/udp"))
|
||||||
|
}
|
||||||
|
|
||||||
|
// NetUDP6 returns the IPv6 kernel/networking statistics for UDP datagrams
|
||||||
|
// read from /proc/net/udp6.
|
||||||
|
func (fs FS) NetUDP6() (NetUDP, error) {
|
||||||
|
return newNetUDP(fs.proc.Path("net/udp6"))
|
||||||
|
}
|
||||||
|
|
||||||
|
// NetUDPSummary returns already computed statistics like the total queue lengths
|
||||||
|
// for UDP datagrams read from /proc/net/udp.
|
||||||
|
func (fs FS) NetUDPSummary() (*NetUDPSummary, error) {
|
||||||
|
return newNetUDPSummary(fs.proc.Path("net/udp"))
|
||||||
|
}
|
||||||
|
|
||||||
|
// NetUDP6Summary returns already computed statistics like the total queue lengths
|
||||||
|
// for UDP datagrams read from /proc/net/udp6.
|
||||||
|
func (fs FS) NetUDP6Summary() (*NetUDPSummary, error) {
|
||||||
|
return newNetUDPSummary(fs.proc.Path("net/udp6"))
|
||||||
|
}
|
||||||
|
|
||||||
|
// newNetUDP creates a new NetUDP{,6} from the contents of the given file.
|
||||||
|
func newNetUDP(file string) (NetUDP, error) {
|
||||||
|
f, err := os.Open(file)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
defer f.Close()
|
||||||
|
|
||||||
|
netUDP := NetUDP{}
|
||||||
|
|
||||||
|
lr := io.LimitReader(f, readLimit)
|
||||||
|
s := bufio.NewScanner(lr)
|
||||||
|
s.Scan() // skip first line with headers
|
||||||
|
for s.Scan() {
|
||||||
|
fields := strings.Fields(s.Text())
|
||||||
|
line, err := parseNetUDPLine(fields)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
netUDP = append(netUDP, line)
|
||||||
|
}
|
||||||
|
if err := s.Err(); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return netUDP, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// newNetUDPSummary creates a new NetUDP{,6} from the contents of the given file.
|
||||||
|
func newNetUDPSummary(file string) (*NetUDPSummary, error) {
|
||||||
|
f, err := os.Open(file)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
defer f.Close()
|
||||||
|
|
||||||
|
netUDPSummary := &NetUDPSummary{}
|
||||||
|
|
||||||
|
lr := io.LimitReader(f, readLimit)
|
||||||
|
s := bufio.NewScanner(lr)
|
||||||
|
s.Scan() // skip first line with headers
|
||||||
|
for s.Scan() {
|
||||||
|
fields := strings.Fields(s.Text())
|
||||||
|
line, err := parseNetUDPLine(fields)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
netUDPSummary.TxQueueLength += line.TxQueue
|
||||||
|
netUDPSummary.RxQueueLength += line.RxQueue
|
||||||
|
netUDPSummary.UsedSockets++
|
||||||
|
}
|
||||||
|
if err := s.Err(); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return netUDPSummary, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// parseNetUDPLine parses a single line, represented by a list of fields.
|
||||||
|
func parseNetUDPLine(fields []string) (*netUDPLine, error) {
|
||||||
|
line := &netUDPLine{}
|
||||||
|
if len(fields) < 8 {
|
||||||
|
return nil, fmt.Errorf(
|
||||||
|
"cannot parse net udp socket line as it has less then 8 columns: %s",
|
||||||
|
strings.Join(fields, " "),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
var err error // parse error
|
||||||
|
|
||||||
|
// sl
|
||||||
|
s := strings.Split(fields[0], ":")
|
||||||
|
if len(s) != 2 {
|
||||||
|
return nil, fmt.Errorf(
|
||||||
|
"cannot parse sl field in udp socket line: %s", fields[0])
|
||||||
|
}
|
||||||
|
|
||||||
|
if line.Sl, err = strconv.ParseUint(s[0], 0, 64); err != nil {
|
||||||
|
return nil, fmt.Errorf("cannot parse sl value in udp socket line: %s", err)
|
||||||
|
}
|
||||||
|
// local_address
|
||||||
|
l := strings.Split(fields[1], ":")
|
||||||
|
if len(l) != 2 {
|
||||||
|
return nil, fmt.Errorf(
|
||||||
|
"cannot parse local_address field in udp socket line: %s", fields[1])
|
||||||
|
}
|
||||||
|
if line.LocalAddr, err = hex.DecodeString(l[0]); err != nil {
|
||||||
|
return nil, fmt.Errorf(
|
||||||
|
"cannot parse local_address value in udp socket line: %s", err)
|
||||||
|
}
|
||||||
|
if line.LocalPort, err = strconv.ParseUint(l[1], 16, 64); err != nil {
|
||||||
|
return nil, fmt.Errorf(
|
||||||
|
"cannot parse local_address port value in udp socket line: %s", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// remote_address
|
||||||
|
r := strings.Split(fields[2], ":")
|
||||||
|
if len(r) != 2 {
|
||||||
|
return nil, fmt.Errorf(
|
||||||
|
"cannot parse rem_address field in udp socket line: %s", fields[1])
|
||||||
|
}
|
||||||
|
if line.RemAddr, err = hex.DecodeString(r[0]); err != nil {
|
||||||
|
return nil, fmt.Errorf(
|
||||||
|
"cannot parse rem_address value in udp socket line: %s", err)
|
||||||
|
}
|
||||||
|
if line.RemPort, err = strconv.ParseUint(r[1], 16, 64); err != nil {
|
||||||
|
return nil, fmt.Errorf(
|
||||||
|
"cannot parse rem_address port value in udp socket line: %s", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// st
|
||||||
|
if line.St, err = strconv.ParseUint(fields[3], 16, 64); err != nil {
|
||||||
|
return nil, fmt.Errorf(
|
||||||
|
"cannot parse st value in udp socket line: %s", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// tx_queue and rx_queue
|
||||||
|
q := strings.Split(fields[4], ":")
|
||||||
|
if len(q) != 2 {
|
||||||
|
return nil, fmt.Errorf(
|
||||||
|
"cannot parse tx/rx queues in udp socket line as it has a missing colon: %s",
|
||||||
|
fields[4],
|
||||||
|
)
|
||||||
|
}
|
||||||
|
if line.TxQueue, err = strconv.ParseUint(q[0], 16, 64); err != nil {
|
||||||
|
return nil, fmt.Errorf("cannot parse tx_queue value in udp socket line: %s", err)
|
||||||
|
}
|
||||||
|
if line.RxQueue, err = strconv.ParseUint(q[1], 16, 64); err != nil {
|
||||||
|
return nil, fmt.Errorf("cannot parse rx_queue value in udp socket line: %s", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// uid
|
||||||
|
if line.UID, err = strconv.ParseUint(fields[7], 0, 64); err != nil {
|
||||||
|
return nil, fmt.Errorf(
|
||||||
|
"cannot parse uid value in udp socket line: %s", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
return line, nil
|
||||||
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user