Upgrade dependencies and go version
This commit is contained in:
parent
63a752c1f2
commit
e39aa0bd2e
@ -7,7 +7,7 @@ repos:
|
|||||||
- id: trailing-whitespace
|
- id: trailing-whitespace
|
||||||
- id: end-of-file-fixer
|
- id: end-of-file-fixer
|
||||||
- id: check-merge-conflict
|
- id: check-merge-conflict
|
||||||
- repo: git://github.com/dnephin/pre-commit-golang
|
- repo: https://github.com/dnephin/pre-commit-golang
|
||||||
rev: v0.4.0
|
rev: v0.4.0
|
||||||
hooks:
|
hooks:
|
||||||
- id: go-fmt
|
- id: go-fmt
|
||||||
|
@ -1,10 +1,9 @@
|
|||||||
ARG REPO=library
|
ARG REPO=library
|
||||||
FROM golang:1.15-alpine AS builder
|
FROM golang:1.22-alpine AS builder
|
||||||
|
|
||||||
# hadolint ignore=DL3018
|
# hadolint ignore=DL3018
|
||||||
RUN apk add --no-cache git
|
RUN apk add --no-cache git && \
|
||||||
|
mkdir /app
|
||||||
RUN mkdir /app
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
COPY ./go.mod ./go.sum /app/
|
COPY ./go.mod ./go.sum /app/
|
||||||
|
48
go.mod
48
go.mod
@ -1,27 +1,39 @@
|
|||||||
module github.com/iamthefij/dockron
|
module github.com/iamthefij/dockron
|
||||||
|
|
||||||
go 1.15
|
go 1.22
|
||||||
|
|
||||||
|
toolchain go1.22.7
|
||||||
|
|
||||||
require (
|
require (
|
||||||
git.iamthefij.com/iamthefij/slog v1.3.0
|
git.iamthefij.com/iamthefij/slog v1.3.0
|
||||||
github.com/Microsoft/go-winio v0.5.0 // indirect
|
github.com/docker/docker v27.3.1+incompatible
|
||||||
github.com/containerd/containerd v1.4.4 // indirect
|
github.com/robfig/cron/v3 v3.0.1
|
||||||
github.com/docker/distribution v2.7.1+incompatible // indirect
|
golang.org/x/net v0.29.0
|
||||||
github.com/docker/docker v20.10.6+incompatible
|
)
|
||||||
github.com/docker/go-connections v0.4.0 // indirect
|
|
||||||
github.com/docker/go-units v0.4.0 // indirect
|
require (
|
||||||
|
github.com/Microsoft/go-winio v0.4.14 // indirect
|
||||||
|
github.com/containerd/log v0.1.0 // indirect
|
||||||
|
github.com/distribution/reference v0.6.0 // indirect
|
||||||
|
github.com/docker/go-connections v0.5.0 // indirect
|
||||||
|
github.com/docker/go-units v0.5.0 // indirect
|
||||||
|
github.com/felixge/httpsnoop v1.0.4 // indirect
|
||||||
|
github.com/go-logr/logr v1.4.2 // indirect
|
||||||
|
github.com/go-logr/stdr v1.2.2 // indirect
|
||||||
github.com/gogo/protobuf v1.3.2 // indirect
|
github.com/gogo/protobuf v1.3.2 // indirect
|
||||||
github.com/gorilla/mux v1.8.0 // indirect
|
github.com/moby/docker-image-spec v1.3.1 // indirect
|
||||||
github.com/moby/term v0.0.0-20201216013528-df9cb8a40635 // indirect
|
github.com/moby/term v0.5.0 // indirect
|
||||||
github.com/morikuni/aec v1.0.0 // indirect
|
github.com/morikuni/aec v1.0.0 // indirect
|
||||||
github.com/opencontainers/go-digest v1.0.0 // indirect
|
github.com/opencontainers/go-digest v1.0.0 // indirect
|
||||||
github.com/opencontainers/image-spec v1.0.1 // indirect
|
github.com/opencontainers/image-spec v1.1.0 // indirect
|
||||||
github.com/robfig/cron/v3 v3.0.1
|
github.com/pkg/errors v0.9.1 // indirect
|
||||||
github.com/sirupsen/logrus v1.8.1 // indirect
|
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.55.0 // indirect
|
||||||
golang.org/x/net v0.0.0-20210428140749-89ef3d95e781
|
go.opentelemetry.io/otel v1.30.0 // indirect
|
||||||
golang.org/x/sys v0.0.0-20210426230700-d19ff857e887 // indirect
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.30.0 // indirect
|
||||||
golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba // indirect
|
go.opentelemetry.io/otel/metric v1.30.0 // indirect
|
||||||
google.golang.org/genproto v0.0.0-20210427215850-f767ed18ee4d // indirect
|
go.opentelemetry.io/otel/sdk v1.30.0 // indirect
|
||||||
google.golang.org/grpc v1.37.0 // indirect
|
go.opentelemetry.io/otel/trace v1.30.0 // indirect
|
||||||
gotest.tools/v3 v3.0.3 // indirect
|
golang.org/x/sys v0.25.0 // indirect
|
||||||
|
golang.org/x/time v0.6.0 // indirect
|
||||||
|
gotest.tools/v3 v3.5.1 // indirect
|
||||||
)
|
)
|
||||||
|
219
go.sum
219
go.sum
@ -1,186 +1,127 @@
|
|||||||
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
|
|
||||||
git.iamthefij.com/iamthefij/slog v1.3.0 h1:4Hu5PQvDrW5e3FrTS3q2iIXW0iPvhNY/9qJsqDR3K3I=
|
git.iamthefij.com/iamthefij/slog v1.3.0 h1:4Hu5PQvDrW5e3FrTS3q2iIXW0iPvhNY/9qJsqDR3K3I=
|
||||||
git.iamthefij.com/iamthefij/slog v1.3.0/go.mod h1:1RUj4hcCompZkAxXCRfUX786tb3cM/Zpkn97dGfUfbg=
|
git.iamthefij.com/iamthefij/slog v1.3.0/go.mod h1:1RUj4hcCompZkAxXCRfUX786tb3cM/Zpkn97dGfUfbg=
|
||||||
github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78 h1:w+iIsaOQNcT7OZ575w+acHgRric5iCyQh+xv+KJ4HB8=
|
github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8=
|
||||||
github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8=
|
github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E=
|
||||||
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
|
github.com/Microsoft/go-winio v0.4.14 h1:+hMXMk01us9KgxGb7ftKQt2Xpf5hH/yky+TDA+qxleU=
|
||||||
github.com/Microsoft/go-winio v0.5.0 h1:Elr9Wn+sGKPlkaBvwu4mTrxtmOp3F3yV9qhaHbXGjwU=
|
github.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA=
|
||||||
github.com/Microsoft/go-winio v0.5.0/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84=
|
github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8=
|
||||||
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
|
github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE=
|
||||||
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
|
github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I=
|
||||||
github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
|
github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo=
|
||||||
github.com/containerd/containerd v1.4.4 h1:rtRG4N6Ct7GNssATwgpvMGfnjnwfjnu/Zs9W3Ikzq+M=
|
|
||||||
github.com/containerd/containerd v1.4.4/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
|
|
||||||
github.com/creack/pty v1.1.11 h1:07n33Z8lZxZ2qwegKbObQohDhXDQxiMMz1NOUGYlesw=
|
|
||||||
github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
|
|
||||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
|
||||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
github.com/docker/distribution v2.7.1+incompatible h1:a5mlkVzth6W5A4fOsS3D2EO5BUmsJpcB+cRlLU7cSug=
|
github.com/distribution/reference v0.6.0 h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5QvfrDyIgxBk=
|
||||||
github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
|
github.com/distribution/reference v0.6.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E=
|
||||||
github.com/docker/docker v20.10.6+incompatible h1:oXI3Vas8TI8Eu/EjH4srKHJBVqraSzJybhxY7Om9faQ=
|
github.com/docker/docker v27.3.1+incompatible h1:KttF0XoteNTicmUtBO0L2tP+J7FGRFTjaEF4k6WdhfI=
|
||||||
github.com/docker/docker v20.10.6+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
|
github.com/docker/docker v27.3.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
|
||||||
github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ=
|
github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c=
|
||||||
github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec=
|
github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc=
|
||||||
github.com/docker/go-units v0.4.0 h1:3uh0PgVws3nIA0Q+MwDC8yjEPf9zjRfZZWXZYDct3Tw=
|
github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4=
|
||||||
github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
|
github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
|
||||||
github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
|
github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg=
|
||||||
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
|
github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
|
||||||
github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
|
github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
|
||||||
github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
|
github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY=
|
||||||
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
|
github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
|
||||||
|
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
|
||||||
|
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
|
||||||
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
|
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
|
||||||
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
|
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
|
||||||
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
|
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
|
||||||
github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
|
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
|
||||||
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
|
||||||
github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||||
github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
|
github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 h1:asbCHRVmodnJTuQ3qamDwqVOIjwqUPTYmYuemVOx+Ys=
|
||||||
github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
|
github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0/go.mod h1:ggCgvZ2r7uOoQjOyu2Y1NhHmEPPzzuhWgcza5M1Ji1I=
|
||||||
github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=
|
|
||||||
github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=
|
|
||||||
github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
|
|
||||||
github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=
|
|
||||||
github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
|
|
||||||
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
|
|
||||||
github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=
|
|
||||||
github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
|
|
||||||
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
|
|
||||||
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
|
||||||
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
|
||||||
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
|
||||||
github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
|
||||||
github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU=
|
|
||||||
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
|
||||||
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
|
||||||
github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI=
|
|
||||||
github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So=
|
|
||||||
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
|
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
|
||||||
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
|
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
|
||||||
github.com/moby/term v0.0.0-20201216013528-df9cb8a40635 h1:rzf0wL0CHVc8CEsgyygG0Mn9CNCCPZqOPaz8RiiHYQk=
|
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
|
||||||
github.com/moby/term v0.0.0-20201216013528-df9cb8a40635/go.mod h1:FBS0z0QWA44HXygs7VXDUOGoN/1TV3RuWkLO04am3wc=
|
github.com/moby/docker-image-spec v1.3.1 h1:jMKff3w6PgbfSa69GfNg+zN/XLhfXJGnEx3Nl2EsFP0=
|
||||||
|
github.com/moby/docker-image-spec v1.3.1/go.mod h1:eKmb5VW8vQEh/BAr2yvVNvuiJuY6UIocYsFu/DxxRpo=
|
||||||
|
github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0=
|
||||||
|
github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y=
|
||||||
github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A=
|
github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A=
|
||||||
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/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U=
|
github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U=
|
||||||
github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM=
|
github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM=
|
||||||
github.com/opencontainers/image-spec v1.0.1 h1:JMemWkRwHx4Zj+fVxWoMCFm/8sYGGrUVojFA6h/TRcI=
|
github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug=
|
||||||
github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0=
|
github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM=
|
||||||
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 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
||||||
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||||
github.com/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/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
|
|
||||||
github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs=
|
github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs=
|
||||||
github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro=
|
github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro=
|
||||||
github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
|
github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q=
|
||||||
github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE=
|
github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
|
||||||
github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
|
github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
|
||||||
github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
|
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
|
||||||
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
||||||
github.com/stretchr/testify v1.5.1 h1:nOGnQDM7FYENwehXlg/kFVnos3rEvtKTjRvOWSzb6H4=
|
github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
|
||||||
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
|
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
|
||||||
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||||
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||||
|
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.55.0 h1:ZIg3ZT/aQ7AfKqdwp7ECpOK6vHqquXXuyTjIO8ZdmPs=
|
||||||
|
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.55.0/go.mod h1:DQAwmETtZV00skUwgD6+0U89g80NKsJE3DCKeLLPQMI=
|
||||||
|
go.opentelemetry.io/otel v1.30.0 h1:F2t8sK4qf1fAmY9ua4ohFS/K+FUuOPemHUIXHtktrts=
|
||||||
|
go.opentelemetry.io/otel v1.30.0/go.mod h1:tFw4Br9b7fOS+uEao81PJjVMjW/5fvNCbpsDIXqP0pc=
|
||||||
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.30.0 h1:lsInsfvhVIfOI6qHVyysXMNDnjO9Npvl7tlDPJFBVd4=
|
||||||
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.30.0/go.mod h1:KQsVNh4OjgjTG0G6EiNi1jVpnaeeKsKMRwbLN+f1+8M=
|
||||||
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.30.0 h1:umZgi92IyxfXd/l4kaDhnKgY8rnN/cZcF1LKc6I8OQ8=
|
||||||
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.30.0/go.mod h1:4lVs6obhSVRb1EW5FhOuBTyiQhtRtAnnva9vD3yRfq8=
|
||||||
|
go.opentelemetry.io/otel/metric v1.30.0 h1:4xNulvn9gjzo4hjg+wzIKG7iNFEaBMX00Qd4QIZs7+w=
|
||||||
|
go.opentelemetry.io/otel/metric v1.30.0/go.mod h1:aXTfST94tswhWEb+5QjlSqG+cZlmyXy/u8jFpor3WqQ=
|
||||||
|
go.opentelemetry.io/otel/sdk v1.30.0 h1:cHdik6irO49R5IysVhdn8oaiR9m8XluDaJAs4DfOrYE=
|
||||||
|
go.opentelemetry.io/otel/sdk v1.30.0/go.mod h1:p14X4Ok8S+sygzblytT1nqG98QG2KYKv++HE0LY/mhg=
|
||||||
|
go.opentelemetry.io/otel/trace v1.30.0 h1:7UBkkYzeg3C7kQX8VAidWh2biiQbtAKjyIML8dQ9wmc=
|
||||||
|
go.opentelemetry.io/otel/trace v1.30.0/go.mod h1:5EyKqTzzmyqB9bwtCCq6pDLktPK6fmGf/Dph+8VI02o=
|
||||||
|
go.opentelemetry.io/proto/otlp v1.3.1 h1:TrMUixzpM0yuc/znrFTP9MMRh8trP93mkCiDVeXrui0=
|
||||||
|
go.opentelemetry.io/proto/otlp v1.3.1/go.mod h1:0X1WI4de4ZsLrrJNLAQbFeLCm3T7yBkR0XqQ7niQU+8=
|
||||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||||
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
|
||||||
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
|
||||||
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
|
|
||||||
golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
|
|
||||||
golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
|
|
||||||
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.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||||
golang.org/x/mod v0.3.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-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-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
|
||||||
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
|
||||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/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-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||||
golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc=
|
golang.org/x/net v0.29.0 h1:5ORfpBpCs4HzDYoodCDBbwHzdR5UrLBZ3sOnUJmFoHo=
|
||||||
golang.org/x/net v0.0.0-20210428140749-89ef3d95e781 h1:DzZ89McO9/gWPsQXS/FVKAlG02ZjaQ6AlZRBimEYOd0=
|
golang.org/x/net v0.29.0/go.mod h1:gLkgy8jTGERgjzMic6DS9+SP0ajcu6Xu3Orq/SpETg0=
|
||||||
golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk=
|
|
||||||
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
|
||||||
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
|
||||||
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
|
||||||
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
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/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/sys v0.0.0-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-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20200831180312-196b9ba8737a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
||||||
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.25.0 h1:r+8e+loiHxRqhXVl6ML1nO3l1+oFoWbnlu2Ehimmi34=
|
||||||
golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||||
golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
||||||
golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
||||||
golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
||||||
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
||||||
golang.org/x/sys v0.0.0-20210426230700-d19ff857e887 h1:dXfMednGJh/SUUFjTLsWJz3P+TQt9qnR11GgeI3vWKs=
|
|
||||||
golang.org/x/sys v0.0.0-20210426230700-d19ff857e887/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
||||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
|
||||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||||
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||||
golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
golang.org/x/text v0.18.0 h1:XvMDiNzPAl0jr17s6W9lcaIhGUfUORdGCNsuLmPG224=
|
||||||
golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M=
|
golang.org/x/text v0.18.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY=
|
||||||
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
golang.org/x/time v0.6.0 h1:eTDhh4ZXt5Qf0augr54TN6suAUudPcawVZeIAPU7D4U=
|
||||||
golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba h1:O8mE0/t419eoIwhTFpKVkHiTs/Igowgfkj25AcZrtiE=
|
golang.org/x/time v0.6.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
|
||||||
golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
|
||||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
|
||||||
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
|
|
||||||
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
|
||||||
golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
|
|
||||||
golang.org/x/tools v0.0.0-20190624222133-a101b041ded4/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
|
||||||
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/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-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
|
|
||||||
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
||||||
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
||||||
golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0=
|
|
||||||
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-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||||
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=
|
||||||
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=
|
|
||||||
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||||
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
|
google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1 h1:hjSy6tcFQZ171igDaN5QHOw2n6vx40juYbC/x67CEhc=
|
||||||
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:qpvKtACPCQhAdu3PyQgV4l3LMXZEtft7y8QcarRsp9I=
|
||||||
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 h1:pPJltXNxVzT4pK9yD8vR9X75DaWYYmLGMsEvBfFQZzQ=
|
||||||
google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU=
|
||||||
google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
|
google.golang.org/grpc v1.66.1 h1:hO5qAXR19+/Z44hmvIM4dQFMSYX9XcWsByfoxutBpAM=
|
||||||
google.golang.org/genproto v0.0.0-20210427215850-f767ed18ee4d h1:XkK62R+tLAM4pyhJdBEvtb5B/hM1uTxsVIOjJm6wras=
|
google.golang.org/grpc v1.66.1/go.mod h1:s3/l6xSSCURdVfAnL+TqCNMyTDAGN6+lZeVxnZR128Y=
|
||||||
google.golang.org/genproto v0.0.0-20210427215850-f767ed18ee4d/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A=
|
google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg=
|
||||||
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
|
google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw=
|
||||||
google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
|
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||||
google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
|
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
|
gotest.tools/v3 v3.5.1 h1:EENdUnS3pdur5nybKYIh2Vfgc8IUNBjxDPSjtiJcOzU=
|
||||||
google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
|
gotest.tools/v3 v3.5.1/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU=
|
||||||
google.golang.org/grpc v1.37.0 h1:uSZWeQJX5j11bIQ4AJoj+McDBo29cY1MCoC1wO3ts+c=
|
|
||||||
google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
|
|
||||||
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
|
|
||||||
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
|
|
||||||
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
|
|
||||||
google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
|
|
||||||
google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
|
|
||||||
google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
|
|
||||||
google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
|
|
||||||
google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
|
|
||||||
google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
|
|
||||||
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
|
|
||||||
google.golang.org/protobuf v1.26.0 h1:bxAC2xTBsZGibn2RTntX0oH50xLsqy1OxA9tTL3p/lk=
|
|
||||||
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
|
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
|
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
|
||||||
gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw=
|
|
||||||
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
|
||||||
gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk=
|
|
||||||
gotest.tools/v3 v3.0.3 h1:4AuOwCGf4lLR9u3YOe2awrHygurzhO/HeQ6laiA6Sx0=
|
|
||||||
gotest.tools/v3 v3.0.3/go.mod h1:Z7Lb0S5l+klDB31fvDQX8ss/FlKDxtlFlw3Oa8Ymbl8=
|
|
||||||
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
|
||||||
honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
|
||||||
|
22
main.go
22
main.go
@ -10,6 +10,7 @@ import (
|
|||||||
|
|
||||||
"git.iamthefij.com/iamthefij/slog"
|
"git.iamthefij.com/iamthefij/slog"
|
||||||
dockerTypes "github.com/docker/docker/api/types"
|
dockerTypes "github.com/docker/docker/api/types"
|
||||||
|
"github.com/docker/docker/api/types/container"
|
||||||
dockerClient "github.com/docker/docker/client"
|
dockerClient "github.com/docker/docker/client"
|
||||||
"github.com/robfig/cron/v3"
|
"github.com/robfig/cron/v3"
|
||||||
"golang.org/x/net/context"
|
"golang.org/x/net/context"
|
||||||
@ -30,12 +31,12 @@ var (
|
|||||||
|
|
||||||
// ContainerClient provides an interface for interracting with Docker
|
// ContainerClient provides an interface for interracting with Docker
|
||||||
type ContainerClient interface {
|
type ContainerClient interface {
|
||||||
ContainerExecCreate(ctx context.Context, container string, config dockerTypes.ExecConfig) (dockerTypes.IDResponse, error)
|
ContainerExecCreate(ctx context.Context, container string, config container.ExecOptions) (dockerTypes.IDResponse, error)
|
||||||
ContainerExecInspect(ctx context.Context, execID string) (dockerTypes.ContainerExecInspect, error)
|
ContainerExecInspect(ctx context.Context, execID string) (container.ExecInspect, error)
|
||||||
ContainerExecStart(ctx context.Context, execID string, config dockerTypes.ExecStartCheck) error
|
ContainerExecStart(ctx context.Context, execID string, config container.ExecStartOptions) error
|
||||||
ContainerInspect(ctx context.Context, containerID string) (dockerTypes.ContainerJSON, error)
|
ContainerInspect(ctx context.Context, containerID string) (dockerTypes.ContainerJSON, error)
|
||||||
ContainerList(context context.Context, options dockerTypes.ContainerListOptions) ([]dockerTypes.Container, error)
|
ContainerList(context context.Context, options container.ListOptions) ([]dockerTypes.Container, error)
|
||||||
ContainerStart(context context.Context, containerID string, options dockerTypes.ContainerStartOptions) error
|
ContainerStart(context context.Context, containerID string, options container.StartOptions) error
|
||||||
}
|
}
|
||||||
|
|
||||||
// ContainerCronJob is an interface of a job to run on containers
|
// ContainerCronJob is an interface of a job to run on containers
|
||||||
@ -79,7 +80,7 @@ func (job ContainerStartJob) Run() {
|
|||||||
err = job.client.ContainerStart(
|
err = job.client.ContainerStart(
|
||||||
job.context,
|
job.context,
|
||||||
job.containerID,
|
job.containerID,
|
||||||
dockerTypes.ContainerStartOptions{},
|
container.StartOptions{},
|
||||||
)
|
)
|
||||||
slog.OnErrPanicf(err, "Could not start container for job %s", job.name)
|
slog.OnErrPanicf(err, "Could not start container for job %s", job.name)
|
||||||
|
|
||||||
@ -96,6 +97,7 @@ func (job ContainerStartJob) Run() {
|
|||||||
time.Sleep(1 * time.Second)
|
time.Sleep(1 * time.Second)
|
||||||
}
|
}
|
||||||
slog.Debugf("Done execing %s. %+v", job.name, containerJSON.State)
|
slog.Debugf("Done execing %s. %+v", job.name, containerJSON.State)
|
||||||
|
|
||||||
// Log exit code if failed
|
// Log exit code if failed
|
||||||
if containerJSON.State.ExitCode != 0 {
|
if containerJSON.State.ExitCode != 0 {
|
||||||
slog.Errorf(
|
slog.Errorf(
|
||||||
@ -148,7 +150,7 @@ func (job ContainerExecJob) Run() {
|
|||||||
execID, err := job.client.ContainerExecCreate(
|
execID, err := job.client.ContainerExecCreate(
|
||||||
job.context,
|
job.context,
|
||||||
job.containerID,
|
job.containerID,
|
||||||
dockerTypes.ExecConfig{
|
container.ExecOptions{
|
||||||
Cmd: []string{"sh", "-c", strings.TrimSpace(job.shellCommand)},
|
Cmd: []string{"sh", "-c", strings.TrimSpace(job.shellCommand)},
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
@ -157,12 +159,12 @@ func (job ContainerExecJob) Run() {
|
|||||||
err = job.client.ContainerExecStart(
|
err = job.client.ContainerExecStart(
|
||||||
job.context,
|
job.context,
|
||||||
execID.ID,
|
execID.ID,
|
||||||
dockerTypes.ExecStartCheck{},
|
container.ExecStartOptions{},
|
||||||
)
|
)
|
||||||
slog.OnErrPanicf(err, "Could not start container exec job for %s", job.name)
|
slog.OnErrPanicf(err, "Could not start container exec job for %s", job.name)
|
||||||
|
|
||||||
// Wait for job results
|
// Wait for job results
|
||||||
execInfo := dockerTypes.ContainerExecInspect{Running: true}
|
execInfo := container.ExecInspect{Running: true}
|
||||||
for execInfo.Running {
|
for execInfo.Running {
|
||||||
slog.Debugf("Still execing %s", job.name)
|
slog.Debugf("Still execing %s", job.name)
|
||||||
execInfo, err = job.client.ContainerExecInspect(
|
execInfo, err = job.client.ContainerExecInspect(
|
||||||
@ -194,7 +196,7 @@ func QueryScheduledJobs(client ContainerClient) (jobs []ContainerCronJob) {
|
|||||||
|
|
||||||
containers, err := client.ContainerList(
|
containers, err := client.ContainerList(
|
||||||
context.Background(),
|
context.Background(),
|
||||||
dockerTypes.ContainerListOptions{All: true},
|
container.ListOptions{All: true},
|
||||||
)
|
)
|
||||||
slog.OnErrPanicf(err, "Failure querying docker containers")
|
slog.OnErrPanicf(err, "Failure querying docker containers")
|
||||||
|
|
||||||
|
233
main_test.go
233
main_test.go
@ -9,6 +9,7 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
dockerTypes "github.com/docker/docker/api/types"
|
dockerTypes "github.com/docker/docker/api/types"
|
||||||
|
"github.com/docker/docker/api/types/container"
|
||||||
"github.com/robfig/cron/v3"
|
"github.com/robfig/cron/v3"
|
||||||
"golang.org/x/net/context"
|
"golang.org/x/net/context"
|
||||||
)
|
)
|
||||||
@ -73,7 +74,7 @@ func (fakeClient *FakeDockerClient) called(method string, v ...interface{}) Fake
|
|||||||
return results
|
return results
|
||||||
}
|
}
|
||||||
|
|
||||||
func (fakeClient *FakeDockerClient) ContainerStart(context context.Context, containerID string, options dockerTypes.ContainerStartOptions) (e error) {
|
func (fakeClient *FakeDockerClient) ContainerStart(context context.Context, containerID string, options container.StartOptions) (e error) {
|
||||||
results := fakeClient.called("ContainerStart", context, containerID, options)
|
results := fakeClient.called("ContainerStart", context, containerID, options)
|
||||||
if results[0] != nil {
|
if results[0] != nil {
|
||||||
e = results[0].(error)
|
e = results[0].(error)
|
||||||
@ -82,7 +83,7 @@ func (fakeClient *FakeDockerClient) ContainerStart(context context.Context, cont
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func (fakeClient *FakeDockerClient) ContainerList(context context.Context, options dockerTypes.ContainerListOptions) (c []dockerTypes.Container, e error) {
|
func (fakeClient *FakeDockerClient) ContainerList(context context.Context, options container.ListOptions) (c []dockerTypes.Container, e error) {
|
||||||
results := fakeClient.called("ContainerList", context, options)
|
results := fakeClient.called("ContainerList", context, options)
|
||||||
if results[0] != nil {
|
if results[0] != nil {
|
||||||
c = results[0].([]dockerTypes.Container)
|
c = results[0].([]dockerTypes.Container)
|
||||||
@ -95,7 +96,7 @@ func (fakeClient *FakeDockerClient) ContainerList(context context.Context, optio
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func (fakeClient *FakeDockerClient) ContainerExecCreate(ctx context.Context, container string, config dockerTypes.ExecConfig) (r dockerTypes.IDResponse, e error) {
|
func (fakeClient *FakeDockerClient) ContainerExecCreate(ctx context.Context, container string, config container.ExecOptions) (r dockerTypes.IDResponse, e error) {
|
||||||
results := fakeClient.called("ContainerExecCreate", ctx, container, config)
|
results := fakeClient.called("ContainerExecCreate", ctx, container, config)
|
||||||
if results[0] != nil {
|
if results[0] != nil {
|
||||||
r = results[0].(dockerTypes.IDResponse)
|
r = results[0].(dockerTypes.IDResponse)
|
||||||
@ -108,7 +109,7 @@ func (fakeClient *FakeDockerClient) ContainerExecCreate(ctx context.Context, con
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func (fakeClient *FakeDockerClient) ContainerExecStart(ctx context.Context, execID string, config dockerTypes.ExecStartCheck) (e error) {
|
func (fakeClient *FakeDockerClient) ContainerExecStart(ctx context.Context, execID string, config container.ExecStartOptions) (e error) {
|
||||||
results := fakeClient.called("ContainerExecStart", ctx, execID, config)
|
results := fakeClient.called("ContainerExecStart", ctx, execID, config)
|
||||||
if results[0] != nil {
|
if results[0] != nil {
|
||||||
e = results[0].(error)
|
e = results[0].(error)
|
||||||
@ -117,10 +118,10 @@ func (fakeClient *FakeDockerClient) ContainerExecStart(ctx context.Context, exec
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func (fakeClient *FakeDockerClient) ContainerExecInspect(ctx context.Context, execID string) (r dockerTypes.ContainerExecInspect, e error) {
|
func (fakeClient *FakeDockerClient) ContainerExecInspect(ctx context.Context, execID string) (r container.ExecInspect, e error) {
|
||||||
results := fakeClient.called("ContainerExecInspect", ctx, execID)
|
results := fakeClient.called("ContainerExecInspect", ctx, execID)
|
||||||
if results[0] != nil {
|
if results[0] != nil {
|
||||||
r = results[0].(dockerTypes.ContainerExecInspect)
|
r = results[0].(container.ExecInspect)
|
||||||
}
|
}
|
||||||
|
|
||||||
if results[1] != nil {
|
if results[1] != nil {
|
||||||
@ -175,7 +176,7 @@ func TestQueryScheduledJobs(t *testing.T) {
|
|||||||
{
|
{
|
||||||
name: "One container without schedule",
|
name: "One container without schedule",
|
||||||
fakeContainers: []dockerTypes.Container{
|
fakeContainers: []dockerTypes.Container{
|
||||||
dockerTypes.Container{
|
{
|
||||||
Names: []string{"no_schedule_1"},
|
Names: []string{"no_schedule_1"},
|
||||||
ID: "no_schedule_1",
|
ID: "no_schedule_1",
|
||||||
},
|
},
|
||||||
@ -185,7 +186,7 @@ func TestQueryScheduledJobs(t *testing.T) {
|
|||||||
{
|
{
|
||||||
name: "One container with schedule",
|
name: "One container with schedule",
|
||||||
fakeContainers: []dockerTypes.Container{
|
fakeContainers: []dockerTypes.Container{
|
||||||
dockerTypes.Container{
|
{
|
||||||
Names: []string{"has_schedule_1"},
|
Names: []string{"has_schedule_1"},
|
||||||
ID: "has_schedule_1",
|
ID: "has_schedule_1",
|
||||||
Labels: map[string]string{
|
Labels: map[string]string{
|
||||||
@ -206,11 +207,11 @@ func TestQueryScheduledJobs(t *testing.T) {
|
|||||||
{
|
{
|
||||||
name: "One container with and one without schedule",
|
name: "One container with and one without schedule",
|
||||||
fakeContainers: []dockerTypes.Container{
|
fakeContainers: []dockerTypes.Container{
|
||||||
dockerTypes.Container{
|
{
|
||||||
Names: []string{"no_schedule_1"},
|
Names: []string{"no_schedule_1"},
|
||||||
ID: "no_schedule_1",
|
ID: "no_schedule_1",
|
||||||
},
|
},
|
||||||
dockerTypes.Container{
|
{
|
||||||
Names: []string{"has_schedule_1"},
|
Names: []string{"has_schedule_1"},
|
||||||
ID: "has_schedule_1",
|
ID: "has_schedule_1",
|
||||||
Labels: map[string]string{
|
Labels: map[string]string{
|
||||||
@ -231,7 +232,7 @@ func TestQueryScheduledJobs(t *testing.T) {
|
|||||||
{
|
{
|
||||||
name: "Incomplete exec job, schedule only",
|
name: "Incomplete exec job, schedule only",
|
||||||
fakeContainers: []dockerTypes.Container{
|
fakeContainers: []dockerTypes.Container{
|
||||||
dockerTypes.Container{
|
{
|
||||||
Names: []string{"exec_job_1"},
|
Names: []string{"exec_job_1"},
|
||||||
ID: "exec_job_1",
|
ID: "exec_job_1",
|
||||||
Labels: map[string]string{
|
Labels: map[string]string{
|
||||||
@ -244,7 +245,7 @@ func TestQueryScheduledJobs(t *testing.T) {
|
|||||||
{
|
{
|
||||||
name: "Incomplete exec job, command only",
|
name: "Incomplete exec job, command only",
|
||||||
fakeContainers: []dockerTypes.Container{
|
fakeContainers: []dockerTypes.Container{
|
||||||
dockerTypes.Container{
|
{
|
||||||
Names: []string{"exec_job_1"},
|
Names: []string{"exec_job_1"},
|
||||||
ID: "exec_job_1",
|
ID: "exec_job_1",
|
||||||
Labels: map[string]string{
|
Labels: map[string]string{
|
||||||
@ -257,7 +258,7 @@ func TestQueryScheduledJobs(t *testing.T) {
|
|||||||
{
|
{
|
||||||
name: "Complete exec job",
|
name: "Complete exec job",
|
||||||
fakeContainers: []dockerTypes.Container{
|
fakeContainers: []dockerTypes.Container{
|
||||||
dockerTypes.Container{
|
{
|
||||||
Names: []string{"exec_job_1"},
|
Names: []string{"exec_job_1"},
|
||||||
ID: "exec_job_1",
|
ID: "exec_job_1",
|
||||||
Labels: map[string]string{
|
Labels: map[string]string{
|
||||||
@ -282,7 +283,7 @@ func TestQueryScheduledJobs(t *testing.T) {
|
|||||||
{
|
{
|
||||||
name: "Dual exec jobs on single container",
|
name: "Dual exec jobs on single container",
|
||||||
fakeContainers: []dockerTypes.Container{
|
fakeContainers: []dockerTypes.Container{
|
||||||
dockerTypes.Container{
|
{
|
||||||
Names: []string{"exec_job_1"},
|
Names: []string{"exec_job_1"},
|
||||||
ID: "exec_job_1",
|
ID: "exec_job_1",
|
||||||
Labels: map[string]string{
|
Labels: map[string]string{
|
||||||
@ -325,7 +326,7 @@ func TestQueryScheduledJobs(t *testing.T) {
|
|||||||
// Load fake containers
|
// Load fake containers
|
||||||
t.Logf("Fake containers: %+v", c.fakeContainers)
|
t.Logf("Fake containers: %+v", c.fakeContainers)
|
||||||
client.FakeResults["ContainerList"] = []FakeResult{
|
client.FakeResults["ContainerList"] = []FakeResult{
|
||||||
FakeResult{c.fakeContainers, nil},
|
{c.fakeContainers, nil},
|
||||||
}
|
}
|
||||||
|
|
||||||
jobs := QueryScheduledJobs(client)
|
jobs := QueryScheduledJobs(client)
|
||||||
@ -472,7 +473,7 @@ func TestDoLoop(t *testing.T) {
|
|||||||
{
|
{
|
||||||
name: "One container without schedule",
|
name: "One container without schedule",
|
||||||
fakeContainers: []dockerTypes.Container{
|
fakeContainers: []dockerTypes.Container{
|
||||||
dockerTypes.Container{
|
{
|
||||||
Names: []string{"no_schedule_1"},
|
Names: []string{"no_schedule_1"},
|
||||||
ID: "no_schedule_1",
|
ID: "no_schedule_1",
|
||||||
},
|
},
|
||||||
@ -482,7 +483,7 @@ func TestDoLoop(t *testing.T) {
|
|||||||
{
|
{
|
||||||
name: "One container with schedule",
|
name: "One container with schedule",
|
||||||
fakeContainers: []dockerTypes.Container{
|
fakeContainers: []dockerTypes.Container{
|
||||||
dockerTypes.Container{
|
{
|
||||||
Names: []string{"has_schedule_1"},
|
Names: []string{"has_schedule_1"},
|
||||||
ID: "has_schedule_1",
|
ID: "has_schedule_1",
|
||||||
Labels: map[string]string{
|
Labels: map[string]string{
|
||||||
@ -503,11 +504,11 @@ func TestDoLoop(t *testing.T) {
|
|||||||
{
|
{
|
||||||
name: "One container with and one without schedule",
|
name: "One container with and one without schedule",
|
||||||
fakeContainers: []dockerTypes.Container{
|
fakeContainers: []dockerTypes.Container{
|
||||||
dockerTypes.Container{
|
{
|
||||||
Names: []string{"no_schedule_1"},
|
Names: []string{"no_schedule_1"},
|
||||||
ID: "no_schedule_1",
|
ID: "no_schedule_1",
|
||||||
},
|
},
|
||||||
dockerTypes.Container{
|
{
|
||||||
Names: []string{"has_schedule_1"},
|
Names: []string{"has_schedule_1"},
|
||||||
ID: "has_schedule_1",
|
ID: "has_schedule_1",
|
||||||
Labels: map[string]string{
|
Labels: map[string]string{
|
||||||
@ -528,14 +529,14 @@ func TestDoLoop(t *testing.T) {
|
|||||||
{
|
{
|
||||||
name: "Add a second container with a schedule",
|
name: "Add a second container with a schedule",
|
||||||
fakeContainers: []dockerTypes.Container{
|
fakeContainers: []dockerTypes.Container{
|
||||||
dockerTypes.Container{
|
{
|
||||||
Names: []string{"has_schedule_1"},
|
Names: []string{"has_schedule_1"},
|
||||||
ID: "has_schedule_1",
|
ID: "has_schedule_1",
|
||||||
Labels: map[string]string{
|
Labels: map[string]string{
|
||||||
"dockron.schedule": "* * * * *",
|
"dockron.schedule": "* * * * *",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
dockerTypes.Container{
|
{
|
||||||
Names: []string{"has_schedule_2"},
|
Names: []string{"has_schedule_2"},
|
||||||
ID: "has_schedule_2",
|
ID: "has_schedule_2",
|
||||||
Labels: map[string]string{
|
Labels: map[string]string{
|
||||||
@ -563,14 +564,14 @@ func TestDoLoop(t *testing.T) {
|
|||||||
{
|
{
|
||||||
name: "Modify the first container",
|
name: "Modify the first container",
|
||||||
fakeContainers: []dockerTypes.Container{
|
fakeContainers: []dockerTypes.Container{
|
||||||
dockerTypes.Container{
|
{
|
||||||
Names: []string{"has_schedule_1"},
|
Names: []string{"has_schedule_1"},
|
||||||
ID: "has_schedule_1_prime",
|
ID: "has_schedule_1_prime",
|
||||||
Labels: map[string]string{
|
Labels: map[string]string{
|
||||||
"dockron.schedule": "* * * * *",
|
"dockron.schedule": "* * * * *",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
dockerTypes.Container{
|
{
|
||||||
Names: []string{"has_schedule_2"},
|
Names: []string{"has_schedule_2"},
|
||||||
ID: "has_schedule_2",
|
ID: "has_schedule_2",
|
||||||
Labels: map[string]string{
|
Labels: map[string]string{
|
||||||
@ -598,7 +599,7 @@ func TestDoLoop(t *testing.T) {
|
|||||||
{
|
{
|
||||||
name: "Remove second container and add exec to first",
|
name: "Remove second container and add exec to first",
|
||||||
fakeContainers: []dockerTypes.Container{
|
fakeContainers: []dockerTypes.Container{
|
||||||
dockerTypes.Container{
|
{
|
||||||
Names: []string{"has_schedule_1"},
|
Names: []string{"has_schedule_1"},
|
||||||
ID: "has_schedule_1_prime",
|
ID: "has_schedule_1_prime",
|
||||||
Labels: map[string]string{
|
Labels: map[string]string{
|
||||||
@ -637,7 +638,7 @@ func TestDoLoop(t *testing.T) {
|
|||||||
// Load fake containers
|
// Load fake containers
|
||||||
t.Logf("Fake containers: %+v", c.fakeContainers)
|
t.Logf("Fake containers: %+v", c.fakeContainers)
|
||||||
client.FakeResults["ContainerList"] = []FakeResult{
|
client.FakeResults["ContainerList"] = []FakeResult{
|
||||||
FakeResult{c.fakeContainers, nil},
|
{c.fakeContainers, nil},
|
||||||
}
|
}
|
||||||
|
|
||||||
// Execute loop iteration loop
|
// Execute loop iteration loop
|
||||||
@ -681,13 +682,13 @@ func TestRunExecJobs(t *testing.T) {
|
|||||||
name: "Initial inspect call raises error",
|
name: "Initial inspect call raises error",
|
||||||
client: &FakeDockerClient{
|
client: &FakeDockerClient{
|
||||||
FakeResults: map[string][]FakeResult{
|
FakeResults: map[string][]FakeResult{
|
||||||
"ContainerInspect": []FakeResult{
|
"ContainerInspect": {
|
||||||
FakeResult{nil, errGeneric},
|
{nil, errGeneric},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
expectedCalls: map[string][]FakeCall{
|
expectedCalls: map[string][]FakeCall{
|
||||||
"ContainerInspect": []FakeCall{
|
"ContainerInspect": {
|
||||||
FakeCall{jobContext, jobContainerID},
|
FakeCall{jobContext, jobContainerID},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -697,14 +698,14 @@ func TestRunExecJobs(t *testing.T) {
|
|||||||
name: "Handle container not running",
|
name: "Handle container not running",
|
||||||
client: &FakeDockerClient{
|
client: &FakeDockerClient{
|
||||||
FakeResults: map[string][]FakeResult{
|
FakeResults: map[string][]FakeResult{
|
||||||
"ContainerInspect": []FakeResult{
|
"ContainerInspect": {
|
||||||
FakeResult{stoppedContainerInfo, nil},
|
{stoppedContainerInfo, nil},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
expectedCalls: map[string][]FakeCall{
|
expectedCalls: map[string][]FakeCall{
|
||||||
"ContainerInspect": []FakeCall{
|
"ContainerInspect": {
|
||||||
FakeCall{jobContext, jobContainerID},
|
{jobContext, jobContainerID},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -712,23 +713,23 @@ func TestRunExecJobs(t *testing.T) {
|
|||||||
name: "Handle error creating exec",
|
name: "Handle error creating exec",
|
||||||
client: &FakeDockerClient{
|
client: &FakeDockerClient{
|
||||||
FakeResults: map[string][]FakeResult{
|
FakeResults: map[string][]FakeResult{
|
||||||
"ContainerInspect": []FakeResult{
|
"ContainerInspect": {
|
||||||
FakeResult{runningContainerInfo, nil},
|
{runningContainerInfo, nil},
|
||||||
},
|
},
|
||||||
"ContainerExecCreate": []FakeResult{
|
"ContainerExecCreate": {
|
||||||
FakeResult{nil, errGeneric},
|
{nil, errGeneric},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
expectedCalls: map[string][]FakeCall{
|
expectedCalls: map[string][]FakeCall{
|
||||||
"ContainerInspect": []FakeCall{
|
"ContainerInspect": {
|
||||||
FakeCall{jobContext, jobContainerID},
|
{jobContext, jobContainerID},
|
||||||
},
|
},
|
||||||
"ContainerExecCreate": []FakeCall{
|
"ContainerExecCreate": {
|
||||||
FakeCall{
|
{
|
||||||
jobContext,
|
jobContext,
|
||||||
jobContainerID,
|
jobContainerID,
|
||||||
dockerTypes.ExecConfig{
|
container.ExecOptions{
|
||||||
Cmd: []string{"sh", "-c", jobCommand},
|
Cmd: []string{"sh", "-c", jobCommand},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -740,32 +741,32 @@ func TestRunExecJobs(t *testing.T) {
|
|||||||
name: "Fail starting exec container",
|
name: "Fail starting exec container",
|
||||||
client: &FakeDockerClient{
|
client: &FakeDockerClient{
|
||||||
FakeResults: map[string][]FakeResult{
|
FakeResults: map[string][]FakeResult{
|
||||||
"ContainerInspect": []FakeResult{
|
"ContainerInspect": {
|
||||||
FakeResult{runningContainerInfo, nil},
|
{runningContainerInfo, nil},
|
||||||
},
|
},
|
||||||
"ContainerExecCreate": []FakeResult{
|
"ContainerExecCreate": {
|
||||||
FakeResult{dockerTypes.IDResponse{ID: "id"}, nil},
|
{dockerTypes.IDResponse{ID: "id"}, nil},
|
||||||
},
|
},
|
||||||
"ContainerExecStart": []FakeResult{
|
"ContainerExecStart": {
|
||||||
FakeResult{errGeneric},
|
{errGeneric},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
expectedCalls: map[string][]FakeCall{
|
expectedCalls: map[string][]FakeCall{
|
||||||
"ContainerInspect": []FakeCall{
|
"ContainerInspect": {
|
||||||
FakeCall{jobContext, jobContainerID},
|
{jobContext, jobContainerID},
|
||||||
},
|
},
|
||||||
"ContainerExecCreate": []FakeCall{
|
"ContainerExecCreate": {
|
||||||
FakeCall{
|
{
|
||||||
jobContext,
|
jobContext,
|
||||||
jobContainerID,
|
jobContainerID,
|
||||||
dockerTypes.ExecConfig{
|
container.ExecOptions{
|
||||||
Cmd: []string{"sh", "-c", jobCommand},
|
Cmd: []string{"sh", "-c", jobCommand},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
"ContainerExecStart": []FakeCall{
|
"ContainerExecStart": {
|
||||||
FakeCall{jobContext, "id", dockerTypes.ExecStartCheck{}},
|
{jobContext, "id", container.ExecStartOptions{}},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
expectPanic: true,
|
expectPanic: true,
|
||||||
@ -774,38 +775,38 @@ func TestRunExecJobs(t *testing.T) {
|
|||||||
name: "Successfully start an exec job fail on status",
|
name: "Successfully start an exec job fail on status",
|
||||||
client: &FakeDockerClient{
|
client: &FakeDockerClient{
|
||||||
FakeResults: map[string][]FakeResult{
|
FakeResults: map[string][]FakeResult{
|
||||||
"ContainerInspect": []FakeResult{
|
"ContainerInspect": {
|
||||||
FakeResult{runningContainerInfo, nil},
|
{runningContainerInfo, nil},
|
||||||
},
|
},
|
||||||
"ContainerExecCreate": []FakeResult{
|
"ContainerExecCreate": {
|
||||||
FakeResult{dockerTypes.IDResponse{ID: "id"}, nil},
|
{dockerTypes.IDResponse{ID: "id"}, nil},
|
||||||
},
|
},
|
||||||
"ContainerExecStart": []FakeResult{
|
"ContainerExecStart": {
|
||||||
FakeResult{nil},
|
{nil},
|
||||||
},
|
},
|
||||||
"ContainerExecInspect": []FakeResult{
|
"ContainerExecInspect": {
|
||||||
FakeResult{nil, errGeneric},
|
{nil, errGeneric},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
expectedCalls: map[string][]FakeCall{
|
expectedCalls: map[string][]FakeCall{
|
||||||
"ContainerInspect": []FakeCall{
|
"ContainerInspect": {
|
||||||
FakeCall{jobContext, jobContainerID},
|
{jobContext, jobContainerID},
|
||||||
},
|
},
|
||||||
"ContainerExecCreate": []FakeCall{
|
"ContainerExecCreate": {
|
||||||
FakeCall{
|
{
|
||||||
jobContext,
|
jobContext,
|
||||||
jobContainerID,
|
jobContainerID,
|
||||||
dockerTypes.ExecConfig{
|
container.ExecOptions{
|
||||||
Cmd: []string{"sh", "-c", jobCommand},
|
Cmd: []string{"sh", "-c", jobCommand},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
"ContainerExecStart": []FakeCall{
|
"ContainerExecStart": {
|
||||||
FakeCall{jobContext, "id", dockerTypes.ExecStartCheck{}},
|
{jobContext, "id", container.ExecStartOptions{}},
|
||||||
},
|
},
|
||||||
"ContainerExecInspect": []FakeCall{
|
"ContainerExecInspect": {
|
||||||
FakeCall{jobContext, "id"},
|
{jobContext, "id"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -813,40 +814,40 @@ func TestRunExecJobs(t *testing.T) {
|
|||||||
name: "Successfully start an exec job and run to completion",
|
name: "Successfully start an exec job and run to completion",
|
||||||
client: &FakeDockerClient{
|
client: &FakeDockerClient{
|
||||||
FakeResults: map[string][]FakeResult{
|
FakeResults: map[string][]FakeResult{
|
||||||
"ContainerInspect": []FakeResult{
|
"ContainerInspect": {
|
||||||
FakeResult{runningContainerInfo, nil},
|
{runningContainerInfo, nil},
|
||||||
},
|
},
|
||||||
"ContainerExecCreate": []FakeResult{
|
"ContainerExecCreate": {
|
||||||
FakeResult{dockerTypes.IDResponse{ID: "id"}, nil},
|
{dockerTypes.IDResponse{ID: "id"}, nil},
|
||||||
},
|
},
|
||||||
"ContainerExecStart": []FakeResult{
|
"ContainerExecStart": {
|
||||||
FakeResult{nil},
|
{nil},
|
||||||
},
|
},
|
||||||
"ContainerExecInspect": []FakeResult{
|
"ContainerExecInspect": {
|
||||||
FakeResult{dockerTypes.ContainerExecInspect{Running: true}, nil},
|
{container.ExecInspect{Running: true}, nil},
|
||||||
FakeResult{dockerTypes.ContainerExecInspect{Running: false}, nil},
|
{container.ExecInspect{Running: false}, nil},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
expectedCalls: map[string][]FakeCall{
|
expectedCalls: map[string][]FakeCall{
|
||||||
"ContainerInspect": []FakeCall{
|
"ContainerInspect": {
|
||||||
FakeCall{jobContext, jobContainerID},
|
{jobContext, jobContainerID},
|
||||||
},
|
},
|
||||||
"ContainerExecCreate": []FakeCall{
|
"ContainerExecCreate": {
|
||||||
FakeCall{
|
{
|
||||||
jobContext,
|
jobContext,
|
||||||
jobContainerID,
|
jobContainerID,
|
||||||
dockerTypes.ExecConfig{
|
container.ExecOptions{
|
||||||
Cmd: []string{"sh", "-c", jobCommand},
|
Cmd: []string{"sh", "-c", jobCommand},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
"ContainerExecStart": []FakeCall{
|
"ContainerExecStart": {
|
||||||
FakeCall{jobContext, "id", dockerTypes.ExecStartCheck{}},
|
{jobContext, "id", container.ExecStartOptions{}},
|
||||||
},
|
},
|
||||||
"ContainerExecInspect": []FakeCall{
|
"ContainerExecInspect": {
|
||||||
FakeCall{jobContext, "id"},
|
{jobContext, "id"},
|
||||||
FakeCall{jobContext, "id"},
|
{jobContext, "id"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -903,14 +904,14 @@ func TestRunStartJobs(t *testing.T) {
|
|||||||
name: "Initial inspect call raises error",
|
name: "Initial inspect call raises error",
|
||||||
client: &FakeDockerClient{
|
client: &FakeDockerClient{
|
||||||
FakeResults: map[string][]FakeResult{
|
FakeResults: map[string][]FakeResult{
|
||||||
"ContainerInspect": []FakeResult{
|
"ContainerInspect": {
|
||||||
FakeResult{nil, errGeneric},
|
{nil, errGeneric},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
expectedCalls: map[string][]FakeCall{
|
expectedCalls: map[string][]FakeCall{
|
||||||
"ContainerInspect": []FakeCall{
|
"ContainerInspect": {
|
||||||
FakeCall{jobContext, jobContainerID},
|
{jobContext, jobContainerID},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
expectPanic: true,
|
expectPanic: true,
|
||||||
@ -919,14 +920,14 @@ func TestRunStartJobs(t *testing.T) {
|
|||||||
name: "Handle container already running",
|
name: "Handle container already running",
|
||||||
client: &FakeDockerClient{
|
client: &FakeDockerClient{
|
||||||
FakeResults: map[string][]FakeResult{
|
FakeResults: map[string][]FakeResult{
|
||||||
"ContainerInspect": []FakeResult{
|
"ContainerInspect": {
|
||||||
FakeResult{runningContainerInfo, nil},
|
{runningContainerInfo, nil},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
expectedCalls: map[string][]FakeCall{
|
expectedCalls: map[string][]FakeCall{
|
||||||
"ContainerInspect": []FakeCall{
|
"ContainerInspect": {
|
||||||
FakeCall{jobContext, jobContainerID},
|
{jobContext, jobContainerID},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -934,18 +935,18 @@ func TestRunStartJobs(t *testing.T) {
|
|||||||
name: "Handle error starting container",
|
name: "Handle error starting container",
|
||||||
client: &FakeDockerClient{
|
client: &FakeDockerClient{
|
||||||
FakeResults: map[string][]FakeResult{
|
FakeResults: map[string][]FakeResult{
|
||||||
"ContainerInspect": []FakeResult{
|
"ContainerInspect": {
|
||||||
FakeResult{stoppedContainerInfo, nil},
|
{stoppedContainerInfo, nil},
|
||||||
},
|
},
|
||||||
"ContainerStart": []FakeResult{FakeResult{errGeneric}},
|
"ContainerStart": {{errGeneric}},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
expectedCalls: map[string][]FakeCall{
|
expectedCalls: map[string][]FakeCall{
|
||||||
"ContainerInspect": []FakeCall{
|
"ContainerInspect": {
|
||||||
FakeCall{jobContext, jobContainerID},
|
{jobContext, jobContainerID},
|
||||||
},
|
},
|
||||||
"ContainerStart": []FakeCall{
|
"ContainerStart": {
|
||||||
FakeCall{jobContext, jobContainerID, dockerTypes.ContainerStartOptions{}},
|
{jobContext, jobContainerID, container.StartOptions{}},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -953,22 +954,22 @@ func TestRunStartJobs(t *testing.T) {
|
|||||||
name: "Successfully start a container",
|
name: "Successfully start a container",
|
||||||
client: &FakeDockerClient{
|
client: &FakeDockerClient{
|
||||||
FakeResults: map[string][]FakeResult{
|
FakeResults: map[string][]FakeResult{
|
||||||
"ContainerInspect": []FakeResult{
|
"ContainerInspect": {
|
||||||
FakeResult{stoppedContainerInfo, nil},
|
{stoppedContainerInfo, nil},
|
||||||
FakeResult{runningContainerInfo, nil},
|
{runningContainerInfo, nil},
|
||||||
FakeResult{stoppedContainerInfo, nil},
|
{stoppedContainerInfo, nil},
|
||||||
},
|
},
|
||||||
"ContainerStart": []FakeResult{FakeResult{nil}},
|
"ContainerStart": {{nil}},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
expectedCalls: map[string][]FakeCall{
|
expectedCalls: map[string][]FakeCall{
|
||||||
"ContainerInspect": []FakeCall{
|
"ContainerInspect": {
|
||||||
FakeCall{jobContext, jobContainerID},
|
{jobContext, jobContainerID},
|
||||||
FakeCall{jobContext, jobContainerID},
|
{jobContext, jobContainerID},
|
||||||
FakeCall{jobContext, jobContainerID},
|
{jobContext, jobContainerID},
|
||||||
},
|
},
|
||||||
"ContainerStart": []FakeCall{
|
"ContainerStart": {
|
||||||
FakeCall{jobContext, jobContainerID, dockerTypes.ContainerStartOptions{}},
|
{jobContext, jobContainerID, container.StartOptions{}},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
Loading…
Reference in New Issue
Block a user