From 906c0e7c76d0e306b0364542a23eb0e9a6b1a159 Mon Sep 17 00:00:00 2001
From: Niels de Vos
Date: Tue, 12 Dec 2023 13:30:41 +0100
Subject: [PATCH] rebase: reset all dependencies in tools/ subdir
Signed-off-by: Niels de Vos
---
tools/go.mod | 191 +-
tools/go.sum | 1177 +-
tools/tools.go | 2 +-
.../AdaLogics/go-fuzz-headers/LICENSE | 201 +
.../AdaLogics/go-fuzz-headers/README.md | 93 +
.../AdaLogics/go-fuzz-headers/consumer.go | 899 +
.../AdaLogics/go-fuzz-headers/funcs.go | 62 +
.../AdaLogics/go-fuzz-headers/sql.go | 556 +
.../github.com/Azure/go-ansiterm/SECURITY.md | 41 +
.../github.com/BurntSushi/toml/decode.go | 42 +-
.../BurntSushi/toml/decode_go116.go | 4 +-
.../vendor/github.com/BurntSushi/toml/doc.go | 22 +-
.../github.com/BurntSushi/toml/encode.go | 40 +-
.../github.com/BurntSushi/toml/error.go | 67 +-
.../vendor/github.com/BurntSushi/toml/lex.go | 2 +-
.../vendor/github.com/BurntSushi/toml/meta.go | 4 +-
.../Masterminds/semver/v3/.golangci.yml | 24 +-
.../Masterminds/semver/v3/CHANGELOG.md | 20 +
.../Masterminds/semver/v3/constraints.go | 30 +-
.../github.com/Masterminds/semver/v3/doc.go | 178 +-
.../Masterminds/semver/v3/version.go | 47 +-
.../Masterminds/sprig/v3/CHANGELOG.md | 15 +-
.../github.com/Masterminds/sprig/v3/README.md | 9 +-
.../Microsoft/go-winio/.golangci.yml | 27 +-
.../github.com/Microsoft/go-winio/hvsock.go | 6 +-
.../Microsoft/go-winio/internal/fs/doc.go | 2 +
.../Microsoft/go-winio/internal/fs/fs.go | 202 +
.../go-winio/internal/fs/security.go | 12 +
.../go-winio/internal/fs/zsyscall_windows.go | 64 +
.../go-winio/internal/socket/socket.go | 4 +-
.../go-winio/internal/stringbuffer/wstring.go | 132 +
.../github.com/Microsoft/go-winio/pipe.go | 22 +-
.../go-winio/tools/mkwinsyscall/doc.go | 57 +
.../tools/mkwinsyscall/mkwinsyscall.go | 1059 +
.../Microsoft/go-winio/zsyscall_windows.go | 19 -
.../Microsoft/hcsshim/.gitattributes | 4 +-
.../github.com/Microsoft/hcsshim/.gitignore | 15 +-
.../Microsoft/hcsshim/.golangci.yml | 56 +-
.../github.com/Microsoft/hcsshim/Makefile | 76 +-
.../Microsoft/hcsshim/Protobuild.toml | 11 +-
.../github.com/Microsoft/hcsshim/README.md | 20 +-
.../github.com/Microsoft/hcsshim/SECURITY.md | 41 +
.../hcsshim/computestorage/attach.go | 6 +-
.../hcsshim/computestorage/destroy.go | 6 +-
.../hcsshim/computestorage/detach.go | 6 +-
.../hcsshim/computestorage/export.go | 12 +-
.../hcsshim/computestorage/format.go | 12 +-
.../hcsshim/computestorage/helpers.go | 14 +-
.../hcsshim/computestorage/import.go | 6 +-
.../hcsshim/computestorage/initialize.go | 6 +-
.../Microsoft/hcsshim/computestorage/mount.go | 7 +-
.../Microsoft/hcsshim/computestorage/setup.go | 14 +-
.../hcsshim/computestorage/storage.go | 9 +-
.../computestorage/zsyscall_windows.go | 187 +-
.../github.com/Microsoft/hcsshim/container.go | 4 +-
.../github.com/Microsoft/hcsshim/errors.go | 5 +
.../Microsoft/hcsshim/functional_tests.ps1 | 12 -
.../github.com/Microsoft/hcsshim/hcsshim.go | 12 +-
.../Microsoft/hcsshim/hnsendpoint.go | 4 +-
.../Microsoft/hcsshim/hnsglobals.go | 2 +
.../Microsoft/hcsshim/hnsnetwork.go | 6 +-
.../Microsoft/hcsshim/hnspolicylist.go | 2 +
.../Microsoft/hcsshim/hnssupport.go | 2 +
.../github.com/Microsoft/hcsshim/interface.go | 2 +
.../Microsoft/hcsshim/internal/cow/cow.go | 8 +
.../hcsshim/internal/hcs/callback.go | 2 +
.../Microsoft/hcsshim/internal/hcs/doc.go | 1 +
.../Microsoft/hcsshim/internal/hcs/errors.go | 159 +-
.../Microsoft/hcsshim/internal/hcs/process.go | 152 +-
.../hcsshim/internal/hcs/schema1/schema1.go | 4 +-
.../hcs/schema2/cpu_group_property.go | 8 +
.../internal/hcs/schema2/debug_options.go | 22 +
.../internal/hcs/schema2/guest_state.go | 3 +
.../hcs/schema2/isolation_settings.go | 21 +
.../hcs/schema2/modify_setting_request.go | 4 +-
.../internal/hcs/schema2/security_settings.go | 16 +
.../internal/hcs/schema2/system_time.go | 28 +
.../hcs/schema2/time_zone_information.go | 26 +
.../hcsshim/internal/hcs/schema2/uefi.go | 2 +
.../internal/hcs/schema2/virtual_machine.go | 4 +
.../Microsoft/hcsshim/internal/hcs/service.go | 2 +
.../Microsoft/hcsshim/internal/hcs/system.go | 104 +-
.../Microsoft/hcsshim/internal/hcs/utils.go | 2 +
.../hcsshim/internal/hcs/waithelper.go | 18 +-
.../hcsshim/internal/hcserror/doc.go | 1 +
.../hcsshim/internal/hcserror/hcserror.go | 19 +-
.../Microsoft/hcsshim/internal/hns/doc.go | 1 +
.../Microsoft/hcsshim/internal/hns/hns.go | 2 +-
.../hcsshim/internal/hns/hnsendpoint.go | 6 +-
.../hcsshim/internal/hns/hnsfuncs.go | 2 +
.../hcsshim/internal/hns/hnsglobals.go | 2 +
.../hcsshim/internal/hns/hnsnetwork.go | 9 +-
.../hcsshim/internal/hns/hnspolicy.go | 18 +-
.../hcsshim/internal/hns/hnspolicylist.go | 2 +
.../hcsshim/internal/hns/hnssupport.go | 2 +
.../hcsshim/internal/hns/namespace.go | 2 +
.../hcsshim/internal/hns/zsyscall_windows.go | 10 +-
.../Microsoft/hcsshim/internal/interop/doc.go | 1 +
.../hcsshim/internal/interop/interop.go | 4 +-
.../internal/interop/zsyscall_windows.go | 7 +-
.../hcsshim/internal/jobobject/doc.go | 8 +
.../hcsshim/internal/jobobject/iocp.go | 2 +
.../hcsshim/internal/jobobject/jobobject.go | 155 +-
.../hcsshim/internal/jobobject/limits.go | 2 +
.../Microsoft/hcsshim/internal/log/context.go | 118 +
.../Microsoft/hcsshim/internal/log/g.go | 23 -
.../Microsoft/hcsshim/internal/log/hook.go | 45 +
.../Microsoft/hcsshim/internal/log/scrub.go | 194 +
.../hcsshim/internal/logfields/fields.go | 35 +-
.../Microsoft/hcsshim/internal/memory/pool.go | 316 +
.../hcsshim/internal/memory/types.go | 28 +
.../Microsoft/hcsshim/internal/oc/span.go | 31 +
.../internal/protocol/guestrequest/types.go | 56 +
.../Microsoft/hcsshim/internal/safefile/do.go | 1 +
.../hcsshim/internal/safefile/safeopen.go | 30 +-
.../internal}/security/grantvmgroupaccess.go | 95 +-
.../internal}/security/syscall_windows.go | 0
.../internal}/security/zsyscall_windows.go | 0
.../hcsshim/internal/vmcompute/doc.go | 1 +
.../hcsshim/internal/vmcompute/vmcompute.go | 91 +-
.../internal/vmcompute/zsyscall_windows.go | 355 +-
.../hcsshim/internal/wclayer/activatelayer.go | 4 +-
.../internal/wclayer/baselayerreader.go | 216 +
.../{baselayer.go => baselayerwriter.go} | 3 +-
.../internal/wclayer/converttobaselayer.go | 158 +
.../hcsshim/internal/wclayer/createlayer.go | 4 +-
.../internal/wclayer/createscratchlayer.go | 4 +-
.../internal/wclayer/deactivatelayer.go | 4 +-
.../hcsshim/internal/wclayer/destroylayer.go | 4 +-
.../Microsoft/hcsshim/internal/wclayer/doc.go | 4 +
.../internal/wclayer/expandscratchsize.go | 4 +-
.../hcsshim/internal/wclayer/exportlayer.go | 21 +-
.../internal/wclayer/getlayermountpath.go | 4 +-
.../internal/wclayer/getsharedbaseimages.go | 4 +-
.../hcsshim/internal/wclayer/grantvmaccess.go | 4 +-
.../hcsshim/internal/wclayer/importlayer.go | 9 +-
.../hcsshim/internal/wclayer/layerexists.go | 4 +-
.../hcsshim/internal/wclayer/layerid.go | 4 +-
.../hcsshim/internal/wclayer/layerutils.go | 46 +-
.../hcsshim/internal/wclayer/legacy.go | 26 +-
.../hcsshim/internal/wclayer/nametoguid.go | 4 +-
.../hcsshim/internal/wclayer/preparelayer.go | 4 +-
.../hcsshim/internal/wclayer/processimage.go | 6 +-
.../internal/wclayer/unpreparelayer.go | 4 +-
.../hcsshim/internal/wclayer/wclayer.go | 7 +-
.../internal/wclayer/zsyscall_windows.go | 285 +-
.../hcsshim/internal/winapi/bindflt.go | 19 +
.../hcsshim/internal/winapi/console.go | 2 +
.../hcsshim/internal/winapi/devices.go | 2 +
.../Microsoft/hcsshim/internal/winapi/doc.go | 3 +
.../hcsshim/internal/winapi/elevation.go | 11 +
.../hcsshim/internal/winapi/errors.go | 2 +
.../hcsshim/internal/winapi/filesystem.go | 69 +-
.../hcsshim/internal/winapi/jobobject.go | 44 +-
.../hcsshim/internal/winapi/ofreg.go | 5 +
.../Microsoft/hcsshim/internal/winapi/path.go | 1 +
.../hcsshim/internal/winapi/process.go | 42 +-
.../hcsshim/internal/winapi/system.go | 2 +
.../hcsshim/internal/winapi/thread.go | 1 +
.../Microsoft/hcsshim/internal/winapi/user.go | 194 +
.../hcsshim/internal/winapi/utils.go | 4 +-
.../hcsshim/internal/winapi/winapi.go | 4 +-
.../internal/winapi/zsyscall_windows.go | 391 +-
.../github.com/Microsoft/hcsshim/layer.go | 5 +
.../hcsshim/osversion/osversion_windows.go | 11 +-
.../hcsshim/osversion/windowsbuilds.go | 40 +-
.../Microsoft/hcsshim/pkg/ociwclayer/doc.go | 3 +
.../hcsshim/pkg/ociwclayer/export.go | 43 +-
.../hcsshim/pkg/ociwclayer/import.go | 8 +-
.../github.com/Microsoft/hcsshim/process.go | 2 +
.../github.com/Microsoft/hcsshim/tools.go | 5 +
.../Microsoft/hcsshim/zsyscall_windows.go | 7 +-
.../antlr4/runtime/Go/antlr/{ => v4}/LICENSE | 0
.../antlr4/runtime/Go/antlr/v4/antlrdoc.go | 68 +
.../antlr4/runtime/Go/antlr/{ => v4}/atn.go | 27 +-
.../runtime/Go/antlr/{ => v4}/atn_config.go | 54 +-
.../Go/antlr/{ => v4}/atn_config_set.go | 80 +-
.../{ => v4}/atn_deserialization_options.go | 2 +-
.../Go/antlr/{ => v4}/atn_deserializer.go | 2 +-
.../Go/antlr/{ => v4}/atn_simulator.go | 2 +-
.../runtime/Go/antlr/{ => v4}/atn_state.go | 9 +-
.../runtime/Go/antlr/{ => v4}/atn_type.go | 2 +-
.../runtime/Go/antlr/{ => v4}/char_stream.go | 2 +-
.../Go/antlr/{ => v4}/common_token_factory.go | 2 +-
.../Go/antlr/{ => v4}/common_token_stream.go | 6 +-
.../antlr4/runtime/Go/antlr/v4/comparators.go | 147 +
.../antlr4/runtime/Go/antlr/{ => v4}/dfa.go | 54 +-
.../Go/antlr/{ => v4}/dfa_serializer.go | 2 +-
.../runtime/Go/antlr/{ => v4}/dfa_state.go | 54 +-
.../{ => v4}/diagnostic_error_listener.go | 4 +-
.../Go/antlr/{ => v4}/error_listener.go | 6 +-
.../Go/antlr/{ => v4}/error_strategy.go | 38 +-
.../runtime/Go/antlr/{ => v4}/errors.go | 5 +-
.../runtime/Go/antlr/{ => v4}/file_stream.go | 2 +-
.../runtime/Go/antlr/{ => v4}/input_stream.go | 2 +-
.../runtime/Go/antlr/{ => v4}/int_stream.go | 2 +-
.../runtime/Go/antlr/{ => v4}/interval_set.go | 6 +-
.../antlr4/runtime/Go/antlr/v4/jcollect.go | 198 +
.../antlr4/runtime/Go/antlr/{ => v4}/lexer.go | 6 +-
.../runtime/Go/antlr/{ => v4}/lexer_action.go | 44 +-
.../antlr/{ => v4}/lexer_action_executor.go | 27 +-
.../Go/antlr/{ => v4}/lexer_atn_simulator.go | 17 +-
.../runtime/Go/antlr/{ => v4}/ll1_analyzer.go | 30 +-
.../runtime/Go/antlr/{ => v4}/parser.go | 14 +-
.../Go/antlr/{ => v4}/parser_atn_simulator.go | 153 +-
.../Go/antlr/{ => v4}/parser_rule_context.go | 4 +-
.../Go/antlr/{ => v4}/prediction_context.go | 161 +-
.../Go/antlr/{ => v4}/prediction_mode.go | 48 +-
.../runtime/Go/antlr/{ => v4}/recognizer.go | 19 +-
.../runtime/Go/antlr/{ => v4}/rule_context.go | 2 +-
.../Go/antlr/{ => v4}/semantic_context.go | 81 +-
.../antlr4/runtime/Go/antlr/{ => v4}/token.go | 3 +-
.../runtime/Go/antlr/{ => v4}/token_source.go | 2 +-
.../runtime/Go/antlr/{ => v4}/token_stream.go | 2 +-
.../Go/antlr/{ => v4}/tokenstream_rewriter.go | 420 +-
.../Go/antlr/{ => v4}/trace_listener.go | 2 +-
.../runtime/Go/antlr/{ => v4}/transition.go | 2 +-
.../antlr4/runtime/Go/antlr/{ => v4}/tree.go | 5 +-
.../antlr4/runtime/Go/antlr/{ => v4}/trees.go | 9 +-
.../antlr4/runtime/Go/antlr/{ => v4}/utils.go | 21 +-
.../runtime/Go/antlr/{ => v4}/utils_set.go | 34 +-
.../asaskevich/govalidator/validator.go | 33 +-
.../cenkalti/backoff/v4/.travis.yml | 10 -
.../github.com/cenkalti/backoff/v4/retry.go | 50 +-
.../github.com/cespare/xxhash/v2/README.md | 31 +-
.../github.com/cespare/xxhash/v2/testall.sh | 10 +
.../github.com/cespare/xxhash/v2/xxhash.go | 47 +-
.../cespare/xxhash/v2/xxhash_amd64.s | 336 +-
.../cespare/xxhash/v2/xxhash_arm64.s | 183 +
.../v2/{xxhash_amd64.go => xxhash_asm.go} | 2 +
.../cespare/xxhash/v2/xxhash_other.go | 22 +-
.../cespare/xxhash/v2/xxhash_safe.go | 1 +
.../cespare/xxhash/v2/xxhash_unsafe.go | 3 +-
.../containerd/api/events/container.pb.go | 431 +
.../containerd/api/events/container.proto | 46 +
.../api/events/container_fieldpath.pb.go | 95 +
.../containerd/api/events/content.pb.go | 168 +
.../containerd/api/events/content.proto | 28 +
.../api/events/content_fieldpath.pb.go | 16 +
.../containerd/containerd/api/events/doc.go | 19 +
.../containerd/api/events/image.pb.go | 330 +
.../containerd/api/events/image.proto | 38 +
.../api/events/image_fieldpath.pb.go | 62 +
.../containerd/api/events/namespace.pb.go | 330 +
.../containerd/api/events/namespace.proto | 38 +
.../api/events/namespace_fieldpath.pb.go | 62 +
.../containerd/api/events/snapshot.pb.go | 342 +
.../containerd/api/events/snapshot.proto | 41 +
.../api/events/snapshot_fieldpath.pb.go | 52 +
.../containerd/api/events/task.pb.go | 1020 +
.../containerd/api/events/task.proto | 93 +
.../api/events/task_fieldpath.pb.go | 191 +
.../containerd/api/runtime/sandbox/v1/doc.go | 17 +
.../api/runtime/sandbox/v1/sandbox.pb.go | 1480 +
.../api/runtime/sandbox/v1/sandbox.proto | 136 +
.../api/runtime/sandbox/v1/sandbox_grpc.pb.go | 377 +
.../runtime/sandbox/v1/sandbox_ttrpc.pb.go | 156 +
.../containerd/api/types/descriptor.pb.go | 206 +
.../containerd/api/types/descriptor.proto | 33 +
.../types/doc.go} | 2 +
.../containerd/api/types/metrics.pb.go | 194 +
.../containerd/api/types/metrics.proto | 30 +
.../containerd/api/types/mount.pb.go | 202 +
.../containerd/api/types/mount.proto | 43 +
.../containerd/api/types/platform.pb.go | 184 +
.../containerd/api/types/platform.proto | 29 +
.../containerd/api/types/sandbox.pb.go | 346 +
.../containerd/api/types/sandbox.proto | 51 +
.../compression/compression_fuzzer.go} | 18 +-
.../link_default.go} | 12 +-
.../containerd/archive/link_freebsd.go | 82 +
.../containerd/containerd/archive/tar.go | 97 +-
.../containerd/archive/tar_mostunix.go | 1 -
.../containerd/containerd/archive/tar_opts.go | 26 +
.../containerd/containerd/archive/tar_unix.go | 8 +-
.../containerd/archive/tar_windows.go | 29 +-
.../containerd/archive/tarheader/tarheader.go | 82 +
.../archive/tarheader/tarheader_unix.go | 59 +
.../containerd/archive/time_unix.go | 1 -
.../containerd/archive/time_windows.go | 15 +-
.../containerd/containers/containers.go | 13 +-
.../containerd/containerd/content/content.go | 69 +-
.../containerd/containerd/content/helpers.go | 86 +-
.../content/local/content_local_fuzzer.go | 76 +
.../containerd/content/local/readerat.go | 5 +
.../containerd/content/local/store.go | 14 +-
.../containerd/content/local/store_bsd.go | 1 -
.../containerd/content/local/store_openbsd.go | 1 -
.../containerd/content/local/store_unix.go | 1 -
.../fds.go => content/local/test_helper.go} | 27 +-
.../containerd/containerd/events/events.go | 80 +
.../containerd/containerd/filters/filter.go | 1 -
.../containerd/containerd/filters/parser.go | 1 -
.../containerd/containerd/filters/quote.go | 8 +-
.../containerd/containerd/images/image.go | 4 +-
.../containerd/images/mediatypes.go | 31 +-
.../containerd/containerd/labels/labels.go | 8 +
.../containerd/containerd/labels/validate.go | 11 +-
.../containerd/containerd/leases/id.go | 2 +-
.../containerd/containerd/leases/lease.go | 9 +-
.../containerd/containerd/log/context.go | 3 +
.../containerd/metadata/adaptors.go | 18 +
.../containerd/metadata/boltutil/helpers.go | 28 +-
.../containerd/containerd/metadata/buckets.go | 162 +-
.../containerd/metadata/containers.go | 13 +-
.../containerd/containerd/metadata/content.go | 29 +-
.../containerd/containerd/metadata/db.go | 126 +-
.../containerd/containerd/metadata/gc.go | 261 +-
.../containerd/containerd/metadata/images.go | 17 +-
.../containerd/containerd/metadata/sandbox.go | 373 +
.../containerd/metadata/snapshot.go | 42 +-
.../containerd/mount/fmountat_linux.go | 145 -
.../containerd/mount/lookup_unix.go | 1 -
.../containerd/mount/lookup_unsupported.go | 1 -
.../containerd/mount/losetup_linux.go | 28 +-
.../containerd/containerd/mount/mount.go | 39 +-
.../containerd/mount/mount_freebsd.go | 15 +-
.../containerd/mount/mount_linux.go | 40 +-
.../containerd/containerd/mount/mount_unix.go | 57 +-
.../containerd/mount/mount_unsupported.go | 46 +
.../containerd/mount/mount_windows.go | 18 +-
.../containerd/containerd/mount/temp.go | 2 +-
.../containerd/containerd/mount/temp_unix.go | 1 -
.../containerd/mount/temp_unsupported.go | 1 -
.../containerd/containerd/namespaces/store.go | 2 -
.../containerd/pkg/cleanup/context.go | 52 +
.../containerd/pkg/epoch/context.go | 41 +
.../containerd/containerd/pkg/epoch/epoch.go | 69 +
.../containerd/pkg/randutil/randutil.go | 48 +
.../pkg/userns/userns_unsupported.go | 1 -
.../containerd/platforms/cpuinfo.go | 98 +-
.../containerd/platforms/cpuinfo_linux.go | 161 +
.../containerd/platforms/cpuinfo_other.go | 59 +
.../containerd/platforms/database.go | 7 -
.../containerd/platforms/defaults_darwin.go | 1 -
.../containerd/platforms/defaults_freebsd.go | 43 +
.../containerd/platforms/defaults_unix.go | 3 +-
.../containerd/platforms/defaults_windows.go | 40 +-
.../containerd/platforms/platforms.go | 49 +-
.../platforms/platforms_other.go} | 20 +-
.../containerd/platforms/platforms_windows.go | 34 +
.../containerd/containerd/protobuf/any.go | 47 +
.../socket_windows.go => protobuf/compare.go} | 31 +-
.../containerd/protobuf/plugin/doc.go | 17 +
.../protobuf/plugin/fieldpath.pb.go | 144 +
.../protobuf/plugin/fieldpath.proto} | 27 +-
.../protobuf/proto/proto.go} | 24 +-
.../containerd/protobuf/timestamp.go | 36 +
.../protobuf/types/types.go} | 24 +-
.../containerd/reference/docker/helpers.go | 58 +
.../containerd/reference/docker/normalize.go | 196 +
.../containerd/reference/docker/reference.go | 453 +
.../containerd/reference/docker/regexp.go | 191 +
.../containerd/reference/docker/sort.go | 73 +
.../containerd/remotes/docker/auth/fetch.go | 9 +-
.../containerd/remotes/docker/authorizer.go | 10 +-
.../remotes/docker/converter_fuzz.go | 55 +
.../containerd/remotes/docker/fetcher.go | 108 +-
.../containerd/remotes/docker/fetcher_fuzz.go | 81 +
.../containerd/remotes/docker/handler.go | 7 +-
.../containerd/remotes/docker/pusher.go | 166 +-
.../containerd/remotes/docker/resolver.go | 79 +-
.../remotes/docker/schema1/converter.go | 12 +-
.../containerd/remotes/errors/errors.go | 2 +-
.../containerd/containerd/remotes/handlers.go | 73 +-
.../containerd/containerd/remotes/resolver.go | 16 +-
.../containerd/containerd/sandbox/bridge.go | 77 +
.../containerd/sandbox/controller.go | 125 +
.../containerd/containerd/sandbox/helpers.go | 68 +
.../containerd/containerd/sandbox/store.go | 116 +
.../containerd/snapshots/snapshotter.go | 68 +-
.../containerd/containerd/sys/epoll.go | 34 -
.../containerd/containerd/sys/filesys_unix.go | 32 -
.../containerd/sys/filesys_windows.go | 345 -
.../containerd/containerd/sys/oom_linux.go | 82 -
.../containerd/sys/oom_unsupported.go | 49 -
.../containerd/containerd/sys/socket_unix.go | 81 -
.../containerd/containerd/tracing/helpers.go | 94 +
.../containerd/containerd/tracing/log.go | 66 +
.../containerd/containerd/tracing/tracing.go | 117 +
.../containerd/containerd/version/version.go | 2 +-
.../github.com/containerd/continuity/AUTHORS | 12 +-
.../containerd/continuity/fs/copy.go | 16 +-
.../continuity/fs/copy_irregular_freebsd.go | 36 +
.../continuity/fs/copy_irregular_unix.go | 40 +
.../containerd/continuity/fs/copy_linux.go | 9 -
.../containerd/continuity/fs/copy_windows.go | 4 +-
.../containerd/continuity/fs/diff.go | 3 +-
.../containerd/continuity/fs/dtype_linux.go | 2 +-
.../containerd/continuity/sysx/generate.sh | 52 -
.../stargz-snapshotter/estargz/build.go | 58 +-
.../stargz-snapshotter/estargz/estargz.go | 17 +-
.../stargz-snapshotter/estargz/gzip.go | 7 +-
.../stargz-snapshotter/estargz/testutil.go | 80 +-
.../stargz-snapshotter/estargz/types.go | 3 +-
.../containerd/ttrpc/.gitattributes | 1 +
.../github.com/containerd/ttrpc/.gitignore | 2 +
.../github.com/containerd/ttrpc/.golangci.yml | 54 +
.../github.com/containerd/ttrpc/Makefile | 180 +
.../github.com/containerd/ttrpc/PROTOCOL.md | 240 +
.../containerd/ttrpc/Protobuild.toml | 28 +
.../github.com/containerd/ttrpc/README.md | 9 +-
.../github.com/containerd/ttrpc/channel.go | 47 +-
.../github.com/containerd/ttrpc/client.go | 506 +-
.../github.com/containerd/ttrpc/codec.go | 2 +-
.../vendor/github.com/containerd/ttrpc/doc.go | 23 +
.../github.com/containerd/ttrpc/errors.go | 34 +
.../github.com/containerd/ttrpc/handshake.go | 2 +-
.../containerd/ttrpc/interceptor.go | 17 +-
.../github.com/containerd/ttrpc/request.pb.go | 396 +
.../github.com/containerd/ttrpc/request.proto | 29 +
.../github.com/containerd/ttrpc/server.go | 311 +-
.../github.com/containerd/ttrpc/services.go | 201 +-
.../github.com/containerd/ttrpc/stream.go | 81 +
.../containerd/ttrpc/stream_server.go | 22 +
.../github.com/containerd/ttrpc/test.proto | 16 +
.../github.com/containerd/ttrpc/types.go | 63 -
.../containerd/ttrpc/unixcreds_linux.go | 8 +-
.../containerd/typeurl/v2/.gitignore | 2 +
.../github.com/containerd/typeurl/v2/LICENSE | 191 +
.../containerd/typeurl/v2/README.md | 20 +
.../github.com/containerd/typeurl/v2/doc.go | 83 +
.../github.com/containerd/typeurl/v2/types.go | 273 +
.../docker/distribution/.dockerignore | 1 +
.../docker/distribution/.golangci.yml | 7 +
.../github.com/docker/distribution/.mailmap | 6 +-
.../github.com/docker/distribution/Dockerfile | 78 +-
.../github.com/docker/distribution/Makefile | 2 +-
.../docker/distribution/docker-bake.hcl | 21 +-
.../distribution/reference/reference.go | 4 +-
.../registry/api/v2/descriptors.go | 17 +
.../distribution/registry/api/v2/errors.go | 9 +
.../distribution/registry/client/errors.go | 2 +
.../registry/client/repository.go | 4 +-
.../registry/client/transport/http_reader.go | 1 -
.../docker/docker/api/types/filters/parse.go | 8 +-
.../docker/api/types/registry/registry.go | 49 +-
.../docker/docker/pkg/ioutils/fswriters.go | 5 +-
.../docker/docker/pkg/ioutils/temp_unix.go | 6 +-
.../docker/docker/pkg/ioutils/temp_windows.go | 6 +-
.../docker/docker/registry/endpoint_v1.go | 4 +-
.../docker/docker/registry/registry.go | 7 +-
.../docker/docker/registry/service_v2.go | 7 +-
.../emicklei/go-restful/v3/CHANGES.md | 15 +-
.../emicklei/go-restful/v3/constants.go | 2 +
.../emicklei/go-restful/v3/request.go | 5 +-
.../emicklei/go-restful/v3/response.go | 3 +
.../emicklei/go-restful/v3/route.go | 4 +-
.../emicklei/go-restful/v3/route_builder.go | 12 +-
.../github.com/go-gorp/gorp/v3/.travis.yml | 4 +-
.../github.com/go-gorp/gorp/v3/README.md | 7 +-
.../github.com/go-gorp/gorp/v3/logging.go | 11 +-
.../github.com/go-gorp/gorp/v3/test_all.sh | 32 +-
.../github.com/go-logr/logr/.golangci.yaml | 3 -
.../vendor/github.com/go-logr/logr/discard.go | 32 +-
.../github.com/go-logr/logr/funcr/funcr.go | 27 +-
tools/vendor/github.com/go-logr/logr/logr.go | 166 +-
.../jsonreference/internal/normalize_url.go | 5 +
.../github.com/gogo/protobuf/types/any.go | 140 -
.../github.com/gogo/protobuf/types/any.pb.go | 694 -
.../github.com/gogo/protobuf/types/api.pb.go | 2134 -
.../gogo/protobuf/types/duration.go | 100 -
.../gogo/protobuf/types/duration.pb.go | 517 -
.../gogo/protobuf/types/duration_gogo.go | 100 -
.../gogo/protobuf/types/empty.pb.go | 462 -
.../gogo/protobuf/types/field_mask.pb.go | 738 -
.../gogo/protobuf/types/protosize.go | 34 -
.../gogo/protobuf/types/source_context.pb.go | 524 -
.../gogo/protobuf/types/struct.pb.go | 2271 -
.../gogo/protobuf/types/timestamp.go | 130 -
.../gogo/protobuf/types/timestamp.pb.go | 539 -
.../gogo/protobuf/types/timestamp_gogo.go | 94 -
.../github.com/gogo/protobuf/types/type.pb.go | 3355 -
.../gogo/protobuf/types/wrappers.pb.go | 2703 -
.../gogo/protobuf/types/wrappers_gogo.go | 300 -
.../migrate/v4/source/driver.go | 28 +-
.../migrate/v4/source/errors.go | 15 +
.../migrate/v4/source/file/file.go | 105 +-
.../migrate/v4/source/iofs/README.md | 3 +
.../migrate/v4/source/iofs/doc.go | 10 +
.../migrate/v4/source/iofs/iofs.go | 176 +
.../testdata/migrations/1_foobar.down.sql | 1 +
.../iofs/testdata/migrations/1_foobar.up.sql | 1 +
.../iofs/testdata/migrations/3_foobar.up.sql | 1 +
.../testdata/migrations/4_foobar.down.sql | 1 +
.../iofs/testdata/migrations/4_foobar.up.sql | 1 +
.../testdata/migrations/5_foobar.down.sql | 1 +
.../testdata/migrations/7_foobar.down.sql | 1 +
.../iofs/testdata/migrations/7_foobar.up.sql | 1 +
.../migrate/v4/source/migration.go | 18 +-
.../golang-migrate/migrate/v4/source/parse.go | 5 +-
.../github.com/google/cel-go/cel/BUILD.bazel | 5 +-
.../github.com/google/cel-go/cel/decls.go | 79 +-
.../github.com/google/cel-go/cel/env.go | 126 +-
.../vendor/github.com/google/cel-go/cel/io.go | 4 +-
.../github.com/google/cel-go/cel/library.go | 258 +
.../github.com/google/cel-go/cel/macro.go | 14 +-
.../github.com/google/cel-go/cel/options.go | 64 +-
.../github.com/google/cel-go/cel/program.go | 114 +-
.../google/cel-go/checker/BUILD.bazel | 4 +-
.../google/cel-go/checker/checker.go | 139 +-
.../github.com/google/cel-go/checker/cost.go | 57 +-
.../google/cel-go/checker/decls/BUILD.bazel | 2 +-
.../google/cel-go/checker/decls/decls.go | 8 +-
.../github.com/google/cel-go/checker/env.go | 27 +-
.../google/cel-go/checker/printer.go | 2 +-
.../google/cel-go/checker/standard.go | 2 +
.../github.com/google/cel-go/checker/types.go | 47 +-
.../google/cel-go/common/BUILD.bazel | 2 +-
.../cel-go/common/containers/BUILD.bazel | 4 +-
.../google/cel-go/common/debug/BUILD.bazel | 2 +-
.../google/cel-go/common/debug/debug.go | 14 +-
.../github.com/google/cel-go/common/errors.go | 2 +-
.../cel-go/common/operators/operators.go | 4 +
.../cel-go/common/overloads/overloads.go | 10 +
.../google/cel-go/common/types/BUILD.bazel | 10 +-
.../google/cel-go/common/types/bool.go | 9 +-
.../google/cel-go/common/types/bytes.go | 9 +-
.../google/cel-go/common/types/double.go | 13 +-
.../google/cel-go/common/types/duration.go | 17 +-
.../google/cel-go/common/types/err.go | 25 +-
.../google/cel-go/common/types/int.go | 23 +-
.../google/cel-go/common/types/iterator.go | 4 +-
.../google/cel-go/common/types/json_value.go | 1 +
.../google/cel-go/common/types/list.go | 88 +-
.../google/cel-go/common/types/map.go | 59 +-
.../google/cel-go/common/types/null.go | 26 +-
.../google/cel-go/common/types/object.go | 14 +-
.../google/cel-go/common/types/optional.go | 108 +
.../google/cel-go/common/types/pb/BUILD.bazel | 2 +-
.../google/cel-go/common/types/pb/enum.go | 4 +-
.../google/cel-go/common/types/pb/file.go | 83 +-
.../google/cel-go/common/types/pb/pb.go | 53 +-
.../google/cel-go/common/types/pb/type.go | 66 +-
.../google/cel-go/common/types/provider.go | 30 +-
.../cel-go/common/types/ref/BUILD.bazel | 2 +-
.../cel-go/common/types/ref/provider.go | 8 +-
.../cel-go/common/types/ref/reference.go | 15 +-
.../google/cel-go/common/types/string.go | 9 +-
.../google/cel-go/common/types/timestamp.go | 19 +-
.../cel-go/common/types/traits/BUILD.bazel | 1 +
.../types/traits/zeroer.go} | 26 +-
.../google/cel-go/common/types/type.go | 4 +-
.../google/cel-go/common/types/uint.go | 21 +-
.../google/cel-go/common/types/unknown.go | 4 +-
.../github.com/google/cel-go/ext/BUILD.bazel | 32 +
.../github.com/google/cel-go/ext/README.md | 205 +
.../github.com/google/cel-go/ext/bindings.go | 100 +
.../github.com/google/cel-go/ext/encoders.go | 18 +-
.../github.com/google/cel-go/ext/guards.go | 13 +
.../github.com/google/cel-go/ext/math.go | 388 +
.../github.com/google/cel-go/ext/native.go | 574 +
.../github.com/google/cel-go/ext/protos.go | 145 +
.../github.com/google/cel-go/ext/sets.go | 138 +
.../github.com/google/cel-go/ext/strings.go | 776 +-
.../google/cel-go/interpreter/BUILD.bazel | 7 +-
.../google/cel-go/interpreter/activation.go | 30 +-
.../cel-go/interpreter/attribute_patterns.go | 77 +-
.../google/cel-go/interpreter/attributes.go | 1064 +-
.../google/cel-go/interpreter/decorators.go | 11 +-
.../google/cel-go/interpreter/formatting.go | 383 +
.../cel-go/interpreter/functions/functions.go | 2 +-
.../cel-go/interpreter/interpretable.go | 469 +-
.../google/cel-go/interpreter/interpreter.go | 12 +-
.../google/cel-go/interpreter/planner.go | 178 +-
.../google/cel-go/interpreter/prune.go | 373 +-
.../google/cel-go/interpreter/runtimecost.go | 58 +-
.../google/cel-go/parser/BUILD.bazel | 8 +-
.../google/cel-go/parser/gen/BUILD.bazel | 2 +-
.../google/cel-go/parser/gen/CEL.g4 | 38 +-
.../google/cel-go/parser/gen/CEL.interp | 5 +-
.../cel-go/parser/gen/cel_base_listener.go | 48 +-
.../cel-go/parser/gen/cel_base_visitor.go | 28 +-
.../google/cel-go/parser/gen/cel_lexer.go | 4 +-
.../google/cel-go/parser/gen/cel_listener.go | 48 +-
.../google/cel-go/parser/gen/cel_parser.go | 2108 +-
.../google/cel-go/parser/gen/cel_visitor.go | 26 +-
.../google/cel-go/parser/gen/generate.sh | 2 +-
.../github.com/google/cel-go/parser/helper.go | 179 +-
.../github.com/google/cel-go/parser/input.go | 3 +-
.../github.com/google/cel-go/parser/macro.go | 20 +-
.../google/cel-go/parser/options.go | 25 +-
.../github.com/google/cel-go/parser/parser.go | 479 +-
.../google/cel-go/parser/unparser.go | 63 +-
.../github.com/google/gnostic-models/LICENSE | 203 +
.../google/gnostic-models/compiler/README.md | 4 +
.../google/gnostic-models/compiler/context.go | 49 +
.../google/gnostic-models/compiler/error.go | 70 +
.../gnostic-models/compiler/extensions.go | 86 +
.../google/gnostic-models/compiler/helpers.go | 397 +
.../google/gnostic-models/compiler/main.go} | 8 +-
.../google/gnostic-models/compiler/reader.go | 307 +
.../gnostic-models/extensions/README.md | 13 +
.../gnostic-models/extensions/extension.pb.go | 461 +
.../gnostic-models/extensions/extension.proto | 97 +
.../gnostic-models/extensions/extensions.go | 64 +
.../gnostic-models/jsonschema/README.md | 4 +
.../google/gnostic-models/jsonschema/base.go | 97 +
.../gnostic-models/jsonschema/display.go | 229 +
.../gnostic-models/jsonschema/models.go | 228 +
.../gnostic-models/jsonschema/operations.go | 394 +
.../gnostic-models/jsonschema/reader.go | 442 +
.../gnostic-models/jsonschema/schema.json | 150 +
.../gnostic-models/jsonschema/writer.go | 369 +
.../gnostic-models/openapiv2/OpenAPIv2.go | 8820 +++
.../gnostic-models/openapiv2/OpenAPIv2.pb.go | 7342 ++
.../gnostic-models/openapiv2/OpenAPIv2.proto | 666 +
.../google/gnostic-models/openapiv2/README.md | 14 +
.../gnostic-models/openapiv2/document.go | 42 +
.../gnostic-models/openapiv2/openapi-2.0.json | 1610 +
.../openapiv3/OpenAPIv3.go | 9 +-
.../openapiv3/OpenAPIv3.pb.go | 13 +-
.../openapiv3/OpenAPIv3.proto | 2 +-
.../openapiv3/README.md | 4 -
.../openapiv3/document.go | 2 +-
.../gnostic/openapiv3/annotations.pb.go | 183 -
.../gnostic/openapiv3/annotations.proto | 60 -
.../google/gnostic/openapiv3/openapi-3.0.json | 1251 -
.../google/gnostic/openapiv3/openapi-3.1.json | 1250 -
.../internal/compression/compression.go | 97 +
.../internal/estargz/estargz.go | 9 +-
.../go-containerregistry/internal/gzip/zip.go | 36 +-
.../internal/redact/redact.go | 54 +
.../internal/retry/retry.go | 19 +-
.../internal/windows/windows.go | 3 +-
.../internal/zstd/zstd.go | 116 +
.../go-containerregistry/pkg/authn/README.md | 6 +-
.../go-containerregistry/pkg/authn/authn.go | 87 +-
.../pkg/authn/keychain.go | 54 +-
.../pkg/compression/compression.go | 26 +
.../go-containerregistry/pkg/crane/append.go | 28 +-
.../go-containerregistry/pkg/crane/filemap.go | 7 +-
.../go-containerregistry/pkg/crane/options.go | 11 +
.../go-containerregistry/pkg/crane/pull.go | 7 +-
.../pkg/legacy/tarball/write.go | 8 +-
.../go-containerregistry/pkg/logs/logs.go | 12 +-
.../go-containerregistry/pkg/name/digest.go | 27 +-
.../go-containerregistry/pkg/name/errors.go | 8 +-
.../go-containerregistry/pkg/name/ref.go | 14 +-
.../go-containerregistry/pkg/v1/config.go | 7 +-
.../pkg/v1/layout/blob.go | 3 +-
.../pkg/v1/layout/index.go | 4 +-
.../pkg/v1/layout/options.go | 14 +
.../pkg/v1/layout/write.go | 165 +-
.../pkg/v1/match/match.go | 4 +-
.../pkg/v1/mutate/image.go | 9 +-
.../pkg/v1/mutate/index.go | 9 +-
.../pkg/v1/mutate/mutate.go | 73 +-
.../pkg/v1/partial/compressed.go | 21 +-
.../pkg/v1/partial/with.go | 22 +-
.../go-containerregistry/pkg/v1/platform.go | 54 +-
.../pkg/v1/remote/check.go | 23 +-
.../pkg/v1/remote/descriptor.go | 10 +-
.../pkg/v1/remote/image.go | 5 +-
.../pkg/v1/remote/index.go | 6 +-
.../pkg/v1/remote/mount.go | 13 +
.../pkg/v1/remote/multi_write.go | 19 +-
.../pkg/v1/remote/options.go | 39 +-
.../pkg/v1/remote/progress.go | 69 +
.../pkg/v1/remote/transport/bearer.go | 43 +-
.../pkg/v1/remote/transport/error.go | 48 +-
.../pkg/v1/remote/transport/ping.go | 206 +-
.../pkg/v1/remote/transport/retry.go | 24 +-
.../pkg/v1/remote/transport/transport.go | 20 +-
.../pkg/v1/remote/write.go | 208 +-
.../pkg/v1/stream/layer.go | 171 +-
.../pkg/v1/tarball/image.go | 14 +-
.../pkg/v1/tarball/layer.go | 117 +-
.../pkg/v1/tarball/write.go | 6 +
.../pkg/v1/types/types.go | 2 +
.../pkg/v1/zz_deepcopy_generated.go | 1 +
.../github.com/hashicorp/errwrap/LICENSE | 354 +
.../github.com/hashicorp/errwrap/README.md | 89 +
.../github.com/hashicorp/errwrap/errwrap.go | 178 +
.../hashicorp/go-multierror/LICENSE | 353 +
.../hashicorp/go-multierror/Makefile | 31 +
.../hashicorp/go-multierror/README.md | 150 +
.../hashicorp/go-multierror/append.go | 43 +
.../hashicorp/go-multierror/flatten.go | 26 +
.../hashicorp/go-multierror/format.go | 27 +
.../hashicorp/go-multierror/group.go | 38 +
.../hashicorp/go-multierror/multierror.go | 121 +
.../hashicorp/go-multierror/prefix.go | 37 +
.../hashicorp/go-multierror/sort.go | 16 +
.../github.com/huandu/xstrings/.travis.yml | 7 -
.../github.com/huandu/xstrings/README.md | 182 +-
.../github.com/huandu/xstrings/convert.go | 75 +-
.../github.com/huandu/xstrings/format.go | 28 +-
.../github.com/huandu/xstrings/manipulate.go | 12 +-
.../huandu/xstrings/stringbuilder.go | 3 +-
.../huandu/xstrings/stringbuilder_go110.go | 3 +-
.../github.com/huandu/xstrings/translate.go | 52 +-
.../github.com/klauspost/compress/.gitignore | 7 +
.../klauspost/compress/.goreleaser.yml | 2 +-
.../github.com/klauspost/compress/README.md | 196 +-
.../klauspost/compress/fse/compress.go | 31 +-
.../klauspost/compress/fse/decompress.go | 4 +-
.../klauspost/compress/huff0/bitreader.go | 130 +-
.../klauspost/compress/huff0/bitwriter.go | 125 +-
.../klauspost/compress/huff0/bytereader.go | 10 -
.../klauspost/compress/huff0/compress.go | 127 +-
.../klauspost/compress/huff0/decompress.go | 622 +-
.../compress/huff0/decompress_amd64.go | 226 +
.../compress/huff0/decompress_amd64.s | 830 +
.../compress/huff0/decompress_generic.go | 299 +
.../klauspost/compress/huff0/huff0.go | 2 +
.../compress/internal/cpuinfo/cpuinfo.go | 34 +
.../internal/cpuinfo/cpuinfo_amd64.go | 11 +
.../compress/internal/cpuinfo/cpuinfo_amd64.s | 36 +
.../compress/internal/snapref/encode_other.go | 28 +-
.../klauspost/compress/zstd/README.md | 172 +-
.../klauspost/compress/zstd/bitreader.go | 11 +-
.../klauspost/compress/zstd/bitwriter.go | 76 -
.../klauspost/compress/zstd/blockdec.go | 524 +-
.../klauspost/compress/zstd/blockenc.go | 9 +-
.../klauspost/compress/zstd/bytebuf.go | 27 +-
.../klauspost/compress/zstd/bytereader.go | 6 -
.../klauspost/compress/zstd/decodeheader.go | 93 +-
.../klauspost/compress/zstd/decoder.go | 685 +-
.../compress/zstd/decoder_options.go | 103 +-
.../klauspost/compress/zstd/dict.go | 51 +-
.../klauspost/compress/zstd/enc_base.go | 28 +-
.../klauspost/compress/zstd/enc_best.go | 264 +-
.../klauspost/compress/zstd/enc_better.go | 43 +-
.../klauspost/compress/zstd/enc_dfast.go | 33 +-
.../klauspost/compress/zstd/enc_fast.go | 24 +-
.../klauspost/compress/zstd/encoder.go | 151 +-
.../compress/zstd/encoder_options.go | 53 +-
.../klauspost/compress/zstd/framedec.go | 334 +-
.../klauspost/compress/zstd/fse_decoder.go | 128 +-
.../compress/zstd/fse_decoder_amd64.go | 65 +
.../compress/zstd/fse_decoder_amd64.s | 126 +
.../compress/zstd/fse_decoder_generic.go | 72 +
.../klauspost/compress/zstd/fse_encoder.go | 23 -
.../klauspost/compress/zstd/hash.go | 6 -
.../klauspost/compress/zstd/history.go | 67 +-
.../compress/zstd/internal/xxhash/README.md | 49 +-
.../compress/zstd/internal/xxhash/xxhash.go | 47 +-
.../zstd/internal/xxhash/xxhash_amd64.s | 337 +-
.../zstd/internal/xxhash/xxhash_arm64.s | 165 +-
.../zstd/internal/xxhash/xxhash_asm.go | 5 +-
.../zstd/internal/xxhash/xxhash_other.go | 23 +-
.../klauspost/compress/zstd/seqdec.go | 326 +-
.../klauspost/compress/zstd/seqdec_amd64.go | 394 +
.../klauspost/compress/zstd/seqdec_amd64.s | 4175 ++
.../klauspost/compress/zstd/seqdec_generic.go | 237 +
.../github.com/klauspost/compress/zstd/zip.go | 69 +-
.../klauspost/compress/zstd/zstd.go | 55 +-
.../github.com/mattn/go-sqlite3/README.md | 16 +-
.../mattn/go-sqlite3/sqlite3-binding.c | 9473 ++-
.../mattn/go-sqlite3/sqlite3-binding.h | 42 +-
.../github.com/mattn/go-sqlite3/sqlite3.go | 6 +-
.../go-sqlite3/sqlite3_opt_math_functions.go | 14 +
.../mattn/go-sqlite3/sqlite3_opt_os_trace.go | 15 +
.../mattn/go-sqlite3/sqlite3_windows.go | 1 -
.../github.com/mattn/go-sqlite3/sqlite3ext.h | 12 +
.../moby/sys/mountinfo/mounted_linux.go | 58 +-
.../moby/sys/mountinfo/mounted_unix.go | 11 +-
.../moby/sys/mountinfo/mountinfo.go | 6 +-
.../moby/sys/mountinfo/mountinfo_bsd.go | 44 +-
.../sys/mountinfo/mountinfo_freebsdlike.go | 14 +
.../moby/sys/mountinfo/mountinfo_openbsd.go | 11 +
.../sys/mountinfo/mountinfo_unsupported.go | 4 +-
.../moby/sys/sequential}/LICENSE | 0
.../github.com/moby/sys/sequential/doc.go | 15 +
.../moby/sys/sequential/sequential_unix.go | 45 +
.../moby/sys/sequential/sequential_windows.go | 161 +
tools/vendor/github.com/moby/term/doc.go | 3 +
tools/vendor/github.com/moby/term/tc.go | 20 -
tools/vendor/github.com/moby/term/term.go | 101 +-
.../vendor/github.com/moby/term/term_unix.go | 98 +
.../github.com/moby/term/term_windows.go | 99 +-
.../moby/term/{termios.go => termios_unix.go} | 13 +-
.../github.com/moby/term/termios_windows.go | 37 +
.../moby/term/windows/ansi_reader.go | 4 +-
.../github.com/moby/term/windows/console.go | 7 +-
tools/vendor/github.com/moby/term/winsize.go | 21 -
.../olekukonko/tablewriter/.gitignore | 15 -
.../olekukonko/tablewriter/.travis.yml | 22 -
.../olekukonko/tablewriter/LICENSE.md | 19 -
.../olekukonko/tablewriter/README.md | 431 -
.../github.com/olekukonko/tablewriter/csv.go | 52 -
.../olekukonko/tablewriter/table.go | 967 -
.../tablewriter/table_with_color.go | 136 -
.../github.com/olekukonko/tablewriter/util.go | 93 -
.../github.com/olekukonko/tablewriter/wrap.go | 99 -
.../image-spec/specs-go/v1/config.go | 9 +
.../image-spec/specs-go/version.go | 2 +-
.../ansible-operator-plugins/LICENSE | 201 +
.../internal/version/version.go | 32 +
.../pkg}/plugins/ansible/v1/api.go | 4 +-
.../plugins/ansible/v1/constants/constants.go | 0
.../pkg}/plugins/ansible/v1/init.go | 6 +-
.../pkg}/plugins/ansible/v1/plugin.go | 2 +-
.../pkg}/plugins/ansible/v1/scaffolds/api.go | 14 +-
.../pkg}/plugins/ansible/v1/scaffolds/init.go | 18 +-
.../internal/templates/config/crd/crd.go | 0
.../templates/config/crd/kustomization.go | 0
.../internal/templates/config/rbac/role.go | 0
.../config/testing/debug_logs_patch.go | 0
.../templates/config/testing/kustomization.go | 0
.../templates/config/testing/manager_image.go | 0
.../testing/pullpolicy/always_pull_patch.go | 0
.../pullpolicy/ifnotpresent_pull_patch.go | 0
.../testing/pullpolicy/never_pull_patch.go | 0
.../internal/templates/dockerfile.go | 2 +-
.../scaffolds/internal/templates/gitignore.go | 0
.../scaffolds/internal/templates/makefile.go | 2 +-
.../templates/molecule/mdefault/converge.go | 0
.../templates/molecule/mdefault/create.go | 0
.../templates/molecule/mdefault/destroy.go | 0
.../templates/molecule/mdefault/kustomize.go | 0
.../templates/molecule/mdefault/molecule.go | 9 -
.../templates/molecule/mdefault/prepare.go | 0
.../molecule/mdefault/tasks_test_resource.go | 0
.../templates/molecule/mdefault/verify.go | 0
.../templates/molecule/mkind/converge.go | 0
.../templates/molecule/mkind/create.go | 0
.../templates/molecule/mkind/destroy.go | 0
.../templates/molecule/mkind/molecule.go | 9 -
.../templates/playbooks/placeholder.go | 0
.../internal/templates/playbooks/playbook.go | 0
.../internal/templates/requirements.go | 4 +-
.../internal/templates/roles/defaults_main.go | 2 +-
.../internal/templates/roles/files_dir.go | 2 +-
.../internal/templates/roles/handlers_main.go | 2 +-
.../internal/templates/roles/meta_main.go | 2 +-
.../internal/templates/roles/placeholder.go | 0
.../internal/templates/roles/readme.go | 2 +-
.../internal/templates/roles/tasks_main.go | 2 +-
.../internal/templates/roles/templates_dir.go | 2 +-
.../internal/templates/roles/vars_main.go | 2 +-
.../scaffolds/internal/templates/watches.go | 0
.../pkg/plugins/plugins.go | 19 +
.../pkg/plugins/util/cleanup.go | 208 +
.../pkg/plugins/util/message.go | 20 +
.../v1alpha1/clusterserviceversion_types.go | 44 +-
.../operators/v1alpha1/installplan_types.go | 3 +
.../operators/v1alpha1/subscription_types.go | 6 +
.../api/pkg/validation/internal/multiarch.go | 409 +-
.../operator-registry/alpha/action/migrate.go | 52 +-
.../operator-registry/alpha/action/render.go | 27 +-
.../alpha/declcfg/declcfg.go | 90 +-
.../operator-registry/alpha/declcfg/errors.go | 93 +
.../operator-registry/alpha/declcfg/load.go | 276 +-
.../operator-registry/alpha/declcfg/write.go | 49 +-
.../alpha/property/property.go | 47 +
.../alpha/property/scheme.go | 1 +
.../operator-registry/pkg/api/api_to_model.go | 15 +-
.../operator-registry/pkg/api/model_to_api.go | 84 +-
.../pkg/registry/registry_to_model.go | 18 +-
.../internal/annotations/metrics/metrics.go | 2 +-
.../internal/bindata/olm/manifests.go | 96 +-
.../internal/bindata/olm/versions.go | 2 +-
.../internal/cmd/operator-sdk/cli/cli.go | 2 +-
.../generate/internal/relatedimages.go | 6 +-
.../internal/olm/client/client.go | 47 +-
.../internal/olm/client/status.go | 6 +-
.../operator-sdk/internal/olm/fbcutil/util.go | 12 +-
.../internal/olm/operator/install_mode.go | 6 +-
.../operator/registry/operator_installer.go | 12 +-
.../internal/plugins/manifests/v2/init.go | 68 +-
.../collectors/go_collector_latest.go | 2 +
.../client_golang/prometheus/counter.go | 26 +-
.../client_golang/prometheus/desc.go | 46 +-
.../client_golang/prometheus/doc.go | 44 +-
.../client_golang/prometheus/gauge.go | 26 +-
.../prometheus/go_collector_latest.go | 7 +-
.../client_golang/prometheus/histogram.go | 61 +-
.../client_golang/prometheus/labels.go | 72 +
.../client_golang/prometheus/metric.go | 6 +-
.../client_golang/prometheus/promhttp/http.go | 19 +-
.../prometheus/promhttp/instrument_client.go | 26 +-
.../prometheus/promhttp/instrument_server.go | 101 +-
.../prometheus/promhttp/option.go | 38 +-
.../client_golang/prometheus/registry.go | 17 +-
.../client_golang/prometheus/summary.go | 39 +-
.../client_golang/prometheus/timer.go | 28 +-
.../client_golang/prometheus/value.go | 10 +-
.../client_golang/prometheus/vec.go | 79 +-
.../client_golang/prometheus/vnext.go | 23 +
.../client_golang/prometheus/wrap.go | 8 +-
.../prometheus/client_model/go/metrics.pb.go | 1530 +-
.../prometheus/common/expfmt/decode.go | 39 +-
.../prometheus/common/expfmt/encode.go | 13 +-
.../prometheus/common/expfmt/expfmt.go | 26 +-
.../prometheus/common/expfmt/fuzz.go | 4 +-
.../common/expfmt/openmetrics_create.go | 22 +-
.../prometheus/common/expfmt/text_create.go | 3 +-
.../prometheus/common/expfmt/text_parse.go | 12 +-
.../bitbucket.org/ww/goautoneg/autoneg.go | 22 +-
.../prometheus/common/model/time.go | 89 +-
.../prometheus/common/model/value.go | 246 +-
.../prometheus/common/model/value_float.go | 100 +
.../common/model/value_histogram.go | 178 +
.../prometheus/common/model/value_type.go | 83 +
.../prometheus/procfs/Makefile.common | 23 +-
.../github.com/prometheus/procfs/cpuinfo.go | 36 +
.../prometheus/procfs/cpuinfo_loong64.go} | 15 +-
.../prometheus/procfs/cpuinfo_others.go | 4 +-
.../github.com/prometheus/procfs/doc.go | 51 +-
.../vendor/github.com/prometheus/procfs/fs.go | 9 +-
.../prometheus/procfs/fs_statfs_notype.go | 23 +
.../prometheus/procfs/fs_statfs_type.go | 33 +
.../prometheus/procfs/internal/util/parse.go | 15 +
.../prometheus/procfs/mountstats.go | 9 +-
.../prometheus/procfs/net_conntrackstat.go | 88 +-
.../prometheus/procfs/net_softnet.go | 75 +-
.../prometheus/procfs/net_wireless.go | 182 +
.../github.com/prometheus/procfs/netstat.go | 54 +-
.../github.com/prometheus/procfs/proc.go | 22 +-
.../prometheus/procfs/proc_cgroup.go | 2 +-
.../prometheus/procfs/proc_interrupts.go | 98 +
.../prometheus/procfs/proc_netstat.go | 491 +-
.../github.com/prometheus/procfs/proc_snmp.go | 318 +-
.../prometheus/procfs/proc_snmp6.go | 364 +-
.../github.com/prometheus/procfs/proc_stat.go | 10 +-
.../prometheus/procfs/proc_status.go | 38 +-
.../github.com/prometheus/procfs/stat.go | 22 +-
.../github.com/prometheus/procfs/thread.go | 80 +
.../vendor/github.com/prometheus/procfs/vm.go | 4 +-
.../github.com/rubenv/sql-migrate/README.md | 9 +-
.../github.com/rubenv/sql-migrate/migrate.go | 63 +-
.../github.com/sirupsen/logrus/README.md | 8 +-
.../github.com/sirupsen/logrus/writer.go | 34 +-
.../stretchr/testify/assert/assertions.go | 78 +-
.../github.com/xlab/treeprint/.gitignore | 3 +
.../github.com/xlab/treeprint/treeprint.go | 84 +-
tools/vendor/go.etcd.io/bbolt/.gitignore | 3 +
tools/vendor/go.etcd.io/bbolt/.travis.yml | 18 -
tools/vendor/go.etcd.io/bbolt/Makefile | 71 +-
tools/vendor/go.etcd.io/bbolt/README.md | 21 +-
tools/vendor/go.etcd.io/bbolt/bolt_arm64.go | 1 +
tools/vendor/go.etcd.io/bbolt/bolt_loong64.go | 10 +
tools/vendor/go.etcd.io/bbolt/bolt_mips64x.go | 1 +
tools/vendor/go.etcd.io/bbolt/bolt_mipsx.go | 1 +
tools/vendor/go.etcd.io/bbolt/bolt_ppc.go | 1 +
tools/vendor/go.etcd.io/bbolt/bolt_ppc64.go | 1 +
tools/vendor/go.etcd.io/bbolt/bolt_ppc64le.go | 1 +
tools/vendor/go.etcd.io/bbolt/bolt_riscv64.go | 1 +
tools/vendor/go.etcd.io/bbolt/bolt_s390x.go | 1 +
tools/vendor/go.etcd.io/bbolt/bolt_unix.go | 1 +
.../vendor/go.etcd.io/bbolt/bolt_unix_aix.go | 1 +
tools/vendor/go.etcd.io/bbolt/bolt_windows.go | 62 +-
.../vendor/go.etcd.io/bbolt/boltsync_unix.go | 1 +
tools/vendor/go.etcd.io/bbolt/bucket.go | 54 +-
tools/vendor/go.etcd.io/bbolt/compact.go | 9 +-
tools/vendor/go.etcd.io/bbolt/cursor.go | 104 +-
tools/vendor/go.etcd.io/bbolt/db.go | 179 +-
tools/vendor/go.etcd.io/bbolt/doc.go | 8 +-
tools/vendor/go.etcd.io/bbolt/errors.go | 7 +
tools/vendor/go.etcd.io/bbolt/freelist.go | 19 +-
tools/vendor/go.etcd.io/bbolt/mlock_unix.go | 3 +-
.../vendor/go.etcd.io/bbolt/mlock_windows.go | 2 +-
tools/vendor/go.etcd.io/bbolt/node.go | 28 +-
tools/vendor/go.etcd.io/bbolt/page.go | 10 +
tools/vendor/go.etcd.io/bbolt/tx.go | 382 +-
tools/vendor/go.etcd.io/bbolt/tx_check.go | 226 +
.../etcd/api/v3/v3rpc/rpctypes/error.go | 264 -
tools/vendor/go.opencensus.io/Makefile | 8 +-
tools/vendor/go.opencensus.io/opencensus.go | 2 +-
tools/vendor/go.opencensus.io/trace/doc.go | 13 +-
tools/vendor/go.opencensus.io/trace/lrumap.go | 2 +-
.../go.opencensus.io/trace/trace_go11.go | 1 +
.../go.opencensus.io/trace/trace_nongo11.go | 1 +
.../go.opentelemetry.io/otel/.golangci.yml | 6 +-
.../go.opentelemetry.io/otel/.lycheeignore | 3 +
.../go.opentelemetry.io/otel/CHANGELOG.md | 320 +-
.../go.opentelemetry.io/otel/CONTRIBUTING.md | 2 +-
.../vendor/go.opentelemetry.io/otel/Makefile | 13 +-
.../vendor/go.opentelemetry.io/otel/README.md | 5 +
.../go.opentelemetry.io/otel/RELEASING.md | 11 +-
.../otel/attribute/value.go | 95 +-
.../otel/baggage/baggage.go | 16 +-
.../go.opentelemetry.io/otel/codes/codes.go | 10 +
.../otlp/internal/envconfig/envconfig.go | 81 +-
.../exporters/otlp/internal/partialsuccess.go | 34 +-
.../exporters/otlp/internal/retry/retry.go | 35 +-
.../exporters/otlp/internal/wrappederror.go | 61 +
.../otel/exporters/otlp/otlptrace/README.md | 4 +-
.../otel/exporters/otlp/otlptrace/exporter.go | 7 +-
.../internal/otlpconfig/envconfig.go | 27 +-
.../otlptrace/internal/otlpconfig/options.go | 1 +
.../otlp/otlptrace/otlptracegrpc/client.go | 11 +-
.../go.opentelemetry.io/otel/handler.go | 25 +-
.../otel/internal/attribute/attribute.go | 111 +
.../otel/internal/global/internal_logging.go | 30 +-
.../otel/metric/instrument/asyncfloat64.go | 131 +
.../instrument/asyncfloat64/asyncfloat64.go | 70 -
.../otel/metric/instrument/asyncint64.go | 131 +
.../instrument/asyncint64/asyncint64.go | 70 -
.../otel/metric/instrument/config.go | 69 -
.../otel/metric/instrument/instrument.go | 60 +
.../otel/metric/instrument/syncfloat64.go | 86 +
.../instrument/syncfloat64/syncfloat64.go | 30 +-
.../otel/metric/instrument/syncint64.go | 86 +
.../metric/instrument/syncint64/syncint64.go | 30 +-
.../metric/internal/global/instruments.go | 209 +-
.../otel/metric/internal/global/meter.go | 319 +-
.../go.opentelemetry.io/otel/metric/meter.go | 118 +-
.../go.opentelemetry.io/otel/metric/noop.go | 127 +-
.../otel/sdk/resource/builtin.go | 8 +-
.../otel/sdk/resource/config.go | 2 +
.../otel/sdk/resource/container.go | 4 +-
.../otel/sdk/resource/env.go | 15 +-
.../otel/sdk/resource/os.go | 4 +-
.../otel/sdk/resource/process.go | 18 +-
.../otel/sdk/trace/provider.go | 56 +-
.../otel/sdk/trace/sampling.go | 10 +-
.../otel/sdk/trace/span.go | 46 +-
.../otel/sdk/trace/span_processor.go | 5 +
.../otel/sdk/trace/tracer.go | 2 +-
.../otel/semconv/internal/v2/http.go | 404 +
.../otel/semconv/internal/v2/net.go | 324 +
.../otel/semconv/v1.17.0/doc.go | 20 +
.../otel/semconv/v1.17.0/event.go | 199 +
.../otel/semconv/v1.17.0/exception.go | 20 +
.../otel/semconv/v1.17.0/http.go} | 11 +-
.../otel/semconv/v1.17.0/httpconv/http.go | 150 +
.../otel/semconv/v1.17.0/resource.go | 2010 +
.../otel/semconv/v1.17.0/schema.go | 20 +
.../otel/semconv/v1.17.0/trace.go | 3375 +
.../go.opentelemetry.io/otel/trace/config.go | 17 +
.../go.opentelemetry.io/otel/trace/doc.go | 2 +-
.../go.opentelemetry.io/otel/version.go | 2 +-
.../go.opentelemetry.io/otel/versions.yaml | 7 +-
tools/vendor/go.uber.org/atomic/.codecov.yml | 19 -
tools/vendor/go.uber.org/atomic/.gitignore | 15 -
tools/vendor/go.uber.org/atomic/CHANGELOG.md | 117 -
tools/vendor/go.uber.org/atomic/LICENSE.txt | 19 -
tools/vendor/go.uber.org/atomic/Makefile | 79 -
tools/vendor/go.uber.org/atomic/README.md | 63 -
tools/vendor/go.uber.org/atomic/bool.go | 88 -
tools/vendor/go.uber.org/atomic/doc.go | 23 -
tools/vendor/go.uber.org/atomic/duration.go | 89 -
.../vendor/go.uber.org/atomic/duration_ext.go | 40 -
tools/vendor/go.uber.org/atomic/error.go | 62 -
tools/vendor/go.uber.org/atomic/float32.go | 77 -
.../vendor/go.uber.org/atomic/float32_ext.go | 76 -
tools/vendor/go.uber.org/atomic/float64.go | 77 -
.../vendor/go.uber.org/atomic/float64_ext.go | 76 -
tools/vendor/go.uber.org/atomic/gen.go | 27 -
tools/vendor/go.uber.org/atomic/int32.go | 109 -
tools/vendor/go.uber.org/atomic/int64.go | 109 -
tools/vendor/go.uber.org/atomic/nocmp.go | 35 -
.../go.uber.org/atomic/pointer_go118.go | 60 -
.../go.uber.org/atomic/pointer_go119.go | 61 -
tools/vendor/go.uber.org/atomic/string.go | 65 -
tools/vendor/go.uber.org/atomic/string_ext.go | 43 -
tools/vendor/go.uber.org/atomic/time_ext.go | 36 -
tools/vendor/go.uber.org/atomic/uint32.go | 109 -
tools/vendor/go.uber.org/atomic/uint64.go | 109 -
tools/vendor/go.uber.org/atomic/uintptr.go | 109 -
.../go.uber.org/atomic/unsafe_pointer.go | 65 -
tools/vendor/go.uber.org/atomic/value.go | 31 -
.../vendor/go.uber.org/multierr/CHANGELOG.md | 23 +
tools/vendor/go.uber.org/multierr/README.md | 22 +-
tools/vendor/go.uber.org/multierr/error.go | 406 +-
.../error_post_go120.go} | 35 +-
.../go.uber.org/multierr/error_pre_go120.go | 79 +
tools/vendor/go.uber.org/multierr/glide.yaml | 8 -
tools/vendor/go.uber.org/zap/.golangci.yml | 77 +
tools/vendor/go.uber.org/zap/CHANGELOG.md | 242 +-
tools/vendor/go.uber.org/zap/Makefile | 87 +-
tools/vendor/go.uber.org/zap/README.md | 62 +-
tools/vendor/go.uber.org/zap/array.go | 127 +
tools/vendor/go.uber.org/zap/array_go118.go | 156 -
tools/vendor/go.uber.org/zap/buffer/buffer.go | 5 +
tools/vendor/go.uber.org/zap/buffer/pool.go | 20 +-
tools/vendor/go.uber.org/zap/config.go | 84 +-
tools/vendor/go.uber.org/zap/error.go | 14 +-
tools/vendor/go.uber.org/zap/field.go | 194 +-
tools/vendor/go.uber.org/zap/http_handler.go | 19 +-
.../go.uber.org/zap/internal/level_enabler.go | 2 +
.../bool_ext.go => zap/internal/pool/pool.go} | 49 +-
.../stacktrace/stack.go} | 81 +-
tools/vendor/go.uber.org/zap/level.go | 9 +-
tools/vendor/go.uber.org/zap/logger.go | 48 +-
tools/vendor/go.uber.org/zap/sink.go | 5 +-
tools/vendor/go.uber.org/zap/sugar.go | 69 +-
tools/vendor/go.uber.org/zap/writer.go | 12 +-
.../zap/zapcore/console_encoder.go | 14 +-
tools/vendor/go.uber.org/zap/zapcore/core.go | 6 +-
tools/vendor/go.uber.org/zap/zapcore/entry.go | 22 +-
tools/vendor/go.uber.org/zap/zapcore/error.go | 14 +-
.../go.uber.org/zap/zapcore/json_encoder.go | 155 +-
.../time.go => zap/zapcore/lazy_with.go} | 51 +-
.../vendor/go.uber.org/zap/zapcore/sampler.go | 9 +-
.../golang.org/x/crypto/bcrypt/bcrypt.go | 11 +-
.../vendor/golang.org/x/crypto/cast5/cast5.go | 11 +-
.../x/crypto/openpgp/armor/armor.go | 2 +-
.../golang.org/x/crypto/openpgp/keys.go | 4 +-
.../x/crypto/openpgp/packet/compressed.go | 2 +-
tools/vendor/golang.org/x/exp/LICENSE | 27 +
tools/vendor/golang.org/x/exp/PATENTS | 22 +
.../x/exp/constraints/constraints.go | 50 +
tools/vendor/golang.org/x/exp/slices/cmp.go | 44 +
.../vendor/golang.org/x/exp/slices/slices.go | 499 +
tools/vendor/golang.org/x/exp/slices/sort.go | 195 +
.../golang.org/x/exp/slices/zsortanyfunc.go | 479 +
.../golang.org/x/exp/slices/zsortordered.go | 481 +
.../x/mod/internal/lazyregexp/lazyre.go | 2 +-
.../vendor/golang.org/x/mod/modfile/print.go | 14 +-
tools/vendor/golang.org/x/mod/modfile/read.go | 2 +-
tools/vendor/golang.org/x/mod/modfile/rule.go | 144 +-
tools/vendor/golang.org/x/mod/modfile/work.go | 65 +-
.../vendor/golang.org/x/mod/module/module.go | 30 +-
.../vendor/golang.org/x/mod/module/pseudo.go | 2 +-
.../vendor/golang.org/x/mod/semver/semver.go | 6 +-
.../x/net/context/ctxhttp/ctxhttp.go | 71 -
.../vendor/golang.org/x/net/http2/Dockerfile | 51 -
tools/vendor/golang.org/x/net/http2/Makefile | 3 -
tools/vendor/golang.org/x/net/http2/server.go | 29 +-
.../golang.org/x/net/http2/transport.go | 70 +-
.../golang.org/x/net/http2/writesched.go | 3 +-
.../x/net/http2/writesched_roundrobin.go | 119 +
.../vendor/golang.org/x/net/idna/idna9.0.0.go | 2 +-
.../golang.org/x/net/idna/tables13.0.0.go | 2988 +-
.../golang.org/x/net/idna/tables15.0.0.go | 5145 ++
tools/vendor/golang.org/x/net/idna/trie.go | 21 -
.../golang.org/x/net/idna/trie12.0.0.go | 31 +
.../golang.org/x/net/idna/trie13.0.0.go | 31 +
.../golang.org/x/net/internal/socks/socks.go | 2 +-
tools/vendor/golang.org/x/oauth2/README.md | 12 +-
.../golang.org/x/oauth2/internal/oauth2.go | 2 +-
.../golang.org/x/oauth2/internal/token.go | 64 +-
tools/vendor/golang.org/x/oauth2/oauth2.go | 33 +-
tools/vendor/golang.org/x/oauth2/token.go | 33 +-
.../golang.org/x/sync/errgroup/errgroup.go | 10 +-
.../golang.org/x/sync/errgroup/go120.go | 14 +
.../golang.org/x/sync/errgroup/pre_go120.go | 15 +
.../x/sync/singleflight/singleflight.go | 214 +
.../sys/internal/unsafeheader/unsafeheader.go | 30 -
tools/vendor/golang.org/x/sys/unix/mkall.sh | 2 +-
.../vendor/golang.org/x/sys/unix/mkerrors.sh | 12 +-
.../golang.org/x/sys/unix/mmap_nomremap.go | 14 +
tools/vendor/golang.org/x/sys/unix/mremap.go | 53 +
.../golang.org/x/sys/unix/ptrace_darwin.go | 6 -
.../golang.org/x/sys/unix/ptrace_ios.go | 6 -
.../golang.org/x/sys/unix/syscall_aix.go | 17 -
.../golang.org/x/sys/unix/syscall_bsd.go | 14 -
.../golang.org/x/sys/unix/syscall_darwin.go | 236 +-
.../x/sys/unix/syscall_darwin_amd64.go | 1 -
.../x/sys/unix/syscall_darwin_arm64.go | 1 -
.../x/sys/unix/syscall_dragonfly.go | 198 -
.../golang.org/x/sys/unix/syscall_freebsd.go | 192 -
.../golang.org/x/sys/unix/syscall_linux.go | 224 +-
.../x/sys/unix/syscall_linux_amd64.go | 2 +-
.../x/sys/unix/syscall_linux_arm64.go | 2 +-
.../x/sys/unix/syscall_linux_loong64.go | 2 +-
.../x/sys/unix/syscall_linux_mips64x.go | 2 +-
.../x/sys/unix/syscall_linux_riscv64.go | 13 +-
.../golang.org/x/sys/unix/syscall_netbsd.go | 272 +-
.../golang.org/x/sys/unix/syscall_openbsd.go | 91 +-
.../golang.org/x/sys/unix/syscall_solaris.go | 32 -
.../golang.org/x/sys/unix/syscall_unix.go | 11 +
.../x/sys/unix/syscall_zos_s390x.go | 15 -
.../golang.org/x/sys/unix/zerrors_linux.go | 66 +-
.../x/sys/unix/zerrors_linux_386.go | 11 +
.../x/sys/unix/zerrors_linux_amd64.go | 11 +
.../x/sys/unix/zerrors_linux_arm.go | 11 +
.../x/sys/unix/zerrors_linux_arm64.go | 13 +
.../x/sys/unix/zerrors_linux_loong64.go | 13 +
.../x/sys/unix/zerrors_linux_mips.go | 11 +
.../x/sys/unix/zerrors_linux_mips64.go | 11 +
.../x/sys/unix/zerrors_linux_mips64le.go | 11 +
.../x/sys/unix/zerrors_linux_mipsle.go | 11 +
.../x/sys/unix/zerrors_linux_ppc.go | 11 +
.../x/sys/unix/zerrors_linux_ppc64.go | 11 +
.../x/sys/unix/zerrors_linux_ppc64le.go | 11 +
.../x/sys/unix/zerrors_linux_riscv64.go | 11 +
.../x/sys/unix/zerrors_linux_s390x.go | 11 +
.../x/sys/unix/zerrors_linux_sparc64.go | 59 +
.../golang.org/x/sys/unix/zsyscall_aix_ppc.go | 22 -
.../x/sys/unix/zsyscall_aix_ppc64.go | 22 -
.../x/sys/unix/zsyscall_darwin_amd64.go | 40 +-
.../x/sys/unix/zsyscall_darwin_amd64.s | 149 -
.../x/sys/unix/zsyscall_darwin_arm64.go | 40 +-
.../x/sys/unix/zsyscall_darwin_arm64.s | 149 -
.../x/sys/unix/zsyscall_dragonfly_amd64.go | 22 -
.../x/sys/unix/zsyscall_freebsd_386.go | 22 -
.../x/sys/unix/zsyscall_freebsd_amd64.go | 22 -
.../x/sys/unix/zsyscall_freebsd_arm.go | 22 -
.../x/sys/unix/zsyscall_freebsd_arm64.go | 22 -
.../x/sys/unix/zsyscall_freebsd_riscv64.go | 22 -
.../x/sys/unix/zsyscall_illumos_amd64.go | 10 +-
.../golang.org/x/sys/unix/zsyscall_linux.go | 69 +-
.../x/sys/unix/zsyscall_linux_riscv64.go | 16 +
.../x/sys/unix/zsyscall_netbsd_386.go | 29 +-
.../x/sys/unix/zsyscall_netbsd_amd64.go | 29 +-
.../x/sys/unix/zsyscall_netbsd_arm.go | 29 +-
.../x/sys/unix/zsyscall_netbsd_arm64.go | 29 +-
.../x/sys/unix/zsyscall_openbsd_386.go | 54 +-
.../x/sys/unix/zsyscall_openbsd_386.s | 10 +
.../x/sys/unix/zsyscall_openbsd_amd64.go | 54 +-
.../x/sys/unix/zsyscall_openbsd_amd64.s | 10 +
.../x/sys/unix/zsyscall_openbsd_arm.go | 54 +-
.../x/sys/unix/zsyscall_openbsd_arm.s | 10 +
.../x/sys/unix/zsyscall_openbsd_arm64.go | 54 +-
.../x/sys/unix/zsyscall_openbsd_arm64.s | 10 +
.../x/sys/unix/zsyscall_openbsd_mips64.go | 54 +-
.../x/sys/unix/zsyscall_openbsd_mips64.s | 10 +
.../x/sys/unix/zsyscall_openbsd_ppc64.go | 54 +-
.../x/sys/unix/zsyscall_openbsd_ppc64.s | 12 +
.../x/sys/unix/zsyscall_openbsd_riscv64.go | 54 +-
.../x/sys/unix/zsyscall_openbsd_riscv64.s | 10 +
.../x/sys/unix/zsyscall_solaris_amd64.go | 256 +-
.../x/sys/unix/zsyscall_zos_s390x.go | 11 -
.../x/sys/unix/zsysnum_linux_386.go | 1 +
.../x/sys/unix/zsysnum_linux_amd64.go | 1 +
.../x/sys/unix/zsysnum_linux_arm.go | 1 +
.../x/sys/unix/zsysnum_linux_arm64.go | 1 +
.../x/sys/unix/zsysnum_linux_loong64.go | 1 +
.../x/sys/unix/zsysnum_linux_mips.go | 1 +
.../x/sys/unix/zsysnum_linux_mips64.go | 1 +
.../x/sys/unix/zsysnum_linux_mips64le.go | 1 +
.../x/sys/unix/zsysnum_linux_mipsle.go | 1 +
.../x/sys/unix/zsysnum_linux_ppc.go | 1 +
.../x/sys/unix/zsysnum_linux_ppc64.go | 1 +
.../x/sys/unix/zsysnum_linux_ppc64le.go | 1 +
.../x/sys/unix/zsysnum_linux_riscv64.go | 3 +
.../x/sys/unix/zsysnum_linux_s390x.go | 2 +
.../x/sys/unix/zsysnum_linux_sparc64.go | 1 +
.../golang.org/x/sys/unix/ztypes_linux.go | 103 +-
.../golang.org/x/sys/unix/ztypes_linux_386.go | 2 +
.../x/sys/unix/ztypes_linux_amd64.go | 2 +
.../golang.org/x/sys/unix/ztypes_linux_arm.go | 2 +
.../x/sys/unix/ztypes_linux_arm64.go | 2 +
.../x/sys/unix/ztypes_linux_loong64.go | 2 +
.../x/sys/unix/ztypes_linux_mips.go | 2 +
.../x/sys/unix/ztypes_linux_mips64.go | 2 +
.../x/sys/unix/ztypes_linux_mips64le.go | 2 +
.../x/sys/unix/ztypes_linux_mipsle.go | 2 +
.../golang.org/x/sys/unix/ztypes_linux_ppc.go | 2 +
.../x/sys/unix/ztypes_linux_ppc64.go | 2 +
.../x/sys/unix/ztypes_linux_ppc64le.go | 2 +
.../x/sys/unix/ztypes_linux_riscv64.go | 29 +
.../x/sys/unix/ztypes_linux_s390x.go | 2 +
.../x/sys/unix/ztypes_linux_sparc64.go | 2 +
.../golang.org/x/sys/windows/env_windows.go | 6 +-
.../golang.org/x/sys/windows/exec_windows.go | 92 +-
.../x/sys/windows/security_windows.go | 21 +-
.../golang.org/x/sys/windows/service.go | 11 +
.../x/sys/windows/syscall_windows.go | 70 +-
.../golang.org/x/sys/windows/types_windows.go | 13 +-
.../x/sys/windows/zsyscall_windows.go | 71 +-
tools/vendor/golang.org/x/term/term_unix.go | 2 +-
.../golang.org/x/text/cases/tables13.0.0.go | 4 +-
.../golang.org/x/text/cases/tables15.0.0.go | 2528 +
.../x/text/feature/plural/common.go | 70 +
.../x/text/feature/plural/message.go | 244 +
.../x/text/feature/plural/plural.go | 262 +
.../x/text/feature/plural/tables.go | 552 +
.../x/text/internal/catmsg/catmsg.go | 417 +
.../x/text/internal/catmsg/codec.go | 407 +
.../x/text/internal/catmsg/varint.go | 62 +
.../x/text/internal/format/format.go | 41 +
.../x/text/internal/format/parser.go | 358 +
.../text/internal/language/compact/tables.go | 356 +-
.../x/text/internal/language/tables.go | 4686 +-
.../x/text/internal/number/common.go | 55 +
.../x/text/internal/number/decimal.go | 500 +
.../x/text/internal/number/format.go | 535 +
.../x/text/internal/number/number.go | 152 +
.../x/text/internal/number/pattern.go | 485 +
.../internal/number/roundingmode_string.go | 30 +
.../x/text/internal/number/tables.go | 1219 +
.../x/text/internal/stringset/set.go | 86 +
.../golang.org/x/text/language/match.go | 2 +-
.../golang.org/x/text/language/tables.go | 138 +-
.../golang.org/x/text/message/catalog.go | 36 +
.../x/text/message/catalog/catalog.go | 365 +
.../golang.org/x/text/message/catalog/dict.go | 129 +
.../golang.org/x/text/message/catalog/go19.go | 16 +
.../x/text/message/catalog/gopre19.go | 24 +
tools/vendor/golang.org/x/text/message/doc.go | 99 +
.../golang.org/x/text/message/format.go | 510 +
.../golang.org/x/text/message/message.go | 193 +
.../vendor/golang.org/x/text/message/print.go | 984 +
.../x/text/unicode/bidi/tables13.0.0.go | 4 +-
.../x/text/unicode/bidi/tables15.0.0.go | 2043 +
.../x/text/unicode/norm/tables13.0.0.go | 4 +-
.../x/text/unicode/norm/tables15.0.0.go | 7908 ++
.../golang.org/x/text/unicode/norm/trie.go | 2 +-
.../golang.org/x/text/width/tables13.0.0.go | 4 +-
.../golang.org/x/text/width/tables15.0.0.go | 1368 +
.../x/tools/cmd/stringer/stringer.go | 5 +-
.../x/tools/go/gcexportdata/gcexportdata.go | 11 +-
.../tools/go/internal/packagesdriver/sizes.go | 11 +-
.../golang.org/x/tools/go/packages/doc.go | 2 +-
.../golang.org/x/tools/go/packages/golist.go | 42 +-
.../x/tools/go/packages/packages.go | 19 +-
.../x/tools/go/types/objectpath/objectpath.go | 193 +-
.../golang.org/x/tools/imports/forward.go | 4 +-
.../x/tools/internal/event/tag/tag.go | 59 +
.../x/tools/internal/fastwalk/fastwalk.go | 16 +-
.../internal/fastwalk/fastwalk_portable.go | 11 +-
.../x/tools/internal/gcimporter/bexport.go | 852 -
.../x/tools/internal/gcimporter/bimport.go | 907 +-
.../x/tools/internal/gcimporter/gcimporter.go | 18 +-
.../x/tools/internal/gcimporter/iexport.go | 194 +-
.../x/tools/internal/gcimporter/iimport.go | 197 +-
.../tools/internal/gcimporter/ureader_yes.go | 9 +
.../x/tools/internal/gocommand/invoke.go | 146 +-
.../x/tools/internal/gocommand/version.go | 18 +-
.../x/tools/internal/gopathwalk/walk.go | 20 +-
.../x/tools/internal/imports/fix.go | 47 +-
.../x/tools/internal/imports/imports.go | 9 +-
.../x/tools/internal/imports/mod.go | 17 +-
.../x/tools/internal/imports/mod_cache.go | 2 +-
.../x/tools/internal/imports/zstdlib.go | 230 +
.../x/tools/internal/typeparams/common.go | 26 +
.../x/tools/internal/typeparams/coretype.go | 8 +-
.../x/tools/internal/typeparams/termlist.go | 2 +-
.../internal/typeparams/typeparams_go117.go | 2 +-
.../internal/typeparams/typeparams_go118.go | 2 +-
.../x/tools/internal/typeparams/typeterm.go | 9 +-
.../internal/typesinternal/objectpath.go | 24 +
.../x/tools/internal/typesinternal/types.go | 9 -
.../genproto/googleapis/api/LICENSE | 202 +
.../googleapis/api/expr/v1alpha1/syntax.pb.go | 247 +-
.../googleapis/api/httpbody/httpbody.pb.go | 4 +-
.../genproto/googleapis/rpc/LICENSE | 202 +
.../rpc/errdetails/error_details.pb.go | 374 +-
.../googleapis/rpc/status/status.pb.go | 10 +-
.../google.golang.org/grpc/CONTRIBUTING.md | 29 +-
.../grpc/balancer/balancer.go | 8 +
.../grpc_binarylog_v1/binarylog.pb.go | 9 +-
.../google.golang.org/grpc/clientconn.go | 67 +-
.../grpc/codes/code_string.go | 51 +-
.../google.golang.org/grpc/credentials/tls.go | 4 +-
.../google.golang.org/grpc/dialoptions.go | 42 +-
.../grpc/encoding/encoding.go | 4 +-
.../grpc/encoding/gzip/gzip.go | 5 +-
.../grpc/grpclog/loggerv2.go | 7 +-
.../grpc/internal/binarylog/binarylog.go | 8 +-
.../grpc/internal/binarylog/method_logger.go | 133 +-
.../grpc/internal/binarylog/sink.go | 12 +-
.../grpc/internal/envconfig/envconfig.go | 39 +-
.../grpc/internal/envconfig/xds.go | 31 +-
.../grpc/internal/grpclog/prefixLogger.go | 12 +
.../grpc/internal/internal.go | 13 +
.../grpc/internal/metadata/metadata.go | 62 +-
.../internal/resolver/dns/dns_resolver.go | 6 +-
.../resolver/passthrough/passthrough.go | 11 +-
.../grpc/internal/resolver/unix/unix.go | 4 +-
.../grpc/internal/transport/controlbuf.go | 116 +-
.../grpc/internal/transport/defaults.go | 6 +
.../grpc/internal/transport/handler_server.go | 45 +-
.../grpc/internal/transport/http2_client.go | 115 +-
.../grpc/internal/transport/http2_server.go | 161 +-
.../grpc/internal/transport/http_util.go | 24 +-
.../grpc/internal/transport/transport.go | 29 +-
.../grpc/metadata/metadata.go | 13 +-
.../google.golang.org/grpc/picker_wrapper.go | 28 +-
.../google.golang.org/grpc/pickfirst.go | 6 +-
.../google.golang.org/grpc/regenerate.sh | 7 +-
.../grpc/resolver/resolver.go | 42 +-
.../vendor/google.golang.org/grpc/rpc_util.go | 70 +-
tools/vendor/google.golang.org/grpc/server.go | 230 +-
.../google.golang.org/grpc/service_config.go | 10 +-
.../google.golang.org/grpc/stats/stats.go | 22 +-
tools/vendor/google.golang.org/grpc/stream.go | 103 +-
.../vendor/google.golang.org/grpc/version.go | 2 +-
tools/vendor/google.golang.org/grpc/vet.sh | 34 +-
.../gopkg.in/evanphx/json-patch.v5/.gitignore | 6 +
.../gopkg.in/evanphx/json-patch.v5/LICENSE | 25 +
.../gopkg.in/evanphx/json-patch.v5/README.md | 317 +
.../gopkg.in/evanphx/json-patch.v5/errors.go | 38 +
.../gopkg.in/evanphx/json-patch.v5/merge.go | 389 +
.../gopkg.in/evanphx/json-patch.v5/patch.go | 809 +
.../helm/v3/internal/version/version.go | 2 +-
.../helm.sh/helm/v3/pkg/action/action.go | 13 +-
.../helm.sh/helm/v3/pkg/action/install.go | 27 +-
.../helm.sh/helm/v3/pkg/action/status.go | 46 +-
.../helm.sh/helm/v3/pkg/action/upgrade.go | 4 +-
.../helm.sh/helm/v3/pkg/chart/dependency.go | 2 +-
.../helm.sh/helm/v3/pkg/chart/metadata.go | 2 +-
.../helm.sh/helm/v3/pkg/cli/environment.go | 9 +-
.../helm.sh/helm/v3/pkg/cli/roundtripper.go | 80 +
.../v3/pkg/downloader/chart_downloader.go | 25 +-
.../helm.sh/helm/v3/pkg/engine/engine.go | 17 +
.../helm.sh/helm/v3/pkg/getter/httpgetter.go | 1 -
.../vendor/helm.sh/helm/v3/pkg/kube/client.go | 207 +-
.../helm.sh/helm/v3/pkg/kube/fake/fake.go | 19 +
.../helm.sh/helm/v3/pkg/kube/fake/printer.go | 14 +
.../helm.sh/helm/v3/pkg/kube/interface.go | 24 +
.../vendor/helm.sh/helm/v3/pkg/kube/ready.go | 8 +-
tools/vendor/helm.sh/helm/v3/pkg/kube/wait.go | 26 +-
.../helm.sh/helm/v3/pkg/release/info.go | 4 +
.../helm.sh/helm/v3/pkg/repo/chartrepo.go | 30 +-
.../admissionregistration/v1/generated.proto | 4 +-
.../api/admissionregistration/v1/types.go | 4 +-
.../v1/types_swagger_doc_generated.go | 4 +-
.../v1alpha1/generated.pb.go | 541 +-
.../v1alpha1/generated.proto | 92 +-
.../admissionregistration/v1alpha1/types.go | 105 +-
.../v1alpha1/types_swagger_doc_generated.go | 25 +-
.../v1alpha1/zz_generated.deepcopy.go | 33 +-
.../v1beta1/generated.pb.go | 5927 +-
.../v1beta1/generated.proto | 564 +-
.../admissionregistration/v1beta1/register.go | 4 +
.../admissionregistration/v1beta1/types.go | 594 +-
.../v1beta1/types_swagger_doc_generated.go | 178 +-
.../v1beta1/zz_generated.deepcopy.go | 448 +-
.../zz_generated.prerelease-lifecycle.go | 72 +
.../api/apidiscovery/v2beta1/generated.proto | 4 +-
.../k8s.io/api/apidiscovery/v2beta1/types.go | 4 +-
.../v1alpha1/generated.pb.go | 148 +-
.../v1alpha1/generated.proto | 5 +
.../api/apiserverinternal/v1alpha1/types.go | 5 +
.../v1alpha1/types_swagger_doc_generated.go | 1 +
.../v1alpha1/zz_generated.deepcopy.go | 5 +
tools/vendor/k8s.io/api/apps/v1/types.go | 3 +-
.../api/authentication/v1/generated.pb.go | 511 +-
.../api/authentication/v1/generated.proto | 20 +
.../k8s.io/api/authentication/v1/register.go | 1 +
.../k8s.io/api/authentication/v1/types.go | 25 +
.../v1/types_swagger_doc_generated.go | 19 +
.../v1/zz_generated.deepcopy.go | 44 +
.../k8s.io/api/batch/v1/generated.pb.go | 398 +-
.../k8s.io/api/batch/v1/generated.proto | 66 +-
tools/vendor/k8s.io/api/batch/v1/types.go | 96 +-
.../batch/v1/types_swagger_doc_generated.go | 9 +-
.../api/batch/v1/zz_generated.deepcopy.go | 25 +
.../api/core/v1/annotation_key_constants.go | 6 +-
.../vendor/k8s.io/api/core/v1/generated.pb.go | 3017 +-
.../vendor/k8s.io/api/core/v1/generated.proto | 196 +-
tools/vendor/k8s.io/api/core/v1/types.go | 238 +-
.../core/v1/types_swagger_doc_generated.go | 68 +-
.../k8s.io/api/core/v1/well_known_labels.go | 4 +
.../api/core/v1/zz_generated.deepcopy.go | 75 +-
.../k8s.io/api/discovery/v1/generated.proto | 2 +
tools/vendor/k8s.io/api/discovery/v1/types.go | 2 +
.../v1/types_swagger_doc_generated.go | 2 +-
.../api/extensions/v1beta1/generated.pb.go | 610 +-
.../api/extensions/v1beta1/generated.proto | 17 -
.../k8s.io/api/extensions/v1beta1/types.go | 50 +-
.../v1beta1/types_swagger_doc_generated.go | 10 -
.../v1beta1/zz_generated.deepcopy.go | 24 -
.../api/flowcontrol/v1alpha1/generated.pb.go | 477 +-
.../api/flowcontrol/v1alpha1/generated.proto | 42 +
.../k8s.io/api/flowcontrol/v1alpha1/types.go | 45 +
.../v1alpha1/types_swagger_doc_generated.go | 11 +
.../v1alpha1/zz_generated.deepcopy.go | 31 +
.../api/flowcontrol/v1beta1/generated.pb.go | 476 +-
.../api/flowcontrol/v1beta1/generated.proto | 42 +
.../k8s.io/api/flowcontrol/v1beta1/types.go | 49 +-
.../v1beta1/types_swagger_doc_generated.go | 11 +
.../v1beta1/zz_generated.deepcopy.go | 31 +
.../api/flowcontrol/v1beta2/generated.pb.go | 477 +-
.../api/flowcontrol/v1beta2/generated.proto | 42 +
.../k8s.io/api/flowcontrol/v1beta2/types.go | 49 +-
.../v1beta2/types_swagger_doc_generated.go | 11 +
.../v1beta2/zz_generated.deepcopy.go | 31 +
.../api/flowcontrol/v1beta3/generated.pb.go | 475 +-
.../api/flowcontrol/v1beta3/generated.proto | 46 +-
.../k8s.io/api/flowcontrol/v1beta3/types.go | 53 +-
.../v1beta3/types_swagger_doc_generated.go | 13 +-
.../v1beta3/zz_generated.deepcopy.go | 31 +
.../k8s.io/api/networking/v1/generated.pb.go | 443 +-
.../k8s.io/api/networking/v1/generated.proto | 17 -
.../vendor/k8s.io/api/networking/v1/types.go | 50 +-
.../v1/types_swagger_doc_generated.go | 10 -
.../networking/v1/zz_generated.deepcopy.go | 24 -
.../vendor/k8s.io/api/rbac/v1/generated.proto | 2 +
tools/vendor/k8s.io/api/rbac/v1/types.go | 2 +
.../rbac/v1/types_swagger_doc_generated.go | 4 +-
.../pkg/apis/apiextensions/deepcopy.go | 8 +-
.../apis/apiextensions/types_jsonschema.go | 38 +
.../pkg/apis/apiextensions/v1/deepcopy.go | 8 +-
.../pkg/apis/apiextensions/v1/generated.pb.go | 474 +-
.../pkg/apis/apiextensions/v1/generated.proto | 20 +
.../apis/apiextensions/v1/types_jsonschema.go | 38 +
.../v1/zz_generated.conversion.go | 4 +
.../apiextensions/v1/zz_generated.deepcopy.go | 9 +-
.../apis/apiextensions/v1beta1/deepcopy.go | 8 +-
.../apiextensions/v1beta1/generated.pb.go | 479 +-
.../apiextensions/v1beta1/generated.proto | 20 +
.../apiextensions/v1beta1/types_jsonschema.go | 38 +
.../v1beta1/zz_generated.conversion.go | 4 +
.../v1beta1/zz_generated.deepcopy.go | 9 +-
.../apiextensions/validation/validation.go | 107 +-
.../apiextensions/zz_generated.deepcopy.go | 9 +-
.../pkg/apiserver/schema/cel/compilation.go | 149 +-
.../pkg/apiserver/schema/cel/validation.go | 179 +-
.../apiserver/schema/zz_generated.deepcopy.go | 4 +-
.../pkg/apiserver/validation/ratcheting.go | 412 +
.../pkg/apiserver/validation/validation.go | 79 +-
.../pkg/features/OWNERS | 4 +
.../pkg/features/kube_features.go | 48 +
.../k8s.io/apimachinery/pkg/api/errors/OWNERS | 1 -
.../k8s.io/apimachinery/pkg/api/meta/help.go | 83 +-
.../apimachinery/pkg/api/resource/OWNERS | 1 -
.../pkg/apis/meta/v1/generated.proto | 2 -
.../apimachinery/pkg/apis/meta/v1/types.go | 22 +-
.../apis/meta/v1/unstructured/unstructured.go | 5 +
.../meta/v1/unstructured/unstructured_list.go | 9 +
.../k8s.io/apimachinery/pkg/runtime/codec.go | 1 -
.../apimachinery/pkg/runtime/converter.go | 4 +-
.../apimachinery/pkg/runtime/interfaces.go | 5 +
.../pkg/runtime/schema/group_version.go | 2 +-
.../k8s.io/apimachinery/pkg/runtime/splice.go | 76 +
.../apimachinery/pkg/types/namespacedname.go | 3 +-
.../apimachinery/pkg/util/cache/expiring.go | 12 +-
.../k8s.io/apimachinery/pkg/util/diff/diff.go | 37 +-
.../k8s.io/apimachinery/pkg/util/dump/dump.go | 54 +
.../pkg/util/httpstream/spdy/roundtripper.go | 4 +-
.../apimachinery/pkg/util/intstr/intstr.go | 7 +-
.../managedfields/internal/fieldmanager.go | 25 +-
.../managedfields/internal/skipnonapplied.go | 14 +-
.../managedfields/internal/structuredmerge.go | 3 +
.../managedfields/internal/versioncheck.go | 52 +
.../apimachinery/pkg/util/mergepatch/util.go | 4 +-
.../k8s.io/apimachinery/pkg/util/net/util.go | 6 +
.../pkg/util/strategicpatch/patch.go | 63 +-
.../apimachinery/pkg/util/version/doc.go} | 25 +-
.../apimachinery/pkg/util/version/version.go | 330 +
.../k8s.io/apimachinery/pkg/util/wait/loop.go | 19 +-
.../k8s.io/apimachinery/pkg/util/wait/poll.go | 28 +-
.../k8s.io/apiserver/pkg/audit/context.go | 76 +-
.../k8s.io/apiserver/pkg/audit/request.go | 29 +-
.../k8s.io/apiserver/pkg/cel/common/values.go | 20 +-
.../k8s.io/apiserver/pkg/cel/composited.go | 119 -
.../apiserver/pkg/cel/environment/base.go | 119 +
.../pkg/cel/environment/environment.go | 274 +
.../k8s.io/apiserver/pkg/cel/library/authz.go | 62 +-
.../k8s.io/apiserver/pkg/cel/library/cost.go | 4 +-
.../apiserver/pkg/cel/library/libraries.go | 35 -
.../apiserver/pkg/cel/library/quantity.go | 375 +
.../k8s.io/apiserver/pkg/cel/library/regex.go | 4 +-
.../k8s.io/apiserver/pkg/cel/library/test.go | 79 +
.../apiserver/pkg/cel/openapi/adaptor.go | 147 +
.../apiserver/pkg/cel/openapi/extensions.go | 62 +
.../k8s.io/apiserver/pkg/cel/quantity.go | 76 +
.../k8s.io/apiserver/pkg/cel/registry.go | 79 -
.../vendor/k8s.io/apiserver/pkg/cel/types.go | 160 +-
.../apiserver/pkg/features/kube_features.go | 57 +-
.../pkg/util/webhook/authentication.go | 1 +
.../apiserver/pkg/util/webhook/webhook.go | 2 +-
.../v1alpha1/paramref.go | 27 +-
.../v1alpha1/validatingadmissionpolicyspec.go | 14 +
.../v1alpha1/variable.go | 48 +
.../v1beta1/auditannotation.go | 48 +
.../v1beta1/expressionwarning.go | 48 +
.../v1beta1/matchresources.go | 90 +
.../v1beta1/namedrulewithoperations.go | 95 +
.../v1beta1/paramkind.go | 48 +
.../admissionregistration/v1beta1/paramref.go | 71 +
.../v1beta1/typechecking.go | 44 +
.../v1beta1/validatingadmissionpolicy.go | 256 +
.../validatingadmissionpolicybinding.go | 247 +
.../validatingadmissionpolicybindingspec.go | 72 +
.../v1beta1/validatingadmissionpolicyspec.go | 117 +
.../validatingadmissionpolicystatus.go | 66 +
.../v1beta1/validation.go | 70 +
.../admissionregistration/v1beta1/variable.go | 48 +
.../v1alpha1/serverstorageversion.go | 11 +
.../applyconfigurations/batch/v1/jobspec.go | 27 +
.../applyconfigurations/batch/v1/jobstatus.go | 18 +
.../applyconfigurations/core/v1/container.go | 9 +
.../core/v1/ephemeralcontainer.go | 8 +
.../core/v1/ephemeralcontainercommon.go | 9 +
.../applyconfigurations/core/v1/hostip.go | 39 +
.../core/v1/persistentvolumeclaimstatus.go | 28 +-
.../core/v1/persistentvolumestatus.go | 16 +-
.../core/v1/podresourceclaimstatus.go | 48 +
.../applyconfigurations/core/v1/podstatus.go | 56 +-
.../extensions/v1beta1/networkpolicy.go | 11 +-
.../extensions/v1beta1/networkpolicystatus.go | 48 -
.../exemptprioritylevelconfiguration.go | 48 +
.../prioritylevelconfigurationspec.go | 9 +
.../exemptprioritylevelconfiguration.go | 48 +
.../v1beta1/prioritylevelconfigurationspec.go | 9 +
.../exemptprioritylevelconfiguration.go | 48 +
.../v1beta2/prioritylevelconfigurationspec.go | 9 +
.../exemptprioritylevelconfiguration.go | 48 +
.../v1beta3/prioritylevelconfigurationspec.go | 9 +
.../applyconfigurations/internal/internal.go | 440 +-
.../networking/v1/networkpolicy.go | 11 +-
.../networking/v1/networkpolicystatus.go | 48 -
.../discovery/aggregated_discovery.go | 6 +-
.../discovery/cached/disk/cached_discovery.go | 2 +-
.../discovery/cached/memory/memcache.go | 2 +-
.../client-go/discovery/discovery_client.go | 66 +-
.../v1beta1/admissionregistration_client.go | 10 +
.../v1beta1/generated_expansion.go | 4 +
.../v1beta1/validatingadmissionpolicy.go | 243 +
.../validatingadmissionpolicybinding.go | 197 +
.../v1/authentication_client.go | 5 +
.../authentication/v1/generated_expansion.go | 2 +
.../authentication/v1/selfsubjectreview.go | 64 +
.../typed/extensions/v1beta1/networkpolicy.go | 48 -
.../typed/networking/v1/networkpolicy.go | 48 -
.../vendor/k8s.io/client-go/openapi/client.go | 7 +-
.../k8s.io/client-go/openapi/groupversion.go | 42 +-
.../k8s.io/client-go/openapi/typeconverter.go | 48 +
.../plugin/pkg/client/auth/exec/exec.go | 6 +-
tools/vendor/k8s.io/client-go/rest/config.go | 10 +-
tools/vendor/k8s.io/client-go/rest/request.go | 28 +-
.../vendor/k8s.io/client-go/rest/url_utils.go | 4 +-
.../k8s.io/client-go/tools/cache/OWNERS | 4 +-
.../client-go/tools/cache/controller.go | 4 -
.../client-go/tools/cache/object-names.go | 65 +
.../k8s.io/client-go/tools/cache/reflector.go | 30 +-
.../client-go/tools/cache/shared_informer.go | 37 +-
.../k8s.io/client-go/tools/cache/store.go | 31 +-
.../client-go/tools/clientcmd/api/types.go | 14 +-
.../client-go/tools/clientcmd/loader.go | 24 +-
.../k8s.io/client-go/tools/metrics/metrics.go | 48 +
.../k8s.io/client-go/tools/pager/pager.go | 36 +-
.../k8s.io/client-go/tools/record/event.go | 5 +-
.../client-go/tools/watch/retrywatcher.go | 7 +-
.../k8s.io/client-go/transport/cache.go | 6 +
.../vendor/k8s.io/client-go/util/cert/cert.go | 34 +-
.../k8s.io/component-base/metrics/http.go | 18 +-
.../metrics/legacyregistry/registry.go | 8 +-
.../metrics/prometheus/feature/metrics.go | 2 +-
.../k8s.io/component-base/metrics/registry.go | 12 +-
.../k8s.io/component-base/version/dynamic.go | 77 +
.../k8s.io/component-base/version/version.go | 2 +-
tools/vendor/k8s.io/klog/v2/format.go | 65 +
.../klog/v2/internal/serialize/keyvalues.go | 47 +-
tools/vendor/k8s.io/klog/v2/k8s_references.go | 12 +-
tools/vendor/k8s.io/klog/v2/klog.go | 13 +
.../k8s.io/kube-openapi/pkg/cached/cache.go | 166 +-
.../kube-openapi/pkg/handler3/handler.go | 2 +-
.../kube-openapi/pkg/util/proto/document.go | 2 +-
.../pkg/util/proto/document_v3.go | 2 +-
.../pkg/validation/spec/gnostic.go | 2 +-
.../pkg/validation/strfmt/format.go | 81 -
.../validation/validate/object_validator.go | 16 +-
.../pkg/validation/validate/schema.go | 36 +-
.../pkg/validation/validate/schema_option.go | 7 +
.../validation/validate/slice_validator.go | 7 +-
.../pkg/validation/validate/validator.go | 4 +-
tools/vendor/k8s.io/utils/set/OWNERS | 8 +
tools/vendor/k8s.io/utils/set/ordered.go | 53 +
tools/vendor/k8s.io/utils/set/set.go | 229 +
tools/vendor/k8s.io/utils/trace/trace.go | 19 +
tools/vendor/modules.txt | 414 +-
.../oras.land/oras-go/pkg/content/oci.go | 5 +-
.../konnectivity-client/pkg/client/client.go | 19 +-
.../pkg/client/metrics/metrics.go | 2 +
.../tools/setup-envtest/README.md | 4 +-
.../crd/markers/zz_generated.markerhelp.go | 1 -
.../pkg/crd/zz_generated.markerhelp.go | 1 -
.../controller-tools/pkg/deepcopy/gen.go | 1 -
.../controller-tools/pkg/deepcopy/traverse.go | 3 +-
.../pkg/deepcopy/zz_generated.markerhelp.go | 1 -
.../pkg/genall/zz_generated.markerhelp.go | 1 -
.../pkg/rbac/zz_generated.markerhelp.go | 1 -
.../schemapatcher/zz_generated.markerhelp.go | 1 -
.../controller-tools/pkg/webhook/parser.go | 85 +-
.../pkg/webhook/zz_generated.markerhelp.go | 5 +-
.../kustomize/api/filters/imagetag/updater.go | 2 +-
.../kustomize/api/filters/nameref/nameref.go | 8 +-
.../api/filters/namespace/namespace.go | 20 +-
.../filters/patchjson6902/patchjson6902.go | 2 +-
.../api/filters/replacement/replacement.go | 75 +-
.../sigs.k8s.io/kustomize/api/ifc/ifc.go | 8 +
.../accumulator/loadconfigfromcrds.go | 4 +-
.../internal/accumulator/resaccumulator.go | 3 +-
.../builtins/AnnotationsTransformer.go | 2 +-
.../internal/builtins/ConfigMapGenerator.go | 2 +-
.../api/internal/builtins/HashTransformer.go | 2 +-
.../builtins/HelmChartInflationGenerator.go | 114 +-
.../internal/builtins/IAMPolicyGenerator.go | 2 +-
.../internal/builtins/ImageTagTransformer.go | 2 +-
.../api/internal/builtins/LabelTransformer.go | 2 +-
.../builtins/LegacyOrderTransformer.go | 46 -
.../internal/builtins/NamespaceTransformer.go | 2 +-
.../builtins/PatchJson6902Transformer.go | 8 +-
.../PatchStrategicMergeTransformer.go | 2 +-
.../api/internal/builtins/PatchTransformer.go | 146 +-
.../internal/builtins/PrefixTransformer.go | 2 +-
.../builtins/ReplacementTransformer.go | 2 +-
.../builtins/ReplicaCountTransformer.go | 2 +-
.../api/internal/builtins/SecretGenerator.go | 2 +-
.../internal/builtins/SortOrderTransformer.go | 244 +
.../internal/builtins/SuffixTransformer.go | 2 +-
.../internal/builtins/ValueAddTransformer.go | 2 +-
.../api/internal/generators/utils.go | 27 +
.../kustomize/api/internal/git/cloner.go | 8 +-
.../kustomize/api/internal/git/gitrunner.go | 8 +-
.../kustomize/api/internal/git/repospec.go | 372 +-
.../api/{ => internal}/image/image.go | 0
.../builtinpluginconsts/commonannotations.go | 0
.../builtinpluginconsts/commonlabels.go | 48 +-
.../builtinpluginconsts/defaultconfig.go | 2 +
.../konfig/builtinpluginconsts/doc.go | 0
.../konfig/builtinpluginconsts/images.go | 0
.../builtinpluginconsts/metadatalabels.go | 51 +
.../konfig/builtinpluginconsts/nameprefix.go | 0
.../builtinpluginconsts/namereference.go | 0
.../konfig/builtinpluginconsts/namespace.go | 0
.../konfig/builtinpluginconsts/namesuffix.go | 0
.../konfig/builtinpluginconsts/replicas.go | 0
.../builtinpluginconsts/templatelabels.go | 8 +
.../builtinpluginconsts/varreference.go | 0
.../api/{ => internal}/loader/errors.go | 0
.../api/{ => internal}/loader/fileloader.go | 168 +-
.../api/{ => internal}/loader/loader.go | 0
.../{ => internal}/loader/loadrestrictions.go | 0
.../api/internal/localizer/builtinplugins.go | 152 +
.../kustomize/api/internal/localizer/doc.go | 7 +
.../api/internal/localizer/errors.go | 27 +
.../api/internal/localizer/localizer.go | 613 +
.../api/internal/localizer/locloader.go | 135 +
.../kustomize/api/internal/localizer/util.go | 218 +
.../builtinconfig/namebackreferences.go | 15 +-
.../builtinconfig/transformerconfig.go | 71 +-
.../builtinplugintype_string.go | 29 +-
.../plugins/builtinhelpers/builtins.go | 5 +-
.../internal/plugins/execplugin/execplugin.go | 13 +-
.../api/internal/plugins/fnplugin/fnplugin.go | 15 +-
.../api/internal/plugins/loader/loader.go | 55 +-
.../target/errmissingkustomization.go | 10 +-
.../api/internal/target/kusttarget.go | 99 +-
.../target/kusttarget_configplugin.go | 8 +-
.../api/internal/utils/errtimeout.go | 13 +-
.../api/internal/utils/makeResIds.go | 13 +-
.../kustomize/api/internal/utils/timedcall.go | 2 +-
.../kustomize/api/krusty/kustomizer.go | 58 +-
.../kustomize/api/krusty/localizer/runner.go | 17 +
.../kustomize/api/krusty/options.go | 30 +-
.../vendor/sigs.k8s.io/kustomize/api/kv/kv.go | 56 +-
.../kustomize/api/pkg/loader/loader.go | 24 +
.../kustomize/api/provenance/provenance.go | 58 +-
.../kustomize/api/resmap/factory.go | 6 +-
.../kustomize/api/resmap/reswrangler.go | 9 +-
.../kustomize/api/resource/factory.go | 20 +-
.../kustomize/api/resource/origin.go | 2 +-
.../kustomize/api/resource/resource.go | 11 +-
.../api/types/erronlybuiltinpluginsallowed.go | 10 +-
.../kustomize/api/types/errunabletofind.go | 10 +-
.../kustomize/api/types/fieldspec.go | 9 +
.../sigs.k8s.io/kustomize/api/types/fix.go | 54 -
.../kustomize/api/types/generatorargs.go | 2 +-
.../kustomize/api/types/helmchartargs.go | 74 +-
.../kustomize/api/types/inventory.go | 16 -
.../kustomize/api/types/kustomization.go | 115 +-
.../kustomize/api/types/pluginconfig.go | 6 +-
.../kustomize/api/types/sortoptions.go | 28 +
.../kustomize/cmd/config/configcobra/cfg.go | 11 +-
.../kustomize/cmd/config/configcobra/cmds.go | 27 +-
.../kustomize/cmd/config/configcobra/fn.go | 7 +-
.../cmd/config/internal/commands/annotate.go | 147 -
.../internal/commands/cmdcreatesetter.go | 230 -
.../commands/cmdcreatesubstitution.go | 104 -
.../internal/commands/cmddeletesetter.go | 102 -
.../commands/cmddeletesubstitution.go | 98 -
.../cmd/config/internal/commands/cmdinit.go | 63 -
.../internal/commands/cmdlistsetters.go | 193 -
.../cmd/config/internal/commands/cmdset.go | 140 -
.../cmd/config/internal/commands/cmdwrap.go | 148 -
.../cmd/config/internal/commands/cmdxargs.go | 234 -
.../cmd/config/internal/commands/fmt.go | 134 -
.../cmd/config/internal/commands/grep.go | 3 +-
.../cmd/config/internal/commands/merge.go | 71 -
.../cmd/config/internal/commands/merge3.go | 63 -
.../cmd/config/internal/commands/sink.go | 64 -
.../cmd/config/internal/commands/source.go | 91 -
.../config/internal/generateddocs/api/docs.go | 4 +-
.../kustomize/cmd/config/runner/runner.go | 1 -
.../v4/commands/build/reorderoutput.go | 54 -
.../v4/commands/build/reorderoutput_string.go | 25 -
.../v4/commands/edit/add/flagsandargs.go | 107 -
.../kustomize/v4/commands/version/version.go | 33 -
.../kustomize/kustomize/{v4 => v5}/LICENSE | 0
.../{v4 => v5}/commands/build/build.go | 34 +-
.../commands/build/flagaddmanagedby.go | 0
.../commands/build/flagenablehelm.go | 10 +
.../commands/build/flagenableplugins.go | 0
.../commands/build/flagloadrestrictor.go | 0
.../commands/build/flagoutputpath.go | 0
.../commands/build/flagsforfunctions.go | 0
.../v5/commands/build/reorderoutput.go | 50 +
.../{v4 => v5}/commands/build/writer.go | 0
.../kustomize/{v4 => v5}/commands/commands.go | 12 +-
.../{v4 => v5}/commands/create/create.go | 10 +-
.../{v4 => v5}/commands/edit/add/addbase.go | 2 +-
.../commands/edit/add/addbuildmetadata.go | 4 +-
.../commands/edit/add/addcomponent.go | 10 +-
.../commands/edit/add/addconfigmap.go} | 146 +-
.../commands/edit/add/addgenerator.go | 6 +-
.../commands/edit/add/addmetadata.go | 20 +-
.../{v4 => v5}/commands/edit/add/addpatch.go | 4 +-
.../commands/edit/add/addresource.go | 14 +-
.../commands/edit/add/addsecret.go} | 124 +-
.../commands/edit/add/addtransformer.go | 6 +-
.../{v4 => v5}/commands/edit/add/all.go | 2 +-
.../kustomize/{v4 => v5}/commands/edit/all.go | 19 +-
.../{v4 => v5}/commands/edit/fix/convert.go | 8 +-
.../{v4 => v5}/commands/edit/fix/fix.go | 11 +-
.../commands/edit/listbuiltin/listbuiltin.go | 0
.../{v4 => v5}/commands/edit/remove/all.go | 10 +-
.../edit/remove/removebuildmetadata.go | 4 +-
.../commands/edit/remove/removeconfigmap.go | 117 +
.../commands/edit/remove/removemetadata.go | 2 +-
.../commands/edit/remove/removepatch.go | 6 +-
.../commands/edit/remove/removeresource.go | 2 +-
.../v5/commands/edit/remove/removesecret.go | 117 +
.../commands/edit/remove/removetransformer.go | 2 +-
.../{v4 => v5}/commands/edit/set/all.go | 11 +-
.../commands/edit/set/set_name_prefix.go | 4 +-
.../commands/edit/set/set_name_suffix.go | 4 +-
.../commands/edit/set/setannotation.go | 4 +-
.../commands/edit/set/setbuildmetadata.go | 4 +-
.../v5/commands/edit/set/setconfigmap.go | 151 +
.../{v4 => v5}/commands/edit/set/setimage.go | 2 +-
.../{v4 => v5}/commands/edit/set/setlabel.go | 4 +-
.../commands/edit/set/setnamespace.go | 2 +-
.../commands/edit/set/setreplicas.go | 2 +-
.../internal/kustfile/kustomizationfile.go | 29 +-
.../util/configmapSecretFlagsAndArgs.go | 217 +
.../{v4 => v5}/commands/internal/util/util.go | 60 +-
.../commands/internal/util/validate.go | 2 +-
.../v5/commands/localize/localize.go | 94 +
.../commands/openapi/fetch/fetch.go | 0
.../{v4 => v5}/commands/openapi/info/info.go | 0
.../{v4 => v5}/commands/openapi/openapi.go | 4 +-
.../kustomize/v5/commands/version/version.go | 86 +
.../kustomize/kustomize/{v4 => v5}/main.go | 2 +-
.../kustomize/kyaml/errors/errors.go | 10 +
.../kustomize/kyaml/filesys/confirmeddir.go | 6 +-
.../kustomize/kyaml/filesys/fsondisk.go | 12 +-
.../kustomize/kyaml/filesys/util.go | 42 +-
.../kustomize/kyaml/fn/runtime/exec/exec.go | 2 +-
.../fn/runtime/runtimeutil/functiontypes.go | 50 +-
.../fn/runtime/runtimeutil/runtimeutil.go | 4 +-
.../kyaml/fn/runtime/starlark/starlark.go | 6 +-
.../github.com/qri-io/starlib/util/util.go | 6 +-
.../kustomize/kyaml/kio/byteio_writer.go | 2 +-
.../kustomize/kyaml/krmfile/doc.go | 19 -
.../kustomize/kyaml/krmfile/krmfile.go | 10 -
.../kustomize/kyaml/openapi/Makefile | 18 +-
.../kustomize/kyaml/openapi/README.md | 46 +-
.../openapi/kubernetesapi/openapiinfo.go | 6 +-
.../openapi/kubernetesapi/v1212/swagger.go | 249 -
.../openapi/kubernetesapi/v1_21_2/swagger.go | 249 +
.../{v1212 => v1_21_2}/swagger.pb | 60072 ++++++++--------
.../kyaml/openapi/kustomizationapi/swagger.go | 3 +-
.../kustomize/kyaml/openapi/openapi.go | 140 +-
.../sigs.k8s.io/kustomize/kyaml/resid/gvk.go | 33 +-
.../kustomize/kyaml/resid/resid.go | 19 -
.../kustomize/kyaml/runfn/runfn.go | 5 +-
.../kustomize/kyaml/sets/string.go | 2 +-
.../kustomize/kyaml/setters2/add.go | 302 -
.../kustomize/kyaml/setters2/delete.go | 171 -
.../kustomize/kyaml/setters2/doc.go | 163 -
.../kustomize/kyaml/setters2/list.go | 195 -
.../kustomize/kyaml/setters2/set.go | 540 -
.../setters2/settersutil/deletercreator.go | 55 -
.../kyaml/setters2/settersutil/fieldsetter.go | 139 -
.../setters2/settersutil/settercreator.go | 209 -
.../settersutil/substitutioncreator.go | 466 -
.../kustomize/kyaml/setters2/types.go | 74 -
.../kustomize/kyaml/setters2/util.go | 31 -
.../kustomize/kyaml/setters2/walk.go | 124 -
.../kustomize/kyaml/utils/pathsplitter.go | 7 +
.../sigs.k8s.io/kustomize/kyaml/yaml/alias.go | 12 +-
.../kustomize/kyaml/yaml/compatibility.go | 6 +-
.../kustomize/kyaml/yaml/filters.go | 2 +-
.../sigs.k8s.io/kustomize/kyaml/yaml/fns.go | 138 +-
.../sigs.k8s.io/kustomize/kyaml/yaml/kfns.go | 2 +-
.../sigs.k8s.io/kustomize/kyaml/yaml/match.go | 92 +-
.../kustomize/kyaml/yaml/merge2/merge2.go | 10 +-
.../sigs.k8s.io/kustomize/kyaml/yaml/rnode.go | 216 +-
.../sigs.k8s.io/kustomize/kyaml/yaml/types.go | 63 +-
.../kyaml/yaml/walk/associative_sequence.go | 2 +-
.../kustomize/kyaml/yaml/walk/map.go | 21 +-
tools/vendor/sigs.k8s.io/yaml/LICENSE | 256 +
tools/vendor/sigs.k8s.io/yaml/OWNERS | 8 +-
tools/vendor/sigs.k8s.io/yaml/fields.go | 55 +-
.../vendor/sigs.k8s.io/yaml/goyaml.v2/LICENSE | 201 +
.../yaml/goyaml.v2/LICENSE.libyaml | 31 +
.../go-yaml/yaml => yaml/goyaml.v2}/NOTICE | 0
.../vendor/sigs.k8s.io/yaml/goyaml.v2/OWNERS | 24 +
.../sigs.k8s.io/yaml/goyaml.v2/README.md | 143 +
.../vendor/sigs.k8s.io/yaml/goyaml.v2/apic.go | 744 +
.../sigs.k8s.io/yaml/goyaml.v2/decode.go | 815 +
.../sigs.k8s.io/yaml/goyaml.v2/emitterc.go | 1685 +
.../sigs.k8s.io/yaml/goyaml.v2/encode.go | 390 +
.../sigs.k8s.io/yaml/goyaml.v2/parserc.go | 1095 +
.../sigs.k8s.io/yaml/goyaml.v2/readerc.go | 412 +
.../sigs.k8s.io/yaml/goyaml.v2/resolve.go | 258 +
.../sigs.k8s.io/yaml/goyaml.v2/scannerc.go | 2711 +
.../sigs.k8s.io/yaml/goyaml.v2/sorter.go | 113 +
.../sigs.k8s.io/yaml/goyaml.v2/writerc.go | 26 +
.../vendor/sigs.k8s.io/yaml/goyaml.v2/yaml.go | 478 +
.../sigs.k8s.io/yaml/goyaml.v2/yamlh.go | 739 +
.../yaml/goyaml.v2/yamlprivateh.go | 173 +
.../go-yaml/yaml => yaml/goyaml.v3}/LICENSE | 0
.../vendor/sigs.k8s.io/yaml/goyaml.v3/NOTICE | 13 +
.../vendor/sigs.k8s.io/yaml/goyaml.v3/OWNERS | 24 +
.../go-yaml/yaml => yaml/goyaml.v3}/README.md | 10 +
.../go-yaml/yaml => yaml/goyaml.v3}/apic.go | 0
.../go-yaml/yaml => yaml/goyaml.v3}/decode.go | 78 +-
.../yaml => yaml/goyaml.v3}/emitterc.go | 57 +-
.../go-yaml/yaml => yaml/goyaml.v3}/encode.go | 0
.../yaml => yaml/goyaml.v3}/parserc.go | 11 +-
.../sigs.k8s.io/yaml/goyaml.v3/patch.go | 39 +
.../yaml => yaml/goyaml.v3}/readerc.go | 0
.../yaml => yaml/goyaml.v3}/resolve.go | 0
.../yaml => yaml/goyaml.v3}/scannerc.go | 0
.../go-yaml/yaml => yaml/goyaml.v3}/sorter.go | 0
.../yaml => yaml/goyaml.v3}/writerc.go | 0
.../go-yaml/yaml => yaml/goyaml.v3}/yaml.go | 10 -
.../go-yaml/yaml => yaml/goyaml.v3}/yamlh.go | 0
.../yaml => yaml/goyaml.v3}/yamlprivateh.go | 0
tools/vendor/sigs.k8s.io/yaml/yaml.go | 145 +-
tools/vendor/sigs.k8s.io/yaml/yaml_go110.go | 17 +
1913 files changed, 195328 insertions(+), 92952 deletions(-)
create mode 100644 tools/vendor/github.com/AdaLogics/go-fuzz-headers/LICENSE
create mode 100644 tools/vendor/github.com/AdaLogics/go-fuzz-headers/README.md
create mode 100644 tools/vendor/github.com/AdaLogics/go-fuzz-headers/consumer.go
create mode 100644 tools/vendor/github.com/AdaLogics/go-fuzz-headers/funcs.go
create mode 100644 tools/vendor/github.com/AdaLogics/go-fuzz-headers/sql.go
create mode 100644 tools/vendor/github.com/Azure/go-ansiterm/SECURITY.md
create mode 100644 tools/vendor/github.com/Microsoft/go-winio/internal/fs/doc.go
create mode 100644 tools/vendor/github.com/Microsoft/go-winio/internal/fs/fs.go
create mode 100644 tools/vendor/github.com/Microsoft/go-winio/internal/fs/security.go
create mode 100644 tools/vendor/github.com/Microsoft/go-winio/internal/fs/zsyscall_windows.go
create mode 100644 tools/vendor/github.com/Microsoft/go-winio/internal/stringbuffer/wstring.go
create mode 100644 tools/vendor/github.com/Microsoft/go-winio/tools/mkwinsyscall/doc.go
create mode 100644 tools/vendor/github.com/Microsoft/go-winio/tools/mkwinsyscall/mkwinsyscall.go
create mode 100644 tools/vendor/github.com/Microsoft/hcsshim/SECURITY.md
delete mode 100644 tools/vendor/github.com/Microsoft/hcsshim/functional_tests.ps1
create mode 100644 tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/doc.go
create mode 100644 tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/debug_options.go
create mode 100644 tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/isolation_settings.go
create mode 100644 tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/security_settings.go
create mode 100644 tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/system_time.go
create mode 100644 tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/time_zone_information.go
create mode 100644 tools/vendor/github.com/Microsoft/hcsshim/internal/hcserror/doc.go
create mode 100644 tools/vendor/github.com/Microsoft/hcsshim/internal/hns/doc.go
create mode 100644 tools/vendor/github.com/Microsoft/hcsshim/internal/interop/doc.go
create mode 100644 tools/vendor/github.com/Microsoft/hcsshim/internal/jobobject/doc.go
create mode 100644 tools/vendor/github.com/Microsoft/hcsshim/internal/log/context.go
delete mode 100644 tools/vendor/github.com/Microsoft/hcsshim/internal/log/g.go
create mode 100644 tools/vendor/github.com/Microsoft/hcsshim/internal/log/hook.go
create mode 100644 tools/vendor/github.com/Microsoft/hcsshim/internal/log/scrub.go
create mode 100644 tools/vendor/github.com/Microsoft/hcsshim/internal/memory/pool.go
create mode 100644 tools/vendor/github.com/Microsoft/hcsshim/internal/memory/types.go
create mode 100644 tools/vendor/github.com/Microsoft/hcsshim/internal/protocol/guestrequest/types.go
create mode 100644 tools/vendor/github.com/Microsoft/hcsshim/internal/safefile/do.go
rename tools/vendor/github.com/Microsoft/{go-winio/pkg => hcsshim/internal}/security/grantvmgroupaccess.go (63%)
rename tools/vendor/github.com/Microsoft/{go-winio/pkg => hcsshim/internal}/security/syscall_windows.go (100%)
rename tools/vendor/github.com/Microsoft/{go-winio/pkg => hcsshim/internal}/security/zsyscall_windows.go (100%)
create mode 100644 tools/vendor/github.com/Microsoft/hcsshim/internal/vmcompute/doc.go
create mode 100644 tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/baselayerreader.go
rename tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/{baselayer.go => baselayerwriter.go} (99%)
create mode 100644 tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/converttobaselayer.go
create mode 100644 tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/doc.go
create mode 100644 tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/bindflt.go
create mode 100644 tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/doc.go
create mode 100644 tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/elevation.go
create mode 100644 tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/ofreg.go
create mode 100644 tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/user.go
create mode 100644 tools/vendor/github.com/Microsoft/hcsshim/pkg/ociwclayer/doc.go
create mode 100644 tools/vendor/github.com/Microsoft/hcsshim/tools.go
rename tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/LICENSE (100%)
create mode 100644 tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/antlrdoc.go
rename tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/atn.go (72%)
rename tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/atn_config.go (84%)
rename tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/atn_config_set.go (81%)
rename tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/atn_deserialization_options.go (96%)
rename tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/atn_deserializer.go (99%)
rename tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/atn_simulator.go (94%)
rename tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/atn_state.go (97%)
rename tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/atn_type.go (79%)
rename tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/char_stream.go (82%)
rename tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/common_token_factory.go (96%)
rename tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/common_token_stream.go (98%)
create mode 100644 tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/comparators.go
rename tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/dfa.go (80%)
rename tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/dfa_serializer.go (97%)
rename tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/dfa_state.go (90%)
rename tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/diagnostic_error_listener.go (98%)
rename tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/error_listener.go (98%)
rename tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/error_strategy.go (99%)
rename tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/errors.go (98%)
rename tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/file_stream.go (92%)
rename tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/input_stream.go (96%)
rename tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/int_stream.go (82%)
rename tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/interval_set.go (98%)
create mode 100644 tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/jcollect.go
rename tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/lexer.go (98%)
rename tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/lexer_action.go (91%)
rename tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/lexer_action_executor.go (88%)
rename tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/lexer_atn_simulator.go (98%)
rename tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/ll1_analyzer.go (87%)
rename tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/parser.go (99%)
rename tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/parser_atn_simulator.go (94%)
rename tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/parser_rule_context.go (98%)
rename tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/prediction_context.go (81%)
rename tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/prediction_mode.go (95%)
rename tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/recognizer.go (92%)
rename tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/rule_context.go (97%)
rename tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/semantic_context.go (85%)
rename tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/token.go (98%)
rename tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/token_source.go (85%)
rename tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/token_stream.go (87%)
rename tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/tokenstream_rewriter.go (58%)
rename tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/trace_listener.go (93%)
rename tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/transition.go (99%)
rename tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/tree.go (98%)
rename tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/trees.go (93%)
rename tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/utils.go (94%)
rename tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/utils_set.go (80%)
delete mode 100644 tools/vendor/github.com/cenkalti/backoff/v4/.travis.yml
create mode 100644 tools/vendor/github.com/cespare/xxhash/v2/testall.sh
create mode 100644 tools/vendor/github.com/cespare/xxhash/v2/xxhash_arm64.s
rename tools/vendor/github.com/cespare/xxhash/v2/{xxhash_amd64.go => xxhash_asm.go} (73%)
create mode 100644 tools/vendor/github.com/containerd/containerd/api/events/container.pb.go
create mode 100644 tools/vendor/github.com/containerd/containerd/api/events/container.proto
create mode 100644 tools/vendor/github.com/containerd/containerd/api/events/container_fieldpath.pb.go
create mode 100644 tools/vendor/github.com/containerd/containerd/api/events/content.pb.go
create mode 100644 tools/vendor/github.com/containerd/containerd/api/events/content.proto
create mode 100644 tools/vendor/github.com/containerd/containerd/api/events/content_fieldpath.pb.go
create mode 100644 tools/vendor/github.com/containerd/containerd/api/events/doc.go
create mode 100644 tools/vendor/github.com/containerd/containerd/api/events/image.pb.go
create mode 100644 tools/vendor/github.com/containerd/containerd/api/events/image.proto
create mode 100644 tools/vendor/github.com/containerd/containerd/api/events/image_fieldpath.pb.go
create mode 100644 tools/vendor/github.com/containerd/containerd/api/events/namespace.pb.go
create mode 100644 tools/vendor/github.com/containerd/containerd/api/events/namespace.proto
create mode 100644 tools/vendor/github.com/containerd/containerd/api/events/namespace_fieldpath.pb.go
create mode 100644 tools/vendor/github.com/containerd/containerd/api/events/snapshot.pb.go
create mode 100644 tools/vendor/github.com/containerd/containerd/api/events/snapshot.proto
create mode 100644 tools/vendor/github.com/containerd/containerd/api/events/snapshot_fieldpath.pb.go
create mode 100644 tools/vendor/github.com/containerd/containerd/api/events/task.pb.go
create mode 100644 tools/vendor/github.com/containerd/containerd/api/events/task.proto
create mode 100644 tools/vendor/github.com/containerd/containerd/api/events/task_fieldpath.pb.go
create mode 100644 tools/vendor/github.com/containerd/containerd/api/runtime/sandbox/v1/doc.go
create mode 100644 tools/vendor/github.com/containerd/containerd/api/runtime/sandbox/v1/sandbox.pb.go
create mode 100644 tools/vendor/github.com/containerd/containerd/api/runtime/sandbox/v1/sandbox.proto
create mode 100644 tools/vendor/github.com/containerd/containerd/api/runtime/sandbox/v1/sandbox_grpc.pb.go
create mode 100644 tools/vendor/github.com/containerd/containerd/api/runtime/sandbox/v1/sandbox_ttrpc.pb.go
create mode 100644 tools/vendor/github.com/containerd/containerd/api/types/descriptor.pb.go
create mode 100644 tools/vendor/github.com/containerd/containerd/api/types/descriptor.proto
rename tools/vendor/github.com/containerd/containerd/{mount/subprocess_unsafe_linux.s => api/types/doc.go} (97%)
create mode 100644 tools/vendor/github.com/containerd/containerd/api/types/metrics.pb.go
create mode 100644 tools/vendor/github.com/containerd/containerd/api/types/metrics.proto
create mode 100644 tools/vendor/github.com/containerd/containerd/api/types/mount.pb.go
create mode 100644 tools/vendor/github.com/containerd/containerd/api/types/mount.proto
create mode 100644 tools/vendor/github.com/containerd/containerd/api/types/platform.pb.go
create mode 100644 tools/vendor/github.com/containerd/containerd/api/types/platform.proto
create mode 100644 tools/vendor/github.com/containerd/containerd/api/types/sandbox.pb.go
create mode 100644 tools/vendor/github.com/containerd/containerd/api/types/sandbox.proto
rename tools/vendor/github.com/containerd/containerd/{mount/subprocess_unsafe_linux.go => archive/compression/compression_fuzzer.go} (68%)
rename tools/vendor/github.com/containerd/containerd/{sys/userns_deprecated.go => archive/link_default.go} (68%)
create mode 100644 tools/vendor/github.com/containerd/containerd/archive/link_freebsd.go
create mode 100644 tools/vendor/github.com/containerd/containerd/archive/tarheader/tarheader.go
create mode 100644 tools/vendor/github.com/containerd/containerd/archive/tarheader/tarheader_unix.go
create mode 100644 tools/vendor/github.com/containerd/containerd/content/local/content_local_fuzzer.go
rename tools/vendor/github.com/containerd/containerd/{sys/fds.go => content/local/test_helper.go} (65%)
create mode 100644 tools/vendor/github.com/containerd/containerd/events/events.go
create mode 100644 tools/vendor/github.com/containerd/containerd/metadata/sandbox.go
delete mode 100644 tools/vendor/github.com/containerd/containerd/mount/fmountat_linux.go
create mode 100644 tools/vendor/github.com/containerd/containerd/mount/mount_unsupported.go
create mode 100644 tools/vendor/github.com/containerd/containerd/pkg/cleanup/context.go
create mode 100644 tools/vendor/github.com/containerd/containerd/pkg/epoch/context.go
create mode 100644 tools/vendor/github.com/containerd/containerd/pkg/epoch/epoch.go
create mode 100644 tools/vendor/github.com/containerd/containerd/pkg/randutil/randutil.go
create mode 100644 tools/vendor/github.com/containerd/containerd/platforms/cpuinfo_linux.go
create mode 100644 tools/vendor/github.com/containerd/containerd/platforms/cpuinfo_other.go
create mode 100644 tools/vendor/github.com/containerd/containerd/platforms/defaults_freebsd.go
rename tools/vendor/github.com/containerd/{continuity/fs/copy_freebsd.go => containerd/platforms/platforms_other.go} (67%)
create mode 100644 tools/vendor/github.com/containerd/containerd/platforms/platforms_windows.go
create mode 100644 tools/vendor/github.com/containerd/containerd/protobuf/any.go
rename tools/vendor/github.com/containerd/containerd/{sys/socket_windows.go => protobuf/compare.go} (58%)
create mode 100644 tools/vendor/github.com/containerd/containerd/protobuf/plugin/doc.go
create mode 100644 tools/vendor/github.com/containerd/containerd/protobuf/plugin/fieldpath.pb.go
rename tools/vendor/github.com/{gogo/protobuf/types/doc.go => containerd/containerd/protobuf/plugin/fieldpath.proto} (74%)
rename tools/vendor/github.com/containerd/{continuity/fs/copy_device_unix.go => containerd/protobuf/proto/proto.go} (64%)
create mode 100644 tools/vendor/github.com/containerd/containerd/protobuf/timestamp.go
rename tools/vendor/github.com/containerd/{continuity/fs/copy_darwin.go => containerd/protobuf/types/types.go} (63%)
create mode 100644 tools/vendor/github.com/containerd/containerd/reference/docker/helpers.go
create mode 100644 tools/vendor/github.com/containerd/containerd/reference/docker/normalize.go
create mode 100644 tools/vendor/github.com/containerd/containerd/reference/docker/reference.go
create mode 100644 tools/vendor/github.com/containerd/containerd/reference/docker/regexp.go
create mode 100644 tools/vendor/github.com/containerd/containerd/reference/docker/sort.go
create mode 100644 tools/vendor/github.com/containerd/containerd/remotes/docker/converter_fuzz.go
create mode 100644 tools/vendor/github.com/containerd/containerd/remotes/docker/fetcher_fuzz.go
create mode 100644 tools/vendor/github.com/containerd/containerd/sandbox/bridge.go
create mode 100644 tools/vendor/github.com/containerd/containerd/sandbox/controller.go
create mode 100644 tools/vendor/github.com/containerd/containerd/sandbox/helpers.go
create mode 100644 tools/vendor/github.com/containerd/containerd/sandbox/store.go
delete mode 100644 tools/vendor/github.com/containerd/containerd/sys/epoll.go
delete mode 100644 tools/vendor/github.com/containerd/containerd/sys/filesys_unix.go
delete mode 100644 tools/vendor/github.com/containerd/containerd/sys/filesys_windows.go
delete mode 100644 tools/vendor/github.com/containerd/containerd/sys/oom_linux.go
delete mode 100644 tools/vendor/github.com/containerd/containerd/sys/oom_unsupported.go
delete mode 100644 tools/vendor/github.com/containerd/containerd/sys/socket_unix.go
create mode 100644 tools/vendor/github.com/containerd/containerd/tracing/helpers.go
create mode 100644 tools/vendor/github.com/containerd/containerd/tracing/log.go
create mode 100644 tools/vendor/github.com/containerd/containerd/tracing/tracing.go
create mode 100644 tools/vendor/github.com/containerd/continuity/fs/copy_irregular_freebsd.go
create mode 100644 tools/vendor/github.com/containerd/continuity/fs/copy_irregular_unix.go
delete mode 100644 tools/vendor/github.com/containerd/continuity/sysx/generate.sh
create mode 100644 tools/vendor/github.com/containerd/ttrpc/.gitattributes
create mode 100644 tools/vendor/github.com/containerd/ttrpc/.golangci.yml
create mode 100644 tools/vendor/github.com/containerd/ttrpc/Makefile
create mode 100644 tools/vendor/github.com/containerd/ttrpc/PROTOCOL.md
create mode 100644 tools/vendor/github.com/containerd/ttrpc/Protobuild.toml
create mode 100644 tools/vendor/github.com/containerd/ttrpc/doc.go
create mode 100644 tools/vendor/github.com/containerd/ttrpc/errors.go
create mode 100644 tools/vendor/github.com/containerd/ttrpc/request.pb.go
create mode 100644 tools/vendor/github.com/containerd/ttrpc/request.proto
create mode 100644 tools/vendor/github.com/containerd/ttrpc/stream.go
create mode 100644 tools/vendor/github.com/containerd/ttrpc/stream_server.go
create mode 100644 tools/vendor/github.com/containerd/ttrpc/test.proto
delete mode 100644 tools/vendor/github.com/containerd/ttrpc/types.go
create mode 100644 tools/vendor/github.com/containerd/typeurl/v2/.gitignore
create mode 100644 tools/vendor/github.com/containerd/typeurl/v2/LICENSE
create mode 100644 tools/vendor/github.com/containerd/typeurl/v2/README.md
create mode 100644 tools/vendor/github.com/containerd/typeurl/v2/doc.go
create mode 100644 tools/vendor/github.com/containerd/typeurl/v2/types.go
create mode 100644 tools/vendor/github.com/docker/distribution/.dockerignore
delete mode 100644 tools/vendor/github.com/gogo/protobuf/types/any.go
delete mode 100644 tools/vendor/github.com/gogo/protobuf/types/any.pb.go
delete mode 100644 tools/vendor/github.com/gogo/protobuf/types/api.pb.go
delete mode 100644 tools/vendor/github.com/gogo/protobuf/types/duration.go
delete mode 100644 tools/vendor/github.com/gogo/protobuf/types/duration.pb.go
delete mode 100644 tools/vendor/github.com/gogo/protobuf/types/duration_gogo.go
delete mode 100644 tools/vendor/github.com/gogo/protobuf/types/empty.pb.go
delete mode 100644 tools/vendor/github.com/gogo/protobuf/types/field_mask.pb.go
delete mode 100644 tools/vendor/github.com/gogo/protobuf/types/protosize.go
delete mode 100644 tools/vendor/github.com/gogo/protobuf/types/source_context.pb.go
delete mode 100644 tools/vendor/github.com/gogo/protobuf/types/struct.pb.go
delete mode 100644 tools/vendor/github.com/gogo/protobuf/types/timestamp.go
delete mode 100644 tools/vendor/github.com/gogo/protobuf/types/timestamp.pb.go
delete mode 100644 tools/vendor/github.com/gogo/protobuf/types/timestamp_gogo.go
delete mode 100644 tools/vendor/github.com/gogo/protobuf/types/type.pb.go
delete mode 100644 tools/vendor/github.com/gogo/protobuf/types/wrappers.pb.go
delete mode 100644 tools/vendor/github.com/gogo/protobuf/types/wrappers_gogo.go
create mode 100644 tools/vendor/github.com/golang-migrate/migrate/v4/source/errors.go
create mode 100644 tools/vendor/github.com/golang-migrate/migrate/v4/source/iofs/README.md
create mode 100644 tools/vendor/github.com/golang-migrate/migrate/v4/source/iofs/doc.go
create mode 100644 tools/vendor/github.com/golang-migrate/migrate/v4/source/iofs/iofs.go
create mode 100644 tools/vendor/github.com/golang-migrate/migrate/v4/source/iofs/testdata/migrations/1_foobar.down.sql
create mode 100644 tools/vendor/github.com/golang-migrate/migrate/v4/source/iofs/testdata/migrations/1_foobar.up.sql
create mode 100644 tools/vendor/github.com/golang-migrate/migrate/v4/source/iofs/testdata/migrations/3_foobar.up.sql
create mode 100644 tools/vendor/github.com/golang-migrate/migrate/v4/source/iofs/testdata/migrations/4_foobar.down.sql
create mode 100644 tools/vendor/github.com/golang-migrate/migrate/v4/source/iofs/testdata/migrations/4_foobar.up.sql
create mode 100644 tools/vendor/github.com/golang-migrate/migrate/v4/source/iofs/testdata/migrations/5_foobar.down.sql
create mode 100644 tools/vendor/github.com/golang-migrate/migrate/v4/source/iofs/testdata/migrations/7_foobar.down.sql
create mode 100644 tools/vendor/github.com/golang-migrate/migrate/v4/source/iofs/testdata/migrations/7_foobar.up.sql
create mode 100644 tools/vendor/github.com/google/cel-go/common/types/optional.go
rename tools/vendor/github.com/google/cel-go/{interpreter/coster.go => common/types/traits/zeroer.go} (50%)
create mode 100644 tools/vendor/github.com/google/cel-go/ext/bindings.go
create mode 100644 tools/vendor/github.com/google/cel-go/ext/math.go
create mode 100644 tools/vendor/github.com/google/cel-go/ext/native.go
create mode 100644 tools/vendor/github.com/google/cel-go/ext/protos.go
create mode 100644 tools/vendor/github.com/google/cel-go/ext/sets.go
create mode 100644 tools/vendor/github.com/google/cel-go/interpreter/formatting.go
create mode 100644 tools/vendor/github.com/google/gnostic-models/LICENSE
create mode 100644 tools/vendor/github.com/google/gnostic-models/compiler/README.md
create mode 100644 tools/vendor/github.com/google/gnostic-models/compiler/context.go
create mode 100644 tools/vendor/github.com/google/gnostic-models/compiler/error.go
create mode 100644 tools/vendor/github.com/google/gnostic-models/compiler/extensions.go
create mode 100644 tools/vendor/github.com/google/gnostic-models/compiler/helpers.go
rename tools/vendor/{go.etcd.io/etcd/api/v3/v3rpc/rpctypes/doc.go => github.com/google/gnostic-models/compiler/main.go} (71%)
create mode 100644 tools/vendor/github.com/google/gnostic-models/compiler/reader.go
create mode 100644 tools/vendor/github.com/google/gnostic-models/extensions/README.md
create mode 100644 tools/vendor/github.com/google/gnostic-models/extensions/extension.pb.go
create mode 100644 tools/vendor/github.com/google/gnostic-models/extensions/extension.proto
create mode 100644 tools/vendor/github.com/google/gnostic-models/extensions/extensions.go
create mode 100644 tools/vendor/github.com/google/gnostic-models/jsonschema/README.md
create mode 100644 tools/vendor/github.com/google/gnostic-models/jsonschema/base.go
create mode 100644 tools/vendor/github.com/google/gnostic-models/jsonschema/display.go
create mode 100644 tools/vendor/github.com/google/gnostic-models/jsonschema/models.go
create mode 100644 tools/vendor/github.com/google/gnostic-models/jsonschema/operations.go
create mode 100644 tools/vendor/github.com/google/gnostic-models/jsonschema/reader.go
create mode 100644 tools/vendor/github.com/google/gnostic-models/jsonschema/schema.json
create mode 100644 tools/vendor/github.com/google/gnostic-models/jsonschema/writer.go
create mode 100644 tools/vendor/github.com/google/gnostic-models/openapiv2/OpenAPIv2.go
create mode 100644 tools/vendor/github.com/google/gnostic-models/openapiv2/OpenAPIv2.pb.go
create mode 100644 tools/vendor/github.com/google/gnostic-models/openapiv2/OpenAPIv2.proto
create mode 100644 tools/vendor/github.com/google/gnostic-models/openapiv2/README.md
create mode 100644 tools/vendor/github.com/google/gnostic-models/openapiv2/document.go
create mode 100644 tools/vendor/github.com/google/gnostic-models/openapiv2/openapi-2.0.json
rename tools/vendor/github.com/google/{gnostic => gnostic-models}/openapiv3/OpenAPIv3.go (99%)
rename tools/vendor/github.com/google/{gnostic => gnostic-models}/openapiv3/OpenAPIv3.pb.go (99%)
rename tools/vendor/github.com/google/{gnostic => gnostic-models}/openapiv3/OpenAPIv3.proto (99%)
rename tools/vendor/github.com/google/{gnostic => gnostic-models}/openapiv3/README.md (89%)
rename tools/vendor/github.com/google/{gnostic => gnostic-models}/openapiv3/document.go (96%)
delete mode 100644 tools/vendor/github.com/google/gnostic/openapiv3/annotations.pb.go
delete mode 100644 tools/vendor/github.com/google/gnostic/openapiv3/annotations.proto
delete mode 100644 tools/vendor/github.com/google/gnostic/openapiv3/openapi-3.0.json
delete mode 100644 tools/vendor/github.com/google/gnostic/openapiv3/openapi-3.1.json
create mode 100644 tools/vendor/github.com/google/go-containerregistry/internal/compression/compression.go
create mode 100644 tools/vendor/github.com/google/go-containerregistry/internal/zstd/zstd.go
create mode 100644 tools/vendor/github.com/google/go-containerregistry/pkg/compression/compression.go
create mode 100644 tools/vendor/github.com/google/go-containerregistry/pkg/v1/remote/progress.go
create mode 100644 tools/vendor/github.com/hashicorp/errwrap/LICENSE
create mode 100644 tools/vendor/github.com/hashicorp/errwrap/README.md
create mode 100644 tools/vendor/github.com/hashicorp/errwrap/errwrap.go
create mode 100644 tools/vendor/github.com/hashicorp/go-multierror/LICENSE
create mode 100644 tools/vendor/github.com/hashicorp/go-multierror/Makefile
create mode 100644 tools/vendor/github.com/hashicorp/go-multierror/README.md
create mode 100644 tools/vendor/github.com/hashicorp/go-multierror/append.go
create mode 100644 tools/vendor/github.com/hashicorp/go-multierror/flatten.go
create mode 100644 tools/vendor/github.com/hashicorp/go-multierror/format.go
create mode 100644 tools/vendor/github.com/hashicorp/go-multierror/group.go
create mode 100644 tools/vendor/github.com/hashicorp/go-multierror/multierror.go
create mode 100644 tools/vendor/github.com/hashicorp/go-multierror/prefix.go
create mode 100644 tools/vendor/github.com/hashicorp/go-multierror/sort.go
delete mode 100644 tools/vendor/github.com/huandu/xstrings/.travis.yml
create mode 100644 tools/vendor/github.com/klauspost/compress/huff0/decompress_amd64.go
create mode 100644 tools/vendor/github.com/klauspost/compress/huff0/decompress_amd64.s
create mode 100644 tools/vendor/github.com/klauspost/compress/huff0/decompress_generic.go
create mode 100644 tools/vendor/github.com/klauspost/compress/internal/cpuinfo/cpuinfo.go
create mode 100644 tools/vendor/github.com/klauspost/compress/internal/cpuinfo/cpuinfo_amd64.go
create mode 100644 tools/vendor/github.com/klauspost/compress/internal/cpuinfo/cpuinfo_amd64.s
create mode 100644 tools/vendor/github.com/klauspost/compress/zstd/fse_decoder_amd64.go
create mode 100644 tools/vendor/github.com/klauspost/compress/zstd/fse_decoder_amd64.s
create mode 100644 tools/vendor/github.com/klauspost/compress/zstd/fse_decoder_generic.go
create mode 100644 tools/vendor/github.com/klauspost/compress/zstd/seqdec_amd64.go
create mode 100644 tools/vendor/github.com/klauspost/compress/zstd/seqdec_amd64.s
create mode 100644 tools/vendor/github.com/klauspost/compress/zstd/seqdec_generic.go
create mode 100644 tools/vendor/github.com/mattn/go-sqlite3/sqlite3_opt_math_functions.go
create mode 100644 tools/vendor/github.com/mattn/go-sqlite3/sqlite3_opt_os_trace.go
create mode 100644 tools/vendor/github.com/moby/sys/mountinfo/mountinfo_freebsdlike.go
create mode 100644 tools/vendor/github.com/moby/sys/mountinfo/mountinfo_openbsd.go
rename tools/vendor/{go.etcd.io/etcd/api/v3 => github.com/moby/sys/sequential}/LICENSE (100%)
create mode 100644 tools/vendor/github.com/moby/sys/sequential/doc.go
create mode 100644 tools/vendor/github.com/moby/sys/sequential/sequential_unix.go
create mode 100644 tools/vendor/github.com/moby/sys/sequential/sequential_windows.go
create mode 100644 tools/vendor/github.com/moby/term/doc.go
delete mode 100644 tools/vendor/github.com/moby/term/tc.go
create mode 100644 tools/vendor/github.com/moby/term/term_unix.go
rename tools/vendor/github.com/moby/term/{termios.go => termios_unix.go} (50%)
create mode 100644 tools/vendor/github.com/moby/term/termios_windows.go
delete mode 100644 tools/vendor/github.com/moby/term/winsize.go
delete mode 100644 tools/vendor/github.com/olekukonko/tablewriter/.gitignore
delete mode 100644 tools/vendor/github.com/olekukonko/tablewriter/.travis.yml
delete mode 100644 tools/vendor/github.com/olekukonko/tablewriter/LICENSE.md
delete mode 100644 tools/vendor/github.com/olekukonko/tablewriter/README.md
delete mode 100644 tools/vendor/github.com/olekukonko/tablewriter/csv.go
delete mode 100644 tools/vendor/github.com/olekukonko/tablewriter/table.go
delete mode 100644 tools/vendor/github.com/olekukonko/tablewriter/table_with_color.go
delete mode 100644 tools/vendor/github.com/olekukonko/tablewriter/util.go
delete mode 100644 tools/vendor/github.com/olekukonko/tablewriter/wrap.go
create mode 100644 tools/vendor/github.com/operator-framework/ansible-operator-plugins/LICENSE
create mode 100644 tools/vendor/github.com/operator-framework/ansible-operator-plugins/internal/version/version.go
rename tools/vendor/github.com/operator-framework/{operator-sdk/internal => ansible-operator-plugins/pkg}/plugins/ansible/v1/api.go (96%)
rename tools/vendor/github.com/operator-framework/{operator-sdk/internal => ansible-operator-plugins/pkg}/plugins/ansible/v1/constants/constants.go (100%)
rename tools/vendor/github.com/operator-framework/{operator-sdk/internal => ansible-operator-plugins/pkg}/plugins/ansible/v1/init.go (96%)
rename tools/vendor/github.com/operator-framework/{operator-sdk/internal => ansible-operator-plugins/pkg}/plugins/ansible/v1/plugin.go (95%)
rename tools/vendor/github.com/operator-framework/{operator-sdk/internal => ansible-operator-plugins/pkg}/plugins/ansible/v1/scaffolds/api.go (76%)
rename tools/vendor/github.com/operator-framework/{operator-sdk/internal => ansible-operator-plugins/pkg}/plugins/ansible/v1/scaffolds/init.go (72%)
rename tools/vendor/github.com/operator-framework/{operator-sdk/internal => ansible-operator-plugins/pkg}/plugins/ansible/v1/scaffolds/internal/templates/config/crd/crd.go (100%)
rename tools/vendor/github.com/operator-framework/{operator-sdk/internal => ansible-operator-plugins/pkg}/plugins/ansible/v1/scaffolds/internal/templates/config/crd/kustomization.go (100%)
rename tools/vendor/github.com/operator-framework/{operator-sdk/internal => ansible-operator-plugins/pkg}/plugins/ansible/v1/scaffolds/internal/templates/config/rbac/role.go (100%)
rename tools/vendor/github.com/operator-framework/{operator-sdk/internal => ansible-operator-plugins/pkg}/plugins/ansible/v1/scaffolds/internal/templates/config/testing/debug_logs_patch.go (100%)
rename tools/vendor/github.com/operator-framework/{operator-sdk/internal => ansible-operator-plugins/pkg}/plugins/ansible/v1/scaffolds/internal/templates/config/testing/kustomization.go (100%)
rename tools/vendor/github.com/operator-framework/{operator-sdk/internal => ansible-operator-plugins/pkg}/plugins/ansible/v1/scaffolds/internal/templates/config/testing/manager_image.go (100%)
rename tools/vendor/github.com/operator-framework/{operator-sdk/internal => ansible-operator-plugins/pkg}/plugins/ansible/v1/scaffolds/internal/templates/config/testing/pullpolicy/always_pull_patch.go (100%)
rename tools/vendor/github.com/operator-framework/{operator-sdk/internal => ansible-operator-plugins/pkg}/plugins/ansible/v1/scaffolds/internal/templates/config/testing/pullpolicy/ifnotpresent_pull_patch.go (100%)
rename tools/vendor/github.com/operator-framework/{operator-sdk/internal => ansible-operator-plugins/pkg}/plugins/ansible/v1/scaffolds/internal/templates/config/testing/pullpolicy/never_pull_patch.go (100%)
rename tools/vendor/github.com/operator-framework/{operator-sdk/internal => ansible-operator-plugins/pkg}/plugins/ansible/v1/scaffolds/internal/templates/dockerfile.go (95%)
rename tools/vendor/github.com/operator-framework/{operator-sdk/internal => ansible-operator-plugins/pkg}/plugins/ansible/v1/scaffolds/internal/templates/gitignore.go (100%)
rename tools/vendor/github.com/operator-framework/{operator-sdk/internal => ansible-operator-plugins/pkg}/plugins/ansible/v1/scaffolds/internal/templates/makefile.go (98%)
rename tools/vendor/github.com/operator-framework/{operator-sdk/internal => ansible-operator-plugins/pkg}/plugins/ansible/v1/scaffolds/internal/templates/molecule/mdefault/converge.go (100%)
rename tools/vendor/github.com/operator-framework/{operator-sdk/internal => ansible-operator-plugins/pkg}/plugins/ansible/v1/scaffolds/internal/templates/molecule/mdefault/create.go (100%)
rename tools/vendor/github.com/operator-framework/{operator-sdk/internal => ansible-operator-plugins/pkg}/plugins/ansible/v1/scaffolds/internal/templates/molecule/mdefault/destroy.go (100%)
rename tools/vendor/github.com/operator-framework/{operator-sdk/internal => ansible-operator-plugins/pkg}/plugins/ansible/v1/scaffolds/internal/templates/molecule/mdefault/kustomize.go (100%)
rename tools/vendor/github.com/operator-framework/{operator-sdk/internal => ansible-operator-plugins/pkg}/plugins/ansible/v1/scaffolds/internal/templates/molecule/mdefault/molecule.go (91%)
rename tools/vendor/github.com/operator-framework/{operator-sdk/internal => ansible-operator-plugins/pkg}/plugins/ansible/v1/scaffolds/internal/templates/molecule/mdefault/prepare.go (100%)
rename tools/vendor/github.com/operator-framework/{operator-sdk/internal => ansible-operator-plugins/pkg}/plugins/ansible/v1/scaffolds/internal/templates/molecule/mdefault/tasks_test_resource.go (100%)
rename tools/vendor/github.com/operator-framework/{operator-sdk/internal => ansible-operator-plugins/pkg}/plugins/ansible/v1/scaffolds/internal/templates/molecule/mdefault/verify.go (100%)
rename tools/vendor/github.com/operator-framework/{operator-sdk/internal => ansible-operator-plugins/pkg}/plugins/ansible/v1/scaffolds/internal/templates/molecule/mkind/converge.go (100%)
rename tools/vendor/github.com/operator-framework/{operator-sdk/internal => ansible-operator-plugins/pkg}/plugins/ansible/v1/scaffolds/internal/templates/molecule/mkind/create.go (100%)
rename tools/vendor/github.com/operator-framework/{operator-sdk/internal => ansible-operator-plugins/pkg}/plugins/ansible/v1/scaffolds/internal/templates/molecule/mkind/destroy.go (100%)
rename tools/vendor/github.com/operator-framework/{operator-sdk/internal => ansible-operator-plugins/pkg}/plugins/ansible/v1/scaffolds/internal/templates/molecule/mkind/molecule.go (92%)
rename tools/vendor/github.com/operator-framework/{operator-sdk/internal => ansible-operator-plugins/pkg}/plugins/ansible/v1/scaffolds/internal/templates/playbooks/placeholder.go (100%)
rename tools/vendor/github.com/operator-framework/{operator-sdk/internal => ansible-operator-plugins/pkg}/plugins/ansible/v1/scaffolds/internal/templates/playbooks/playbook.go (100%)
rename tools/vendor/github.com/operator-framework/{operator-sdk/internal => ansible-operator-plugins/pkg}/plugins/ansible/v1/scaffolds/internal/templates/requirements.go (94%)
rename tools/vendor/github.com/operator-framework/{operator-sdk/internal => ansible-operator-plugins/pkg}/plugins/ansible/v1/scaffolds/internal/templates/roles/defaults_main.go (93%)
rename tools/vendor/github.com/operator-framework/{operator-sdk/internal => ansible-operator-plugins/pkg}/plugins/ansible/v1/scaffolds/internal/templates/roles/files_dir.go (92%)
rename tools/vendor/github.com/operator-framework/{operator-sdk/internal => ansible-operator-plugins/pkg}/plugins/ansible/v1/scaffolds/internal/templates/roles/handlers_main.go (93%)
rename tools/vendor/github.com/operator-framework/{operator-sdk/internal => ansible-operator-plugins/pkg}/plugins/ansible/v1/scaffolds/internal/templates/roles/meta_main.go (97%)
rename tools/vendor/github.com/operator-framework/{operator-sdk/internal => ansible-operator-plugins/pkg}/plugins/ansible/v1/scaffolds/internal/templates/roles/placeholder.go (100%)
rename tools/vendor/github.com/operator-framework/{operator-sdk/internal => ansible-operator-plugins/pkg}/plugins/ansible/v1/scaffolds/internal/templates/roles/readme.go (96%)
rename tools/vendor/github.com/operator-framework/{operator-sdk/internal => ansible-operator-plugins/pkg}/plugins/ansible/v1/scaffolds/internal/templates/roles/tasks_main.go (92%)
rename tools/vendor/github.com/operator-framework/{operator-sdk/internal => ansible-operator-plugins/pkg}/plugins/ansible/v1/scaffolds/internal/templates/roles/templates_dir.go (92%)
rename tools/vendor/github.com/operator-framework/{operator-sdk/internal => ansible-operator-plugins/pkg}/plugins/ansible/v1/scaffolds/internal/templates/roles/vars_main.go (92%)
rename tools/vendor/github.com/operator-framework/{operator-sdk/internal => ansible-operator-plugins/pkg}/plugins/ansible/v1/scaffolds/internal/templates/watches.go (100%)
create mode 100644 tools/vendor/github.com/operator-framework/ansible-operator-plugins/pkg/plugins/plugins.go
create mode 100644 tools/vendor/github.com/operator-framework/ansible-operator-plugins/pkg/plugins/util/cleanup.go
create mode 100644 tools/vendor/github.com/operator-framework/ansible-operator-plugins/pkg/plugins/util/message.go
create mode 100644 tools/vendor/github.com/operator-framework/operator-registry/alpha/declcfg/errors.go
create mode 100644 tools/vendor/github.com/prometheus/client_golang/prometheus/vnext.go
create mode 100644 tools/vendor/github.com/prometheus/common/model/value_float.go
create mode 100644 tools/vendor/github.com/prometheus/common/model/value_histogram.go
create mode 100644 tools/vendor/github.com/prometheus/common/model/value_type.go
rename tools/vendor/{go.etcd.io/etcd/api/v3/v3rpc/rpctypes/metadatafields.go => github.com/prometheus/procfs/cpuinfo_loong64.go} (73%)
create mode 100644 tools/vendor/github.com/prometheus/procfs/fs_statfs_notype.go
create mode 100644 tools/vendor/github.com/prometheus/procfs/fs_statfs_type.go
create mode 100644 tools/vendor/github.com/prometheus/procfs/net_wireless.go
create mode 100644 tools/vendor/github.com/prometheus/procfs/proc_interrupts.go
create mode 100644 tools/vendor/github.com/prometheus/procfs/thread.go
create mode 100644 tools/vendor/github.com/xlab/treeprint/.gitignore
delete mode 100644 tools/vendor/go.etcd.io/bbolt/.travis.yml
create mode 100644 tools/vendor/go.etcd.io/bbolt/bolt_loong64.go
create mode 100644 tools/vendor/go.etcd.io/bbolt/tx_check.go
delete mode 100644 tools/vendor/go.etcd.io/etcd/api/v3/v3rpc/rpctypes/error.go
create mode 100644 tools/vendor/go.opentelemetry.io/otel/exporters/otlp/internal/wrappederror.go
create mode 100644 tools/vendor/go.opentelemetry.io/otel/internal/attribute/attribute.go
create mode 100644 tools/vendor/go.opentelemetry.io/otel/metric/instrument/asyncfloat64.go
delete mode 100644 tools/vendor/go.opentelemetry.io/otel/metric/instrument/asyncfloat64/asyncfloat64.go
create mode 100644 tools/vendor/go.opentelemetry.io/otel/metric/instrument/asyncint64.go
delete mode 100644 tools/vendor/go.opentelemetry.io/otel/metric/instrument/asyncint64/asyncint64.go
delete mode 100644 tools/vendor/go.opentelemetry.io/otel/metric/instrument/config.go
create mode 100644 tools/vendor/go.opentelemetry.io/otel/metric/instrument/syncfloat64.go
create mode 100644 tools/vendor/go.opentelemetry.io/otel/metric/instrument/syncint64.go
create mode 100644 tools/vendor/go.opentelemetry.io/otel/semconv/internal/v2/http.go
create mode 100644 tools/vendor/go.opentelemetry.io/otel/semconv/internal/v2/net.go
create mode 100644 tools/vendor/go.opentelemetry.io/otel/semconv/v1.17.0/doc.go
create mode 100644 tools/vendor/go.opentelemetry.io/otel/semconv/v1.17.0/event.go
create mode 100644 tools/vendor/go.opentelemetry.io/otel/semconv/v1.17.0/exception.go
rename tools/vendor/{go.etcd.io/etcd/api/v3/v3rpc/rpctypes/md.go => go.opentelemetry.io/otel/semconv/v1.17.0/http.go} (71%)
create mode 100644 tools/vendor/go.opentelemetry.io/otel/semconv/v1.17.0/httpconv/http.go
create mode 100644 tools/vendor/go.opentelemetry.io/otel/semconv/v1.17.0/resource.go
create mode 100644 tools/vendor/go.opentelemetry.io/otel/semconv/v1.17.0/schema.go
create mode 100644 tools/vendor/go.opentelemetry.io/otel/semconv/v1.17.0/trace.go
delete mode 100644 tools/vendor/go.uber.org/atomic/.codecov.yml
delete mode 100644 tools/vendor/go.uber.org/atomic/.gitignore
delete mode 100644 tools/vendor/go.uber.org/atomic/CHANGELOG.md
delete mode 100644 tools/vendor/go.uber.org/atomic/LICENSE.txt
delete mode 100644 tools/vendor/go.uber.org/atomic/Makefile
delete mode 100644 tools/vendor/go.uber.org/atomic/README.md
delete mode 100644 tools/vendor/go.uber.org/atomic/bool.go
delete mode 100644 tools/vendor/go.uber.org/atomic/doc.go
delete mode 100644 tools/vendor/go.uber.org/atomic/duration.go
delete mode 100644 tools/vendor/go.uber.org/atomic/duration_ext.go
delete mode 100644 tools/vendor/go.uber.org/atomic/error.go
delete mode 100644 tools/vendor/go.uber.org/atomic/float32.go
delete mode 100644 tools/vendor/go.uber.org/atomic/float32_ext.go
delete mode 100644 tools/vendor/go.uber.org/atomic/float64.go
delete mode 100644 tools/vendor/go.uber.org/atomic/float64_ext.go
delete mode 100644 tools/vendor/go.uber.org/atomic/gen.go
delete mode 100644 tools/vendor/go.uber.org/atomic/int32.go
delete mode 100644 tools/vendor/go.uber.org/atomic/int64.go
delete mode 100644 tools/vendor/go.uber.org/atomic/nocmp.go
delete mode 100644 tools/vendor/go.uber.org/atomic/pointer_go118.go
delete mode 100644 tools/vendor/go.uber.org/atomic/pointer_go119.go
delete mode 100644 tools/vendor/go.uber.org/atomic/string.go
delete mode 100644 tools/vendor/go.uber.org/atomic/string_ext.go
delete mode 100644 tools/vendor/go.uber.org/atomic/time_ext.go
delete mode 100644 tools/vendor/go.uber.org/atomic/uint32.go
delete mode 100644 tools/vendor/go.uber.org/atomic/uint64.go
delete mode 100644 tools/vendor/go.uber.org/atomic/uintptr.go
delete mode 100644 tools/vendor/go.uber.org/atomic/unsafe_pointer.go
delete mode 100644 tools/vendor/go.uber.org/atomic/value.go
rename tools/vendor/go.uber.org/{atomic/error_ext.go => multierr/error_post_go120.go} (65%)
create mode 100644 tools/vendor/go.uber.org/multierr/error_pre_go120.go
delete mode 100644 tools/vendor/go.uber.org/multierr/glide.yaml
create mode 100644 tools/vendor/go.uber.org/zap/.golangci.yml
delete mode 100644 tools/vendor/go.uber.org/zap/array_go118.go
rename tools/vendor/go.uber.org/{atomic/bool_ext.go => zap/internal/pool/pool.go} (56%)
rename tools/vendor/go.uber.org/zap/{stacktrace.go => internal/stacktrace/stack.go} (73%)
rename tools/vendor/go.uber.org/{atomic/time.go => zap/zapcore/lazy_with.go} (60%)
create mode 100644 tools/vendor/golang.org/x/exp/LICENSE
create mode 100644 tools/vendor/golang.org/x/exp/PATENTS
create mode 100644 tools/vendor/golang.org/x/exp/constraints/constraints.go
create mode 100644 tools/vendor/golang.org/x/exp/slices/cmp.go
create mode 100644 tools/vendor/golang.org/x/exp/slices/slices.go
create mode 100644 tools/vendor/golang.org/x/exp/slices/sort.go
create mode 100644 tools/vendor/golang.org/x/exp/slices/zsortanyfunc.go
create mode 100644 tools/vendor/golang.org/x/exp/slices/zsortordered.go
delete mode 100644 tools/vendor/golang.org/x/net/context/ctxhttp/ctxhttp.go
delete mode 100644 tools/vendor/golang.org/x/net/http2/Dockerfile
delete mode 100644 tools/vendor/golang.org/x/net/http2/Makefile
create mode 100644 tools/vendor/golang.org/x/net/http2/writesched_roundrobin.go
create mode 100644 tools/vendor/golang.org/x/net/idna/tables15.0.0.go
create mode 100644 tools/vendor/golang.org/x/net/idna/trie12.0.0.go
create mode 100644 tools/vendor/golang.org/x/net/idna/trie13.0.0.go
create mode 100644 tools/vendor/golang.org/x/sync/errgroup/go120.go
create mode 100644 tools/vendor/golang.org/x/sync/errgroup/pre_go120.go
create mode 100644 tools/vendor/golang.org/x/sync/singleflight/singleflight.go
delete mode 100644 tools/vendor/golang.org/x/sys/internal/unsafeheader/unsafeheader.go
create mode 100644 tools/vendor/golang.org/x/sys/unix/mmap_nomremap.go
create mode 100644 tools/vendor/golang.org/x/sys/unix/mremap.go
create mode 100644 tools/vendor/golang.org/x/text/cases/tables15.0.0.go
create mode 100644 tools/vendor/golang.org/x/text/feature/plural/common.go
create mode 100644 tools/vendor/golang.org/x/text/feature/plural/message.go
create mode 100644 tools/vendor/golang.org/x/text/feature/plural/plural.go
create mode 100644 tools/vendor/golang.org/x/text/feature/plural/tables.go
create mode 100644 tools/vendor/golang.org/x/text/internal/catmsg/catmsg.go
create mode 100644 tools/vendor/golang.org/x/text/internal/catmsg/codec.go
create mode 100644 tools/vendor/golang.org/x/text/internal/catmsg/varint.go
create mode 100644 tools/vendor/golang.org/x/text/internal/format/format.go
create mode 100644 tools/vendor/golang.org/x/text/internal/format/parser.go
create mode 100644 tools/vendor/golang.org/x/text/internal/number/common.go
create mode 100644 tools/vendor/golang.org/x/text/internal/number/decimal.go
create mode 100644 tools/vendor/golang.org/x/text/internal/number/format.go
create mode 100644 tools/vendor/golang.org/x/text/internal/number/number.go
create mode 100644 tools/vendor/golang.org/x/text/internal/number/pattern.go
create mode 100644 tools/vendor/golang.org/x/text/internal/number/roundingmode_string.go
create mode 100644 tools/vendor/golang.org/x/text/internal/number/tables.go
create mode 100644 tools/vendor/golang.org/x/text/internal/stringset/set.go
create mode 100644 tools/vendor/golang.org/x/text/message/catalog.go
create mode 100644 tools/vendor/golang.org/x/text/message/catalog/catalog.go
create mode 100644 tools/vendor/golang.org/x/text/message/catalog/dict.go
create mode 100644 tools/vendor/golang.org/x/text/message/catalog/go19.go
create mode 100644 tools/vendor/golang.org/x/text/message/catalog/gopre19.go
create mode 100644 tools/vendor/golang.org/x/text/message/doc.go
create mode 100644 tools/vendor/golang.org/x/text/message/format.go
create mode 100644 tools/vendor/golang.org/x/text/message/message.go
create mode 100644 tools/vendor/golang.org/x/text/message/print.go
create mode 100644 tools/vendor/golang.org/x/text/unicode/bidi/tables15.0.0.go
create mode 100644 tools/vendor/golang.org/x/text/unicode/norm/tables15.0.0.go
create mode 100644 tools/vendor/golang.org/x/text/width/tables15.0.0.go
create mode 100644 tools/vendor/golang.org/x/tools/internal/event/tag/tag.go
delete mode 100644 tools/vendor/golang.org/x/tools/internal/gcimporter/bexport.go
create mode 100644 tools/vendor/golang.org/x/tools/internal/typesinternal/objectpath.go
create mode 100644 tools/vendor/google.golang.org/genproto/googleapis/api/LICENSE
create mode 100644 tools/vendor/google.golang.org/genproto/googleapis/rpc/LICENSE
create mode 100644 tools/vendor/gopkg.in/evanphx/json-patch.v5/.gitignore
create mode 100644 tools/vendor/gopkg.in/evanphx/json-patch.v5/LICENSE
create mode 100644 tools/vendor/gopkg.in/evanphx/json-patch.v5/README.md
create mode 100644 tools/vendor/gopkg.in/evanphx/json-patch.v5/errors.go
create mode 100644 tools/vendor/gopkg.in/evanphx/json-patch.v5/merge.go
create mode 100644 tools/vendor/gopkg.in/evanphx/json-patch.v5/patch.go
create mode 100644 tools/vendor/helm.sh/helm/v3/pkg/cli/roundtripper.go
create mode 100644 tools/vendor/k8s.io/apiextensions-apiserver/pkg/apiserver/validation/ratcheting.go
create mode 100644 tools/vendor/k8s.io/apiextensions-apiserver/pkg/features/OWNERS
create mode 100644 tools/vendor/k8s.io/apiextensions-apiserver/pkg/features/kube_features.go
create mode 100644 tools/vendor/k8s.io/apimachinery/pkg/runtime/splice.go
create mode 100644 tools/vendor/k8s.io/apimachinery/pkg/util/dump/dump.go
create mode 100644 tools/vendor/k8s.io/apimachinery/pkg/util/managedfields/internal/versioncheck.go
rename tools/vendor/{sigs.k8s.io/kustomize/api/resmap/idslice.go => k8s.io/apimachinery/pkg/util/version/doc.go} (51%)
create mode 100644 tools/vendor/k8s.io/apimachinery/pkg/util/version/version.go
delete mode 100644 tools/vendor/k8s.io/apiserver/pkg/cel/composited.go
create mode 100644 tools/vendor/k8s.io/apiserver/pkg/cel/environment/base.go
create mode 100644 tools/vendor/k8s.io/apiserver/pkg/cel/environment/environment.go
delete mode 100644 tools/vendor/k8s.io/apiserver/pkg/cel/library/libraries.go
create mode 100644 tools/vendor/k8s.io/apiserver/pkg/cel/library/quantity.go
create mode 100644 tools/vendor/k8s.io/apiserver/pkg/cel/library/test.go
create mode 100644 tools/vendor/k8s.io/apiserver/pkg/cel/openapi/adaptor.go
create mode 100644 tools/vendor/k8s.io/apiserver/pkg/cel/openapi/extensions.go
create mode 100644 tools/vendor/k8s.io/apiserver/pkg/cel/quantity.go
delete mode 100644 tools/vendor/k8s.io/apiserver/pkg/cel/registry.go
create mode 100644 tools/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1/variable.go
create mode 100644 tools/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/auditannotation.go
create mode 100644 tools/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/expressionwarning.go
create mode 100644 tools/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/matchresources.go
create mode 100644 tools/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/namedrulewithoperations.go
create mode 100644 tools/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/paramkind.go
create mode 100644 tools/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/paramref.go
create mode 100644 tools/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/typechecking.go
create mode 100644 tools/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/validatingadmissionpolicy.go
create mode 100644 tools/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/validatingadmissionpolicybinding.go
create mode 100644 tools/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/validatingadmissionpolicybindingspec.go
create mode 100644 tools/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/validatingadmissionpolicyspec.go
create mode 100644 tools/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/validatingadmissionpolicystatus.go
create mode 100644 tools/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/validation.go
create mode 100644 tools/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/variable.go
create mode 100644 tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/hostip.go
create mode 100644 tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/podresourceclaimstatus.go
delete mode 100644 tools/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/networkpolicystatus.go
create mode 100644 tools/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/exemptprioritylevelconfiguration.go
create mode 100644 tools/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/exemptprioritylevelconfiguration.go
create mode 100644 tools/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta2/exemptprioritylevelconfiguration.go
create mode 100644 tools/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta3/exemptprioritylevelconfiguration.go
delete mode 100644 tools/vendor/k8s.io/client-go/applyconfigurations/networking/v1/networkpolicystatus.go
create mode 100644 tools/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/validatingadmissionpolicy.go
create mode 100644 tools/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/validatingadmissionpolicybinding.go
create mode 100644 tools/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1/selfsubjectreview.go
create mode 100644 tools/vendor/k8s.io/client-go/openapi/typeconverter.go
create mode 100644 tools/vendor/k8s.io/client-go/tools/cache/object-names.go
create mode 100644 tools/vendor/k8s.io/component-base/version/dynamic.go
create mode 100644 tools/vendor/k8s.io/klog/v2/format.go
create mode 100644 tools/vendor/k8s.io/utils/set/OWNERS
create mode 100644 tools/vendor/k8s.io/utils/set/ordered.go
create mode 100644 tools/vendor/k8s.io/utils/set/set.go
delete mode 100644 tools/vendor/sigs.k8s.io/kustomize/api/internal/builtins/LegacyOrderTransformer.go
create mode 100644 tools/vendor/sigs.k8s.io/kustomize/api/internal/builtins/SortOrderTransformer.go
rename tools/vendor/sigs.k8s.io/kustomize/api/{ => internal}/image/image.go (100%)
rename tools/vendor/sigs.k8s.io/kustomize/api/{ => internal}/konfig/builtinpluginconsts/commonannotations.go (100%)
rename tools/vendor/sigs.k8s.io/kustomize/api/{ => internal}/konfig/builtinpluginconsts/commonlabels.go (78%)
rename tools/vendor/sigs.k8s.io/kustomize/api/{ => internal}/konfig/builtinpluginconsts/defaultconfig.go (93%)
rename tools/vendor/sigs.k8s.io/kustomize/api/{ => internal}/konfig/builtinpluginconsts/doc.go (100%)
rename tools/vendor/sigs.k8s.io/kustomize/api/{ => internal}/konfig/builtinpluginconsts/images.go (100%)
create mode 100644 tools/vendor/sigs.k8s.io/kustomize/api/internal/konfig/builtinpluginconsts/metadatalabels.go
rename tools/vendor/sigs.k8s.io/kustomize/api/{ => internal}/konfig/builtinpluginconsts/nameprefix.go (100%)
rename tools/vendor/sigs.k8s.io/kustomize/api/{ => internal}/konfig/builtinpluginconsts/namereference.go (100%)
rename tools/vendor/sigs.k8s.io/kustomize/api/{ => internal}/konfig/builtinpluginconsts/namespace.go (100%)
rename tools/vendor/sigs.k8s.io/kustomize/api/{ => internal}/konfig/builtinpluginconsts/namesuffix.go (100%)
rename tools/vendor/sigs.k8s.io/kustomize/api/{ => internal}/konfig/builtinpluginconsts/replicas.go (100%)
create mode 100644 tools/vendor/sigs.k8s.io/kustomize/api/internal/konfig/builtinpluginconsts/templatelabels.go
rename tools/vendor/sigs.k8s.io/kustomize/api/{ => internal}/konfig/builtinpluginconsts/varreference.go (100%)
rename tools/vendor/sigs.k8s.io/kustomize/api/{ => internal}/loader/errors.go (100%)
rename tools/vendor/sigs.k8s.io/kustomize/api/{ => internal}/loader/fileloader.go (64%)
rename tools/vendor/sigs.k8s.io/kustomize/api/{ => internal}/loader/loader.go (100%)
rename tools/vendor/sigs.k8s.io/kustomize/api/{ => internal}/loader/loadrestrictions.go (100%)
create mode 100644 tools/vendor/sigs.k8s.io/kustomize/api/internal/localizer/builtinplugins.go
create mode 100644 tools/vendor/sigs.k8s.io/kustomize/api/internal/localizer/doc.go
create mode 100644 tools/vendor/sigs.k8s.io/kustomize/api/internal/localizer/errors.go
create mode 100644 tools/vendor/sigs.k8s.io/kustomize/api/internal/localizer/localizer.go
create mode 100644 tools/vendor/sigs.k8s.io/kustomize/api/internal/localizer/locloader.go
create mode 100644 tools/vendor/sigs.k8s.io/kustomize/api/internal/localizer/util.go
create mode 100644 tools/vendor/sigs.k8s.io/kustomize/api/krusty/localizer/runner.go
create mode 100644 tools/vendor/sigs.k8s.io/kustomize/api/pkg/loader/loader.go
delete mode 100644 tools/vendor/sigs.k8s.io/kustomize/api/types/fix.go
delete mode 100644 tools/vendor/sigs.k8s.io/kustomize/api/types/inventory.go
create mode 100644 tools/vendor/sigs.k8s.io/kustomize/api/types/sortoptions.go
delete mode 100644 tools/vendor/sigs.k8s.io/kustomize/cmd/config/internal/commands/annotate.go
delete mode 100644 tools/vendor/sigs.k8s.io/kustomize/cmd/config/internal/commands/cmdcreatesetter.go
delete mode 100644 tools/vendor/sigs.k8s.io/kustomize/cmd/config/internal/commands/cmdcreatesubstitution.go
delete mode 100644 tools/vendor/sigs.k8s.io/kustomize/cmd/config/internal/commands/cmddeletesetter.go
delete mode 100644 tools/vendor/sigs.k8s.io/kustomize/cmd/config/internal/commands/cmddeletesubstitution.go
delete mode 100644 tools/vendor/sigs.k8s.io/kustomize/cmd/config/internal/commands/cmdinit.go
delete mode 100644 tools/vendor/sigs.k8s.io/kustomize/cmd/config/internal/commands/cmdlistsetters.go
delete mode 100644 tools/vendor/sigs.k8s.io/kustomize/cmd/config/internal/commands/cmdset.go
delete mode 100644 tools/vendor/sigs.k8s.io/kustomize/cmd/config/internal/commands/cmdwrap.go
delete mode 100644 tools/vendor/sigs.k8s.io/kustomize/cmd/config/internal/commands/cmdxargs.go
delete mode 100644 tools/vendor/sigs.k8s.io/kustomize/cmd/config/internal/commands/fmt.go
delete mode 100644 tools/vendor/sigs.k8s.io/kustomize/cmd/config/internal/commands/merge.go
delete mode 100644 tools/vendor/sigs.k8s.io/kustomize/cmd/config/internal/commands/merge3.go
delete mode 100644 tools/vendor/sigs.k8s.io/kustomize/cmd/config/internal/commands/sink.go
delete mode 100644 tools/vendor/sigs.k8s.io/kustomize/cmd/config/internal/commands/source.go
delete mode 100644 tools/vendor/sigs.k8s.io/kustomize/kustomize/v4/commands/build/reorderoutput.go
delete mode 100644 tools/vendor/sigs.k8s.io/kustomize/kustomize/v4/commands/build/reorderoutput_string.go
delete mode 100644 tools/vendor/sigs.k8s.io/kustomize/kustomize/v4/commands/edit/add/flagsandargs.go
delete mode 100644 tools/vendor/sigs.k8s.io/kustomize/kustomize/v4/commands/version/version.go
rename tools/vendor/sigs.k8s.io/kustomize/kustomize/{v4 => v5}/LICENSE (100%)
rename tools/vendor/sigs.k8s.io/kustomize/kustomize/{v4 => v5}/commands/build/build.go (79%)
rename tools/vendor/sigs.k8s.io/kustomize/kustomize/{v4 => v5}/commands/build/flagaddmanagedby.go (100%)
rename tools/vendor/sigs.k8s.io/kustomize/kustomize/{v4 => v5}/commands/build/flagenablehelm.go (63%)
rename tools/vendor/sigs.k8s.io/kustomize/kustomize/{v4 => v5}/commands/build/flagenableplugins.go (100%)
rename tools/vendor/sigs.k8s.io/kustomize/kustomize/{v4 => v5}/commands/build/flagloadrestrictor.go (100%)
rename tools/vendor/sigs.k8s.io/kustomize/kustomize/{v4 => v5}/commands/build/flagoutputpath.go (100%)
rename tools/vendor/sigs.k8s.io/kustomize/kustomize/{v4 => v5}/commands/build/flagsforfunctions.go (100%)
create mode 100644 tools/vendor/sigs.k8s.io/kustomize/kustomize/v5/commands/build/reorderoutput.go
rename tools/vendor/sigs.k8s.io/kustomize/kustomize/{v4 => v5}/commands/build/writer.go (100%)
rename tools/vendor/sigs.k8s.io/kustomize/kustomize/{v4 => v5}/commands/commands.go (82%)
rename tools/vendor/sigs.k8s.io/kustomize/kustomize/{v4 => v5}/commands/create/create.go (92%)
rename tools/vendor/sigs.k8s.io/kustomize/kustomize/{v4 => v5}/commands/edit/add/addbase.go (96%)
rename tools/vendor/sigs.k8s.io/kustomize/kustomize/{v4 => v5}/commands/edit/add/addbuildmetadata.go (94%)
rename tools/vendor/sigs.k8s.io/kustomize/kustomize/{v4 => v5}/commands/edit/add/addcomponent.go (87%)
rename tools/vendor/sigs.k8s.io/kustomize/kustomize/{v4/commands/edit/add/configmap.go => v5/commands/edit/add/addconfigmap.go} (54%)
rename tools/vendor/sigs.k8s.io/kustomize/kustomize/{v4 => v5}/commands/edit/add/addgenerator.go (91%)
rename tools/vendor/sigs.k8s.io/kustomize/kustomize/{v4 => v5}/commands/edit/add/addmetadata.go (84%)
rename tools/vendor/sigs.k8s.io/kustomize/kustomize/{v4 => v5}/commands/edit/add/addpatch.go (96%)
rename tools/vendor/sigs.k8s.io/kustomize/kustomize/{v4 => v5}/commands/edit/add/addresource.go (79%)
rename tools/vendor/sigs.k8s.io/kustomize/kustomize/{v4/commands/edit/add/secret.go => v5/commands/edit/add/addsecret.go} (65%)
rename tools/vendor/sigs.k8s.io/kustomize/kustomize/{v4 => v5}/commands/edit/add/addtransformer.go (91%)
rename tools/vendor/sigs.k8s.io/kustomize/kustomize/{v4 => v5}/commands/edit/add/all.go (97%)
rename tools/vendor/sigs.k8s.io/kustomize/kustomize/{v4 => v5}/commands/edit/all.go (68%)
rename tools/vendor/sigs.k8s.io/kustomize/kustomize/{v4 => v5}/commands/edit/fix/convert.go (98%)
rename tools/vendor/sigs.k8s.io/kustomize/kustomize/{v4 => v5}/commands/edit/fix/fix.go (89%)
rename tools/vendor/sigs.k8s.io/kustomize/kustomize/{v4 => v5}/commands/edit/listbuiltin/listbuiltin.go (100%)
rename tools/vendor/sigs.k8s.io/kustomize/kustomize/{v4 => v5}/commands/edit/remove/all.go (80%)
rename tools/vendor/sigs.k8s.io/kustomize/kustomize/{v4 => v5}/commands/edit/remove/removebuildmetadata.go (94%)
create mode 100644 tools/vendor/sigs.k8s.io/kustomize/kustomize/v5/commands/edit/remove/removeconfigmap.go
rename tools/vendor/sigs.k8s.io/kustomize/kustomize/{v4 => v5}/commands/edit/remove/removemetadata.go (98%)
rename tools/vendor/sigs.k8s.io/kustomize/kustomize/{v4 => v5}/commands/edit/remove/removepatch.go (94%)
rename tools/vendor/sigs.k8s.io/kustomize/kustomize/{v4 => v5}/commands/edit/remove/removeresource.go (97%)
create mode 100644 tools/vendor/sigs.k8s.io/kustomize/kustomize/v5/commands/edit/remove/removesecret.go
rename tools/vendor/sigs.k8s.io/kustomize/kustomize/{v4 => v5}/commands/edit/remove/removetransformer.go (96%)
rename tools/vendor/sigs.k8s.io/kustomize/kustomize/{v4 => v5}/commands/edit/set/all.go (81%)
rename tools/vendor/sigs.k8s.io/kustomize/kustomize/{v4 => v5}/commands/edit/set/set_name_prefix.go (95%)
rename tools/vendor/sigs.k8s.io/kustomize/kustomize/{v4 => v5}/commands/edit/set/set_name_suffix.go (95%)
rename tools/vendor/sigs.k8s.io/kustomize/kustomize/{v4 => v5}/commands/edit/set/setannotation.go (95%)
rename tools/vendor/sigs.k8s.io/kustomize/kustomize/{v4 => v5}/commands/edit/set/setbuildmetadata.go (94%)
create mode 100644 tools/vendor/sigs.k8s.io/kustomize/kustomize/v5/commands/edit/set/setconfigmap.go
rename tools/vendor/sigs.k8s.io/kustomize/kustomize/{v4 => v5}/commands/edit/set/setimage.go (98%)
rename tools/vendor/sigs.k8s.io/kustomize/kustomize/{v4 => v5}/commands/edit/set/setlabel.go (94%)
rename tools/vendor/sigs.k8s.io/kustomize/kustomize/{v4 => v5}/commands/edit/set/setnamespace.go (96%)
rename tools/vendor/sigs.k8s.io/kustomize/kustomize/{v4 => v5}/commands/edit/set/setreplicas.go (97%)
rename tools/vendor/sigs.k8s.io/kustomize/kustomize/{v4 => v5}/commands/internal/kustfile/kustomizationfile.go (93%)
create mode 100644 tools/vendor/sigs.k8s.io/kustomize/kustomize/v5/commands/internal/util/configmapSecretFlagsAndArgs.go
rename tools/vendor/sigs.k8s.io/kustomize/kustomize/{v4 => v5}/commands/internal/util/util.go (55%)
rename tools/vendor/sigs.k8s.io/kustomize/kustomize/{v4 => v5}/commands/internal/util/validate.go (92%)
create mode 100644 tools/vendor/sigs.k8s.io/kustomize/kustomize/v5/commands/localize/localize.go
rename tools/vendor/sigs.k8s.io/kustomize/kustomize/{v4 => v5}/commands/openapi/fetch/fetch.go (100%)
rename tools/vendor/sigs.k8s.io/kustomize/kustomize/{v4 => v5}/commands/openapi/info/info.go (100%)
rename tools/vendor/sigs.k8s.io/kustomize/kustomize/{v4 => v5}/commands/openapi/openapi.go (81%)
create mode 100644 tools/vendor/sigs.k8s.io/kustomize/kustomize/v5/commands/version/version.go
rename tools/vendor/sigs.k8s.io/kustomize/kustomize/{v4 => v5}/main.go (83%)
delete mode 100644 tools/vendor/sigs.k8s.io/kustomize/kyaml/krmfile/doc.go
delete mode 100644 tools/vendor/sigs.k8s.io/kustomize/kyaml/krmfile/krmfile.go
delete mode 100644 tools/vendor/sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/v1212/swagger.go
create mode 100644 tools/vendor/sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/v1_21_2/swagger.go
rename tools/vendor/sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/{v1212 => v1_21_2}/swagger.pb (98%)
delete mode 100644 tools/vendor/sigs.k8s.io/kustomize/kyaml/setters2/add.go
delete mode 100644 tools/vendor/sigs.k8s.io/kustomize/kyaml/setters2/delete.go
delete mode 100644 tools/vendor/sigs.k8s.io/kustomize/kyaml/setters2/doc.go
delete mode 100644 tools/vendor/sigs.k8s.io/kustomize/kyaml/setters2/list.go
delete mode 100644 tools/vendor/sigs.k8s.io/kustomize/kyaml/setters2/set.go
delete mode 100644 tools/vendor/sigs.k8s.io/kustomize/kyaml/setters2/settersutil/deletercreator.go
delete mode 100644 tools/vendor/sigs.k8s.io/kustomize/kyaml/setters2/settersutil/fieldsetter.go
delete mode 100644 tools/vendor/sigs.k8s.io/kustomize/kyaml/setters2/settersutil/settercreator.go
delete mode 100644 tools/vendor/sigs.k8s.io/kustomize/kyaml/setters2/settersutil/substitutioncreator.go
delete mode 100644 tools/vendor/sigs.k8s.io/kustomize/kyaml/setters2/types.go
delete mode 100644 tools/vendor/sigs.k8s.io/kustomize/kyaml/setters2/util.go
delete mode 100644 tools/vendor/sigs.k8s.io/kustomize/kyaml/setters2/walk.go
create mode 100644 tools/vendor/sigs.k8s.io/yaml/goyaml.v2/LICENSE
create mode 100644 tools/vendor/sigs.k8s.io/yaml/goyaml.v2/LICENSE.libyaml
rename tools/vendor/sigs.k8s.io/{kustomize/kyaml/internal/forked/github.com/go-yaml/yaml => yaml/goyaml.v2}/NOTICE (100%)
create mode 100644 tools/vendor/sigs.k8s.io/yaml/goyaml.v2/OWNERS
create mode 100644 tools/vendor/sigs.k8s.io/yaml/goyaml.v2/README.md
create mode 100644 tools/vendor/sigs.k8s.io/yaml/goyaml.v2/apic.go
create mode 100644 tools/vendor/sigs.k8s.io/yaml/goyaml.v2/decode.go
create mode 100644 tools/vendor/sigs.k8s.io/yaml/goyaml.v2/emitterc.go
create mode 100644 tools/vendor/sigs.k8s.io/yaml/goyaml.v2/encode.go
create mode 100644 tools/vendor/sigs.k8s.io/yaml/goyaml.v2/parserc.go
create mode 100644 tools/vendor/sigs.k8s.io/yaml/goyaml.v2/readerc.go
create mode 100644 tools/vendor/sigs.k8s.io/yaml/goyaml.v2/resolve.go
create mode 100644 tools/vendor/sigs.k8s.io/yaml/goyaml.v2/scannerc.go
create mode 100644 tools/vendor/sigs.k8s.io/yaml/goyaml.v2/sorter.go
create mode 100644 tools/vendor/sigs.k8s.io/yaml/goyaml.v2/writerc.go
create mode 100644 tools/vendor/sigs.k8s.io/yaml/goyaml.v2/yaml.go
create mode 100644 tools/vendor/sigs.k8s.io/yaml/goyaml.v2/yamlh.go
create mode 100644 tools/vendor/sigs.k8s.io/yaml/goyaml.v2/yamlprivateh.go
rename tools/vendor/sigs.k8s.io/{kustomize/kyaml/internal/forked/github.com/go-yaml/yaml => yaml/goyaml.v3}/LICENSE (100%)
create mode 100644 tools/vendor/sigs.k8s.io/yaml/goyaml.v3/NOTICE
create mode 100644 tools/vendor/sigs.k8s.io/yaml/goyaml.v3/OWNERS
rename tools/vendor/sigs.k8s.io/{kustomize/kyaml/internal/forked/github.com/go-yaml/yaml => yaml/goyaml.v3}/README.md (87%)
rename tools/vendor/sigs.k8s.io/{kustomize/kyaml/internal/forked/github.com/go-yaml/yaml => yaml/goyaml.v3}/apic.go (100%)
rename tools/vendor/sigs.k8s.io/{kustomize/kyaml/internal/forked/github.com/go-yaml/yaml => yaml/goyaml.v3}/decode.go (93%)
rename tools/vendor/sigs.k8s.io/{kustomize/kyaml/internal/forked/github.com/go-yaml/yaml => yaml/goyaml.v3}/emitterc.go (95%)
rename tools/vendor/sigs.k8s.io/{kustomize/kyaml/internal/forked/github.com/go-yaml/yaml => yaml/goyaml.v3}/encode.go (100%)
rename tools/vendor/sigs.k8s.io/{kustomize/kyaml/internal/forked/github.com/go-yaml/yaml => yaml/goyaml.v3}/parserc.go (99%)
create mode 100644 tools/vendor/sigs.k8s.io/yaml/goyaml.v3/patch.go
rename tools/vendor/sigs.k8s.io/{kustomize/kyaml/internal/forked/github.com/go-yaml/yaml => yaml/goyaml.v3}/readerc.go (100%)
rename tools/vendor/sigs.k8s.io/{kustomize/kyaml/internal/forked/github.com/go-yaml/yaml => yaml/goyaml.v3}/resolve.go (100%)
rename tools/vendor/sigs.k8s.io/{kustomize/kyaml/internal/forked/github.com/go-yaml/yaml => yaml/goyaml.v3}/scannerc.go (100%)
rename tools/vendor/sigs.k8s.io/{kustomize/kyaml/internal/forked/github.com/go-yaml/yaml => yaml/goyaml.v3}/sorter.go (100%)
rename tools/vendor/sigs.k8s.io/{kustomize/kyaml/internal/forked/github.com/go-yaml/yaml => yaml/goyaml.v3}/writerc.go (100%)
rename tools/vendor/sigs.k8s.io/{kustomize/kyaml/internal/forked/github.com/go-yaml/yaml => yaml/goyaml.v3}/yaml.go (98%)
rename tools/vendor/sigs.k8s.io/{kustomize/kyaml/internal/forked/github.com/go-yaml/yaml => yaml/goyaml.v3}/yamlh.go (100%)
rename tools/vendor/sigs.k8s.io/{kustomize/kyaml/internal/forked/github.com/go-yaml/yaml => yaml/goyaml.v3}/yamlprivateh.go (100%)
diff --git a/tools/go.mod b/tools/go.mod
index bf435a923..1b75eb501 100644
--- a/tools/go.mod
+++ b/tools/go.mod
@@ -3,47 +3,49 @@ module github.com/csi-addons/kubernetes-csi-addons/tools
go 1.20
require (
- github.com/operator-framework/operator-sdk v1.29.0
+ github.com/operator-framework/operator-sdk v1.32.0
google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0
google.golang.org/protobuf v1.31.0
- sigs.k8s.io/controller-runtime/tools/setup-envtest v0.0.0-20230620070423-a784ee78d04b
- sigs.k8s.io/controller-tools v0.12.1
- sigs.k8s.io/kustomize/kustomize/v4 v4.5.7
+ sigs.k8s.io/controller-runtime/tools/setup-envtest v0.0.0-20231212104454-76b5567314a8
+ sigs.k8s.io/controller-tools v0.13.0
+ sigs.k8s.io/kustomize/kustomize/v5 v5.3.0
)
require (
- github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect
- github.com/BurntSushi/toml v1.2.0 // indirect
+ github.com/AdaLogics/go-fuzz-headers v0.0.0-20230106234847-43070de90fa1 // indirect
+ github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 // indirect
+ github.com/BurntSushi/toml v1.2.1 // indirect
github.com/MakeNowJust/heredoc v1.0.0 // indirect
github.com/Masterminds/goutils v1.1.1 // indirect
- github.com/Masterminds/semver/v3 v3.1.1 // indirect
- github.com/Masterminds/sprig/v3 v3.2.2 // indirect
+ github.com/Masterminds/semver/v3 v3.2.0 // indirect
+ github.com/Masterminds/sprig/v3 v3.2.3 // indirect
github.com/Masterminds/squirrel v1.5.3 // indirect
- github.com/Microsoft/go-winio v0.6.0 // indirect
- github.com/Microsoft/hcsshim v0.9.4 // indirect
+ github.com/Microsoft/go-winio v0.6.1 // indirect
+ github.com/Microsoft/hcsshim v0.10.0-rc.7 // indirect
github.com/adrg/xdg v0.4.0 // indirect
- github.com/antlr/antlr4/runtime/Go/antlr v1.4.10 // indirect
- github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d // indirect
+ github.com/antlr/antlr4/runtime/Go/antlr/v4 v4.0.0-20230305170008-8188dc5388df // indirect
+ github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect
github.com/beorn7/perks v1.0.1 // indirect
github.com/blang/semver/v4 v4.0.0 // indirect
- github.com/cenkalti/backoff/v4 v4.1.3 // indirect
- github.com/cespare/xxhash/v2 v2.1.2 // indirect
+ github.com/cenkalti/backoff/v4 v4.2.1 // indirect
+ github.com/cespare/xxhash/v2 v2.2.0 // indirect
github.com/chai2010/gettext-go v1.0.2 // indirect
- github.com/containerd/cgroups v1.0.4 // indirect
- github.com/containerd/containerd v1.6.8 // indirect
- github.com/containerd/continuity v0.2.2 // indirect
- github.com/containerd/stargz-snapshotter/estargz v0.10.1 // indirect
- github.com/containerd/ttrpc v1.1.0 // indirect
+ github.com/containerd/cgroups v1.1.0 // indirect
+ github.com/containerd/containerd v1.7.0 // indirect
+ github.com/containerd/continuity v0.3.0 // indirect
+ github.com/containerd/stargz-snapshotter/estargz v0.12.1 // indirect
+ github.com/containerd/ttrpc v1.2.1 // indirect
+ github.com/containerd/typeurl/v2 v2.1.0 // indirect
github.com/cyphar/filepath-securejoin v0.2.3 // indirect
github.com/davecgh/go-spew v1.1.1 // indirect
- github.com/docker/cli v20.10.19+incompatible // indirect
- github.com/docker/distribution v2.8.1+incompatible // indirect
- github.com/docker/docker v20.10.19+incompatible // indirect
+ github.com/docker/cli v20.10.21+incompatible // indirect
+ github.com/docker/distribution v2.8.2+incompatible // indirect
+ github.com/docker/docker v20.10.24+incompatible // indirect
github.com/docker/docker-credential-helpers v0.7.0 // indirect
github.com/docker/go-connections v0.4.0 // indirect
github.com/docker/go-metrics v0.0.1 // indirect
github.com/docker/go-units v0.5.0 // indirect
- github.com/emicklei/go-restful/v3 v3.9.0 // indirect
+ github.com/emicklei/go-restful/v3 v3.10.1 // indirect
github.com/evanphx/json-patch v5.6.0+incompatible // indirect
github.com/evanphx/json-patch/v5 v5.6.0 // indirect
github.com/exponent-io/jsonpath v0.0.0-20210407135951-1de76d718b3f // indirect
@@ -56,25 +58,26 @@ require (
github.com/go-git/gcfg v1.5.0 // indirect
github.com/go-git/go-billy/v5 v5.1.0 // indirect
github.com/go-git/go-git/v5 v5.3.0 // indirect
- github.com/go-gorp/gorp/v3 v3.0.2 // indirect
- github.com/go-logr/logr v1.2.3 // indirect
+ github.com/go-gorp/gorp/v3 v3.0.5 // indirect
+ github.com/go-logr/logr v1.2.4 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
- github.com/go-logr/zapr v1.2.3 // indirect
+ github.com/go-logr/zapr v1.2.4 // indirect
github.com/go-openapi/jsonpointer v0.19.6 // indirect
- github.com/go-openapi/jsonreference v0.20.1 // indirect
+ github.com/go-openapi/jsonreference v0.20.2 // indirect
github.com/go-openapi/swag v0.22.3 // indirect
github.com/gobuffalo/envy v1.6.5 // indirect
github.com/gobuffalo/flect v1.0.2 // indirect
github.com/gobwas/glob v0.2.3 // indirect
github.com/gogo/protobuf v1.3.2 // indirect
- github.com/golang-migrate/migrate/v4 v4.6.2 // indirect
+ github.com/golang-migrate/migrate/v4 v4.16.1 // indirect
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
github.com/golang/protobuf v1.5.3 // indirect
github.com/google/btree v1.1.2 // indirect
- github.com/google/cel-go v0.12.6 // indirect
+ github.com/google/cel-go v0.16.0 // indirect
github.com/google/gnostic v0.6.9 // indirect
+ github.com/google/gnostic-models v0.6.8 // indirect
github.com/google/go-cmp v0.5.9 // indirect
- github.com/google/go-containerregistry v0.8.0 // indirect
+ github.com/google/go-containerregistry v0.13.0 // indirect
github.com/google/gofuzz v1.2.0 // indirect
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect
github.com/google/uuid v1.3.0 // indirect
@@ -84,8 +87,10 @@ require (
github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0 // indirect
github.com/h2non/filetype v1.1.1 // indirect
github.com/h2non/go-is-svg v0.0.0-20160927212452-35e8c4b0612c // indirect
+ github.com/hashicorp/errwrap v1.1.0 // indirect
+ github.com/hashicorp/go-multierror v1.1.1 // indirect
github.com/hashicorp/hcl v1.0.0 // indirect
- github.com/huandu/xstrings v1.3.2 // indirect
+ github.com/huandu/xstrings v1.4.0 // indirect
github.com/iancoleman/strcase v0.2.0 // indirect
github.com/imdario/mergo v0.3.13 // indirect
github.com/inconshreveable/mousetrap v1.1.0 // indirect
@@ -95,7 +100,7 @@ require (
github.com/joho/godotenv v1.3.0 // indirect
github.com/josharian/intern v1.0.0 // indirect
github.com/json-iterator/go v1.1.12 // indirect
- github.com/klauspost/compress v1.14.1 // indirect
+ github.com/klauspost/compress v1.16.5 // indirect
github.com/kr/text v0.2.0 // indirect
github.com/lann/builder v0.0.0-20180802200727-47ae307949d0 // indirect
github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0 // indirect
@@ -107,8 +112,8 @@ require (
github.com/mattn/go-colorable v0.1.13 // indirect
github.com/mattn/go-isatty v0.0.17 // indirect
github.com/mattn/go-runewidth v0.0.14 // indirect
- github.com/mattn/go-sqlite3 v1.14.14 // indirect
- github.com/matttproud/golang_protobuf_extensions v1.0.2 // indirect
+ github.com/mattn/go-sqlite3 v1.14.16 // indirect
+ github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect
github.com/mitchellh/copystructure v1.2.0 // indirect
github.com/mitchellh/go-homedir v1.1.0 // indirect
github.com/mitchellh/go-wordwrap v1.0.1 // indirect
@@ -116,36 +121,37 @@ require (
github.com/mitchellh/reflectwalk v1.0.2 // indirect
github.com/moby/locker v1.0.1 // indirect
github.com/moby/spdystream v0.2.0 // indirect
- github.com/moby/sys/mountinfo v0.5.0 // indirect
- github.com/moby/term v0.0.0-20221205130635-1aeaba878587 // indirect
+ github.com/moby/sys/mountinfo v0.6.2 // indirect
+ github.com/moby/sys/sequential v0.5.0 // indirect
+ github.com/moby/term v0.5.0 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.2 // indirect
github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00 // indirect
github.com/morikuni/aec v1.0.0 // indirect
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
- github.com/olekukonko/tablewriter v0.0.5 // indirect
- github.com/onsi/gomega v1.27.6 // indirect
+ github.com/onsi/gomega v1.27.10 // indirect
github.com/opencontainers/go-digest v1.0.0 // indirect
- github.com/opencontainers/image-spec v1.1.0-rc2 // indirect
- github.com/operator-framework/api v0.17.4-0.20230223191600-0131a6301e42 // indirect
+ github.com/opencontainers/image-spec v1.1.0-rc2.0.20221005185240-3a7f492d3f1b // indirect
+ github.com/operator-framework/ansible-operator-plugins v1.32.0 // indirect
+ github.com/operator-framework/api v0.17.5 // indirect
github.com/operator-framework/helm-operator-plugins v0.0.12-0.20230413193425-4632388adc61 // indirect
github.com/operator-framework/java-operator-plugins v0.7.1-0.20230306190439-0eed476d2b75 // indirect
github.com/operator-framework/operator-manifest-tools v0.2.3-0.20230227155221-caa8b9e1ab12 // indirect
- github.com/operator-framework/operator-registry v1.26.5-0.20230307160312-3bfcb23fa7d0 // indirect
+ github.com/operator-framework/operator-registry v1.28.0 // indirect
github.com/otiai10/copy v1.2.0 // indirect
github.com/pelletier/go-toml v1.9.5 // indirect
github.com/peterbourgon/diskv v2.0.1+incompatible // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
- github.com/prometheus/client_golang v1.14.0 // indirect
- github.com/prometheus/client_model v0.3.0 // indirect
- github.com/prometheus/common v0.37.0 // indirect
- github.com/prometheus/procfs v0.8.0 // indirect
+ github.com/prometheus/client_golang v1.16.0 // indirect
+ github.com/prometheus/client_model v0.4.0 // indirect
+ github.com/prometheus/common v0.44.0 // indirect
+ github.com/prometheus/procfs v0.10.1 // indirect
github.com/rivo/uniseg v0.4.2 // indirect
- github.com/rubenv/sql-migrate v1.2.0 // indirect
+ github.com/rubenv/sql-migrate v1.3.1 // indirect
github.com/russross/blackfriday/v2 v2.1.0 // indirect
github.com/shopspring/decimal v1.3.1 // indirect
- github.com/sirupsen/logrus v1.9.0 // indirect
+ github.com/sirupsen/logrus v1.9.3 // indirect
github.com/spf13/afero v1.9.3 // indirect
github.com/spf13/cast v1.5.0 // indirect
github.com/spf13/cobra v1.7.0 // indirect
@@ -153,69 +159,74 @@ require (
github.com/spf13/pflag v1.0.5 // indirect
github.com/spf13/viper v1.10.0 // indirect
github.com/stoewer/go-strcase v1.2.0 // indirect
- github.com/stretchr/testify v1.8.1 // indirect
+ github.com/stretchr/testify v1.8.2 // indirect
github.com/subosito/gotenv v1.2.0 // indirect
github.com/thoas/go-funk v0.8.0 // indirect
github.com/vbatts/tar-split v0.11.2 // indirect
github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect
github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect
github.com/xeipuuv/gojsonschema v1.2.0 // indirect
- github.com/xlab/treeprint v1.1.0 // indirect
- go.etcd.io/bbolt v1.3.6 // indirect
- go.etcd.io/etcd/api/v3 v3.5.7 // indirect
- go.opencensus.io v0.23.0 // indirect
+ github.com/xlab/treeprint v1.2.0 // indirect
+ go.etcd.io/bbolt v1.3.7 // indirect
+ go.opencensus.io v0.24.0 // indirect
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.35.1 // indirect
- go.opentelemetry.io/otel v1.11.0 // indirect
- go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.10.0 // indirect
- go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.10.0 // indirect
- go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.10.0 // indirect
- go.opentelemetry.io/otel/metric v0.31.0 // indirect
- go.opentelemetry.io/otel/sdk v1.11.0 // indirect
- go.opentelemetry.io/otel/trace v1.11.0 // indirect
+ go.opentelemetry.io/otel v1.14.0 // indirect
+ go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.14.0 // indirect
+ go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.14.0 // indirect
+ go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.14.0 // indirect
+ go.opentelemetry.io/otel/metric v1.21.0 // indirect
+ go.opentelemetry.io/otel/sdk v1.14.0 // indirect
+ go.opentelemetry.io/otel/trace v1.14.0 // indirect
go.opentelemetry.io/proto/otlp v0.19.0 // indirect
go.starlark.net v0.0.0-20221010140840-6bf6f0955179 // indirect
- go.uber.org/atomic v1.10.0 // indirect
- go.uber.org/multierr v1.8.0 // indirect
- go.uber.org/zap v1.24.0 // indirect
- golang.org/x/crypto v0.1.0 // indirect
- golang.org/x/mod v0.10.0 // indirect
- golang.org/x/net v0.9.0 // indirect
- golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783 // indirect
- golang.org/x/sync v0.1.0 // indirect
- golang.org/x/sys v0.7.0 // indirect
- golang.org/x/term v0.7.0 // indirect
- golang.org/x/text v0.9.0 // indirect
+ go.uber.org/multierr v1.11.0 // indirect
+ go.uber.org/zap v1.26.0 // indirect
+ golang.org/x/crypto v0.14.0 // indirect
+ golang.org/x/exp v0.0.0-20231006140011-7918f672742d // indirect
+ golang.org/x/mod v0.13.0 // indirect
+ golang.org/x/net v0.16.0 // indirect
+ golang.org/x/oauth2 v0.8.0 // indirect
+ golang.org/x/sync v0.4.0 // indirect
+ golang.org/x/sys v0.13.0 // indirect
+ golang.org/x/term v0.13.0 // indirect
+ golang.org/x/text v0.13.0 // indirect
golang.org/x/time v0.3.0 // indirect
- golang.org/x/tools v0.8.0 // indirect
+ golang.org/x/tools v0.14.0 // indirect
google.golang.org/appengine v1.6.7 // indirect
- google.golang.org/genproto v0.0.0-20221014173430-6e2ab493f96b // indirect
- google.golang.org/grpc v1.51.0 // indirect
+ google.golang.org/genproto v0.0.0-20230526161137-0005af68ea54 // indirect
+ google.golang.org/genproto/googleapis/api v0.0.0-20230525234035-dd9d682886f9 // indirect
+ google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19 // indirect
+ google.golang.org/grpc v1.54.0 // indirect
+ gopkg.in/evanphx/json-patch.v5 v5.6.0 // indirect
gopkg.in/inf.v0 v0.9.1 // indirect
gopkg.in/ini.v1 v1.66.2 // indirect
gopkg.in/warnings.v0 v0.1.2 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
- helm.sh/helm/v3 v3.10.3 // indirect
- k8s.io/api v0.27.1 // indirect
- k8s.io/apiextensions-apiserver v0.27.1 // indirect
- k8s.io/apimachinery v0.27.1 // indirect
- k8s.io/apiserver v0.27.1 // indirect
+ helm.sh/helm/v3 v3.11.3 // indirect
+ k8s.io/api v0.28.0 // indirect
+ k8s.io/apiextensions-apiserver v0.28.0 // indirect
+ k8s.io/apimachinery v0.28.0 // indirect
+ k8s.io/apiserver v0.28.0 // indirect
k8s.io/cli-runtime v0.26.2 // indirect
- k8s.io/client-go v0.27.1 // indirect
- k8s.io/component-base v0.27.1 // indirect
- k8s.io/klog/v2 v2.90.1 // indirect
- k8s.io/kube-openapi v0.0.0-20230308215209-15aac26d736a // indirect
+ k8s.io/client-go v0.28.0 // indirect
+ k8s.io/component-base v0.28.0 // indirect
+ k8s.io/klog/v2 v2.100.1 // indirect
+ k8s.io/kube-openapi v0.0.0-20230717233707-2695361300d9 // indirect
k8s.io/kubectl v0.26.2 // indirect
- k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5 // indirect
- oras.land/oras-go v1.2.0 // indirect
+ k8s.io/utils v0.0.0-20230711102312-30195339c3c7 // indirect
+ oras.land/oras-go v1.2.2 // indirect
rsc.io/letsencrypt v0.0.3 // indirect
- sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.1.1 // indirect
- sigs.k8s.io/controller-runtime v0.14.5 // indirect
+ sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.1.2 // indirect
+ sigs.k8s.io/controller-runtime v0.14.6 // indirect
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
sigs.k8s.io/kubebuilder/v3 v3.9.1 // indirect
- sigs.k8s.io/kustomize/api v0.12.1 // indirect
- sigs.k8s.io/kustomize/cmd/config v0.10.9 // indirect
- sigs.k8s.io/kustomize/kyaml v0.13.9 // indirect
+ sigs.k8s.io/kustomize/api v0.16.0 // indirect
+ sigs.k8s.io/kustomize/cmd/config v0.13.0 // indirect
+ sigs.k8s.io/kustomize/kyaml v0.16.0 // indirect
sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect
- sigs.k8s.io/yaml v1.3.0 // indirect
+ sigs.k8s.io/yaml v1.4.0 // indirect
)
+
+// requested older version does not contain go.opentelemetry.io/otel/metric/instrument/syncfloat64
+replace go.opentelemetry.io/otel/metric v1.21.0 => go.opentelemetry.io/otel/metric v0.35.0
diff --git a/tools/go.sum b/tools/go.sum
index 4d573a6c6..5e1db2480 100644
--- a/tools/go.sum
+++ b/tools/go.sum
@@ -1,8 +1,5 @@
-bazil.org/fuse v0.0.0-20160811212531-371fbbdaa898/go.mod h1:Xbm+BRKSBEpa4q4hTSxohYNQpsxXPbPry4JJWOB3LB8=
-bazil.org/fuse v0.0.0-20200407214033-5883e5a4b512/go.mod h1:FbcW6z/2VytnFDhZfumh8Ss8zxHE6qpMP5sHTRe0EaM=
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.37.4/go.mod h1:NHPJ89PdicEuT9hdPXMROBD91xc5uRDxsMtSB16k7hw=
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=
@@ -23,15 +20,6 @@ cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPT
cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg=
cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8=
cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0=
-cloud.google.com/go v0.83.0/go.mod h1:Z7MJUsANfY0pYPdw0lbnivPx4/vhy/e2FEkSkF7vAVY=
-cloud.google.com/go v0.84.0/go.mod h1:RazrYuxIK6Kb7YrzzhPoLmCVzl7Sup4NrbKPg8KHSUM=
-cloud.google.com/go v0.87.0/go.mod h1:TpDYlFy7vuLzZMMZ+B6iRiELaY7z/gJPaqbMx6mlWcY=
-cloud.google.com/go v0.90.0/go.mod h1:kRX0mNRHe0e2rC6oNakvwQqzyDmg57xJ+SZU1eT2aDQ=
-cloud.google.com/go v0.93.3/go.mod h1:8utlLll2EF5XMAV15woO4lSbWQlk8rer9aLOfLh7+YI=
-cloud.google.com/go v0.94.1/go.mod h1:qAlAugsXlC+JWO+Bke5vCtc9ONxjQT3drlTTnAplMW4=
-cloud.google.com/go v0.97.0/go.mod h1:GF7l59pYBVlXQIBLx3a761cZ41F9bBH3JUlihCt2Udc=
-cloud.google.com/go v0.98.0/go.mod h1:ua6Ush4NALrHk5QXDWnjvZHN93OuF0HfuEPq9I1X0cM=
-cloud.google.com/go v0.99.0/go.mod h1:w0Xx2nLzqWJPuozYQX+hFfCSI8WioryfRDzkoI/Y2ZA=
cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o=
cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE=
cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc=
@@ -41,7 +29,6 @@ cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM7
cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE=
cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk=
cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk=
-cloud.google.com/go/firestore v1.6.1/go.mod h1:asNXNOzBdyVQmEU+ggO8UPodTkEVFW5Qx+rwHnAz+EY=
cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I=
cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw=
cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA=
@@ -53,149 +40,79 @@ cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RX
cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0=
cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo=
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
-github.com/Azure/azure-sdk-for-go v16.2.1+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-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8=
-github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E=
-github.com/Azure/go-autorest v10.8.1+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24=
-github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24=
-github.com/Azure/go-autorest/autorest v0.11.1/go.mod h1:JFgpikqFJ/MleTTxwepExTKnFUKKszPS8UavbQYUMuw=
-github.com/Azure/go-autorest/autorest/adal v0.9.0/go.mod h1:/c022QCutn2P7uY+/oQWWNcK9YU+MH96NgK+jErpbcg=
-github.com/Azure/go-autorest/autorest/adal v0.9.5/go.mod h1:B7KF7jKIeC9Mct5spmyCB/A8CG/sEz1vwIRGv/bbw7A=
-github.com/Azure/go-autorest/autorest/date v0.3.0/go.mod h1:BI0uouVdmngYNUzGWeSYnokU+TrmwEsOqdt8Y6sso74=
-github.com/Azure/go-autorest/autorest/mocks v0.4.0/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k=
-github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k=
-github.com/Azure/go-autorest/logger v0.2.0/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8=
-github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU=
+github.com/AdaLogics/go-fuzz-headers v0.0.0-20230106234847-43070de90fa1 h1:EKPd1INOIyr5hWOWhvpmQpY6tKjeG0hT1s3AMC/9fic=
+github.com/AdaLogics/go-fuzz-headers v0.0.0-20230106234847-43070de90fa1/go.mod h1:VzwV+t+dZ9j/H867F1M2ziD+yLHtB46oM35FxxMJ4d0=
+github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25UVaW/CKtUDjefjrs0SPonmDGUVOYP0=
+github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E=
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
-github.com/BurntSushi/toml v1.2.0 h1:Rt8g24XnyGTyglgET/PRUNlrUeu9F5L+7FilkXfZgs0=
-github.com/BurntSushi/toml v1.2.0/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ=
+github.com/BurntSushi/toml v1.2.1 h1:9F2/+DoOYIOksmaJFPw1tGFy1eDnIJXg+UHjuD8lTak=
+github.com/BurntSushi/toml v1.2.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ=
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
github.com/DATA-DOG/go-sqlmock v1.5.0 h1:Shsta01QNfFxHCfpW6YH2STWB0MudeXXEWMr20OEh60=
-github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ=
github.com/MakeNowJust/heredoc v1.0.0 h1:cXCdzVdstXyiTqTvfqk9SDHpKNjxuom+DOlyEeQ4pzQ=
github.com/MakeNowJust/heredoc v1.0.0/go.mod h1:mG5amYoWBHf8vpLOuehzbGGw0EHxpZZ6lCpQ4fNJ8LE=
-github.com/Masterminds/goutils v1.1.0/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU=
github.com/Masterminds/goutils v1.1.1 h1:5nUrii3FMTL5diU80unEVvNevw1nH4+ZV4DSLVJLSYI=
github.com/Masterminds/goutils v1.1.1/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU=
-github.com/Masterminds/semver/v3 v3.1.1 h1:hLg3sBzpNErnxhQtUy/mmLR2I9foDujNK030IGemrRc=
github.com/Masterminds/semver/v3 v3.1.1/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0cBrbBpGY/8hQs=
-github.com/Masterminds/sprig/v3 v3.2.0/go.mod h1:tWhwTbUTndesPNeF0C900vKoq283u6zp4APT9vaF3SI=
-github.com/Masterminds/sprig/v3 v3.2.2 h1:17jRggJu518dr3QaafizSXOjKYp94wKfABxUmyxvxX8=
-github.com/Masterminds/sprig/v3 v3.2.2/go.mod h1:UoaO7Yp8KlPnJIYWTFkMaqPUYKTfGFPhxNuwnnxkKlk=
+github.com/Masterminds/semver/v3 v3.2.0 h1:3MEsd0SM6jqZojhjLWWeBY+Kcjy9i6MQAeY7YgDP83g=
+github.com/Masterminds/semver/v3 v3.2.0/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ=
+github.com/Masterminds/sprig/v3 v3.2.1/go.mod h1:UoaO7Yp8KlPnJIYWTFkMaqPUYKTfGFPhxNuwnnxkKlk=
+github.com/Masterminds/sprig/v3 v3.2.3 h1:eL2fZNezLomi0uOLqjQoN6BfsDD+fyLtgbJMAj9n6YA=
+github.com/Masterminds/sprig/v3 v3.2.3/go.mod h1:rXcFaZ2zZbLRJv/xSysmlgIM1u11eBaRMhvYXJNkGuM=
github.com/Masterminds/squirrel v1.5.3 h1:YPpoceAcxuzIljlr5iWpNKaql7hLeG1KLSrhvdHpkZc=
github.com/Masterminds/squirrel v1.5.3/go.mod h1:NNaOrjSoIDfDA40n7sr2tPNZRfjzjA400rg+riTZj10=
-github.com/Microsoft/go-winio v0.4.11/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA=
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/go-winio v0.4.16-0.20201130162521-d1ffc52c7331/go.mod h1:XB6nPKklQyQ7GC9LdcBEcBl8PF76WugXOPRXwdLnMv0=
github.com/Microsoft/go-winio v0.4.16/go.mod h1:XB6nPKklQyQ7GC9LdcBEcBl8PF76WugXOPRXwdLnMv0=
-github.com/Microsoft/go-winio v0.4.17-0.20210211115548-6eac466e5fa3/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84=
-github.com/Microsoft/go-winio v0.4.17-0.20210324224401-5516f17a5958/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84=
-github.com/Microsoft/go-winio v0.4.17/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84=
-github.com/Microsoft/go-winio v0.5.1/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84=
-github.com/Microsoft/go-winio v0.6.0 h1:slsWYD/zyx7lCXoZVlvQrj0hPTM1HI4+v1sIda2yDvg=
-github.com/Microsoft/go-winio v0.6.0/go.mod h1:cTAf44im0RAYeL23bpB+fzCyDH2MJiz2BO69KH/soAE=
-github.com/Microsoft/hcsshim v0.8.6/go.mod h1:Op3hHsoHPAvb6lceZHDtd9OkTew38wNoXnJs8iY7rUg=
-github.com/Microsoft/hcsshim v0.8.7-0.20190325164909-8abdbb8205e4/go.mod h1:Op3hHsoHPAvb6lceZHDtd9OkTew38wNoXnJs8iY7rUg=
-github.com/Microsoft/hcsshim v0.8.7/go.mod h1:OHd7sQqRFrYd3RmSgbgji+ctCwkbq2wbEYNSzOYtcBQ=
-github.com/Microsoft/hcsshim v0.8.9/go.mod h1:5692vkUqntj1idxauYlpoINNKeqCiG6Sg38RRsjT5y8=
-github.com/Microsoft/hcsshim v0.8.14/go.mod h1:NtVKoYxQuTLx6gEq0L96c9Ju4JbRJ4nY2ow3VK6a9Lg=
-github.com/Microsoft/hcsshim v0.8.15/go.mod h1:x38A4YbHbdxJtc0sF6oIz+RG0npwSCAvn69iY6URG00=
-github.com/Microsoft/hcsshim v0.8.16/go.mod h1:o5/SZqmR7x9JNKsW3pu+nqHm0MF8vbA+VxGOoXdC600=
-github.com/Microsoft/hcsshim v0.8.21/go.mod h1:+w2gRZ5ReXQhFOrvSQeNfhrYB/dg3oDwTOcER2fw4I4=
-github.com/Microsoft/hcsshim v0.8.23/go.mod h1:4zegtUJth7lAvFyc6cH2gGQ5B3OFQim01nnU2M8jKDg=
-github.com/Microsoft/hcsshim v0.9.4 h1:mnUj0ivWy6UzbB1uLFqKR6F+ZyiDc7j4iGgHTpO+5+I=
-github.com/Microsoft/hcsshim v0.9.4/go.mod h1:7pLA8lDk46WKDWlVsENo92gC0XFa8rbKfyFRBqxEbCc=
-github.com/Microsoft/hcsshim/test v0.0.0-20201218223536-d3e5debf77da/go.mod h1:5hlzMzRKMLyo42nCZ9oml8AdTlq/0cvIaBv6tK1RehU=
-github.com/Microsoft/hcsshim/test v0.0.0-20210227013316-43a75bb4edd3/go.mod h1:mw7qgWloBUl75W/gVH3cQszUg1+gUITj7D6NY7ywVnY=
-github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
-github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5/go.mod h1:lmUJ/7eu/Q8D7ML55dXQrVaamCz2vxCfdQBasLZfHKk=
+github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow=
+github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM=
+github.com/Microsoft/hcsshim v0.10.0-rc.7 h1:HBytQPxcv8Oy4244zbQbe6hnOnx544eL5QPUqhJldz8=
+github.com/Microsoft/hcsshim v0.10.0-rc.7/go.mod h1:ILuwjA+kNW+MrN/w5un7n3mTqkwsFu4Bp05/okFUZlE=
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
-github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
-github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
-github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
-github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
github.com/Shopify/logrus-bugsnag v0.0.0-20171204204709-577dee27f20d h1:UrqY+r/OJnIp5u0s1SbQ8dVfLCZJsnvazdBP5hS4iRs=
-github.com/Shopify/logrus-bugsnag v0.0.0-20171204204709-577dee27f20d/go.mod h1:HI8ITrYtUY+O+ZhtlqUnD8+KwNPOyugEhfP9fdUIaEQ=
-github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo=
-github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI=
+github.com/a8m/expect v1.0.0/go.mod h1:4IwSCMumY49ScypDnjNbYEjgVeqy1/U2cEs3Lat96eA=
github.com/adrg/xdg v0.4.0 h1:RzRqFcjH4nE5C6oTAxhBtoE2IRyjBSa62SCbyPidvls=
github.com/adrg/xdg v0.4.0/go.mod h1:N6ag73EX4wyxeaoeHctc1mas01KZgsj5tYiAIwqJE/E=
github.com/alcortesm/tgz v0.0.0-20161220082320-9c5fe88206d7/go.mod h1:6zEj6s6u/ghQa61ZWa/C2Aw3RkjiTBOix7dkqa1VLIs=
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
-github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
-github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
-github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho=
-github.com/alexflint/go-filemutex v0.0.0-20171022225611-72bdc8eae2ae/go.mod h1:CgnQgUtFrFz9mxFNtED3jI5tLDjKlOM+oUF/sTk6ps0=
github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c=
github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
-github.com/antlr/antlr4/runtime/Go/antlr v1.4.10 h1:yL7+Jz0jTC6yykIK/Wh74gnTJnrGr5AyrNMXuA0gves=
-github.com/antlr/antlr4/runtime/Go/antlr v1.4.10/go.mod h1:F7bn7fEU90QkQ3tnmaTx3LTKLEDqnwWODIYppRQ5hnY=
-github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ=
+github.com/antlr/antlr4/runtime/Go/antlr/v4 v4.0.0-20230305170008-8188dc5388df h1:7RFfzj4SSt6nnvCPbCqijJi1nWCd+TqAT3bYCStRC18=
+github.com/antlr/antlr4/runtime/Go/antlr/v4 v4.0.0-20230305170008-8188dc5388df/go.mod h1:pSwJ0fSY5KhvocuWSx4fz3BA8OrA1bQn+K1Eli3BRwM=
github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=
github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=
github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY=
-github.com/armon/go-metrics v0.3.10/go.mod h1:4O98XIr/9W0sxpJ8UaYkvjk10Iff7SnFrb4QAOwNTFc=
github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio=
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs=
-github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
-github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d h1:Byv0BzEl3/e6D5CLfI0j/7hiIEtvGVFPCZ7Ei2oq8iQ=
-github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw=
-github.com/aws/aws-sdk-go v1.15.11/go.mod h1:mFuSZ37Z9YOHbQEwBWztmVzqXrEkub65tZoCYDt7FT0=
-github.com/aws/aws-sdk-go v1.17.7/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
+github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 h1:DklsrG3dyBCFEj5IhUbnKptjxatkF07cF2ak3yi77so=
+github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw=
github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
-github.com/benbjohnson/clock v1.3.0 h1:ip6w0uFQkncKQ979AypyG0ER7mqUSBdKLOgAle/AT8A=
-github.com/beorn7/perks v0.0.0-20160804104726-4c0e84591b9a/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
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/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs=
-github.com/bitly/go-hostpool v0.0.0-20171023180738-a3a6125de932/go.mod h1:NOuUCSz6Q9T7+igc/hlvDOUdtWKryOrtFyIVABv/p7k=
-github.com/bitly/go-simplejson v0.5.0/go.mod h1:cXHtHw4XUPsvGaxgjIAn8PhEWG9NfngEKAMDJEczWVA=
-github.com/bits-and-blooms/bitset v1.2.0/go.mod h1:gIdJ4wp64HaoK2YrL1Q5/N7Y16edYb8uY+O0FJTyyDA=
github.com/bketelsen/crypt v0.0.4/go.mod h1:aI6NrJ0pMGgvZKL1iVgXLnfIFJtfV+bKCoqOes/6LfM=
-github.com/blang/semver v3.1.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk=
-github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk=
github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM=
github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ=
-github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4=
-github.com/bshuster-repo/logrus-logstash-hook v0.4.1/go.mod h1:zsTqEiSzDgAa/8GZR7E1qaXrhYNDKBYy5/dWPTIflbk=
github.com/bshuster-repo/logrus-logstash-hook v1.0.0 h1:e+C0SB5R1pu//O4MQ3f9cFuPGoOVeF2fE4Og9otCc70=
-github.com/buger/jsonparser v0.0.0-20180808090653-f4dd9f5a6b44/go.mod h1:bbYlZJ7hK1yFx9hf58LP0zeX7UjIGs20ufpu3evjr+s=
github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0=
-github.com/bugsnag/bugsnag-go v0.0.0-20141110184014-b1d153021fcd/go.mod h1:2oa8nejYd4cQ/b0hMIopN0lCRxU0bueqREvZLWFrtK8=
github.com/bugsnag/bugsnag-go v1.5.3 h1:yeRUT3mUE13jL1tGwvoQsKdVbAsQx9AJ+fqahKveP04=
-github.com/bugsnag/osext v0.0.0-20130617224835-0dd3f918b21b/go.mod h1:obH5gd0BsqsP2LwDJ9aOkm/6J86V6lyAXCoQWGw3K50=
-github.com/bugsnag/panicwrap v0.0.0-20151223152923-e2c28503fcd0/go.mod h1:D/8v3kj0zr8ZAKg1AQ6crr+5VwKN5eIywRkfhyM/+dE=
github.com/bugsnag/panicwrap v1.2.0 h1:OzrKrRvXis8qEvOkfcxNcYbOd2O7xXS2nnKMEMABFQA=
-github.com/cenkalti/backoff/v4 v4.1.1/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw=
-github.com/cenkalti/backoff/v4 v4.1.3 h1:cFAlzYUlVYDysBEH2T5hyJZMh3+5+WCBvSnK6Q8UtC4=
-github.com/cenkalti/backoff/v4 v4.1.3/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw=
+github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM=
+github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE=
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
-github.com/census-instrumentation/opencensus-proto v0.3.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
-github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE=
-github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
+github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44=
+github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
github.com/chai2010/gettext-go v1.0.2 h1:1Lwwip6Q2QGsAdl/ZKPCwTe9fe0CjlUbqj5bFNSjIRk=
github.com/chai2010/gettext-go v1.0.2/go.mod h1:y+wnP2cHYaVj19NZhYKAwEMH2CI1gNHeQQ+5AjwawxA=
-github.com/checkpoint-restore/go-criu/v4 v4.1.0/go.mod h1:xUQBLp4RLc5zJtWY++yjOoMoB5lihDt7fai+75m+rGw=
-github.com/checkpoint-restore/go-criu/v5 v5.0.0/go.mod h1:cfwC0EG7HMUenopBsUf9d89JlCLQIfgVcNsNN0t6T2M=
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-20200110133405-4032b1d8aae3/go.mod h1:MA5e5Lr8slmEg9bt0VpxxWqJlO4iwu3FBdHUzV7wQVg=
-github.com/cilium/ebpf v0.0.0-20200702112145-1c8d4c9ef775/go.mod h1:7cR51M8ViRLIdUjrmSXlK9pkrsDlLHbO8jiB8X8JnOc=
-github.com/cilium/ebpf v0.2.0/go.mod h1:To2CFviqOWL/M0gIMsvSMlqe7em/l1ALkX1PyjrX2Qs=
-github.com/cilium/ebpf v0.4.0/go.mod h1:4tRaxcgiL706VnOzHOdBlY8IEAIdxINsQBcU4xJJXRs=
-github.com/cilium/ebpf v0.6.2/go.mod h1:4tRaxcgiL706VnOzHOdBlY8IEAIdxINsQBcU4xJJXRs=
-github.com/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6Dob7S7YxXgwXpfOuvO54S+tGdZdw9fuRZt25Ag=
-github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp5jckzBHf4XRpQvBOLI+I=
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
@@ -204,209 +121,59 @@ github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XP
github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
-github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
-github.com/cncf/xds/go v0.0.0-20211130200136-a8f946100490/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
-github.com/cockroachdb/apd v1.1.0/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMeY4+DwBQ=
-github.com/cockroachdb/cockroach-go v0.0.0-20181001143604-e0a95dfd547c/go.mod h1:XGLbWH/ujMcbPbhZq52Nv6UrCghb1yGn//133kEsvDk=
-github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8=
-github.com/containerd/aufs v0.0.0-20200908144142-dab0cbea06f4/go.mod h1:nukgQABAEopAHvB6j7cnP5zJ+/3aVcE7hCYqvIwAHyE=
-github.com/containerd/aufs v0.0.0-20201003224125-76a6863f2989/go.mod h1:AkGGQs9NM2vtYHaUen+NljV0/baGCAPELGm2q9ZXpWU=
-github.com/containerd/aufs v0.0.0-20210316121734-20793ff83c97/go.mod h1:kL5kd6KM5TzQjR79jljyi4olc1Vrx6XBlcyj3gNv2PU=
-github.com/containerd/aufs v1.0.0/go.mod h1:kL5kd6KM5TzQjR79jljyi4olc1Vrx6XBlcyj3gNv2PU=
-github.com/containerd/btrfs v0.0.0-20201111183144-404b9149801e/go.mod h1:jg2QkJcsabfHugurUvvPhS3E08Oxiuh5W/g1ybB4e0E=
-github.com/containerd/btrfs v0.0.0-20210316141732-918d888fb676/go.mod h1:zMcX3qkXTAi9GI50+0HOeuV8LU2ryCE/V2vG/ZBiTss=
-github.com/containerd/btrfs v1.0.0/go.mod h1:zMcX3qkXTAi9GI50+0HOeuV8LU2ryCE/V2vG/ZBiTss=
-github.com/containerd/cgroups v0.0.0-20190717030353-c4b9ac5c7601/go.mod h1:X9rLEHIqSf/wfK8NsPqxJmeZgW4pcfzdXITDrUSJ6uI=
-github.com/containerd/cgroups v0.0.0-20190919134610-bf292b21730f/go.mod h1:OApqhQ4XNSNC13gXIwDjhOQxjWa/NxkwZXJ1EvqT0ko=
-github.com/containerd/cgroups v0.0.0-20200531161412-0dbf7f05ba59/go.mod h1:pA0z1pT8KYB3TCXK/ocprsh7MAkoW8bZVzPdih9snmM=
-github.com/containerd/cgroups v0.0.0-20200710171044-318312a37340/go.mod h1:s5q4SojHctfxANBDvMeIaIovkq29IP48TKAxnhYRxvo=
-github.com/containerd/cgroups v0.0.0-20200824123100-0b889c03f102/go.mod h1:s5q4SojHctfxANBDvMeIaIovkq29IP48TKAxnhYRxvo=
-github.com/containerd/cgroups v0.0.0-20210114181951-8a68de567b68/go.mod h1:ZJeTFisyysqgcCdecO57Dj79RfL0LNeGiFUqLYQRYLE=
-github.com/containerd/cgroups v1.0.1/go.mod h1:0SJrPIenamHDcZhEcJMNBB85rHcUsw4f25ZfBiPYRkU=
-github.com/containerd/cgroups v1.0.4 h1:jN/mbWBEaz+T1pi5OFtnkQ+8qnmEbAr1Oo1FRm5B0dA=
-github.com/containerd/cgroups v1.0.4/go.mod h1:nLNQtsF7Sl2HxNebu77i1R0oDlhiTG+kO4JTrUzo6IA=
-github.com/containerd/console v0.0.0-20180822173158-c12b1e7919c1/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw=
-github.com/containerd/console v0.0.0-20181022165439-0650fd9eeb50/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw=
-github.com/containerd/console v0.0.0-20191206165004-02ecf6a7291e/go.mod h1:8Pf4gM6VEbTNRIT26AyyU7hxdQU3MvAvxVI0sc00XBE=
-github.com/containerd/console v1.0.1/go.mod h1:XUsP6YE/mKtz6bxc+I8UiKKTP04qjQL4qcS3XoQ5xkw=
-github.com/containerd/console v1.0.2/go.mod h1:ytZPjGgY2oeTkAONYafi2kSj0aYggsf8acV1PGKCbzQ=
-github.com/containerd/containerd v1.2.7/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
-github.com/containerd/containerd v1.2.10/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
-github.com/containerd/containerd v1.3.0-beta.2.0.20190828155532-0293cbd26c69/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
-github.com/containerd/containerd v1.3.0/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
-github.com/containerd/containerd v1.3.1-0.20191213020239-082f7e3aed57/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
-github.com/containerd/containerd v1.3.2/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
-github.com/containerd/containerd v1.4.0-beta.2.0.20200729163537-40b22ef07410/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
-github.com/containerd/containerd v1.4.1/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
-github.com/containerd/containerd v1.4.3/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
-github.com/containerd/containerd v1.4.9/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
-github.com/containerd/containerd v1.5.0-beta.1/go.mod h1:5HfvG1V2FsKesEGQ17k5/T7V960Tmcumvqn8Mc+pCYQ=
-github.com/containerd/containerd v1.5.0-beta.3/go.mod h1:/wr9AVtEM7x9c+n0+stptlo/uBBoBORwEx6ardVcmKU=
-github.com/containerd/containerd v1.5.0-beta.4/go.mod h1:GmdgZd2zA2GYIBZ0w09ZvgqEq8EfBp/m3lcVZIvPHhI=
-github.com/containerd/containerd v1.5.0-rc.0/go.mod h1:V/IXoMqNGgBlabz3tHD2TWDoTJseu1FGOKuoA4nNb2s=
-github.com/containerd/containerd v1.5.1/go.mod h1:0DOxVqwDy2iZvrZp2JUx/E+hS0UNTVn7dJnIOwtYR4g=
-github.com/containerd/containerd v1.5.7/go.mod h1:gyvv6+ugqY25TiXxcZC3L5yOeYgEw0QMhscqVp1AR9c=
-github.com/containerd/containerd v1.5.8/go.mod h1:YdFSv5bTFLpG2HIYmfqDpSYYTDX+mc5qtSuYx1YUb/s=
-github.com/containerd/containerd v1.6.8 h1:h4dOFDwzHmqFEP754PgfgTeVXFnLiRc6kiqC7tplDJs=
-github.com/containerd/containerd v1.6.8/go.mod h1:By6p5KqPK0/7/CgO/A6t/Gz+CUYUu2zf1hUaaymVXB0=
-github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y=
-github.com/containerd/continuity v0.0.0-20190815185530-f2a389ac0a02/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y=
-github.com/containerd/continuity v0.0.0-20191127005431-f65d91d395eb/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y=
-github.com/containerd/continuity v0.0.0-20200710164510-efbc4488d8fe/go.mod h1:cECdGN1O8G9bgKTlLhuPJimka6Xb/Gg7vYzCTNVxhvo=
-github.com/containerd/continuity v0.0.0-20201208142359-180525291bb7/go.mod h1:kR3BEg7bDFaEddKm54WSmrol1fKWDU1nKYkgrcgZT7Y=
-github.com/containerd/continuity v0.0.0-20210208174643-50096c924a4e/go.mod h1:EXlVlkqNba9rJe3j7w3Xa924itAMLgZH4UD/Q4PExuQ=
-github.com/containerd/continuity v0.1.0/go.mod h1:ICJu0PwR54nI0yPEnJ6jcS+J7CZAUXrLh8lPo2knzsM=
-github.com/containerd/continuity v0.2.2 h1:QSqfxcn8c+12slxwu00AtzXrsami0MJb/MQs9lOLHLA=
-github.com/containerd/continuity v0.2.2/go.mod h1:pWygW9u7LtS1o4N/Tn0FoCFDIXZ7rxcMX7HX1Dmibvk=
-github.com/containerd/fifo v0.0.0-20180307165137-3d5202aec260/go.mod h1:ODA38xgv3Kuk8dQz2ZQXpnv/UZZUHUCL7pnLehbXgQI=
-github.com/containerd/fifo v0.0.0-20190226154929-a9fb20d87448/go.mod h1:ODA38xgv3Kuk8dQz2ZQXpnv/UZZUHUCL7pnLehbXgQI=
-github.com/containerd/fifo v0.0.0-20200410184934-f15a3290365b/go.mod h1:jPQ2IAeZRCYxpS/Cm1495vGFww6ecHmMk1YJH2Q5ln0=
-github.com/containerd/fifo v0.0.0-20201026212402-0724c46b320c/go.mod h1:jPQ2IAeZRCYxpS/Cm1495vGFww6ecHmMk1YJH2Q5ln0=
-github.com/containerd/fifo v0.0.0-20210316144830-115abcc95a1d/go.mod h1:ocF/ME1SX5b1AOlWi9r677YJmCPSwwWnQ9O123vzpE4=
-github.com/containerd/fifo v1.0.0/go.mod h1:ocF/ME1SX5b1AOlWi9r677YJmCPSwwWnQ9O123vzpE4=
-github.com/containerd/go-cni v1.0.1/go.mod h1:+vUpYxKvAF72G9i1WoDOiPGRtQpqsNW/ZHtSlv++smU=
-github.com/containerd/go-cni v1.0.2/go.mod h1:nrNABBHzu0ZwCug9Ije8hL2xBCYh/pjfMb1aZGrrohk=
-github.com/containerd/go-runc v0.0.0-20180907222934-5a6d9f37cfa3/go.mod h1:IV7qH3hrUgRmyYrtgEeGWJfWbgcHL9CSRruz2Vqcph0=
-github.com/containerd/go-runc v0.0.0-20190911050354-e029b79d8cda/go.mod h1:IV7qH3hrUgRmyYrtgEeGWJfWbgcHL9CSRruz2Vqcph0=
-github.com/containerd/go-runc v0.0.0-20200220073739-7016d3ce2328/go.mod h1:PpyHrqVs8FTi9vpyHwPwiNEGaACDxT/N/pLcvMSRA9g=
-github.com/containerd/go-runc v0.0.0-20201020171139-16b287bc67d0/go.mod h1:cNU0ZbCgCQVZK4lgG3P+9tn9/PaJNmoDXPpoJhDR+Ok=
-github.com/containerd/go-runc v1.0.0/go.mod h1:cNU0ZbCgCQVZK4lgG3P+9tn9/PaJNmoDXPpoJhDR+Ok=
-github.com/containerd/imgcrypt v1.0.1/go.mod h1:mdd8cEPW7TPgNG4FpuP3sGBiQ7Yi/zak9TYCG3juvb0=
-github.com/containerd/imgcrypt v1.0.4-0.20210301171431-0ae5c75f59ba/go.mod h1:6TNsg0ctmizkrOgXRNQjAPFWpMYRWuiB6dSF4Pfa5SA=
-github.com/containerd/imgcrypt v1.1.1-0.20210312161619-7ed62a527887/go.mod h1:5AZJNI6sLHJljKuI9IHnw1pWqo/F0nGDOuR9zgTs7ow=
-github.com/containerd/imgcrypt v1.1.1/go.mod h1:xpLnwiQmEUJPvQoAapeb2SNCxz7Xr6PJrXQb0Dpc4ms=
-github.com/containerd/nri v0.0.0-20201007170849-eb1350a75164/go.mod h1:+2wGSDGFYfE5+So4M5syatU0N0f0LbWpuqyMi4/BE8c=
-github.com/containerd/nri v0.0.0-20210316161719-dbaa18c31c14/go.mod h1:lmxnXF6oMkbqs39FiCt1s0R2HSMhcLel9vNL3m4AaeY=
-github.com/containerd/nri v0.1.0/go.mod h1:lmxnXF6oMkbqs39FiCt1s0R2HSMhcLel9vNL3m4AaeY=
-github.com/containerd/stargz-snapshotter/estargz v0.4.1/go.mod h1:x7Q9dg9QYb4+ELgxmo4gBUeJB0tl5dqH1Sdz0nJU1QM=
-github.com/containerd/stargz-snapshotter/estargz v0.10.1 h1:hd1EoVjI2Ax8Cr64tdYqnJ4i4pZU49FkEf5kU8KxQng=
-github.com/containerd/stargz-snapshotter/estargz v0.10.1/go.mod h1:aE5PCyhFMwR8sbrErO5eM2GcvkyXTTJremG883D4qF0=
-github.com/containerd/ttrpc v0.0.0-20190828154514-0e0f228740de/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o=
-github.com/containerd/ttrpc v0.0.0-20190828172938-92c8520ef9f8/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o=
-github.com/containerd/ttrpc v0.0.0-20191028202541-4f1b8fe65a5c/go.mod h1:LPm1u0xBw8r8NOKoOdNMeVHSawSsltak+Ihv+etqsE8=
-github.com/containerd/ttrpc v1.0.1/go.mod h1:UAxOpgT9ziI0gJrmKvgcZivgxOp8iFPSk8httJEt98Y=
-github.com/containerd/ttrpc v1.0.2/go.mod h1:UAxOpgT9ziI0gJrmKvgcZivgxOp8iFPSk8httJEt98Y=
-github.com/containerd/ttrpc v1.1.0 h1:GbtyLRxb0gOLR0TYQWt3O6B0NvT8tMdorEHqIQo/lWI=
-github.com/containerd/ttrpc v1.1.0/go.mod h1:XX4ZTnoOId4HklF4edwc4DcqskFZuvXB1Evzy5KFQpQ=
-github.com/containerd/typeurl v0.0.0-20180627222232-a93fcdb778cd/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc=
-github.com/containerd/typeurl v0.0.0-20190911142611-5eb25027c9fd/go.mod h1:GeKYzf2pQcqv7tJ0AoCuuhtnqhva5LNU3U+OyKxxJpk=
-github.com/containerd/typeurl v1.0.1/go.mod h1:TB1hUtrpaiO88KEK56ijojHS1+NeF0izUACaJW2mdXg=
-github.com/containerd/typeurl v1.0.2 h1:Chlt8zIieDbzQFzXzAeBEF92KhExuE4p9p92/QmY7aY=
-github.com/containerd/typeurl v1.0.2/go.mod h1:9trJWW2sRlGub4wZJRTW83VtbOLS6hwcDZXTn6oPz9s=
-github.com/containerd/zfs v0.0.0-20200918131355-0a33824f23a2/go.mod h1:8IgZOBdv8fAgXddBT4dBXJPtxyRsejFIpXoklgxgEjw=
-github.com/containerd/zfs v0.0.0-20210301145711-11e8f1707f62/go.mod h1:A9zfAbMlQwE+/is6hi0Xw8ktpL+6glmqZYtevJgaB8Y=
-github.com/containerd/zfs v0.0.0-20210315114300-dde8f0fda960/go.mod h1:m+m51S1DvAP6r3FcmYCp54bQ34pyOwTieQDNRIRHsFY=
-github.com/containerd/zfs v0.0.0-20210324211415-d5c4544f0433/go.mod h1:m+m51S1DvAP6r3FcmYCp54bQ34pyOwTieQDNRIRHsFY=
-github.com/containerd/zfs v1.0.0/go.mod h1:m+m51S1DvAP6r3FcmYCp54bQ34pyOwTieQDNRIRHsFY=
-github.com/containernetworking/cni v0.7.1/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY=
-github.com/containernetworking/cni v0.8.0/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY=
-github.com/containernetworking/cni v0.8.1/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY=
-github.com/containernetworking/plugins v0.8.6/go.mod h1:qnw5mN19D8fIwkqW7oHHYDHVlzhJpcY6TQxn/fUyDDM=
-github.com/containernetworking/plugins v0.9.1/go.mod h1:xP/idU2ldlzN6m4p5LmGiwRDjeJr6FLK6vuiUwoH7P8=
-github.com/containers/ocicrypt v1.0.1/go.mod h1:MeJDzk1RJHv89LjsH0Sp5KTY3ZYkjXO/C+bKAeWFIrc=
-github.com/containers/ocicrypt v1.1.0/go.mod h1:b8AOe0YR67uU8OqfVNcznfFpAzu3rdgUV4GP9qXPfu4=
-github.com/containers/ocicrypt v1.1.1/go.mod h1:Dm55fwWm1YZAjYRaJ94z2mfZikIyIN4B0oB3dj3jFxY=
+github.com/containerd/cgroups v1.1.0 h1:v8rEWFl6EoqHB+swVNjVoCJE8o3jX7e8nqBGPLaDFBM=
+github.com/containerd/cgroups v1.1.0/go.mod h1:6ppBcbh/NOOUU+dMKrykgaBnK9lCIBxHqJDGwsa1mIw=
+github.com/containerd/containerd v1.7.0 h1:G/ZQr3gMZs6ZT0qPUZ15znx5QSdQdASW11nXTLTM2Pg=
+github.com/containerd/containerd v1.7.0/go.mod h1:QfR7Efgb/6X2BDpTPJRvPTYDE9rsF0FsXX9J8sIs/sc=
+github.com/containerd/continuity v0.3.0 h1:nisirsYROK15TAMVukJOUyGJjz4BNQJBVsNvAXZJ/eg=
+github.com/containerd/continuity v0.3.0/go.mod h1:wJEAIwKOm/pBZuBd0JmeTvnLquTB1Ag8espWhkykbPM=
+github.com/containerd/stargz-snapshotter/estargz v0.12.1 h1:+7nYmHJb0tEkcRaAW+MHqoKaJYZmkikupxCqVtmPuY0=
+github.com/containerd/stargz-snapshotter/estargz v0.12.1/go.mod h1:12VUuCq3qPq4y8yUW+l5w3+oXV3cx2Po3KSe/SmPGqw=
+github.com/containerd/ttrpc v1.2.1 h1:VWv/Rzx023TBLv4WQ+9WPXlBG/s3rsRjY3i9AJ2BJdE=
+github.com/containerd/ttrpc v1.2.1/go.mod h1:sIT6l32Ph/H9cvnJsfXM5drIVzTr5A2flTf1G5tYZak=
+github.com/containerd/typeurl/v2 v2.1.0 h1:yNAhJvbNEANt7ck48IlEGOxP7YAp6LLpGn5jZACDNIE=
+github.com/containerd/typeurl/v2 v2.1.0/go.mod h1:IDp2JFvbwZ31H8dQbEIY7sDl2L3o3HZj1hsSQlywkQ0=
github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk=
github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
-github.com/coreos/go-iptables v0.4.5/go.mod h1:/mVI274lEDI2ns62jHCDnCyBF9Iwsmekav8Dbxlm1MU=
-github.com/coreos/go-iptables v0.5.0/go.mod h1:/mVI274lEDI2ns62jHCDnCyBF9Iwsmekav8Dbxlm1MU=
-github.com/coreos/go-oidc v2.1.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc=
github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
-github.com/coreos/go-systemd v0.0.0-20161114122254-48702e0da86b/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
-github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/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/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
-github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
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/cpuguy83/go-md2man/v2 v2.0.1/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
-github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY=
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
-github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY=
-github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4=
github.com/cyphar/filepath-securejoin v0.2.3 h1:YX6ebbZCZP7VkM3scTTokDgBL2TY741X51MTk3ycuNI=
github.com/cyphar/filepath-securejoin v0.2.3/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4=
-github.com/cznic/b v0.0.0-20180115125044-35e9bbe41f07/go.mod h1:URriBxXwVq5ijiJ12C7iIZqlA69nTlI+LgI6/pwftG8=
-github.com/cznic/fileutil v0.0.0-20180108211300-6a051e75936f/go.mod h1:8S58EK26zhXSxzv7NQFpnliaOQsmDUxvoQO3rt154Vg=
-github.com/cznic/golex v0.0.0-20170803123110-4ab7c5e190e4/go.mod h1:+bmmJDNmKlhWNG+gwWCkaBoTy39Fs+bzRxVBzoTQbIc=
-github.com/cznic/internal v0.0.0-20180608152220-f44710a21d00/go.mod h1:olo7eAdKwJdXxb55TKGLiJ6xt1H0/tiiRCWKVLmtjY4=
-github.com/cznic/lldb v1.1.0/go.mod h1:FIZVUmYUVhPwRiPzL8nD/mpFcJ/G7SSXjjXYG4uRI3A=
-github.com/cznic/mathutil v0.0.0-20180504122225-ca4c9f2c1369/go.mod h1:e6NPNENfs9mPDVNRekM7lKScauxd5kXTr1Mfyig6TDM=
-github.com/cznic/ql v1.2.0/go.mod h1:FbpzhyZrqr0PVlK6ury+PoW3T0ODUV22OeWIxcaOrSE=
-github.com/cznic/sortutil v0.0.0-20150617083342-4c7342852e65/go.mod h1:q2w6Bg5jeox1B+QkJ6Wp/+Vn0G/bo3f1uY7Fn3vivIQ=
-github.com/cznic/strutil v0.0.0-20171016134553-529a34b1c186/go.mod h1:AHHPPPXTw0h6pVabbcbyGRK1DckRn7r/STdZEeIDzZc=
-github.com/cznic/zappy v0.0.0-20160723133515-2533cb5b45cc/go.mod h1:Y1SNZ4dRUOKXshKUbwUapqNncRrho4mkjQebgEHZLj8=
-github.com/d2g/dhcp4 v0.0.0-20170904100407-a1d1b6c41b1c/go.mod h1:Ct2BUK8SB0YC1SMSibvLzxjeJLnrYEVLULFNiHY9YfQ=
-github.com/d2g/dhcp4client v1.0.0/go.mod h1:j0hNfjhrt2SxUOw55nL0ATM/z4Yt3t2Kd1mW34z5W5s=
-github.com/d2g/dhcp4server v0.0.0-20181031114812-7d4a0a7f59a5/go.mod h1:Eo87+Kg/IX2hfWJfwxMzLyuSZyxSoAug2nGa1G2QAi8=
-github.com/d2g/hardwareaddr v0.0.0-20190221164911-e7d9fbe030e4/go.mod h1:bMl4RjIciD2oAxI7DmWRx6gbeqrkoLqv3MV0vzNad+I=
-github.com/danieljoos/wincred v1.1.0/go.mod h1:XYlo+eRTsVA9aHGp7NGjFkPla4m+DCL7hqDjlFjiygg=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/denisenkom/go-mssqldb v0.0.0-20190515213511-eb9f6a1743f3/go.mod h1:zAg7JM8CkOJ43xKXIj7eRO9kmWm/TW578qo+oDO6tuM=
github.com/denisenkom/go-mssqldb v0.9.0/go.mod h1:xbL0rPBG9cCiLr28tMa8zpbdarY27NDyej4t/EjAShU=
-github.com/denverdino/aliyungo v0.0.0-20190125010748-a747050bb1ba/go.mod h1:dV8lFg6daOBZbT6/BDGIz6Y3WFGn8juu6G+CQ6LHtl0=
-github.com/dgrijalva/jwt-go v0.0.0-20170104182250-a601269ab70c/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/dhui/dktest v0.3.0/go.mod h1:cyzIUfGsBEbZ6BT7tnXqAShHSXCZhSNmFl70sZ7c1yc=
-github.com/distribution/distribution/v3 v3.0.0-20220526142353-ffbd94cbe269 h1:hbCT8ZPPMqefiAWD2ZKjn7ypokIGViTvBBg/ExLSdCk=
-github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E=
-github.com/docker/cli v0.0.0-20191017083524-a8ff7f821017/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=
-github.com/docker/cli v20.10.12+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=
-github.com/docker/cli v20.10.19+incompatible h1:VKVBUb0KY/bx0FUCrCiNCL8wqgy8VxQli1dtNTn38AE=
-github.com/docker/cli v20.10.19+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=
-github.com/docker/distribution v0.0.0-20190905152932-14b96e55d84c/go.mod h1:0+TTO4EOBfRPhZXAeF1Vu+W3hHZ8eLp8PgKVZlcvtFY=
-github.com/docker/distribution v2.7.0+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
-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/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
-github.com/docker/distribution v2.8.1+incompatible h1:Q50tZOPR6T/hjNsyc9g8/syEs6bk8XXApsHjKukMl68=
-github.com/docker/distribution v2.8.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
-github.com/docker/docker v0.7.3-0.20190103212154-2b7e084dc98b/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
-github.com/docker/docker v0.7.3-0.20190817195342-4760db040282/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
-github.com/docker/docker v1.4.2-0.20190924003213-a8608b5b67c7/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
-github.com/docker/docker v20.10.12+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
-github.com/docker/docker v20.10.19+incompatible h1:lzEmjivyNHFHMNAFLXORMBXyGIhw/UP4DvJwvyKYq64=
-github.com/docker/docker v20.10.19+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
-github.com/docker/docker-credential-helpers v0.6.3/go.mod h1:WRaJzqw3CTB9bk10avuGsjVBZsD05qeibJ1/TYlvc0Y=
-github.com/docker/docker-credential-helpers v0.6.4/go.mod h1:ofX3UI0Gz1TteYBjtgs07O36Pyasyp66D2uKT7H8W1c=
+github.com/distribution/distribution/v3 v3.0.0-20230611135314-6a57630cf401 h1:6b2DsTBdddsuYAcFwm723nRVeLaK4vH2rdhTmnWSMws=
+github.com/docker/cli v20.10.21+incompatible h1:qVkgyYUnOLQ98LtXBrwd/duVqPT2X4SHndOuGsfwyhU=
+github.com/docker/cli v20.10.21+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=
+github.com/docker/distribution v2.8.2+incompatible h1:T3de5rq0dB1j30rp0sA2rER+m322EBzniBPB6ZIzuh8=
+github.com/docker/distribution v2.8.2+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
+github.com/docker/docker v20.10.24+incompatible h1:Ugvxm7a8+Gz6vqQYQQ2W7GYq5EUPaAiuPgIfVyI3dYE=
+github.com/docker/docker v20.10.24+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
github.com/docker/docker-credential-helpers v0.7.0 h1:xtCHsjxogADNZcdv1pKUHXryefjlVRqWqIhk/uXJp0A=
github.com/docker/docker-credential-helpers v0.7.0/go.mod h1:rETQfLdHNT3foU5kuNkFR1R1V12OJRRO5lzt2D1b5X0=
github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ=
github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec=
-github.com/docker/go-events v0.0.0-20170721190031-9461782956ad/go.mod h1:Uw6UezgYA44ePAFQYUehOuCzmy5zmg/+nl2ZfMWGkpA=
github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c h1:+pKlWGMw7gf6bQ+oDZB4KHQFypsfjYlq/C4rfL7D3g8=
-github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c/go.mod h1:Uw6UezgYA44ePAFQYUehOuCzmy5zmg/+nl2ZfMWGkpA=
-github.com/docker/go-metrics v0.0.0-20180209012529-399ea8c73916/go.mod h1:/u0gXw0Gay3ceNrsHubL3BtdOL2fHf93USgMTe0W5dI=
github.com/docker/go-metrics v0.0.1 h1:AgB/0SvBxihN0X8OR4SjsblXkbMvalQ8cjmtKQ2rQV8=
github.com/docker/go-metrics v0.0.1/go.mod h1:cG1hvH2utMXtqgqqYE9plW6lDxS3/5ayHzueweSI3Vw=
-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.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4=
github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
-github.com/docker/libtrust v0.0.0-20150114040149-fa567046d9b1/go.mod h1:cyGadeNEkKy96OOhEzfZl+yxihPEzKnqJwvfuSUqbZE=
github.com/docker/libtrust v0.0.0-20160708172513-aabc10ec26b7 h1:UhxFibDNY/bfvqU5CAUmr9zpesgbU6SWc8/B4mflAE4=
-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 v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
-github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs=
-github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU=
-github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I=
-github.com/edsrzf/mmap-go v0.0.0-20170320065105-0bce6a688712/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M=
-github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc=
-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/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
-github.com/emicklei/go-restful/v3 v3.9.0 h1:XwGDlfxEnQZzuopoqxwSEllNcCOM9DhhFyhFIIGKwxE=
-github.com/emicklei/go-restful/v3 v3.9.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=
+github.com/emicklei/go-restful/v3 v3.10.1 h1:rc42Y5YTp7Am7CS630D7JmhRjq4UlEUuEKfrDac4bSQ=
+github.com/emicklei/go-restful/v3 v3.10.1/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=
github.com/emirpasic/gods v1.12.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o=
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=
@@ -416,10 +183,7 @@ github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.m
github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ=
github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0=
-github.com/envoyproxy/go-control-plane v0.10.1/go.mod h1:AY7fTTXNdv/aJ2O5jwpxAPOWUZ7hQAEvzN5Pf27BkQQ=
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
-github.com/envoyproxy/protoc-gen-validate v0.6.2/go.mod h1:2t7qjJNvHPx8IjnBOzl9E9/baC+qXE/TeeyBRzgJDws=
-github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
github.com/evanphx/json-patch v5.6.0+incompatible h1:jBYDEEiFBPxA0v50tFdvOzQQTCvpL6mnFh5mB2/l16U=
github.com/evanphx/json-patch v5.6.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
github.com/evanphx/json-patch/v5 v5.6.0 h1:b91NhWfaz02IuVxO9faSllyAtNXHMPkC5J8sJCLunww=
@@ -437,19 +201,13 @@ github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBd
github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
github.com/flowstack/go-jsonschema v0.1.1/go.mod h1:yL7fNggx1o8rm9RlgXv7hTBWxdBM0rVwpMwimd3F3N0=
github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc=
-github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k=
-github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k=
github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE=
+github.com/frankban/quicktest v1.14.3/go.mod h1:mgiwOwqx65TmIk1wJ6Q7wvnVMocbUorkibMOrVTHZps=
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
-github.com/fsnotify/fsnotify v1.5.1/go.mod h1:T3375wBYaZdLLcVNkcVbzGHY7f1l/uK5T5Ai1i3InKU=
github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY=
github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw=
-github.com/fsouza/fake-gcs-server v1.7.0/go.mod h1:5XIRs4YvwNbNoz+1JF8j6KLAyDh7RHGAyAK3EP2EsNk=
-github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa/go.mod h1:KnogPXtdwXqoenmZCw6S+25EAm2MkxbG0deNDu4cbSA=
-github.com/garyburd/redigo v0.0.0-20150301180006-535138d7bcd7/go.mod h1:NR3MbYisc3/PwhQ00EMzDiPmrwpPxAn5GI05/YaO1SY=
github.com/garyburd/redigo v1.6.0 h1:0VruCpn7yAIIu7pWVClQC8wxCJEcG3nyzpMSHKi1PQc=
-github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk=
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
github.com/gliderlabs/ssh v0.2.2/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0=
@@ -466,46 +224,26 @@ github.com/go-git/go-git/v5 v5.3.0/go.mod h1:xdX4bWJ48aOrdhnl2XqHYstHbbp6+LFS4r4
github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
-github.com/go-gorp/gorp/v3 v3.0.2 h1:ULqJXIekoqMx29FI5ekXXFoH1dT2Vc8UhnRzBg+Emz4=
-github.com/go-gorp/gorp/v3 v3.0.2/go.mod h1:BJ3q1ejpV8cVALtcXvXaXyTOlMmJhWDxTmncaR6rwBY=
-github.com/go-ini/ini v1.25.4/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8=
+github.com/go-gorp/gorp/v3 v3.0.5 h1:PUjzYdYu3HBOh8LE+UUmRG2P0IRDak9XMeGNvaeq4Ow=
+github.com/go-gorp/gorp/v3 v3.0.5/go.mod h1:dLEjIyyRNiXvNZ8PSmzpt1GsWAUK8kjVhEpjH8TixEw=
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/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY=
-github.com/go-kit/log v0.2.0/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0=
github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A=
-github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs=
-github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas=
-github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU=
github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
-github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0=
-github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
+github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ=
+github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
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/go-logr/zapr v1.2.3 h1:a9vnzlIBPQBBkeaR9IuMUfmVOrQlkoC4YfPoFkX3T7A=
-github.com/go-logr/zapr v1.2.3/go.mod h1:eIauM6P8qSvTw5o2ez6UEAfGjQKrxQTl5EoK+Qa2oG4=
-github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0=
-github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg=
-github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
+github.com/go-logr/zapr v1.2.4 h1:QHVo+6stLbfJmYGkQ7uGHUCu5hnAFAj6mDe6Ea0SeOo=
+github.com/go-logr/zapr v1.2.4/go.mod h1:FyHWQIzQORZ0QVE1BtVHv3cKtNLuXsbNLtpuhNapBOA=
github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE=
github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=
-github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg=
-github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc=
-github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8=
-github.com/go-openapi/jsonreference v0.20.1 h1:FBLnyygC4/IZZr893oiomc9XaghoveYTrLC1F86HID8=
-github.com/go-openapi/jsonreference v0.20.1/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k=
-github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc=
-github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo=
-github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I=
-github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
-github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
+github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE=
+github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k=
github.com/go-openapi/swag v0.22.3 h1:yMBqmnQ0gyZvEb/+KzuWZOXgllrXT4SADYbvDaXHv/g=
github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14=
-github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w=
-github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE=
github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
@@ -522,31 +260,19 @@ github.com/gobuffalo/packr/v2 v2.8.3 h1:xE1yzvnO56cUC0sTpKR3DIbxZgB54AftTFMhB2XE
github.com/gobuffalo/packr/v2 v2.8.3/go.mod h1:0SahksCVcx4IMnigTjiFuyldmTrdTctXsOdiU5KwbKc=
github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y=
github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8=
-github.com/gocql/gocql v0.0.0-20190301043612-f6df8288f9b4/go.mod h1:4Fw1eo5iaEhDUs8XyuhSVCVy52Jq3L+/3GJgYkwc+/0=
-github.com/godbus/dbus v0.0.0-20151105175453-c7fdd8b5cd55/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw=
-github.com/godbus/dbus v0.0.0-20180201030542-885f9cc04c9c/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw=
-github.com/godbus/dbus v0.0.0-20190422162347-ade71ed3457e/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4=
-github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
github.com/godror/godror v0.24.2/go.mod h1:wZv/9vPiUib6tkoDl+AZ/QLf5YZgMravZ7jxH2eQWAE=
github.com/gofrs/uuid v4.0.0+incompatible h1:1SD/1F5pU8p29ybwgQSwpQk+mwdRrXCYuPhW6m+TnJw=
-github.com/gogo/googleapis v1.2.0/go.mod h1:Njal3psf3qN6dwBtQfUmBZh2ybovJ0tlu3o/AC7HYjU=
-github.com/gogo/googleapis v1.4.0/go.mod h1:5YRNX2z1oM5gXdAkurHa942MDgEJyk02w4OecKY87+c=
github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
-github.com/gogo/protobuf v1.2.0/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.2-0.20190723190241-65acae22fc9d/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
-github.com/gogo/protobuf v1.3.0/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
-github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
-github.com/golang-migrate/migrate/v4 v4.6.2 h1:LDDOHo/q1W5UDj6PbkxdCv7lv9yunyZHXvxuwDkGo3k=
-github.com/golang-migrate/migrate/v4 v4.6.2/go.mod h1:JYi6reN3+Z734VZ0akNuyOJNcrg45ZL7LDBMW3WGJL0=
+github.com/golang-migrate/migrate/v4 v4.16.1 h1:O+0C55RbMN66pWm5MjO6mw0px6usGpY0+bkSGW9zCo0=
+github.com/golang-migrate/migrate/v4 v4.16.1/go.mod h1:qXiwa/3Zeqaltm1MxOCZDYysW/F6folYiBgBG03l9hc=
github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0=
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
github.com/golang/glog v1.0.0 h1:nfP3RFugxnNRyKgeWd4oI1nYvXpxrx8ck8ZrcizshdQ=
github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4=
-github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/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/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
@@ -562,7 +288,6 @@ github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt
github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4=
github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8=
github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc=
-github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs=
github.com/golang/protobuf v1.2.0/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/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
@@ -582,19 +307,17 @@ github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx
github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg=
github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
-github.com/golang/snappy v0.0.0-20170215233205-553a64147049/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
-github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
-github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
-github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
github.com/gomodule/redigo v1.8.2 h1:H5XSIre1MB5NbPYFp+i1NBbb5qN1W8Y8YAQoAYbkm8k=
github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
github.com/google/btree v1.1.2 h1:xf4v41cLI2Z6FxbKm+8Bu+m8ifhj15JuZ9sa0jZCMUU=
github.com/google/btree v1.1.2/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4=
-github.com/google/cel-go v0.12.6 h1:kjeKudqV0OygrAqA9fX6J55S8gj+Jre2tckIm5RoG4M=
-github.com/google/cel-go v0.12.6/go.mod h1:Jk7ljRzLBhkmiAwBoUxB1sZSCVBAzkqPF25olK/iRDw=
+github.com/google/cel-go v0.16.0 h1:DG9YQ8nFCFXAs/FDDwBxmL1tpKNrdlGUM9U3537bX/Y=
+github.com/google/cel-go v0.16.0/go.mod h1:HXZKzB0LXqer5lHHgfWAnlYwJaQBDKMjxjulNQzhwhY=
github.com/google/gnostic v0.6.9 h1:ZK/5VhkoX835RikCHpSUJV9a+S3e1zLh59YnyWeBW+0=
github.com/google/gnostic v0.6.9/go.mod h1:Nm8234We1lq6iB9OmlgNv3nH91XLLVZHCDayfA3xq+E=
+github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I=
+github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U=
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=
@@ -607,21 +330,17 @@ github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/
github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE=
github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
-github.com/google/go-containerregistry v0.5.1/go.mod h1:Ct15B4yir3PLOP5jsy0GNeYVaIZs/MK/Jz5any1wFW0=
-github.com/google/go-containerregistry v0.8.0 h1:mtR24eN6rapCN+shds82qFEIWWmg64NPMuyCNT7/Ogc=
-github.com/google/go-containerregistry v0.8.0/go.mod h1:wW5v71NHGnQyb4k+gSshjxidrC7lN33MdWEn+Mz9TsI=
-github.com/google/go-github v17.0.0+incompatible/go.mod h1:zLgOLi98H3fifZn+44m+umXrS52loVEgC2AApnigrVQ=
-github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck=
+github.com/google/go-containerregistry v0.13.0 h1:y1C7Z3e149OJbOPDBxLYR8ITPz8dTKqQwjErKVHJC8k=
+github.com/google/go-containerregistry v0.13.0/go.mod h1:J9FQ+eSS4a1aC2GNZxvNpbWhgp0487v+cgiilB4FqDo=
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
-github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0=
github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0=
github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0=
-github.com/google/martian/v3 v3.2.1/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk=
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=
@@ -634,48 +353,30 @@ github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLe
github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
-github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
-github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1 h1:K6RDEckDVWvDI9JAJYCmNdQXq6neHJOYx3V6jnqNEec=
-github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4=
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ=
-github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
-github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
github.com/google/uuid v1.3.0/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.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
-github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0=
-github.com/googleapis/gax-go/v2 v2.1.1/go.mod h1:hddJymUZASv3XPyGkUpKj8pPO47Rmb0eJc8R6ouapiM=
-github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg=
github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g=
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/handlers v0.0.0-20150720190736-60c7bfde3e33/go.mod h1:Qkdc/uu4tH4g6mTK6auzZ766c4CA0Ng8+o/OAirnOIQ=
github.com/gorilla/handlers v1.5.1 h1:9lRY6j8DEeeBT10CvO9hGW0gmky0BprnvDI5vfhUHH4=
-github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
-github.com/gorilla/mux v1.7.1/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
-github.com/gorilla/mux v1.7.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
-github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI=
github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So=
-github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
github.com/gosuri/uitable v0.0.4 h1:IG2xLKRvErL3uhY6e1BylFzG+aJiwQviDDTfOKeKTpY=
github.com/gosuri/uitable v0.0.4/go.mod h1:tKR86bXuXPZazfOTG1FIzvjIdXzd0mo4Vtn16vt0PJo=
-github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA=
github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 h1:+ngKgrYPPJrOjhax5N+uePQ0Fh1Z7PheYoUI/0nzkPA=
github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79/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/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=
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/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=
github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw=
github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0 h1:BZHcxBETFHIdVyhyEfOvn/RdU/QGdLI4y34qQGjGWO0=
github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0/go.mod h1:hgWBS7lorOAVIJEQMi4ZsPv9hVvWI6+ch50m39Pf2Ks=
@@ -683,27 +384,18 @@ github.com/h2non/filetype v1.1.1 h1:xvOwnXKAckvtLWsN398qS9QhlxlnVXBjXBydK2/UFB4=
github.com/h2non/filetype v1.1.1/go.mod h1:319b3zT68BvV+WRj7cwy856M2ehB3HqNOt6sy1HndBY=
github.com/h2non/go-is-svg v0.0.0-20160927212452-35e8c4b0612c h1:fEE5/5VNnYUoBOj2I9TP8Jc+a7lge3QWn9DKE7NCwfc=
github.com/h2non/go-is-svg v0.0.0-20160927212452-35e8c4b0612c/go.mod h1:ObS/W+h8RYb1Y7fYivughjxojTmIu5iAIjSrSLCLeqE=
-github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed/go.mod h1:tMWxXQ9wFIaZeTI9F+hmhFiGpFmhOHzyShyFUhRm0H4=
github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q=
-github.com/hashicorp/consul/api v1.11.0/go.mod h1:XjsvQN+RJGWI2TWy1/kqaE16HrR2J/FWgkYjdZQsX9M=
github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8=
-github.com/hashicorp/consul/sdk v0.8.0/go.mod h1:GBvyrGALthsZObzUGsfgHZQDXjg4lOjagTIwIR1vPms=
-github.com/hashicorp/errwrap v0.0.0-20141028054710-7554cd9344ce/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
-github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80=
+github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I=
+github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80=
-github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48=
-github.com/hashicorp/go-hclog v0.12.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ=
-github.com/hashicorp/go-hclog v1.0.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ=
github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60=
-github.com/hashicorp/go-immutable-radix v1.3.1/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60=
github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM=
-github.com/hashicorp/go-multierror v0.0.0-20161216184304-ed905158d874/go.mod h1:JMRHfdO9jKNzS/+BTlxCjKNQHg/jZAft8U7LloJvN7I=
github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk=
-github.com/hashicorp/go-multierror v1.1.0/go.mod h1:spPvp8C1qA32ftKqdAHm4hHTbPw+vmowP0z+KUhOZdA=
-github.com/hashicorp/go-retryablehttp v0.5.3/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs=
+github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo=
+github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM=
github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU=
-github.com/hashicorp/go-rootcerts v1.0.2/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8=
github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU=
github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4=
github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
@@ -711,30 +403,22 @@ github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/b
github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90=
github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
-github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4=
+github.com/hashicorp/golang-lru v0.5.4 h1:YDjusn29QI/Das2iO9M0BHnIbxPeyuCHsjMW+lJfyTc=
github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=
github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64=
github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ=
-github.com/hashicorp/mdns v1.0.1/go.mod h1:4gW7WsVCke5TE7EPeYliwHlRUyBtfCwuFwuMg2DmyNY=
-github.com/hashicorp/mdns v1.0.4/go.mod h1:mtBihi+LeNXGtG8L9dX59gAEa12BDtBQSp4v/YAJqrc=
github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I=
-github.com/hashicorp/memberlist v0.2.2/go.mod h1:MS2lj3INKhZjWNqd3N0m3J+Jxf3DAOnAH9VT3Sh9MUE=
-github.com/hashicorp/memberlist v0.3.0/go.mod h1:MS2lj3INKhZjWNqd3N0m3J+Jxf3DAOnAH9VT3Sh9MUE=
github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc=
-github.com/hashicorp/serf v0.9.5/go.mod h1:UWDWwZeL5cuWDJdl0C6wrvrUwEqtQ4ZKBKKENpqIUyk=
-github.com/hashicorp/serf v0.9.6/go.mod h1:TXZNMjZQijwlDvp+r0b63xZ45H7JmCmgg4gpTwn9UV4=
-github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
github.com/huandu/xstrings v1.3.1/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE=
-github.com/huandu/xstrings v1.3.2 h1:L18LIDzqlW6xN2rEkpdV8+oL/IXWJ1APd+vsdYy4Wdw=
github.com/huandu/xstrings v1.3.2/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE=
+github.com/huandu/xstrings v1.3.3/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE=
+github.com/huandu/xstrings v1.4.0 h1:D17IlohoQq4UcpqD7fDk80P7l+lwAmlFaBHgOipl2FU=
+github.com/huandu/xstrings v1.4.0/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE=
github.com/iancoleman/strcase v0.2.0 h1:05I4QRnGpI0m37iZQRuskXh+w77mr6Z41lwQzuHLwW0=
github.com/iancoleman/strcase v0.2.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho=
github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
-github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
-github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
-github.com/imdario/mergo v0.3.10/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA=
github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA=
github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA=
github.com/imdario/mergo v0.3.13 h1:lFzP57bqS/wsqKssCGmtLAb8A0wKjLGrve2q3PPVcBk=
@@ -742,19 +426,12 @@ github.com/imdario/mergo v0.3.13/go.mod h1:4lJ1jqUDcsbIECGy0RUJAXNIhg+6ocWgb1ALK
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
-github.com/j-keck/arping v0.0.0-20160618110441-2cf9dc699c56/go.mod h1:ymszkNOg6tORTn+6F6j+Jc8TOr5osrynvN6ivFWZ2GA=
-github.com/jackc/fake v0.0.0-20150926172116-812a484cc733/go.mod h1:WrMFNQdiFJ80sQsxDoMokWK1W5TQtxBFNpzWTD84ibQ=
-github.com/jackc/pgx v3.2.0+incompatible/go.mod h1:0ZGrqGqkRlliWnWB4zKnWtjbSWbGkVEFm4TeybAXq+I=
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A=
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo=
github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
github.com/jessevdk/go-flags v1.5.0/go.mod h1:Fw0T6WPc1dYxT4mKEZRfG5kJhaTDP9pj1c2EWnYs/m4=
-github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k=
-github.com/jmespath/go-jmespath v0.0.0-20160803190731-bd40a432e4c7/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k=
-github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k=
github.com/jmoiron/sqlx v1.3.5 h1:vFFPA71p1o5gAeqtEAwLU4dnX2napprKtHr7PYIcN3g=
github.com/jmoiron/sqlx v1.3.5/go.mod h1:nRVWtLre0KfCLJvgxzCsLVMogSvQ1zNJtpYr2Ccp0mQ=
-github.com/joefitzgerald/rainbow-reporter v0.1.0/go.mod h1:481CNgqmVHQZzdIbN52CupLJyoVwB10FQ/IQlF1pdL8=
github.com/joelanford/ignore v0.0.0-20210607151042-0d25dc18b62d h1:A2/B900ip/Z20TzkLeGRNy1s6J2HmH9AmGt+dHyqb4I=
github.com/joelanford/ignore v0.0.0-20210607151042-0d25dc18b62d/go.mod h1:7HQupe4vyNxMKXmM5DFuwXHsqwMyglcYmZBtlDPIcZ8=
github.com/joho/godotenv v1.3.0 h1:Zjp+RcGpHhGlrMbJzXTrZZPrWj+1vfm90La1wgB6Bhc=
@@ -762,11 +439,8 @@ github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqx
github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo=
github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
-github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4=
github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
-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/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
@@ -774,57 +448,42 @@ github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1
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/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
-github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM=
github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 h1:iQTw/8FWTuc7uiaSepXwyf3o52HaUYcV+Tu66S3F5GA=
-github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0/go.mod h1:1NbS8ALrpOvjt0rHPNLyCIeMtbizbir8U//inJ+zuB8=
github.com/karrick/godirwalk v1.16.1 h1:DynhcF+bztK8gooS0+NDJFrdNZjJ3gzVzC545UNA9iw=
github.com/karrick/godirwalk v1.16.1/go.mod h1:j4mkqPuvaLI8mp1DroR3P6ad7cyYd4c1qeJ3RV7ULlk=
github.com/kevinburke/ssh_config v0.0.0-20201106050909-4977a11b4351/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM=
github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q=
-github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=
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/klauspost/compress v1.11.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs=
-github.com/klauspost/compress v1.11.13/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs=
-github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk=
-github.com/klauspost/compress v1.14.1 h1:hLQYb23E8/fO+1u53d02A97a8UnsddcvYzq4ERRU4ds=
-github.com/klauspost/compress v1.14.1/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk=
+github.com/klauspost/compress v1.15.11/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM=
+github.com/klauspost/compress v1.16.5 h1:IFV2oUNUzZaz+XyusxpLzpzS8Pt5rh0Z16For/djlyI=
+github.com/klauspost/compress v1.16.5/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
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/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
github.com/kortschak/utter v1.0.1/go.mod h1:vSmSjbyrlKjjsL71193LmzBOKgwePk9DH6uFaWHIInc=
github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg=
github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
-github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0=
+github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk=
+github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
+github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
-github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
-github.com/kshvakov/clickhouse v1.3.5/go.mod h1:DMzX7FxRymoNkVgizH0DWAL8Cur7wHLgx3MUnGwJqpE=
github.com/lann/builder v0.0.0-20180802200727-47ae307949d0 h1:SOEGU9fKiNWd/HOJuq6+3iTQz8KNCLtVX6idSoTLdUw=
github.com/lann/builder v0.0.0-20180802200727-47ae307949d0/go.mod h1:dXGbAdH5GtBTC4WfIxhKZfyBF/HBFgRZSWwZ9g/He9o=
github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0 h1:P6pPBnrTSX3DEVR4fDembhRWSsG5rVo6hYhAB/ADZrk=
github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0/go.mod h1:vmVJ0l/dxyfGW6FmdpVm2joNMFikkuWg0EoCKLGUMNw=
-github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
-github.com/lib/pq v1.10.0/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
github.com/lib/pq v1.10.7 h1:p7ZhMD+KsSRozJr34udlUrhboJwWAgCg34+/ZZNvZZw=
github.com/lib/pq v1.10.7/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de h1:9TO3cAIGXtEhnIaL+V+BEER86oLrvS+kWobKpbJuye0=
github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de/go.mod h1:zAbeS9B/r2mtpb6U+EI2rYA5OAXxsYw6wTamcNW+zcE=
-github.com/linuxkit/virtsock v0.0.0-20201010232012-f8cee7dfc7a3/go.mod h1:3r6x7q95whyfWQpmGZTu3gk3v2YkMi05HEzl7Tf7YEo=
-github.com/lyft/protoc-gen-star v0.5.3/go.mod h1:V0xaHgaf5oCCqmcxYcWiDfTiKsZsRc87/1qhoTACD8w=
github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
github.com/magiconair/properties v1.8.5 h1:b6kJs+EmPFMYGkow9GiUyCyOvIwYetYJ3fSaWak/Gls=
github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60=
-github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
-github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
-github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
-github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs=
github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=
github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
github.com/markbates/errx v1.1.0 h1:QDFeR+UP95dO12JgW+tgi2UVfo0V8YBHiUIOaeBPiEI=
@@ -835,18 +494,13 @@ github.com/markbates/oncer v1.0.0 h1:E83IaVAHygyndzPimgUYJjbshhDTALZyXxvk9FOlQRY
github.com/markbates/oncer v1.0.0/go.mod h1:Z59JA581E9GP6w96jai+TGqafHPW+cPfRxz2aSZ0mcI=
github.com/markbates/safe v1.0.1 h1:yjZkbvRM6IzKj9tlu/zMJLS0n/V351OZWRnF3QfaUxI=
github.com/markbates/safe v1.0.1/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0=
-github.com/marstr/guid v1.1.0/go.mod h1:74gB1z2wpxxInTG6yaqA7KrtM0NZ+RbrcqDvYHefzho=
github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
-github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
-github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4=
github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
-github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
-github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84=
github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE=
github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94=
@@ -854,30 +508,19 @@ github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/
github.com/mattn/go-isatty v0.0.17 h1:BTarxUcIeDqL27Mc+vyvdWYSL28zpIhv3RoTdsLMPng=
github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
github.com/mattn/go-oci8 v0.1.1/go.mod h1:wjDx6Xm9q7dFtHJvIlrI99JytznLw5wQ4R+9mNXJwGI=
-github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=
github.com/mattn/go-runewidth v0.0.14 h1:+xnbZSEeDbOIg5/mE6JF0w6n9duR1l3/WmbinWVwUuU=
github.com/mattn/go-runewidth v0.0.14/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=
-github.com/mattn/go-shellwords v1.0.3/go.mod h1:3xCvwCdWdlDJUrvuMn7Wuy9eWs4pE8vqg+NOMyg4B2o=
-github.com/mattn/go-shellwords v1.0.6/go.mod h1:3xCvwCdWdlDJUrvuMn7Wuy9eWs4pE8vqg+NOMyg4B2o=
-github.com/mattn/go-sqlite3 v1.10.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
-github.com/mattn/go-sqlite3 v1.11.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
github.com/mattn/go-sqlite3 v1.14.6/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU=
-github.com/mattn/go-sqlite3 v1.14.14 h1:qZgc/Rwetq+MtyE18WhzjokPD93dNqLGNT3QJuLvBGw=
-github.com/mattn/go-sqlite3 v1.14.14/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU=
+github.com/mattn/go-sqlite3 v1.14.15/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg=
+github.com/mattn/go-sqlite3 v1.14.16 h1:yOQRA0RpS5PFz/oikGwBEqvAWhWg5ufRz4ETLjwpU1Y=
+github.com/mattn/go-sqlite3 v1.14.16/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg=
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/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4=
-github.com/matttproud/golang_protobuf_extensions v1.0.2 h1:hAHbPm5IJGijwng3PWk09JkG9WeqChjprR5s9bBZ+OM=
-github.com/matttproud/golang_protobuf_extensions v1.0.2/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4=
-github.com/maxbrunsfeld/counterfeiter/v6 v6.2.2/go.mod h1:eD9eIE7cdwcMi9rYluz88Jz2VyhSmden33/aXg4oVIY=
+github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo=
+github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4=
github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
-github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso=
-github.com/miekg/dns v1.1.41/go.mod h1:p6aan82bvRIyn+zDIv9xYNUpwa73JcSh9BKwknJysuI=
-github.com/miekg/pkcs11 v1.0.3/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs=
-github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible/go.mod h1:8AuVvqP/mXw1px98n46wfvcGfQ4ci2FwoAjKYxuo3Z4=
github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc=
-github.com/mitchellh/cli v1.1.0/go.mod h1:xcISNoH86gajksDmfB23e/pu+B+GeFRMYmoHXxx3xhI=
-github.com/mitchellh/cli v1.1.4/go.mod h1:vTLESy5mRhKOs9KDp0/RATawxP1UqBmdrpVRMnpcvKQ=
+github.com/mitchellh/cli v1.1.5/go.mod h1:v8+iFts2sPIKUV1ltktPXMCC8fumSKFItNcD2cLtRR4=
github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw=
github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw=
github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s=
@@ -892,10 +535,8 @@ github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0Qu
github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
-github.com/mitchellh/mapstructure v1.4.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=
github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
-github.com/mitchellh/osext v0.0.0-20151018003038-5e2d6d41470f/go.mod h1:OkQIRizQZAeMln+1tSwduZz7+Af5oFlKirV/MSYes2A=
github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw=
github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zxSIeXaQ=
github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw=
@@ -903,15 +544,12 @@ github.com/moby/locker v1.0.1 h1:fOXqR41zeveg4fFODix+1Ch4mj/gT0NE1XJbp/epuBg=
github.com/moby/locker v1.0.1/go.mod h1:S7SDdo5zpBK84bzzVlKr2V0hz+7x9hWbYC/kq7oQppc=
github.com/moby/spdystream v0.2.0 h1:cjW1zVyyoiM0T7b6UoySUFqzXMoqRckQtXwGPiBhOM8=
github.com/moby/spdystream v0.2.0/go.mod h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c=
-github.com/moby/sys/mountinfo v0.4.0/go.mod h1:rEr8tzG/lsIZHBtN/JjGG+LMYx9eXgW2JI+6q0qou+A=
-github.com/moby/sys/mountinfo v0.4.1/go.mod h1:rEr8tzG/lsIZHBtN/JjGG+LMYx9eXgW2JI+6q0qou+A=
-github.com/moby/sys/mountinfo v0.5.0 h1:2Ks8/r6lopsxWi9m58nlwjaeSzUX9iiL1vj5qB/9ObI=
-github.com/moby/sys/mountinfo v0.5.0/go.mod h1:3bMD3Rg+zkqx8MRYPi7Pyb0Ie97QEBmdxbhnCLlSvSU=
-github.com/moby/sys/symlink v0.1.0/go.mod h1:GGDODQmbFOjFsXvfLVn3+ZRxkch54RkSiGqsZeMYowQ=
-github.com/moby/term v0.0.0-20200312100748-672ec06f55cd/go.mod h1:DdlQx2hp0Ss5/fLikoLlEeIYiATotOjgB//nb973jeo=
-github.com/moby/term v0.0.0-20201216013528-df9cb8a40635/go.mod h1:FBS0z0QWA44HXygs7VXDUOGoN/1TV3RuWkLO04am3wc=
-github.com/moby/term v0.0.0-20221205130635-1aeaba878587 h1:HfkjXDfhgVaN5rmueG8cL8KKeFNecRCXFhaJ2qZ5SKA=
-github.com/moby/term v0.0.0-20221205130635-1aeaba878587/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y=
+github.com/moby/sys/mountinfo v0.6.2 h1:BzJjoreD5BMFNmD9Rus6gdd1pLuecOFPt8wC+Vygl78=
+github.com/moby/sys/mountinfo v0.6.2/go.mod h1:IJb6JQeOklcdMU9F5xQ8ZALD+CUr5VlGpwtX+VE0rpI=
+github.com/moby/sys/sequential v0.5.0 h1:OPvI35Lzn9K04PBbCLW0g4LcFAJgHsvXsRyewg5lXtc=
+github.com/moby/sys/sequential v0.5.0/go.mod h1:tH2cOOs5V9MlPiXcQzRC+eEyab644PWKGRYaaV5ZZlo=
+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/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
@@ -921,88 +559,40 @@ github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9G
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00 h1:n6/2gBQ3RWajuToeY6ZtZTIKv2v7ThUy5KKusIT0yc0=
github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00/go.mod h1:Pm3mSP3c5uWn86xMLZ5Sa7JB9GsEZySvHYXCTK4E9q4=
-github.com/morikuni/aec v0.0.0-20170113033406-39771216ff4c/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc=
github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A=
github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc=
-github.com/mrunalp/fileutils v0.5.0/go.mod h1:M1WthSahJixYnrXQl/DFQuteStB1weuxD2QJNHXfbSQ=
-github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
-github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
-github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw=
-github.com/nakagami/firebirdsql v0.0.0-20190310045651-3c02a58cfed8/go.mod h1:86wM1zFnC6/uDBfZGNwB65O+pR2OFi5q/YQaEUid1qA=
-github.com/ncw/swift v1.0.47/go.mod h1:23YIA4yWVnGwv2dQlN4bB7egfYX6YLn0Yo/S6zZO/ZM=
+github.com/nelsam/hel/v2 v2.3.2/go.mod h1:1ZTGfU2PFTOd5mx22i5O0Lc2GY933lQ2wb/ggy+rL3w=
+github.com/nelsam/hel/v2 v2.3.3/go.mod h1:1ZTGfU2PFTOd5mx22i5O0Lc2GY933lQ2wb/ggy+rL3w=
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
-github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A=
github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE=
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.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec=
github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY=
-github.com/onsi/ginkgo v0.0.0-20151202141238-7f8ab55aaf3b/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.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
-github.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
-github.com/onsi/ginkgo v1.10.1/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
-github.com/onsi/ginkgo v1.10.3/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
-github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
-github.com/onsi/ginkgo v1.12.0/go.mod h1:oUhWkIvk5aDxtKvDDuw8gItl8pKl42LzjC9KZE0HfGg=
-github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk=
github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE=
-github.com/onsi/ginkgo/v2 v2.9.2 h1:BA2GMJOtfGAfagzYtrAlufIP0lq6QERkFmHLMLPwFSU=
-github.com/onsi/gomega v0.0.0-20151007035656-2152b45fa28a/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA=
-github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA=
-github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
-github.com/onsi/gomega v1.5.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/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=
-github.com/onsi/gomega v1.9.0/go.mod h1:Ho0h+IUsWyvy1OpqCwxlQ/21gkhVunqlU8fDGcoTdcA=
-github.com/onsi/gomega v1.10.3/go.mod h1:V9xEwhxec5O8UDM77eCW8vLymOMltsqPVYWrpDsH8xc=
-github.com/onsi/gomega v1.27.6 h1:ENqfyGeS5AX/rlXDd/ETokDz93u0YufY1Pgxuy/PvWE=
-github.com/onsi/gomega v1.27.6/go.mod h1:PIQNjfQwkP3aQAH7lf7j87O/5FiNr+ZR8+ipb+qQlhg=
-github.com/opencontainers/go-digest v0.0.0-20170106003457-a6d0ee40d420/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s=
-github.com/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s=
-github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s=
-github.com/opencontainers/go-digest v1.0.0-rc1.0.20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s=
+github.com/onsi/ginkgo/v2 v2.12.1 h1:uHNEO1RP2SpuZApSkel9nEh1/Mu+hmQe7Q+Pepg5OYA=
+github.com/onsi/gomega v1.27.10 h1:naR28SdDFlqrG6kScpT8VWpu1xWY5nJRCF3XaYyBjhI=
+github.com/onsi/gomega v1.27.10/go.mod h1:RsS8tutOdbdgzbPtzzATp12yT7kM5I5aElG3evPbQ0M=
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/image-spec v1.0.0/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0=
-github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0=
-github.com/opencontainers/image-spec v1.0.2-0.20211117181255-693428a734f5/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0=
-github.com/opencontainers/image-spec v1.1.0-rc2 h1:2zx/Stx4Wc5pIPDvIxHXvXtQFW/7XWJGmnM7r3wg034=
-github.com/opencontainers/image-spec v1.1.0-rc2/go.mod h1:3OVijpioIKYWTqjiG0zfF6wvoJ4fAXGbjdZuI2NgsRQ=
-github.com/opencontainers/runc v0.0.0-20190115041553-12f6a991201f/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U=
-github.com/opencontainers/runc v0.1.1/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U=
-github.com/opencontainers/runc v1.0.0-rc8.0.20190926000215-3e425f80a8c9/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U=
-github.com/opencontainers/runc v1.0.0-rc9/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U=
-github.com/opencontainers/runc v1.0.0-rc93/go.mod h1:3NOsor4w32B2tC0Zbl8Knk4Wg84SM2ImC1fxBuqJ/H0=
-github.com/opencontainers/runc v1.0.2/go.mod h1:aTaHFFwQXuA71CiyxOdFFIorAoemI04suvGRQFzWTD0=
-github.com/opencontainers/runtime-spec v0.1.2-0.20190507144316-5b71a03e2700/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
-github.com/opencontainers/runtime-spec v1.0.1/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
-github.com/opencontainers/runtime-spec v1.0.2-0.20190207185410-29686dbc5559/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.20200929063507-e6143ca7d51d/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
-github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417 h1:3snG66yBm59tKhhSPQrQ/0bCrv1LQbKt40LnUPiUxdc=
-github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
-github.com/opencontainers/runtime-tools v0.0.0-20181011054405-1d69bd0f9c39/go.mod h1:r3f7wjNzSs2extwzU3Y+6pKfobzPh+kKFJ3ofN+3nfs=
-github.com/opencontainers/selinux v1.6.0/go.mod h1:VVGKuOLlE7v4PJyT6h7mNWvq1rzqiriPsEqVhc+svHE=
-github.com/opencontainers/selinux v1.8.0/go.mod h1:RScLhm78qiWa2gbVCcGkC7tCGdgk3ogry1nUQF8Evvo=
-github.com/opencontainers/selinux v1.8.2/go.mod h1:MUIHuUEvKB1wtJjQdOyYRgOnLD2xAPP8dBsCoU0KuF8=
-github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw=
-github.com/operator-framework/api v0.17.4-0.20230223191600-0131a6301e42 h1:d/Pnr19TnmIq3zQ6ebewC+5jt5zqYbRkvYd37YZENQY=
-github.com/operator-framework/api v0.17.4-0.20230223191600-0131a6301e42/go.mod h1:l/cuwtPxkVUY7fzYgdust2m9tlmb8I4pOvbsUufRb24=
+github.com/opencontainers/image-spec v1.1.0-rc2.0.20221005185240-3a7f492d3f1b h1:YWuSjZCQAPM8UUBLkYUk1e+rZcvWHJmFb6i6rM44Xs8=
+github.com/opencontainers/image-spec v1.1.0-rc2.0.20221005185240-3a7f492d3f1b/go.mod h1:3OVijpioIKYWTqjiG0zfF6wvoJ4fAXGbjdZuI2NgsRQ=
+github.com/opencontainers/runtime-spec v1.1.0-rc.1 h1:wHa9jroFfKGQqFHj0I1fMRKLl0pfj+ynAqBxo3v6u9w=
+github.com/operator-framework/ansible-operator-plugins v1.32.0 h1:pBHNI9hoLYTMHsf6w6ozVYucJx+piMmfm86v8pbKFOY=
+github.com/operator-framework/ansible-operator-plugins v1.32.0/go.mod h1:G46APyI1JOzYW8BaSuPHxkTCfnEd0Hl0mwW8+bOn4IY=
+github.com/operator-framework/api v0.17.5 h1:9d0pc6m1Vp4QeS8i5dhl/B0nifhKQdtw+iFsNx0An0Q=
+github.com/operator-framework/api v0.17.5/go.mod h1:l/cuwtPxkVUY7fzYgdust2m9tlmb8I4pOvbsUufRb24=
github.com/operator-framework/helm-operator-plugins v0.0.12-0.20230413193425-4632388adc61 h1:FPO2hS4HNIU2pzWeX2KusKxqDFeGIURRMkxRtn/i570=
github.com/operator-framework/helm-operator-plugins v0.0.12-0.20230413193425-4632388adc61/go.mod h1:QpVyiSOKGbWADyNRl7LvMlRuuMGrWXJQdEYyHPQWMUg=
github.com/operator-framework/java-operator-plugins v0.7.1-0.20230306190439-0eed476d2b75 h1:mjMid39qs1lEXpIldVmj7sa1wtuZvYge8oHkT0qOY0Y=
github.com/operator-framework/java-operator-plugins v0.7.1-0.20230306190439-0eed476d2b75/go.mod h1:oQTt35EEUrDY8ca/kRWYz5omWsVhk9Sj78vKlHFqxjM=
github.com/operator-framework/operator-manifest-tools v0.2.3-0.20230227155221-caa8b9e1ab12 h1:PXejNY6ZFU6CutIkowf/ECsuT/xcLAIgmXQxG43SHnY=
github.com/operator-framework/operator-manifest-tools v0.2.3-0.20230227155221-caa8b9e1ab12/go.mod h1:5OAMYmIkFCiiHfS1r3HcIYu3F/sum38pofSoLZy7Cbw=
-github.com/operator-framework/operator-registry v1.26.5-0.20230307160312-3bfcb23fa7d0 h1:TMYB8U+0F5MJJ6x6CGnri0bH/ea/wvJZ9dZzT5salfo=
-github.com/operator-framework/operator-registry v1.26.5-0.20230307160312-3bfcb23fa7d0/go.mod h1:ChLO6+eQ6RMeVJ0K9DlJPjeP4iX+T5BwdxVYzuOdcMc=
-github.com/operator-framework/operator-sdk v1.29.0 h1:fHHJd6JkIUWMtQCGfokLZBWYBV7xqFv3JHNSRZzNnjQ=
-github.com/operator-framework/operator-sdk v1.29.0/go.mod h1:QO8gE736UilYLC61lOsUJYc190x2PCgW5TD13DBgONg=
+github.com/operator-framework/operator-registry v1.28.0 h1:vtmd2WgJxkx7vuuOxW4k5Le/oo0SfonSeJVMU3rKIfk=
+github.com/operator-framework/operator-registry v1.28.0/go.mod h1:UYw3uaZyHwHgnczLRYmUqMpgRgP2EfkqOsaR+LI+nK8=
+github.com/operator-framework/operator-sdk v1.32.0 h1:2Wx7EVwrXhxEuwsm0RsgF3wEgeSGc7jwpnAmBG6f/y8=
+github.com/operator-framework/operator-sdk v1.32.0/go.mod h1:NnTOc0sOT8YnPF7Q7o8dSAhHBpobVHyJ8n8cQMOnmco=
github.com/otiai10/copy v1.2.0 h1:HvG945u96iNadPoG2/Ja2+AUJeW5YuFQMixq9yirC+k=
github.com/otiai10/copy v1.2.0/go.mod h1:rrF5dJ5F0t/EWSYODDu4j9/vEeYHMkc8jt0zJChqQWw=
github.com/otiai10/curr v0.0.0-20150429015615-9b4961190c95/go.mod h1:9qAhocn7zKJG+0mI8eUu6xqkFDYS2kb2saOteoSB3cE=
@@ -1011,20 +601,15 @@ github.com/otiai10/mint v1.3.0/go.mod h1:F5AjcsTsWUqX+Na9fpHb52P8pcRX2CI6A3ctIT9
github.com/otiai10/mint v1.3.1 h1:BCmzIS3n71sGfHB5NMNDB3lHYPz8fWSkCAErHed//qc=
github.com/otiai10/mint v1.3.1/go.mod h1:/yxELlJQ0ufhjUwhshSj+wFjZ78CnZ48/1wtmBH1OTc=
github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
-github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
-github.com/pelletier/go-toml v1.8.1/go.mod h1:T2/BmBdy8dvIRq1a/8aqjN41wvWlN4lrapLU/GW4pbc=
github.com/pelletier/go-toml v1.9.3/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c=
-github.com/pelletier/go-toml v1.9.4/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c=
github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8=
github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c=
github.com/peterbourgon/diskv v2.0.1+incompatible h1:UBdAOUP5p4RWqPBg048CAvpKN+vxiaj6gdUUzhl4XmI=
github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=
github.com/phayes/freeport v0.0.0-20220201140144-74d24b5ae9f5 h1:Ii+DKncOVM8Cu1Hc+ETb5K+23HdAMvESYE3ZJ5b5cMI=
-github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY=
github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
-github.com/pkg/errors v0.8.1-0.20171018195549-f15c970de5b7/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=
@@ -1034,124 +619,82 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI=
github.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSgv7Sy7s/s=
-github.com/poy/onpar v0.0.0-20190519213022-ee068f8ea4d1 h1:oL4IBbcqwhhNWh31bjOX8C/OCy0zs9906d/VUru+bqg=
-github.com/poy/onpar v0.0.0-20190519213022-ee068f8ea4d1/go.mod h1:nSbFQvMj97ZyhFRSJYtut+msi4sOY6zJDGCdSc+/rZU=
-github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA=
-github.com/prometheus/client_golang v0.0.0-20180209125602-c332b6f63c06/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
+github.com/poy/onpar v0.0.0-20200406201722-06f95a1c68e8/go.mod h1:nSbFQvMj97ZyhFRSJYtut+msi4sOY6zJDGCdSc+/rZU=
+github.com/poy/onpar v1.1.2 h1:QaNrNiZx0+Nar5dLgTVp5mXkyoVFIbepjyEoGSnhbAY=
+github.com/poy/onpar v1.1.2/go.mod h1:6X8FLNoxyr9kkmnlqpK6LSoiOtrO6MICtWwEuWkLjzg=
github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
-github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs=
github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso=
github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo=
github.com/prometheus/client_golang v1.1.0/go.mod h1:I1FGZT9+L76gKKOs5djB6ezCbFQP1xR9D75/vuwEF3g=
-github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU=
-github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M=
-github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0=
-github.com/prometheus/client_golang v1.12.1/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY=
-github.com/prometheus/client_golang v1.14.0 h1:nJdhIvne2eSX/XRAFV9PcvFFRbrjbcTUj0VP62TMhnw=
-github.com/prometheus/client_golang v1.14.0/go.mod h1:8vpkKitgIVNcqrRBWh1C4TIUQgYNtG/XQE4E/Zae36Y=
-github.com/prometheus/client_model v0.0.0-20171117100541-99fa1f4be8e5/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
+github.com/prometheus/client_golang v1.16.0 h1:yk/hx9hDbrGHovbci4BY+pRMfSuuat626eFsHb7tmT8=
+github.com/prometheus/client_golang v1.16.0/go.mod h1:Zsulrv/L9oM40tJ7T815tM89lFEugiJ9HzIqaAx4LKc=
github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
-github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/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-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
-github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
-github.com/prometheus/client_model v0.3.0 h1:UBgGFHqYdG/TPFD1B1ogZywDqEkwp3fBMvqdiQ7Xew4=
-github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w=
-github.com/prometheus/common v0.0.0-20180110214958-89604d197083/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro=
+github.com/prometheus/client_model v0.4.0 h1:5lQXD3cAg1OXBf4Wq03gTrXHeaV0TQvGfUooCfx1yqY=
+github.com/prometheus/client_model v0.4.0/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU=
github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro=
-github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc=
-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/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc=
-github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls=
-github.com/prometheus/common v0.37.0 h1:ccBbHCgIiT9uSoFY0vX8H3zsNR5eLt17/RQLUvn8pXE=
-github.com/prometheus/common v0.37.0/go.mod h1:phzohg0JFMnBEFGxTDbfu3QyL5GI8gTQJFhYO5B3mfA=
-github.com/prometheus/procfs v0.0.0-20180125133057-cb4147076ac7/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
+github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY=
+github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY=
github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
-github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/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.0-20190522114515-bc1a522cf7b1/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ=
-github.com/prometheus/procfs v0.0.5/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ=
-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/procfs v0.2.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU=
github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
-github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
-github.com/prometheus/procfs v0.8.0 h1:ODq8ZFEaYeCaZOJlZZdJA2AbQR98dSHSM1KW/You5mo=
-github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0uaxHdg830/4=
+github.com/prometheus/procfs v0.10.1 h1:kYK1Va/YMlutzCGazswoHKo//tZVlFpKYh+PymziUAg=
+github.com/prometheus/procfs v0.10.1/go.mod h1:nwNm2aOCAYw8uTR/9bWRREkZFxAUcWzPHWJq+XBB/FM=
github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU=
-github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
github.com/rivo/uniseg v0.4.2 h1:YwD0ulJSJytLpiaWua0sBDusfsCZohxjxzVTYjwxfV8=
github.com/rivo/uniseg v0.4.2/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
+github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE=
+github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ=
-github.com/rubenv/sql-migrate v1.2.0 h1:fOXMPLMd41sK7Tg75SXDec15k3zg5WNV6SjuDRiNfcU=
-github.com/rubenv/sql-migrate v1.2.0/go.mod h1:Z5uVnq7vrIrPmHbVFfR4YLHRZquxeHpckCnRq0P/K9Y=
+github.com/rubenv/sql-migrate v1.3.1 h1:Vx+n4Du8X8VTYuXbhNxdEUoh6wiJERA0GlWocR5FrbA=
+github.com/rubenv/sql-migrate v1.3.1/go.mod h1:YzG/Vh82CwyhTFXy+Mf5ahAiiEOpAlHurg+23VEzcsk=
github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk=
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=
-github.com/safchain/ethtool v0.0.0-20190326074333-42ed695e3de8/go.mod h1:Z0q5wiBQGYcxhMZ6gUqHn6pYNLypFAvaL3UvgZLR0U4=
-github.com/sagikazarmark/crypt v0.3.0/go.mod h1:uD/D+6UF4SrIR1uGEv7bBNkNqLGqUr43MRiaGWX1Nig=
-github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0=
-github.com/sclevine/spec v1.2.0/go.mod h1:W4J29eT/Kzv7/b9IWLB055Z+qvVC9vt0Arko24q7p+U=
github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=
-github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo=
github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM=
github.com/sergi/go-diff v1.2.0 h1:XU+rvMAioB0UC3q1MFrIQy4Vo5/4VsRDQQXHsEya6xQ=
-github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24/go.mod h1:M+9NzErvs504Cn4c5DxATwIqPbtswREoFCre64PpcG4=
github.com/shopspring/decimal v1.2.0/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o=
github.com/shopspring/decimal v1.3.1 h1:2Usl1nmF/WZucqkFZhnfFYxxxu8LG21F6nPQBE5gKV8=
github.com/shopspring/decimal v1.3.1/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o=
github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
-github.com/sirupsen/logrus v1.0.4-0.20170822132746-89742aefa4b2/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc=
-github.com/sirupsen/logrus v1.0.6/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc=
github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q=
-github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
-github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=
github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
-github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0=
-github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
+github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
+github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
-github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a/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/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM=
github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ=
-github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=
-github.com/spf13/afero v1.3.3/go.mod h1:5KUK8ByomD5Ti5Artl0RtHeI5pTF7MIDuXL3yY520V4=
github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I=
github.com/spf13/afero v1.9.3 h1:41FoI0fD7OR7mGcKE/aOiLkGreyf8ifIOQmJANWogMk=
github.com/spf13/afero v1.9.3/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y=
github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
-github.com/spf13/cast v1.4.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
github.com/spf13/cast v1.5.0 h1:rj3WzYc11XZaIZMPKmwP96zkFEnnAmV8s6XbB2aY32w=
github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU=
-github.com/spf13/cobra v0.0.2-0.20171109065643-2da4a54c5cee/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ=
-github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ=
-github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE=
+github.com/spf13/cobra v0.0.6/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE=
github.com/spf13/cobra v1.2.1/go.mod h1:ExllRjgxM/piMAM+3tAZvg8fsklGAf3tPfi+i8t68Nk=
-github.com/spf13/cobra v1.3.0/go.mod h1:BrRVncBjOJa/eUcVVm9CE+oC6as8k+VYr4NY7WCi9V4=
github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I=
github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0=
github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo=
github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk=
github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo=
-github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
-github.com/spf13/pflag v1.0.1-0.20171106142849-4c012f6dcd95/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
-github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
@@ -1159,17 +702,13 @@ github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/y
github.com/spf13/viper v1.8.1/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns=
github.com/spf13/viper v1.10.0 h1:mXH0UwHS4D2HwWZa75im4xIQynLfblmWV7qcWpfv0yk=
github.com/spf13/viper v1.10.0/go.mod h1:SoyBPwAtKDzypXNDFKN5kzH7ppppbGZtls1UpIy5AsM=
-github.com/stefanberger/go-pkcs11uri v0.0.0-20201008174630-78d3cae3a980/go.mod h1:AO3tvPzVZ/ayst6UlUKUv6rcPQInYe3IknH3jYhAKu8=
github.com/stoewer/go-strcase v1.2.0 h1:Z2iHWqGXH00XYgqDmNgQbIBxf3wrNq0F3feEy0ainaU=
github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8=
-github.com/stretchr/objx v0.0.0-20180129172003-8a3f7159479f/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/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
-github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE=
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c=
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
-github.com/stretchr/testify v0.0.0-20180303142811-b89eecf5ca5d/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
@@ -1178,52 +717,29 @@ github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
-github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk=
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
+github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8=
+github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s=
github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw=
-github.com/syndtr/gocapability v0.0.0-20170704070218-db04d3cc01c8/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww=
-github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww=
-github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww=
-github.com/tchap/go-patricia v2.2.6+incompatible/go.mod h1:bmLyhP68RS6kStMGxByiQ23RP/odRBOTVjwp2cDyi6I=
github.com/thoas/go-funk v0.8.0 h1:JP9tKSvnpFVclYgDM0Is7FD9M4fhPvqA0s0BsXmzSRQ=
github.com/thoas/go-funk v0.8.0/go.mod h1:+IWnUfUmFO1+WVYQWQtIJHeRRdaIyyYglZN7xzUPe4Q=
-github.com/tidwall/pretty v0.0.0-20180105212114-65a9db5fad51/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
-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/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
-github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM=
-github.com/tv42/httpunix v0.0.0-20191220191345-2ba4b9c3382c/go.mod h1:hzIxponao9Kjc7aWznkXaL4U4TWaDSs8zcsY4Ka08nM=
github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc=
-github.com/urfave/cli v0.0.0-20171014202726-7bc6a0acffa5/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/cli v1.22.4/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
github.com/vbatts/tar-split v0.11.2 h1:Via6XqJr0hceW4wff3QRzD5gAk/tatMw/4ZA7cTlIME=
github.com/vbatts/tar-split v0.11.2/go.mod h1:vV3ZuO2yWSVsz+pfFzDG/upWH1JhjOiEaWq6kXyQ3VI=
-github.com/vishvananda/netlink v0.0.0-20181108222139-023a6dafdcdf/go.mod h1:+SR5DhBJrl6ZM7CoCKvpw5BKroDKQ+PJqOg65H/2ktk=
-github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE=
-github.com/vishvananda/netlink v1.1.1-0.20201029203352-d40f9887b852/go.mod h1:twkDnbuQxJYemMlGd4JFIcuhgX83tXhKS2B/PRMpOho=
-github.com/vishvananda/netns v0.0.0-20180720170159-13995c7128cc/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-20200728191858-db3c7e526aae/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0=
-github.com/willf/bitset v1.1.11-0.20200630133818-d5bec3311243/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4=
-github.com/willf/bitset v1.1.11/go.mod h1:83CECat5yLh5zVOf4P1ErAgKA5UDvKtgyUABdr3+MjI=
-github.com/xanzy/go-gitlab v0.15.0/go.mod h1:8zdQa/ri1dfn8eS3Ir1SyfvOKlw7WBJ8DVThkpGiXrs=
github.com/xanzy/ssh-agent v0.3.0/go.mod h1:3s9xbODqPuuhK9JV1R321M/FlMZSBvE5aY6eAcqrDh0=
-github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I=
-github.com/xdg/stringprep v1.0.0/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y=
github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU=
github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb h1:zGWFAtiMcyryUHoUjUJX0/lt1H2+i2Ka2n+D3DImSNo=
github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU=
github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHovont7NscjpAxXsDA8S8BMYve8Y5+7cuRE7R0=
github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ=
-github.com/xeipuuv/gojsonschema v0.0.0-20180618132009-1d523034197f/go.mod h1:5yf86TLmAcydyeJq5YvxkGPE2fm/u4myDekKRoLuqhs=
github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74=
github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y=
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
-github.com/xlab/treeprint v1.1.0 h1:G/1DjNkPpfZCFt9CSh6b5/nY4VimlbHF3Rh4obvtzDk=
-github.com/xlab/treeprint v1.1.0/go.mod h1:gj5Gd3gPdKtR1ikdDK6fnFLdmIS0X30kTTuNd/WEJu0=
+github.com/xlab/treeprint v1.2.0 h1:HzHnuAF1plUN2zGlAFHbSQP2qJ0ZAD3XF5XD7OesXRQ=
+github.com/xlab/treeprint v1.2.0/go.mod h1:gj5Gd3gPdKtR1ikdDK6fnFLdmIS0X30kTTuNd/WEJu0=
github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q=
github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
@@ -1231,104 +747,80 @@ github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
github.com/yuin/goldmark v1.4.0/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
-github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
-github.com/yvasiyarov/go-metrics v0.0.0-20140926110328-57bccd1ccd43/go.mod h1:aX5oPXxHm3bOH+xeAttToC8pqch2ScQN/JoXYupl6xs=
+github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
github.com/yvasiyarov/go-metrics v0.0.0-20150112132944-c25f46c4b940 h1:p7OofyZ509h8DmPLh8Hn+EIIZm/xYhdZHJ9GnXHdr6U=
-github.com/yvasiyarov/gorelic v0.0.0-20141212073537-a9bba5b9ab50/go.mod h1:NUSPSUX/bi6SeDMUh6brw0nXpxHnc96TguQh0+r/ssA=
github.com/yvasiyarov/gorelic v0.0.7 h1:4DTF1WOM2ZZS/xMOkTFBOcb6XiHu/PKn3rVo6dbewQE=
-github.com/yvasiyarov/newrelic_platform_go v0.0.0-20140908184405-b21fdbd4370f/go.mod h1:GlGEuHIJweS1mbCqG+7vt2nvWLzLLnRHbXz5JKd/Qbg=
github.com/yvasiyarov/newrelic_platform_go v0.0.0-20160601141957-9c099fbc30e9 h1:AsFN8kXcCVkUFHyuzp1FtYbzp1nCO/H6+1uPSGEyPzM=
-github.com/ziutek/mymysql v1.5.4 h1:GB0qdRGsTwQSBVYuVShFBKaXSnSnYYC2d9knnE1LHFs=
-github.com/ziutek/mymysql v1.5.4/go.mod h1:LMSpPZ6DbqWFxNCHW77HeMg9I646SAhApZ/wKdgO/C0=
-gitlab.com/nyarla/go-crypt v0.0.0-20160106005555-d9a5dc2b789b/go.mod h1:T3BPAOm2cqquPa0MKWeNkmOM5RQsRhkrwMWonFMN7fE=
go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
-go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
-go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ=
-go.etcd.io/bbolt v1.3.6 h1:/ecaJf0sk1l4l6V4awd65v2C3ILy7MSj+s/x1ADCIMU=
-go.etcd.io/bbolt v1.3.6/go.mod h1:qXsaaIqmgQH0T+OPdb99Bf+PKfBBQVAdyD6TY9G8XM4=
-go.etcd.io/etcd v0.5.0-alpha.5.0.20200910180754-dd1b699fc489/go.mod h1:yVHk9ub3CSBatqGNg7GRmsnfLWtoW60w4eDYfh7vHDg=
+go.etcd.io/bbolt v1.3.7 h1:j+zJOnnEjF/kyHlDDgGnVL/AIqIJPq8UoB2GSNfkUfQ=
+go.etcd.io/bbolt v1.3.7/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw=
go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs=
-go.etcd.io/etcd/api/v3 v3.5.1/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs=
-go.etcd.io/etcd/api/v3 v3.5.7 h1:sbcmosSVesNrWOJ58ZQFitHMdncusIifYcrBfwrlJSY=
-go.etcd.io/etcd/api/v3 v3.5.7/go.mod h1:9qew1gCdDDLu+VwmeG+iFpL+QlpHTo7iubavdVDgCAA=
go.etcd.io/etcd/client/pkg/v3 v3.5.0/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g=
-go.etcd.io/etcd/client/pkg/v3 v3.5.1/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g=
go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ=
-go.etcd.io/etcd/client/v2 v2.305.1/go.mod h1:pMEacxZW7o8pg4CrFE7pquyCJJzZvkvdD2RibOCCCGs=
-go.mongodb.org/mongo-driver v1.1.0/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM=
-go.mozilla.org/pkcs7 v0.0.0-20200128120323-432b2356ecb1/go.mod h1:SNgMg+EgDFwmvSmLRTNKC5fegJjB7v23qTQ0XLGUNHk=
-go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk=
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.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk=
-go.opencensus.io v0.23.0 h1:gqCw0LfLxScz8irSi8exQc7fyQ0fKQU/qnC/X8+V/1M=
go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E=
+go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0=
+go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo=
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.35.1 h1:sxoY9kG1s1WpSYNyzm24rlwH4lnRYFXUVVBmKMBfRgw=
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.35.1/go.mod h1:9NiG9I2aHTKkcxqCILhjtyNA1QEiCjdBACv4IvrFQ+c=
-go.opentelemetry.io/otel v1.11.0 h1:kfToEGMDq6TrVrJ9Vht84Y8y9enykSZzDDZglV0kIEk=
-go.opentelemetry.io/otel v1.11.0/go.mod h1:H2KtuEphyMvlhZ+F7tg9GRhAOe60moNx61Ex+WmiKkk=
-go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.10.0 h1:TaB+1rQhddO1sF71MpZOZAuSPW1klK2M8XxfrBMfK7Y=
-go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.10.0/go.mod h1:78XhIg8Ht9vR4tbLNUhXsiOnE2HOuSeKAiAcoVQEpOY=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.10.0 h1:pDDYmo0QadUPal5fwXoY1pmMpFcdyhXOmL5drCrI3vU=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.10.0/go.mod h1:Krqnjl22jUJ0HgMzw5eveuCvFDXY4nSYb4F8t5gdrag=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.10.0 h1:KtiUEhQmj/Pa874bVYKGNVdq8NPKiacPbaRRtgXi+t4=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.10.0/go.mod h1:OfUCyyIiDvNXHWpcWgbF+MWvqPZiNa3YDEnivcnYsV0=
-go.opentelemetry.io/otel/metric v0.31.0 h1:6SiklT+gfWAwWUR0meEMxQBtihpiEs4c+vL9spDTqUs=
-go.opentelemetry.io/otel/metric v0.31.0/go.mod h1:ohmwj9KTSIeBnDBm/ZwH2PSZxZzoOaG2xZeekTRzL5A=
-go.opentelemetry.io/otel/sdk v1.11.0 h1:ZnKIL9V9Ztaq+ME43IUi/eo22mNsb6a7tGfzaOWB5fo=
-go.opentelemetry.io/otel/sdk v1.11.0/go.mod h1:REusa8RsyKaq0OlyangWXaw97t2VogoO4SSEeKkSTAk=
-go.opentelemetry.io/otel/trace v1.11.0 h1:20U/Vj42SX+mASlXLmSGBg6jpI1jQtv682lZtTAOVFI=
-go.opentelemetry.io/otel/trace v1.11.0/go.mod h1:nyYjis9jy0gytE9LXGU+/m1sHTKbRY0fX0hulNNDP1U=
+go.opentelemetry.io/otel v1.14.0 h1:/79Huy8wbf5DnIPhemGB+zEPVwnN6fuQybr/SRXa6hM=
+go.opentelemetry.io/otel v1.14.0/go.mod h1:o4buv+dJzx8rohcUeRmWUZhqupFvzWis188WlggnNeU=
+go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.14.0 h1:/fXHZHGvro6MVqV34fJzDhi7sHGpX3Ej/Qjmfn003ho=
+go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.14.0/go.mod h1:UFG7EBMRdXyFstOwH028U0sVf+AvukSGhF0g8+dmNG8=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.14.0 h1:TKf2uAs2ueguzLaxOCBXNpHxfO/aC7PAdDsSH0IbeRQ=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.14.0/go.mod h1:HrbCVv40OOLTABmOn1ZWty6CHXkU8DK/Urc43tHug70=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.14.0 h1:ap+y8RXX3Mu9apKVtOkM6WSFESLM8K3wNQyOU8sWHcc=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.14.0/go.mod h1:5w41DY6S9gZrbjuq6Y+753e96WfPha5IcsOSZTtullM=
+go.opentelemetry.io/otel/metric v0.35.0 h1:aPT5jk/w7F9zW51L7WgRqNKDElBdyRLGuBtI5MX34e8=
+go.opentelemetry.io/otel/metric v0.35.0/go.mod h1:qAcbhaTRFU6uG8QM7dDo7XvFsWcugziq/5YI065TokQ=
+go.opentelemetry.io/otel/sdk v1.14.0 h1:PDCppFRDq8A1jL9v6KMI6dYesaq+DFcDZvjsoGvxGzY=
+go.opentelemetry.io/otel/sdk v1.14.0/go.mod h1:bwIC5TjrNG6QDCHNWvW4HLHtUQ4I+VQDsnjhvyZCALM=
+go.opentelemetry.io/otel/trace v1.14.0 h1:wp2Mmvj41tDsyAJXiWDWpfNsOiIyd38fy85pyKcFq/M=
+go.opentelemetry.io/otel/trace v1.14.0/go.mod h1:8avnQLK+CG77yNLUae4ea2JDQ6iT+gozhnZjy/rw9G8=
go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI=
go.opentelemetry.io/proto/otlp v0.19.0 h1:IVN6GR+mhC4s5yfcTbmzHYODqvWAp3ZedA2SJPI1Nnw=
go.opentelemetry.io/proto/otlp v0.19.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U=
go.starlark.net v0.0.0-20221010140840-6bf6f0955179 h1:Mc5MkF55Iasgq23vSYpL6/l7EJXtlNjzw+8hbMQ/ShY=
go.starlark.net v0.0.0-20221010140840-6bf6f0955179/go.mod h1:kIVgS18CjmEC3PqMd5kaJSGEifyV/CeB9x506ZJ1Vbk=
-go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ=
-go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
-go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A=
-go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A=
+go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ=
+go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
-go.uber.org/multierr v1.8.0 h1:dg6GjLku4EH+249NNmoIciG9N/jURbDG+pFlTkhzIC8=
-go.uber.org/multierr v1.8.0/go.mod h1:7EAYxJLBy9rStEaz58O2t4Uvip6FSURkq8/ppBp95ak=
+go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
+go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo=
-go.uber.org/zap v1.19.0/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI=
-go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60=
go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg=
-golang.org/x/crypto v0.0.0-20171113213409-9f005a07e0d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
+go.uber.org/zap v1.26.0 h1:sI7k6L95XOKS281NhVKOFCUNIvv9e0w4BF8N3u+tCRo=
+go.uber.org/zap v1.26.0/go.mod h1:dtElttAiwGvoJ/vj4IwHBS/gXsEu/pZ50mUIRWuG0so=
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
-golang.org/x/crypto v0.0.0-20181009213950-7c1a557ab941/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20190219172222-a4c6cb3142f2/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20190325154230-a5d413f7728c/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
-golang.org/x/crypto v0.0.0-20190426145343-a29dc8fdc734/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-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
-golang.org/x/crypto v0.0.0-20190923035154-9ee001bba392/go.mod h1:/lpIB1dKB+9EgE3H3cr1v9wB50oz8l4C4h62xy7jSTY=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20200414173820-0848c9571904/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
-golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
-golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
-golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
+golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
-golang.org/x/crypto v0.1.0 h1:MDRAIl0xIo9Io2xV565hzXHw3zVseKrJKodhohM5CjU=
-golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw=
+golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4=
+golang.org/x/crypto v0.5.0/go.mod h1:NK/OQwhpMQP3MwtdjgLlYHnH9ebylxKWv3e0fK+mkQU=
+golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc=
+golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
@@ -1339,6 +831,8 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0
golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM=
golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU=
+golang.org/x/exp v0.0.0-20231006140011-7918f672742d h1:jtJma62tbqLibJ5sFQz8bKtEM8rJBtfilJ2qTU199MI=
+golang.org/x/exp v0.0.0-20231006140011-7918f672742d/go.mod h1:ldy0pHrwJyGW56pPQzzkH36rKxoZW1tw7ZJpeKx+hdo=
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=
@@ -1364,38 +858,27 @@ golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
-golang.org/x/mod v0.5.0/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro=
-golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro=
-golang.org/x/mod v0.10.0 h1:lFO9qtOdlre5W1jxS3r/4szv2/6iXxScdzjoBMXNhYk=
-golang.org/x/mod v0.10.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
+golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
+golang.org/x/mod v0.13.0 h1:I/DsJXRlw/8l/0c24sM9yb0T4z9liZTduXvdAWYiysY=
+golang.org/x/mod v0.13.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
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-20181011144130-49bb7cea24b1/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20181108082009-03003ca0c849/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/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-20190424112056-4829fb13d2c6/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/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-20190619014844-b5b0513f8c1b/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-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/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-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20191004110552-13f9640d40b9/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-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
@@ -1410,7 +893,6 @@ golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/
golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
-golang.org/x/net v0.0.0-20201006153459-a7d1128ccaa0/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-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
@@ -1421,22 +903,14 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v
golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc=
golang.org/x/net v0.0.0-20210326060303-6b1517762897/go.mod h1:uSPa2vr4CLtc/ILN5odXGNXS6mhrKVzTaCXzk9m6W3k=
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
-golang.org/x/net v0.0.0-20210410081132-afb366fc7cd1/go.mod h1:9tjilg8BloeKEkVJvy7fQ90B1CfIiPueXVOjqfkSzI8=
-golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
-golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
-golang.org/x/net v0.0.0-20210813160813-60bc85c4be6d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
-golang.org/x/net v0.0.0-20210825183410-e898025ed96a/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
-golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
-golang.org/x/net v0.0.0-20211216030914-fe4d6282115f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
-golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
-golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
-golang.org/x/net v0.9.0 h1:aWJ/m6xSmxWBx+V0XRHTlrYrPG56jKsLdTFmsSsCzOM=
-golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns=
+golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
+golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY=
+golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws=
+golang.org/x/net v0.16.0 h1:7eBu7KsSvFDtSXUIDbh3aqlK4DPsZ1rByC8PFfBThos=
+golang.org/x/net v0.16.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
-golang.org/x/oauth2 v0.0.0-20181106182150-f42d05182288/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-20190402181905-9f3314589c9a/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/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
@@ -1447,15 +921,9 @@ golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ
golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
golang.org/x/oauth2 v0.0.0-20210402161424-2e8d93401602/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
-golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
-golang.org/x/oauth2 v0.0.0-20210628180205-a41e5a781914/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
-golang.org/x/oauth2 v0.0.0-20210805134026-6f1e6394065a/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
-golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
-golang.org/x/oauth2 v0.0.0-20211005180243-6b3c2da341f1/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
-golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc=
-golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783 h1:nt+Q6cXKz4MosCSpnbMtqiQ8Oz0pxTef2B4Vca2lvfk=
-golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg=
+golang.org/x/oauth2 v0.8.0 h1:6dkIjl3j3LtZ/O3sTgZTMsLKSftL/B8Zgq4huOIIUu8=
+golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE=
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-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -1467,60 +935,36 @@ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJ
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o=
-golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.4.0 h1:zxkM55ReGkDlKSM+Fu41A+zmbZuaPVbGMzvvdUPznYQ=
+golang.org/x/sync v0.4.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=
golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/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-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/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-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20190102155601-82a175fd1598/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-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190426135247-a129542de9ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190514135907-3a4b5fb9f71f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190522044717-8097e1b27ff5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190602015325-4c4f7f33c9ed/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-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190812073006-9eafafc0a87e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20191022100944-742c48ecaeb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/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-20191210023423-ac6580df4449/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-20200113162924-86b910548bc1/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-20200122134326-e047566fdf82/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-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200217220822-9197077df867/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/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/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -1529,30 +973,16 @@ golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200523222454-059865788121/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/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200728102440-3e129f6d46b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200817155316-9781c653f443/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200831180312-196b9ba8737a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200909081042-eff7692f9009/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200916030750-2334cc1a136f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200922070232-aee5d888a860/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200923182605-d9f96fdee20d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20201112073958-5cba982894dd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20201117170446-d9b008d0a637/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20201202213521-69691e467435/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210303074136-134d130e1a04/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/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=
@@ -1561,37 +991,30 @@ golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210426230700-d19ff857e887/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20210603125802-9665404d3644/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20210816183151-1e6c022a8912/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20210908233432-aa78b53d3365/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20211205182925-97ca703d548d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.7.0 h1:3jlCCIQZPdOYu1h8BkNvLz8Kgwtae2cagcG/VamtZRU=
-golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20221013171732-95e765b1cc43/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE=
+golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/term v0.0.0-20220526004731-065cf7ba2467/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
-golang.org/x/term v0.7.0 h1:BEvjmm5fURWqcfbSKTdpkDXYBrUS1c0m8agp14W48vQ=
-golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY=
+golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc=
+golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ=
+golang.org/x/term v0.13.0 h1:bb+I9cTfFazGW51MZqBVmZy7+JEJMouUHTUSKVQLBek=
+golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U=
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/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.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
@@ -1601,22 +1024,17 @@ golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
-golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE=
-golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
-golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
+golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
+golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
+golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k=
+golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/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/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
-golang.org/x/time v0.0.0-20200416051211-89c76fbcd5d1/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
-golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
-golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4=
golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
-golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/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-20181011042414-1f849cf54d09/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-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=
@@ -1624,20 +1042,14 @@ golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3
golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
-golang.org/x/tools v0.0.0-20190425222832-ad9eeb80039a/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/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-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-20190706070813-72ffa07ba3db/go.mod h1:jcCCGcm9btYwXyDqrUWc6MKQKKGJCWEQ3AfLSRIbEuI=
golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/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-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
@@ -1656,19 +1068,17 @@ golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapK
golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw=
golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw=
+golang.org/x/tools v0.0.0-20200313205530-4303120df7d8/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8=
golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8=
golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
-golang.org/x/tools v0.0.0-20200505023115-26f46d2f7ef8/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
-golang.org/x/tools v0.0.0-20200616133436-c1934b75d054/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/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-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE=
-golang.org/x/tools v0.0.0-20200916195026-c9a70fc28ce3/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU=
golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
@@ -1676,23 +1086,17 @@ golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4f
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0=
-golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
-golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
-golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
golang.org/x/tools v0.1.7/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo=
-golang.org/x/tools v0.1.8/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU=
-golang.org/x/tools v0.8.0 h1:vSDcovVPld282ceKgDimkRSC8kpaH1dgyc9UMzlt84Y=
-golang.org/x/tools v0.8.0/go.mod h1:JxBZ99ISMI5ViVkT1tr6tdNmXeTrcpVSD3vZ1RsRdN4=
+golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
+golang.org/x/tools v0.14.0 h1:jvNa2pY0M4r62jkRQ6RwEZZyPcymeL9XZMLBbV7U2nc=
+golang.org/x/tools v0.14.0/go.mod h1:uYBEerGOWcJyEORxN+Ek8+TT266gXkNlHdJBwexUsBg=
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/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
gomodules.xyz/jsonpatch/v2 v2.2.0 h1:4pT439QV83L+G9FkcCriY6EkpcK6r6bK+A5FBUMI7qY=
-google.golang.org/api v0.0.0-20160322025152-9bf6e6e569ff/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0=
-google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk=
-google.golang.org/api v0.3.2/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk=
google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE=
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=
@@ -1715,19 +1119,7 @@ google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjR
google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU=
google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94=
google.golang.org/api v0.44.0/go.mod h1:EBOGZqzyhtvMDoxwS97ctnh0zUmYY6CxqXsc1AvkYD8=
-google.golang.org/api v0.47.0/go.mod h1:Wbvgpq1HddcWVtzsVLyfLp8lDg6AA241LmgIL59tHXo=
-google.golang.org/api v0.48.0/go.mod h1:71Pr1vy+TAZRPkPs/xlCf5SsU8WjuAWv1Pfjbtukyy4=
-google.golang.org/api v0.50.0/go.mod h1:4bNT5pAuq5ji4SRZm+5QIkjny9JAyVD/3gaSihNefaw=
-google.golang.org/api v0.51.0/go.mod h1:t4HdrdoNgyN5cbEfm7Lum0lcLDLiise1F8qDKX00sOU=
-google.golang.org/api v0.54.0/go.mod h1:7C4bFFOvVDGXjfDTAsgGwDgAxRDeQ4X8NvUedIt6z3k=
-google.golang.org/api v0.55.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE=
-google.golang.org/api v0.56.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE=
-google.golang.org/api v0.57.0/go.mod h1:dVPlbZyBo2/OjBpmvNdpn2GRm6rPy75jyU7bmhdrMgI=
-google.golang.org/api v0.59.0/go.mod h1:sT2boj7M9YJxZzgeZqXogmhfmRWDtPzT31xkieUbuZU=
-google.golang.org/api v0.61.0/go.mod h1:xQRti5UdCmoCEqFxcz93fTl338AVqDgyaDRuOZ3hg9I=
-google.golang.org/api v0.62.0/go.mod h1:dKmwPCydfsad4qCH08MSdgWjfHOyfpd4VtDGgRFdavw=
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
-google.golang.org/appengine v1.3.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/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0=
@@ -1735,14 +1127,11 @@ google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCID
google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c=
google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
-google.golang.org/cloud v0.0.0-20151119220103-975617b05ea8/go.mod h1:0H1ncTHf11KCFhTc/+EFRbzSCOZx+VUbRMk55Yv5MYk=
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-20190404172233-64821d5d2107/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-20190522204451-c2c4e71fbf69/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s=
google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/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=
@@ -1751,7 +1140,6 @@ google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvx
google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/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-20200117163144-32f20d992d24/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA=
google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
@@ -1765,14 +1153,12 @@ google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfG
google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U=
google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
-google.golang.org/genproto v0.0.0-20200527145253-8367513e4ece/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA=
google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA=
google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
-google.golang.org/genproto v0.0.0-20201110150050-8816d57aaa9a/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
@@ -1783,41 +1169,20 @@ google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6D
google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A=
-google.golang.org/genproto v0.0.0-20210513213006-bf773b8c8384/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A=
google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0=
-google.golang.org/genproto v0.0.0-20210604141403-392c879c8b08/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0=
-google.golang.org/genproto v0.0.0-20210608205507-b6d2f5bf0d7d/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0=
-google.golang.org/genproto v0.0.0-20210624195500-8bfb893ecb84/go.mod h1:SzzZ/N+nwJDaO1kznhnlzqS8ocJICar6hYhVyhi++24=
-google.golang.org/genproto v0.0.0-20210713002101-d411969a0d9a/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k=
-google.golang.org/genproto v0.0.0-20210716133855-ce7ef5c701ea/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k=
-google.golang.org/genproto v0.0.0-20210728212813-7823e685a01f/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48=
-google.golang.org/genproto v0.0.0-20210805201207-89edb61ffb67/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48=
-google.golang.org/genproto v0.0.0-20210813162853-db860fec028c/go.mod h1:cFeNkxwySK631ADgubI+/XFU/xp8FD5KIVV4rj8UC5w=
-google.golang.org/genproto v0.0.0-20210821163610-241b8fcbd6c8/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY=
-google.golang.org/genproto v0.0.0-20210828152312-66f60bf46e71/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY=
-google.golang.org/genproto v0.0.0-20210831024726-fe130286e0e2/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY=
-google.golang.org/genproto v0.0.0-20210903162649-d08c68adba83/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY=
-google.golang.org/genproto v0.0.0-20210909211513-a8c4777a87af/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY=
-google.golang.org/genproto v0.0.0-20210924002016-3dee208752a0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
-google.golang.org/genproto v0.0.0-20211008145708-270636b82663/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
-google.golang.org/genproto v0.0.0-20211028162531-8db9c33dc351/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
google.golang.org/genproto v0.0.0-20211118181313-81c1377c94b1/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
-google.golang.org/genproto v0.0.0-20211129164237-f09f9a12af12/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
-google.golang.org/genproto v0.0.0-20211203200212-54befc351ae9/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
-google.golang.org/genproto v0.0.0-20211206160659-862468c7d6e0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
-google.golang.org/genproto v0.0.0-20211208223120-3a66f561d7aa/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
-google.golang.org/genproto v0.0.0-20221014173430-6e2ab493f96b h1:IOQ/4u8ZSLV+xns0LQxzdAcdOJTDMWB+0shVM8KWXBE=
-google.golang.org/genproto v0.0.0-20221014173430-6e2ab493f96b/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM=
-google.golang.org/grpc v0.0.0-20160317175043-d3ddb4469d5a/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw=
-google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs=
+google.golang.org/genproto v0.0.0-20230526161137-0005af68ea54 h1:9NWlQfY2ePejTmfwUH1OWwmznFa+0kKcHGPDvcPza9M=
+google.golang.org/genproto v0.0.0-20230526161137-0005af68ea54/go.mod h1:zqTuNwFlFRsw5zIts5VnzLQxSRqh+CGOTVMlYbY0Eyk=
+google.golang.org/genproto/googleapis/api v0.0.0-20230525234035-dd9d682886f9 h1:m8v1xLLLzMe1m5P+gCTF8nJB9epwZQUBERm20Oy1poQ=
+google.golang.org/genproto/googleapis/api v0.0.0-20230525234035-dd9d682886f9/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19 h1:0nDDozoAU19Qb2HwhXadU8OcsiO/09cnTqhUtq2MEOM=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA=
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.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA=
google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
@@ -1833,18 +1198,11 @@ google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA5
google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
-google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
-google.golang.org/grpc v1.37.1/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
-google.golang.org/grpc v1.39.0/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE=
-google.golang.org/grpc v1.39.1/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE=
google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34=
-google.golang.org/grpc v1.40.1/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34=
google.golang.org/grpc v1.42.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU=
-google.golang.org/grpc v1.43.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU=
-google.golang.org/grpc v1.51.0 h1:E1eGv1FTqoLIdnBCZufiSHgKjlqG6fKFf6pPWtMTh8U=
-google.golang.org/grpc v1.51.0/go.mod h1:wgNDFcnuBGmxLKI/qn4T+m5BtEBYXJPvibbUPsAIPww=
-google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw=
+google.golang.org/grpc v1.54.0 h1:EhTqbhiYeixwWQtAEZAxmV9MGqcjEU2mFx52xCzNyag=
+google.golang.org/grpc v1.54.0/go.mod h1:PUSEXI6iWghWaB6lXM4knEgpJNu2qUcKfDtNci3EC2g=
google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 h1:rNBFJjBCOgVr9pWD7rs/knKL4FRTKgpZmsRfV214zcA=
google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0/go.mod h1:Dk1tviKTvMCz5tvh7t+fh94dhmQVHuCt2OzJB3CTW9Y=
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
@@ -1862,31 +1220,23 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ
google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8=
google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
-gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U=
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
-gopkg.in/check.v1 v1.0.0-20141024133853-64131543e789/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
-gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw=
gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
-gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
-gopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2/go.mod h1:Xk6kEKp8OKb+X14hQBKWaSkCsqBpgog8nAV2xsGOxlo=
+gopkg.in/evanphx/json-patch.v5 v5.6.0 h1:BMT6KIwBD9CaU91PJCZIe46bDmBWa9ynTQgJIOpfQBk=
+gopkg.in/evanphx/json-patch.v5 v5.6.0/go.mod h1:/kvTRh1TVm5wuM6OkHxqXtE/1nUZZpihg29RtuIyfvk=
gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=
gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
gopkg.in/ini.v1 v1.66.2 h1:XfR1dOYubytKy4Shzc2LHrrGhU0lDCfDGG1yLPmpgsI=
gopkg.in/ini.v1 v1.66.2/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
-gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k=
gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo=
-gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI=
-gopkg.in/square/go-jose.v2 v2.3.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI=
-gopkg.in/square/go-jose.v2 v2.5.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI=
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=
-gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
gopkg.in/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME=
gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI=
gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74=
@@ -1894,7 +1244,6 @@ gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
@@ -1905,14 +1254,9 @@ gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C
gopkg.in/yaml.v3 v3.0.0/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
-gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo=
-gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw=
-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=
-helm.sh/helm/v3 v3.10.3 h1:wL7IUZ7Zyukm5Kz0OUmIFZgKHuAgByCrUcJBtY0kDyw=
-helm.sh/helm/v3 v3.10.3/go.mod h1:CXOcs02AYvrlPMWARNYNRgf2rNP7gLJQsi/Ubd4EDrI=
-honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
+helm.sh/helm/v3 v3.11.3 h1:n1X5yaQTP5DYywlBOZMl2gX398Gp6YwFp/IAVj6+5D4=
+helm.sh/helm/v3 v3.11.3/go.mod h1:S+sOdQc3BLvt09a9rSlKKVs9x0N/yx+No0y3qFw+FQ8=
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-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
@@ -1920,93 +1264,56 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh
honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
-k8s.io/api v0.20.1/go.mod h1:KqwcCVogGxQY3nBlRpwt+wpAMF/KjaCc7RpywacvqUo=
-k8s.io/api v0.20.4/go.mod h1:++lNL1AJMkDymriNniQsWRkMDzRaX2Y/POTUi8yvqYQ=
-k8s.io/api v0.20.6/go.mod h1:X9e8Qag6JV/bL5G6bU8sdVRltWKmdHsFUGS3eVndqE8=
-k8s.io/api v0.27.1 h1:Z6zUGQ1Vd10tJ+gHcNNNgkV5emCyW+v2XTmn+CLjSd0=
-k8s.io/api v0.27.1/go.mod h1:z5g/BpAiD+f6AArpqNjkY+cji8ueZDU/WV1jcj5Jk4E=
-k8s.io/apiextensions-apiserver v0.27.1 h1:Hp7B3KxKHBZ/FxmVFVpaDiXI6CCSr49P1OJjxKO6o4g=
-k8s.io/apiextensions-apiserver v0.27.1/go.mod h1:8jEvRDtKjVtWmdkhOqE84EcNWJt/uwF8PC4627UZghY=
-k8s.io/apimachinery v0.20.1/go.mod h1:WlLqWAHZGg07AeltaI0MV5uk1Omp8xaN0JGLY6gkRpU=
-k8s.io/apimachinery v0.20.4/go.mod h1:WlLqWAHZGg07AeltaI0MV5uk1Omp8xaN0JGLY6gkRpU=
-k8s.io/apimachinery v0.20.6/go.mod h1:ejZXtW1Ra6V1O5H8xPBGz+T3+4gfkTCeExAHKU57MAc=
-k8s.io/apimachinery v0.27.1 h1:EGuZiLI95UQQcClhanryclaQE6xjg1Bts6/L3cD7zyc=
-k8s.io/apimachinery v0.27.1/go.mod h1:5ikh59fK3AJ287GUvpUsryoMFtH9zj/ARfWCo3AyXTM=
-k8s.io/apiserver v0.20.1/go.mod h1:ro5QHeQkgMS7ZGpvf4tSMx6bBOgPfE+f52KwvXfScaU=
-k8s.io/apiserver v0.20.4/go.mod h1:Mc80thBKOyy7tbvFtB4kJv1kbdD0eIH8k8vianJcbFM=
-k8s.io/apiserver v0.20.6/go.mod h1:QIJXNt6i6JB+0YQRNcS0hdRHJlMhflFmsBDeSgT1r8Q=
-k8s.io/apiserver v0.27.1 h1:phY+BtXjjzd+ta3a4kYbomC81azQSLa1K8jo9RBw7Lg=
-k8s.io/apiserver v0.27.1/go.mod h1:UGrOjLY2KsieA9Fw6lLiTObxTb8Z1xEba4uqSuMY0WU=
+k8s.io/api v0.28.0 h1:3j3VPWmN9tTDI68NETBWlDiA9qOiGJ7sdKeufehBYsM=
+k8s.io/api v0.28.0/go.mod h1:0l8NZJzB0i/etuWnIXcwfIv+xnDOhL3lLW919AWYDuY=
+k8s.io/apiextensions-apiserver v0.28.0 h1:CszgmBL8CizEnj4sj7/PtLGey6Na3YgWyGCPONv7E9E=
+k8s.io/apiextensions-apiserver v0.28.0/go.mod h1:uRdYiwIuu0SyqJKriKmqEN2jThIJPhVmOWETm8ud1VE=
+k8s.io/apimachinery v0.28.0 h1:ScHS2AG16UlYWk63r46oU3D5y54T53cVI5mMJwwqFNA=
+k8s.io/apimachinery v0.28.0/go.mod h1:X0xh/chESs2hP9koe+SdIAcXWcQ+RM5hy0ZynB+yEvw=
+k8s.io/apiserver v0.28.0 h1:wVh7bK6Xj7hq+5ntInysTeQRAOqqFoKGUOW2yj8DXrY=
+k8s.io/apiserver v0.28.0/go.mod h1:MvLmtxhQ0Tb1SZk4hfJBjs8iqr5nhYeaFSaoEcz7Lk4=
k8s.io/cli-runtime v0.26.2 h1:6XcIQOYW1RGNwFgRwejvyUyAojhToPmJLGr0JBMC5jw=
k8s.io/cli-runtime v0.26.2/go.mod h1:U7sIXX7n6ZB+MmYQsyJratzPeJwgITqrSlpr1a5wM5I=
-k8s.io/client-go v0.20.1/go.mod h1:/zcHdt1TeWSd5HoUe6elJmHSQ6uLLgp4bIJHVEuy+/Y=
-k8s.io/client-go v0.20.4/go.mod h1:LiMv25ND1gLUdBeYxBIwKpkSC5IsozMMmOOeSJboP+k=
-k8s.io/client-go v0.20.6/go.mod h1:nNQMnOvEUEsOzRRFIIkdmYOjAZrC8bgq0ExboWSU1I0=
-k8s.io/client-go v0.27.1 h1:oXsfhW/qncM1wDmWBIuDzRHNS2tLhK3BZv512Nc59W8=
-k8s.io/client-go v0.27.1/go.mod h1:f8LHMUkVb3b9N8bWturc+EDtVVVwZ7ueTVquFAJb2vA=
-k8s.io/code-generator v0.19.7/go.mod h1:lwEq3YnLYb/7uVXLorOJfxg+cUu2oihFhHZ0n9NIla0=
-k8s.io/component-base v0.20.1/go.mod h1:guxkoJnNoh8LNrbtiQOlyp2Y2XFCZQmrcg2n/DeYNLk=
-k8s.io/component-base v0.20.4/go.mod h1:t4p9EdiagbVCJKrQ1RsA5/V4rFQNDfRlevJajlGwgjI=
-k8s.io/component-base v0.20.6/go.mod h1:6f1MPBAeI+mvuts3sIdtpjljHWBQ2cIy38oBIWMYnrM=
-k8s.io/component-base v0.27.1 h1:kEB8p8lzi4gCs5f2SPU242vOumHJ6EOsOnDM3tTuDTM=
-k8s.io/component-base v0.27.1/go.mod h1:UGEd8+gxE4YWoigz5/lb3af3Q24w98pDseXcXZjw+E0=
-k8s.io/cri-api v0.17.3/go.mod h1:X1sbHmuXhwaHs9xxYffLqJogVsnI+f6cPRcgPel7ywM=
-k8s.io/cri-api v0.20.1/go.mod h1:2JRbKt+BFLTjtrILYVqQK5jqhI+XNdF6UiGMgczeBCI=
-k8s.io/cri-api v0.20.4/go.mod h1:2JRbKt+BFLTjtrILYVqQK5jqhI+XNdF6UiGMgczeBCI=
-k8s.io/cri-api v0.20.6/go.mod h1:ew44AjNXwyn1s0U4xCKGodU7J1HzBeZ1MpGrpa5r8Yc=
-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/gengo v0.0.0-20201113003025-83324d819ded/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E=
-k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE=
-k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y=
-k8s.io/klog/v2 v2.4.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y=
-k8s.io/klog/v2 v2.90.1 h1:m4bYOKall2MmOiRaR1J+We67Do7vm9KiQVlT96lnHUw=
-k8s.io/klog/v2 v2.90.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0=
-k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6/go.mod h1:UuqjUnNftUyPE5H64/qeyjQoUZhGpeFDVdxjTeEVN2o=
-k8s.io/kube-openapi v0.0.0-20201113171705-d219536bb9fd/go.mod h1:WOJ3KddDSol4tAGcJo0Tvi+dK12EcqSLqcWsryKMpfM=
-k8s.io/kube-openapi v0.0.0-20230308215209-15aac26d736a h1:gmovKNur38vgoWfGtP5QOGNOA7ki4n6qNYoFAgMlNvg=
-k8s.io/kube-openapi v0.0.0-20230308215209-15aac26d736a/go.mod h1:y5VtZWM9sHHc2ZodIH/6SHzXj+TPU5USoA8lcIeKEKY=
+k8s.io/client-go v0.28.0 h1:ebcPRDZsCjpj62+cMk1eGNX1QkMdRmQ6lmz5BLoFWeM=
+k8s.io/client-go v0.28.0/go.mod h1:0Asy9Xt3U98RypWJmU1ZrRAGKhP6NqDPmptlAzK2kMc=
+k8s.io/component-base v0.28.0 h1:HQKy1enJrOeJlTlN4a6dU09wtmXaUvThC0irImfqyxI=
+k8s.io/component-base v0.28.0/go.mod h1:Yyf3+ZypLfMydVzuLBqJ5V7Kx6WwDr/5cN+dFjw1FNk=
+k8s.io/klog/v2 v2.100.1 h1:7WCHKK6K8fNhTqfBhISHQ97KrnJNFZMcQvKp7gP/tmg=
+k8s.io/klog/v2 v2.100.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0=
+k8s.io/kube-openapi v0.0.0-20230717233707-2695361300d9 h1:LyMgNKD2P8Wn1iAwQU5OhxCKlKJy0sHc+PcDwFB24dQ=
+k8s.io/kube-openapi v0.0.0-20230717233707-2695361300d9/go.mod h1:wZK2AVp1uHCp4VamDVgBP2COHZjqD1T68Rf0CM3YjSM=
k8s.io/kubectl v0.26.2 h1:SMPB4j48eVFxsYluBq3VLyqXtE6b72YnszkbTAtFye4=
k8s.io/kubectl v0.26.2/go.mod h1:KYWOXSwp2BrDn3kPeoU/uKzKtdqvhK1dgZGd0+no4cM=
-k8s.io/kubernetes v1.13.0/go.mod h1:ocZa8+6APFNC2tX1DZASIbocyYT5jHzqFVsY5aoB7Jk=
-k8s.io/utils v0.0.0-20201110183641-67b214c5f920/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
-k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5 h1:kmDqav+P+/5e1i9tFfHq1qcF3sOrDp+YEkVDAHu7Jwk=
-k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
-oras.land/oras-go v1.2.0 h1:yoKosVIbsPoFMqAIFHTnrmOuafHal+J/r+I5bdbVWu4=
-oras.land/oras-go v1.2.0/go.mod h1:pFNs7oHp2dYsYMSS82HaX5l4mpnGO7hbpPN6EWH2ltc=
+k8s.io/utils v0.0.0-20230711102312-30195339c3c7 h1:ZgnF1KZsYxWIifwSNZFZgNtWE89WI5yiP5WwlfDoIyc=
+k8s.io/utils v0.0.0-20230711102312-30195339c3c7/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
+oras.land/oras-go v1.2.2 h1:0E9tOHUfrNH7TCDk5KU0jVBEzCqbfdyuVfGmJ7ZeRPE=
+oras.land/oras-go v1.2.2/go.mod h1:Apa81sKoZPpP7CDciE006tSZ0x3Q3+dOoBcMZ/aNxvw=
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
rsc.io/letsencrypt v0.0.3 h1:H7xDfhkaFFSYEJlKeq38RwX2jYcnTeHuDQyT+mMNMwM=
rsc.io/letsencrypt v0.0.3/go.mod h1:buyQKZ6IXrRnB7TdkHP0RyEybLx18HHyOSoTyoOLqNY=
rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
-sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.14/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg=
-sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.15/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg=
-sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.1.1 h1:MB1zkK+WMOmfLxEpjr1wEmkpcIhZC7kfTkZ0stg5bog=
-sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.1.1/go.mod h1:/4NLd21PQY0B+H+X0aDZdwUiVXYJQl/2NXA5KVtDiP4=
-sigs.k8s.io/controller-runtime v0.14.5 h1:6xaWFqzT5KuAQ9ufgUaj1G/+C4Y1GRkhrxl+BJ9i+5s=
-sigs.k8s.io/controller-runtime v0.14.5/go.mod h1:WqIdsAY6JBsjfc/CqO0CORmNtoCtE4S6qbPc9s68h+0=
-sigs.k8s.io/controller-runtime/tools/setup-envtest v0.0.0-20230620070423-a784ee78d04b h1:OZOsH3AuA+PGDU1ksxqhnGjP14YJRcQOHzKTcKeJw3U=
-sigs.k8s.io/controller-runtime/tools/setup-envtest v0.0.0-20230620070423-a784ee78d04b/go.mod h1:B6HLcvOy2S1qq2eWOFm9xepiKPMIc8Z9OXSPsnUDaR4=
-sigs.k8s.io/controller-tools v0.12.1 h1:GyQqxzH5wksa4n3YDIJdJJOopztR5VDM+7qsyg5yE4U=
-sigs.k8s.io/controller-tools v0.12.1/go.mod h1:rXlpTfFHZMpZA8aGq9ejArgZiieHd+fkk/fTatY8A2M=
+sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.1.2 h1:trsWhjU5jZrx6UvFu4WzQDrN7Pga4a7Qg+zcfcj64PA=
+sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.1.2/go.mod h1:+qG7ISXqCDVVcyO8hLn12AKVYYUjM7ftlqsqmrhMZE0=
+sigs.k8s.io/controller-runtime v0.14.6 h1:oxstGVvXGNnMvY7TAESYk+lzr6S3V5VFxQ6d92KcwQA=
+sigs.k8s.io/controller-runtime v0.14.6/go.mod h1:WqIdsAY6JBsjfc/CqO0CORmNtoCtE4S6qbPc9s68h+0=
+sigs.k8s.io/controller-runtime/tools/setup-envtest v0.0.0-20231212104454-76b5567314a8 h1:X5yAdZVLujJL51uQJHg3mCftGs2eG5Y1aP77XSimse4=
+sigs.k8s.io/controller-runtime/tools/setup-envtest v0.0.0-20231212104454-76b5567314a8/go.mod h1:TF/lVLWS+JNNaVqJuDDictY2hZSXSsIHCx4FClMvqFg=
+sigs.k8s.io/controller-tools v0.13.0 h1:NfrvuZ4bxyolhDBt/rCZhDnx3M2hzlhgo5n3Iv2RykI=
+sigs.k8s.io/controller-tools v0.13.0/go.mod h1:5vw3En2NazbejQGCeWKRrE7q4P+CW8/klfVqP8QZkgA=
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo=
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0=
sigs.k8s.io/kubebuilder/v3 v3.9.1 h1:9JNKRg9GzlLBYwYRx1nQlwha8+Pd9gPyat1lj7T+jZw=
sigs.k8s.io/kubebuilder/v3 v3.9.1/go.mod h1:Z4boifT/XHIZTVEAIZaPTXqjhuK8Msx2iPYJy8ic6vg=
-sigs.k8s.io/kustomize/api v0.12.1 h1:7YM7gW3kYBwtKvoY216ZzY+8hM+lV53LUayghNRJ0vM=
-sigs.k8s.io/kustomize/api v0.12.1/go.mod h1:y3JUhimkZkR6sbLNwfJHxvo1TCLwuwm14sCYnkH6S1s=
-sigs.k8s.io/kustomize/cmd/config v0.10.9 h1:LV8AUwZPuvqhGfia50uNwsPwNg1xOy9koEf5hyBnYs4=
-sigs.k8s.io/kustomize/cmd/config v0.10.9/go.mod h1:T0s850zPV3wKfBALA0dyeP/K74jlJcoP8Pr9ZWwE3MQ=
-sigs.k8s.io/kustomize/kustomize/v4 v4.5.7 h1:cDW6AVMl6t/SLuQaezMET8hgnadZGIAr8tUrxFVOrpg=
-sigs.k8s.io/kustomize/kustomize/v4 v4.5.7/go.mod h1:VSNKEH9D9d9bLiWEGbS6Xbg/Ih0tgQalmPvntzRxZ/Q=
-sigs.k8s.io/kustomize/kyaml v0.13.9 h1:Qz53EAaFFANyNgyOEJbT/yoIHygK40/ZcvU3rgry2Tk=
-sigs.k8s.io/kustomize/kyaml v0.13.9/go.mod h1:QsRbD0/KcU+wdk0/L0fIp2KLnohkVzs6fQ85/nOXac4=
-sigs.k8s.io/structured-merge-diff/v4 v4.0.1/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw=
-sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw=
-sigs.k8s.io/structured-merge-diff/v4 v4.0.3/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw=
+sigs.k8s.io/kustomize/api v0.16.0 h1:/zAR4FOQDCkgSDmVzV2uiFbuy9bhu3jEzthrHCuvm1g=
+sigs.k8s.io/kustomize/api v0.16.0/go.mod h1:MnFZ7IP2YqVyVwMWoRxPtgl/5hpA+eCCrQR/866cm5c=
+sigs.k8s.io/kustomize/cmd/config v0.13.0 h1:Z/bRyFQupMIqGz1KlRkLimK/VjtE4/Oj/DinJmQqTDc=
+sigs.k8s.io/kustomize/cmd/config v0.13.0/go.mod h1:YlsZ9JysiHN7OjSmIZ17zvq9kl1oN2Osn+3wVyERkcM=
+sigs.k8s.io/kustomize/kustomize/v5 v5.3.0 h1:OUKaQwArd1udTz3ykibOjaUwdfly6FnkQiDSSft6+Fg=
+sigs.k8s.io/kustomize/kustomize/v5 v5.3.0/go.mod h1:qGalrWojwFYaT7KQXLo3kmLyuyr6VaIQYY+BWeRENus=
+sigs.k8s.io/kustomize/kyaml v0.16.0 h1:6J33uKSoATlKZH16unr2XOhDI+otoe2sR3M8PDzW3K0=
+sigs.k8s.io/kustomize/kyaml v0.16.0/go.mod h1:xOK/7i+vmE14N2FdFyugIshB8eF6ALpy7jI87Q2nRh4=
sigs.k8s.io/structured-merge-diff/v4 v4.2.3 h1:PRbqxJClWWYMNV1dhaG4NsibJbArud9kFxnAMREiWFE=
sigs.k8s.io/structured-merge-diff/v4 v4.2.3/go.mod h1:qjx8mGObPmV2aSZepjQjbmb2ihdVs8cGKBraizNC69E=
-sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o=
-sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc=
-sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo=
-sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8=
+sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E=
+sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY=
diff --git a/tools/tools.go b/tools/tools.go
index afe91f752..1b3854de6 100644
--- a/tools/tools.go
+++ b/tools/tools.go
@@ -30,5 +30,5 @@ import (
_ "google.golang.org/protobuf/cmd/protoc-gen-go"
_ "sigs.k8s.io/controller-runtime/tools/setup-envtest"
_ "sigs.k8s.io/controller-tools/cmd/controller-gen"
- _ "sigs.k8s.io/kustomize/kustomize/v4"
+ _ "sigs.k8s.io/kustomize/kustomize/v5"
)
diff --git a/tools/vendor/github.com/AdaLogics/go-fuzz-headers/LICENSE b/tools/vendor/github.com/AdaLogics/go-fuzz-headers/LICENSE
new file mode 100644
index 000000000..261eeb9e9
--- /dev/null
+++ b/tools/vendor/github.com/AdaLogics/go-fuzz-headers/LICENSE
@@ -0,0 +1,201 @@
+ 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.
diff --git a/tools/vendor/github.com/AdaLogics/go-fuzz-headers/README.md b/tools/vendor/github.com/AdaLogics/go-fuzz-headers/README.md
new file mode 100644
index 000000000..0a0d60c74
--- /dev/null
+++ b/tools/vendor/github.com/AdaLogics/go-fuzz-headers/README.md
@@ -0,0 +1,93 @@
+# go-fuzz-headers
+This repository contains various helper functions for go fuzzing. It is mostly used in combination with [go-fuzz](https://github.com/dvyukov/go-fuzz), but compatibility with fuzzing in the standard library will also be supported. Any coverage guided fuzzing engine that provides an array or slice of bytes can be used with go-fuzz-headers.
+
+
+## Usage
+Using go-fuzz-headers is easy. First create a new consumer with the bytes provided by the fuzzing engine:
+
+```go
+import (
+ fuzz "github.com/AdaLogics/go-fuzz-headers"
+)
+data := []byte{'R', 'a', 'n', 'd', 'o', 'm'}
+f := fuzz.NewConsumer(data)
+
+```
+
+This creates a `Consumer` that consumes the bytes of the input as it uses them to fuzz different types.
+
+After that, `f` can be used to easily create fuzzed instances of different types. Below are some examples:
+
+### Structs
+One of the most useful features of go-fuzz-headers is its ability to fill structs with the data provided by the fuzzing engine. This is done with a single line:
+```go
+type Person struct {
+ Name string
+ Age int
+}
+p := Person{}
+// Fill p with values based on the data provided by the fuzzing engine:
+err := f.GenerateStruct(&p)
+```
+
+This includes nested structs too. In this example, the fuzz Consumer will also insert values in `p.BestFriend`:
+```go
+type PersonI struct {
+ Name string
+ Age int
+ BestFriend PersonII
+}
+type PersonII struct {
+ Name string
+ Age int
+}
+p := PersonI{}
+err := f.GenerateStruct(&p)
+```
+
+If the consumer should insert values for unexported fields as well as exported, this can be enabled with:
+
+```go
+f.AllowUnexportedFields()
+```
+
+...and disabled with:
+
+```go
+f.DisallowUnexportedFields()
+```
+
+### Other types:
+
+Other useful APIs:
+
+```go
+createdString, err := f.GetString() // Gets a string
+createdInt, err := f.GetInt() // Gets an integer
+createdByte, err := f.GetByte() // Gets a byte
+createdBytes, err := f.GetBytes() // Gets a byte slice
+createdBool, err := f.GetBool() // Gets a boolean
+err := f.FuzzMap(target_map) // Fills a map
+createdTarBytes, err := f.TarBytes() // Gets bytes of a valid tar archive
+err := f.CreateFiles(inThisDir) // Fills inThisDir with files
+createdString, err := f.GetStringFrom("anyCharInThisString", ofThisLength) // Gets a string that consists of chars from "anyCharInThisString" and has the exact length "ofThisLength"
+```
+
+Most APIs are added as they are needed.
+
+## Projects that use go-fuzz-headers
+- [runC](https://github.com/opencontainers/runc)
+- [Istio](https://github.com/istio/istio)
+- [Vitess](https://github.com/vitessio/vitess)
+- [Containerd](https://github.com/containerd/containerd)
+
+Feel free to add your own project to the list, if you use go-fuzz-headers to fuzz it.
+
+
+
+
+## Status
+The project is under development and will be updated regularly.
+
+## References
+go-fuzz-headers' approach to fuzzing structs is strongly inspired by [gofuzz](https://github.com/google/gofuzz).
\ No newline at end of file
diff --git a/tools/vendor/github.com/AdaLogics/go-fuzz-headers/consumer.go b/tools/vendor/github.com/AdaLogics/go-fuzz-headers/consumer.go
new file mode 100644
index 000000000..fdde08a75
--- /dev/null
+++ b/tools/vendor/github.com/AdaLogics/go-fuzz-headers/consumer.go
@@ -0,0 +1,899 @@
+// Copyright 2023 The go-fuzz-headers 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 gofuzzheaders
+
+import (
+ "archive/tar"
+ "bytes"
+ "encoding/binary"
+ "errors"
+ "fmt"
+ "io"
+ "math"
+ "os"
+ "path/filepath"
+ "reflect"
+ "strings"
+ "time"
+ "unsafe"
+
+ securejoin "github.com/cyphar/filepath-securejoin"
+)
+
+var (
+ MaxTotalLen uint32 = 2000000
+ maxDepth = 100
+)
+
+func SetMaxTotalLen(newLen uint32) {
+ MaxTotalLen = newLen
+}
+
+type ConsumeFuzzer struct {
+ data []byte
+ dataTotal uint32
+ CommandPart []byte
+ RestOfArray []byte
+ NumberOfCalls int
+ position uint32
+ fuzzUnexportedFields bool
+ curDepth int
+ Funcs map[reflect.Type]reflect.Value
+}
+
+func IsDivisibleBy(n int, divisibleby int) bool {
+ return (n % divisibleby) == 0
+}
+
+func NewConsumer(fuzzData []byte) *ConsumeFuzzer {
+ return &ConsumeFuzzer{
+ data: fuzzData,
+ dataTotal: uint32(len(fuzzData)),
+ Funcs: make(map[reflect.Type]reflect.Value),
+ curDepth: 0,
+ }
+}
+
+func (f *ConsumeFuzzer) Split(minCalls, maxCalls int) error {
+ if f.dataTotal == 0 {
+ return errors.New("could not split")
+ }
+ numberOfCalls := int(f.data[0])
+ if numberOfCalls < minCalls || numberOfCalls > maxCalls {
+ return errors.New("bad number of calls")
+ }
+ if int(f.dataTotal) < numberOfCalls+numberOfCalls+1 {
+ return errors.New("length of data does not match required parameters")
+ }
+
+ // Define part 2 and 3 of the data array
+ commandPart := f.data[1 : numberOfCalls+1]
+ restOfArray := f.data[numberOfCalls+1:]
+
+ // Just a small check. It is necessary
+ if len(commandPart) != numberOfCalls {
+ return errors.New("length of commandPart does not match number of calls")
+ }
+
+ // Check if restOfArray is divisible by numberOfCalls
+ if !IsDivisibleBy(len(restOfArray), numberOfCalls) {
+ return errors.New("length of commandPart does not match number of calls")
+ }
+ f.CommandPart = commandPart
+ f.RestOfArray = restOfArray
+ f.NumberOfCalls = numberOfCalls
+ return nil
+}
+
+func (f *ConsumeFuzzer) AllowUnexportedFields() {
+ f.fuzzUnexportedFields = true
+}
+
+func (f *ConsumeFuzzer) DisallowUnexportedFields() {
+ f.fuzzUnexportedFields = false
+}
+
+func (f *ConsumeFuzzer) GenerateStruct(targetStruct interface{}) error {
+ e := reflect.ValueOf(targetStruct).Elem()
+ return f.fuzzStruct(e, false)
+}
+
+func (f *ConsumeFuzzer) setCustom(v reflect.Value) error {
+ // First: see if we have a fuzz function for it.
+ doCustom, ok := f.Funcs[v.Type()]
+ if !ok {
+ return fmt.Errorf("could not find a custom function")
+ }
+
+ switch v.Kind() {
+ case reflect.Ptr:
+ if v.IsNil() {
+ if !v.CanSet() {
+ return fmt.Errorf("could not use a custom function")
+ }
+ v.Set(reflect.New(v.Type().Elem()))
+ }
+ case reflect.Map:
+ if v.IsNil() {
+ if !v.CanSet() {
+ return fmt.Errorf("could not use a custom function")
+ }
+ v.Set(reflect.MakeMap(v.Type()))
+ }
+ default:
+ return fmt.Errorf("could not use a custom function")
+ }
+
+ verr := doCustom.Call([]reflect.Value{v, reflect.ValueOf(Continue{
+ F: f,
+ })})
+
+ // check if we return an error
+ if verr[0].IsNil() {
+ return nil
+ }
+ return fmt.Errorf("could not use a custom function")
+}
+
+func (f *ConsumeFuzzer) fuzzStruct(e reflect.Value, customFunctions bool) error {
+ if f.curDepth >= maxDepth {
+ // return err or nil here?
+ return nil
+ }
+ f.curDepth++
+ defer func() { f.curDepth-- }()
+
+ // We check if we should check for custom functions
+ if customFunctions && e.IsValid() && e.CanAddr() {
+ err := f.setCustom(e.Addr())
+ if err != nil {
+ return err
+ }
+ }
+
+ switch e.Kind() {
+ case reflect.Struct:
+ for i := 0; i < e.NumField(); i++ {
+ var v reflect.Value
+ if !e.Field(i).CanSet() {
+ if f.fuzzUnexportedFields {
+ v = reflect.NewAt(e.Field(i).Type(), unsafe.Pointer(e.Field(i).UnsafeAddr())).Elem()
+ }
+ if err := f.fuzzStruct(v, customFunctions); err != nil {
+ return err
+ }
+ } else {
+ v = e.Field(i)
+ if err := f.fuzzStruct(v, customFunctions); err != nil {
+ return err
+ }
+ }
+ }
+ case reflect.String:
+ str, err := f.GetString()
+ if err != nil {
+ return err
+ }
+ if e.CanSet() {
+ e.SetString(str)
+ }
+ case reflect.Slice:
+ var maxElements uint32
+ // Byte slices should not be restricted
+ if e.Type().String() == "[]uint8" {
+ maxElements = 10000000
+ } else {
+ maxElements = 50
+ }
+
+ randQty, err := f.GetUint32()
+ if err != nil {
+ return err
+ }
+ numOfElements := randQty % maxElements
+ if (f.dataTotal - f.position) < numOfElements {
+ numOfElements = f.dataTotal - f.position
+ }
+
+ uu := reflect.MakeSlice(e.Type(), int(numOfElements), int(numOfElements))
+
+ for i := 0; i < int(numOfElements); i++ {
+ // If we have more than 10, then we can proceed with that.
+ if err := f.fuzzStruct(uu.Index(i), customFunctions); err != nil {
+ if i >= 10 {
+ if e.CanSet() {
+ e.Set(uu)
+ }
+ return nil
+ } else {
+ return err
+ }
+ }
+ }
+ if e.CanSet() {
+ e.Set(uu)
+ }
+ case reflect.Uint16:
+ newInt, err := f.GetUint16()
+ if err != nil {
+ return err
+ }
+ if e.CanSet() {
+ e.SetUint(uint64(newInt))
+ }
+ case reflect.Uint32:
+ newInt, err := f.GetUint32()
+ if err != nil {
+ return err
+ }
+ if e.CanSet() {
+ e.SetUint(uint64(newInt))
+ }
+ case reflect.Uint64:
+ newInt, err := f.GetInt()
+ if err != nil {
+ return err
+ }
+ if e.CanSet() {
+ e.SetUint(uint64(newInt))
+ }
+ case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
+ newInt, err := f.GetInt()
+ if err != nil {
+ return err
+ }
+ if e.CanSet() {
+ e.SetInt(int64(newInt))
+ }
+ case reflect.Float32:
+ newFloat, err := f.GetFloat32()
+ if err != nil {
+ return err
+ }
+ if e.CanSet() {
+ e.SetFloat(float64(newFloat))
+ }
+ case reflect.Float64:
+ newFloat, err := f.GetFloat64()
+ if err != nil {
+ return err
+ }
+ if e.CanSet() {
+ e.SetFloat(float64(newFloat))
+ }
+ case reflect.Map:
+ if e.CanSet() {
+ e.Set(reflect.MakeMap(e.Type()))
+ const maxElements = 50
+ randQty, err := f.GetInt()
+ if err != nil {
+ return err
+ }
+ numOfElements := randQty % maxElements
+ for i := 0; i < numOfElements; i++ {
+ key := reflect.New(e.Type().Key()).Elem()
+ if err := f.fuzzStruct(key, customFunctions); err != nil {
+ return err
+ }
+ val := reflect.New(e.Type().Elem()).Elem()
+ if err = f.fuzzStruct(val, customFunctions); err != nil {
+ return err
+ }
+ e.SetMapIndex(key, val)
+ }
+ }
+ case reflect.Ptr:
+ if e.CanSet() {
+ e.Set(reflect.New(e.Type().Elem()))
+ if err := f.fuzzStruct(e.Elem(), customFunctions); err != nil {
+ return err
+ }
+ return nil
+ }
+ case reflect.Uint8:
+ b, err := f.GetByte()
+ if err != nil {
+ return err
+ }
+ if e.CanSet() {
+ e.SetUint(uint64(b))
+ }
+ }
+ return nil
+}
+
+func (f *ConsumeFuzzer) GetStringArray() (reflect.Value, error) {
+ // The max size of the array:
+ const max uint32 = 20
+
+ arraySize := f.position
+ if arraySize > max {
+ arraySize = max
+ }
+ stringArray := reflect.MakeSlice(reflect.SliceOf(reflect.TypeOf("string")), int(arraySize), int(arraySize))
+ if f.position+arraySize >= f.dataTotal {
+ return stringArray, errors.New("could not make string array")
+ }
+
+ for i := 0; i < int(arraySize); i++ {
+ stringSize := uint32(f.data[f.position])
+ if f.position+stringSize >= f.dataTotal {
+ return stringArray, nil
+ }
+ stringToAppend := string(f.data[f.position : f.position+stringSize])
+ strVal := reflect.ValueOf(stringToAppend)
+ stringArray = reflect.Append(stringArray, strVal)
+ f.position += stringSize
+ }
+ return stringArray, nil
+}
+
+func (f *ConsumeFuzzer) GetInt() (int, error) {
+ if f.position >= f.dataTotal {
+ return 0, errors.New("not enough bytes to create int")
+ }
+ returnInt := int(f.data[f.position])
+ f.position++
+ return returnInt, nil
+}
+
+func (f *ConsumeFuzzer) GetByte() (byte, error) {
+ if f.position >= f.dataTotal {
+ return 0x00, errors.New("not enough bytes to get byte")
+ }
+ returnByte := f.data[f.position]
+ f.position++
+ return returnByte, nil
+}
+
+func (f *ConsumeFuzzer) GetNBytes(numberOfBytes int) ([]byte, error) {
+ if f.position >= f.dataTotal {
+ return nil, errors.New("not enough bytes to get byte")
+ }
+ returnBytes := make([]byte, 0, numberOfBytes)
+ for i := 0; i < numberOfBytes; i++ {
+ newByte, err := f.GetByte()
+ if err != nil {
+ return nil, err
+ }
+ returnBytes = append(returnBytes, newByte)
+ }
+ return returnBytes, nil
+}
+
+func (f *ConsumeFuzzer) GetUint16() (uint16, error) {
+ u16, err := f.GetNBytes(2)
+ if err != nil {
+ return 0, err
+ }
+ littleEndian, err := f.GetBool()
+ if err != nil {
+ return 0, err
+ }
+ if littleEndian {
+ return binary.LittleEndian.Uint16(u16), nil
+ }
+ return binary.BigEndian.Uint16(u16), nil
+}
+
+func (f *ConsumeFuzzer) GetUint32() (uint32, error) {
+ i, err := f.GetInt()
+ if err != nil {
+ return uint32(0), err
+ }
+ return uint32(i), nil
+}
+
+func (f *ConsumeFuzzer) GetUint64() (uint64, error) {
+ u64, err := f.GetNBytes(8)
+ if err != nil {
+ return 0, err
+ }
+ littleEndian, err := f.GetBool()
+ if err != nil {
+ return 0, err
+ }
+ if littleEndian {
+ return binary.LittleEndian.Uint64(u64), nil
+ }
+ return binary.BigEndian.Uint64(u64), nil
+}
+
+func (f *ConsumeFuzzer) GetBytes() ([]byte, error) {
+ if f.position >= f.dataTotal {
+ return nil, errors.New("not enough bytes to create byte array")
+ }
+ length, err := f.GetUint32()
+ if err != nil {
+ return nil, errors.New("not enough bytes to create byte array")
+ }
+ if f.position+length > MaxTotalLen {
+ return nil, errors.New("created too large a string")
+ }
+ byteBegin := f.position - 1
+ if byteBegin >= f.dataTotal {
+ return nil, errors.New("not enough bytes to create byte array")
+ }
+ if length == 0 {
+ return nil, errors.New("zero-length is not supported")
+ }
+ if byteBegin+length >= f.dataTotal {
+ return nil, errors.New("not enough bytes to create byte array")
+ }
+ if byteBegin+length < byteBegin {
+ return nil, errors.New("numbers overflow")
+ }
+ f.position = byteBegin + length
+ return f.data[byteBegin:f.position], nil
+}
+
+func (f *ConsumeFuzzer) GetString() (string, error) {
+ if f.position >= f.dataTotal {
+ return "nil", errors.New("not enough bytes to create string")
+ }
+ length, err := f.GetUint32()
+ if err != nil {
+ return "nil", errors.New("not enough bytes to create string")
+ }
+ if f.position > MaxTotalLen {
+ return "nil", errors.New("created too large a string")
+ }
+ byteBegin := f.position
+ if byteBegin >= f.dataTotal {
+ return "nil", errors.New("not enough bytes to create string")
+ }
+ if byteBegin+length > f.dataTotal {
+ return "nil", errors.New("not enough bytes to create string")
+ }
+ if byteBegin > byteBegin+length {
+ return "nil", errors.New("numbers overflow")
+ }
+ f.position = byteBegin + length
+ return string(f.data[byteBegin:f.position]), nil
+}
+
+func (f *ConsumeFuzzer) GetBool() (bool, error) {
+ if f.position >= f.dataTotal {
+ return false, errors.New("not enough bytes to create bool")
+ }
+ if IsDivisibleBy(int(f.data[f.position]), 2) {
+ f.position++
+ return true, nil
+ } else {
+ f.position++
+ return false, nil
+ }
+}
+
+func (f *ConsumeFuzzer) FuzzMap(m interface{}) error {
+ return f.GenerateStruct(m)
+}
+
+func returnTarBytes(buf []byte) ([]byte, error) {
+ // Count files
+ var fileCounter int
+ tr := tar.NewReader(bytes.NewReader(buf))
+ for {
+ _, err := tr.Next()
+ if err == io.EOF {
+ break
+ }
+ if err != nil {
+ return nil, err
+ }
+ fileCounter++
+ }
+ if fileCounter >= 1 {
+ return buf, nil
+ }
+ return nil, fmt.Errorf("not enough files were created\n")
+}
+
+func setTarHeaderFormat(hdr *tar.Header, f *ConsumeFuzzer) error {
+ ind, err := f.GetInt()
+ if err != nil {
+ return err
+ }
+ switch ind % 4 {
+ case 0:
+ hdr.Format = tar.FormatUnknown
+ case 1:
+ hdr.Format = tar.FormatUSTAR
+ case 2:
+ hdr.Format = tar.FormatPAX
+ case 3:
+ hdr.Format = tar.FormatGNU
+ }
+ return nil
+}
+
+func setTarHeaderTypeflag(hdr *tar.Header, f *ConsumeFuzzer) error {
+ ind, err := f.GetInt()
+ if err != nil {
+ return err
+ }
+ switch ind % 13 {
+ case 0:
+ hdr.Typeflag = tar.TypeReg
+ case 1:
+ hdr.Typeflag = tar.TypeLink
+ linkname, err := f.GetString()
+ if err != nil {
+ return err
+ }
+ hdr.Linkname = linkname
+ case 2:
+ hdr.Typeflag = tar.TypeSymlink
+ linkname, err := f.GetString()
+ if err != nil {
+ return err
+ }
+ hdr.Linkname = linkname
+ case 3:
+ hdr.Typeflag = tar.TypeChar
+ case 4:
+ hdr.Typeflag = tar.TypeBlock
+ case 5:
+ hdr.Typeflag = tar.TypeDir
+ case 6:
+ hdr.Typeflag = tar.TypeFifo
+ case 7:
+ hdr.Typeflag = tar.TypeCont
+ case 8:
+ hdr.Typeflag = tar.TypeXHeader
+ case 9:
+ hdr.Typeflag = tar.TypeXGlobalHeader
+ case 10:
+ hdr.Typeflag = tar.TypeGNUSparse
+ case 11:
+ hdr.Typeflag = tar.TypeGNULongName
+ case 12:
+ hdr.Typeflag = tar.TypeGNULongLink
+ }
+ return nil
+}
+
+func tooSmallFileBody(length uint32) bool {
+ if length < 2 {
+ return true
+ }
+ if length < 4 {
+ return true
+ }
+ if length < 10 {
+ return true
+ }
+ if length < 100 {
+ return true
+ }
+ if length < 500 {
+ return true
+ }
+ if length < 1000 {
+ return true
+ }
+ if length < 2000 {
+ return true
+ }
+ if length < 4000 {
+ return true
+ }
+ if length < 8000 {
+ return true
+ }
+ if length < 16000 {
+ return true
+ }
+ if length < 32000 {
+ return true
+ }
+ if length < 64000 {
+ return true
+ }
+ if length < 128000 {
+ return true
+ }
+ if length < 264000 {
+ return true
+ }
+ return false
+}
+
+func (f *ConsumeFuzzer) createTarFileBody() ([]byte, error) {
+ length, err := f.GetUint32()
+ if err != nil {
+ return nil, errors.New("not enough bytes to create byte array")
+ }
+
+ shouldUseLargeFileBody, err := f.GetBool()
+ if err != nil {
+ return nil, errors.New("not enough bytes to check long file body")
+ }
+
+ if shouldUseLargeFileBody && tooSmallFileBody(length) {
+ return nil, errors.New("File body was too small")
+ }
+
+ // A bit of optimization to attempt to create a file body
+ // when we don't have as many bytes left as "length"
+ remainingBytes := f.dataTotal - f.position
+ if remainingBytes == 0 {
+ return nil, errors.New("created too large a string")
+ }
+ if f.position+length > MaxTotalLen {
+ return nil, errors.New("created too large a string")
+ }
+ byteBegin := f.position
+ if byteBegin >= f.dataTotal {
+ return nil, errors.New("not enough bytes to create byte array")
+ }
+ if length == 0 {
+ return nil, errors.New("zero-length is not supported")
+ }
+ if byteBegin+length >= f.dataTotal {
+ return nil, errors.New("not enough bytes to create byte array")
+ }
+ if byteBegin+length < byteBegin {
+ return nil, errors.New("numbers overflow")
+ }
+ f.position = byteBegin + length
+ return f.data[byteBegin:f.position], nil
+}
+
+// getTarFileName is similar to GetString(), but creates string based
+// on the length of f.data to reduce the likelihood of overflowing
+// f.data.
+func (f *ConsumeFuzzer) getTarFilename() (string, error) {
+ length, err := f.GetUint32()
+ if err != nil {
+ return "nil", errors.New("not enough bytes to create string")
+ }
+
+ // A bit of optimization to attempt to create a file name
+ // when we don't have as many bytes left as "length"
+ remainingBytes := f.dataTotal - f.position
+ if remainingBytes == 0 {
+ return "nil", errors.New("created too large a string")
+ }
+ if remainingBytes < 50 {
+ length = length % remainingBytes
+ } else if f.dataTotal < 500 {
+ length = length % f.dataTotal
+ }
+ if f.position > MaxTotalLen {
+ return "nil", errors.New("created too large a string")
+ }
+ byteBegin := f.position
+ if byteBegin >= f.dataTotal {
+ return "nil", errors.New("not enough bytes to create string")
+ }
+ if byteBegin+length > f.dataTotal {
+ return "nil", errors.New("not enough bytes to create string")
+ }
+ if byteBegin > byteBegin+length {
+ return "nil", errors.New("numbers overflow")
+ }
+ f.position = byteBegin + length
+ return string(f.data[byteBegin:f.position]), nil
+}
+
+// TarBytes returns valid bytes for a tar archive
+func (f *ConsumeFuzzer) TarBytes() ([]byte, error) {
+ numberOfFiles, err := f.GetInt()
+ if err != nil {
+ return nil, err
+ }
+
+ var buf bytes.Buffer
+ tw := tar.NewWriter(&buf)
+ defer tw.Close()
+
+ const maxNoOfFiles = 1000
+ for i := 0; i < numberOfFiles%maxNoOfFiles; i++ {
+ filename, err := f.getTarFilename()
+ if err != nil {
+ return returnTarBytes(buf.Bytes())
+ }
+ filebody, err := f.createTarFileBody()
+ if err != nil {
+ return returnTarBytes(buf.Bytes())
+ }
+ sec, err := f.GetInt()
+ if err != nil {
+ return returnTarBytes(buf.Bytes())
+ }
+ nsec, err := f.GetInt()
+ if err != nil {
+ return returnTarBytes(buf.Bytes())
+ }
+
+ hdr := &tar.Header{
+ Name: filename,
+ Size: int64(len(filebody)),
+ Mode: 0o600,
+ ModTime: time.Unix(int64(sec), int64(nsec)),
+ }
+ if err := setTarHeaderTypeflag(hdr, f); err != nil {
+ return returnTarBytes(buf.Bytes())
+ }
+ if err := setTarHeaderFormat(hdr, f); err != nil {
+ return returnTarBytes(buf.Bytes())
+ }
+ if err := tw.WriteHeader(hdr); err != nil {
+ return returnTarBytes(buf.Bytes())
+ }
+ if _, err := tw.Write(filebody); err != nil {
+ return returnTarBytes(buf.Bytes())
+ }
+ }
+ return buf.Bytes(), nil
+}
+
+// CreateFiles creates pseudo-random files in rootDir.
+// It creates subdirs and places the files there.
+// It is the callers responsibility to ensure that
+// rootDir exists.
+func (f *ConsumeFuzzer) CreateFiles(rootDir string) error {
+ numberOfFiles, err := f.GetInt()
+ if err != nil {
+ return err
+ }
+ maxNumberOfFiles := numberOfFiles % 4000 // This is completely arbitrary
+ if maxNumberOfFiles == 0 {
+ return errors.New("maxNumberOfFiles is nil")
+ }
+
+ var noOfCreatedFiles int
+ for i := 0; i < maxNumberOfFiles; i++ {
+ // The file to create:
+ fileName, err := f.GetString()
+ if err != nil {
+ if noOfCreatedFiles > 0 {
+ // If files have been created, we don't return an error.
+ break
+ } else {
+ return errors.New("could not get fileName")
+ }
+ }
+ fullFilePath, err := securejoin.SecureJoin(rootDir, fileName)
+ if err != nil {
+ return err
+ }
+
+ // Find the subdirectory of the file
+ if subDir := filepath.Dir(fileName); subDir != "" && subDir != "." {
+ // create the dir first; avoid going outside the root dir
+ if strings.Contains(subDir, "../") || (len(subDir) > 0 && subDir[0] == 47) || strings.Contains(subDir, "\\") {
+ continue
+ }
+ dirPath, err := securejoin.SecureJoin(rootDir, subDir)
+ if err != nil {
+ continue
+ }
+ if _, err := os.Stat(dirPath); os.IsNotExist(err) {
+ err2 := os.MkdirAll(dirPath, 0o777)
+ if err2 != nil {
+ continue
+ }
+ }
+ fullFilePath, err = securejoin.SecureJoin(dirPath, fileName)
+ if err != nil {
+ continue
+ }
+ } else {
+ // Create symlink
+ createSymlink, err := f.GetBool()
+ if err != nil {
+ if noOfCreatedFiles > 0 {
+ break
+ } else {
+ return errors.New("could not create the symlink")
+ }
+ }
+ if createSymlink {
+ symlinkTarget, err := f.GetString()
+ if err != nil {
+ return err
+ }
+ err = os.Symlink(symlinkTarget, fullFilePath)
+ if err != nil {
+ return err
+ }
+ // stop loop here, since a symlink needs no further action
+ noOfCreatedFiles++
+ continue
+ }
+ // We create a normal file
+ fileContents, err := f.GetBytes()
+ if err != nil {
+ if noOfCreatedFiles > 0 {
+ break
+ } else {
+ return errors.New("could not create the file")
+ }
+ }
+ err = os.WriteFile(fullFilePath, fileContents, 0o666)
+ if err != nil {
+ continue
+ }
+ noOfCreatedFiles++
+ }
+ }
+ return nil
+}
+
+// GetStringFrom returns a string that can only consist of characters
+// included in possibleChars. It returns an error if the created string
+// does not have the specified length.
+func (f *ConsumeFuzzer) GetStringFrom(possibleChars string, length int) (string, error) {
+ if (f.dataTotal - f.position) < uint32(length) {
+ return "", errors.New("not enough bytes to create a string")
+ }
+ output := make([]byte, 0, length)
+ for i := 0; i < length; i++ {
+ charIndex, err := f.GetInt()
+ if err != nil {
+ return string(output), err
+ }
+ output = append(output, possibleChars[charIndex%len(possibleChars)])
+ }
+ return string(output), nil
+}
+
+func (f *ConsumeFuzzer) GetRune() ([]rune, error) {
+ stringToConvert, err := f.GetString()
+ if err != nil {
+ return []rune("nil"), err
+ }
+ return []rune(stringToConvert), nil
+}
+
+func (f *ConsumeFuzzer) GetFloat32() (float32, error) {
+ u32, err := f.GetNBytes(4)
+ if err != nil {
+ return 0, err
+ }
+ littleEndian, err := f.GetBool()
+ if err != nil {
+ return 0, err
+ }
+ if littleEndian {
+ u32LE := binary.LittleEndian.Uint32(u32)
+ return math.Float32frombits(u32LE), nil
+ }
+ u32BE := binary.BigEndian.Uint32(u32)
+ return math.Float32frombits(u32BE), nil
+}
+
+func (f *ConsumeFuzzer) GetFloat64() (float64, error) {
+ u64, err := f.GetNBytes(8)
+ if err != nil {
+ return 0, err
+ }
+ littleEndian, err := f.GetBool()
+ if err != nil {
+ return 0, err
+ }
+ if littleEndian {
+ u64LE := binary.LittleEndian.Uint64(u64)
+ return math.Float64frombits(u64LE), nil
+ }
+ u64BE := binary.BigEndian.Uint64(u64)
+ return math.Float64frombits(u64BE), nil
+}
+
+func (f *ConsumeFuzzer) CreateSlice(targetSlice interface{}) error {
+ return f.GenerateStruct(targetSlice)
+}
diff --git a/tools/vendor/github.com/AdaLogics/go-fuzz-headers/funcs.go b/tools/vendor/github.com/AdaLogics/go-fuzz-headers/funcs.go
new file mode 100644
index 000000000..8ca3a61b8
--- /dev/null
+++ b/tools/vendor/github.com/AdaLogics/go-fuzz-headers/funcs.go
@@ -0,0 +1,62 @@
+// Copyright 2023 The go-fuzz-headers 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 gofuzzheaders
+
+import (
+ "fmt"
+ "reflect"
+)
+
+type Continue struct {
+ F *ConsumeFuzzer
+}
+
+func (f *ConsumeFuzzer) AddFuncs(fuzzFuncs []interface{}) {
+ for i := range fuzzFuncs {
+ v := reflect.ValueOf(fuzzFuncs[i])
+ if v.Kind() != reflect.Func {
+ panic("Need only funcs!")
+ }
+ t := v.Type()
+ if t.NumIn() != 2 || t.NumOut() != 1 {
+ fmt.Println(t.NumIn(), t.NumOut())
+
+ panic("Need 2 in and 1 out params. In must be the type. Out must be an error")
+ }
+ argT := t.In(0)
+ switch argT.Kind() {
+ case reflect.Ptr, reflect.Map:
+ default:
+ panic("fuzzFunc must take pointer or map type")
+ }
+ if t.In(1) != reflect.TypeOf(Continue{}) {
+ panic("fuzzFunc's second parameter must be type Continue")
+ }
+ f.Funcs[argT] = v
+ }
+}
+
+func (f *ConsumeFuzzer) GenerateWithCustom(targetStruct interface{}) error {
+ e := reflect.ValueOf(targetStruct).Elem()
+ return f.fuzzStruct(e, true)
+}
+
+func (c Continue) GenerateStruct(targetStruct interface{}) error {
+ return c.F.GenerateStruct(targetStruct)
+}
+
+func (c Continue) GenerateStructWithCustom(targetStruct interface{}) error {
+ return c.F.GenerateWithCustom(targetStruct)
+}
diff --git a/tools/vendor/github.com/AdaLogics/go-fuzz-headers/sql.go b/tools/vendor/github.com/AdaLogics/go-fuzz-headers/sql.go
new file mode 100644
index 000000000..2afd49f84
--- /dev/null
+++ b/tools/vendor/github.com/AdaLogics/go-fuzz-headers/sql.go
@@ -0,0 +1,556 @@
+// Copyright 2023 The go-fuzz-headers 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 gofuzzheaders
+
+import (
+ "fmt"
+ "strings"
+)
+
+// returns a keyword by index
+func getKeyword(f *ConsumeFuzzer) (string, error) {
+ index, err := f.GetInt()
+ if err != nil {
+ return keywords[0], err
+ }
+ for i, k := range keywords {
+ if i == index {
+ return k, nil
+ }
+ }
+ return keywords[0], fmt.Errorf("could not get a kw")
+}
+
+// Simple utility function to check if a string
+// slice contains a string.
+func containsString(s []string, e string) bool {
+ for _, a := range s {
+ if a == e {
+ return true
+ }
+ }
+ return false
+}
+
+// These keywords are used specifically for fuzzing Vitess
+var keywords = []string{
+ "accessible", "action", "add", "after", "against", "algorithm",
+ "all", "alter", "always", "analyze", "and", "as", "asc", "asensitive",
+ "auto_increment", "avg_row_length", "before", "begin", "between",
+ "bigint", "binary", "_binary", "_utf8mb4", "_utf8", "_latin1", "bit",
+ "blob", "bool", "boolean", "both", "by", "call", "cancel", "cascade",
+ "cascaded", "case", "cast", "channel", "change", "char", "character",
+ "charset", "check", "checksum", "coalesce", "code", "collate", "collation",
+ "column", "columns", "comment", "committed", "commit", "compact", "complete",
+ "compressed", "compression", "condition", "connection", "constraint", "continue",
+ "convert", "copy", "cume_dist", "substr", "substring", "create", "cross",
+ "csv", "current_date", "current_time", "current_timestamp", "current_user",
+ "cursor", "data", "database", "databases", "day", "day_hour", "day_microsecond",
+ "day_minute", "day_second", "date", "datetime", "dec", "decimal", "declare",
+ "default", "definer", "delay_key_write", "delayed", "delete", "dense_rank",
+ "desc", "describe", "deterministic", "directory", "disable", "discard",
+ "disk", "distinct", "distinctrow", "div", "double", "do", "drop", "dumpfile",
+ "duplicate", "dynamic", "each", "else", "elseif", "empty", "enable",
+ "enclosed", "encryption", "end", "enforced", "engine", "engines", "enum",
+ "error", "escape", "escaped", "event", "exchange", "exclusive", "exists",
+ "exit", "explain", "expansion", "export", "extended", "extract", "false",
+ "fetch", "fields", "first", "first_value", "fixed", "float", "float4",
+ "float8", "flush", "for", "force", "foreign", "format", "from", "full",
+ "fulltext", "function", "general", "generated", "geometry", "geometrycollection",
+ "get", "global", "gtid_executed", "grant", "group", "grouping", "groups",
+ "group_concat", "having", "header", "high_priority", "hosts", "hour", "hour_microsecond",
+ "hour_minute", "hour_second", "if", "ignore", "import", "in", "index", "indexes",
+ "infile", "inout", "inner", "inplace", "insensitive", "insert", "insert_method",
+ "int", "int1", "int2", "int3", "int4", "int8", "integer", "interval",
+ "into", "io_after_gtids", "is", "isolation", "iterate", "invoker", "join",
+ "json", "json_table", "key", "keys", "keyspaces", "key_block_size", "kill", "lag",
+ "language", "last", "last_value", "last_insert_id", "lateral", "lead", "leading",
+ "leave", "left", "less", "level", "like", "limit", "linear", "lines",
+ "linestring", "load", "local", "localtime", "localtimestamp", "lock", "logs",
+ "long", "longblob", "longtext", "loop", "low_priority", "manifest",
+ "master_bind", "match", "max_rows", "maxvalue", "mediumblob", "mediumint",
+ "mediumtext", "memory", "merge", "microsecond", "middleint", "min_rows", "minute",
+ "minute_microsecond", "minute_second", "mod", "mode", "modify", "modifies",
+ "multilinestring", "multipoint", "multipolygon", "month", "name",
+ "names", "natural", "nchar", "next", "no", "none", "not", "no_write_to_binlog",
+ "nth_value", "ntile", "null", "numeric", "of", "off", "offset", "on",
+ "only", "open", "optimize", "optimizer_costs", "option", "optionally",
+ "or", "order", "out", "outer", "outfile", "over", "overwrite", "pack_keys",
+ "parser", "partition", "partitioning", "password", "percent_rank", "plugins",
+ "point", "polygon", "precision", "primary", "privileges", "processlist",
+ "procedure", "query", "quarter", "range", "rank", "read", "reads", "read_write",
+ "real", "rebuild", "recursive", "redundant", "references", "regexp", "relay",
+ "release", "remove", "rename", "reorganize", "repair", "repeat", "repeatable",
+ "replace", "require", "resignal", "restrict", "return", "retry", "revert",
+ "revoke", "right", "rlike", "rollback", "row", "row_format", "row_number",
+ "rows", "s3", "savepoint", "schema", "schemas", "second", "second_microsecond",
+ "security", "select", "sensitive", "separator", "sequence", "serializable",
+ "session", "set", "share", "shared", "show", "signal", "signed", "slow",
+ "smallint", "spatial", "specific", "sql", "sqlexception", "sqlstate",
+ "sqlwarning", "sql_big_result", "sql_cache", "sql_calc_found_rows",
+ "sql_no_cache", "sql_small_result", "ssl", "start", "starting",
+ "stats_auto_recalc", "stats_persistent", "stats_sample_pages", "status",
+ "storage", "stored", "straight_join", "stream", "system", "vstream",
+ "table", "tables", "tablespace", "temporary", "temptable", "terminated",
+ "text", "than", "then", "time", "timestamp", "timestampadd", "timestampdiff",
+ "tinyblob", "tinyint", "tinytext", "to", "trailing", "transaction", "tree",
+ "traditional", "trigger", "triggers", "true", "truncate", "uncommitted",
+ "undefined", "undo", "union", "unique", "unlock", "unsigned", "update",
+ "upgrade", "usage", "use", "user", "user_resources", "using", "utc_date",
+ "utc_time", "utc_timestamp", "validation", "values", "variables", "varbinary",
+ "varchar", "varcharacter", "varying", "vgtid_executed", "virtual", "vindex",
+ "vindexes", "view", "vitess", "vitess_keyspaces", "vitess_metadata",
+ "vitess_migration", "vitess_migrations", "vitess_replication_status",
+ "vitess_shards", "vitess_tablets", "vschema", "warnings", "when",
+ "where", "while", "window", "with", "without", "work", "write", "xor",
+ "year", "year_month", "zerofill",
+}
+
+// Keywords that could get an additional keyword
+var needCustomString = []string{
+ "DISTINCTROW", "FROM", // Select keywords:
+ "GROUP BY", "HAVING", "WINDOW",
+ "FOR",
+ "ORDER BY", "LIMIT",
+ "INTO", "PARTITION", "AS", // Insert Keywords:
+ "ON DUPLICATE KEY UPDATE",
+ "WHERE", "LIMIT", // Delete keywords
+ "INFILE", "INTO TABLE", "CHARACTER SET", // Load keywords
+ "TERMINATED BY", "ENCLOSED BY",
+ "ESCAPED BY", "STARTING BY",
+ "TERMINATED BY", "STARTING BY",
+ "IGNORE",
+ "VALUE", "VALUES", // Replace tokens
+ "SET", // Update tokens
+ "ENGINE =", // Drop tokens
+ "DEFINER =", "ON SCHEDULE", "RENAME TO", // Alter tokens
+ "COMMENT", "DO", "INITIAL_SIZE = ", "OPTIONS",
+}
+
+var alterTableTokens = [][]string{
+ {"CUSTOM_FUZZ_STRING"},
+ {"CUSTOM_ALTTER_TABLE_OPTIONS"},
+ {"PARTITION_OPTIONS_FOR_ALTER_TABLE"},
+}
+
+var alterTokens = [][]string{
+ {
+ "DATABASE", "SCHEMA", "DEFINER = ", "EVENT", "FUNCTION", "INSTANCE",
+ "LOGFILE GROUP", "PROCEDURE", "SERVER",
+ },
+ {"CUSTOM_FUZZ_STRING"},
+ {
+ "ON SCHEDULE", "ON COMPLETION PRESERVE", "ON COMPLETION NOT PRESERVE",
+ "ADD UNDOFILE", "OPTIONS",
+ },
+ {"RENAME TO", "INITIAL_SIZE = "},
+ {"ENABLE", "DISABLE", "DISABLE ON SLAVE", "ENGINE"},
+ {"COMMENT"},
+ {"DO"},
+}
+
+var setTokens = [][]string{
+ {"CHARACTER SET", "CHARSET", "CUSTOM_FUZZ_STRING", "NAMES"},
+ {"CUSTOM_FUZZ_STRING", "DEFAULT", "="},
+ {"CUSTOM_FUZZ_STRING"},
+}
+
+var dropTokens = [][]string{
+ {"TEMPORARY", "UNDO"},
+ {
+ "DATABASE", "SCHEMA", "EVENT", "INDEX", "LOGFILE GROUP",
+ "PROCEDURE", "FUNCTION", "SERVER", "SPATIAL REFERENCE SYSTEM",
+ "TABLE", "TABLESPACE", "TRIGGER", "VIEW",
+ },
+ {"IF EXISTS"},
+ {"CUSTOM_FUZZ_STRING"},
+ {"ON", "ENGINE = ", "RESTRICT", "CASCADE"},
+}
+
+var renameTokens = [][]string{
+ {"TABLE"},
+ {"CUSTOM_FUZZ_STRING"},
+ {"TO"},
+ {"CUSTOM_FUZZ_STRING"},
+}
+
+var truncateTokens = [][]string{
+ {"TABLE"},
+ {"CUSTOM_FUZZ_STRING"},
+}
+
+var createTokens = [][]string{
+ {"OR REPLACE", "TEMPORARY", "UNDO"}, // For create spatial reference system
+ {
+ "UNIQUE", "FULLTEXT", "SPATIAL", "ALGORITHM = UNDEFINED", "ALGORITHM = MERGE",
+ "ALGORITHM = TEMPTABLE",
+ },
+ {
+ "DATABASE", "SCHEMA", "EVENT", "FUNCTION", "INDEX", "LOGFILE GROUP",
+ "PROCEDURE", "SERVER", "SPATIAL REFERENCE SYSTEM", "TABLE", "TABLESPACE",
+ "TRIGGER", "VIEW",
+ },
+ {"IF NOT EXISTS"},
+ {"CUSTOM_FUZZ_STRING"},
+}
+
+/*
+// For future use.
+var updateTokens = [][]string{
+ {"LOW_PRIORITY"},
+ {"IGNORE"},
+ {"SET"},
+ {"WHERE"},
+ {"ORDER BY"},
+ {"LIMIT"},
+}
+*/
+
+var replaceTokens = [][]string{
+ {"LOW_PRIORITY", "DELAYED"},
+ {"INTO"},
+ {"PARTITION"},
+ {"CUSTOM_FUZZ_STRING"},
+ {"VALUES", "VALUE"},
+}
+
+var loadTokens = [][]string{
+ {"DATA"},
+ {"LOW_PRIORITY", "CONCURRENT", "LOCAL"},
+ {"INFILE"},
+ {"REPLACE", "IGNORE"},
+ {"INTO TABLE"},
+ {"PARTITION"},
+ {"CHARACTER SET"},
+ {"FIELDS", "COLUMNS"},
+ {"TERMINATED BY"},
+ {"OPTIONALLY"},
+ {"ENCLOSED BY"},
+ {"ESCAPED BY"},
+ {"LINES"},
+ {"STARTING BY"},
+ {"TERMINATED BY"},
+ {"IGNORE"},
+ {"LINES", "ROWS"},
+ {"CUSTOM_FUZZ_STRING"},
+}
+
+// These Are everything that comes after "INSERT"
+var insertTokens = [][]string{
+ {"LOW_PRIORITY", "DELAYED", "HIGH_PRIORITY", "IGNORE"},
+ {"INTO"},
+ {"PARTITION"},
+ {"CUSTOM_FUZZ_STRING"},
+ {"AS"},
+ {"ON DUPLICATE KEY UPDATE"},
+}
+
+// These are everything that comes after "SELECT"
+var selectTokens = [][]string{
+ {"*", "CUSTOM_FUZZ_STRING", "DISTINCTROW"},
+ {"HIGH_PRIORITY"},
+ {"STRAIGHT_JOIN"},
+ {"SQL_SMALL_RESULT", "SQL_BIG_RESULT", "SQL_BUFFER_RESULT"},
+ {"SQL_NO_CACHE", "SQL_CALC_FOUND_ROWS"},
+ {"CUSTOM_FUZZ_STRING"},
+ {"FROM"},
+ {"WHERE"},
+ {"GROUP BY"},
+ {"HAVING"},
+ {"WINDOW"},
+ {"ORDER BY"},
+ {"LIMIT"},
+ {"CUSTOM_FUZZ_STRING"},
+ {"FOR"},
+}
+
+// These are everything that comes after "DELETE"
+var deleteTokens = [][]string{
+ {"LOW_PRIORITY", "QUICK", "IGNORE", "FROM", "AS"},
+ {"PARTITION"},
+ {"WHERE"},
+ {"ORDER BY"},
+ {"LIMIT"},
+}
+
+var alter_table_options = []string{
+ "ADD", "COLUMN", "FIRST", "AFTER", "INDEX", "KEY", "FULLTEXT", "SPATIAL",
+ "CONSTRAINT", "UNIQUE", "FOREIGN KEY", "CHECK", "ENFORCED", "DROP", "ALTER",
+ "NOT", "INPLACE", "COPY", "SET", "VISIBLE", "INVISIBLE", "DEFAULT", "CHANGE",
+ "CHARACTER SET", "COLLATE", "DISABLE", "ENABLE", "KEYS", "TABLESPACE", "LOCK",
+ "FORCE", "MODIFY", "SHARED", "EXCLUSIVE", "NONE", "ORDER BY", "RENAME COLUMN",
+ "AS", "=", "ASC", "DESC", "WITH", "WITHOUT", "VALIDATION", "ADD PARTITION",
+ "DROP PARTITION", "DISCARD PARTITION", "IMPORT PARTITION", "TRUNCATE PARTITION",
+ "COALESCE PARTITION", "REORGANIZE PARTITION", "EXCHANGE PARTITION",
+ "ANALYZE PARTITION", "CHECK PARTITION", "OPTIMIZE PARTITION", "REBUILD PARTITION",
+ "REPAIR PARTITION", "REMOVE PARTITIONING", "USING", "BTREE", "HASH", "COMMENT",
+ "KEY_BLOCK_SIZE", "WITH PARSER", "AUTOEXTEND_SIZE", "AUTO_INCREMENT", "AVG_ROW_LENGTH",
+ "CHECKSUM", "INSERT_METHOD", "ROW_FORMAT", "DYNAMIC", "FIXED", "COMPRESSED", "REDUNDANT",
+ "COMPACT", "SECONDARY_ENGINE_ATTRIBUTE", "STATS_AUTO_RECALC", "STATS_PERSISTENT",
+ "STATS_SAMPLE_PAGES", "ZLIB", "LZ4", "ENGINE_ATTRIBUTE", "KEY_BLOCK_SIZE", "MAX_ROWS",
+ "MIN_ROWS", "PACK_KEYS", "PASSWORD", "COMPRESSION", "CONNECTION", "DIRECTORY",
+ "DELAY_KEY_WRITE", "ENCRYPTION", "STORAGE", "DISK", "MEMORY", "UNION",
+}
+
+// Creates an 'alter table' statement. 'alter table' is an exception
+// in that it has its own function. The majority of statements
+// are created by 'createStmt()'.
+func createAlterTableStmt(f *ConsumeFuzzer) (string, error) {
+ maxArgs, err := f.GetInt()
+ if err != nil {
+ return "", err
+ }
+ maxArgs = maxArgs % 30
+ if maxArgs == 0 {
+ return "", fmt.Errorf("could not create alter table stmt")
+ }
+
+ var stmt strings.Builder
+ stmt.WriteString("ALTER TABLE ")
+ for i := 0; i < maxArgs; i++ {
+ // Calculate if we get existing token or custom string
+ tokenType, err := f.GetInt()
+ if err != nil {
+ return "", err
+ }
+ if tokenType%4 == 1 {
+ customString, err := f.GetString()
+ if err != nil {
+ return "", err
+ }
+ stmt.WriteString(" " + customString)
+ } else {
+ tokenIndex, err := f.GetInt()
+ if err != nil {
+ return "", err
+ }
+ stmt.WriteString(" " + alter_table_options[tokenIndex%len(alter_table_options)])
+ }
+ }
+ return stmt.String(), nil
+}
+
+func chooseToken(tokens []string, f *ConsumeFuzzer) (string, error) {
+ index, err := f.GetInt()
+ if err != nil {
+ return "", err
+ }
+ var token strings.Builder
+ token.WriteString(tokens[index%len(tokens)])
+ if token.String() == "CUSTOM_FUZZ_STRING" {
+ customFuzzString, err := f.GetString()
+ if err != nil {
+ return "", err
+ }
+ return customFuzzString, nil
+ }
+
+ // Check if token requires an argument
+ if containsString(needCustomString, token.String()) {
+ customFuzzString, err := f.GetString()
+ if err != nil {
+ return "", err
+ }
+ token.WriteString(" " + customFuzzString)
+ }
+ return token.String(), nil
+}
+
+var stmtTypes = map[string][][]string{
+ "DELETE": deleteTokens,
+ "INSERT": insertTokens,
+ "SELECT": selectTokens,
+ "LOAD": loadTokens,
+ "REPLACE": replaceTokens,
+ "CREATE": createTokens,
+ "DROP": dropTokens,
+ "RENAME": renameTokens,
+ "TRUNCATE": truncateTokens,
+ "SET": setTokens,
+ "ALTER": alterTokens,
+ "ALTER TABLE": alterTableTokens, // ALTER TABLE has its own set of tokens
+}
+
+var stmtTypeEnum = map[int]string{
+ 0: "DELETE",
+ 1: "INSERT",
+ 2: "SELECT",
+ 3: "LOAD",
+ 4: "REPLACE",
+ 5: "CREATE",
+ 6: "DROP",
+ 7: "RENAME",
+ 8: "TRUNCATE",
+ 9: "SET",
+ 10: "ALTER",
+ 11: "ALTER TABLE",
+}
+
+func createStmt(f *ConsumeFuzzer) (string, error) {
+ stmtIndex, err := f.GetInt()
+ if err != nil {
+ return "", err
+ }
+ stmtIndex = stmtIndex % len(stmtTypes)
+
+ queryType := stmtTypeEnum[stmtIndex]
+ tokens := stmtTypes[queryType]
+
+ // We have custom creator for ALTER TABLE
+ if queryType == "ALTER TABLE" {
+ query, err := createAlterTableStmt(f)
+ if err != nil {
+ return "", err
+ }
+ return query, nil
+ }
+
+ // Here we are creating a query that is not
+ // an 'alter table' query. For available
+ // queries, see "stmtTypes"
+
+ // First specify the first query keyword:
+ var query strings.Builder
+ query.WriteString(queryType)
+
+ // Next create the args for the
+ queryArgs, err := createStmtArgs(tokens, f)
+ if err != nil {
+ return "", err
+ }
+ query.WriteString(" " + queryArgs)
+ return query.String(), nil
+}
+
+// Creates the arguments of a statements. In a select statement
+// that would be everything after "select".
+func createStmtArgs(tokenslice [][]string, f *ConsumeFuzzer) (string, error) {
+ var query, token strings.Builder
+
+ // We go through the tokens in the tokenslice,
+ // create the respective token and add it to
+ // "query"
+ for _, tokens := range tokenslice {
+ // For extra randomization, the fuzzer can
+ // choose to not include this token.
+ includeThisToken, err := f.GetBool()
+ if err != nil {
+ return "", err
+ }
+ if !includeThisToken {
+ continue
+ }
+
+ // There may be several tokens to choose from:
+ if len(tokens) > 1 {
+ chosenToken, err := chooseToken(tokens, f)
+ if err != nil {
+ return "", err
+ }
+ query.WriteString(" " + chosenToken)
+ } else {
+ token.WriteString(tokens[0])
+
+ // In case the token is "CUSTOM_FUZZ_STRING"
+ // we will then create a non-structured string
+ if token.String() == "CUSTOM_FUZZ_STRING" {
+ customFuzzString, err := f.GetString()
+ if err != nil {
+ return "", err
+ }
+ query.WriteString(" " + customFuzzString)
+ continue
+ }
+
+ // Check if token requires an argument.
+ // Tokens that take an argument can be found
+ // in 'needCustomString'. If so, we add a
+ // non-structured string to the token.
+ if containsString(needCustomString, token.String()) {
+ customFuzzString, err := f.GetString()
+ if err != nil {
+ return "", err
+ }
+ token.WriteString(fmt.Sprintf(" %s", customFuzzString))
+ }
+ query.WriteString(fmt.Sprintf(" %s", token.String()))
+ }
+ }
+ return query.String(), nil
+}
+
+// Creates a semi-structured query. It creates a string
+// that is a combination of the keywords and random strings.
+func createQuery(f *ConsumeFuzzer) (string, error) {
+ queryLen, err := f.GetInt()
+ if err != nil {
+ return "", err
+ }
+ maxLen := queryLen % 60
+ if maxLen == 0 {
+ return "", fmt.Errorf("could not create a query")
+ }
+ var query strings.Builder
+ for i := 0; i < maxLen; i++ {
+ // Get a new token:
+ useKeyword, err := f.GetBool()
+ if err != nil {
+ return "", err
+ }
+ if useKeyword {
+ keyword, err := getKeyword(f)
+ if err != nil {
+ return "", err
+ }
+ query.WriteString(" " + keyword)
+ } else {
+ customString, err := f.GetString()
+ if err != nil {
+ return "", err
+ }
+ query.WriteString(" " + customString)
+ }
+ }
+ if query.String() == "" {
+ return "", fmt.Errorf("could not create a query")
+ }
+ return query.String(), nil
+}
+
+// GetSQLString is the API that users interact with.
+//
+// Usage:
+//
+// f := NewConsumer(data)
+// sqlString, err := f.GetSQLString()
+func (f *ConsumeFuzzer) GetSQLString() (string, error) {
+ var query string
+ veryStructured, err := f.GetBool()
+ if err != nil {
+ return "", err
+ }
+ if veryStructured {
+ query, err = createStmt(f)
+ if err != nil {
+ return "", err
+ }
+ } else {
+ query, err = createQuery(f)
+ if err != nil {
+ return "", err
+ }
+ }
+ return query, nil
+}
diff --git a/tools/vendor/github.com/Azure/go-ansiterm/SECURITY.md b/tools/vendor/github.com/Azure/go-ansiterm/SECURITY.md
new file mode 100644
index 000000000..e138ec5d6
--- /dev/null
+++ b/tools/vendor/github.com/Azure/go-ansiterm/SECURITY.md
@@ -0,0 +1,41 @@
+
+
+## Security
+
+Microsoft takes the security of our software products and services seriously, which includes all source code repositories managed through our GitHub organizations, which include [Microsoft](https://github.com/microsoft), [Azure](https://github.com/Azure), [DotNet](https://github.com/dotnet), [AspNet](https://github.com/aspnet), [Xamarin](https://github.com/xamarin), and [our GitHub organizations](https://opensource.microsoft.com/).
+
+If you believe you have found a security vulnerability in any Microsoft-owned repository that meets [Microsoft's definition of a security vulnerability](https://aka.ms/opensource/security/definition), please report it to us as described below.
+
+## Reporting Security Issues
+
+**Please do not report security vulnerabilities through public GitHub issues.**
+
+Instead, please report them to the Microsoft Security Response Center (MSRC) at [https://msrc.microsoft.com/create-report](https://aka.ms/opensource/security/create-report).
+
+If you prefer to submit without logging in, send email to [secure@microsoft.com](mailto:secure@microsoft.com). If possible, encrypt your message with our PGP key; please download it from the [Microsoft Security Response Center PGP Key page](https://aka.ms/opensource/security/pgpkey).
+
+You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Additional information can be found at [microsoft.com/msrc](https://aka.ms/opensource/security/msrc).
+
+Please include the requested information listed below (as much as you can provide) to help us better understand the nature and scope of the possible issue:
+
+ * Type of issue (e.g. buffer overflow, SQL injection, cross-site scripting, etc.)
+ * Full paths of source file(s) related to the manifestation of the issue
+ * The location of the affected source code (tag/branch/commit or direct URL)
+ * Any special configuration required to reproduce the issue
+ * Step-by-step instructions to reproduce the issue
+ * Proof-of-concept or exploit code (if possible)
+ * Impact of the issue, including how an attacker might exploit the issue
+
+This information will help us triage your report more quickly.
+
+If you are reporting for a bug bounty, more complete reports can contribute to a higher bounty award. Please visit our [Microsoft Bug Bounty Program](https://aka.ms/opensource/security/bounty) page for more details about our active programs.
+
+## Preferred Languages
+
+We prefer all communications to be in English.
+
+## Policy
+
+Microsoft follows the principle of [Coordinated Vulnerability Disclosure](https://aka.ms/opensource/security/cvd).
+
+
diff --git a/tools/vendor/github.com/BurntSushi/toml/decode.go b/tools/vendor/github.com/BurntSushi/toml/decode.go
index 09523315b..0ca1dc4fe 100644
--- a/tools/vendor/github.com/BurntSushi/toml/decode.go
+++ b/tools/vendor/github.com/BurntSushi/toml/decode.go
@@ -21,7 +21,9 @@ type Unmarshaler interface {
UnmarshalTOML(interface{}) error
}
-// Unmarshal decodes the contents of `data` in TOML format into a pointer `v`.
+// Unmarshal decodes the contents of data in TOML format into a pointer v.
+//
+// See [Decoder] for a description of the decoding process.
func Unmarshal(data []byte, v interface{}) error {
_, err := NewDecoder(bytes.NewReader(data)).Decode(v)
return err
@@ -29,13 +31,12 @@ func Unmarshal(data []byte, v interface{}) error {
// Decode the TOML data in to the pointer v.
//
-// See the documentation on Decoder for a description of the decoding process.
+// See [Decoder] for a description of the decoding process.
func Decode(data string, v interface{}) (MetaData, error) {
return NewDecoder(strings.NewReader(data)).Decode(v)
}
-// DecodeFile is just like Decode, except it will automatically read the
-// contents of the file at path and decode it for you.
+// DecodeFile reads the contents of a file and decodes it with [Decode].
func DecodeFile(path string, v interface{}) (MetaData, error) {
fp, err := os.Open(path)
if err != nil {
@@ -48,7 +49,7 @@ func DecodeFile(path string, v interface{}) (MetaData, error) {
// Primitive is a TOML value that hasn't been decoded into a Go value.
//
// This type can be used for any value, which will cause decoding to be delayed.
-// You can use the PrimitiveDecode() function to "manually" decode these values.
+// You can use [PrimitiveDecode] to "manually" decode these values.
//
// NOTE: The underlying representation of a `Primitive` value is subject to
// change. Do not rely on it.
@@ -70,15 +71,15 @@ const (
// Decoder decodes TOML data.
//
-// TOML tables correspond to Go structs or maps (dealer's choice – they can be
-// used interchangeably).
+// TOML tables correspond to Go structs or maps; they can be used
+// interchangeably, but structs offer better type safety.
//
// TOML table arrays correspond to either a slice of structs or a slice of maps.
//
-// TOML datetimes correspond to Go time.Time values. Local datetimes are parsed
-// in the local timezone.
+// TOML datetimes correspond to [time.Time]. Local datetimes are parsed in the
+// local timezone.
//
-// time.Duration types are treated as nanoseconds if the TOML value is an
+// [time.Duration] types are treated as nanoseconds if the TOML value is an
// integer, or they're parsed with time.ParseDuration() if they're strings.
//
// All other TOML types (float, string, int, bool and array) correspond to the
@@ -90,7 +91,7 @@ const (
// UnmarshalText method. See the Unmarshaler example for a demonstration with
// email addresses.
//
-// Key mapping
+// ### Key mapping
//
// TOML keys can map to either keys in a Go map or field names in a Go struct.
// The special `toml` struct tag can be used to map TOML keys to struct fields
@@ -168,17 +169,16 @@ func (dec *Decoder) Decode(v interface{}) (MetaData, error) {
return md, md.unify(p.mapping, rv)
}
-// PrimitiveDecode is just like the other `Decode*` functions, except it
-// decodes a TOML value that has already been parsed. Valid primitive values
-// can *only* be obtained from values filled by the decoder functions,
-// including this method. (i.e., `v` may contain more `Primitive`
-// values.)
+// PrimitiveDecode is just like the other Decode* functions, except it decodes a
+// TOML value that has already been parsed. Valid primitive values can *only* be
+// obtained from values filled by the decoder functions, including this method.
+// (i.e., v may contain more [Primitive] values.)
//
-// Meta data for primitive values is included in the meta data returned by
-// the `Decode*` functions with one exception: keys returned by the Undecoded
-// method will only reflect keys that were decoded. Namely, any keys hidden
-// behind a Primitive will be considered undecoded. Executing this method will
-// update the undecoded keys in the meta data. (See the example.)
+// Meta data for primitive values is included in the meta data returned by the
+// Decode* functions with one exception: keys returned by the Undecoded method
+// will only reflect keys that were decoded. Namely, any keys hidden behind a
+// Primitive will be considered undecoded. Executing this method will update the
+// undecoded keys in the meta data. (See the example.)
func (md *MetaData) PrimitiveDecode(primValue Primitive, v interface{}) error {
md.context = primValue.context
defer func() { md.context = nil }()
diff --git a/tools/vendor/github.com/BurntSushi/toml/decode_go116.go b/tools/vendor/github.com/BurntSushi/toml/decode_go116.go
index eddfb641b..086d0b686 100644
--- a/tools/vendor/github.com/BurntSushi/toml/decode_go116.go
+++ b/tools/vendor/github.com/BurntSushi/toml/decode_go116.go
@@ -7,8 +7,8 @@ import (
"io/fs"
)
-// DecodeFS is just like Decode, except it will automatically read the contents
-// of the file at `path` from a fs.FS instance.
+// DecodeFS reads the contents of a file from [fs.FS] and decodes it with
+// [Decode].
func DecodeFS(fsys fs.FS, path string, v interface{}) (MetaData, error) {
fp, err := fsys.Open(path)
if err != nil {
diff --git a/tools/vendor/github.com/BurntSushi/toml/doc.go b/tools/vendor/github.com/BurntSushi/toml/doc.go
index 099c4a77d..81a7c0fe9 100644
--- a/tools/vendor/github.com/BurntSushi/toml/doc.go
+++ b/tools/vendor/github.com/BurntSushi/toml/doc.go
@@ -1,13 +1,11 @@
-/*
-Package toml implements decoding and encoding of TOML files.
-
-This package supports TOML v1.0.0, as listed on https://toml.io
-
-There is also support for delaying decoding with the Primitive type, and
-querying the set of keys in a TOML document with the MetaData type.
-
-The github.com/BurntSushi/toml/cmd/tomlv package implements a TOML validator,
-and can be used to verify if TOML document is valid. It can also be used to
-print the type of each key.
-*/
+// Package toml implements decoding and encoding of TOML files.
+//
+// This package supports TOML v1.0.0, as specified at https://toml.io
+//
+// There is also support for delaying decoding with the Primitive type, and
+// querying the set of keys in a TOML document with the MetaData type.
+//
+// The github.com/BurntSushi/toml/cmd/tomlv package implements a TOML validator,
+// and can be used to verify if TOML document is valid. It can also be used to
+// print the type of each key.
package toml
diff --git a/tools/vendor/github.com/BurntSushi/toml/encode.go b/tools/vendor/github.com/BurntSushi/toml/encode.go
index dc8568d1b..930e1d521 100644
--- a/tools/vendor/github.com/BurntSushi/toml/encode.go
+++ b/tools/vendor/github.com/BurntSushi/toml/encode.go
@@ -79,12 +79,12 @@ type Marshaler interface {
// Encoder encodes a Go to a TOML document.
//
// The mapping between Go values and TOML values should be precisely the same as
-// for the Decode* functions.
+// for [Decode].
//
// time.Time is encoded as a RFC 3339 string, and time.Duration as its string
// representation.
//
-// The toml.Marshaler and encoder.TextMarshaler interfaces are supported to
+// The [Marshaler] and [encoding.TextMarshaler] interfaces are supported to
// encoding the value as custom TOML.
//
// If you want to write arbitrary binary data then you will need to use
@@ -130,7 +130,7 @@ func NewEncoder(w io.Writer) *Encoder {
}
}
-// Encode writes a TOML representation of the Go value to the Encoder's writer.
+// Encode writes a TOML representation of the Go value to the [Encoder]'s writer.
//
// An error is returned if the value given cannot be encoded to a valid TOML
// document.
@@ -261,7 +261,7 @@ func (enc *Encoder) eElement(rv reflect.Value) {
enc.eElement(reflect.ValueOf(v))
return
}
- encPanic(errors.New(fmt.Sprintf("Unable to convert \"%s\" to neither int64 nor float64", n)))
+ encPanic(fmt.Errorf("unable to convert %q to int64 or float64", n))
}
switch rv.Kind() {
@@ -504,7 +504,8 @@ func (enc *Encoder) eStruct(key Key, rv reflect.Value, inline bool) {
if opts.name != "" {
keyName = opts.name
}
- if opts.omitempty && isEmpty(fieldVal) {
+
+ if opts.omitempty && enc.isEmpty(fieldVal) {
continue
}
if opts.omitzero && isZero(fieldVal) {
@@ -648,12 +649,26 @@ func isZero(rv reflect.Value) bool {
return false
}
-func isEmpty(rv reflect.Value) bool {
+func (enc *Encoder) isEmpty(rv reflect.Value) bool {
switch rv.Kind() {
case reflect.Array, reflect.Slice, reflect.Map, reflect.String:
return rv.Len() == 0
case reflect.Struct:
- return reflect.Zero(rv.Type()).Interface() == rv.Interface()
+ if rv.Type().Comparable() {
+ return reflect.Zero(rv.Type()).Interface() == rv.Interface()
+ }
+ // Need to also check if all the fields are empty, otherwise something
+ // like this with uncomparable types will always return true:
+ //
+ // type a struct{ field b }
+ // type b struct{ s []string }
+ // s := a{field: b{s: []string{"AAA"}}}
+ for i := 0; i < rv.NumField(); i++ {
+ if !enc.isEmpty(rv.Field(i)) {
+ return false
+ }
+ }
+ return true
case reflect.Bool:
return !rv.Bool()
}
@@ -668,16 +683,15 @@ func (enc *Encoder) newline() {
// Write a key/value pair:
//
-// key =
+// key =
//
// This is also used for "k = v" in inline tables; so something like this will
// be written in three calls:
//
-// ┌────────────────────â”
-// │ ┌───┠┌─────â”│
-// v v v v vv
-// key = {k = v, k2 = v2}
-//
+// ┌───────────────────â”
+// │ ┌───┠┌────â”│
+// v v v v vv
+// key = {k = 1, k2 = 2}
func (enc *Encoder) writeKeyValue(key Key, val reflect.Value, inline bool) {
if len(key) == 0 {
encPanic(errNoKey)
diff --git a/tools/vendor/github.com/BurntSushi/toml/error.go b/tools/vendor/github.com/BurntSushi/toml/error.go
index 2ac24e77e..f4f390e64 100644
--- a/tools/vendor/github.com/BurntSushi/toml/error.go
+++ b/tools/vendor/github.com/BurntSushi/toml/error.go
@@ -5,57 +5,60 @@ import (
"strings"
)
-// ParseError is returned when there is an error parsing the TOML syntax.
-//
-// For example invalid syntax, duplicate keys, etc.
+// ParseError is returned when there is an error parsing the TOML syntax such as
+// invalid syntax, duplicate keys, etc.
//
// In addition to the error message itself, you can also print detailed location
-// information with context by using ErrorWithPosition():
+// information with context by using [ErrorWithPosition]:
//
-// toml: error: Key 'fruit' was already created and cannot be used as an array.
+// toml: error: Key 'fruit' was already created and cannot be used as an array.
//
-// At line 4, column 2-7:
+// At line 4, column 2-7:
//
-// 2 | fruit = []
-// 3 |
-// 4 | [[fruit]] # Not allowed
-// ^^^^^
+// 2 | fruit = []
+// 3 |
+// 4 | [[fruit]] # Not allowed
+// ^^^^^
//
-// Furthermore, the ErrorWithUsage() can be used to print the above with some
-// more detailed usage guidance:
+// [ErrorWithUsage] can be used to print the above with some more detailed usage
+// guidance:
//
-// toml: error: newlines not allowed within inline tables
+// toml: error: newlines not allowed within inline tables
//
-// At line 1, column 18:
+// At line 1, column 18:
//
-// 1 | x = [{ key = 42 #
-// ^
+// 1 | x = [{ key = 42 #
+// ^
//
-// Error help:
+// Error help:
//
-// Inline tables must always be on a single line:
+// Inline tables must always be on a single line:
//
-// table = {key = 42, second = 43}
+// table = {key = 42, second = 43}
//
-// It is invalid to split them over multiple lines like so:
+// It is invalid to split them over multiple lines like so:
//
-// # INVALID
-// table = {
-// key = 42,
-// second = 43
-// }
+// # INVALID
+// table = {
+// key = 42,
+// second = 43
+// }
//
-// Use regular for this:
+// Use regular for this:
//
-// [table]
-// key = 42
-// second = 43
+// [table]
+// key = 42
+// second = 43
type ParseError struct {
Message string // Short technical message.
Usage string // Longer message with usage guidance; may be blank.
Position Position // Position of the error
LastKey string // Last parsed key, may be blank.
- Line int // Line the error occurred. Deprecated: use Position.
+
+ // Line the error occurred.
+ //
+ // Deprecated: use [Position].
+ Line int
err error
input string
@@ -83,7 +86,7 @@ func (pe ParseError) Error() string {
// ErrorWithUsage() returns the error with detailed location context.
//
-// See the documentation on ParseError.
+// See the documentation on [ParseError].
func (pe ParseError) ErrorWithPosition() string {
if pe.input == "" { // Should never happen, but just in case.
return pe.Error()
@@ -124,7 +127,7 @@ func (pe ParseError) ErrorWithPosition() string {
// ErrorWithUsage() returns the error with detailed location context and usage
// guidance.
//
-// See the documentation on ParseError.
+// See the documentation on [ParseError].
func (pe ParseError) ErrorWithUsage() string {
m := pe.ErrorWithPosition()
if u, ok := pe.err.(interface{ Usage() string }); ok && u.Usage() != "" {
diff --git a/tools/vendor/github.com/BurntSushi/toml/lex.go b/tools/vendor/github.com/BurntSushi/toml/lex.go
index 28ed4dd35..d4d70871d 100644
--- a/tools/vendor/github.com/BurntSushi/toml/lex.go
+++ b/tools/vendor/github.com/BurntSushi/toml/lex.go
@@ -771,7 +771,7 @@ func lexRawString(lx *lexer) stateFn {
}
// lexMultilineRawString consumes a raw string. Nothing can be escaped in such
-// a string. It assumes that the beginning "'''" has already been consumed and
+// a string. It assumes that the beginning ''' has already been consumed and
// ignored.
func lexMultilineRawString(lx *lexer) stateFn {
r := lx.next()
diff --git a/tools/vendor/github.com/BurntSushi/toml/meta.go b/tools/vendor/github.com/BurntSushi/toml/meta.go
index d284f2a0c..71847a041 100644
--- a/tools/vendor/github.com/BurntSushi/toml/meta.go
+++ b/tools/vendor/github.com/BurntSushi/toml/meta.go
@@ -71,7 +71,7 @@ func (md *MetaData) Keys() []Key {
// Undecoded returns all keys that have not been decoded in the order in which
// they appear in the original TOML document.
//
-// This includes keys that haven't been decoded because of a Primitive value.
+// This includes keys that haven't been decoded because of a [Primitive] value.
// Once the Primitive value is decoded, the keys will be considered decoded.
//
// Also note that decoding into an empty interface will result in no decoding,
@@ -89,7 +89,7 @@ func (md *MetaData) Undecoded() []Key {
return undecoded
}
-// Key represents any TOML key, including key groups. Use (MetaData).Keys to get
+// Key represents any TOML key, including key groups. Use [MetaData.Keys] to get
// values of this type.
type Key []string
diff --git a/tools/vendor/github.com/Masterminds/semver/v3/.golangci.yml b/tools/vendor/github.com/Masterminds/semver/v3/.golangci.yml
index fdbdf1448..c87d1c4b9 100644
--- a/tools/vendor/github.com/Masterminds/semver/v3/.golangci.yml
+++ b/tools/vendor/github.com/Masterminds/semver/v3/.golangci.yml
@@ -4,23 +4,27 @@ run:
linters:
disable-all: true
enable:
+ - misspell
+ - structcheck
+ - govet
+ - staticcheck
- deadcode
- - dupl
- errcheck
- - gofmt
- - goimports
- - golint
- - gosimple
- - govet
+ - varcheck
+ - unparam
- ineffassign
- - misspell
- nakedret
- - structcheck
+ - gocyclo
+ - dupl
+ - goimports
+ - revive
+ - gosec
+ - gosimple
+ - typecheck
- unused
- - varcheck
linters-settings:
gofmt:
simplify: true
dupl:
- threshold: 400
+ threshold: 600
diff --git a/tools/vendor/github.com/Masterminds/semver/v3/CHANGELOG.md b/tools/vendor/github.com/Masterminds/semver/v3/CHANGELOG.md
index 1f90c38d2..f12626423 100644
--- a/tools/vendor/github.com/Masterminds/semver/v3/CHANGELOG.md
+++ b/tools/vendor/github.com/Masterminds/semver/v3/CHANGELOG.md
@@ -1,5 +1,25 @@
# Changelog
+## 3.2.0 (2022-11-28)
+
+### Added
+
+- #190: Added text marshaling and unmarshaling
+- #167: Added JSON marshalling for constraints (thanks @SimonTheLeg)
+- #173: Implement encoding.TextMarshaler and encoding.TextUnmarshaler on Version (thanks @MarkRosemaker)
+- #179: Added New() version constructor (thanks @kazhuravlev)
+
+### Changed
+
+- #182/#183: Updated CI testing setup
+
+### Fixed
+
+- #186: Fixing issue where validation of constraint section gave false positives
+- #176: Fix constraints check with *-0 (thanks @mtt0)
+- #181: Fixed Caret operator (^) gives unexpected results when the minor version in constraint is 0 (thanks @arshchimni)
+- #161: Fixed godoc (thanks @afirth)
+
## 3.1.1 (2020-11-23)
### Fixed
diff --git a/tools/vendor/github.com/Masterminds/semver/v3/constraints.go b/tools/vendor/github.com/Masterminds/semver/v3/constraints.go
index 547613f04..203072e46 100644
--- a/tools/vendor/github.com/Masterminds/semver/v3/constraints.go
+++ b/tools/vendor/github.com/Masterminds/semver/v3/constraints.go
@@ -134,6 +134,23 @@ func (cs Constraints) String() string {
return strings.Join(buf, " || ")
}
+// UnmarshalText implements the encoding.TextUnmarshaler interface.
+func (cs *Constraints) UnmarshalText(text []byte) error {
+ temp, err := NewConstraint(string(text))
+ if err != nil {
+ return err
+ }
+
+ *cs = *temp
+
+ return nil
+}
+
+// MarshalText implements the encoding.TextMarshaler interface.
+func (cs Constraints) MarshalText() ([]byte, error) {
+ return []byte(cs.String()), nil
+}
+
var constraintOps map[string]cfunc
var constraintRegex *regexp.Regexp
var constraintRangeRegex *regexp.Regexp
@@ -180,8 +197,13 @@ func init() {
ops,
cvRegex))
+ // The first time a constraint shows up will look slightly different from
+ // future times it shows up due to a leading space or comma in a given
+ // string.
validConstraintRegex = regexp.MustCompile(fmt.Sprintf(
- `^(\s*(%s)\s*(%s)\s*\,?)+$`,
+ `^(\s*(%s)\s*(%s)\s*)((?:\s+|,\s*)(%s)\s*(%s)\s*)*$`,
+ ops,
+ cvRegex,
ops,
cvRegex))
}
@@ -233,7 +255,7 @@ func parseConstraint(c string) (*constraint, error) {
patchDirty := false
dirty := false
if isX(m[3]) || m[3] == "" {
- ver = "0.0.0"
+ ver = fmt.Sprintf("0.0.0%s", m[6])
dirty = true
} else if isX(strings.TrimPrefix(m[4], ".")) || m[4] == "" {
minorDirty = true
@@ -534,6 +556,10 @@ func constraintCaret(v *Version, c *constraint) (bool, error) {
}
return false, fmt.Errorf("%s does not have same minor version as %s. Expected minor versions to match when constraint major version is 0", v, c.orig)
}
+ // ^ when the minor is 0 and minor > 0 is =0.0.z
+ if c.con.Minor() == 0 && v.Minor() > 0 {
+ return false, fmt.Errorf("%s does not have same minor version as %s", v, c.orig)
+ }
// At this point the major is 0 and the minor is 0 and not dirty. The patch
// is not dirty so we need to check if they are equal. If they are not equal
diff --git a/tools/vendor/github.com/Masterminds/semver/v3/doc.go b/tools/vendor/github.com/Masterminds/semver/v3/doc.go
index 391aa46b7..74f97caa5 100644
--- a/tools/vendor/github.com/Masterminds/semver/v3/doc.go
+++ b/tools/vendor/github.com/Masterminds/semver/v3/doc.go
@@ -3,12 +3,12 @@ Package semver provides the ability to work with Semantic Versions (http://semve
Specifically it provides the ability to:
- * Parse semantic versions
- * Sort semantic versions
- * Check if a semantic version fits within a set of constraints
- * Optionally work with a `v` prefix
+ - Parse semantic versions
+ - Sort semantic versions
+ - Check if a semantic version fits within a set of constraints
+ - Optionally work with a `v` prefix
-Parsing Semantic Versions
+# Parsing Semantic Versions
There are two functions that can parse semantic versions. The `StrictNewVersion`
function only parses valid version 2 semantic versions as outlined in the
@@ -21,48 +21,48 @@ that can be sorted, compared, and used in constraints.
When parsing a version an optional error can be returned if there is an issue
parsing the version. For example,
- v, err := semver.NewVersion("1.2.3-beta.1+b345")
+ v, err := semver.NewVersion("1.2.3-beta.1+b345")
The version object has methods to get the parts of the version, compare it to
other versions, convert the version back into a string, and get the original
string. For more details please see the documentation
at https://godoc.org/github.com/Masterminds/semver.
-Sorting Semantic Versions
+# Sorting Semantic Versions
A set of versions can be sorted using the `sort` package from the standard library.
For example,
- raw := []string{"1.2.3", "1.0", "1.3", "2", "0.4.2",}
- vs := make([]*semver.Version, len(raw))
- for i, r := range raw {
- v, err := semver.NewVersion(r)
- if err != nil {
- t.Errorf("Error parsing version: %s", err)
- }
+ raw := []string{"1.2.3", "1.0", "1.3", "2", "0.4.2",}
+ vs := make([]*semver.Version, len(raw))
+ for i, r := range raw {
+ v, err := semver.NewVersion(r)
+ if err != nil {
+ t.Errorf("Error parsing version: %s", err)
+ }
- vs[i] = v
- }
+ vs[i] = v
+ }
- sort.Sort(semver.Collection(vs))
+ sort.Sort(semver.Collection(vs))
-Checking Version Constraints and Comparing Versions
+# Checking Version Constraints and Comparing Versions
There are two methods for comparing versions. One uses comparison methods on
`Version` instances and the other is using Constraints. There are some important
differences to notes between these two methods of comparison.
-1. When two versions are compared using functions such as `Compare`, `LessThan`,
- and others it will follow the specification and always include prereleases
- within the comparison. It will provide an answer valid with the comparison
- spec section at https://semver.org/#spec-item-11
-2. When constraint checking is used for checks or validation it will follow a
- different set of rules that are common for ranges with tools like npm/js
- and Rust/Cargo. This includes considering prereleases to be invalid if the
- ranges does not include on. If you want to have it include pre-releases a
- simple solution is to include `-0` in your range.
-3. Constraint ranges can have some complex rules including the shorthard use of
- ~ and ^. For more details on those see the options below.
+ 1. When two versions are compared using functions such as `Compare`, `LessThan`,
+ and others it will follow the specification and always include prereleases
+ within the comparison. It will provide an answer valid with the comparison
+ spec section at https://semver.org/#spec-item-11
+ 2. When constraint checking is used for checks or validation it will follow a
+ different set of rules that are common for ranges with tools like npm/js
+ and Rust/Cargo. This includes considering prereleases to be invalid if the
+ ranges does not include on. If you want to have it include pre-releases a
+ simple solution is to include `-0` in your range.
+ 3. Constraint ranges can have some complex rules including the shorthard use of
+ ~ and ^. For more details on those see the options below.
There are differences between the two methods or checking versions because the
comparison methods on `Version` follow the specification while comparison ranges
@@ -76,19 +76,19 @@ patters with their versions.
Checking a version against version constraints is one of the most featureful
parts of the package.
- c, err := semver.NewConstraint(">= 1.2.3")
- if err != nil {
- // Handle constraint not being parsable.
- }
+ c, err := semver.NewConstraint(">= 1.2.3")
+ if err != nil {
+ // Handle constraint not being parsable.
+ }
- v, err := semver.NewVersion("1.3")
- if err != nil {
- // Handle version not being parsable.
- }
- // Check if the version meets the constraints. The a variable will be true.
- a := c.Check(v)
+ v, err := semver.NewVersion("1.3")
+ if err != nil {
+ // Handle version not being parsable.
+ }
+ // Check if the version meets the constraints. The a variable will be true.
+ a := c.Check(v)
-Basic Comparisons
+# Basic Comparisons
There are two elements to the comparisons. First, a comparison string is a list
of comma or space separated AND comparisons. These are then separated by || (OR)
@@ -99,31 +99,31 @@ greater than or equal to 4.2.3. This can also be written as
The basic comparisons are:
- * `=`: equal (aliased to no operator)
- * `!=`: not equal
- * `>`: greater than
- * `<`: less than
- * `>=`: greater than or equal to
- * `<=`: less than or equal to
+ - `=`: equal (aliased to no operator)
+ - `!=`: not equal
+ - `>`: greater than
+ - `<`: less than
+ - `>=`: greater than or equal to
+ - `<=`: less than or equal to
-Hyphen Range Comparisons
+# Hyphen Range Comparisons
There are multiple methods to handle ranges and the first is hyphens ranges.
These look like:
- * `1.2 - 1.4.5` which is equivalent to `>= 1.2, <= 1.4.5`
- * `2.3.4 - 4.5` which is equivalent to `>= 2.3.4 <= 4.5`
+ - `1.2 - 1.4.5` which is equivalent to `>= 1.2, <= 1.4.5`
+ - `2.3.4 - 4.5` which is equivalent to `>= 2.3.4 <= 4.5`
-Wildcards In Comparisons
+# Wildcards In Comparisons
The `x`, `X`, and `*` characters can be used as a wildcard character. This works
for all comparison operators. When used on the `=` operator it falls
back to the tilde operation. For example,
- * `1.2.x` is equivalent to `>= 1.2.0 < 1.3.0`
- * `>= 1.2.x` is equivalent to `>= 1.2.0`
- * `<= 2.x` is equivalent to `<= 3`
- * `*` is equivalent to `>= 0.0.0`
+ - `1.2.x` is equivalent to `>= 1.2.0 < 1.3.0`
+ - `>= 1.2.x` is equivalent to `>= 1.2.0`
+ - `<= 2.x` is equivalent to `<= 3`
+ - `*` is equivalent to `>= 0.0.0`
Tilde Range Comparisons (Patch)
@@ -131,11 +131,11 @@ The tilde (`~`) comparison operator is for patch level ranges when a minor
version is specified and major level changes when the minor number is missing.
For example,
- * `~1.2.3` is equivalent to `>= 1.2.3 < 1.3.0`
- * `~1` is equivalent to `>= 1, < 2`
- * `~2.3` is equivalent to `>= 2.3 < 2.4`
- * `~1.2.x` is equivalent to `>= 1.2.0 < 1.3.0`
- * `~1.x` is equivalent to `>= 1 < 2`
+ - `~1.2.3` is equivalent to `>= 1.2.3 < 1.3.0`
+ - `~1` is equivalent to `>= 1, < 2`
+ - `~2.3` is equivalent to `>= 2.3 < 2.4`
+ - `~1.2.x` is equivalent to `>= 1.2.0 < 1.3.0`
+ - `~1.x` is equivalent to `>= 1 < 2`
Caret Range Comparisons (Major)
@@ -144,41 +144,41 @@ The caret (`^`) comparison operator is for major level changes once a stable
as the API stability level. This is useful when comparisons of API versions as a
major change is API breaking. For example,
- * `^1.2.3` is equivalent to `>= 1.2.3, < 2.0.0`
- * `^1.2.x` is equivalent to `>= 1.2.0, < 2.0.0`
- * `^2.3` is equivalent to `>= 2.3, < 3`
- * `^2.x` is equivalent to `>= 2.0.0, < 3`
- * `^0.2.3` is equivalent to `>=0.2.3 <0.3.0`
- * `^0.2` is equivalent to `>=0.2.0 <0.3.0`
- * `^0.0.3` is equivalent to `>=0.0.3 <0.0.4`
- * `^0.0` is equivalent to `>=0.0.0 <0.1.0`
- * `^0` is equivalent to `>=0.0.0 <1.0.0`
+ - `^1.2.3` is equivalent to `>= 1.2.3, < 2.0.0`
+ - `^1.2.x` is equivalent to `>= 1.2.0, < 2.0.0`
+ - `^2.3` is equivalent to `>= 2.3, < 3`
+ - `^2.x` is equivalent to `>= 2.0.0, < 3`
+ - `^0.2.3` is equivalent to `>=0.2.3 <0.3.0`
+ - `^0.2` is equivalent to `>=0.2.0 <0.3.0`
+ - `^0.0.3` is equivalent to `>=0.0.3 <0.0.4`
+ - `^0.0` is equivalent to `>=0.0.0 <0.1.0`
+ - `^0` is equivalent to `>=0.0.0 <1.0.0`
-Validation
+# Validation
In addition to testing a version against a constraint, a version can be validated
against a constraint. When validation fails a slice of errors containing why a
version didn't meet the constraint is returned. For example,
- c, err := semver.NewConstraint("<= 1.2.3, >= 1.4")
- if err != nil {
- // Handle constraint not being parseable.
- }
-
- v, _ := semver.NewVersion("1.3")
- if err != nil {
- // Handle version not being parseable.
- }
-
- // Validate a version against a constraint.
- a, msgs := c.Validate(v)
- // a is false
- for _, m := range msgs {
- fmt.Println(m)
-
- // Loops over the errors which would read
- // "1.3 is greater than 1.2.3"
- // "1.3 is less than 1.4"
- }
+ c, err := semver.NewConstraint("<= 1.2.3, >= 1.4")
+ if err != nil {
+ // Handle constraint not being parseable.
+ }
+
+ v, _ := semver.NewVersion("1.3")
+ if err != nil {
+ // Handle version not being parseable.
+ }
+
+ // Validate a version against a constraint.
+ a, msgs := c.Validate(v)
+ // a is false
+ for _, m := range msgs {
+ fmt.Println(m)
+
+ // Loops over the errors which would read
+ // "1.3 is greater than 1.2.3"
+ // "1.3 is less than 1.4"
+ }
*/
package semver
diff --git a/tools/vendor/github.com/Masterminds/semver/v3/version.go b/tools/vendor/github.com/Masterminds/semver/v3/version.go
index d6b9cda3e..7c4bed334 100644
--- a/tools/vendor/github.com/Masterminds/semver/v3/version.go
+++ b/tools/vendor/github.com/Masterminds/semver/v3/version.go
@@ -55,14 +55,16 @@ func init() {
versionRegex = regexp.MustCompile("^" + semVerRegex + "$")
}
-const num string = "0123456789"
-const allowed string = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-" + num
+const (
+ num string = "0123456789"
+ allowed string = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-" + num
+)
// StrictNewVersion parses a given version and returns an instance of Version or
// an error if unable to parse the version. Only parses valid semantic versions.
// Performs checking that can find errors within the version.
-// If you want to coerce a version, such as 1 or 1.2, and perse that as the 1.x
-// releases of semver provided use the NewSemver() function.
+// If you want to coerce a version such as 1 or 1.2 and parse it as the 1.x
+// releases of semver did, use the NewVersion() function.
func StrictNewVersion(v string) (*Version, error) {
// Parsing here does not use RegEx in order to increase performance and reduce
// allocations.
@@ -207,6 +209,23 @@ func NewVersion(v string) (*Version, error) {
return sv, nil
}
+// New creates a new instance of Version with each of the parts passed in as
+// arguments instead of parsing a version string.
+func New(major, minor, patch uint64, pre, metadata string) *Version {
+ v := Version{
+ major: major,
+ minor: minor,
+ patch: patch,
+ pre: pre,
+ metadata: metadata,
+ original: "",
+ }
+
+ v.original = v.String()
+
+ return &v
+}
+
// MustParse parses a given version and panics on error.
func MustParse(v string) *Version {
sv, err := NewVersion(v)
@@ -267,7 +286,6 @@ func (v Version) Metadata() string {
// originalVPrefix returns the original 'v' prefix if any.
func (v Version) originalVPrefix() string {
-
// Note, only lowercase v is supported as a prefix by the parser.
if v.original != "" && v.original[:1] == "v" {
return v.original[:1]
@@ -436,6 +454,23 @@ func (v Version) MarshalJSON() ([]byte, error) {
return json.Marshal(v.String())
}
+// UnmarshalText implements the encoding.TextUnmarshaler interface.
+func (v *Version) UnmarshalText(text []byte) error {
+ temp, err := NewVersion(string(text))
+ if err != nil {
+ return err
+ }
+
+ *v = *temp
+
+ return nil
+}
+
+// MarshalText implements the encoding.TextMarshaler interface.
+func (v Version) MarshalText() ([]byte, error) {
+ return []byte(v.String()), nil
+}
+
// Scan implements the SQL.Scanner interface.
func (v *Version) Scan(value interface{}) error {
var s string
@@ -470,7 +505,6 @@ func compareSegment(v, o uint64) int {
}
func comparePrerelease(v, o string) int {
-
// split the prelease versions by their part. The separator, per the spec,
// is a .
sparts := strings.Split(v, ".")
@@ -562,7 +596,6 @@ func comparePrePart(s, o string) int {
return 1
}
return -1
-
}
// Like strings.ContainsAny but does an only instead of any.
diff --git a/tools/vendor/github.com/Masterminds/sprig/v3/CHANGELOG.md b/tools/vendor/github.com/Masterminds/sprig/v3/CHANGELOG.md
index fcdd4e88a..2ce45dd4e 100644
--- a/tools/vendor/github.com/Masterminds/sprig/v3/CHANGELOG.md
+++ b/tools/vendor/github.com/Masterminds/sprig/v3/CHANGELOG.md
@@ -1,8 +1,21 @@
# Changelog
+## Release 3.2.3 (2022-11-29)
+
+### Changed
+
+- Updated docs (thanks @book987 @aJetHorn @neelayu @pellizzetti @apricote @SaigyoujiYuyuko233 @AlekSi)
+- #348: Updated huandu/xstrings which fixed a snake case bug (thanks @yxxhero)
+- #353: Updated masterminds/semver which included bug fixes
+- #354: Updated golang.org/x/crypto which included bug fixes
+
+## Release 3.2.2 (2021-02-04)
+
+This is a re-release of 3.2.1 to satisfy something with the Go module system.
+
## Release 3.2.1 (2021-02-04)
-### Changed
+### Changed
- Upgraded `Masterminds/goutils` to `v1.1.1`. see the [Security Advisory](https://github.com/Masterminds/goutils/security/advisories/GHSA-xg2h-wx96-xgxr)
diff --git a/tools/vendor/github.com/Masterminds/sprig/v3/README.md b/tools/vendor/github.com/Masterminds/sprig/v3/README.md
index c37ba01c2..3e22c60e1 100644
--- a/tools/vendor/github.com/Masterminds/sprig/v3/README.md
+++ b/tools/vendor/github.com/Masterminds/sprig/v3/README.md
@@ -17,10 +17,9 @@ JavaScript libraries, such as [underscore.js](http://underscorejs.org/).
## IMPORTANT NOTES
Sprig leverages [mergo](https://github.com/imdario/mergo) to handle merges. In
-its v0.3.9 release there was a behavior change that impacts merging template
-functions in sprig. It is currently recommended to use v0.3.8 of that package.
-Using v0.3.9 will cause sprig tests to fail. The issue in mergo is tracked at
-https://github.com/imdario/mergo/issues/139.
+its v0.3.9 release, there was a behavior change that impacts merging template
+functions in sprig. It is currently recommended to use v0.3.10 or later of that package.
+Using v0.3.9 will cause sprig tests to fail.
## Package Versions
@@ -51,7 +50,7 @@ To load the Sprig `FuncMap`:
```go
import (
- "github.com/Masterminds/sprig"
+ "github.com/Masterminds/sprig/v3"
"html/template"
)
diff --git a/tools/vendor/github.com/Microsoft/go-winio/.golangci.yml b/tools/vendor/github.com/Microsoft/go-winio/.golangci.yml
index af403bb13..7b503d26a 100644
--- a/tools/vendor/github.com/Microsoft/go-winio/.golangci.yml
+++ b/tools/vendor/github.com/Microsoft/go-winio/.golangci.yml
@@ -8,12 +8,8 @@ linters:
- containedctx # struct contains a context
- dupl # duplicate code
- errname # erorrs are named correctly
- - goconst # strings that should be constants
- - godot # comments end in a period
- - misspell
- nolintlint # "//nolint" directives are properly explained
- revive # golint replacement
- - stylecheck # golint replacement, less configurable than revive
- unconvert # unnecessary conversions
- wastedassign
@@ -23,10 +19,7 @@ linters:
- exhaustive # check exhaustiveness of enum switch statements
- gofmt # files are gofmt'ed
- gosec # security
- - nestif # deeply nested ifs
- nilerr # returns nil even with non-nil error
- - prealloc # slices that can be pre-allocated
- - structcheck # unused struct fields
- unparam # unused function params
issues:
@@ -42,6 +35,18 @@ issues:
text: "^line-length-limit: "
source: "^//(go:generate|sys) "
+ #TODO: remove after upgrading to go1.18
+ # ignore comment spacing for nolint and sys directives
+ - linters:
+ - revive
+ text: "^comment-spacings: no space between comment delimiter and comment text"
+ source: "//(cspell:|nolint:|sys |todo)"
+
+ # not on go 1.18 yet, so no any
+ - linters:
+ - revive
+ text: "^use-any: since GO 1.18 'interface{}' can be replaced by 'any'"
+
# allow unjustified ignores of error checks in defer statements
- linters:
- nolintlint
@@ -56,6 +61,8 @@ issues:
linters-settings:
+ exhaustive:
+ default-signifies-exhaustive: true
govet:
enable-all: true
disable:
@@ -98,6 +105,8 @@ linters-settings:
disabled: true
- name: flag-parameter # excessive, and a common idiom we use
disabled: true
+ - name: unhandled-error # warns over common fmt.Print* and io.Close; rely on errcheck instead
+ disabled: true
# general config
- name: line-length-limit
arguments:
@@ -138,7 +147,3 @@ linters-settings:
- VPCI
- WCOW
- WIM
- stylecheck:
- checks:
- - "all"
- - "-ST1003" # use revive's var naming
diff --git a/tools/vendor/github.com/Microsoft/go-winio/hvsock.go b/tools/vendor/github.com/Microsoft/go-winio/hvsock.go
index 52f1c280f..c88191658 100644
--- a/tools/vendor/github.com/Microsoft/go-winio/hvsock.go
+++ b/tools/vendor/github.com/Microsoft/go-winio/hvsock.go
@@ -23,7 +23,7 @@ import (
const afHVSock = 34 // AF_HYPERV
// Well known Service and VM IDs
-//https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/user-guide/make-integration-service#vmid-wildcards
+// https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/user-guide/make-integration-service#vmid-wildcards
// HvsockGUIDWildcard is the wildcard VmId for accepting connections from all partitions.
func HvsockGUIDWildcard() guid.GUID { // 00000000-0000-0000-0000-000000000000
@@ -31,7 +31,7 @@ func HvsockGUIDWildcard() guid.GUID { // 00000000-0000-0000-0000-000000000000
}
// HvsockGUIDBroadcast is the wildcard VmId for broadcasting sends to all partitions.
-func HvsockGUIDBroadcast() guid.GUID { //ffffffff-ffff-ffff-ffff-ffffffffffff
+func HvsockGUIDBroadcast() guid.GUID { // ffffffff-ffff-ffff-ffff-ffffffffffff
return guid.GUID{
Data1: 0xffffffff,
Data2: 0xffff,
@@ -246,7 +246,7 @@ func (l *HvsockListener) Accept() (_ net.Conn, err error) {
var addrbuf [addrlen * 2]byte
var bytes uint32
- err = syscall.AcceptEx(l.sock.handle, sock.handle, &addrbuf[0], 0 /*rxdatalen*/, addrlen, addrlen, &bytes, &c.o)
+ err = syscall.AcceptEx(l.sock.handle, sock.handle, &addrbuf[0], 0 /* rxdatalen */, addrlen, addrlen, &bytes, &c.o)
if _, err = l.sock.asyncIO(c, nil, bytes, err); err != nil {
return nil, l.opErr("accept", os.NewSyscallError("acceptex", err))
}
diff --git a/tools/vendor/github.com/Microsoft/go-winio/internal/fs/doc.go b/tools/vendor/github.com/Microsoft/go-winio/internal/fs/doc.go
new file mode 100644
index 000000000..1f6538817
--- /dev/null
+++ b/tools/vendor/github.com/Microsoft/go-winio/internal/fs/doc.go
@@ -0,0 +1,2 @@
+// This package contains Win32 filesystem functionality.
+package fs
diff --git a/tools/vendor/github.com/Microsoft/go-winio/internal/fs/fs.go b/tools/vendor/github.com/Microsoft/go-winio/internal/fs/fs.go
new file mode 100644
index 000000000..509b3ec64
--- /dev/null
+++ b/tools/vendor/github.com/Microsoft/go-winio/internal/fs/fs.go
@@ -0,0 +1,202 @@
+//go:build windows
+
+package fs
+
+import (
+ "golang.org/x/sys/windows"
+
+ "github.com/Microsoft/go-winio/internal/stringbuffer"
+)
+
+//go:generate go run github.com/Microsoft/go-winio/tools/mkwinsyscall -output zsyscall_windows.go fs.go
+
+// https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-createfilew
+//sys CreateFile(name string, access AccessMask, mode FileShareMode, sa *syscall.SecurityAttributes, createmode FileCreationDisposition, attrs FileFlagOrAttribute, templatefile windows.Handle) (handle windows.Handle, err error) [failretval==windows.InvalidHandle] = CreateFileW
+
+const NullHandle windows.Handle = 0
+
+// AccessMask defines standard, specific, and generic rights.
+//
+// Bitmask:
+// 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
+// 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
+// +---------------+---------------+-------------------------------+
+// |G|G|G|G|Resvd|A| StandardRights| SpecificRights |
+// |R|W|E|A| |S| | |
+// +-+-------------+---------------+-------------------------------+
+//
+// GR Generic Read
+// GW Generic Write
+// GE Generic Exectue
+// GA Generic All
+// Resvd Reserved
+// AS Access Security System
+//
+// https://learn.microsoft.com/en-us/windows/win32/secauthz/access-mask
+//
+// https://learn.microsoft.com/en-us/windows/win32/secauthz/generic-access-rights
+//
+// https://learn.microsoft.com/en-us/windows/win32/fileio/file-access-rights-constants
+type AccessMask = windows.ACCESS_MASK
+
+//nolint:revive // SNAKE_CASE is not idiomatic in Go, but aligned with Win32 API.
+const (
+ // Not actually any.
+ //
+ // For CreateFile: "query certain metadata such as file, directory, or device attributes without accessing that file or device"
+ // https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-createfilew#parameters
+ FILE_ANY_ACCESS AccessMask = 0
+
+ // Specific Object Access
+ // from ntioapi.h
+
+ FILE_READ_DATA AccessMask = (0x0001) // file & pipe
+ FILE_LIST_DIRECTORY AccessMask = (0x0001) // directory
+
+ FILE_WRITE_DATA AccessMask = (0x0002) // file & pipe
+ FILE_ADD_FILE AccessMask = (0x0002) // directory
+
+ FILE_APPEND_DATA AccessMask = (0x0004) // file
+ FILE_ADD_SUBDIRECTORY AccessMask = (0x0004) // directory
+ FILE_CREATE_PIPE_INSTANCE AccessMask = (0x0004) // named pipe
+
+ FILE_READ_EA AccessMask = (0x0008) // file & directory
+ FILE_READ_PROPERTIES AccessMask = FILE_READ_EA
+
+ FILE_WRITE_EA AccessMask = (0x0010) // file & directory
+ FILE_WRITE_PROPERTIES AccessMask = FILE_WRITE_EA
+
+ FILE_EXECUTE AccessMask = (0x0020) // file
+ FILE_TRAVERSE AccessMask = (0x0020) // directory
+
+ FILE_DELETE_CHILD AccessMask = (0x0040) // directory
+
+ FILE_READ_ATTRIBUTES AccessMask = (0x0080) // all
+
+ FILE_WRITE_ATTRIBUTES AccessMask = (0x0100) // all
+
+ FILE_ALL_ACCESS AccessMask = (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x1FF)
+ FILE_GENERIC_READ AccessMask = (STANDARD_RIGHTS_READ | FILE_READ_DATA | FILE_READ_ATTRIBUTES | FILE_READ_EA | SYNCHRONIZE)
+ FILE_GENERIC_WRITE AccessMask = (STANDARD_RIGHTS_WRITE | FILE_WRITE_DATA | FILE_WRITE_ATTRIBUTES | FILE_WRITE_EA | FILE_APPEND_DATA | SYNCHRONIZE)
+ FILE_GENERIC_EXECUTE AccessMask = (STANDARD_RIGHTS_EXECUTE | FILE_READ_ATTRIBUTES | FILE_EXECUTE | SYNCHRONIZE)
+
+ SPECIFIC_RIGHTS_ALL AccessMask = 0x0000FFFF
+
+ // Standard Access
+ // from ntseapi.h
+
+ DELETE AccessMask = 0x0001_0000
+ READ_CONTROL AccessMask = 0x0002_0000
+ WRITE_DAC AccessMask = 0x0004_0000
+ WRITE_OWNER AccessMask = 0x0008_0000
+ SYNCHRONIZE AccessMask = 0x0010_0000
+
+ STANDARD_RIGHTS_REQUIRED AccessMask = 0x000F_0000
+
+ STANDARD_RIGHTS_READ AccessMask = READ_CONTROL
+ STANDARD_RIGHTS_WRITE AccessMask = READ_CONTROL
+ STANDARD_RIGHTS_EXECUTE AccessMask = READ_CONTROL
+
+ STANDARD_RIGHTS_ALL AccessMask = 0x001F_0000
+)
+
+type FileShareMode uint32
+
+//nolint:revive // SNAKE_CASE is not idiomatic in Go, but aligned with Win32 API.
+const (
+ FILE_SHARE_NONE FileShareMode = 0x00
+ FILE_SHARE_READ FileShareMode = 0x01
+ FILE_SHARE_WRITE FileShareMode = 0x02
+ FILE_SHARE_DELETE FileShareMode = 0x04
+ FILE_SHARE_VALID_FLAGS FileShareMode = 0x07
+)
+
+type FileCreationDisposition uint32
+
+//nolint:revive // SNAKE_CASE is not idiomatic in Go, but aligned with Win32 API.
+const (
+ // from winbase.h
+
+ CREATE_NEW FileCreationDisposition = 0x01
+ CREATE_ALWAYS FileCreationDisposition = 0x02
+ OPEN_EXISTING FileCreationDisposition = 0x03
+ OPEN_ALWAYS FileCreationDisposition = 0x04
+ TRUNCATE_EXISTING FileCreationDisposition = 0x05
+)
+
+// CreateFile and co. take flags or attributes together as one parameter.
+// Define alias until we can use generics to allow both
+
+// https://learn.microsoft.com/en-us/windows/win32/fileio/file-attribute-constants
+type FileFlagOrAttribute uint32
+
+//nolint:revive // SNAKE_CASE is not idiomatic in Go, but aligned with Win32 API.
+const ( // from winnt.h
+ FILE_FLAG_WRITE_THROUGH FileFlagOrAttribute = 0x8000_0000
+ FILE_FLAG_OVERLAPPED FileFlagOrAttribute = 0x4000_0000
+ FILE_FLAG_NO_BUFFERING FileFlagOrAttribute = 0x2000_0000
+ FILE_FLAG_RANDOM_ACCESS FileFlagOrAttribute = 0x1000_0000
+ FILE_FLAG_SEQUENTIAL_SCAN FileFlagOrAttribute = 0x0800_0000
+ FILE_FLAG_DELETE_ON_CLOSE FileFlagOrAttribute = 0x0400_0000
+ FILE_FLAG_BACKUP_SEMANTICS FileFlagOrAttribute = 0x0200_0000
+ FILE_FLAG_POSIX_SEMANTICS FileFlagOrAttribute = 0x0100_0000
+ FILE_FLAG_OPEN_REPARSE_POINT FileFlagOrAttribute = 0x0020_0000
+ FILE_FLAG_OPEN_NO_RECALL FileFlagOrAttribute = 0x0010_0000
+ FILE_FLAG_FIRST_PIPE_INSTANCE FileFlagOrAttribute = 0x0008_0000
+)
+
+type FileSQSFlag = FileFlagOrAttribute
+
+//nolint:revive // SNAKE_CASE is not idiomatic in Go, but aligned with Win32 API.
+const ( // from winbase.h
+ SECURITY_ANONYMOUS FileSQSFlag = FileSQSFlag(SecurityAnonymous << 16)
+ SECURITY_IDENTIFICATION FileSQSFlag = FileSQSFlag(SecurityIdentification << 16)
+ SECURITY_IMPERSONATION FileSQSFlag = FileSQSFlag(SecurityImpersonation << 16)
+ SECURITY_DELEGATION FileSQSFlag = FileSQSFlag(SecurityDelegation << 16)
+
+ SECURITY_SQOS_PRESENT FileSQSFlag = 0x00100000
+ SECURITY_VALID_SQOS_FLAGS FileSQSFlag = 0x001F0000
+)
+
+// GetFinalPathNameByHandle flags
+//
+// https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-getfinalpathnamebyhandlew#parameters
+type GetFinalPathFlag uint32
+
+//nolint:revive // SNAKE_CASE is not idiomatic in Go, but aligned with Win32 API.
+const (
+ GetFinalPathDefaultFlag GetFinalPathFlag = 0x0
+
+ FILE_NAME_NORMALIZED GetFinalPathFlag = 0x0
+ FILE_NAME_OPENED GetFinalPathFlag = 0x8
+
+ VOLUME_NAME_DOS GetFinalPathFlag = 0x0
+ VOLUME_NAME_GUID GetFinalPathFlag = 0x1
+ VOLUME_NAME_NT GetFinalPathFlag = 0x2
+ VOLUME_NAME_NONE GetFinalPathFlag = 0x4
+)
+
+// getFinalPathNameByHandle facilitates calling the Windows API GetFinalPathNameByHandle
+// with the given handle and flags. It transparently takes care of creating a buffer of the
+// correct size for the call.
+//
+// https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-getfinalpathnamebyhandlew
+func GetFinalPathNameByHandle(h windows.Handle, flags GetFinalPathFlag) (string, error) {
+ b := stringbuffer.NewWString()
+ //TODO: can loop infinitely if Win32 keeps returning the same (or a larger) n?
+ for {
+ n, err := windows.GetFinalPathNameByHandle(h, b.Pointer(), b.Cap(), uint32(flags))
+ if err != nil {
+ return "", err
+ }
+ // If the buffer wasn't large enough, n will be the total size needed (including null terminator).
+ // Resize and try again.
+ if n > b.Cap() {
+ b.ResizeTo(n)
+ continue
+ }
+ // If the buffer is large enough, n will be the size not including the null terminator.
+ // Convert to a Go string and return.
+ return b.String(), nil
+ }
+}
diff --git a/tools/vendor/github.com/Microsoft/go-winio/internal/fs/security.go b/tools/vendor/github.com/Microsoft/go-winio/internal/fs/security.go
new file mode 100644
index 000000000..81760ac67
--- /dev/null
+++ b/tools/vendor/github.com/Microsoft/go-winio/internal/fs/security.go
@@ -0,0 +1,12 @@
+package fs
+
+// https://learn.microsoft.com/en-us/windows/win32/api/winnt/ne-winnt-security_impersonation_level
+type SecurityImpersonationLevel int32 // C default enums underlying type is `int`, which is Go `int32`
+
+// Impersonation levels
+const (
+ SecurityAnonymous SecurityImpersonationLevel = 0
+ SecurityIdentification SecurityImpersonationLevel = 1
+ SecurityImpersonation SecurityImpersonationLevel = 2
+ SecurityDelegation SecurityImpersonationLevel = 3
+)
diff --git a/tools/vendor/github.com/Microsoft/go-winio/internal/fs/zsyscall_windows.go b/tools/vendor/github.com/Microsoft/go-winio/internal/fs/zsyscall_windows.go
new file mode 100644
index 000000000..e2f7bb24e
--- /dev/null
+++ b/tools/vendor/github.com/Microsoft/go-winio/internal/fs/zsyscall_windows.go
@@ -0,0 +1,64 @@
+//go:build windows
+
+// Code generated by 'go generate' using "github.com/Microsoft/go-winio/tools/mkwinsyscall"; DO NOT EDIT.
+
+package fs
+
+import (
+ "syscall"
+ "unsafe"
+
+ "golang.org/x/sys/windows"
+)
+
+var _ unsafe.Pointer
+
+// Do the interface allocations only once for common
+// Errno values.
+const (
+ errnoERROR_IO_PENDING = 997
+)
+
+var (
+ errERROR_IO_PENDING error = syscall.Errno(errnoERROR_IO_PENDING)
+ errERROR_EINVAL error = syscall.EINVAL
+)
+
+// errnoErr returns common boxed Errno values, to prevent
+// allocations at runtime.
+func errnoErr(e syscall.Errno) error {
+ switch e {
+ case 0:
+ return errERROR_EINVAL
+ case errnoERROR_IO_PENDING:
+ return errERROR_IO_PENDING
+ }
+ // TODO: add more here, after collecting data on the common
+ // error values see on Windows. (perhaps when running
+ // all.bat?)
+ return e
+}
+
+var (
+ modkernel32 = windows.NewLazySystemDLL("kernel32.dll")
+
+ procCreateFileW = modkernel32.NewProc("CreateFileW")
+)
+
+func CreateFile(name string, access AccessMask, mode FileShareMode, sa *syscall.SecurityAttributes, createmode FileCreationDisposition, attrs FileFlagOrAttribute, templatefile windows.Handle) (handle windows.Handle, err error) {
+ var _p0 *uint16
+ _p0, err = syscall.UTF16PtrFromString(name)
+ if err != nil {
+ return
+ }
+ return _CreateFile(_p0, access, mode, sa, createmode, attrs, templatefile)
+}
+
+func _CreateFile(name *uint16, access AccessMask, mode FileShareMode, sa *syscall.SecurityAttributes, createmode FileCreationDisposition, attrs FileFlagOrAttribute, templatefile windows.Handle) (handle windows.Handle, err error) {
+ r0, _, e1 := syscall.Syscall9(procCreateFileW.Addr(), 7, uintptr(unsafe.Pointer(name)), uintptr(access), uintptr(mode), uintptr(unsafe.Pointer(sa)), uintptr(createmode), uintptr(attrs), uintptr(templatefile), 0, 0)
+ handle = windows.Handle(r0)
+ if handle == windows.InvalidHandle {
+ err = errnoErr(e1)
+ }
+ return
+}
diff --git a/tools/vendor/github.com/Microsoft/go-winio/internal/socket/socket.go b/tools/vendor/github.com/Microsoft/go-winio/internal/socket/socket.go
index 39e8c05f8..aeb7b7250 100644
--- a/tools/vendor/github.com/Microsoft/go-winio/internal/socket/socket.go
+++ b/tools/vendor/github.com/Microsoft/go-winio/internal/socket/socket.go
@@ -100,8 +100,8 @@ func (f *runtimeFunc) Load() error {
(*byte)(unsafe.Pointer(&f.addr)),
uint32(unsafe.Sizeof(f.addr)),
&n,
- nil, //overlapped
- 0, //completionRoutine
+ nil, // overlapped
+ 0, // completionRoutine
)
})
return f.err
diff --git a/tools/vendor/github.com/Microsoft/go-winio/internal/stringbuffer/wstring.go b/tools/vendor/github.com/Microsoft/go-winio/internal/stringbuffer/wstring.go
new file mode 100644
index 000000000..7ad505702
--- /dev/null
+++ b/tools/vendor/github.com/Microsoft/go-winio/internal/stringbuffer/wstring.go
@@ -0,0 +1,132 @@
+package stringbuffer
+
+import (
+ "sync"
+ "unicode/utf16"
+)
+
+// TODO: worth exporting and using in mkwinsyscall?
+
+// Uint16BufferSize is the buffer size in the pool, chosen somewhat arbitrarily to accommodate
+// large path strings:
+// MAX_PATH (260) + size of volume GUID prefix (49) + null terminator = 310.
+const MinWStringCap = 310
+
+// use *[]uint16 since []uint16 creates an extra allocation where the slice header
+// is copied to heap and then referenced via pointer in the interface header that sync.Pool
+// stores.
+var pathPool = sync.Pool{ // if go1.18+ adds Pool[T], use that to store []uint16 directly
+ New: func() interface{} {
+ b := make([]uint16, MinWStringCap)
+ return &b
+ },
+}
+
+func newBuffer() []uint16 { return *(pathPool.Get().(*[]uint16)) }
+
+// freeBuffer copies the slice header data, and puts a pointer to that in the pool.
+// This avoids taking a pointer to the slice header in WString, which can be set to nil.
+func freeBuffer(b []uint16) { pathPool.Put(&b) }
+
+// WString is a wide string buffer ([]uint16) meant for storing UTF-16 encoded strings
+// for interacting with Win32 APIs.
+// Sizes are specified as uint32 and not int.
+//
+// It is not thread safe.
+type WString struct {
+ // type-def allows casting to []uint16 directly, use struct to prevent that and allow adding fields in the future.
+
+ // raw buffer
+ b []uint16
+}
+
+// NewWString returns a [WString] allocated from a shared pool with an
+// initial capacity of at least [MinWStringCap].
+// Since the buffer may have been previously used, its contents are not guaranteed to be empty.
+//
+// The buffer should be freed via [WString.Free]
+func NewWString() *WString {
+ return &WString{
+ b: newBuffer(),
+ }
+}
+
+func (b *WString) Free() {
+ if b.empty() {
+ return
+ }
+ freeBuffer(b.b)
+ b.b = nil
+}
+
+// ResizeTo grows the buffer to at least c and returns the new capacity, freeing the
+// previous buffer back into pool.
+func (b *WString) ResizeTo(c uint32) uint32 {
+ // allready sufficient (or n is 0)
+ if c <= b.Cap() {
+ return b.Cap()
+ }
+
+ if c <= MinWStringCap {
+ c = MinWStringCap
+ }
+ // allocate at-least double buffer size, as is done in [bytes.Buffer] and other places
+ if c <= 2*b.Cap() {
+ c = 2 * b.Cap()
+ }
+
+ b2 := make([]uint16, c)
+ if !b.empty() {
+ copy(b2, b.b)
+ freeBuffer(b.b)
+ }
+ b.b = b2
+ return c
+}
+
+// Buffer returns the underlying []uint16 buffer.
+func (b *WString) Buffer() []uint16 {
+ if b.empty() {
+ return nil
+ }
+ return b.b
+}
+
+// Pointer returns a pointer to the first uint16 in the buffer.
+// If the [WString.Free] has already been called, the pointer will be nil.
+func (b *WString) Pointer() *uint16 {
+ if b.empty() {
+ return nil
+ }
+ return &b.b[0]
+}
+
+// String returns the returns the UTF-8 encoding of the UTF-16 string in the buffer.
+//
+// It assumes that the data is null-terminated.
+func (b *WString) String() string {
+ // Using [windows.UTF16ToString] would require importing "golang.org/x/sys/windows"
+ // and would make this code Windows-only, which makes no sense.
+ // So copy UTF16ToString code into here.
+ // If other windows-specific code is added, switch to [windows.UTF16ToString]
+
+ s := b.b
+ for i, v := range s {
+ if v == 0 {
+ s = s[:i]
+ break
+ }
+ }
+ return string(utf16.Decode(s))
+}
+
+// Cap returns the underlying buffer capacity.
+func (b *WString) Cap() uint32 {
+ if b.empty() {
+ return 0
+ }
+ return b.cap()
+}
+
+func (b *WString) cap() uint32 { return uint32(cap(b.b)) }
+func (b *WString) empty() bool { return b == nil || b.cap() == 0 }
diff --git a/tools/vendor/github.com/Microsoft/go-winio/pipe.go b/tools/vendor/github.com/Microsoft/go-winio/pipe.go
index ca6e38fc0..25cc81103 100644
--- a/tools/vendor/github.com/Microsoft/go-winio/pipe.go
+++ b/tools/vendor/github.com/Microsoft/go-winio/pipe.go
@@ -16,11 +16,12 @@ import (
"unsafe"
"golang.org/x/sys/windows"
+
+ "github.com/Microsoft/go-winio/internal/fs"
)
//sys connectNamedPipe(pipe syscall.Handle, o *syscall.Overlapped) (err error) = ConnectNamedPipe
//sys createNamedPipe(name string, flags uint32, pipeMode uint32, maxInstances uint32, outSize uint32, inSize uint32, defaultTimeout uint32, sa *syscall.SecurityAttributes) (handle syscall.Handle, err error) [failretval==syscall.InvalidHandle] = CreateNamedPipeW
-//sys createFile(name string, access uint32, mode uint32, sa *syscall.SecurityAttributes, createmode uint32, attrs uint32, templatefile syscall.Handle) (handle syscall.Handle, err error) [failretval==syscall.InvalidHandle] = CreateFileW
//sys getNamedPipeInfo(pipe syscall.Handle, flags *uint32, outSize *uint32, inSize *uint32, maxInstances *uint32) (err error) = GetNamedPipeInfo
//sys getNamedPipeHandleState(pipe syscall.Handle, state *uint32, curInstances *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32, userName *uint16, maxUserNameSize uint32) (err error) = GetNamedPipeHandleStateW
//sys localAlloc(uFlags uint32, length uint32) (ptr uintptr) = LocalAlloc
@@ -163,19 +164,21 @@ func (s pipeAddress) String() string {
}
// tryDialPipe attempts to dial the pipe at `path` until `ctx` cancellation or timeout.
-func tryDialPipe(ctx context.Context, path *string, access uint32) (syscall.Handle, error) {
+func tryDialPipe(ctx context.Context, path *string, access fs.AccessMask) (syscall.Handle, error) {
for {
select {
case <-ctx.Done():
return syscall.Handle(0), ctx.Err()
default:
- h, err := createFile(*path,
+ wh, err := fs.CreateFile(*path,
access,
- 0,
- nil,
- syscall.OPEN_EXISTING,
- windows.FILE_FLAG_OVERLAPPED|windows.SECURITY_SQOS_PRESENT|windows.SECURITY_ANONYMOUS,
- 0)
+ 0, // mode
+ nil, // security attributes
+ fs.OPEN_EXISTING,
+ fs.FILE_FLAG_OVERLAPPED|fs.SECURITY_SQOS_PRESENT|fs.SECURITY_ANONYMOUS,
+ 0, // template file handle
+ )
+ h := syscall.Handle(wh)
if err == nil {
return h, nil
}
@@ -219,7 +222,7 @@ func DialPipeContext(ctx context.Context, path string) (net.Conn, error) {
func DialPipeAccess(ctx context.Context, path string, access uint32) (net.Conn, error) {
var err error
var h syscall.Handle
- h, err = tryDialPipe(ctx, &path, access)
+ h, err = tryDialPipe(ctx, &path, fs.AccessMask(access))
if err != nil {
return nil, err
}
@@ -279,6 +282,7 @@ func makeServerPipeHandle(path string, sd []byte, c *PipeConfig, first bool) (sy
}
defer localFree(ntPath.Buffer)
oa.ObjectName = &ntPath
+ oa.Attributes = windows.OBJ_CASE_INSENSITIVE
// The security descriptor is only needed for the first pipe.
if first {
diff --git a/tools/vendor/github.com/Microsoft/go-winio/tools/mkwinsyscall/doc.go b/tools/vendor/github.com/Microsoft/go-winio/tools/mkwinsyscall/doc.go
new file mode 100644
index 000000000..20b172ccf
--- /dev/null
+++ b/tools/vendor/github.com/Microsoft/go-winio/tools/mkwinsyscall/doc.go
@@ -0,0 +1,57 @@
+/*
+mkwinsyscall generates windows system call bodies
+
+It parses all files specified on command line containing function
+prototypes (like syscall_windows.go) and prints system call bodies
+to standard output.
+
+The prototypes are marked by lines beginning with "//sys" and read
+like func declarations if //sys is replaced by func, but:
+
+ - The parameter lists must give a name for each argument. This
+ includes return parameters.
+
+ - The parameter lists must give a type for each argument:
+ the (x, y, z int) shorthand is not allowed.
+
+ - If the return parameter is an error number, it must be named err.
+
+ - If go func name needs to be different from its winapi dll name,
+ the winapi name could be specified at the end, after "=" sign, like
+
+ //sys LoadLibrary(libname string) (handle uint32, err error) = LoadLibraryA
+
+ - Each function that returns err needs to supply a condition, that
+ return value of winapi will be tested against to detect failure.
+ This would set err to windows "last-error", otherwise it will be nil.
+ The value can be provided at end of //sys declaration, like
+
+ //sys LoadLibrary(libname string) (handle uint32, err error) [failretval==-1] = LoadLibraryA
+
+ and is [failretval==0] by default.
+
+ - If the function name ends in a "?", then the function not existing is non-
+ fatal, and an error will be returned instead of panicking.
+
+Usage:
+
+ mkwinsyscall [flags] [path ...]
+
+Flags
+
+ -output string
+ Output file name (standard output if omitted).
+ -sort
+ Sort DLL and function declarations (default true).
+ Intended to help transition from older versions of mkwinsyscall by making diffs
+ easier to read and understand.
+ -systemdll
+ Whether all DLLs should be loaded from the Windows system directory (default true).
+ -trace
+ Generate print statement after every syscall.
+ -utf16
+ Encode string arguments as UTF-16 for syscalls not ending in 'A' or 'W' (default true).
+ -winio
+ Import this package ("github.com/Microsoft/go-winio").
+*/
+package main
diff --git a/tools/vendor/github.com/Microsoft/go-winio/tools/mkwinsyscall/mkwinsyscall.go b/tools/vendor/github.com/Microsoft/go-winio/tools/mkwinsyscall/mkwinsyscall.go
new file mode 100644
index 000000000..20d9e3d27
--- /dev/null
+++ b/tools/vendor/github.com/Microsoft/go-winio/tools/mkwinsyscall/mkwinsyscall.go
@@ -0,0 +1,1059 @@
+//go:build windows
+
+// Copyright 2013 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package main
+
+import (
+ "bufio"
+ "bytes"
+ "errors"
+ "flag"
+ "fmt"
+ "go/format"
+ "go/parser"
+ "go/token"
+ "io"
+ "log"
+ "os"
+ "path/filepath"
+ "runtime"
+ "sort"
+ "strconv"
+ "strings"
+ "text/template"
+
+ "golang.org/x/sys/windows"
+)
+
+const (
+ pkgSyscall = "syscall"
+ pkgWindows = "windows"
+
+ // common types.
+
+ tBool = "bool"
+ tBoolPtr = "*bool"
+ tError = "error"
+ tString = "string"
+
+ // error variable names.
+
+ varErr = "err"
+ varErrNTStatus = "ntStatus"
+ varErrHR = "hr"
+)
+
+var (
+ filename = flag.String("output", "", "output file name (standard output if omitted)")
+ printTraceFlag = flag.Bool("trace", false, "generate print statement after every syscall")
+ systemDLL = flag.Bool("systemdll", true, "whether all DLLs should be loaded from the Windows system directory")
+ winio = flag.Bool("winio", false, `import this package ("github.com/Microsoft/go-winio")`)
+ utf16 = flag.Bool("utf16", true, "encode string arguments as UTF-16 for syscalls not ending in 'A' or 'W'")
+ sortdecls = flag.Bool("sort", true, "sort DLL and function declarations")
+)
+
+func trim(s string) string {
+ return strings.Trim(s, " \t")
+}
+
+func endsIn(s string, c byte) bool {
+ return len(s) >= 1 && s[len(s)-1] == c
+}
+
+var packageName string
+
+func packagename() string {
+ return packageName
+}
+
+func windowsdot() string {
+ if packageName == pkgWindows {
+ return ""
+ }
+ return pkgWindows + "."
+}
+
+func syscalldot() string {
+ if packageName == pkgSyscall {
+ return ""
+ }
+ return pkgSyscall + "."
+}
+
+// Param is function parameter.
+type Param struct {
+ Name string
+ Type string
+ fn *Fn
+ tmpVarIdx int
+}
+
+// tmpVar returns temp variable name that will be used to represent p during syscall.
+func (p *Param) tmpVar() string {
+ if p.tmpVarIdx < 0 {
+ p.tmpVarIdx = p.fn.curTmpVarIdx
+ p.fn.curTmpVarIdx++
+ }
+ return fmt.Sprintf("_p%d", p.tmpVarIdx)
+}
+
+// BoolTmpVarCode returns source code for bool temp variable.
+func (p *Param) BoolTmpVarCode() string {
+ const code = `var %[1]s uint32
+ if %[2]s {
+ %[1]s = 1
+ }`
+ return fmt.Sprintf(code, p.tmpVar(), p.Name)
+}
+
+// BoolPointerTmpVarCode returns source code for bool temp variable.
+func (p *Param) BoolPointerTmpVarCode() string {
+ const code = `var %[1]s uint32
+ if *%[2]s {
+ %[1]s = 1
+ }`
+ return fmt.Sprintf(code, p.tmpVar(), p.Name)
+}
+
+// SliceTmpVarCode returns source code for slice temp variable.
+func (p *Param) SliceTmpVarCode() string {
+ const code = `var %s *%s
+ if len(%s) > 0 {
+ %s = &%s[0]
+ }`
+ tmp := p.tmpVar()
+ return fmt.Sprintf(code, tmp, p.Type[2:], p.Name, tmp, p.Name)
+}
+
+// StringTmpVarCode returns source code for string temp variable.
+func (p *Param) StringTmpVarCode() string {
+ errvar := p.fn.Rets.ErrorVarName()
+ if errvar == "" {
+ errvar = "_"
+ }
+ tmp := p.tmpVar()
+ const code = `var %s %s
+ %s, %s = %s(%s)`
+ s := fmt.Sprintf(code, tmp, p.fn.StrconvType(), tmp, errvar, p.fn.StrconvFunc(), p.Name)
+ if errvar == "-" {
+ return s
+ }
+ const morecode = `
+ if %s != nil {
+ return
+ }`
+ return s + fmt.Sprintf(morecode, errvar)
+}
+
+// TmpVarCode returns source code for temp variable.
+func (p *Param) TmpVarCode() string {
+ switch {
+ case p.Type == tBool:
+ return p.BoolTmpVarCode()
+ case p.Type == tBoolPtr:
+ return p.BoolPointerTmpVarCode()
+ case strings.HasPrefix(p.Type, "[]"):
+ return p.SliceTmpVarCode()
+ default:
+ return ""
+ }
+}
+
+// TmpVarReadbackCode returns source code for reading back the temp variable into the original variable.
+func (p *Param) TmpVarReadbackCode() string {
+ switch {
+ case p.Type == tBoolPtr:
+ return fmt.Sprintf("*%s = %s != 0", p.Name, p.tmpVar())
+ default:
+ return ""
+ }
+}
+
+// TmpVarHelperCode returns source code for helper's temp variable.
+func (p *Param) TmpVarHelperCode() string {
+ if p.Type != "string" {
+ return ""
+ }
+ return p.StringTmpVarCode()
+}
+
+// SyscallArgList returns source code fragments representing p parameter
+// in syscall. Slices are translated into 2 syscall parameters: pointer to
+// the first element and length.
+func (p *Param) SyscallArgList() []string {
+ t := p.HelperType()
+ var s string
+ switch {
+ case t == tBoolPtr:
+ s = fmt.Sprintf("unsafe.Pointer(&%s)", p.tmpVar())
+ case t[0] == '*':
+ s = fmt.Sprintf("unsafe.Pointer(%s)", p.Name)
+ case t == tBool:
+ s = p.tmpVar()
+ case strings.HasPrefix(t, "[]"):
+ return []string{
+ fmt.Sprintf("uintptr(unsafe.Pointer(%s))", p.tmpVar()),
+ fmt.Sprintf("uintptr(len(%s))", p.Name),
+ }
+ default:
+ s = p.Name
+ }
+ return []string{fmt.Sprintf("uintptr(%s)", s)}
+}
+
+// IsError determines if p parameter is used to return error.
+func (p *Param) IsError() bool {
+ return p.Name == varErr && p.Type == tError
+}
+
+// HelperType returns type of parameter p used in helper function.
+func (p *Param) HelperType() string {
+ if p.Type == tString {
+ return p.fn.StrconvType()
+ }
+ return p.Type
+}
+
+// join concatenates parameters ps into a string with sep separator.
+// Each parameter is converted into string by applying fn to it
+// before conversion.
+func join(ps []*Param, fn func(*Param) string, sep string) string {
+ if len(ps) == 0 {
+ return ""
+ }
+ a := make([]string, 0)
+ for _, p := range ps {
+ a = append(a, fn(p))
+ }
+ return strings.Join(a, sep)
+}
+
+// Rets describes function return parameters.
+type Rets struct {
+ Name string
+ Type string
+ ReturnsError bool
+ FailCond string
+ fnMaybeAbsent bool
+}
+
+// ErrorVarName returns error variable name for r.
+func (r *Rets) ErrorVarName() string {
+ if r.ReturnsError {
+ return varErr
+ }
+ if r.Type == tError {
+ return r.Name
+ }
+ return ""
+}
+
+// ToParams converts r into slice of *Param.
+func (r *Rets) ToParams() []*Param {
+ ps := make([]*Param, 0)
+ if len(r.Name) > 0 {
+ ps = append(ps, &Param{Name: r.Name, Type: r.Type})
+ }
+ if r.ReturnsError {
+ ps = append(ps, &Param{Name: varErr, Type: tError})
+ }
+ return ps
+}
+
+// List returns source code of syscall return parameters.
+func (r *Rets) List() string {
+ s := join(r.ToParams(), func(p *Param) string { return p.Name + " " + p.Type }, ", ")
+ if len(s) > 0 {
+ s = "(" + s + ")"
+ } else if r.fnMaybeAbsent {
+ s = "(err error)"
+ }
+ return s
+}
+
+// PrintList returns source code of trace printing part correspondent
+// to syscall return values.
+func (r *Rets) PrintList() string {
+ return join(r.ToParams(), func(p *Param) string { return fmt.Sprintf(`"%s=", %s, `, p.Name, p.Name) }, `", ", `)
+}
+
+// SetReturnValuesCode returns source code that accepts syscall return values.
+func (r *Rets) SetReturnValuesCode() string {
+ if r.Name == "" && !r.ReturnsError {
+ return ""
+ }
+ retvar := "r0"
+ if r.Name == "" {
+ retvar = "r1"
+ }
+ errvar := "_"
+ if r.ReturnsError {
+ errvar = "e1"
+ }
+ return fmt.Sprintf("%s, _, %s := ", retvar, errvar)
+}
+
+func (r *Rets) useLongHandleErrorCode(retvar string) string {
+ const code = `if %s {
+ err = errnoErr(e1)
+ }`
+ cond := retvar + " == 0"
+ if r.FailCond != "" {
+ cond = strings.Replace(r.FailCond, "failretval", retvar, 1)
+ }
+ return fmt.Sprintf(code, cond)
+}
+
+// SetErrorCode returns source code that sets return parameters.
+func (r *Rets) SetErrorCode() string {
+ const code = `if r0 != 0 {
+ %s = %sErrno(r0)
+ }`
+ const ntStatus = `if r0 != 0 {
+ %s = %sNTStatus(r0)
+ }`
+ const hrCode = `if int32(r0) < 0 {
+ if r0&0x1fff0000 == 0x00070000 {
+ r0 &= 0xffff
+ }
+ %s = %sErrno(r0)
+ }`
+
+ if r.Name == "" && !r.ReturnsError {
+ return ""
+ }
+ if r.Name == "" {
+ return r.useLongHandleErrorCode("r1")
+ }
+ if r.Type == tError {
+ switch r.Name {
+ case varErrNTStatus, strings.ToLower(varErrNTStatus): // allow ntstatus to work
+ return fmt.Sprintf(ntStatus, r.Name, windowsdot())
+ case varErrHR:
+ return fmt.Sprintf(hrCode, r.Name, syscalldot())
+ default:
+ return fmt.Sprintf(code, r.Name, syscalldot())
+ }
+ }
+
+ var s string
+ switch {
+ case r.Type[0] == '*':
+ s = fmt.Sprintf("%s = (%s)(unsafe.Pointer(r0))", r.Name, r.Type)
+ case r.Type == tBool:
+ s = fmt.Sprintf("%s = r0 != 0", r.Name)
+ default:
+ s = fmt.Sprintf("%s = %s(r0)", r.Name, r.Type)
+ }
+ if !r.ReturnsError {
+ return s
+ }
+ return s + "\n\t" + r.useLongHandleErrorCode(r.Name)
+}
+
+// Fn describes syscall function.
+type Fn struct {
+ Name string
+ Params []*Param
+ Rets *Rets
+ PrintTrace bool
+ dllname string
+ dllfuncname string
+ src string
+ // TODO: get rid of this field and just use parameter index instead
+ curTmpVarIdx int // insure tmp variables have uniq names
+}
+
+// extractParams parses s to extract function parameters.
+func extractParams(s string, f *Fn) ([]*Param, error) {
+ s = trim(s)
+ if s == "" {
+ return nil, nil
+ }
+ a := strings.Split(s, ",")
+ ps := make([]*Param, len(a))
+ for i := range ps {
+ s2 := trim(a[i])
+ b := strings.Split(s2, " ")
+ if len(b) != 2 {
+ b = strings.Split(s2, "\t")
+ if len(b) != 2 {
+ return nil, errors.New("Could not extract function parameter from \"" + s2 + "\"")
+ }
+ }
+ ps[i] = &Param{
+ Name: trim(b[0]),
+ Type: trim(b[1]),
+ fn: f,
+ tmpVarIdx: -1,
+ }
+ }
+ return ps, nil
+}
+
+// extractSection extracts text out of string s starting after start
+// and ending just before end. found return value will indicate success,
+// and prefix, body and suffix will contain correspondent parts of string s.
+func extractSection(s string, start, end rune) (prefix, body, suffix string, found bool) {
+ s = trim(s)
+ if strings.HasPrefix(s, string(start)) {
+ // no prefix
+ body = s[1:]
+ } else {
+ a := strings.SplitN(s, string(start), 2)
+ if len(a) != 2 {
+ return "", "", s, false
+ }
+ prefix = a[0]
+ body = a[1]
+ }
+ a := strings.SplitN(body, string(end), 2)
+ if len(a) != 2 {
+ return "", "", "", false
+ }
+ return prefix, a[0], a[1], true
+}
+
+// newFn parses string s and return created function Fn.
+func newFn(s string) (*Fn, error) {
+ s = trim(s)
+ f := &Fn{
+ Rets: &Rets{},
+ src: s,
+ PrintTrace: *printTraceFlag,
+ }
+ // function name and args
+ prefix, body, s, found := extractSection(s, '(', ')')
+ if !found || prefix == "" {
+ return nil, errors.New("Could not extract function name and parameters from \"" + f.src + "\"")
+ }
+ f.Name = prefix
+ var err error
+ f.Params, err = extractParams(body, f)
+ if err != nil {
+ return nil, err
+ }
+ // return values
+ _, body, s, found = extractSection(s, '(', ')')
+ if found {
+ r, err := extractParams(body, f)
+ if err != nil {
+ return nil, err
+ }
+ switch len(r) {
+ case 0:
+ case 1:
+ if r[0].IsError() {
+ f.Rets.ReturnsError = true
+ } else {
+ f.Rets.Name = r[0].Name
+ f.Rets.Type = r[0].Type
+ }
+ case 2:
+ if !r[1].IsError() {
+ return nil, errors.New("Only last windows error is allowed as second return value in \"" + f.src + "\"")
+ }
+ f.Rets.ReturnsError = true
+ f.Rets.Name = r[0].Name
+ f.Rets.Type = r[0].Type
+ default:
+ return nil, errors.New("Too many return values in \"" + f.src + "\"")
+ }
+ }
+ // fail condition
+ _, body, s, found = extractSection(s, '[', ']')
+ if found {
+ f.Rets.FailCond = body
+ }
+ // dll and dll function names
+ s = trim(s)
+ if s == "" {
+ return f, nil
+ }
+ if !strings.HasPrefix(s, "=") {
+ return nil, errors.New("Could not extract dll name from \"" + f.src + "\"")
+ }
+ s = trim(s[1:])
+ if i := strings.LastIndex(s, "."); i >= 0 {
+ f.dllname = s[:i]
+ f.dllfuncname = s[i+1:]
+ } else {
+ f.dllfuncname = s
+ }
+ if f.dllfuncname == "" {
+ return nil, fmt.Errorf("function name is not specified in %q", s)
+ }
+ if n := f.dllfuncname; endsIn(n, '?') {
+ f.dllfuncname = n[:len(n)-1]
+ f.Rets.fnMaybeAbsent = true
+ }
+ return f, nil
+}
+
+// DLLName returns DLL name for function f.
+func (f *Fn) DLLName() string {
+ if f.dllname == "" {
+ return "kernel32"
+ }
+ return f.dllname
+}
+
+// DLLVar returns a valid Go identifier that represents DLLName.
+func (f *Fn) DLLVar() string {
+ id := strings.Map(func(r rune) rune {
+ switch r {
+ case '.', '-':
+ return '_'
+ default:
+ return r
+ }
+ }, f.DLLName())
+ if !token.IsIdentifier(id) {
+ panic(fmt.Errorf("could not create Go identifier for DLLName %q", f.DLLName()))
+ }
+ return id
+}
+
+// DLLFuncName returns DLL function name for function f.
+func (f *Fn) DLLFuncName() string {
+ if f.dllfuncname == "" {
+ return f.Name
+ }
+ return f.dllfuncname
+}
+
+// ParamList returns source code for function f parameters.
+func (f *Fn) ParamList() string {
+ return join(f.Params, func(p *Param) string { return p.Name + " " + p.Type }, ", ")
+}
+
+// HelperParamList returns source code for helper function f parameters.
+func (f *Fn) HelperParamList() string {
+ return join(f.Params, func(p *Param) string { return p.Name + " " + p.HelperType() }, ", ")
+}
+
+// ParamPrintList returns source code of trace printing part correspondent
+// to syscall input parameters.
+func (f *Fn) ParamPrintList() string {
+ return join(f.Params, func(p *Param) string { return fmt.Sprintf(`"%s=", %s, `, p.Name, p.Name) }, `", ", `)
+}
+
+// ParamCount return number of syscall parameters for function f.
+func (f *Fn) ParamCount() int {
+ n := 0
+ for _, p := range f.Params {
+ n += len(p.SyscallArgList())
+ }
+ return n
+}
+
+// SyscallParamCount determines which version of Syscall/Syscall6/Syscall9/...
+// to use. It returns parameter count for correspondent SyscallX function.
+func (f *Fn) SyscallParamCount() int {
+ n := f.ParamCount()
+ switch {
+ case n <= 3:
+ return 3
+ case n <= 6:
+ return 6
+ case n <= 9:
+ return 9
+ case n <= 12:
+ return 12
+ case n <= 15:
+ return 15
+ default:
+ panic("too many arguments to system call")
+ }
+}
+
+// Syscall determines which SyscallX function to use for function f.
+func (f *Fn) Syscall() string {
+ c := f.SyscallParamCount()
+ if c == 3 {
+ return syscalldot() + "Syscall"
+ }
+ return syscalldot() + "Syscall" + strconv.Itoa(c)
+}
+
+// SyscallParamList returns source code for SyscallX parameters for function f.
+func (f *Fn) SyscallParamList() string {
+ a := make([]string, 0)
+ for _, p := range f.Params {
+ a = append(a, p.SyscallArgList()...)
+ }
+ for len(a) < f.SyscallParamCount() {
+ a = append(a, "0")
+ }
+ return strings.Join(a, ", ")
+}
+
+// HelperCallParamList returns source code of call into function f helper.
+func (f *Fn) HelperCallParamList() string {
+ a := make([]string, 0, len(f.Params))
+ for _, p := range f.Params {
+ s := p.Name
+ if p.Type == tString {
+ s = p.tmpVar()
+ }
+ a = append(a, s)
+ }
+ return strings.Join(a, ", ")
+}
+
+// MaybeAbsent returns source code for handling functions that are possibly unavailable.
+func (f *Fn) MaybeAbsent() string {
+ if !f.Rets.fnMaybeAbsent {
+ return ""
+ }
+ const code = `%[1]s = proc%[2]s.Find()
+ if %[1]s != nil {
+ return
+ }`
+ errorVar := f.Rets.ErrorVarName()
+ if errorVar == "" {
+ errorVar = varErr
+ }
+ return fmt.Sprintf(code, errorVar, f.DLLFuncName())
+}
+
+// IsUTF16 is true, if f is W (UTF-16) function and false for all A (ASCII) functions.
+// Functions ending in neither will default to UTF-16, unless the `-utf16` flag is set
+// to `false`.
+func (f *Fn) IsUTF16() bool {
+ s := f.DLLFuncName()
+ return endsIn(s, 'W') || (*utf16 && !endsIn(s, 'A'))
+}
+
+// StrconvFunc returns name of Go string to OS string function for f.
+func (f *Fn) StrconvFunc() string {
+ if f.IsUTF16() {
+ return syscalldot() + "UTF16PtrFromString"
+ }
+ return syscalldot() + "BytePtrFromString"
+}
+
+// StrconvType returns Go type name used for OS string for f.
+func (f *Fn) StrconvType() string {
+ if f.IsUTF16() {
+ return "*uint16"
+ }
+ return "*byte"
+}
+
+// HasStringParam is true, if f has at least one string parameter.
+// Otherwise it is false.
+func (f *Fn) HasStringParam() bool {
+ for _, p := range f.Params {
+ if p.Type == tString {
+ return true
+ }
+ }
+ return false
+}
+
+// HelperName returns name of function f helper.
+func (f *Fn) HelperName() string {
+ if !f.HasStringParam() {
+ return f.Name
+ }
+ return "_" + f.Name
+}
+
+// DLL is a DLL's filename and a string that is valid in a Go identifier that should be used when
+// naming a variable that refers to the DLL.
+type DLL struct {
+ Name string
+ Var string
+}
+
+// Source files and functions.
+type Source struct {
+ Funcs []*Fn
+ DLLFuncNames []*Fn
+ Files []string
+ StdLibImports []string
+ ExternalImports []string
+}
+
+func (src *Source) Import(pkg string) {
+ src.StdLibImports = append(src.StdLibImports, pkg)
+ sort.Strings(src.StdLibImports)
+}
+
+func (src *Source) ExternalImport(pkg string) {
+ src.ExternalImports = append(src.ExternalImports, pkg)
+ sort.Strings(src.ExternalImports)
+}
+
+// ParseFiles parses files listed in fs and extracts all syscall
+// functions listed in sys comments. It returns source files
+// and functions collection *Source if successful.
+func ParseFiles(fs []string) (*Source, error) {
+ src := &Source{
+ Funcs: make([]*Fn, 0),
+ Files: make([]string, 0),
+ StdLibImports: []string{
+ "unsafe",
+ },
+ ExternalImports: make([]string, 0),
+ }
+ for _, file := range fs {
+ if err := src.ParseFile(file); err != nil {
+ return nil, err
+ }
+ }
+ src.DLLFuncNames = make([]*Fn, 0, len(src.Funcs))
+ uniq := make(map[string]bool, len(src.Funcs))
+ for _, fn := range src.Funcs {
+ name := fn.DLLFuncName()
+ if !uniq[name] {
+ src.DLLFuncNames = append(src.DLLFuncNames, fn)
+ uniq[name] = true
+ }
+ }
+ return src, nil
+}
+
+// DLLs return dll names for a source set src.
+func (src *Source) DLLs() []DLL {
+ uniq := make(map[string]bool)
+ r := make([]DLL, 0)
+ for _, f := range src.Funcs {
+ id := f.DLLVar()
+ if _, found := uniq[id]; !found {
+ uniq[id] = true
+ r = append(r, DLL{f.DLLName(), id})
+ }
+ }
+ if *sortdecls {
+ sort.Slice(r, func(i, j int) bool {
+ return r[i].Var < r[j].Var
+ })
+ }
+ return r
+}
+
+// ParseFile adds additional file (or files, if path is a glob pattern) path to a source set src.
+func (src *Source) ParseFile(path string) error {
+ file, err := os.Open(path)
+ if err == nil {
+ defer file.Close()
+ return src.parseFile(file)
+ } else if !(errors.Is(err, os.ErrNotExist) || errors.Is(err, windows.ERROR_INVALID_NAME)) {
+ return err
+ }
+
+ paths, err := filepath.Glob(path)
+ if err != nil {
+ return err
+ }
+
+ for _, path := range paths {
+ file, err := os.Open(path)
+ if err != nil {
+ return err
+ }
+ err = src.parseFile(file)
+ file.Close()
+ if err != nil {
+ return err
+ }
+ }
+
+ return nil
+}
+
+func (src *Source) parseFile(file *os.File) error {
+ s := bufio.NewScanner(file)
+ for s.Scan() {
+ t := trim(s.Text())
+ if len(t) < 7 {
+ continue
+ }
+ if !strings.HasPrefix(t, "//sys") {
+ continue
+ }
+ t = t[5:]
+ if !(t[0] == ' ' || t[0] == '\t') {
+ continue
+ }
+ f, err := newFn(t[1:])
+ if err != nil {
+ return err
+ }
+ src.Funcs = append(src.Funcs, f)
+ }
+ if err := s.Err(); err != nil {
+ return err
+ }
+ src.Files = append(src.Files, file.Name())
+ if *sortdecls {
+ sort.Slice(src.Funcs, func(i, j int) bool {
+ fi, fj := src.Funcs[i], src.Funcs[j]
+ if fi.DLLName() == fj.DLLName() {
+ return fi.DLLFuncName() < fj.DLLFuncName()
+ }
+ return fi.DLLName() < fj.DLLName()
+ })
+ }
+
+ // get package name
+ fset := token.NewFileSet()
+ _, err := file.Seek(0, 0)
+ if err != nil {
+ return err
+ }
+ pkg, err := parser.ParseFile(fset, "", file, parser.PackageClauseOnly)
+ if err != nil {
+ return err
+ }
+ packageName = pkg.Name.Name
+
+ return nil
+}
+
+// IsStdRepo reports whether src is part of standard library.
+func (src *Source) IsStdRepo() (bool, error) {
+ if len(src.Files) == 0 {
+ return false, errors.New("no input files provided")
+ }
+ abspath, err := filepath.Abs(src.Files[0])
+ if err != nil {
+ return false, err
+ }
+ goroot := runtime.GOROOT()
+ if runtime.GOOS == "windows" {
+ abspath = strings.ToLower(abspath)
+ goroot = strings.ToLower(goroot)
+ }
+ sep := string(os.PathSeparator)
+ if !strings.HasSuffix(goroot, sep) {
+ goroot += sep
+ }
+ return strings.HasPrefix(abspath, goroot), nil
+}
+
+// Generate output source file from a source set src.
+func (src *Source) Generate(w io.Writer) error {
+ const (
+ pkgStd = iota // any package in std library
+ pkgXSysWindows // x/sys/windows package
+ pkgOther
+ )
+ isStdRepo, err := src.IsStdRepo()
+ if err != nil {
+ return err
+ }
+ var pkgtype int
+ switch {
+ case isStdRepo:
+ pkgtype = pkgStd
+ case packageName == "windows":
+ // TODO: this needs better logic than just using package name
+ pkgtype = pkgXSysWindows
+ default:
+ pkgtype = pkgOther
+ }
+ if *systemDLL {
+ switch pkgtype {
+ case pkgStd:
+ src.Import("internal/syscall/windows/sysdll")
+ case pkgXSysWindows:
+ default:
+ src.ExternalImport("golang.org/x/sys/windows")
+ }
+ }
+ if *winio {
+ src.ExternalImport("github.com/Microsoft/go-winio")
+ }
+ if packageName != "syscall" {
+ src.Import("syscall")
+ }
+ funcMap := template.FuncMap{
+ "packagename": packagename,
+ "syscalldot": syscalldot,
+ "newlazydll": func(dll string) string {
+ arg := "\"" + dll + ".dll\""
+ if !*systemDLL {
+ return syscalldot() + "NewLazyDLL(" + arg + ")"
+ }
+ if strings.HasPrefix(dll, "api_") || strings.HasPrefix(dll, "ext_") {
+ arg = strings.Replace(arg, "_", "-", -1)
+ }
+ switch pkgtype {
+ case pkgStd:
+ return syscalldot() + "NewLazyDLL(sysdll.Add(" + arg + "))"
+ case pkgXSysWindows:
+ return "NewLazySystemDLL(" + arg + ")"
+ default:
+ return "windows.NewLazySystemDLL(" + arg + ")"
+ }
+ },
+ }
+ t := template.Must(template.New("main").Funcs(funcMap).Parse(srcTemplate))
+ err = t.Execute(w, src)
+ if err != nil {
+ return errors.New("Failed to execute template: " + err.Error())
+ }
+ return nil
+}
+
+func writeTempSourceFile(data []byte) (string, error) {
+ f, err := os.CreateTemp("", "mkwinsyscall-generated-*.go")
+ if err != nil {
+ return "", err
+ }
+ _, err = f.Write(data)
+ if closeErr := f.Close(); err == nil {
+ err = closeErr
+ }
+ if err != nil {
+ os.Remove(f.Name()) // best effort
+ return "", err
+ }
+ return f.Name(), nil
+}
+
+func usage() {
+ fmt.Fprintf(os.Stderr, "usage: mkwinsyscall [flags] [path ...]\n")
+ flag.PrintDefaults()
+ os.Exit(1)
+}
+
+func main() {
+ flag.Usage = usage
+ flag.Parse()
+ if len(flag.Args()) <= 0 {
+ fmt.Fprintf(os.Stderr, "no files to parse provided\n")
+ usage()
+ }
+
+ src, err := ParseFiles(flag.Args())
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ var buf bytes.Buffer
+ if err := src.Generate(&buf); err != nil {
+ log.Fatal(err)
+ }
+
+ data, err := format.Source(buf.Bytes())
+ if err != nil {
+ log.Printf("failed to format source: %v", err)
+ f, err := writeTempSourceFile(buf.Bytes())
+ if err != nil {
+ log.Fatalf("failed to write unformatted source to file: %v", err)
+ }
+ log.Fatalf("for diagnosis, wrote unformatted source to %v", f)
+ }
+ if *filename == "" {
+ _, err = os.Stdout.Write(data)
+ } else {
+ //nolint:gosec // G306: code file, no need for wants 0600
+ err = os.WriteFile(*filename, data, 0644)
+ }
+ if err != nil {
+ log.Fatal(err)
+ }
+}
+
+// TODO: use println instead to print in the following template
+
+const srcTemplate = `
+{{define "main"}} //go:build windows
+
+// Code generated by 'go generate' using "github.com/Microsoft/go-winio/tools/mkwinsyscall"; DO NOT EDIT.
+
+package {{packagename}}
+
+import (
+{{range .StdLibImports}}"{{.}}"
+{{end}}
+
+{{range .ExternalImports}}"{{.}}"
+{{end}}
+)
+
+var _ unsafe.Pointer
+
+// Do the interface allocations only once for common
+// Errno values.
+const (
+ errnoERROR_IO_PENDING = 997
+)
+
+var (
+ errERROR_IO_PENDING error = {{syscalldot}}Errno(errnoERROR_IO_PENDING)
+ errERROR_EINVAL error = {{syscalldot}}EINVAL
+)
+
+// errnoErr returns common boxed Errno values, to prevent
+// allocations at runtime.
+func errnoErr(e {{syscalldot}}Errno) error {
+ switch e {
+ case 0:
+ return errERROR_EINVAL
+ case errnoERROR_IO_PENDING:
+ return errERROR_IO_PENDING
+ }
+ // TODO: add more here, after collecting data on the common
+ // error values see on Windows. (perhaps when running
+ // all.bat?)
+ return e
+}
+
+var (
+{{template "dlls" .}}
+{{template "funcnames" .}})
+{{range .Funcs}}{{if .HasStringParam}}{{template "helperbody" .}}{{end}}{{template "funcbody" .}}{{end}}
+{{end}}
+
+{{/* help functions */}}
+
+{{define "dlls"}}{{range .DLLs}} mod{{.Var}} = {{newlazydll .Name}}
+{{end}}{{end}}
+
+{{define "funcnames"}}{{range .DLLFuncNames}} proc{{.DLLFuncName}} = mod{{.DLLVar}}.NewProc("{{.DLLFuncName}}")
+{{end}}{{end}}
+
+{{define "helperbody"}}
+func {{.Name}}({{.ParamList}}) {{template "results" .}}{
+{{template "helpertmpvars" .}} return {{.HelperName}}({{.HelperCallParamList}})
+}
+{{end}}
+
+{{define "funcbody"}}
+func {{.HelperName}}({{.HelperParamList}}) {{template "results" .}}{
+{{template "maybeabsent" .}} {{template "tmpvars" .}} {{template "syscall" .}} {{template "tmpvarsreadback" .}}
+{{template "seterror" .}}{{template "printtrace" .}} return
+}
+{{end}}
+
+{{define "helpertmpvars"}}{{range .Params}}{{if .TmpVarHelperCode}} {{.TmpVarHelperCode}}
+{{end}}{{end}}{{end}}
+
+{{define "maybeabsent"}}{{if .MaybeAbsent}}{{.MaybeAbsent}}
+{{end}}{{end}}
+
+{{define "tmpvars"}}{{range .Params}}{{if .TmpVarCode}} {{.TmpVarCode}}
+{{end}}{{end}}{{end}}
+
+{{define "results"}}{{if .Rets.List}}{{.Rets.List}} {{end}}{{end}}
+
+{{define "syscall"}}{{.Rets.SetReturnValuesCode}}{{.Syscall}}(proc{{.DLLFuncName}}.Addr(), {{.ParamCount}}, {{.SyscallParamList}}){{end}}
+
+{{define "tmpvarsreadback"}}{{range .Params}}{{if .TmpVarReadbackCode}}
+{{.TmpVarReadbackCode}}{{end}}{{end}}{{end}}
+
+{{define "seterror"}}{{if .Rets.SetErrorCode}} {{.Rets.SetErrorCode}}
+{{end}}{{end}}
+
+{{define "printtrace"}}{{if .PrintTrace}} print("SYSCALL: {{.Name}}(", {{.ParamPrintList}}") (", {{.Rets.PrintList}}")\n")
+{{end}}{{end}}
+
+`
diff --git a/tools/vendor/github.com/Microsoft/go-winio/zsyscall_windows.go b/tools/vendor/github.com/Microsoft/go-winio/zsyscall_windows.go
index 83f45a135..469b16f63 100644
--- a/tools/vendor/github.com/Microsoft/go-winio/zsyscall_windows.go
+++ b/tools/vendor/github.com/Microsoft/go-winio/zsyscall_windows.go
@@ -63,7 +63,6 @@ var (
procBackupWrite = modkernel32.NewProc("BackupWrite")
procCancelIoEx = modkernel32.NewProc("CancelIoEx")
procConnectNamedPipe = modkernel32.NewProc("ConnectNamedPipe")
- procCreateFileW = modkernel32.NewProc("CreateFileW")
procCreateIoCompletionPort = modkernel32.NewProc("CreateIoCompletionPort")
procCreateNamedPipeW = modkernel32.NewProc("CreateNamedPipeW")
procGetCurrentThread = modkernel32.NewProc("GetCurrentThread")
@@ -305,24 +304,6 @@ func connectNamedPipe(pipe syscall.Handle, o *syscall.Overlapped) (err error) {
return
}
-func createFile(name string, access uint32, mode uint32, sa *syscall.SecurityAttributes, createmode uint32, attrs uint32, templatefile syscall.Handle) (handle syscall.Handle, err error) {
- var _p0 *uint16
- _p0, err = syscall.UTF16PtrFromString(name)
- if err != nil {
- return
- }
- return _createFile(_p0, access, mode, sa, createmode, attrs, templatefile)
-}
-
-func _createFile(name *uint16, access uint32, mode uint32, sa *syscall.SecurityAttributes, createmode uint32, attrs uint32, templatefile syscall.Handle) (handle syscall.Handle, err error) {
- r0, _, e1 := syscall.Syscall9(procCreateFileW.Addr(), 7, uintptr(unsafe.Pointer(name)), uintptr(access), uintptr(mode), uintptr(unsafe.Pointer(sa)), uintptr(createmode), uintptr(attrs), uintptr(templatefile), 0, 0)
- handle = syscall.Handle(r0)
- if handle == syscall.InvalidHandle {
- err = errnoErr(e1)
- }
- return
-}
-
func createIoCompletionPort(file syscall.Handle, port syscall.Handle, key uintptr, threadCount uint32) (newport syscall.Handle, err error) {
r0, _, e1 := syscall.Syscall6(procCreateIoCompletionPort.Addr(), 4, uintptr(file), uintptr(port), uintptr(key), uintptr(threadCount), 0, 0)
newport = syscall.Handle(r0)
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/.gitattributes b/tools/vendor/github.com/Microsoft/hcsshim/.gitattributes
index 94f480de9..dd0d09faa 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/.gitattributes
+++ b/tools/vendor/github.com/Microsoft/hcsshim/.gitattributes
@@ -1 +1,3 @@
-* text=auto eol=lf
\ No newline at end of file
+* text=auto eol=lf
+vendor/** -text
+test/vendor/** -text
\ No newline at end of file
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/.gitignore b/tools/vendor/github.com/Microsoft/hcsshim/.gitignore
index 54ed6f06c..785972e03 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/.gitignore
+++ b/tools/vendor/github.com/Microsoft/hcsshim/.gitignore
@@ -6,6 +6,7 @@
# Ignore vscode setting files
.vscode/
+.idea/
# Test binary, build with `go test -c`
*.test
@@ -23,16 +24,26 @@ service/pkg/
*.img
*.vhd
*.tar.gz
+*.tar
# Make stuff
.rootfs-done
bin/*
rootfs/*
+rootfs-conv/*
*.o
/build/
deps/*
out/*
-.idea/
-.vscode/
\ No newline at end of file
+# test results
+test/results
+
+# go workspace files
+go.work
+go.work.sum
+
+# keys and related artifacts
+*.pem
+*.cose
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/.golangci.yml b/tools/vendor/github.com/Microsoft/hcsshim/.golangci.yml
index 2400e7f1e..fdc2a385b 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/.golangci.yml
+++ b/tools/vendor/github.com/Microsoft/hcsshim/.golangci.yml
@@ -1,23 +1,51 @@
run:
timeout: 8m
+ tests: true
+ build-tags:
+ - admin
+ - functional
+ - integration
+ skip-dirs:
+ # paths are relative to module root
+ - cri-containerd/test-images
linters:
enable:
- - stylecheck
+ # defaults:
+ # - errcheck
+ # - gosimple
+ # - govet
+ # - ineffassign
+ # - staticcheck
+ # - typecheck
+ # - unused
+
+ - gofmt # whether code was gofmt-ed
+ - nolintlint # ill-formed or insufficient nolint directives
+ - stylecheck # golint replacement
+ - thelper # test helpers without t.Helper()
linters-settings:
stylecheck:
# https://staticcheck.io/docs/checks
checks: ["all"]
-
issues:
- # This repo has a LOT of generated schema files, operating system bindings, and other things that ST1003 from stylecheck won't like
- # (screaming case Windows api constants for example). There's also some structs that we *could* change the initialisms to be Go
- # friendly (Id -> ID) but they're exported and it would be a breaking change. This makes it so that most new code, code that isn't
- # supposed to be a pretty faithful mapping to an OS call/constants, or non-generated code still checks if we're following idioms,
- # while ignoring the things that are just noise or would be more of a hassle than it'd be worth to change.
exclude-rules:
+ # path is relative to module root, which is ./test/
+ - path: cri-containerd
+ linters:
+ - stylecheck
+ text: "^ST1003: should not use underscores in package names$"
+ source: "^package cri_containerd$"
+
+ # This repo has a LOT of generated schema files, operating system bindings, and other
+ # things that ST1003 from stylecheck won't like (screaming case Windows api constants for example).
+ # There's also some structs that we *could* change the initialisms to be Go friendly
+ # (Id -> ID) but they're exported and it would be a breaking change.
+ # This makes it so that most new code, code that isn't supposed to be a pretty faithful
+ # mapping to an OS call/constants, or non-generated code still checks if we're following idioms,
+ # while ignoring the things that are just noise or would be more of a hassle than it'd be worth to change.
- path: layer.go
linters:
- stylecheck
@@ -28,11 +56,21 @@ issues:
- stylecheck
Text: "ST1003:"
- - path: internal\\hcs\\schema2\\
+ - path: cmd\\ncproxy\\nodenetsvc\\
+ linters:
+ - stylecheck
+ Text: "ST1003:"
+
+ - path: cmd\\ncproxy_mock\\
linters:
- stylecheck
Text: "ST1003:"
+ - path: internal\\hcs\\schema2\\
+ linters:
+ - stylecheck
+ - gofmt
+
- path: internal\\wclayer\\
linters:
- stylecheck
@@ -96,4 +134,4 @@ issues:
- path: internal\\hcserror\\
linters:
- stylecheck
- Text: "ST1003:"
\ No newline at end of file
+ Text: "ST1003:"
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/Makefile b/tools/vendor/github.com/Microsoft/hcsshim/Makefile
index a8f5516cd..742c76d84 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/Makefile
+++ b/tools/vendor/github.com/Microsoft/hcsshim/Makefile
@@ -1,4 +1,5 @@
BASE:=base.tar.gz
+DEV_BUILD:=0
GO:=go
GO_FLAGS:=-ldflags "-s -w" # strip Go binaries
@@ -12,16 +13,31 @@ GO_FLAGS_EXTRA:=
ifeq "$(GOMODVENDOR)" "1"
GO_FLAGS_EXTRA += -mod=vendor
endif
+GO_BUILD_TAGS:=
+ifneq ($(strip $(GO_BUILD_TAGS)),)
+GO_FLAGS_EXTRA += -tags="$(GO_BUILD_TAGS)"
+endif
GO_BUILD:=CGO_ENABLED=$(CGO_ENABLED) $(GO) build $(GO_FLAGS) $(GO_FLAGS_EXTRA)
SRCROOT=$(dir $(abspath $(firstword $(MAKEFILE_LIST))))
+# additional directories to search for rule prerequisites and targets
+VPATH=$(SRCROOT)
+
+DELTA_TARGET=out/delta.tar.gz
+
+ifeq "$(DEV_BUILD)" "1"
+DELTA_TARGET=out/delta-dev.tar.gz
+endif
# The link aliases for gcstools
GCS_TOOLS=\
- generichook
+ generichook \
+ install-drivers
.PHONY: all always rootfs test
+.DEFAULT_GOAL := all
+
all: out/initrd.img out/rootfs.tar.gz
clean:
@@ -29,21 +45,13 @@ clean:
rm -rf bin deps rootfs out
test:
- cd $(SRCROOT) && go test -v ./internal/guest/...
+ cd $(SRCROOT) && $(GO) test -v ./internal/guest/...
-out/delta.tar.gz: bin/init bin/vsockexec bin/cmd/gcs bin/cmd/gcstools Makefile
- @mkdir -p out
- rm -rf rootfs
- mkdir -p rootfs/bin/
- cp bin/init rootfs/
- cp bin/vsockexec rootfs/bin/
- cp bin/cmd/gcs rootfs/bin/
- cp bin/cmd/gcstools rootfs/bin/
- for tool in $(GCS_TOOLS); do ln -s gcstools rootfs/bin/$$tool; done
- git -C $(SRCROOT) rev-parse HEAD > rootfs/gcs.commit && \
- git -C $(SRCROOT) rev-parse --abbrev-ref HEAD > rootfs/gcs.branch
- tar -zcf $@ -C rootfs .
- rm -rf rootfs
+rootfs: out/rootfs.vhd
+
+out/rootfs.vhd: out/rootfs.tar.gz bin/cmd/tar2ext4
+ gzip -f -d ./out/rootfs.tar.gz
+ bin/cmd/tar2ext4 -vhd -i ./out/rootfs.tar -o $@
out/rootfs.tar.gz: out/initrd.img
rm -rf rootfs-conv
@@ -52,13 +60,45 @@ out/rootfs.tar.gz: out/initrd.img
tar -zcf $@ -C rootfs-conv .
rm -rf rootfs-conv
-out/initrd.img: $(BASE) out/delta.tar.gz $(SRCROOT)/hack/catcpio.sh
- $(SRCROOT)/hack/catcpio.sh "$(BASE)" out/delta.tar.gz > out/initrd.img.uncompressed
+out/initrd.img: $(BASE) $(DELTA_TARGET) $(SRCROOT)/hack/catcpio.sh
+ $(SRCROOT)/hack/catcpio.sh "$(BASE)" $(DELTA_TARGET) > out/initrd.img.uncompressed
gzip -c out/initrd.img.uncompressed > $@
rm out/initrd.img.uncompressed
+# This target includes utilities which may be useful for testing purposes.
+out/delta-dev.tar.gz: out/delta.tar.gz bin/internal/tools/snp-report
+ rm -rf rootfs-dev
+ mkdir rootfs-dev
+ tar -xzf out/delta.tar.gz -C rootfs-dev
+ cp bin/internal/tools/snp-report rootfs-dev/bin/
+ tar -zcf $@ -C rootfs-dev .
+ rm -rf rootfs-dev
+
+out/delta.tar.gz: bin/init bin/vsockexec bin/cmd/gcs bin/cmd/gcstools bin/cmd/hooks/wait-paths Makefile
+ @mkdir -p out
+ rm -rf rootfs
+ mkdir -p rootfs/bin/
+ mkdir -p rootfs/info/
+ cp bin/init rootfs/
+ cp bin/vsockexec rootfs/bin/
+ cp bin/cmd/gcs rootfs/bin/
+ cp bin/cmd/gcstools rootfs/bin/
+ cp bin/cmd/hooks/wait-paths rootfs/bin/
+ for tool in $(GCS_TOOLS); do ln -s gcstools rootfs/bin/$$tool; done
+ git -C $(SRCROOT) rev-parse HEAD > rootfs/info/gcs.commit && \
+ git -C $(SRCROOT) rev-parse --abbrev-ref HEAD > rootfs/info/gcs.branch && \
+ date --iso-8601=minute --utc > rootfs/info/tar.date
+ $(if $(and $(realpath $(subst .tar,.testdata.json,$(BASE))), $(shell which jq)), \
+ jq -r '.IMAGE_NAME' $(subst .tar,.testdata.json,$(BASE)) 2>/dev/null > rootfs/info/image.name && \
+ jq -r '.DATETIME' $(subst .tar,.testdata.json,$(BASE)) 2>/dev/null > rootfs/info/build.date)
+ tar -zcf $@ -C rootfs .
+ rm -rf rootfs
+
-include deps/cmd/gcs.gomake
-include deps/cmd/gcstools.gomake
+-include deps/cmd/hooks/wait-paths.gomake
+-include deps/cmd/tar2ext4.gomake
+-include deps/internal/tools/snp-report.gomake
# Implicit rule for includes that define Go targets.
%.gomake: $(SRCROOT)/Makefile
@@ -72,8 +112,6 @@ out/initrd.img: $(BASE) out/delta.tar.gz $(SRCROOT)/hack/catcpio.sh
@/bin/echo -e '-include $(@:%.gomake=%.godeps)' >> $@.new
mv $@.new $@
-VPATH=$(SRCROOT)
-
bin/vsockexec: vsockexec/vsockexec.o vsockexec/vsock.o
@mkdir -p bin
$(CC) $(LDFLAGS) -o $@ $^
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/Protobuild.toml b/tools/vendor/github.com/Microsoft/hcsshim/Protobuild.toml
index ee18671aa..471f13386 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/Protobuild.toml
+++ b/tools/vendor/github.com/Microsoft/hcsshim/Protobuild.toml
@@ -1,4 +1,4 @@
-version = "unstable"
+version = "1"
generator = "gogoctrd"
plugins = ["grpc", "fieldpath"]
@@ -14,11 +14,6 @@ plugins = ["grpc", "fieldpath"]
# target package.
packages = ["github.com/gogo/protobuf"]
- # Paths that will be added untouched to the end of the includes. We use
- # `/usr/local/include` to pickup the common install location of protobuf.
- # This is the default.
- after = ["/usr/local/include"]
-
# This section maps protobuf imports to Go packages. These will become
# `-M` directives in the call to the go protobuf generator.
[packages]
@@ -36,6 +31,10 @@ plugins = ["grpc", "fieldpath"]
prefixes = ["github.com/Microsoft/hcsshim/internal/shimdiag"]
plugins = ["ttrpc"]
+[[overrides]]
+prefixes = ["github.com/Microsoft/hcsshim/internal/extendedtask"]
+plugins = ["ttrpc"]
+
[[overrides]]
prefixes = ["github.com/Microsoft/hcsshim/internal/computeagent"]
plugins = ["ttrpc"]
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/README.md b/tools/vendor/github.com/Microsoft/hcsshim/README.md
index b8ca926a9..5a1361539 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/README.md
+++ b/tools/vendor/github.com/Microsoft/hcsshim/README.md
@@ -75,24 +75,6 @@ certify they either authored the work themselves or otherwise have permission to
more info, as well as to make sure that you can attest to the rules listed. Our CI uses the [DCO Github app](https://github.com/apps/dco) to ensure
that all commits in a given PR are signed-off.
-### Test Directory (Important to note)
-
-This project has tried to trim some dependencies from the root Go modules file that would be cumbersome to get transitively included if this
-project is being vendored/used as a library. Some of these dependencies were only being used for tests, so the /test directory in this project also has
-its own go.mod file where these are now included to get around this issue. Our tests rely on the code in this project to run, so the test Go modules file
-has a relative path replace directive to pull in the latest hcsshim code that the tests actually touch from this project
-(which is the repo itself on your disk).
-
-```
-replace (
- github.com/Microsoft/hcsshim => ../
-)
-```
-
-Because of this, for most code changes you may need to run `go mod vendor` + `go mod tidy` in the /test directory in this repository, as the
-CI in this project will check if the files are out of date and will fail if this is true.
-
-
## Code of Conduct
This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).
@@ -101,7 +83,7 @@ contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additio
## Dependencies
-This project requires Golang 1.9 or newer to build.
+This project requires Golang 1.17 or newer to build.
For system requirements to run this project, see the Microsoft docs on [Windows Container requirements](https://docs.microsoft.com/en-us/virtualization/windowscontainers/deploy-containers/system-requirements).
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/SECURITY.md b/tools/vendor/github.com/Microsoft/hcsshim/SECURITY.md
new file mode 100644
index 000000000..869fdfe2b
--- /dev/null
+++ b/tools/vendor/github.com/Microsoft/hcsshim/SECURITY.md
@@ -0,0 +1,41 @@
+
+
+## Security
+
+Microsoft takes the security of our software products and services seriously, which includes all source code repositories managed through our GitHub organizations, which include [Microsoft](https://github.com/Microsoft), [Azure](https://github.com/Azure), [DotNet](https://github.com/dotnet), [AspNet](https://github.com/aspnet), [Xamarin](https://github.com/xamarin), and [our GitHub organizations](https://opensource.microsoft.com/).
+
+If you believe you have found a security vulnerability in any Microsoft-owned repository that meets [Microsoft's definition of a security vulnerability](https://aka.ms/opensource/security/definition), please report it to us as described below.
+
+## Reporting Security Issues
+
+**Please do not report security vulnerabilities through public GitHub issues.**
+
+Instead, please report them to the Microsoft Security Response Center (MSRC) at [https://msrc.microsoft.com/create-report](https://aka.ms/opensource/security/create-report).
+
+If you prefer to submit without logging in, send email to [secure@microsoft.com](mailto:secure@microsoft.com). If possible, encrypt your message with our PGP key; please download it from the [Microsoft Security Response Center PGP Key page](https://aka.ms/opensource/security/pgpkey).
+
+You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Additional information can be found at [microsoft.com/msrc](https://aka.ms/opensource/security/msrc).
+
+Please include the requested information listed below (as much as you can provide) to help us better understand the nature and scope of the possible issue:
+
+ * Type of issue (e.g. buffer overflow, SQL injection, cross-site scripting, etc.)
+ * Full paths of source file(s) related to the manifestation of the issue
+ * The location of the affected source code (tag/branch/commit or direct URL)
+ * Any special configuration required to reproduce the issue
+ * Step-by-step instructions to reproduce the issue
+ * Proof-of-concept or exploit code (if possible)
+ * Impact of the issue, including how an attacker might exploit the issue
+
+This information will help us triage your report more quickly.
+
+If you are reporting for a bug bounty, more complete reports can contribute to a higher bounty award. Please visit our [Microsoft Bug Bounty Program](https://aka.ms/opensource/security/bounty) page for more details about our active programs.
+
+## Preferred Languages
+
+We prefer all communications to be in English.
+
+## Policy
+
+Microsoft follows the principle of [Coordinated Vulnerability Disclosure](https://aka.ms/opensource/security/cvd).
+
+
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/computestorage/attach.go b/tools/vendor/github.com/Microsoft/hcsshim/computestorage/attach.go
index 7f1f2823d..54c4b3bc4 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/computestorage/attach.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/computestorage/attach.go
@@ -1,3 +1,5 @@
+//go:build windows
+
package computestorage
import (
@@ -17,8 +19,8 @@ import (
//
// `layerData` is the parent read-only layer data.
func AttachLayerStorageFilter(ctx context.Context, layerPath string, layerData LayerData) (err error) {
- title := "hcsshim.AttachLayerStorageFilter"
- ctx, span := trace.StartSpan(ctx, title) //nolint:ineffassign,staticcheck
+ title := "hcsshim::AttachLayerStorageFilter"
+ ctx, span := oc.StartSpan(ctx, title) //nolint:ineffassign,staticcheck
defer span.End()
defer func() { oc.SetSpanStatus(span, err) }()
span.AddAttributes(
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/computestorage/destroy.go b/tools/vendor/github.com/Microsoft/hcsshim/computestorage/destroy.go
index 8e28e6c50..5058d3b55 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/computestorage/destroy.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/computestorage/destroy.go
@@ -1,3 +1,5 @@
+//go:build windows
+
package computestorage
import (
@@ -12,8 +14,8 @@ import (
//
// `layerPath` is a path to a directory containing the layer to export.
func DestroyLayer(ctx context.Context, layerPath string) (err error) {
- title := "hcsshim.DestroyLayer"
- ctx, span := trace.StartSpan(ctx, title) //nolint:ineffassign,staticcheck
+ title := "hcsshim::DestroyLayer"
+ ctx, span := oc.StartSpan(ctx, title) //nolint:ineffassign,staticcheck
defer span.End()
defer func() { oc.SetSpanStatus(span, err) }()
span.AddAttributes(trace.StringAttribute("layerPath", layerPath))
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/computestorage/detach.go b/tools/vendor/github.com/Microsoft/hcsshim/computestorage/detach.go
index 435473257..daf1bfff2 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/computestorage/detach.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/computestorage/detach.go
@@ -1,3 +1,5 @@
+//go:build windows
+
package computestorage
import (
@@ -12,8 +14,8 @@ import (
//
// `layerPath` is a path to a directory containing the layer to export.
func DetachLayerStorageFilter(ctx context.Context, layerPath string) (err error) {
- title := "hcsshim.DetachLayerStorageFilter"
- ctx, span := trace.StartSpan(ctx, title) //nolint:ineffassign,staticcheck
+ title := "hcsshim::DetachLayerStorageFilter"
+ ctx, span := oc.StartSpan(ctx, title) //nolint:ineffassign,staticcheck
defer span.End()
defer func() { oc.SetSpanStatus(span, err) }()
span.AddAttributes(trace.StringAttribute("layerPath", layerPath))
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/computestorage/export.go b/tools/vendor/github.com/Microsoft/hcsshim/computestorage/export.go
index a1b12dd12..c6370a5c9 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/computestorage/export.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/computestorage/export.go
@@ -1,3 +1,5 @@
+//go:build windows
+
package computestorage
import (
@@ -19,8 +21,8 @@ import (
//
// `options` are the export options applied to the exported layer.
func ExportLayer(ctx context.Context, layerPath, exportFolderPath string, layerData LayerData, options ExportLayerOptions) (err error) {
- title := "hcsshim.ExportLayer"
- ctx, span := trace.StartSpan(ctx, title) //nolint:ineffassign,staticcheck
+ title := "hcsshim::ExportLayer"
+ ctx, span := oc.StartSpan(ctx, title) //nolint:ineffassign,staticcheck
defer span.End()
defer func() { oc.SetSpanStatus(span, err) }()
span.AddAttributes(
@@ -28,17 +30,17 @@ func ExportLayer(ctx context.Context, layerPath, exportFolderPath string, layerD
trace.StringAttribute("exportFolderPath", exportFolderPath),
)
- ldbytes, err := json.Marshal(layerData)
+ ldBytes, err := json.Marshal(layerData)
if err != nil {
return err
}
- obytes, err := json.Marshal(options)
+ oBytes, err := json.Marshal(options)
if err != nil {
return err
}
- err = hcsExportLayer(layerPath, exportFolderPath, string(ldbytes), string(obytes))
+ err = hcsExportLayer(layerPath, exportFolderPath, string(ldBytes), string(oBytes))
if err != nil {
return errors.Wrap(err, "failed to export layer")
}
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/computestorage/format.go b/tools/vendor/github.com/Microsoft/hcsshim/computestorage/format.go
index 83c0fa33f..2140e5c9f 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/computestorage/format.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/computestorage/format.go
@@ -1,3 +1,5 @@
+//go:build windows
+
package computestorage
import (
@@ -5,16 +7,20 @@ import (
"github.com/Microsoft/hcsshim/internal/oc"
"github.com/pkg/errors"
- "go.opencensus.io/trace"
"golang.org/x/sys/windows"
)
// FormatWritableLayerVhd formats a virtual disk for use as a writable container layer.
//
// If the VHD is not mounted it will be temporarily mounted.
+//
+// NOTE: This API had a breaking change in the operating system after Windows Server 2019.
+// On ws2019 the API expects to get passed a file handle from CreateFile for the vhd that
+// the caller wants to format. On > ws2019, its expected that the caller passes a vhd handle
+// that can be obtained from the virtdisk APIs.
func FormatWritableLayerVhd(ctx context.Context, vhdHandle windows.Handle) (err error) {
- title := "hcsshim.FormatWritableLayerVhd"
- ctx, span := trace.StartSpan(ctx, title) //nolint:ineffassign,staticcheck
+ title := "hcsshim::FormatWritableLayerVhd"
+ ctx, span := oc.StartSpan(ctx, title) //nolint:ineffassign,staticcheck
defer span.End()
defer func() { oc.SetSpanStatus(span, err) }()
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/computestorage/helpers.go b/tools/vendor/github.com/Microsoft/hcsshim/computestorage/helpers.go
index 87fee452c..c3608dcec 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/computestorage/helpers.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/computestorage/helpers.go
@@ -1,3 +1,5 @@
+//go:build windows
+
package computestorage
import (
@@ -6,10 +8,12 @@ import (
"path/filepath"
"syscall"
- "github.com/Microsoft/go-winio/pkg/security"
"github.com/Microsoft/go-winio/vhd"
+ "github.com/Microsoft/hcsshim/internal/memory"
"github.com/pkg/errors"
"golang.org/x/sys/windows"
+
+ "github.com/Microsoft/hcsshim/internal/security"
)
const defaultVHDXBlockSizeInMB = 1
@@ -59,8 +63,8 @@ func SetupContainerBaseLayer(ctx context.Context, layerPath, baseVhdPath, diffVh
createParams := &vhd.CreateVirtualDiskParameters{
Version: 2,
Version2: vhd.CreateVersion2{
- MaximumSize: sizeInGB * 1024 * 1024 * 1024,
- BlockSizeInBytes: defaultVHDXBlockSizeInMB * 1024 * 1024,
+ MaximumSize: sizeInGB * memory.GiB,
+ BlockSizeInBytes: defaultVHDXBlockSizeInMB * memory.MiB,
},
}
handle, err := vhd.CreateVirtualDisk(baseVhdPath, vhd.VirtualDiskAccessNone, vhd.CreateVirtualDiskFlagNone, createParams)
@@ -135,8 +139,8 @@ func SetupUtilityVMBaseLayer(ctx context.Context, uvmPath, baseVhdPath, diffVhdP
createParams := &vhd.CreateVirtualDiskParameters{
Version: 2,
Version2: vhd.CreateVersion2{
- MaximumSize: sizeInGB * 1024 * 1024 * 1024,
- BlockSizeInBytes: defaultVHDXBlockSizeInMB * 1024 * 1024,
+ MaximumSize: sizeInGB * memory.GiB,
+ BlockSizeInBytes: defaultVHDXBlockSizeInMB * memory.MiB,
},
}
handle, err := vhd.CreateVirtualDisk(baseVhdPath, vhd.VirtualDiskAccessNone, vhd.CreateVirtualDiskFlagNone, createParams)
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/computestorage/import.go b/tools/vendor/github.com/Microsoft/hcsshim/computestorage/import.go
index 0c61dab32..e1c87416a 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/computestorage/import.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/computestorage/import.go
@@ -1,3 +1,5 @@
+//go:build windows
+
package computestorage
import (
@@ -19,8 +21,8 @@ import (
//
// `layerData` is the parent layer data.
func ImportLayer(ctx context.Context, layerPath, sourceFolderPath string, layerData LayerData) (err error) {
- title := "hcsshim.ImportLayer"
- ctx, span := trace.StartSpan(ctx, title) //nolint:ineffassign,staticcheck
+ title := "hcsshim::ImportLayer"
+ ctx, span := oc.StartSpan(ctx, title) //nolint:ineffassign,staticcheck
defer span.End()
defer func() { oc.SetSpanStatus(span, err) }()
span.AddAttributes(
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/computestorage/initialize.go b/tools/vendor/github.com/Microsoft/hcsshim/computestorage/initialize.go
index 53ed8ea6e..d0c621605 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/computestorage/initialize.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/computestorage/initialize.go
@@ -1,3 +1,5 @@
+//go:build windows
+
package computestorage
import (
@@ -16,8 +18,8 @@ import (
//
// `layerData` is the parent read-only layer data.
func InitializeWritableLayer(ctx context.Context, layerPath string, layerData LayerData) (err error) {
- title := "hcsshim.InitializeWritableLayer"
- ctx, span := trace.StartSpan(ctx, title) //nolint:ineffassign,staticcheck
+ title := "hcsshim::InitializeWritableLayer"
+ ctx, span := oc.StartSpan(ctx, title) //nolint:ineffassign,staticcheck
defer span.End()
defer func() { oc.SetSpanStatus(span, err) }()
span.AddAttributes(
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/computestorage/mount.go b/tools/vendor/github.com/Microsoft/hcsshim/computestorage/mount.go
index fcdbbef81..4f4d8ebf2 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/computestorage/mount.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/computestorage/mount.go
@@ -1,3 +1,5 @@
+//go:build windows
+
package computestorage
import (
@@ -6,14 +8,13 @@ import (
"github.com/Microsoft/hcsshim/internal/interop"
"github.com/Microsoft/hcsshim/internal/oc"
"github.com/pkg/errors"
- "go.opencensus.io/trace"
"golang.org/x/sys/windows"
)
// GetLayerVhdMountPath returns the volume path for a virtual disk of a writable container layer.
func GetLayerVhdMountPath(ctx context.Context, vhdHandle windows.Handle) (path string, err error) {
- title := "hcsshim.GetLayerVhdMountPath"
- ctx, span := trace.StartSpan(ctx, title) //nolint:ineffassign,staticcheck
+ title := "hcsshim::GetLayerVhdMountPath"
+ ctx, span := oc.StartSpan(ctx, title) //nolint:ineffassign,staticcheck
defer span.End()
defer func() { oc.SetSpanStatus(span, err) }()
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/computestorage/setup.go b/tools/vendor/github.com/Microsoft/hcsshim/computestorage/setup.go
index 06aaf841e..1c685aed0 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/computestorage/setup.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/computestorage/setup.go
@@ -1,3 +1,5 @@
+//go:build windows
+
package computestorage
import (
@@ -21,8 +23,8 @@ import (
//
// `options` are the options applied while processing the layer.
func SetupBaseOSLayer(ctx context.Context, layerPath string, vhdHandle windows.Handle, options OsLayerOptions) (err error) {
- title := "hcsshim.SetupBaseOSLayer"
- ctx, span := trace.StartSpan(ctx, title) //nolint:ineffassign,staticcheck
+ title := "hcsshim::SetupBaseOSLayer"
+ ctx, span := oc.StartSpan(ctx, title) //nolint:ineffassign,staticcheck
defer span.End()
defer func() { oc.SetSpanStatus(span, err) }()
span.AddAttributes(
@@ -48,12 +50,16 @@ func SetupBaseOSLayer(ctx context.Context, layerPath string, vhdHandle windows.H
// `volumePath` is the path to the volume to be used for setup.
//
// `options` are the options applied while processing the layer.
+//
+// NOTE: This API is only available on builds of Windows greater than 19645. Inside we
+// check if the hosts build has the API available by using 'GetVersion' which requires
+// the calling application to be manifested. https://docs.microsoft.com/en-us/windows/win32/sbscs/manifests
func SetupBaseOSVolume(ctx context.Context, layerPath, volumePath string, options OsLayerOptions) (err error) {
if osversion.Build() < 19645 {
return errors.New("SetupBaseOSVolume is not present on builds older than 19645")
}
- title := "hcsshim.SetupBaseOSVolume"
- ctx, span := trace.StartSpan(ctx, title) //nolint:ineffassign,staticcheck
+ title := "hcsshim::SetupBaseOSVolume"
+ ctx, span := oc.StartSpan(ctx, title) //nolint:ineffassign,staticcheck
defer span.End()
defer func() { oc.SetSpanStatus(span, err) }()
span.AddAttributes(
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/computestorage/storage.go b/tools/vendor/github.com/Microsoft/hcsshim/computestorage/storage.go
index 95aff9c18..82d68cb8b 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/computestorage/storage.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/computestorage/storage.go
@@ -7,7 +7,7 @@ import (
hcsschema "github.com/Microsoft/hcsshim/internal/hcs/schema2"
)
-//go:generate go run ../mksyscall_windows.go -output zsyscall_windows.go storage.go
+//go:generate go run github.com/Microsoft/go-winio/tools/mkwinsyscall -output zsyscall_windows.go storage.go
//sys hcsImportLayer(layerPath string, sourceFolderPath string, layerData string) (hr error) = computestorage.HcsImportLayer?
//sys hcsExportLayer(layerPath string, exportFolderPath string, layerData string, options string) (hr error) = computestorage.HcsExportLayer?
@@ -20,10 +20,13 @@ import (
//sys hcsGetLayerVhdMountPath(vhdHandle windows.Handle, mountPath **uint16) (hr error) = computestorage.HcsGetLayerVhdMountPath?
//sys hcsSetupBaseOSVolume(layerPath string, volumePath string, options string) (hr error) = computestorage.HcsSetupBaseOSVolume?
+type Version = hcsschema.Version
+type Layer = hcsschema.Layer
+
// LayerData is the data used to describe parent layer information.
type LayerData struct {
- SchemaVersion hcsschema.Version `json:"SchemaVersion,omitempty"`
- Layers []hcsschema.Layer `json:"Layers,omitempty"`
+ SchemaVersion Version `json:"SchemaVersion,omitempty"`
+ Layers []Layer `json:"Layers,omitempty"`
}
// ExportLayerOptions are the set of options that are used with the `computestorage.HcsExportLayer` syscall.
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/computestorage/zsyscall_windows.go b/tools/vendor/github.com/Microsoft/hcsshim/computestorage/zsyscall_windows.go
index 4f9518067..9cf479181 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/computestorage/zsyscall_windows.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/computestorage/zsyscall_windows.go
@@ -1,4 +1,6 @@
-// Code generated mksyscall_windows.exe DO NOT EDIT
+//go:build windows
+
+// Code generated by 'go generate' using "github.com/Microsoft/go-winio/tools/mkwinsyscall"; DO NOT EDIT.
package computestorage
@@ -19,6 +21,7 @@ const (
var (
errERROR_IO_PENDING error = syscall.Errno(errnoERROR_IO_PENDING)
+ errERROR_EINVAL error = syscall.EINVAL
)
// errnoErr returns common boxed Errno values, to prevent
@@ -26,7 +29,7 @@ var (
func errnoErr(e syscall.Errno) error {
switch e {
case 0:
- return nil
+ return errERROR_EINVAL
case errnoERROR_IO_PENDING:
return errERROR_IO_PENDING
}
@@ -39,42 +42,86 @@ func errnoErr(e syscall.Errno) error {
var (
modcomputestorage = windows.NewLazySystemDLL("computestorage.dll")
- procHcsImportLayer = modcomputestorage.NewProc("HcsImportLayer")
- procHcsExportLayer = modcomputestorage.NewProc("HcsExportLayer")
- procHcsDestoryLayer = modcomputestorage.NewProc("HcsDestoryLayer")
- procHcsSetupBaseOSLayer = modcomputestorage.NewProc("HcsSetupBaseOSLayer")
- procHcsInitializeWritableLayer = modcomputestorage.NewProc("HcsInitializeWritableLayer")
procHcsAttachLayerStorageFilter = modcomputestorage.NewProc("HcsAttachLayerStorageFilter")
+ procHcsDestoryLayer = modcomputestorage.NewProc("HcsDestoryLayer")
procHcsDetachLayerStorageFilter = modcomputestorage.NewProc("HcsDetachLayerStorageFilter")
+ procHcsExportLayer = modcomputestorage.NewProc("HcsExportLayer")
procHcsFormatWritableLayerVhd = modcomputestorage.NewProc("HcsFormatWritableLayerVhd")
procHcsGetLayerVhdMountPath = modcomputestorage.NewProc("HcsGetLayerVhdMountPath")
+ procHcsImportLayer = modcomputestorage.NewProc("HcsImportLayer")
+ procHcsInitializeWritableLayer = modcomputestorage.NewProc("HcsInitializeWritableLayer")
+ procHcsSetupBaseOSLayer = modcomputestorage.NewProc("HcsSetupBaseOSLayer")
procHcsSetupBaseOSVolume = modcomputestorage.NewProc("HcsSetupBaseOSVolume")
)
-func hcsImportLayer(layerPath string, sourceFolderPath string, layerData string) (hr error) {
+func hcsAttachLayerStorageFilter(layerPath string, layerData string) (hr error) {
var _p0 *uint16
_p0, hr = syscall.UTF16PtrFromString(layerPath)
if hr != nil {
return
}
var _p1 *uint16
- _p1, hr = syscall.UTF16PtrFromString(sourceFolderPath)
+ _p1, hr = syscall.UTF16PtrFromString(layerData)
if hr != nil {
return
}
- var _p2 *uint16
- _p2, hr = syscall.UTF16PtrFromString(layerData)
+ return _hcsAttachLayerStorageFilter(_p0, _p1)
+}
+
+func _hcsAttachLayerStorageFilter(layerPath *uint16, layerData *uint16) (hr error) {
+ hr = procHcsAttachLayerStorageFilter.Find()
if hr != nil {
return
}
- return _hcsImportLayer(_p0, _p1, _p2)
+ r0, _, _ := syscall.Syscall(procHcsAttachLayerStorageFilter.Addr(), 2, uintptr(unsafe.Pointer(layerPath)), uintptr(unsafe.Pointer(layerData)), 0)
+ if int32(r0) < 0 {
+ if r0&0x1fff0000 == 0x00070000 {
+ r0 &= 0xffff
+ }
+ hr = syscall.Errno(r0)
+ }
+ return
}
-func _hcsImportLayer(layerPath *uint16, sourceFolderPath *uint16, layerData *uint16) (hr error) {
- if hr = procHcsImportLayer.Find(); hr != nil {
+func hcsDestroyLayer(layerPath string) (hr error) {
+ var _p0 *uint16
+ _p0, hr = syscall.UTF16PtrFromString(layerPath)
+ if hr != nil {
return
}
- r0, _, _ := syscall.Syscall(procHcsImportLayer.Addr(), 3, uintptr(unsafe.Pointer(layerPath)), uintptr(unsafe.Pointer(sourceFolderPath)), uintptr(unsafe.Pointer(layerData)))
+ return _hcsDestroyLayer(_p0)
+}
+
+func _hcsDestroyLayer(layerPath *uint16) (hr error) {
+ hr = procHcsDestoryLayer.Find()
+ if hr != nil {
+ return
+ }
+ r0, _, _ := syscall.Syscall(procHcsDestoryLayer.Addr(), 1, uintptr(unsafe.Pointer(layerPath)), 0, 0)
+ if int32(r0) < 0 {
+ if r0&0x1fff0000 == 0x00070000 {
+ r0 &= 0xffff
+ }
+ hr = syscall.Errno(r0)
+ }
+ return
+}
+
+func hcsDetachLayerStorageFilter(layerPath string) (hr error) {
+ var _p0 *uint16
+ _p0, hr = syscall.UTF16PtrFromString(layerPath)
+ if hr != nil {
+ return
+ }
+ return _hcsDetachLayerStorageFilter(_p0)
+}
+
+func _hcsDetachLayerStorageFilter(layerPath *uint16) (hr error) {
+ hr = procHcsDetachLayerStorageFilter.Find()
+ if hr != nil {
+ return
+ }
+ r0, _, _ := syscall.Syscall(procHcsDetachLayerStorageFilter.Addr(), 1, uintptr(unsafe.Pointer(layerPath)), 0, 0)
if int32(r0) < 0 {
if r0&0x1fff0000 == 0x00070000 {
r0 &= 0xffff
@@ -109,7 +156,8 @@ func hcsExportLayer(layerPath string, exportFolderPath string, layerData string,
}
func _hcsExportLayer(layerPath *uint16, exportFolderPath *uint16, layerData *uint16, options *uint16) (hr error) {
- if hr = procHcsExportLayer.Find(); hr != nil {
+ hr = procHcsExportLayer.Find()
+ if hr != nil {
return
}
r0, _, _ := syscall.Syscall6(procHcsExportLayer.Addr(), 4, uintptr(unsafe.Pointer(layerPath)), uintptr(unsafe.Pointer(exportFolderPath)), uintptr(unsafe.Pointer(layerData)), uintptr(unsafe.Pointer(options)), 0, 0)
@@ -122,20 +170,27 @@ func _hcsExportLayer(layerPath *uint16, exportFolderPath *uint16, layerData *uin
return
}
-func hcsDestroyLayer(layerPath string) (hr error) {
- var _p0 *uint16
- _p0, hr = syscall.UTF16PtrFromString(layerPath)
+func hcsFormatWritableLayerVhd(handle windows.Handle) (hr error) {
+ hr = procHcsFormatWritableLayerVhd.Find()
if hr != nil {
return
}
- return _hcsDestroyLayer(_p0)
+ r0, _, _ := syscall.Syscall(procHcsFormatWritableLayerVhd.Addr(), 1, uintptr(handle), 0, 0)
+ if int32(r0) < 0 {
+ if r0&0x1fff0000 == 0x00070000 {
+ r0 &= 0xffff
+ }
+ hr = syscall.Errno(r0)
+ }
+ return
}
-func _hcsDestroyLayer(layerPath *uint16) (hr error) {
- if hr = procHcsDestoryLayer.Find(); hr != nil {
+func hcsGetLayerVhdMountPath(vhdHandle windows.Handle, mountPath **uint16) (hr error) {
+ hr = procHcsGetLayerVhdMountPath.Find()
+ if hr != nil {
return
}
- r0, _, _ := syscall.Syscall(procHcsDestoryLayer.Addr(), 1, uintptr(unsafe.Pointer(layerPath)), 0, 0)
+ r0, _, _ := syscall.Syscall(procHcsGetLayerVhdMountPath.Addr(), 2, uintptr(vhdHandle), uintptr(unsafe.Pointer(mountPath)), 0)
if int32(r0) < 0 {
if r0&0x1fff0000 == 0x00070000 {
r0 &= 0xffff
@@ -145,25 +200,31 @@ func _hcsDestroyLayer(layerPath *uint16) (hr error) {
return
}
-func hcsSetupBaseOSLayer(layerPath string, handle windows.Handle, options string) (hr error) {
+func hcsImportLayer(layerPath string, sourceFolderPath string, layerData string) (hr error) {
var _p0 *uint16
_p0, hr = syscall.UTF16PtrFromString(layerPath)
if hr != nil {
return
}
var _p1 *uint16
- _p1, hr = syscall.UTF16PtrFromString(options)
+ _p1, hr = syscall.UTF16PtrFromString(sourceFolderPath)
if hr != nil {
return
}
- return _hcsSetupBaseOSLayer(_p0, handle, _p1)
+ var _p2 *uint16
+ _p2, hr = syscall.UTF16PtrFromString(layerData)
+ if hr != nil {
+ return
+ }
+ return _hcsImportLayer(_p0, _p1, _p2)
}
-func _hcsSetupBaseOSLayer(layerPath *uint16, handle windows.Handle, options *uint16) (hr error) {
- if hr = procHcsSetupBaseOSLayer.Find(); hr != nil {
+func _hcsImportLayer(layerPath *uint16, sourceFolderPath *uint16, layerData *uint16) (hr error) {
+ hr = procHcsImportLayer.Find()
+ if hr != nil {
return
}
- r0, _, _ := syscall.Syscall(procHcsSetupBaseOSLayer.Addr(), 3, uintptr(unsafe.Pointer(layerPath)), uintptr(handle), uintptr(unsafe.Pointer(options)))
+ r0, _, _ := syscall.Syscall(procHcsImportLayer.Addr(), 3, uintptr(unsafe.Pointer(layerPath)), uintptr(unsafe.Pointer(sourceFolderPath)), uintptr(unsafe.Pointer(layerData)))
if int32(r0) < 0 {
if r0&0x1fff0000 == 0x00070000 {
r0 &= 0xffff
@@ -193,7 +254,8 @@ func hcsInitializeWritableLayer(writableLayerPath string, layerData string, opti
}
func _hcsInitializeWritableLayer(writableLayerPath *uint16, layerData *uint16, options *uint16) (hr error) {
- if hr = procHcsInitializeWritableLayer.Find(); hr != nil {
+ hr = procHcsInitializeWritableLayer.Find()
+ if hr != nil {
return
}
r0, _, _ := syscall.Syscall(procHcsInitializeWritableLayer.Addr(), 3, uintptr(unsafe.Pointer(writableLayerPath)), uintptr(unsafe.Pointer(layerData)), uintptr(unsafe.Pointer(options)))
@@ -206,76 +268,26 @@ func _hcsInitializeWritableLayer(writableLayerPath *uint16, layerData *uint16, o
return
}
-func hcsAttachLayerStorageFilter(layerPath string, layerData string) (hr error) {
+func hcsSetupBaseOSLayer(layerPath string, handle windows.Handle, options string) (hr error) {
var _p0 *uint16
_p0, hr = syscall.UTF16PtrFromString(layerPath)
if hr != nil {
return
}
var _p1 *uint16
- _p1, hr = syscall.UTF16PtrFromString(layerData)
+ _p1, hr = syscall.UTF16PtrFromString(options)
if hr != nil {
return
}
- return _hcsAttachLayerStorageFilter(_p0, _p1)
-}
-
-func _hcsAttachLayerStorageFilter(layerPath *uint16, layerData *uint16) (hr error) {
- if hr = procHcsAttachLayerStorageFilter.Find(); hr != nil {
- return
- }
- r0, _, _ := syscall.Syscall(procHcsAttachLayerStorageFilter.Addr(), 2, uintptr(unsafe.Pointer(layerPath)), uintptr(unsafe.Pointer(layerData)), 0)
- if int32(r0) < 0 {
- if r0&0x1fff0000 == 0x00070000 {
- r0 &= 0xffff
- }
- hr = syscall.Errno(r0)
- }
- return
+ return _hcsSetupBaseOSLayer(_p0, handle, _p1)
}
-func hcsDetachLayerStorageFilter(layerPath string) (hr error) {
- var _p0 *uint16
- _p0, hr = syscall.UTF16PtrFromString(layerPath)
+func _hcsSetupBaseOSLayer(layerPath *uint16, handle windows.Handle, options *uint16) (hr error) {
+ hr = procHcsSetupBaseOSLayer.Find()
if hr != nil {
return
}
- return _hcsDetachLayerStorageFilter(_p0)
-}
-
-func _hcsDetachLayerStorageFilter(layerPath *uint16) (hr error) {
- if hr = procHcsDetachLayerStorageFilter.Find(); hr != nil {
- return
- }
- r0, _, _ := syscall.Syscall(procHcsDetachLayerStorageFilter.Addr(), 1, uintptr(unsafe.Pointer(layerPath)), 0, 0)
- if int32(r0) < 0 {
- if r0&0x1fff0000 == 0x00070000 {
- r0 &= 0xffff
- }
- hr = syscall.Errno(r0)
- }
- return
-}
-
-func hcsFormatWritableLayerVhd(handle windows.Handle) (hr error) {
- if hr = procHcsFormatWritableLayerVhd.Find(); hr != nil {
- return
- }
- r0, _, _ := syscall.Syscall(procHcsFormatWritableLayerVhd.Addr(), 1, uintptr(handle), 0, 0)
- if int32(r0) < 0 {
- if r0&0x1fff0000 == 0x00070000 {
- r0 &= 0xffff
- }
- hr = syscall.Errno(r0)
- }
- return
-}
-
-func hcsGetLayerVhdMountPath(vhdHandle windows.Handle, mountPath **uint16) (hr error) {
- if hr = procHcsGetLayerVhdMountPath.Find(); hr != nil {
- return
- }
- r0, _, _ := syscall.Syscall(procHcsGetLayerVhdMountPath.Addr(), 2, uintptr(vhdHandle), uintptr(unsafe.Pointer(mountPath)), 0)
+ r0, _, _ := syscall.Syscall(procHcsSetupBaseOSLayer.Addr(), 3, uintptr(unsafe.Pointer(layerPath)), uintptr(handle), uintptr(unsafe.Pointer(options)))
if int32(r0) < 0 {
if r0&0x1fff0000 == 0x00070000 {
r0 &= 0xffff
@@ -305,7 +317,8 @@ func hcsSetupBaseOSVolume(layerPath string, volumePath string, options string) (
}
func _hcsSetupBaseOSVolume(layerPath *uint16, volumePath *uint16, options *uint16) (hr error) {
- if hr = procHcsSetupBaseOSVolume.Find(); hr != nil {
+ hr = procHcsSetupBaseOSVolume.Find()
+ if hr != nil {
return
}
r0, _, _ := syscall.Syscall(procHcsSetupBaseOSVolume.Addr(), 3, uintptr(unsafe.Pointer(layerPath)), uintptr(unsafe.Pointer(volumePath)), uintptr(unsafe.Pointer(options)))
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/container.go b/tools/vendor/github.com/Microsoft/hcsshim/container.go
index bfd722898..c8f09f88b 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/container.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/container.go
@@ -1,3 +1,5 @@
+//go:build windows
+
package hcsshim
import (
@@ -60,7 +62,7 @@ type container struct {
waitCh chan struct{}
}
-// createComputeSystemAdditionalJSON is read from the environment at initialisation
+// createContainerAdditionalJSON is read from the environment at initialization
// time. It allows an environment variable to define additional JSON which
// is merged in the CreateComputeSystem call to HCS.
var createContainerAdditionalJSON []byte
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/errors.go b/tools/vendor/github.com/Microsoft/hcsshim/errors.go
index f367022e7..594bbfb7a 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/errors.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/errors.go
@@ -1,3 +1,5 @@
+//go:build windows
+
package hcsshim
import (
@@ -50,6 +52,9 @@ var (
// ErrUnexpectedValue is an error encountered when hcs returns an invalid value
ErrUnexpectedValue = hcs.ErrUnexpectedValue
+ // ErrOperationDenied is an error when hcs attempts an operation that is explicitly denied
+ ErrOperationDenied = hcs.ErrOperationDenied
+
// ErrVmcomputeAlreadyStopped is an error encountered when a shutdown or terminate request is made on a stopped container
ErrVmcomputeAlreadyStopped = hcs.ErrVmcomputeAlreadyStopped
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/functional_tests.ps1 b/tools/vendor/github.com/Microsoft/hcsshim/functional_tests.ps1
deleted file mode 100644
index ce6edbcf3..000000000
--- a/tools/vendor/github.com/Microsoft/hcsshim/functional_tests.ps1
+++ /dev/null
@@ -1,12 +0,0 @@
-# Requirements so far:
-# dockerd running
-# - image microsoft/nanoserver (matching host base image) docker load -i c:\baseimages\nanoserver.tar
-# - image alpine (linux) docker pull --platform=linux alpine
-
-
-# TODO: Add this a parameter for debugging. ie "functional-tests -debug=$true"
-#$env:HCSSHIM_FUNCTIONAL_TESTS_DEBUG="yes please"
-
-#pushd uvm
-go test -v -tags "functional uvmcreate uvmscratch uvmscsi uvmvpmem uvmvsmb uvmp9" ./...
-#popd
\ No newline at end of file
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/hcsshim.go b/tools/vendor/github.com/Microsoft/hcsshim/hcsshim.go
index ceb3ac85e..13f80e4a8 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/hcsshim.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/hcsshim.go
@@ -1,15 +1,17 @@
+//go:build windows
+
// Shim for the Host Compute Service (HCS) to manage Windows Server
// containers and Hyper-V containers.
package hcsshim
import (
- "syscall"
+ "golang.org/x/sys/windows"
"github.com/Microsoft/hcsshim/internal/hcserror"
)
-//go:generate go run mksyscall_windows.go -output zsyscall_windows.go hcsshim.go
+//go:generate go run github.com/Microsoft/go-winio/tools/mkwinsyscall -output zsyscall_windows.go hcsshim.go
//sys SetCurrentThreadCompartmentId(compartmentId uint32) (hr error) = iphlpapi.SetCurrentThreadCompartmentId
@@ -17,9 +19,9 @@ const (
// Specific user-visible exit codes
WaitErrExecFailed = 32767
- ERROR_GEN_FAILURE = hcserror.ERROR_GEN_FAILURE
- ERROR_SHUTDOWN_IN_PROGRESS = syscall.Errno(1115)
- WSAEINVAL = syscall.Errno(10022)
+ ERROR_GEN_FAILURE = windows.ERROR_GEN_FAILURE
+ ERROR_SHUTDOWN_IN_PROGRESS = windows.ERROR_SHUTDOWN_IN_PROGRESS
+ WSAEINVAL = windows.WSAEINVAL
// Timeout on wait calls
TimeoutInfinite = 0xFFFFFFFF
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/hnsendpoint.go b/tools/vendor/github.com/Microsoft/hcsshim/hnsendpoint.go
index 9e0059447..d8a73de98 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/hnsendpoint.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/hnsendpoint.go
@@ -1,3 +1,5 @@
+//go:build windows
+
package hcsshim
import (
@@ -13,7 +15,7 @@ type HNSEndpointStats = hns.EndpointStats
// Namespace represents a Compartment.
type Namespace = hns.Namespace
-//SystemType represents the type of the system on which actions are done
+// SystemType represents the type of the system on which actions are done
type SystemType string
// SystemType const
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/hnsglobals.go b/tools/vendor/github.com/Microsoft/hcsshim/hnsglobals.go
index 2b5381904..c564bf4a3 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/hnsglobals.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/hnsglobals.go
@@ -1,3 +1,5 @@
+//go:build windows
+
package hcsshim
import (
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/hnsnetwork.go b/tools/vendor/github.com/Microsoft/hcsshim/hnsnetwork.go
index f775fa1d0..925c21249 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/hnsnetwork.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/hnsnetwork.go
@@ -1,14 +1,16 @@
+//go:build windows
+
package hcsshim
import (
"github.com/Microsoft/hcsshim/internal/hns"
)
-// Subnet is assoicated with a network and represents a list
+// Subnet is associated with a network and represents a list
// of subnets available to the network
type Subnet = hns.Subnet
-// MacPool is assoicated with a network and represents a list
+// MacPool is associated with a network and represents a list
// of macaddresses available to the network
type MacPool = hns.MacPool
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/hnspolicylist.go b/tools/vendor/github.com/Microsoft/hcsshim/hnspolicylist.go
index 55aaa4a50..9bfe61ee8 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/hnspolicylist.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/hnspolicylist.go
@@ -1,3 +1,5 @@
+//go:build windows
+
package hcsshim
import (
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/hnssupport.go b/tools/vendor/github.com/Microsoft/hcsshim/hnssupport.go
index 69405244b..d97681e0c 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/hnssupport.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/hnssupport.go
@@ -1,3 +1,5 @@
+//go:build windows
+
package hcsshim
import (
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/interface.go b/tools/vendor/github.com/Microsoft/hcsshim/interface.go
index 300eb5996..81a281951 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/interface.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/interface.go
@@ -1,3 +1,5 @@
+//go:build windows
+
package hcsshim
import (
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/cow/cow.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/cow/cow.go
index 27a62a723..b60cd383b 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/cow/cow.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/cow/cow.go
@@ -1,3 +1,5 @@
+//go:build windows
+
package cow
import (
@@ -86,6 +88,12 @@ type Container interface {
// container to be terminated by some error condition (including calling
// Close).
Wait() error
+ // WaitChannel returns the wait channel of the container
+ WaitChannel() <-chan struct{}
+ // WaitError returns the container termination error.
+ // This function should only be called after the channel in WaitChannel()
+ // is closed. Otherwise it is not thread safe.
+ WaitError() error
// Modify sends a request to modify container resources
Modify(ctx context.Context, config interface{}) error
}
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/callback.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/callback.go
index d13772b03..7b27173c3 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/callback.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/callback.go
@@ -1,3 +1,5 @@
+//go:build windows
+
package hcs
import (
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/doc.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/doc.go
new file mode 100644
index 000000000..d792dda98
--- /dev/null
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/doc.go
@@ -0,0 +1 @@
+package hcs
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/errors.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/errors.go
index e21354ffd..3e10f5c7e 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/errors.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/errors.go
@@ -1,3 +1,5 @@
+//go:build windows
+
package hcs
import (
@@ -51,6 +53,9 @@ var (
// ErrUnexpectedValue is an error encountered when hcs returns an invalid value
ErrUnexpectedValue = errors.New("unexpected value returned from hcs")
+ // ErrOperationDenied is an error when hcs attempts an operation that is explicitly denied
+ ErrOperationDenied = errors.New("operation denied")
+
// ErrVmcomputeAlreadyStopped is an error encountered when a shutdown or terminate request is made on a stopped container
ErrVmcomputeAlreadyStopped = syscall.Errno(0xc0370110)
@@ -82,7 +87,7 @@ var (
// ErrProcessAlreadyStopped is returned by hcs if the process we're trying to kill has already been stopped.
ErrProcessAlreadyStopped = syscall.Errno(0x8037011f)
- // ErrInvalidHandle is an error that can be encountrered when querying the properties of a compute system when the handle to that
+ // ErrInvalidHandle is an error that can be encountered when querying the properties of a compute system when the handle to that
// compute system has already been closed.
ErrInvalidHandle = syscall.Errno(0x6)
)
@@ -152,33 +157,38 @@ func (e *HcsError) Error() string {
return s
}
+func (e *HcsError) Is(target error) bool {
+ return errors.Is(e.Err, target)
+}
+
+// unwrap isnt really needed, but helpful convince function
+
+func (e *HcsError) Unwrap() error {
+ return e.Err
+}
+
+// Deprecated: net.Error.Temporary is deprecated.
func (e *HcsError) Temporary() bool {
- err, ok := e.Err.(net.Error)
- return ok && err.Temporary()
+ err := e.netError()
+ return (err != nil) && err.Temporary()
}
func (e *HcsError) Timeout() bool {
- err, ok := e.Err.(net.Error)
- return ok && err.Timeout()
+ err := e.netError()
+ return (err != nil) && err.Timeout()
}
-// ProcessError is an error encountered in HCS during an operation on a Process object
-type ProcessError struct {
- SystemID string
- Pid int
- Op string
- Err error
- Events []ErrorEvent
+func (e *HcsError) netError() (err net.Error) {
+ if errors.As(e.Unwrap(), &err) {
+ return err
+ }
+ return nil
}
-var _ net.Error = &ProcessError{}
-
// SystemError is an error encountered in HCS during an operation on a Container object
type SystemError struct {
- ID string
- Op string
- Err error
- Events []ErrorEvent
+ HcsError
+ ID string
}
var _ net.Error = &SystemError{}
@@ -191,29 +201,32 @@ func (e *SystemError) Error() string {
return s
}
-func (e *SystemError) Temporary() bool {
- err, ok := e.Err.(net.Error)
- return ok && err.Temporary()
-}
-
-func (e *SystemError) Timeout() bool {
- err, ok := e.Err.(net.Error)
- return ok && err.Timeout()
-}
-
func makeSystemError(system *System, op string, err error, events []ErrorEvent) error {
// Don't double wrap errors
- if _, ok := err.(*SystemError); ok {
+ var e *SystemError
+ if errors.As(err, &e) {
return err
}
+
return &SystemError{
- ID: system.ID(),
- Op: op,
- Err: err,
- Events: events,
+ ID: system.ID(),
+ HcsError: HcsError{
+ Op: op,
+ Err: err,
+ Events: events,
+ },
}
}
+// ProcessError is an error encountered in HCS during an operation on a Process object
+type ProcessError struct {
+ HcsError
+ SystemID string
+ Pid int
+}
+
+var _ net.Error = &ProcessError{}
+
func (e *ProcessError) Error() string {
s := fmt.Sprintf("%s %s:%d: %s", e.Op, e.SystemID, e.Pid, e.Err.Error())
for _, ev := range e.Events {
@@ -222,27 +235,20 @@ func (e *ProcessError) Error() string {
return s
}
-func (e *ProcessError) Temporary() bool {
- err, ok := e.Err.(net.Error)
- return ok && err.Temporary()
-}
-
-func (e *ProcessError) Timeout() bool {
- err, ok := e.Err.(net.Error)
- return ok && err.Timeout()
-}
-
func makeProcessError(process *Process, op string, err error, events []ErrorEvent) error {
// Don't double wrap errors
- if _, ok := err.(*ProcessError); ok {
+ var e *ProcessError
+ if errors.As(err, &e) {
return err
}
return &ProcessError{
Pid: process.Pid(),
SystemID: process.SystemID(),
- Op: op,
- Err: err,
- Events: events,
+ HcsError: HcsError{
+ Op: op,
+ Err: err,
+ Events: events,
+ },
}
}
@@ -251,41 +257,41 @@ func makeProcessError(process *Process, op string, err error, events []ErrorEven
// already exited, or does not exist. Both IsAlreadyStopped and IsNotExist
// will currently return true when the error is ErrElementNotFound.
func IsNotExist(err error) bool {
- err = getInnerError(err)
- return err == ErrComputeSystemDoesNotExist ||
- err == ErrElementNotFound
+ return IsAny(err, ErrComputeSystemDoesNotExist, ErrElementNotFound)
}
// IsErrorInvalidHandle checks whether the error is the result of an operation carried
// out on a handle that is invalid/closed. This error popped up while trying to query
// stats on a container in the process of being stopped.
func IsErrorInvalidHandle(err error) bool {
- err = getInnerError(err)
- return err == ErrInvalidHandle
+ return errors.Is(err, ErrInvalidHandle)
}
// IsAlreadyClosed checks if an error is caused by the Container or Process having been
// already closed by a call to the Close() method.
func IsAlreadyClosed(err error) bool {
- err = getInnerError(err)
- return err == ErrAlreadyClosed
+ return errors.Is(err, ErrAlreadyClosed)
}
// IsPending returns a boolean indicating whether the error is that
// the requested operation is being completed in the background.
func IsPending(err error) bool {
- err = getInnerError(err)
- return err == ErrVmcomputeOperationPending
+ return errors.Is(err, ErrVmcomputeOperationPending)
}
// IsTimeout returns a boolean indicating whether the error is caused by
// a timeout waiting for the operation to complete.
func IsTimeout(err error) bool {
- if err, ok := err.(net.Error); ok && err.Timeout() {
+ // HcsError and co. implement Timeout regardless of whether the errors they wrap do,
+ // so `errors.As(err, net.Error)`` will always be true.
+ // Using `errors.As(err.Unwrap(), net.Err)` wont work for general errors.
+ // So first check if there an `ErrTimeout` in the chain, then convert to a net error.
+ if errors.Is(err, ErrTimeout) {
return true
}
- err = getInnerError(err)
- return err == ErrTimeout
+
+ var nerr net.Error
+ return errors.As(err, &nerr) && nerr.Timeout()
}
// IsAlreadyStopped returns a boolean indicating whether the error is caused by
@@ -294,10 +300,7 @@ func IsTimeout(err error) bool {
// already exited, or does not exist. Both IsAlreadyStopped and IsNotExist
// will currently return true when the error is ErrElementNotFound.
func IsAlreadyStopped(err error) bool {
- err = getInnerError(err)
- return err == ErrVmcomputeAlreadyStopped ||
- err == ErrProcessAlreadyStopped ||
- err == ErrElementNotFound
+ return IsAny(err, ErrVmcomputeAlreadyStopped, ErrProcessAlreadyStopped, ErrElementNotFound)
}
// IsNotSupported returns a boolean indicating whether the error is caused by
@@ -306,38 +309,28 @@ func IsAlreadyStopped(err error) bool {
// ErrVmcomputeInvalidJSON, ErrInvalidData, ErrNotSupported or ErrVmcomputeUnknownMessage
// is thrown from the Platform
func IsNotSupported(err error) bool {
- err = getInnerError(err)
// If Platform doesn't recognize or support the request sent, below errors are seen
- return err == ErrVmcomputeInvalidJSON ||
- err == ErrInvalidData ||
- err == ErrNotSupported ||
- err == ErrVmcomputeUnknownMessage
+ return IsAny(err, ErrVmcomputeInvalidJSON, ErrInvalidData, ErrNotSupported, ErrVmcomputeUnknownMessage)
}
// IsOperationInvalidState returns true when err is caused by
// `ErrVmcomputeOperationInvalidState`.
func IsOperationInvalidState(err error) bool {
- err = getInnerError(err)
- return err == ErrVmcomputeOperationInvalidState
+ return errors.Is(err, ErrVmcomputeOperationInvalidState)
}
// IsAccessIsDenied returns true when err is caused by
// `ErrVmcomputeOperationAccessIsDenied`.
func IsAccessIsDenied(err error) bool {
- err = getInnerError(err)
- return err == ErrVmcomputeOperationAccessIsDenied
+ return errors.Is(err, ErrVmcomputeOperationAccessIsDenied)
}
-func getInnerError(err error) error {
- switch pe := err.(type) {
- case nil:
- return nil
- case *HcsError:
- err = pe.Err
- case *SystemError:
- err = pe.Err
- case *ProcessError:
- err = pe.Err
+// IsAny is a vectorized version of [errors.Is], it returns true if err is one of targets.
+func IsAny(err error, targets ...error) bool {
+ for _, e := range targets {
+ if errors.Is(err, e) {
+ return true
+ }
}
- return err
+ return false
}
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/process.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/process.go
index f4605922a..e437e297c 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/process.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/process.go
@@ -1,3 +1,5 @@
+//go:build windows
+
package hcs
import (
@@ -10,6 +12,7 @@ import (
"syscall"
"time"
+ "github.com/Microsoft/hcsshim/internal/cow"
"github.com/Microsoft/hcsshim/internal/log"
"github.com/Microsoft/hcsshim/internal/oc"
"github.com/Microsoft/hcsshim/internal/vmcompute"
@@ -36,6 +39,8 @@ type Process struct {
waitError error
}
+var _ cow.Process = &Process{}
+
func newProcess(process vmcompute.HcsProcess, processID int, computeSystem *System) *Process {
return &Process{
handle: process,
@@ -89,10 +94,7 @@ func (process *Process) processSignalResult(ctx context.Context, err error) (boo
case nil:
return true, nil
case ErrVmcomputeOperationInvalidState, ErrComputeSystemDoesNotExist, ErrElementNotFound:
- select {
- case <-process.waitBlock:
- // The process exit notification has already arrived.
- default:
+ if !process.stopped() {
// The process should be gone, but we have not received the notification.
// After a second, force unblock the process wait to work around a possible
// deadlock in the HCS.
@@ -114,9 +116,9 @@ func (process *Process) processSignalResult(ctx context.Context, err error) (boo
// Signal signals the process with `options`.
//
-// For LCOW `guestrequest.SignalProcessOptionsLCOW`.
+// For LCOW `guestresource.SignalProcessOptionsLCOW`.
//
-// For WCOW `guestrequest.SignalProcessOptionsWCOW`.
+// For WCOW `guestresource.SignalProcessOptionsWCOW`.
func (process *Process) Signal(ctx context.Context, options interface{}) (bool, error) {
process.handleLock.RLock()
defer process.handleLock.RUnlock()
@@ -152,6 +154,10 @@ func (process *Process) Kill(ctx context.Context) (bool, error) {
return false, makeProcessError(process, operation, ErrAlreadyClosed, nil)
}
+ if process.stopped() {
+ return false, makeProcessError(process, operation, ErrProcessAlreadyStopped, nil)
+ }
+
if process.killSignalDelivered {
// A kill signal has already been sent to this process. Sending a second
// one offers no real benefit, as processes cannot stop themselves from
@@ -161,7 +167,39 @@ func (process *Process) Kill(ctx context.Context) (bool, error) {
return true, nil
}
- resultJSON, err := vmcompute.HcsTerminateProcess(ctx, process.handle)
+ // HCS serializes the signals sent to a target pid per compute system handle.
+ // To avoid SIGKILL being serialized behind other signals, we open a new compute
+ // system handle to deliver the kill signal.
+ // If the calls to opening a new compute system handle fail, we forcefully
+ // terminate the container itself so that no container is left behind
+ hcsSystem, err := OpenComputeSystem(ctx, process.system.id)
+ if err != nil {
+ // log error and force termination of container
+ log.G(ctx).WithField("err", err).Error("OpenComputeSystem() call failed")
+ err = process.system.Terminate(ctx)
+ // if the Terminate() call itself ever failed, log and return error
+ if err != nil {
+ log.G(ctx).WithField("err", err).Error("Terminate() call failed")
+ return false, err
+ }
+ process.system.Close()
+ return true, nil
+ }
+ defer hcsSystem.Close()
+
+ newProcessHandle, err := hcsSystem.OpenProcess(ctx, process.Pid())
+ if err != nil {
+ // Return true only if the target process has either already
+ // exited, or does not exist.
+ if IsAlreadyStopped(err) {
+ return true, nil
+ } else {
+ return false, err
+ }
+ }
+ defer newProcessHandle.Close()
+
+ resultJSON, err := vmcompute.HcsTerminateProcess(ctx, newProcessHandle.handle)
if err != nil {
// We still need to check these two cases, as processes may still be killed by an
// external actor (human operator, OOM, random script etc).
@@ -185,9 +223,9 @@ func (process *Process) Kill(ctx context.Context) (bool, error) {
}
}
events := processHcsResult(ctx, resultJSON)
- delivered, err := process.processSignalResult(ctx, err)
+ delivered, err := newProcessHandle.processSignalResult(ctx, err)
if err != nil {
- err = makeProcessError(process, operation, err, events)
+ err = makeProcessError(newProcessHandle, operation, err, events)
}
process.killSignalDelivered = delivered
@@ -201,7 +239,7 @@ func (process *Process) Kill(ctx context.Context) (bool, error) {
// call multiple times.
func (process *Process) waitBackground() {
operation := "hcs::Process::waitBackground"
- ctx, span := trace.StartSpan(context.Background(), operation)
+ ctx, span := oc.StartSpan(context.Background(), operation)
defer span.End()
span.AddAttributes(
trace.StringAttribute("cid", process.SystemID()),
@@ -227,12 +265,12 @@ func (process *Process) waitBackground() {
propertiesJSON, resultJSON, err = vmcompute.HcsGetProcessProperties(ctx, process.handle)
events := processHcsResult(ctx, resultJSON)
if err != nil {
- err = makeProcessError(process, operation, err, events) //nolint:ineffassign
+ err = makeProcessError(process, operation, err, events)
} else {
properties := &processStatus{}
err = json.Unmarshal([]byte(propertiesJSON), properties)
if err != nil {
- err = makeProcessError(process, operation, err, nil) //nolint:ineffassign
+ err = makeProcessError(process, operation, err, nil)
} else {
if properties.LastWaitResult != 0 {
log.G(ctx).WithField("wait-result", properties.LastWaitResult).Warning("non-zero last wait result")
@@ -254,12 +292,22 @@ func (process *Process) waitBackground() {
}
// Wait waits for the process to exit. If the process has already exited returns
-// the pervious error (if any).
+// the previous error (if any).
func (process *Process) Wait() error {
<-process.waitBlock
return process.waitError
}
+// Exited returns if the process has stopped
+func (process *Process) stopped() bool {
+ select {
+ case <-process.waitBlock:
+ return true
+ default:
+ return false
+ }
+}
+
// ResizeConsole resizes the console of the process.
func (process *Process) ResizeConsole(ctx context.Context, width, height uint16) error {
process.handleLock.RLock()
@@ -296,15 +344,13 @@ func (process *Process) ResizeConsole(ctx context.Context, width, height uint16)
// ExitCode returns the exit code of the process. The process must have
// already terminated.
func (process *Process) ExitCode() (int, error) {
- select {
- case <-process.waitBlock:
- if process.waitError != nil {
- return -1, process.waitError
- }
- return process.exitCode, nil
- default:
+ if !process.stopped() {
return -1, makeProcessError(process, "hcs::Process::ExitCode", ErrInvalidProcessState, nil)
}
+ if process.waitError != nil {
+ return -1, process.waitError
+ }
+ return process.exitCode, nil
}
// StdioLegacy returns the stdin, stdout, and stderr pipes, respectively. Closing
@@ -312,7 +358,7 @@ func (process *Process) ExitCode() (int, error) {
// are the responsibility of the caller to close.
func (process *Process) StdioLegacy() (_ io.WriteCloser, _ io.ReadCloser, _ io.ReadCloser, err error) {
operation := "hcs::Process::StdioLegacy"
- ctx, span := trace.StartSpan(context.Background(), operation)
+ ctx, span := oc.StartSpan(context.Background(), operation)
defer span.End()
defer func() { oc.SetSpanStatus(span, err) }()
span.AddAttributes(
@@ -350,7 +396,7 @@ func (process *Process) StdioLegacy() (_ io.WriteCloser, _ io.ReadCloser, _ io.R
}
// Stdio returns the stdin, stdout, and stderr pipes, respectively.
-// To close them, close the process handle.
+// To close them, close the process handle, or use the `CloseStd*` functions.
func (process *Process) Stdio() (stdin io.Writer, stdout, stderr io.Reader) {
process.stdioLock.Lock()
defer process.stdioLock.Unlock()
@@ -359,46 +405,57 @@ func (process *Process) Stdio() (stdin io.Writer, stdout, stderr io.Reader) {
// CloseStdin closes the write side of the stdin pipe so that the process is
// notified on the read side that there is no more data in stdin.
-func (process *Process) CloseStdin(ctx context.Context) error {
+func (process *Process) CloseStdin(ctx context.Context) (err error) {
+ operation := "hcs::Process::CloseStdin"
+ ctx, span := trace.StartSpan(ctx, operation)
+ defer span.End()
+ defer func() { oc.SetSpanStatus(span, err) }()
+ span.AddAttributes(
+ trace.StringAttribute("cid", process.SystemID()),
+ trace.Int64Attribute("pid", int64(process.processID)))
+
process.handleLock.RLock()
defer process.handleLock.RUnlock()
- operation := "hcs::Process::CloseStdin"
-
if process.handle == 0 {
return makeProcessError(process, operation, ErrAlreadyClosed, nil)
}
- modifyRequest := processModifyRequest{
- Operation: modifyCloseHandle,
- CloseHandle: &closeHandle{
- Handle: stdIn,
- },
+ process.stdioLock.Lock()
+ defer process.stdioLock.Unlock()
+ if process.stdin == nil {
+ return nil
}
- modifyRequestb, err := json.Marshal(modifyRequest)
- if err != nil {
- return err
- }
+ //HcsModifyProcess request to close stdin will fail if the process has already exited
+ if !process.stopped() {
+ modifyRequest := processModifyRequest{
+ Operation: modifyCloseHandle,
+ CloseHandle: &closeHandle{
+ Handle: stdIn,
+ },
+ }
- resultJSON, err := vmcompute.HcsModifyProcess(ctx, process.handle, string(modifyRequestb))
- events := processHcsResult(ctx, resultJSON)
- if err != nil {
- return makeProcessError(process, operation, err, events)
- }
+ modifyRequestb, err := json.Marshal(modifyRequest)
+ if err != nil {
+ return err
+ }
- process.stdioLock.Lock()
- if process.stdin != nil {
- process.stdin.Close()
- process.stdin = nil
+ resultJSON, err := vmcompute.HcsModifyProcess(ctx, process.handle, string(modifyRequestb))
+ events := processHcsResult(ctx, resultJSON)
+ if err != nil {
+ return makeProcessError(process, operation, err, events)
+ }
}
- process.stdioLock.Unlock()
+
+ process.stdin.Close()
+ process.stdin = nil
return nil
}
func (process *Process) CloseStdout(ctx context.Context) (err error) {
- ctx, span := trace.StartSpan(ctx, "hcs::Process::CloseStdout") //nolint:ineffassign,staticcheck
+ ctx, span := oc.StartSpan(ctx, "hcs::Process::CloseStdout") //nolint:ineffassign,staticcheck
defer span.End()
defer func() { oc.SetSpanStatus(span, err) }()
span.AddAttributes(
@@ -422,7 +479,7 @@ func (process *Process) CloseStdout(ctx context.Context) (err error) {
}
func (process *Process) CloseStderr(ctx context.Context) (err error) {
- ctx, span := trace.StartSpan(ctx, "hcs::Process::CloseStderr") //nolint:ineffassign,staticcheck
+ ctx, span := oc.StartSpan(ctx, "hcs::Process::CloseStderr") //nolint:ineffassign,staticcheck
defer span.End()
defer func() { oc.SetSpanStatus(span, err) }()
span.AddAttributes(
@@ -441,7 +498,6 @@ func (process *Process) CloseStderr(ctx context.Context) (err error) {
if process.stderr != nil {
process.stderr.Close()
process.stderr = nil
-
}
return nil
}
@@ -450,7 +506,7 @@ func (process *Process) CloseStderr(ctx context.Context) (err error) {
// or wait on it.
func (process *Process) Close() (err error) {
operation := "hcs::Process::Close"
- ctx, span := trace.StartSpan(context.Background(), operation)
+ ctx, span := oc.StartSpan(context.Background(), operation)
defer span.End()
defer func() { oc.SetSpanStatus(span, err) }()
span.AddAttributes(
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema1/schema1.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema1/schema1.go
index b621c5593..d1f219cfa 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema1/schema1.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema1/schema1.go
@@ -1,3 +1,5 @@
+//go:build windows
+
package schema1
import (
@@ -101,7 +103,7 @@ type ContainerConfig struct {
HvRuntime *HvRuntime `json:",omitempty"` // Hyper-V container settings. Used by Hyper-V containers only. Format ImagePath=%root%\BaseLayerID\UtilityVM
Servicing bool `json:",omitempty"` // True if this container is for servicing
AllowUnqualifiedDNSQuery bool `json:",omitempty"` // True to allow unqualified DNS name resolution
- DNSSearchList string `json:",omitempty"` // Comma seperated list of DNS suffixes to use for name resolution
+ DNSSearchList string `json:",omitempty"` // Comma separated list of DNS suffixes to use for name resolution
ContainerType string `json:",omitempty"` // "Linux" for Linux containers on Windows. Omitted otherwise.
TerminateOnLastHandleClosed bool `json:",omitempty"` // Should HCS terminate the container once all handles have been closed
MappedVirtualDisks []MappedVirtualDisk `json:",omitempty"` // Array of virtual disks to mount at start
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/cpu_group_property.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/cpu_group_property.go
index bbad6a2c4..31fe07c3a 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/cpu_group_property.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/cpu_group_property.go
@@ -9,6 +9,14 @@
package hcsschema
+type CPUGroupPropertyCode uint32
+
+const (
+ CPUCapacityProperty = 0x00010000
+ CPUSchedulingPriorityProperty = 0x00020000
+ IdleLPReserveProperty = 0x00030000
+)
+
type CpuGroupProperty struct {
PropertyCode uint32 `json:"PropertyCode,omitempty"`
PropertyValue uint32 `json:"PropertyValue,omitempty"`
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/debug_options.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/debug_options.go
new file mode 100644
index 000000000..5385850fe
--- /dev/null
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/debug_options.go
@@ -0,0 +1,22 @@
+/*
+ * HCS API
+ *
+ * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)
+ *
+ * API version: 2.1
+ * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
+ */
+
+package hcsschema
+
+type DebugOptions struct {
+ // BugcheckSavedStateFileName is the path for the file in which the guest VM state will be saved when
+ // the guest crashes.
+ BugcheckSavedStateFileName string `json:"BugcheckSavedStateFileName,omitempty"`
+ // BugcheckNoCrashdumpSavedStateFileName is the path of the file in which the guest VM state will be
+ // saved when the guest crashes but the guest isn't able to generate the crash dump. This usually
+ // happens in early boot failures.
+ BugcheckNoCrashdumpSavedStateFileName string `json:"BugcheckNoCrashdumpSavedStateFileName,omitempty"`
+ TripleFaultSavedStateFileName string `json:"TripleFaultSavedStateFileName,omitempty"`
+ FirmwareDumpFileName string `json:"FirmwareDumpFileName,omitempty"`
+}
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/guest_state.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/guest_state.go
index ef1eec886..a48a65394 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/guest_state.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/guest_state.go
@@ -14,6 +14,9 @@ type GuestState struct {
// The path to an existing file uses for persistent guest state storage. An empty string indicates the system should initialize new transient, in-memory guest state.
GuestStateFilePath string `json:"GuestStateFilePath,omitempty"`
+ // The guest state file type affected by different guest isolation modes - whether a file or block storage.
+ GuestStateFileType string `json:"GuestStateFileType,omitempty"`
+
// The path to an existing file for persistent runtime state storage. An empty string indicates the system should initialize new transient, in-memory runtime state.
RuntimeStateFilePath string `json:"RuntimeStateFilePath,omitempty"`
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/isolation_settings.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/isolation_settings.go
new file mode 100644
index 000000000..3726a297e
--- /dev/null
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/isolation_settings.go
@@ -0,0 +1,21 @@
+/*
+ * HCS API
+ *
+ * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)
+ *
+ * API version: 2.4
+ * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
+ */
+
+package hcsschema
+
+type IsolationSettings struct {
+ // Guest isolation type options to decide virtual trust levels of virtual machine
+ IsolationType string `json:"IsolationType,omitempty"`
+ // Configuration to debug HCL layer for HCS VM TODO: Task 31102306: Miss the way to prevent the exposure of private debug configuration in HCS TODO: Think about the secret configurations which are private in VMMS VM (only edit by hvsedit)
+ DebugHost string `json:"DebugHost,omitempty"`
+ DebugPort int64 `json:"DebugPort,omitempty"`
+ // Optional data passed by host on isolated virtual machine start
+ LaunchData string `json:"LaunchData,omitempty"`
+ HclEnabled bool `json:"HclEnabled,omitempty"`
+}
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/modify_setting_request.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/modify_setting_request.go
index d29455a3e..6364da8e2 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/modify_setting_request.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/modify_setting_request.go
@@ -9,10 +9,12 @@
package hcsschema
+import "github.com/Microsoft/hcsshim/internal/protocol/guestrequest"
+
type ModifySettingRequest struct {
ResourcePath string `json:"ResourcePath,omitempty"`
- RequestType string `json:"RequestType,omitempty"`
+ RequestType guestrequest.RequestType `json:"RequestType,omitempty"` // NOTE: Swagger generated as string. Locally updated.
Settings interface{} `json:"Settings,omitempty"` // NOTE: Swagger generated as *interface{}. Locally updated
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/security_settings.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/security_settings.go
new file mode 100644
index 000000000..14f0299e3
--- /dev/null
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/security_settings.go
@@ -0,0 +1,16 @@
+/*
+ * HCS API
+ *
+ * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)
+ *
+ * API version: 2.4
+ * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
+ */
+
+package hcsschema
+
+type SecuritySettings struct {
+ // Enablement of Trusted Platform Module on the computer system
+ EnableTpm bool `json:"EnableTpm,omitempty"`
+ Isolation *IsolationSettings `json:"Isolation,omitempty"`
+}
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/system_time.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/system_time.go
new file mode 100644
index 000000000..72de80149
--- /dev/null
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/system_time.go
@@ -0,0 +1,28 @@
+/*
+ * HCS API
+ *
+ * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)
+ *
+ * API version: 2.1
+ * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
+ */
+
+package hcsschema
+
+type SystemTime struct {
+ Year int32 `json:"Year,omitempty"`
+
+ Month int32 `json:"Month,omitempty"`
+
+ DayOfWeek int32 `json:"DayOfWeek,omitempty"`
+
+ Day int32 `json:"Day,omitempty"`
+
+ Hour int32 `json:"Hour,omitempty"`
+
+ Minute int32 `json:"Minute,omitempty"`
+
+ Second int32 `json:"Second,omitempty"`
+
+ Milliseconds int32 `json:"Milliseconds,omitempty"`
+}
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/time_zone_information.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/time_zone_information.go
new file mode 100644
index 000000000..529743d75
--- /dev/null
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/time_zone_information.go
@@ -0,0 +1,26 @@
+/*
+ * HCS API
+ *
+ * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)
+ *
+ * API version: 2.1
+ * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
+ */
+
+package hcsschema
+
+type TimeZoneInformation struct {
+ Bias int32 `json:"Bias,omitempty"`
+
+ StandardName string `json:"StandardName,omitempty"`
+
+ StandardDate *SystemTime `json:"StandardDate,omitempty"`
+
+ StandardBias int32 `json:"StandardBias,omitempty"`
+
+ DaylightName string `json:"DaylightName,omitempty"`
+
+ DaylightDate *SystemTime `json:"DaylightDate,omitempty"`
+
+ DaylightBias int32 `json:"DaylightBias,omitempty"`
+}
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/uefi.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/uefi.go
index 0e48ece50..9228923fe 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/uefi.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/uefi.go
@@ -12,6 +12,8 @@ package hcsschema
type Uefi struct {
EnableDebugger bool `json:"EnableDebugger,omitempty"`
+ ApplySecureBootTemplate string `json:"ApplySecureBootTemplate,omitempty"`
+
SecureBootTemplateId string `json:"SecureBootTemplateId,omitempty"`
BootThis *UefiBootEntry `json:"BootThis,omitempty"`
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/virtual_machine.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/virtual_machine.go
index 2d22b1bcb..1e0fab289 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/virtual_machine.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/virtual_machine.go
@@ -29,4 +29,8 @@ type VirtualMachine struct {
StorageQoS *StorageQoS `json:"StorageQoS,omitempty"`
GuestConnection *GuestConnection `json:"GuestConnection,omitempty"`
+
+ SecuritySettings *SecuritySettings `json:"SecuritySettings,omitempty"`
+
+ DebugOptions *DebugOptions `json:"DebugOptions,omitempty"`
}
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/service.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/service.go
index a634dfc15..a46b0051d 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/service.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/service.go
@@ -1,3 +1,5 @@
+//go:build windows
+
package hcs
import (
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/system.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/system.go
index 1d45a703b..cf20adefc 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/system.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/system.go
@@ -1,3 +1,5 @@
+//go:build windows
+
package hcs
import (
@@ -37,6 +39,9 @@ type System struct {
startTime time.Time
}
+var _ cow.Container = &System{}
+var _ cow.ProcessHost = &System{}
+
func newSystem(id string) *System {
return &System{
id: id,
@@ -55,7 +60,7 @@ func CreateComputeSystem(ctx context.Context, id string, hcsDocumentInterface in
// hcsCreateComputeSystemContext is an async operation. Start the outer span
// here to measure the full create time.
- ctx, span := trace.StartSpan(ctx, operation)
+ ctx, span := oc.StartSpan(ctx, operation)
defer span.End()
defer func() { oc.SetSpanStatus(span, err) }()
span.AddAttributes(trace.StringAttribute("cid", id))
@@ -89,7 +94,8 @@ func CreateComputeSystem(ctx context.Context, id string, hcsDocumentInterface in
}
}
- events, err := processAsyncHcsResult(ctx, createError, resultJSON, computeSystem.callbackNumber, hcsNotificationSystemCreateCompleted, &timeout.SystemCreate)
+ events, err := processAsyncHcsResult(ctx, createError, resultJSON, computeSystem.callbackNumber,
+ hcsNotificationSystemCreateCompleted, &timeout.SystemCreate)
if err != nil {
if err == ErrTimeout {
// Terminate the compute system if it still exists. We're okay to
@@ -190,7 +196,7 @@ func (computeSystem *System) Start(ctx context.Context) (err error) {
// hcsStartComputeSystemContext is an async operation. Start the outer span
// here to measure the full start time.
- ctx, span := trace.StartSpan(ctx, operation)
+ ctx, span := oc.StartSpan(ctx, operation)
defer span.End()
defer func() { oc.SetSpanStatus(span, err) }()
span.AddAttributes(trace.StringAttribute("cid", computeSystem.id))
@@ -198,12 +204,15 @@ func (computeSystem *System) Start(ctx context.Context) (err error) {
computeSystem.handleLock.RLock()
defer computeSystem.handleLock.RUnlock()
+ // prevent starting an exited system because waitblock we do not recreate waitBlock
+ // or rerun waitBackground, so we have no way to be notified of it closing again
if computeSystem.handle == 0 {
return makeSystemError(computeSystem, operation, ErrAlreadyClosed, nil)
}
resultJSON, err := vmcompute.HcsStartComputeSystem(ctx, computeSystem.handle, "")
- events, err := processAsyncHcsResult(ctx, err, resultJSON, computeSystem.callbackNumber, hcsNotificationSystemStartCompleted, &timeout.SystemStart)
+ events, err := processAsyncHcsResult(ctx, err, resultJSON, computeSystem.callbackNumber,
+ hcsNotificationSystemStartCompleted, &timeout.SystemStart)
if err != nil {
return makeSystemError(computeSystem, operation, err, events)
}
@@ -223,7 +232,7 @@ func (computeSystem *System) Shutdown(ctx context.Context) error {
operation := "hcs::System::Shutdown"
- if computeSystem.handle == 0 {
+ if computeSystem.handle == 0 || computeSystem.stopped() {
return nil
}
@@ -244,7 +253,7 @@ func (computeSystem *System) Terminate(ctx context.Context) error {
operation := "hcs::System::Terminate"
- if computeSystem.handle == 0 {
+ if computeSystem.handle == 0 || computeSystem.stopped() {
return nil
}
@@ -265,7 +274,7 @@ func (computeSystem *System) Terminate(ctx context.Context) error {
// safe to call multiple times.
func (computeSystem *System) waitBackground() {
operation := "hcs::System::waitBackground"
- ctx, span := trace.StartSpan(context.Background(), operation)
+ ctx, span := oc.StartSpan(context.Background(), operation)
defer span.End()
span.AddAttributes(trace.StringAttribute("cid", computeSystem.id))
@@ -287,24 +296,40 @@ func (computeSystem *System) waitBackground() {
oc.SetSpanStatus(span, err)
}
+func (computeSystem *System) WaitChannel() <-chan struct{} {
+ return computeSystem.waitBlock
+}
+
+func (computeSystem *System) WaitError() error {
+ return computeSystem.waitError
+}
+
// Wait synchronously waits for the compute system to shutdown or terminate. If
// the compute system has already exited returns the previous error (if any).
func (computeSystem *System) Wait() error {
- <-computeSystem.waitBlock
- return computeSystem.waitError
+ <-computeSystem.WaitChannel()
+ return computeSystem.WaitError()
}
-// ExitError returns an error describing the reason the compute system terminated.
-func (computeSystem *System) ExitError() error {
+// stopped returns true if the compute system stopped.
+func (computeSystem *System) stopped() bool {
select {
case <-computeSystem.waitBlock:
- if computeSystem.waitError != nil {
- return computeSystem.waitError
- }
- return computeSystem.exitError
+ return true
default:
+ }
+ return false
+}
+
+// ExitError returns an error describing the reason the compute system terminated.
+func (computeSystem *System) ExitError() error {
+ if !computeSystem.stopped() {
return errors.New("container not exited")
}
+ if computeSystem.waitError != nil {
+ return computeSystem.waitError
+ }
+ return computeSystem.exitError
}
// Properties returns the requested container properties targeting a V1 schema container.
@@ -314,6 +339,10 @@ func (computeSystem *System) Properties(ctx context.Context, types ...schema1.Pr
operation := "hcs::System::Properties"
+ if computeSystem.handle == 0 {
+ return nil, makeSystemError(computeSystem, operation, ErrAlreadyClosed, nil)
+ }
+
queryBytes, err := json.Marshal(schema1.PropertyQuery{PropertyTypes: types})
if err != nil {
return nil, makeSystemError(computeSystem, operation, err, nil)
@@ -341,7 +370,11 @@ func (computeSystem *System) Properties(ctx context.Context, types ...schema1.Pr
// failed to be queried they will be tallied up and returned in as the first return value. Failures on
// query are NOT considered errors; the only failure case for this method is if the containers job object
// cannot be opened.
-func (computeSystem *System) queryInProc(ctx context.Context, props *hcsschema.Properties, types []hcsschema.PropertyType) ([]hcsschema.PropertyType, error) {
+func (computeSystem *System) queryInProc(
+ ctx context.Context,
+ props *hcsschema.Properties,
+ types []hcsschema.PropertyType,
+) ([]hcsschema.PropertyType, error) {
// In the future we can make use of some new functionality in the HCS that allows you
// to pass a job object for HCS to use for the container. Currently, the only way we'll
// be able to open the job/silo is if we're running as SYSTEM.
@@ -407,7 +440,7 @@ func (computeSystem *System) statisticsInProc(job *jobobject.JobObject) (*hcssch
// as well which isn't great and is wasted work to fetch.
//
// HCS only let's you grab statistics in an all or nothing fashion, so we can't just grab the private
- // working set ourselves and ask for everything else seperately. The optimization we can make here is
+ // working set ourselves and ask for everything else separately. The optimization we can make here is
// to open the silo ourselves and do the same queries for the rest of the info, as well as calculating
// the private working set in a more efficient manner by:
//
@@ -447,6 +480,10 @@ func (computeSystem *System) statisticsInProc(job *jobobject.JobObject) (*hcssch
func (computeSystem *System) hcsPropertiesV2Query(ctx context.Context, types []hcsschema.PropertyType) (*hcsschema.Properties, error) {
operation := "hcs::System::PropertiesV2"
+ if computeSystem.handle == 0 {
+ return nil, makeSystemError(computeSystem, operation, ErrAlreadyClosed, nil)
+ }
+
queryBytes, err := json.Marshal(hcsschema.PropertyQuery{PropertyTypes: types})
if err != nil {
return nil, makeSystemError(computeSystem, operation, err, nil)
@@ -495,7 +532,7 @@ func (computeSystem *System) PropertiesV2(ctx context.Context, types ...hcsschem
if err == nil && len(fallbackTypes) == 0 {
return properties, nil
} else if err != nil {
- logEntry.WithError(fmt.Errorf("failed to query compute system properties in-proc: %w", err))
+ logEntry = logEntry.WithError(fmt.Errorf("failed to query compute system properties in-proc: %w", err))
fallbackTypes = types
}
@@ -527,9 +564,9 @@ func (computeSystem *System) PropertiesV2(ctx context.Context, types ...hcsschem
func (computeSystem *System) Pause(ctx context.Context) (err error) {
operation := "hcs::System::Pause"
- // hcsPauseComputeSystemContext is an async peration. Start the outer span
+ // hcsPauseComputeSystemContext is an async operation. Start the outer span
// here to measure the full pause time.
- ctx, span := trace.StartSpan(ctx, operation)
+ ctx, span := oc.StartSpan(ctx, operation)
defer span.End()
defer func() { oc.SetSpanStatus(span, err) }()
span.AddAttributes(trace.StringAttribute("cid", computeSystem.id))
@@ -542,7 +579,8 @@ func (computeSystem *System) Pause(ctx context.Context) (err error) {
}
resultJSON, err := vmcompute.HcsPauseComputeSystem(ctx, computeSystem.handle, "")
- events, err := processAsyncHcsResult(ctx, err, resultJSON, computeSystem.callbackNumber, hcsNotificationSystemPauseCompleted, &timeout.SystemPause)
+ events, err := processAsyncHcsResult(ctx, err, resultJSON, computeSystem.callbackNumber,
+ hcsNotificationSystemPauseCompleted, &timeout.SystemPause)
if err != nil {
return makeSystemError(computeSystem, operation, err, events)
}
@@ -556,7 +594,7 @@ func (computeSystem *System) Resume(ctx context.Context) (err error) {
// hcsResumeComputeSystemContext is an async operation. Start the outer span
// here to measure the full restore time.
- ctx, span := trace.StartSpan(ctx, operation)
+ ctx, span := oc.StartSpan(ctx, operation)
defer span.End()
defer func() { oc.SetSpanStatus(span, err) }()
span.AddAttributes(trace.StringAttribute("cid", computeSystem.id))
@@ -569,7 +607,8 @@ func (computeSystem *System) Resume(ctx context.Context) (err error) {
}
resultJSON, err := vmcompute.HcsResumeComputeSystem(ctx, computeSystem.handle, "")
- events, err := processAsyncHcsResult(ctx, err, resultJSON, computeSystem.callbackNumber, hcsNotificationSystemResumeCompleted, &timeout.SystemResume)
+ events, err := processAsyncHcsResult(ctx, err, resultJSON, computeSystem.callbackNumber,
+ hcsNotificationSystemResumeCompleted, &timeout.SystemResume)
if err != nil {
return makeSystemError(computeSystem, operation, err, events)
}
@@ -581,9 +620,9 @@ func (computeSystem *System) Resume(ctx context.Context) (err error) {
func (computeSystem *System) Save(ctx context.Context, options interface{}) (err error) {
operation := "hcs::System::Save"
- // hcsSaveComputeSystemContext is an async peration. Start the outer span
+ // hcsSaveComputeSystemContext is an async operation. Start the outer span
// here to measure the full save time.
- ctx, span := trace.StartSpan(ctx, operation)
+ ctx, span := oc.StartSpan(ctx, operation)
defer span.End()
defer func() { oc.SetSpanStatus(span, err) }()
span.AddAttributes(trace.StringAttribute("cid", computeSystem.id))
@@ -601,7 +640,8 @@ func (computeSystem *System) Save(ctx context.Context, options interface{}) (err
}
result, err := vmcompute.HcsSaveComputeSystem(ctx, computeSystem.handle, string(saveOptions))
- events, err := processAsyncHcsResult(ctx, err, result, computeSystem.callbackNumber, hcsNotificationSystemSaveCompleted, &timeout.SystemSave)
+ events, err := processAsyncHcsResult(ctx, err, result, computeSystem.callbackNumber,
+ hcsNotificationSystemSaveCompleted, &timeout.SystemSave)
if err != nil {
return makeSystemError(computeSystem, operation, err, events)
}
@@ -626,6 +666,11 @@ func (computeSystem *System) createProcess(ctx context.Context, operation string
processInfo, processHandle, resultJSON, err := vmcompute.HcsCreateProcess(ctx, computeSystem.handle, configuration)
events := processHcsResult(ctx, resultJSON)
if err != nil {
+ if v2, ok := c.(*hcsschema.ProcessParameters); ok {
+ operation += ": " + v2.CommandLine
+ } else if v1, ok := c.(*schema1.ProcessConfig); ok {
+ operation += ": " + v1.CommandLine
+ }
return nil, nil, makeSystemError(computeSystem, operation, err, events)
}
@@ -692,7 +737,7 @@ func (computeSystem *System) OpenProcess(ctx context.Context, pid int) (*Process
// Close cleans up any state associated with the compute system but does not terminate or wait for it.
func (computeSystem *System) Close() (err error) {
operation := "hcs::System::Close"
- ctx, span := trace.StartSpan(context.Background(), operation)
+ ctx, span := oc.StartSpan(context.Background(), operation)
defer span.End()
defer func() { oc.SetSpanStatus(span, err) }()
span.AddAttributes(trace.StringAttribute("cid", computeSystem.id))
@@ -735,7 +780,8 @@ func (computeSystem *System) registerCallback(ctx context.Context) error {
callbackMap[callbackNumber] = callbackContext
callbackMapLock.Unlock()
- callbackHandle, err := vmcompute.HcsRegisterComputeSystemCallback(ctx, computeSystem.handle, notificationWatcherCallback, callbackNumber)
+ callbackHandle, err := vmcompute.HcsRegisterComputeSystemCallback(ctx, computeSystem.handle,
+ notificationWatcherCallback, callbackNumber)
if err != nil {
return err
}
@@ -762,7 +808,7 @@ func (computeSystem *System) unregisterCallback(ctx context.Context) error {
return nil
}
- // hcsUnregisterComputeSystemCallback has its own syncronization
+ // hcsUnregisterComputeSystemCallback has its own synchronization
// to wait for all callbacks to complete. We must NOT hold the callbackMapLock.
err := vmcompute.HcsUnregisterComputeSystemCallback(ctx, handle)
if err != nil {
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/utils.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/utils.go
index 3342e5bb9..5dcb97eb3 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/utils.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/utils.go
@@ -1,3 +1,5 @@
+//go:build windows
+
package hcs
import (
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/waithelper.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/waithelper.go
index db4e14fdf..3a51ed195 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/waithelper.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/hcs/waithelper.go
@@ -1,3 +1,5 @@
+//go:build windows
+
package hcs
import (
@@ -7,7 +9,14 @@ import (
"github.com/Microsoft/hcsshim/internal/log"
)
-func processAsyncHcsResult(ctx context.Context, err error, resultJSON string, callbackNumber uintptr, expectedNotification hcsNotification, timeout *time.Duration) ([]ErrorEvent, error) {
+func processAsyncHcsResult(
+ ctx context.Context,
+ err error,
+ resultJSON string,
+ callbackNumber uintptr,
+ expectedNotification hcsNotification,
+ timeout *time.Duration,
+) ([]ErrorEvent, error) {
events := processHcsResult(ctx, resultJSON)
if IsPending(err) {
return nil, waitForNotification(ctx, callbackNumber, expectedNotification, timeout)
@@ -16,7 +25,12 @@ func processAsyncHcsResult(ctx context.Context, err error, resultJSON string, ca
return events, err
}
-func waitForNotification(ctx context.Context, callbackNumber uintptr, expectedNotification hcsNotification, timeout *time.Duration) error {
+func waitForNotification(
+ ctx context.Context,
+ callbackNumber uintptr,
+ expectedNotification hcsNotification,
+ timeout *time.Duration,
+) error {
callbackMapLock.RLock()
if _, ok := callbackMap[callbackNumber]; !ok {
callbackMapLock.RUnlock()
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/hcserror/doc.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/hcserror/doc.go
new file mode 100644
index 000000000..ce7067678
--- /dev/null
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/hcserror/doc.go
@@ -0,0 +1 @@
+package hcserror
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/hcserror/hcserror.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/hcserror/hcserror.go
index 921c2c855..a70d80da0 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/hcserror/hcserror.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/hcserror/hcserror.go
@@ -1,11 +1,13 @@
+//go:build windows
+
package hcserror
import (
+ "errors"
"fmt"
- "syscall"
-)
-const ERROR_GEN_FAILURE = syscall.Errno(31)
+ "golang.org/x/sys/windows"
+)
type HcsError struct {
title string
@@ -30,18 +32,21 @@ func (e *HcsError) Error() string {
func New(err error, title, rest string) error {
// Pass through DLL errors directly since they do not originate from HCS.
- if _, ok := err.(*syscall.DLLError); ok {
+ var e *windows.DLLError
+ if errors.As(err, &e) {
return err
}
return &HcsError{title, rest, err}
}
func Win32FromError(err error) uint32 {
- if herr, ok := err.(*HcsError); ok {
+ var herr *HcsError
+ if errors.As(err, &herr) {
return Win32FromError(herr.Err)
}
- if code, ok := err.(syscall.Errno); ok {
+ var code windows.Errno
+ if errors.As(err, &code) {
return uint32(code)
}
- return uint32(ERROR_GEN_FAILURE)
+ return uint32(windows.ERROR_GEN_FAILURE)
}
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/hns/doc.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/hns/doc.go
new file mode 100644
index 000000000..f6d35df0e
--- /dev/null
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/hns/doc.go
@@ -0,0 +1 @@
+package hns
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/hns/hns.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/hns/hns.go
index b2e475f53..ec4c907d1 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/hns/hns.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/hns/hns.go
@@ -2,7 +2,7 @@ package hns
import "fmt"
-//go:generate go run ../../mksyscall_windows.go -output zsyscall_windows.go hns.go
+//go:generate go run github.com/Microsoft/go-winio/tools/mkwinsyscall -output zsyscall_windows.go hns.go
//sys _hnsCall(method string, path string, object string, response **uint16) (hr error) = vmcompute.HNSCall?
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/hns/hnsendpoint.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/hns/hnsendpoint.go
index 7cf954c7b..593664419 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/hns/hnsendpoint.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/hns/hnsendpoint.go
@@ -1,3 +1,5 @@
+//go:build windows
+
package hns
import (
@@ -34,7 +36,7 @@ type HNSEndpoint struct {
SharedContainers []string `json:",omitempty"`
}
-//SystemType represents the type of the system on which actions are done
+// SystemType represents the type of the system on which actions are done
type SystemType string
// SystemType const
@@ -146,7 +148,6 @@ func (endpoint *HNSEndpoint) IsAttached(vID string) (bool, error) {
}
return false, nil
-
}
// Create Endpoint by sending EndpointRequest to HNS. TODO: Create a separate HNS interface to place all these methods
@@ -281,7 +282,6 @@ func (endpoint *HNSEndpoint) HostAttach(compartmentID uint16) error {
return err
}
return hnsCall("POST", "/endpoints/"+endpoint.Id+"/attach", string(jsonString), &response)
-
}
// HostDetach detaches a nic on the host
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/hns/hnsfuncs.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/hns/hnsfuncs.go
index 2df4a57f5..0a8f36d83 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/hns/hnsfuncs.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/hns/hnsfuncs.go
@@ -1,3 +1,5 @@
+//go:build windows
+
package hns
import (
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/hns/hnsglobals.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/hns/hnsglobals.go
index a8d8cc56a..464bb8954 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/hns/hnsglobals.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/hns/hnsglobals.go
@@ -1,3 +1,5 @@
+//go:build windows
+
package hns
type HNSGlobals struct {
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/hns/hnsnetwork.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/hns/hnsnetwork.go
index f12d3ab04..8861faee7 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/hns/hnsnetwork.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/hns/hnsnetwork.go
@@ -1,13 +1,16 @@
+//go:build windows
+
package hns
import (
"encoding/json"
"errors"
- "github.com/sirupsen/logrus"
"net"
+
+ "github.com/sirupsen/logrus"
)
-// Subnet is assoicated with a network and represents a list
+// Subnet is associated with a network and represents a list
// of subnets available to the network
type Subnet struct {
AddressPrefix string `json:",omitempty"`
@@ -15,7 +18,7 @@ type Subnet struct {
Policies []json.RawMessage `json:",omitempty"`
}
-// MacPool is assoicated with a network and represents a list
+// MacPool is associated with a network and represents a list
// of macaddresses available to the network
type MacPool struct {
StartMacAddress string `json:",omitempty"`
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/hns/hnspolicy.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/hns/hnspolicy.go
index 84b368218..082c018a4 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/hns/hnspolicy.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/hns/hnspolicy.go
@@ -94,15 +94,15 @@ type ACLPolicy struct {
InternalPort uint16 `json:",omitempty"`
Action ActionType
Direction DirectionType
- LocalAddresses string `json:",omitempty"`
- RemoteAddresses string `json:",omitempty"`
- LocalPorts string `json:"LocalPorts,omitempty"`
- LocalPort uint16 `json:",omitempty"`
- RemotePorts string `json:"RemotePorts,omitempty"`
- RemotePort uint16 `json:",omitempty"`
- RuleType RuleType `json:"RuleType,omitempty"`
- Priority uint16 `json:",omitempty"`
- ServiceName string `json:",omitempty"`
+ LocalAddresses string `json:",omitempty"`
+ RemoteAddresses string `json:",omitempty"`
+ LocalPorts string `json:"LocalPorts,omitempty"`
+ LocalPort uint16 `json:",omitempty"`
+ RemotePorts string `json:"RemotePorts,omitempty"`
+ RemotePort uint16 `json:",omitempty"`
+ RuleType RuleType `json:"RuleType,omitempty"`
+ Priority uint16 `json:",omitempty"`
+ ServiceName string `json:",omitempty"`
}
type Policy struct {
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/hns/hnspolicylist.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/hns/hnspolicylist.go
index 31322a681..b98db40e8 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/hns/hnspolicylist.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/hns/hnspolicylist.go
@@ -1,3 +1,5 @@
+//go:build windows
+
package hns
import (
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/hns/hnssupport.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/hns/hnssupport.go
index d5efba7f2..b9c30b901 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/hns/hnssupport.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/hns/hnssupport.go
@@ -1,3 +1,5 @@
+//go:build windows
+
package hns
import (
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/hns/namespace.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/hns/namespace.go
index d3b04eefe..749588ad3 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/hns/namespace.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/hns/namespace.go
@@ -1,3 +1,5 @@
+//go:build windows
+
package hns
import (
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/hns/zsyscall_windows.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/hns/zsyscall_windows.go
index 204633a48..a35ee945d 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/hns/zsyscall_windows.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/hns/zsyscall_windows.go
@@ -1,4 +1,6 @@
-// Code generated mksyscall_windows.exe DO NOT EDIT
+//go:build windows
+
+// Code generated by 'go generate' using "github.com/Microsoft/go-winio/tools/mkwinsyscall"; DO NOT EDIT.
package hns
@@ -19,6 +21,7 @@ const (
var (
errERROR_IO_PENDING error = syscall.Errno(errnoERROR_IO_PENDING)
+ errERROR_EINVAL error = syscall.EINVAL
)
// errnoErr returns common boxed Errno values, to prevent
@@ -26,7 +29,7 @@ var (
func errnoErr(e syscall.Errno) error {
switch e {
case 0:
- return nil
+ return errERROR_EINVAL
case errnoERROR_IO_PENDING:
return errERROR_IO_PENDING
}
@@ -62,7 +65,8 @@ func _hnsCall(method string, path string, object string, response **uint16) (hr
}
func __hnsCall(method *uint16, path *uint16, object *uint16, response **uint16) (hr error) {
- if hr = procHNSCall.Find(); hr != nil {
+ hr = procHNSCall.Find()
+ if hr != nil {
return
}
r0, _, _ := syscall.Syscall6(procHNSCall.Addr(), 4, uintptr(unsafe.Pointer(method)), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(object)), uintptr(unsafe.Pointer(response)), 0, 0)
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/interop/doc.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/interop/doc.go
new file mode 100644
index 000000000..cb554867f
--- /dev/null
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/interop/doc.go
@@ -0,0 +1 @@
+package interop
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/interop/interop.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/interop/interop.go
index 922f7c679..a56469656 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/interop/interop.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/interop/interop.go
@@ -1,3 +1,5 @@
+//go:build windows
+
package interop
import (
@@ -5,7 +7,7 @@ import (
"unsafe"
)
-//go:generate go run ../../mksyscall_windows.go -output zsyscall_windows.go interop.go
+//go:generate go run github.com/Microsoft/go-winio/tools/mkwinsyscall -output zsyscall_windows.go interop.go
//sys coTaskMemFree(buffer unsafe.Pointer) = api_ms_win_core_com_l1_1_0.CoTaskMemFree
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/interop/zsyscall_windows.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/interop/zsyscall_windows.go
index 12b0c71c5..a17a11250 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/interop/zsyscall_windows.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/interop/zsyscall_windows.go
@@ -1,4 +1,6 @@
-// Code generated mksyscall_windows.exe DO NOT EDIT
+//go:build windows
+
+// Code generated by 'go generate' using "github.com/Microsoft/go-winio/tools/mkwinsyscall"; DO NOT EDIT.
package interop
@@ -19,6 +21,7 @@ const (
var (
errERROR_IO_PENDING error = syscall.Errno(errnoERROR_IO_PENDING)
+ errERROR_EINVAL error = syscall.EINVAL
)
// errnoErr returns common boxed Errno values, to prevent
@@ -26,7 +29,7 @@ var (
func errnoErr(e syscall.Errno) error {
switch e {
case 0:
- return nil
+ return errERROR_EINVAL
case errnoERROR_IO_PENDING:
return errERROR_IO_PENDING
}
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/jobobject/doc.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/jobobject/doc.go
new file mode 100644
index 000000000..34b53d6e4
--- /dev/null
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/jobobject/doc.go
@@ -0,0 +1,8 @@
+// This package provides higher level constructs for the win32 job object API.
+// Most of the core creation and management functions are already present in "golang.org/x/sys/windows"
+// (CreateJobObject, AssignProcessToJobObject, etc.) as well as most of the limit information
+// structs and associated limit flags. Whatever is not present from the job object API
+// in golang.org/x/sys/windows is located in /internal/winapi.
+//
+// https://docs.microsoft.com/en-us/windows/win32/procthread/job-objects
+package jobobject
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/jobobject/iocp.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/jobobject/iocp.go
index 5d6acd69e..bcca84b0d 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/jobobject/iocp.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/jobobject/iocp.go
@@ -1,3 +1,5 @@
+//go:build windows
+
package jobobject
import (
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/jobobject/jobobject.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/jobobject/jobobject.go
index c9fdd921a..64afd35dc 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/jobobject/jobobject.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/jobobject/jobobject.go
@@ -1,10 +1,15 @@
+//go:build windows
+
package jobobject
import (
"context"
"errors"
"fmt"
+ "os"
+ "path/filepath"
"sync"
+ "sync/atomic"
"unsafe"
"github.com/Microsoft/hcsshim/internal/queue"
@@ -12,19 +17,14 @@ import (
"golang.org/x/sys/windows"
)
-// This file provides higher level constructs for the win32 job object API.
-// Most of the core creation and management functions are already present in "golang.org/x/sys/windows"
-// (CreateJobObject, AssignProcessToJobObject, etc.) as well as most of the limit information
-// structs and associated limit flags. Whatever is not present from the job object API
-// in golang.org/x/sys/windows is located in /internal/winapi.
-//
-// https://docs.microsoft.com/en-us/windows/win32/procthread/job-objects
-
// JobObject is a high level wrapper around a Windows job object. Holds a handle to
// the job, a queue to receive iocp notifications about the lifecycle
// of the job and a mutex for synchronized handle access.
type JobObject struct {
- handle windows.Handle
+ handle windows.Handle
+ // All accesses to this MUST be done atomically except in `Open` as the object
+ // is being created in the function. 1 signifies that this job is currently a silo.
+ silo uint32
mq *queue.MessageQueue
handleLock sync.RWMutex
}
@@ -56,6 +56,7 @@ const (
var (
ErrAlreadyClosed = errors.New("the handle has already been closed")
ErrNotRegistered = errors.New("job is not registered to receive notifications")
+ ErrNotSilo = errors.New("job is not a silo")
)
// Options represents the set of configurable options when making or opening a job object.
@@ -68,6 +69,9 @@ type Options struct {
// `UseNTVariant` specifies if we should use the `Nt` variant of Open/CreateJobObject.
// Defaults to false.
UseNTVariant bool
+ // `Silo` specifies to promote the job to a silo. This additionally sets the flag
+ // JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE as it is required for the upgrade to complete.
+ Silo bool
// `IOTracking` enables tracking I/O statistics on the job object. More specifically this
// calls SetInformationJobObject with the JobObjectIoAttribution class.
EnableIOTracking bool
@@ -143,6 +147,16 @@ func Create(ctx context.Context, options *Options) (_ *JobObject, err error) {
}
}
+ if options.Silo {
+ // This is a required setting for upgrading to a silo.
+ if err := job.SetTerminateOnLastHandleClose(); err != nil {
+ return nil, err
+ }
+ if err := job.PromoteToSilo(); err != nil {
+ return nil, err
+ }
+ }
+
return job, nil
}
@@ -163,7 +177,7 @@ func Open(ctx context.Context, options *Options) (_ *JobObject, err error) {
}
var jobHandle windows.Handle
- if options != nil && options.UseNTVariant {
+ if options.UseNTVariant {
oa := winapi.ObjectAttributes{
Length: unsafe.Sizeof(winapi.ObjectAttributes{}),
ObjectName: unicodeJobName,
@@ -174,7 +188,7 @@ func Open(ctx context.Context, options *Options) (_ *JobObject, err error) {
return nil, winapi.RtlNtStatusToDosError(status)
}
} else {
- jobHandle, err = winapi.OpenJobObject(winapi.JOB_OBJECT_ALL_ACCESS, false, unicodeJobName.Buffer)
+ jobHandle, err = winapi.OpenJobObject(winapi.JOB_OBJECT_ALL_ACCESS, 0, unicodeJobName.Buffer)
if err != nil {
return nil, err
}
@@ -190,9 +204,13 @@ func Open(ctx context.Context, options *Options) (_ *JobObject, err error) {
handle: jobHandle,
}
+ if isJobSilo(jobHandle) {
+ job.silo = 1
+ }
+
// If the IOCP we'll be using to receive messages for all jobs hasn't been
// created, create it and start polling.
- if options != nil && options.Notifications {
+ if options.Notifications {
mq, err := setupNotifications(ctx, job)
if err != nil {
return nil, err
@@ -450,6 +468,119 @@ func (job *JobObject) QueryStorageStats() (*winapi.JOBOBJECT_IO_ATTRIBUTION_INFO
return &info, nil
}
+// ApplyFileBinding makes a file binding using the Bind Filter from target to root. If the job has
+// not been upgraded to a silo this call will fail. The binding is only applied and visible for processes
+// running in the job, any processes on the host or in another job will not be able to see the binding.
+func (job *JobObject) ApplyFileBinding(root, target string, readOnly bool) error {
+ job.handleLock.RLock()
+ defer job.handleLock.RUnlock()
+
+ if job.handle == 0 {
+ return ErrAlreadyClosed
+ }
+
+ if !job.isSilo() {
+ return ErrNotSilo
+ }
+
+ // The parent directory needs to exist for the bind to work. MkdirAll stats and
+ // returns nil if the directory exists internally so we should be fine to mkdirall
+ // every time.
+ if err := os.MkdirAll(filepath.Dir(root), 0); err != nil {
+ return err
+ }
+
+ rootPtr, err := windows.UTF16PtrFromString(root)
+ if err != nil {
+ return err
+ }
+
+ targetPtr, err := windows.UTF16PtrFromString(target)
+ if err != nil {
+ return err
+ }
+
+ flags := winapi.BINDFLT_FLAG_USE_CURRENT_SILO_MAPPING
+ if readOnly {
+ flags |= winapi.BINDFLT_FLAG_READ_ONLY_MAPPING
+ }
+
+ if err := winapi.BfSetupFilter(
+ job.handle,
+ flags,
+ rootPtr,
+ targetPtr,
+ nil,
+ 0,
+ ); err != nil {
+ return fmt.Errorf("failed to bind target %q to root %q for job object: %w", target, root, err)
+ }
+ return nil
+}
+
+// isJobSilo is a helper to determine if a job object that was opened is a silo. This should ONLY be called
+// from `Open` and any callers in this package afterwards should use `job.isSilo()`
+func isJobSilo(h windows.Handle) bool {
+ // None of the information from the structure that this info class expects will be used, this is just used as
+ // the call will fail if the job hasn't been upgraded to a silo so we can use this to tell when we open a job
+ // if it's a silo or not. Because none of the info matters simply define a dummy struct with the size that the call
+ // expects which is 16 bytes.
+ type isSiloObj struct {
+ _ [16]byte
+ }
+ var siloInfo isSiloObj
+ err := winapi.QueryInformationJobObject(
+ h,
+ winapi.JobObjectSiloBasicInformation,
+ unsafe.Pointer(&siloInfo),
+ uint32(unsafe.Sizeof(siloInfo)),
+ nil,
+ )
+ return err == nil
+}
+
+// PromoteToSilo promotes a job object to a silo. There must be no running processess
+// in the job for this to succeed. If the job is already a silo this is a no-op.
+func (job *JobObject) PromoteToSilo() error {
+ job.handleLock.RLock()
+ defer job.handleLock.RUnlock()
+
+ if job.handle == 0 {
+ return ErrAlreadyClosed
+ }
+
+ if job.isSilo() {
+ return nil
+ }
+
+ pids, err := job.Pids()
+ if err != nil {
+ return err
+ }
+
+ if len(pids) != 0 {
+ return fmt.Errorf("job cannot have running processes to be promoted to a silo, found %d running processes", len(pids))
+ }
+
+ _, err = windows.SetInformationJobObject(
+ job.handle,
+ winapi.JobObjectCreateSilo,
+ 0,
+ 0,
+ )
+ if err != nil {
+ return fmt.Errorf("failed to promote job to silo: %w", err)
+ }
+
+ atomic.StoreUint32(&job.silo, 1)
+ return nil
+}
+
+// isSilo returns if the job object is a silo.
+func (job *JobObject) isSilo() bool {
+ return atomic.LoadUint32(&job.silo) == 1
+}
+
// QueryPrivateWorkingSet returns the private working set size for the job. This is calculated by adding up the
// private working set for every process running in the job.
func (job *JobObject) QueryPrivateWorkingSet() (uint64, error) {
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/jobobject/limits.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/jobobject/limits.go
index 4efde292c..03f71d9a4 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/jobobject/limits.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/jobobject/limits.go
@@ -1,3 +1,5 @@
+//go:build windows
+
package jobobject
import (
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/log/context.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/log/context.go
new file mode 100644
index 000000000..d17d909d9
--- /dev/null
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/log/context.go
@@ -0,0 +1,118 @@
+package log
+
+import (
+ "context"
+
+ "github.com/sirupsen/logrus"
+ "go.opencensus.io/trace"
+)
+
+type entryContextKeyType int
+
+const _entryContextKey entryContextKeyType = iota
+
+var (
+ // L is the default, blank logging entry. WithField and co. all return a copy
+ // of the original entry, so this will not leak fields between calls.
+ //
+ // Do NOT modify fields directly, as that will corrupt state for all users and
+ // is not thread safe.
+ // Instead, use `L.With*` or `L.Dup()`. Or `G(context.Background())`.
+ L = logrus.NewEntry(logrus.StandardLogger())
+
+ // G is an alias for GetEntry
+ G = GetEntry
+
+ // S is an alias for SetEntry
+ S = SetEntry
+
+ // U is an alias for UpdateContext
+ U = UpdateContext
+)
+
+// GetEntry returns a `logrus.Entry` stored in the context, if one exists.
+// Otherwise, it returns a default entry that points to the current context.
+//
+// Note: if the a new entry is returned, it will reference the passed in context.
+// However, existing contexts may be stored in parent contexts and additionally reference
+// earlier contexts.
+// Use `UpdateContext` to update the entry and context.
+func GetEntry(ctx context.Context) *logrus.Entry {
+ entry := fromContext(ctx)
+
+ if entry == nil {
+ entry = L.WithContext(ctx)
+ }
+
+ return entry
+}
+
+// SetEntry updates the log entry in the context with the provided fields, and
+// returns both. It is equivalent to:
+//
+// entry := GetEntry(ctx).WithFields(fields)
+// ctx = WithContext(ctx, entry)
+//
+// See WithContext for more information.
+func SetEntry(ctx context.Context, fields logrus.Fields) (context.Context, *logrus.Entry) {
+ e := GetEntry(ctx)
+ if len(fields) > 0 {
+ e = e.WithFields(fields)
+ }
+ return WithContext(ctx, e)
+}
+
+// UpdateContext extracts the log entry from the context, and, if the entry's
+// context points to a parent's of the current context, ands the entry
+// to the most recent context. It is equivalent to:
+//
+// entry := GetEntry(ctx)
+// ctx = WithContext(ctx, entry)
+//
+// This allows the entry to reference the most recent context and any new
+// values (such as span contexts) added to it.
+//
+// See WithContext for more information.
+func UpdateContext(ctx context.Context) context.Context {
+ // there is no way to check its ctx (and not one of its parents) that contains `e`
+ // so, at a slight cost, force add `e` to the context
+ ctx, _ = WithContext(ctx, GetEntry(ctx))
+ return ctx
+}
+
+// WithContext returns a context that contains the provided log entry.
+// The entry can be extracted with `GetEntry` (`G`)
+//
+// The entry in the context is a copy of `entry` (generated by `entry.WithContext`)
+func WithContext(ctx context.Context, entry *logrus.Entry) (context.Context, *logrus.Entry) {
+ // regardless of the order, entry.Context != GetEntry(ctx)
+ // here, the returned entry will reference the supplied context
+ entry = entry.WithContext(ctx)
+ ctx = context.WithValue(ctx, _entryContextKey, entry)
+
+ return ctx, entry
+}
+
+// Copy extracts the tracing Span and logging entry from the src Context, if they
+// exist, and adds them to the dst Context.
+//
+// This is useful to share tracing and logging between contexts, but not the
+// cancellation. For example, if the src Context has been cancelled but cleanup
+// operations triggered by the cancellation require a non-cancelled context to
+// execute.
+func Copy(dst context.Context, src context.Context) context.Context {
+ if s := trace.FromContext(src); s != nil {
+ dst = trace.NewContext(dst, s)
+ }
+
+ if e := fromContext(src); e != nil {
+ dst, _ = WithContext(dst, e)
+ }
+
+ return dst
+}
+
+func fromContext(ctx context.Context) *logrus.Entry {
+ e, _ := ctx.Value(_entryContextKey).(*logrus.Entry)
+ return e
+}
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/log/g.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/log/g.go
deleted file mode 100644
index ba6b1a4a5..000000000
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/log/g.go
+++ /dev/null
@@ -1,23 +0,0 @@
-package log
-
-import (
- "context"
-
- "github.com/sirupsen/logrus"
- "go.opencensus.io/trace"
-)
-
-// G returns a `logrus.Entry` with the `TraceID, SpanID` from `ctx` if `ctx`
-// contains an OpenCensus `trace.Span`.
-func G(ctx context.Context) *logrus.Entry {
- span := trace.FromContext(ctx)
- if span != nil {
- sctx := span.SpanContext()
- return logrus.WithFields(logrus.Fields{
- "traceID": sctx.TraceID.String(),
- "spanID": sctx.SpanID.String(),
- // "parentSpanID": TODO: JTERRY75 - Try to convince OC to export this?
- })
- }
- return logrus.NewEntry(logrus.StandardLogger())
-}
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/log/hook.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/log/hook.go
new file mode 100644
index 000000000..8f8940592
--- /dev/null
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/log/hook.go
@@ -0,0 +1,45 @@
+package log
+
+import (
+ "github.com/Microsoft/hcsshim/internal/logfields"
+ "github.com/sirupsen/logrus"
+ "go.opencensus.io/trace"
+)
+
+// Hook serves to intercept and format `logrus.Entry`s before they are passed
+// to the ETW hook.
+//
+// The containerd shim discards the (formatted) logrus output, and outputs only via ETW.
+// The Linux GCS outputs logrus entries over stdout, which is consumed by the shim and
+// then re-output via the ETW hook.
+type Hook struct{}
+
+var _ logrus.Hook = &Hook{}
+
+func NewHook() *Hook {
+ return &Hook{}
+}
+
+func (h *Hook) Levels() []logrus.Level {
+ return logrus.AllLevels
+}
+
+func (h *Hook) Fire(e *logrus.Entry) (err error) {
+ h.addSpanContext(e)
+
+ return nil
+}
+
+func (h *Hook) addSpanContext(e *logrus.Entry) {
+ ctx := e.Context
+ if ctx == nil {
+ return
+ }
+ span := trace.FromContext(ctx)
+ if span == nil {
+ return
+ }
+ sctx := span.SpanContext()
+ e.Data[logfields.TraceID] = sctx.TraceID.String()
+ e.Data[logfields.SpanID] = sctx.SpanID.String()
+}
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/log/scrub.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/log/scrub.go
new file mode 100644
index 000000000..d51e0fd89
--- /dev/null
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/log/scrub.go
@@ -0,0 +1,194 @@
+package log
+
+import (
+ "bytes"
+ "encoding/json"
+ "errors"
+ "strings"
+ "sync/atomic"
+
+ hcsschema "github.com/Microsoft/hcsshim/internal/hcs/schema2"
+)
+
+// This package scrubs objects of potentially sensitive information to pass to logging
+
+type genMap = map[string]interface{}
+type scrubberFunc func(genMap) error
+
+const _scrubbedReplacement = ""
+
+var (
+ ErrUnknownType = errors.New("encoded object is of unknown type")
+
+ // case sensitive keywords, so "env" is not a substring on "Environment"
+ _scrubKeywords = [][]byte{[]byte("env"), []byte("Environment")}
+
+ _scrub int32
+)
+
+// SetScrubbing enables scrubbing
+func SetScrubbing(enable bool) {
+ v := int32(0) // cant convert from bool to int32 directly
+ if enable {
+ v = 1
+ }
+ atomic.StoreInt32(&_scrub, v)
+}
+
+// IsScrubbingEnabled checks if scrubbing is enabled
+func IsScrubbingEnabled() bool {
+ v := atomic.LoadInt32(&_scrub)
+ return v != 0
+}
+
+// ScrubProcessParameters scrubs HCS Create Process requests with config parameters of
+// type internal/hcs/schema2.ScrubProcessParameters (aka hcsshema.ScrubProcessParameters)
+func ScrubProcessParameters(s string) (string, error) {
+ // todo: deal with v1 ProcessConfig
+ b := []byte(s)
+ if !IsScrubbingEnabled() || !hasKeywords(b) || !json.Valid(b) {
+ return s, nil
+ }
+
+ pp := hcsschema.ProcessParameters{}
+ if err := json.Unmarshal(b, &pp); err != nil {
+ return "", err
+ }
+ pp.Environment = map[string]string{_scrubbedReplacement: _scrubbedReplacement}
+
+ buf := bytes.NewBuffer(b[:0])
+ if err := encode(buf, pp); err != nil {
+ return "", err
+ }
+ return strings.TrimSpace(buf.String()), nil
+}
+
+// ScrubBridgeCreate scrubs requests sent over the bridge of type
+// internal/gcs/protocol.containerCreate wrapping an internal/hcsoci.linuxHostedSystem
+func ScrubBridgeCreate(b []byte) ([]byte, error) {
+ return scrubBytes(b, scrubBridgeCreate)
+}
+
+func scrubBridgeCreate(m genMap) error {
+ if !isRequestBase(m) {
+ return ErrUnknownType
+ }
+ if ss, ok := m["ContainerConfig"]; ok {
+ // ContainerConfig is a json encoded struct passed as a regular string field
+ s, ok := ss.(string)
+ if !ok {
+ return ErrUnknownType
+ }
+ b, err := scrubBytes([]byte(s), scrubLinuxHostedSystem)
+ if err != nil {
+ return err
+ }
+ m["ContainerConfig"] = string(b)
+ return nil
+ }
+ return ErrUnknownType
+}
+
+func scrubLinuxHostedSystem(m genMap) error {
+ if m, ok := index(m, "OciSpecification"); ok {
+ if _, ok := m["annotations"]; ok {
+ m["annotations"] = map[string]string{_scrubbedReplacement: _scrubbedReplacement}
+ }
+ if m, ok := index(m, "process"); ok {
+ if _, ok := m["env"]; ok {
+ m["env"] = []string{_scrubbedReplacement}
+ return nil
+ }
+ }
+ }
+ return ErrUnknownType
+}
+
+// ScrubBridgeExecProcess scrubs requests sent over the bridge of type
+// internal/gcs/protocol.containerExecuteProcess
+func ScrubBridgeExecProcess(b []byte) ([]byte, error) {
+ return scrubBytes(b, scrubExecuteProcess)
+}
+
+func scrubExecuteProcess(m genMap) error {
+ if !isRequestBase(m) {
+ return ErrUnknownType
+ }
+ if m, ok := index(m, "Settings"); ok {
+ if ss, ok := m["ProcessParameters"]; ok {
+ // ProcessParameters is a json encoded struct passed as a regular sting field
+ s, ok := ss.(string)
+ if !ok {
+ return ErrUnknownType
+ }
+
+ s, err := ScrubProcessParameters(s)
+ if err != nil {
+ return err
+ }
+
+ m["ProcessParameters"] = s
+ return nil
+ }
+ }
+ return ErrUnknownType
+}
+
+func scrubBytes(b []byte, scrub scrubberFunc) ([]byte, error) {
+ if !IsScrubbingEnabled() || !hasKeywords(b) || !json.Valid(b) {
+ return b, nil
+ }
+
+ m := make(genMap)
+ if err := json.Unmarshal(b, &m); err != nil {
+ return nil, err
+ }
+
+ // could use regexp, but if the env strings contain braces, the regexp fails
+ // parsing into individual structs would require access to private structs
+ if err := scrub(m); err != nil {
+ return nil, err
+ }
+
+ buf := &bytes.Buffer{}
+ if err := encode(buf, m); err != nil {
+ return nil, err
+ }
+
+ return bytes.TrimSpace(buf.Bytes()), nil
+}
+
+func encode(buf *bytes.Buffer, v interface{}) error {
+ enc := json.NewEncoder(buf)
+ enc.SetEscapeHTML(false)
+ if err := enc.Encode(v); err != nil {
+ return err
+ }
+ return nil
+}
+
+func isRequestBase(m genMap) bool {
+ // neither of these are (currently) `omitempty`
+ _, a := m["ActivityId"]
+ _, c := m["ContainerId"]
+ return a && c
+}
+
+// combination `m, ok := m[s]` and `m, ok := m.(genMap)`
+func index(m genMap, s string) (genMap, bool) {
+ if m, ok := m[s]; ok {
+ mm, ok := m.(genMap)
+ return mm, ok
+ }
+
+ return m, false
+}
+
+func hasKeywords(b []byte) bool {
+ for _, bb := range _scrubKeywords {
+ if bytes.Contains(b, bb) {
+ return true
+ }
+ }
+ return false
+}
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/logfields/fields.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/logfields/fields.go
index cf2c166d9..3e175e522 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/logfields/fields.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/logfields/fields.go
@@ -3,21 +3,44 @@ package logfields
const (
// Identifiers
+ Name = "name"
+ Namespace = "namespace"
+ Operation = "operation"
+
+ ID = "id"
+ SandboxID = "sid"
ContainerID = "cid"
- UVMID = "uvm-id"
+ ExecID = "eid"
ProcessID = "pid"
+ TaskID = "tid"
+ UVMID = "uvm-id"
+
+ // networking and IO
+
+ File = "file"
+ Path = "path"
+ Bytes = "bytes"
+ Pipe = "pipe"
// Common Misc
- // Timeout represents an operation timeout.
- Timeout = "timeout"
+ Attempt = "attemptNo"
JSON = "json"
+ // Time
+
+ StartTime = "startTime"
+ EndTime = "endTime"
+ Duration = "duration"
+ Timeout = "timeout"
+
// Keys/values
Field = "field"
+ Key = "key"
OCIAnnotation = "oci-annotation"
Value = "value"
+ Options = "options"
// Golang type's
@@ -29,4 +52,10 @@ const (
// runhcs
VMShimOperation = "vmshim-op"
+
+ // logging and tracing
+
+ TraceID = "traceID"
+ SpanID = "spanID"
+ ParentSpanID = "parentSpanID"
)
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/memory/pool.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/memory/pool.go
new file mode 100644
index 000000000..1ef5814d7
--- /dev/null
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/memory/pool.go
@@ -0,0 +1,316 @@
+package memory
+
+import (
+ "github.com/pkg/errors"
+)
+
+const (
+ minimumClassSize = MiB
+ maximumClassSize = 4 * GiB
+ memoryClassNumber = 7
+)
+
+var (
+ ErrInvalidMemoryClass = errors.New("invalid memory class")
+ ErrEarlyMerge = errors.New("not all children have been freed")
+ ErrEmptyPoolOperation = errors.New("operation on empty pool")
+)
+
+// GetMemoryClassType returns the minimum memory class type that can hold a device of
+// a given size. The smallest class is 1MB and the largest one is 4GB with 2 bit offset
+// intervals in between, for a total of 7 different classes. This function does not
+// do a validity check
+func GetMemoryClassType(s uint64) classType {
+ s = (s - 1) >> 20
+ memCls := uint32(0)
+ for s > 0 {
+ s = s >> 2
+ memCls++
+ }
+ return classType(memCls)
+}
+
+// GetMemoryClassSize returns size in bytes for a given memory class
+func GetMemoryClassSize(memCls classType) (uint64, error) {
+ if memCls >= memoryClassNumber {
+ return 0, ErrInvalidMemoryClass
+ }
+ return minimumClassSize << (2 * memCls), nil
+}
+
+// region represents a contiguous memory block
+type region struct {
+ // parent region that has been split into 4
+ parent *region
+ class classType
+ // offset represents offset in bytes
+ offset uint64
+}
+
+// memoryPool tracks free and busy (used) memory regions
+type memoryPool struct {
+ free map[uint64]*region
+ busy map[uint64]*region
+}
+
+// PoolAllocator implements a memory allocation strategy similar to buddy-malloc https://github.com/evanw/buddy-malloc/blob/master/buddy-malloc.c
+// We borrow the idea of spanning a tree of fixed size regions on top of a contiguous memory
+// space.
+//
+// There are a total of 7 different region sizes that can be allocated, with the smallest
+// being 1MB and the largest 4GB (the default maximum size of a Virtual PMem device).
+//
+// For efficiency and to reduce fragmentation an entire region is allocated when requested.
+// When there's no available region of requested size, we try to allocate more memory for
+// this particular size by splitting the next available larger region into smaller ones, e.g.
+// if there's no region available for size class 0, we try splitting a region from class 1,
+// then class 2 etc, until we are able to do so or hit the upper limit.
+type PoolAllocator struct {
+ pools [memoryClassNumber]*memoryPool
+}
+
+var _ MappedRegion = ®ion{}
+var _ Allocator = &PoolAllocator{}
+
+func (r *region) Offset() uint64 {
+ return r.offset
+}
+
+func (r *region) Size() uint64 {
+ sz, err := GetMemoryClassSize(r.class)
+ if err != nil {
+ panic(err)
+ }
+ return sz
+}
+
+func (r *region) Type() classType {
+ return r.class
+}
+
+func newEmptyMemoryPool() *memoryPool {
+ return &memoryPool{
+ free: make(map[uint64]*region),
+ busy: make(map[uint64]*region),
+ }
+}
+
+func NewPoolMemoryAllocator() PoolAllocator {
+ pa := PoolAllocator{}
+ p := newEmptyMemoryPool()
+ // by default we allocate a single region with maximum possible size (class type)
+ p.free[0] = ®ion{
+ class: memoryClassNumber - 1,
+ offset: 0,
+ }
+ pa.pools[memoryClassNumber-1] = p
+ return pa
+}
+
+// Allocate checks memory region pool for the given `size` and returns a free region with
+// minimal offset, if none available tries expanding matched memory pool.
+//
+// Internally it's done via moving a region from free pool into a busy pool
+func (pa *PoolAllocator) Allocate(size uint64) (MappedRegion, error) {
+ memCls := GetMemoryClassType(size)
+ if memCls >= memoryClassNumber {
+ return nil, ErrInvalidMemoryClass
+ }
+
+ // find region with the smallest offset
+ nextCls, nextOffset, err := pa.findNextOffset(memCls)
+ if err != nil {
+ return nil, err
+ }
+
+ // this means that there are no more regions for the current class, try expanding
+ if nextCls != memCls {
+ if err := pa.split(memCls); err != nil {
+ if err == ErrInvalidMemoryClass {
+ return nil, ErrNotEnoughSpace
+ }
+ return nil, err
+ }
+ }
+
+ if err := pa.markBusy(memCls, nextOffset); err != nil {
+ return nil, err
+ }
+
+ // by this point memory pool for memCls should have been created,
+ // either prior or during split call
+ if r := pa.pools[memCls].busy[nextOffset]; r != nil {
+ return r, nil
+ }
+
+ return nil, ErrNotEnoughSpace
+}
+
+// Release marks a memory region of class `memCls` and offset `offset` as free and tries to merge smaller regions into
+// a bigger one
+func (pa *PoolAllocator) Release(reg MappedRegion) error {
+ mp := pa.pools[reg.Type()]
+ if mp == nil {
+ return ErrEmptyPoolOperation
+ }
+
+ err := pa.markFree(reg.Type(), reg.Offset())
+ if err != nil {
+ return err
+ }
+
+ n := mp.free[reg.Offset()]
+ if n == nil {
+ return ErrNotAllocated
+ }
+ if err := pa.merge(n.parent); err != nil {
+ if err != ErrEarlyMerge {
+ return err
+ }
+ }
+ return nil
+}
+
+// findNextOffset finds next region location for a given memCls
+func (pa *PoolAllocator) findNextOffset(memCls classType) (classType, uint64, error) {
+ for mc := memCls; mc < memoryClassNumber; mc++ {
+ pi := pa.pools[mc]
+ if pi == nil || len(pi.free) == 0 {
+ continue
+ }
+
+ target := uint64(maximumClassSize)
+ for offset := range pi.free {
+ if offset < target {
+ target = offset
+ }
+ }
+ return mc, target, nil
+ }
+ return 0, 0, ErrNotEnoughSpace
+}
+
+// split tries to recursively split a bigger memory region into smaller ones until it succeeds or hits the upper limit
+func (pa *PoolAllocator) split(clsType classType) error {
+ nextClsType := clsType + 1
+ if nextClsType >= memoryClassNumber {
+ return ErrInvalidMemoryClass
+ }
+
+ nextPool := pa.pools[nextClsType]
+ if nextPool == nil {
+ nextPool = newEmptyMemoryPool()
+ pa.pools[nextClsType] = nextPool
+ }
+
+ cls, offset, err := pa.findNextOffset(nextClsType)
+ if err != nil {
+ return err
+ }
+ // not enough memory in the next class, try to recursively expand
+ if cls != nextClsType {
+ if err := pa.split(nextClsType); err != nil {
+ return err
+ }
+ }
+
+ if err := pa.markBusy(nextClsType, offset); err != nil {
+ return err
+ }
+
+ // memCls validity has been checked already, we can ignore the error
+ clsSize, _ := GetMemoryClassSize(clsType)
+
+ nextReg := nextPool.busy[offset]
+ if nextReg == nil {
+ return ErrNotAllocated
+ }
+
+ // expand memCls
+ cp := pa.pools[clsType]
+ if cp == nil {
+ cp = newEmptyMemoryPool()
+ pa.pools[clsType] = cp
+ }
+ // create 4 smaller regions
+ for i := uint64(0); i < 4; i++ {
+ offset := nextReg.offset + i*clsSize
+ reg := ®ion{
+ parent: nextReg,
+ class: clsType,
+ offset: offset,
+ }
+ cp.free[offset] = reg
+ }
+ return nil
+}
+
+func (pa *PoolAllocator) merge(parent *region) error {
+ // nothing to merge
+ if parent == nil {
+ return nil
+ }
+
+ childCls := parent.class - 1
+ childPool := pa.pools[childCls]
+ // no child nodes to merge, try to merge parent
+ if childPool == nil {
+ return pa.merge(parent.parent)
+ }
+
+ childSize, err := GetMemoryClassSize(childCls)
+ if err != nil {
+ return err
+ }
+
+ // check if all the child nodes are free
+ var children []*region
+ for i := uint64(0); i < 4; i++ {
+ child, free := childPool.free[parent.offset+i*childSize]
+ if !free {
+ return ErrEarlyMerge
+ }
+ children = append(children, child)
+ }
+
+ // at this point all the child nodes will be free and we can merge
+ for _, child := range children {
+ delete(childPool.free, child.offset)
+ }
+
+ if err := pa.markFree(parent.class, parent.offset); err != nil {
+ return err
+ }
+
+ return pa.merge(parent.parent)
+}
+
+// markFree internally moves a region with `offset` from busy to free map
+func (pa *PoolAllocator) markFree(memCls classType, offset uint64) error {
+ clsPool := pa.pools[memCls]
+ if clsPool == nil {
+ return ErrEmptyPoolOperation
+ }
+
+ if reg, exists := clsPool.busy[offset]; exists {
+ clsPool.free[offset] = reg
+ delete(clsPool.busy, offset)
+ return nil
+ }
+ return ErrNotAllocated
+}
+
+// markBusy internally moves a region with `offset` from free to busy map
+func (pa *PoolAllocator) markBusy(memCls classType, offset uint64) error {
+ clsPool := pa.pools[memCls]
+ if clsPool == nil {
+ return ErrEmptyPoolOperation
+ }
+
+ if reg, exists := clsPool.free[offset]; exists {
+ clsPool.busy[offset] = reg
+ delete(clsPool.free, offset)
+ return nil
+ }
+ return ErrNotAllocated
+}
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/memory/types.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/memory/types.go
new file mode 100644
index 000000000..d6cdb8cc4
--- /dev/null
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/memory/types.go
@@ -0,0 +1,28 @@
+package memory
+
+import "github.com/pkg/errors"
+
+type classType uint32
+
+const (
+ MiB = 1024 * 1024
+ GiB = 1024 * MiB
+)
+
+var (
+ ErrNotEnoughSpace = errors.New("not enough space")
+ ErrNotAllocated = errors.New("no memory allocated at the given offset")
+)
+
+// MappedRegion represents a memory block with an offset
+type MappedRegion interface {
+ Offset() uint64
+ Size() uint64
+ Type() classType
+}
+
+// Allocator is an interface for memory allocation
+type Allocator interface {
+ Allocate(uint64) (MappedRegion, error)
+ Release(MappedRegion) error
+}
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/oc/span.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/oc/span.go
index fee4765cb..0e2b7e9bf 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/oc/span.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/oc/span.go
@@ -1,9 +1,14 @@
package oc
import (
+ "context"
+
+ "github.com/Microsoft/hcsshim/internal/log"
"go.opencensus.io/trace"
)
+var DefaultSampler = trace.AlwaysSample()
+
// SetSpanStatus sets `span.SetStatus` to the proper status depending on `err`. If
// `err` is `nil` assumes `trace.StatusCodeOk`.
func SetSpanStatus(span *trace.Span, err error) {
@@ -15,3 +20,29 @@ func SetSpanStatus(span *trace.Span, err error) {
}
span.SetStatus(status)
}
+
+// StartSpan wraps "go.opencensus.io/trace".StartSpan, but, if the span is sampling,
+// adds a log entry to the context that points to the newly created span.
+func StartSpan(ctx context.Context, name string, o ...trace.StartOption) (context.Context, *trace.Span) {
+ ctx, s := trace.StartSpan(ctx, name, o...)
+ return update(ctx, s)
+}
+
+// StartSpanWithRemoteParent wraps "go.opencensus.io/trace".StartSpanWithRemoteParent.
+//
+// See StartSpan for more information.
+func StartSpanWithRemoteParent(ctx context.Context, name string, parent trace.SpanContext, o ...trace.StartOption) (context.Context, *trace.Span) {
+ ctx, s := trace.StartSpanWithRemoteParent(ctx, name, parent, o...)
+ return update(ctx, s)
+}
+
+func update(ctx context.Context, s *trace.Span) (context.Context, *trace.Span) {
+ if s.IsRecordingEvents() {
+ ctx = log.UpdateContext(ctx)
+ }
+
+ return ctx, s
+}
+
+var WithServerSpanKind = trace.WithSpanKind(trace.SpanKindServer)
+var WithClientSpanKind = trace.WithSpanKind(trace.SpanKindClient)
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/protocol/guestrequest/types.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/protocol/guestrequest/types.go
new file mode 100644
index 000000000..d8d0c20b1
--- /dev/null
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/protocol/guestrequest/types.go
@@ -0,0 +1,56 @@
+package guestrequest
+
+// These are constants for v2 schema modify requests.
+
+type RequestType string
+type ResourceType string
+
+// RequestType const
+const (
+ RequestTypeAdd RequestType = "Add"
+ RequestTypeRemove RequestType = "Remove"
+ RequestTypePreAdd RequestType = "PreAdd" // For networking
+ RequestTypeUpdate RequestType = "Update"
+)
+
+type SignalValueWCOW string
+
+const (
+ SignalValueWCOWCtrlC SignalValueWCOW = "CtrlC"
+ SignalValueWCOWCtrlBreak SignalValueWCOW = "CtrlBreak"
+ SignalValueWCOWCtrlClose SignalValueWCOW = "CtrlClose"
+ SignalValueWCOWCtrlLogOff SignalValueWCOW = "CtrlLogOff"
+ SignalValueWCOWCtrlShutdown SignalValueWCOW = "CtrlShutdown"
+)
+
+// ModificationRequest is for modify commands passed to the guest.
+type ModificationRequest struct {
+ RequestType RequestType `json:"RequestType,omitempty"`
+ ResourceType ResourceType `json:"ResourceType,omitempty"`
+ Settings interface{} `json:"Settings,omitempty"`
+}
+
+type NetworkModifyRequest struct {
+ AdapterId string `json:"AdapterId,omitempty"` //nolint:stylecheck
+ RequestType RequestType `json:"RequestType,omitempty"`
+ Settings interface{} `json:"Settings,omitempty"`
+}
+
+type RS4NetworkModifyRequest struct {
+ AdapterInstanceId string `json:"AdapterInstanceId,omitempty"` //nolint:stylecheck
+ RequestType RequestType `json:"RequestType,omitempty"`
+ Settings interface{} `json:"Settings,omitempty"`
+}
+
+var (
+ // V5 GUIDs for SCSI controllers
+ // These GUIDs are created with namespace GUID "d422512d-2bf2-4752-809d-7b82b5fcb1b4"
+ // and index as names. For example, first GUID is created like this:
+ // guid.NewV5("d422512d-2bf2-4752-809d-7b82b5fcb1b4", []byte("0"))
+ ScsiControllerGuids = []string{
+ "df6d0690-79e5-55b6-a5ec-c1e2f77f580a",
+ "0110f83b-de10-5172-a266-78bca56bf50a",
+ "b5d2d8d4-3a75-51bf-945b-3444dc6b8579",
+ "305891a9-b251-5dfe-91a2-c25d9212275b",
+ }
+)
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/safefile/do.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/safefile/do.go
new file mode 100644
index 000000000..f211d25e7
--- /dev/null
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/safefile/do.go
@@ -0,0 +1 @@
+package safefile
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/safefile/safeopen.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/safefile/safeopen.go
index 66b8d7e03..74967f21a 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/safefile/safeopen.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/safefile/safeopen.go
@@ -1,3 +1,5 @@
+//go:build windows
+
package safefile
import (
@@ -156,7 +158,6 @@ func LinkRelative(oldname string, oldroot *os.File, newname string, newroot *os.
if (fi.FileAttributes & syscall.FILE_ATTRIBUTE_REPARSE_POINT) != 0 {
return &os.LinkError{Op: "link", Old: oldf.Name(), New: filepath.Join(newroot.Name(), newname), Err: winapi.RtlNtStatusToDosError(winapi.STATUS_REPARSE_POINT_ENCOUNTERED)}
}
-
} else {
parent = newroot
}
@@ -339,6 +340,33 @@ func MkdirRelative(path string, root *os.File) error {
return err
}
+// MkdirAllRelative creates each directory in the path relative to a root, failing if
+// any existing intermediate path components are reparse points.
+func MkdirAllRelative(path string, root *os.File) error {
+ pathParts := strings.Split(filepath.Clean(path), (string)(filepath.Separator))
+ for index := range pathParts {
+ partialPath := filepath.Join(pathParts[0 : index+1]...)
+ stat, err := LstatRelative(partialPath, root)
+
+ if err != nil {
+ if os.IsNotExist(err) {
+ if err := MkdirRelative(partialPath, root); err != nil {
+ return err
+ }
+ continue
+ }
+ return err
+ }
+
+ if !stat.IsDir() {
+ fullPath := filepath.Join(root.Name(), partialPath)
+ return &os.PathError{Op: "mkdir", Path: fullPath, Err: syscall.ENOTDIR}
+ }
+ }
+
+ return nil
+}
+
// LstatRelative performs a stat operation on a file relative to a root, failing
// if any intermediate path components are reparse points.
func LstatRelative(path string, root *os.File) (os.FileInfo, error) {
diff --git a/tools/vendor/github.com/Microsoft/go-winio/pkg/security/grantvmgroupaccess.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/security/grantvmgroupaccess.go
similarity index 63%
rename from tools/vendor/github.com/Microsoft/go-winio/pkg/security/grantvmgroupaccess.go
rename to tools/vendor/github.com/Microsoft/hcsshim/internal/security/grantvmgroupaccess.go
index 6df87b749..bfcc15769 100644
--- a/tools/vendor/github.com/Microsoft/go-winio/pkg/security/grantvmgroupaccess.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/security/grantvmgroupaccess.go
@@ -20,34 +20,43 @@ type (
securityInformation uint32
trusteeForm uint32
trusteeType uint32
+)
- //nolint:structcheck // structcheck thinks fields are unused, but the are used to pass data to OS
- explicitAccess struct {
- accessPermissions accessMask
- accessMode accessMode
- inheritance inheritMode
- trustee trustee
- }
+type explicitAccess struct {
+ //nolint:structcheck
+ accessPermissions accessMask
+ //nolint:structcheck
+ accessMode accessMode
+ //nolint:structcheck
+ inheritance inheritMode
+ //nolint:structcheck
+ trustee trustee
+}
- //nolint:structcheck,unused // structcheck thinks fields are unused, but the are used to pass data to OS
- trustee struct {
- multipleTrustee *trustee
- multipleTrusteeOperation int32
- trusteeForm trusteeForm
- trusteeType trusteeType
- name uintptr
- }
-)
+type trustee struct {
+ //nolint:unused,structcheck
+ multipleTrustee *trustee
+ //nolint:unused,structcheck
+ multipleTrusteeOperation int32
+ trusteeForm trusteeForm
+ trusteeType trusteeType
+ name uintptr
+}
const (
- accessMaskDesiredPermission accessMask = 1 << 31 // GENERIC_READ
+ AccessMaskNone accessMask = 0
+ AccessMaskRead accessMask = 1 << 31 // GENERIC_READ
+ AccessMaskWrite accessMask = 1 << 30 // GENERIC_WRITE
+ AccessMaskExecute accessMask = 1 << 29 // GENERIC_EXECUTE
+ AccessMaskAll accessMask = 1 << 28 // GENERIC_ALL
+
+ accessMaskDesiredPermission = AccessMaskRead
accessModeGrant accessMode = 1
desiredAccessReadControl desiredAccess = 0x20000
desiredAccessWriteDac desiredAccess = 0x40000
- //cspell:disable-next-line
gvmga = "GrantVmGroupAccess:"
inheritModeNoInheritance inheritMode = 0x0
@@ -60,20 +69,28 @@ const (
shareModeRead shareMode = 0x1
shareModeWrite shareMode = 0x2
- sidVMGroup = "S-1-5-83-0"
+ //nolint:stylecheck // ST1003
+ sidVmGroup = "S-1-5-83-0"
- trusteeFormIsSID trusteeForm = 0
+ trusteeFormIsSid trusteeForm = 0
trusteeTypeWellKnownGroup trusteeType = 5
)
-// GrantVMGroupAccess sets the DACL for a specified file or directory to
+// GrantVmGroupAccess sets the DACL for a specified file or directory to
// include Grant ACE entries for the VM Group SID. This is a golang re-
// implementation of the same function in vmcompute, just not exported in
// RS5. Which kind of sucks. Sucks a lot :/
-//
-//revive:disable-next-line:var-naming VM, not Vm
-func GrantVmGroupAccess(name string) error {
+func GrantVmGroupAccess(name string) error { //nolint:stylecheck // ST1003
+ return GrantVmGroupAccessWithMask(name, accessMaskDesiredPermission)
+}
+
+// GrantVmGroupAccessWithMask sets the desired DACL for a specified file or
+// directory.
+func GrantVmGroupAccessWithMask(name string, access accessMask) error { //nolint:stylecheck // ST1003
+ if access == 0 || access<<4 != 0 {
+ return fmt.Errorf("invalid access mask: 0x%08x", access)
+ }
// Stat (to determine if `name` is a directory).
s, err := os.Stat(name)
if err != nil {
@@ -85,7 +102,9 @@ func GrantVmGroupAccess(name string) error {
if err != nil {
return err // Already wrapped
}
- defer syscall.CloseHandle(fd) //nolint:errcheck
+ defer func() {
+ _ = syscall.CloseHandle(fd)
+ }()
// Get the current DACL and Security Descriptor. Must defer LocalFree on success.
ot := objectTypeFileObject
@@ -95,15 +114,19 @@ func GrantVmGroupAccess(name string) error {
if err := getSecurityInfo(fd, uint32(ot), uint32(si), nil, nil, &origDACL, nil, &sd); err != nil {
return fmt.Errorf("%s GetSecurityInfo %s: %w", gvmga, name, err)
}
- defer syscall.LocalFree((syscall.Handle)(unsafe.Pointer(sd))) //nolint:errcheck
+ defer func() {
+ _, _ = syscall.LocalFree((syscall.Handle)(unsafe.Pointer(sd)))
+ }()
// Generate a new DACL which is the current DACL with the required ACEs added.
// Must defer LocalFree on success.
- newDACL, err := generateDACLWithAcesAdded(name, s.IsDir(), origDACL)
+ newDACL, err := generateDACLWithAcesAdded(name, s.IsDir(), access, origDACL)
if err != nil {
return err // Already wrapped
}
- defer syscall.LocalFree((syscall.Handle)(unsafe.Pointer(newDACL))) //nolint:errcheck
+ defer func() {
+ _, _ = syscall.LocalFree((syscall.Handle)(unsafe.Pointer(newDACL)))
+ }()
// And finally use SetSecurityInfo to apply the updated DACL.
if err := setSecurityInfo(fd, uint32(ot), uint32(si), uintptr(0), uintptr(0), newDACL, uintptr(0)); err != nil {
@@ -118,28 +141,28 @@ func GrantVmGroupAccess(name string) error {
func createFile(name string, isDir bool) (syscall.Handle, error) {
namep, err := syscall.UTF16FromString(name)
if err != nil {
- return syscall.InvalidHandle, fmt.Errorf("could not convernt name to UTF-16: %w", err)
+ return 0, fmt.Errorf("syscall.UTF16FromString %s: %w", name, err)
}
da := uint32(desiredAccessReadControl | desiredAccessWriteDac)
sm := uint32(shareModeRead | shareModeWrite)
fa := uint32(syscall.FILE_ATTRIBUTE_NORMAL)
if isDir {
- fa |= syscall.FILE_FLAG_BACKUP_SEMANTICS
+ fa = uint32(fa | syscall.FILE_FLAG_BACKUP_SEMANTICS)
}
fd, err := syscall.CreateFile(&namep[0], da, sm, nil, syscall.OPEN_EXISTING, fa, 0)
if err != nil {
- return syscall.InvalidHandle, fmt.Errorf("%s syscall.CreateFile %s: %w", gvmga, name, err)
+ return 0, fmt.Errorf("%s syscall.CreateFile %s: %w", gvmga, name, err)
}
return fd, nil
}
// generateDACLWithAcesAdded generates a new DACL with the two needed ACEs added.
// The caller is responsible for LocalFree of the returned DACL on success.
-func generateDACLWithAcesAdded(name string, isDir bool, origDACL uintptr) (uintptr, error) {
+func generateDACLWithAcesAdded(name string, isDir bool, desiredAccess accessMask, origDACL uintptr) (uintptr, error) {
// Generate pointers to the SIDs based on the string SIDs
- sid, err := syscall.StringToSid(sidVMGroup)
+ sid, err := syscall.StringToSid(sidVmGroup)
if err != nil {
- return 0, fmt.Errorf("%s syscall.StringToSid %s %s: %w", gvmga, name, sidVMGroup, err)
+ return 0, fmt.Errorf("%s syscall.StringToSid %s %s: %w", gvmga, name, sidVmGroup, err)
}
inheritance := inheritModeNoInheritance
@@ -149,11 +172,11 @@ func generateDACLWithAcesAdded(name string, isDir bool, origDACL uintptr) (uintp
eaArray := []explicitAccess{
{
- accessPermissions: accessMaskDesiredPermission,
+ accessPermissions: desiredAccess,
accessMode: accessModeGrant,
inheritance: inheritance,
trustee: trustee{
- trusteeForm: trusteeFormIsSID,
+ trusteeForm: trusteeFormIsSid,
trusteeType: trusteeTypeWellKnownGroup,
name: uintptr(unsafe.Pointer(sid)),
},
diff --git a/tools/vendor/github.com/Microsoft/go-winio/pkg/security/syscall_windows.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/security/syscall_windows.go
similarity index 100%
rename from tools/vendor/github.com/Microsoft/go-winio/pkg/security/syscall_windows.go
rename to tools/vendor/github.com/Microsoft/hcsshim/internal/security/syscall_windows.go
diff --git a/tools/vendor/github.com/Microsoft/go-winio/pkg/security/zsyscall_windows.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/security/zsyscall_windows.go
similarity index 100%
rename from tools/vendor/github.com/Microsoft/go-winio/pkg/security/zsyscall_windows.go
rename to tools/vendor/github.com/Microsoft/hcsshim/internal/security/zsyscall_windows.go
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/vmcompute/doc.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/vmcompute/doc.go
new file mode 100644
index 000000000..9dd00c812
--- /dev/null
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/vmcompute/doc.go
@@ -0,0 +1 @@
+package vmcompute
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/vmcompute/vmcompute.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/vmcompute/vmcompute.go
index e7f114b67..79b14ef97 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/vmcompute/vmcompute.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/vmcompute/vmcompute.go
@@ -1,3 +1,5 @@
+//go:build windows
+
package vmcompute
import (
@@ -5,15 +7,17 @@ import (
"syscall"
"time"
+ "github.com/sirupsen/logrus"
+ "go.opencensus.io/trace"
+
"github.com/Microsoft/hcsshim/internal/interop"
"github.com/Microsoft/hcsshim/internal/log"
"github.com/Microsoft/hcsshim/internal/logfields"
"github.com/Microsoft/hcsshim/internal/oc"
"github.com/Microsoft/hcsshim/internal/timeout"
- "go.opencensus.io/trace"
)
-//go:generate go run ../../mksyscall_windows.go -output zsyscall_windows.go vmcompute.go
+//go:generate go run github.com/Microsoft/go-winio/tools/mkwinsyscall -output zsyscall_windows.go vmcompute.go
//sys hcsEnumerateComputeSystems(query string, computeSystems **uint16, result **uint16) (hr error) = vmcompute.HcsEnumerateComputeSystems?
//sys hcsCreateComputeSystem(id string, configuration string, identity syscall.Handle, computeSystem *HcsSystem, result **uint16) (hr error) = vmcompute.HcsCreateComputeSystem?
@@ -62,7 +66,7 @@ type HcsCallback syscall.Handle
type HcsProcessInformation struct {
// ProcessId is the pid of the created process.
ProcessId uint32
- reserved uint32 //nolint:structcheck
+ _ uint32 // reserved padding
// StdInput is the handle associated with the stdin of the process.
StdInput syscall.Handle
// StdOutput is the handle associated with the stdout of the process.
@@ -72,12 +76,28 @@ type HcsProcessInformation struct {
}
func execute(ctx gcontext.Context, timeout time.Duration, f func() error) error {
+ now := time.Now()
if timeout > 0 {
var cancel gcontext.CancelFunc
ctx, cancel = gcontext.WithTimeout(ctx, timeout)
defer cancel()
}
+ // if ctx already has prior deadlines, the shortest timeout takes precedence and is used.
+ // find the true timeout for reporting
+ //
+ // this is mostly an issue with (*UtilityVM).Start(context.Context), which sets its
+ // own (2 minute) timeout.
+ deadline, ok := ctx.Deadline()
+ trueTimeout := timeout
+ if ok {
+ trueTimeout = deadline.Sub(now)
+ log.G(ctx).WithFields(logrus.Fields{
+ logfields.Timeout: trueTimeout,
+ "desiredTimeout": timeout,
+ }).Trace("Executing syscall with deadline")
+ }
+
done := make(chan error, 1)
go func() {
done <- f()
@@ -85,8 +105,10 @@ func execute(ctx gcontext.Context, timeout time.Duration, f func() error) error
select {
case <-ctx.Done():
if ctx.Err() == gcontext.DeadlineExceeded {
- log.G(ctx).WithField(logfields.Timeout, timeout).
- Warning("Syscall did not complete within operation timeout. This may indicate a platform issue. If it appears to be making no forward progress, obtain the stacks and see if there is a syscall stuck in the platform API for a significant length of time.")
+ log.G(ctx).WithField(logfields.Timeout, trueTimeout).
+ Warning("Syscall did not complete within operation timeout. This may indicate a platform issue. " +
+ "If it appears to be making no forward progress, obtain the stacks and see if there is a syscall " +
+ "stuck in the platform API for a significant length of time.")
}
return ctx.Err()
case err := <-done:
@@ -95,7 +117,7 @@ func execute(ctx gcontext.Context, timeout time.Duration, f func() error) error
}
func HcsEnumerateComputeSystems(ctx gcontext.Context, query string) (computeSystems, result string, hr error) {
- ctx, span := trace.StartSpan(ctx, "HcsEnumerateComputeSystems")
+ ctx, span := oc.StartSpan(ctx, "HcsEnumerateComputeSystems")
defer span.End()
defer func() {
if result != "" {
@@ -122,7 +144,7 @@ func HcsEnumerateComputeSystems(ctx gcontext.Context, query string) (computeSyst
}
func HcsCreateComputeSystem(ctx gcontext.Context, id string, configuration string, identity syscall.Handle) (computeSystem HcsSystem, result string, hr error) {
- ctx, span := trace.StartSpan(ctx, "HcsCreateComputeSystem")
+ ctx, span := oc.StartSpan(ctx, "HcsCreateComputeSystem")
defer span.End()
defer func() {
if result != "" {
@@ -147,7 +169,7 @@ func HcsCreateComputeSystem(ctx gcontext.Context, id string, configuration strin
}
func HcsOpenComputeSystem(ctx gcontext.Context, id string) (computeSystem HcsSystem, result string, hr error) {
- ctx, span := trace.StartSpan(ctx, "HcsOpenComputeSystem")
+ ctx, span := oc.StartSpan(ctx, "HcsOpenComputeSystem")
defer span.End()
defer func() {
if result != "" {
@@ -167,7 +189,7 @@ func HcsOpenComputeSystem(ctx gcontext.Context, id string) (computeSystem HcsSys
}
func HcsCloseComputeSystem(ctx gcontext.Context, computeSystem HcsSystem) (hr error) {
- ctx, span := trace.StartSpan(ctx, "HcsCloseComputeSystem")
+ ctx, span := oc.StartSpan(ctx, "HcsCloseComputeSystem")
defer span.End()
defer func() { oc.SetSpanStatus(span, hr) }()
@@ -177,7 +199,7 @@ func HcsCloseComputeSystem(ctx gcontext.Context, computeSystem HcsSystem) (hr er
}
func HcsStartComputeSystem(ctx gcontext.Context, computeSystem HcsSystem, options string) (result string, hr error) {
- ctx, span := trace.StartSpan(ctx, "HcsStartComputeSystem")
+ ctx, span := oc.StartSpan(ctx, "HcsStartComputeSystem")
defer span.End()
defer func() {
if result != "" {
@@ -200,7 +222,7 @@ func HcsStartComputeSystem(ctx gcontext.Context, computeSystem HcsSystem, option
}
func HcsShutdownComputeSystem(ctx gcontext.Context, computeSystem HcsSystem, options string) (result string, hr error) {
- ctx, span := trace.StartSpan(ctx, "HcsShutdownComputeSystem")
+ ctx, span := oc.StartSpan(ctx, "HcsShutdownComputeSystem")
defer span.End()
defer func() {
if result != "" {
@@ -223,7 +245,7 @@ func HcsShutdownComputeSystem(ctx gcontext.Context, computeSystem HcsSystem, opt
}
func HcsTerminateComputeSystem(ctx gcontext.Context, computeSystem HcsSystem, options string) (result string, hr error) {
- ctx, span := trace.StartSpan(ctx, "HcsTerminateComputeSystem")
+ ctx, span := oc.StartSpan(ctx, "HcsTerminateComputeSystem")
defer span.End()
defer func() {
if result != "" {
@@ -246,7 +268,7 @@ func HcsTerminateComputeSystem(ctx gcontext.Context, computeSystem HcsSystem, op
}
func HcsPauseComputeSystem(ctx gcontext.Context, computeSystem HcsSystem, options string) (result string, hr error) {
- ctx, span := trace.StartSpan(ctx, "HcsPauseComputeSystem")
+ ctx, span := oc.StartSpan(ctx, "HcsPauseComputeSystem")
defer span.End()
defer func() {
if result != "" {
@@ -269,7 +291,7 @@ func HcsPauseComputeSystem(ctx gcontext.Context, computeSystem HcsSystem, option
}
func HcsResumeComputeSystem(ctx gcontext.Context, computeSystem HcsSystem, options string) (result string, hr error) {
- ctx, span := trace.StartSpan(ctx, "HcsResumeComputeSystem")
+ ctx, span := oc.StartSpan(ctx, "HcsResumeComputeSystem")
defer span.End()
defer func() {
if result != "" {
@@ -292,7 +314,7 @@ func HcsResumeComputeSystem(ctx gcontext.Context, computeSystem HcsSystem, optio
}
func HcsGetComputeSystemProperties(ctx gcontext.Context, computeSystem HcsSystem, propertyQuery string) (properties, result string, hr error) {
- ctx, span := trace.StartSpan(ctx, "HcsGetComputeSystemProperties")
+ ctx, span := oc.StartSpan(ctx, "HcsGetComputeSystemProperties")
defer span.End()
defer func() {
if result != "" {
@@ -319,7 +341,7 @@ func HcsGetComputeSystemProperties(ctx gcontext.Context, computeSystem HcsSystem
}
func HcsModifyComputeSystem(ctx gcontext.Context, computeSystem HcsSystem, configuration string) (result string, hr error) {
- ctx, span := trace.StartSpan(ctx, "HcsModifyComputeSystem")
+ ctx, span := oc.StartSpan(ctx, "HcsModifyComputeSystem")
defer span.End()
defer func() {
if result != "" {
@@ -340,7 +362,7 @@ func HcsModifyComputeSystem(ctx gcontext.Context, computeSystem HcsSystem, confi
}
func HcsModifyServiceSettings(ctx gcontext.Context, settings string) (result string, hr error) {
- ctx, span := trace.StartSpan(ctx, "HcsModifyServiceSettings")
+ ctx, span := oc.StartSpan(ctx, "HcsModifyServiceSettings")
defer span.End()
defer func() {
if result != "" {
@@ -361,7 +383,7 @@ func HcsModifyServiceSettings(ctx gcontext.Context, settings string) (result str
}
func HcsRegisterComputeSystemCallback(ctx gcontext.Context, computeSystem HcsSystem, callback uintptr, context uintptr) (callbackHandle HcsCallback, hr error) {
- ctx, span := trace.StartSpan(ctx, "HcsRegisterComputeSystemCallback")
+ ctx, span := oc.StartSpan(ctx, "HcsRegisterComputeSystemCallback")
defer span.End()
defer func() { oc.SetSpanStatus(span, hr) }()
@@ -371,7 +393,7 @@ func HcsRegisterComputeSystemCallback(ctx gcontext.Context, computeSystem HcsSys
}
func HcsUnregisterComputeSystemCallback(ctx gcontext.Context, callbackHandle HcsCallback) (hr error) {
- ctx, span := trace.StartSpan(ctx, "HcsUnregisterComputeSystemCallback")
+ ctx, span := oc.StartSpan(ctx, "HcsUnregisterComputeSystemCallback")
defer span.End()
defer func() { oc.SetSpanStatus(span, hr) }()
@@ -381,7 +403,7 @@ func HcsUnregisterComputeSystemCallback(ctx gcontext.Context, callbackHandle Hcs
}
func HcsCreateProcess(ctx gcontext.Context, computeSystem HcsSystem, processParameters string) (processInformation HcsProcessInformation, process HcsProcess, result string, hr error) {
- ctx, span := trace.StartSpan(ctx, "HcsCreateProcess")
+ ctx, span := oc.StartSpan(ctx, "HcsCreateProcess")
defer span.End()
defer func() {
if result != "" {
@@ -389,7 +411,12 @@ func HcsCreateProcess(ctx gcontext.Context, computeSystem HcsSystem, processPara
}
oc.SetSpanStatus(span, hr)
}()
- span.AddAttributes(trace.StringAttribute("processParameters", processParameters))
+ if span.IsRecordingEvents() {
+ // wont handle v1 process parameters
+ if s, err := log.ScrubProcessParameters(processParameters); err == nil {
+ span.AddAttributes(trace.StringAttribute("processParameters", s))
+ }
+ }
return processInformation, process, result, execute(ctx, timeout.SyscallWatcher, func() error {
var resultp *uint16
@@ -402,7 +429,7 @@ func HcsCreateProcess(ctx gcontext.Context, computeSystem HcsSystem, processPara
}
func HcsOpenProcess(ctx gcontext.Context, computeSystem HcsSystem, pid uint32) (process HcsProcess, result string, hr error) {
- ctx, span := trace.StartSpan(ctx, "HcsOpenProcess")
+ ctx, span := oc.StartSpan(ctx, "HcsOpenProcess")
defer span.End()
defer func() {
if result != "" {
@@ -423,7 +450,7 @@ func HcsOpenProcess(ctx gcontext.Context, computeSystem HcsSystem, pid uint32) (
}
func HcsCloseProcess(ctx gcontext.Context, process HcsProcess) (hr error) {
- ctx, span := trace.StartSpan(ctx, "HcsCloseProcess")
+ ctx, span := oc.StartSpan(ctx, "HcsCloseProcess")
defer span.End()
defer func() { oc.SetSpanStatus(span, hr) }()
@@ -433,7 +460,7 @@ func HcsCloseProcess(ctx gcontext.Context, process HcsProcess) (hr error) {
}
func HcsTerminateProcess(ctx gcontext.Context, process HcsProcess) (result string, hr error) {
- ctx, span := trace.StartSpan(ctx, "HcsTerminateProcess")
+ ctx, span := oc.StartSpan(ctx, "HcsTerminateProcess")
defer span.End()
defer func() {
if result != "" {
@@ -453,7 +480,7 @@ func HcsTerminateProcess(ctx gcontext.Context, process HcsProcess) (result strin
}
func HcsSignalProcess(ctx gcontext.Context, process HcsProcess, options string) (result string, hr error) {
- ctx, span := trace.StartSpan(ctx, "HcsSignalProcess")
+ ctx, span := oc.StartSpan(ctx, "HcsSignalProcess")
defer span.End()
defer func() {
if result != "" {
@@ -474,7 +501,7 @@ func HcsSignalProcess(ctx gcontext.Context, process HcsProcess, options string)
}
func HcsGetProcessInfo(ctx gcontext.Context, process HcsProcess) (processInformation HcsProcessInformation, result string, hr error) {
- ctx, span := trace.StartSpan(ctx, "HcsGetProcessInfo")
+ ctx, span := oc.StartSpan(ctx, "HcsGetProcessInfo")
defer span.End()
defer func() {
if result != "" {
@@ -494,7 +521,7 @@ func HcsGetProcessInfo(ctx gcontext.Context, process HcsProcess) (processInforma
}
func HcsGetProcessProperties(ctx gcontext.Context, process HcsProcess) (processProperties, result string, hr error) {
- ctx, span := trace.StartSpan(ctx, "HcsGetProcessProperties")
+ ctx, span := oc.StartSpan(ctx, "HcsGetProcessProperties")
defer span.End()
defer func() {
if result != "" {
@@ -520,7 +547,7 @@ func HcsGetProcessProperties(ctx gcontext.Context, process HcsProcess) (processP
}
func HcsModifyProcess(ctx gcontext.Context, process HcsProcess, settings string) (result string, hr error) {
- ctx, span := trace.StartSpan(ctx, "HcsModifyProcess")
+ ctx, span := oc.StartSpan(ctx, "HcsModifyProcess")
defer span.End()
defer func() {
if result != "" {
@@ -541,7 +568,7 @@ func HcsModifyProcess(ctx gcontext.Context, process HcsProcess, settings string)
}
func HcsGetServiceProperties(ctx gcontext.Context, propertyQuery string) (properties, result string, hr error) {
- ctx, span := trace.StartSpan(ctx, "HcsGetServiceProperties")
+ ctx, span := oc.StartSpan(ctx, "HcsGetServiceProperties")
defer span.End()
defer func() {
if result != "" {
@@ -568,7 +595,7 @@ func HcsGetServiceProperties(ctx gcontext.Context, propertyQuery string) (proper
}
func HcsRegisterProcessCallback(ctx gcontext.Context, process HcsProcess, callback uintptr, context uintptr) (callbackHandle HcsCallback, hr error) {
- ctx, span := trace.StartSpan(ctx, "HcsRegisterProcessCallback")
+ ctx, span := oc.StartSpan(ctx, "HcsRegisterProcessCallback")
defer span.End()
defer func() { oc.SetSpanStatus(span, hr) }()
@@ -578,7 +605,7 @@ func HcsRegisterProcessCallback(ctx gcontext.Context, process HcsProcess, callba
}
func HcsUnregisterProcessCallback(ctx gcontext.Context, callbackHandle HcsCallback) (hr error) {
- ctx, span := trace.StartSpan(ctx, "HcsUnregisterProcessCallback")
+ ctx, span := oc.StartSpan(ctx, "HcsUnregisterProcessCallback")
defer span.End()
defer func() { oc.SetSpanStatus(span, hr) }()
@@ -588,7 +615,7 @@ func HcsUnregisterProcessCallback(ctx gcontext.Context, callbackHandle HcsCallba
}
func HcsSaveComputeSystem(ctx gcontext.Context, computeSystem HcsSystem, options string) (result string, hr error) {
- ctx, span := trace.StartSpan(ctx, "HcsSaveComputeSystem")
+ ctx, span := oc.StartSpan(ctx, "HcsSaveComputeSystem")
defer span.End()
defer func() {
if result != "" {
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/vmcompute/zsyscall_windows.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/vmcompute/zsyscall_windows.go
index cae55058d..42368872b 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/vmcompute/zsyscall_windows.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/vmcompute/zsyscall_windows.go
@@ -1,4 +1,6 @@
-// Code generated mksyscall_windows.exe DO NOT EDIT
+//go:build windows
+
+// Code generated by 'go generate' using "github.com/Microsoft/go-winio/tools/mkwinsyscall"; DO NOT EDIT.
package vmcompute
@@ -19,6 +21,7 @@ const (
var (
errERROR_IO_PENDING error = syscall.Errno(errnoERROR_IO_PENDING)
+ errERROR_EINVAL error = syscall.EINVAL
)
// errnoErr returns common boxed Errno values, to prevent
@@ -26,7 +29,7 @@ var (
func errnoErr(e syscall.Errno) error {
switch e {
case 0:
- return nil
+ return errERROR_EINVAL
case errnoERROR_IO_PENDING:
return errERROR_IO_PENDING
}
@@ -39,48 +42,55 @@ func errnoErr(e syscall.Errno) error {
var (
modvmcompute = windows.NewLazySystemDLL("vmcompute.dll")
- procHcsEnumerateComputeSystems = modvmcompute.NewProc("HcsEnumerateComputeSystems")
- procHcsCreateComputeSystem = modvmcompute.NewProc("HcsCreateComputeSystem")
- procHcsOpenComputeSystem = modvmcompute.NewProc("HcsOpenComputeSystem")
procHcsCloseComputeSystem = modvmcompute.NewProc("HcsCloseComputeSystem")
- procHcsStartComputeSystem = modvmcompute.NewProc("HcsStartComputeSystem")
- procHcsShutdownComputeSystem = modvmcompute.NewProc("HcsShutdownComputeSystem")
- procHcsTerminateComputeSystem = modvmcompute.NewProc("HcsTerminateComputeSystem")
- procHcsPauseComputeSystem = modvmcompute.NewProc("HcsPauseComputeSystem")
- procHcsResumeComputeSystem = modvmcompute.NewProc("HcsResumeComputeSystem")
+ procHcsCloseProcess = modvmcompute.NewProc("HcsCloseProcess")
+ procHcsCreateComputeSystem = modvmcompute.NewProc("HcsCreateComputeSystem")
+ procHcsCreateProcess = modvmcompute.NewProc("HcsCreateProcess")
+ procHcsEnumerateComputeSystems = modvmcompute.NewProc("HcsEnumerateComputeSystems")
procHcsGetComputeSystemProperties = modvmcompute.NewProc("HcsGetComputeSystemProperties")
+ procHcsGetProcessInfo = modvmcompute.NewProc("HcsGetProcessInfo")
+ procHcsGetProcessProperties = modvmcompute.NewProc("HcsGetProcessProperties")
+ procHcsGetServiceProperties = modvmcompute.NewProc("HcsGetServiceProperties")
procHcsModifyComputeSystem = modvmcompute.NewProc("HcsModifyComputeSystem")
+ procHcsModifyProcess = modvmcompute.NewProc("HcsModifyProcess")
procHcsModifyServiceSettings = modvmcompute.NewProc("HcsModifyServiceSettings")
+ procHcsOpenComputeSystem = modvmcompute.NewProc("HcsOpenComputeSystem")
+ procHcsOpenProcess = modvmcompute.NewProc("HcsOpenProcess")
+ procHcsPauseComputeSystem = modvmcompute.NewProc("HcsPauseComputeSystem")
procHcsRegisterComputeSystemCallback = modvmcompute.NewProc("HcsRegisterComputeSystemCallback")
- procHcsUnregisterComputeSystemCallback = modvmcompute.NewProc("HcsUnregisterComputeSystemCallback")
+ procHcsRegisterProcessCallback = modvmcompute.NewProc("HcsRegisterProcessCallback")
+ procHcsResumeComputeSystem = modvmcompute.NewProc("HcsResumeComputeSystem")
procHcsSaveComputeSystem = modvmcompute.NewProc("HcsSaveComputeSystem")
- procHcsCreateProcess = modvmcompute.NewProc("HcsCreateProcess")
- procHcsOpenProcess = modvmcompute.NewProc("HcsOpenProcess")
- procHcsCloseProcess = modvmcompute.NewProc("HcsCloseProcess")
- procHcsTerminateProcess = modvmcompute.NewProc("HcsTerminateProcess")
+ procHcsShutdownComputeSystem = modvmcompute.NewProc("HcsShutdownComputeSystem")
procHcsSignalProcess = modvmcompute.NewProc("HcsSignalProcess")
- procHcsGetProcessInfo = modvmcompute.NewProc("HcsGetProcessInfo")
- procHcsGetProcessProperties = modvmcompute.NewProc("HcsGetProcessProperties")
- procHcsModifyProcess = modvmcompute.NewProc("HcsModifyProcess")
- procHcsGetServiceProperties = modvmcompute.NewProc("HcsGetServiceProperties")
- procHcsRegisterProcessCallback = modvmcompute.NewProc("HcsRegisterProcessCallback")
+ procHcsStartComputeSystem = modvmcompute.NewProc("HcsStartComputeSystem")
+ procHcsTerminateComputeSystem = modvmcompute.NewProc("HcsTerminateComputeSystem")
+ procHcsTerminateProcess = modvmcompute.NewProc("HcsTerminateProcess")
+ procHcsUnregisterComputeSystemCallback = modvmcompute.NewProc("HcsUnregisterComputeSystemCallback")
procHcsUnregisterProcessCallback = modvmcompute.NewProc("HcsUnregisterProcessCallback")
)
-func hcsEnumerateComputeSystems(query string, computeSystems **uint16, result **uint16) (hr error) {
- var _p0 *uint16
- _p0, hr = syscall.UTF16PtrFromString(query)
+func hcsCloseComputeSystem(computeSystem HcsSystem) (hr error) {
+ hr = procHcsCloseComputeSystem.Find()
if hr != nil {
return
}
- return _hcsEnumerateComputeSystems(_p0, computeSystems, result)
+ r0, _, _ := syscall.Syscall(procHcsCloseComputeSystem.Addr(), 1, uintptr(computeSystem), 0, 0)
+ if int32(r0) < 0 {
+ if r0&0x1fff0000 == 0x00070000 {
+ r0 &= 0xffff
+ }
+ hr = syscall.Errno(r0)
+ }
+ return
}
-func _hcsEnumerateComputeSystems(query *uint16, computeSystems **uint16, result **uint16) (hr error) {
- if hr = procHcsEnumerateComputeSystems.Find(); hr != nil {
+func hcsCloseProcess(process HcsProcess) (hr error) {
+ hr = procHcsCloseProcess.Find()
+ if hr != nil {
return
}
- r0, _, _ := syscall.Syscall(procHcsEnumerateComputeSystems.Addr(), 3, uintptr(unsafe.Pointer(query)), uintptr(unsafe.Pointer(computeSystems)), uintptr(unsafe.Pointer(result)))
+ r0, _, _ := syscall.Syscall(procHcsCloseProcess.Addr(), 1, uintptr(process), 0, 0)
if int32(r0) < 0 {
if r0&0x1fff0000 == 0x00070000 {
r0 &= 0xffff
@@ -105,7 +115,8 @@ func hcsCreateComputeSystem(id string, configuration string, identity syscall.Ha
}
func _hcsCreateComputeSystem(id *uint16, configuration *uint16, identity syscall.Handle, computeSystem *HcsSystem, result **uint16) (hr error) {
- if hr = procHcsCreateComputeSystem.Find(); hr != nil {
+ hr = procHcsCreateComputeSystem.Find()
+ if hr != nil {
return
}
r0, _, _ := syscall.Syscall6(procHcsCreateComputeSystem.Addr(), 5, uintptr(unsafe.Pointer(id)), uintptr(unsafe.Pointer(configuration)), uintptr(identity), uintptr(unsafe.Pointer(computeSystem)), uintptr(unsafe.Pointer(result)), 0)
@@ -118,34 +129,21 @@ func _hcsCreateComputeSystem(id *uint16, configuration *uint16, identity syscall
return
}
-func hcsOpenComputeSystem(id string, computeSystem *HcsSystem, result **uint16) (hr error) {
+func hcsCreateProcess(computeSystem HcsSystem, processParameters string, processInformation *HcsProcessInformation, process *HcsProcess, result **uint16) (hr error) {
var _p0 *uint16
- _p0, hr = syscall.UTF16PtrFromString(id)
+ _p0, hr = syscall.UTF16PtrFromString(processParameters)
if hr != nil {
return
}
- return _hcsOpenComputeSystem(_p0, computeSystem, result)
-}
-
-func _hcsOpenComputeSystem(id *uint16, computeSystem *HcsSystem, result **uint16) (hr error) {
- if hr = procHcsOpenComputeSystem.Find(); hr != nil {
- return
- }
- r0, _, _ := syscall.Syscall(procHcsOpenComputeSystem.Addr(), 3, uintptr(unsafe.Pointer(id)), uintptr(unsafe.Pointer(computeSystem)), uintptr(unsafe.Pointer(result)))
- if int32(r0) < 0 {
- if r0&0x1fff0000 == 0x00070000 {
- r0 &= 0xffff
- }
- hr = syscall.Errno(r0)
- }
- return
+ return _hcsCreateProcess(computeSystem, _p0, processInformation, process, result)
}
-func hcsCloseComputeSystem(computeSystem HcsSystem) (hr error) {
- if hr = procHcsCloseComputeSystem.Find(); hr != nil {
+func _hcsCreateProcess(computeSystem HcsSystem, processParameters *uint16, processInformation *HcsProcessInformation, process *HcsProcess, result **uint16) (hr error) {
+ hr = procHcsCreateProcess.Find()
+ if hr != nil {
return
}
- r0, _, _ := syscall.Syscall(procHcsCloseComputeSystem.Addr(), 1, uintptr(computeSystem), 0, 0)
+ r0, _, _ := syscall.Syscall6(procHcsCreateProcess.Addr(), 5, uintptr(computeSystem), uintptr(unsafe.Pointer(processParameters)), uintptr(unsafe.Pointer(processInformation)), uintptr(unsafe.Pointer(process)), uintptr(unsafe.Pointer(result)), 0)
if int32(r0) < 0 {
if r0&0x1fff0000 == 0x00070000 {
r0 &= 0xffff
@@ -155,20 +153,21 @@ func hcsCloseComputeSystem(computeSystem HcsSystem) (hr error) {
return
}
-func hcsStartComputeSystem(computeSystem HcsSystem, options string, result **uint16) (hr error) {
+func hcsEnumerateComputeSystems(query string, computeSystems **uint16, result **uint16) (hr error) {
var _p0 *uint16
- _p0, hr = syscall.UTF16PtrFromString(options)
+ _p0, hr = syscall.UTF16PtrFromString(query)
if hr != nil {
return
}
- return _hcsStartComputeSystem(computeSystem, _p0, result)
+ return _hcsEnumerateComputeSystems(_p0, computeSystems, result)
}
-func _hcsStartComputeSystem(computeSystem HcsSystem, options *uint16, result **uint16) (hr error) {
- if hr = procHcsStartComputeSystem.Find(); hr != nil {
+func _hcsEnumerateComputeSystems(query *uint16, computeSystems **uint16, result **uint16) (hr error) {
+ hr = procHcsEnumerateComputeSystems.Find()
+ if hr != nil {
return
}
- r0, _, _ := syscall.Syscall(procHcsStartComputeSystem.Addr(), 3, uintptr(computeSystem), uintptr(unsafe.Pointer(options)), uintptr(unsafe.Pointer(result)))
+ r0, _, _ := syscall.Syscall(procHcsEnumerateComputeSystems.Addr(), 3, uintptr(unsafe.Pointer(query)), uintptr(unsafe.Pointer(computeSystems)), uintptr(unsafe.Pointer(result)))
if int32(r0) < 0 {
if r0&0x1fff0000 == 0x00070000 {
r0 &= 0xffff
@@ -178,20 +177,21 @@ func _hcsStartComputeSystem(computeSystem HcsSystem, options *uint16, result **u
return
}
-func hcsShutdownComputeSystem(computeSystem HcsSystem, options string, result **uint16) (hr error) {
+func hcsGetComputeSystemProperties(computeSystem HcsSystem, propertyQuery string, properties **uint16, result **uint16) (hr error) {
var _p0 *uint16
- _p0, hr = syscall.UTF16PtrFromString(options)
+ _p0, hr = syscall.UTF16PtrFromString(propertyQuery)
if hr != nil {
return
}
- return _hcsShutdownComputeSystem(computeSystem, _p0, result)
+ return _hcsGetComputeSystemProperties(computeSystem, _p0, properties, result)
}
-func _hcsShutdownComputeSystem(computeSystem HcsSystem, options *uint16, result **uint16) (hr error) {
- if hr = procHcsShutdownComputeSystem.Find(); hr != nil {
+func _hcsGetComputeSystemProperties(computeSystem HcsSystem, propertyQuery *uint16, properties **uint16, result **uint16) (hr error) {
+ hr = procHcsGetComputeSystemProperties.Find()
+ if hr != nil {
return
}
- r0, _, _ := syscall.Syscall(procHcsShutdownComputeSystem.Addr(), 3, uintptr(computeSystem), uintptr(unsafe.Pointer(options)), uintptr(unsafe.Pointer(result)))
+ r0, _, _ := syscall.Syscall6(procHcsGetComputeSystemProperties.Addr(), 4, uintptr(computeSystem), uintptr(unsafe.Pointer(propertyQuery)), uintptr(unsafe.Pointer(properties)), uintptr(unsafe.Pointer(result)), 0, 0)
if int32(r0) < 0 {
if r0&0x1fff0000 == 0x00070000 {
r0 &= 0xffff
@@ -201,20 +201,12 @@ func _hcsShutdownComputeSystem(computeSystem HcsSystem, options *uint16, result
return
}
-func hcsTerminateComputeSystem(computeSystem HcsSystem, options string, result **uint16) (hr error) {
- var _p0 *uint16
- _p0, hr = syscall.UTF16PtrFromString(options)
+func hcsGetProcessInfo(process HcsProcess, processInformation *HcsProcessInformation, result **uint16) (hr error) {
+ hr = procHcsGetProcessInfo.Find()
if hr != nil {
return
}
- return _hcsTerminateComputeSystem(computeSystem, _p0, result)
-}
-
-func _hcsTerminateComputeSystem(computeSystem HcsSystem, options *uint16, result **uint16) (hr error) {
- if hr = procHcsTerminateComputeSystem.Find(); hr != nil {
- return
- }
- r0, _, _ := syscall.Syscall(procHcsTerminateComputeSystem.Addr(), 3, uintptr(computeSystem), uintptr(unsafe.Pointer(options)), uintptr(unsafe.Pointer(result)))
+ r0, _, _ := syscall.Syscall(procHcsGetProcessInfo.Addr(), 3, uintptr(process), uintptr(unsafe.Pointer(processInformation)), uintptr(unsafe.Pointer(result)))
if int32(r0) < 0 {
if r0&0x1fff0000 == 0x00070000 {
r0 &= 0xffff
@@ -224,20 +216,12 @@ func _hcsTerminateComputeSystem(computeSystem HcsSystem, options *uint16, result
return
}
-func hcsPauseComputeSystem(computeSystem HcsSystem, options string, result **uint16) (hr error) {
- var _p0 *uint16
- _p0, hr = syscall.UTF16PtrFromString(options)
+func hcsGetProcessProperties(process HcsProcess, processProperties **uint16, result **uint16) (hr error) {
+ hr = procHcsGetProcessProperties.Find()
if hr != nil {
return
}
- return _hcsPauseComputeSystem(computeSystem, _p0, result)
-}
-
-func _hcsPauseComputeSystem(computeSystem HcsSystem, options *uint16, result **uint16) (hr error) {
- if hr = procHcsPauseComputeSystem.Find(); hr != nil {
- return
- }
- r0, _, _ := syscall.Syscall(procHcsPauseComputeSystem.Addr(), 3, uintptr(computeSystem), uintptr(unsafe.Pointer(options)), uintptr(unsafe.Pointer(result)))
+ r0, _, _ := syscall.Syscall(procHcsGetProcessProperties.Addr(), 3, uintptr(process), uintptr(unsafe.Pointer(processProperties)), uintptr(unsafe.Pointer(result)))
if int32(r0) < 0 {
if r0&0x1fff0000 == 0x00070000 {
r0 &= 0xffff
@@ -247,20 +231,21 @@ func _hcsPauseComputeSystem(computeSystem HcsSystem, options *uint16, result **u
return
}
-func hcsResumeComputeSystem(computeSystem HcsSystem, options string, result **uint16) (hr error) {
+func hcsGetServiceProperties(propertyQuery string, properties **uint16, result **uint16) (hr error) {
var _p0 *uint16
- _p0, hr = syscall.UTF16PtrFromString(options)
+ _p0, hr = syscall.UTF16PtrFromString(propertyQuery)
if hr != nil {
return
}
- return _hcsResumeComputeSystem(computeSystem, _p0, result)
+ return _hcsGetServiceProperties(_p0, properties, result)
}
-func _hcsResumeComputeSystem(computeSystem HcsSystem, options *uint16, result **uint16) (hr error) {
- if hr = procHcsResumeComputeSystem.Find(); hr != nil {
+func _hcsGetServiceProperties(propertyQuery *uint16, properties **uint16, result **uint16) (hr error) {
+ hr = procHcsGetServiceProperties.Find()
+ if hr != nil {
return
}
- r0, _, _ := syscall.Syscall(procHcsResumeComputeSystem.Addr(), 3, uintptr(computeSystem), uintptr(unsafe.Pointer(options)), uintptr(unsafe.Pointer(result)))
+ r0, _, _ := syscall.Syscall(procHcsGetServiceProperties.Addr(), 3, uintptr(unsafe.Pointer(propertyQuery)), uintptr(unsafe.Pointer(properties)), uintptr(unsafe.Pointer(result)))
if int32(r0) < 0 {
if r0&0x1fff0000 == 0x00070000 {
r0 &= 0xffff
@@ -270,20 +255,21 @@ func _hcsResumeComputeSystem(computeSystem HcsSystem, options *uint16, result **
return
}
-func hcsGetComputeSystemProperties(computeSystem HcsSystem, propertyQuery string, properties **uint16, result **uint16) (hr error) {
+func hcsModifyComputeSystem(computeSystem HcsSystem, configuration string, result **uint16) (hr error) {
var _p0 *uint16
- _p0, hr = syscall.UTF16PtrFromString(propertyQuery)
+ _p0, hr = syscall.UTF16PtrFromString(configuration)
if hr != nil {
return
}
- return _hcsGetComputeSystemProperties(computeSystem, _p0, properties, result)
+ return _hcsModifyComputeSystem(computeSystem, _p0, result)
}
-func _hcsGetComputeSystemProperties(computeSystem HcsSystem, propertyQuery *uint16, properties **uint16, result **uint16) (hr error) {
- if hr = procHcsGetComputeSystemProperties.Find(); hr != nil {
+func _hcsModifyComputeSystem(computeSystem HcsSystem, configuration *uint16, result **uint16) (hr error) {
+ hr = procHcsModifyComputeSystem.Find()
+ if hr != nil {
return
}
- r0, _, _ := syscall.Syscall6(procHcsGetComputeSystemProperties.Addr(), 4, uintptr(computeSystem), uintptr(unsafe.Pointer(propertyQuery)), uintptr(unsafe.Pointer(properties)), uintptr(unsafe.Pointer(result)), 0, 0)
+ r0, _, _ := syscall.Syscall(procHcsModifyComputeSystem.Addr(), 3, uintptr(computeSystem), uintptr(unsafe.Pointer(configuration)), uintptr(unsafe.Pointer(result)))
if int32(r0) < 0 {
if r0&0x1fff0000 == 0x00070000 {
r0 &= 0xffff
@@ -293,20 +279,21 @@ func _hcsGetComputeSystemProperties(computeSystem HcsSystem, propertyQuery *uint
return
}
-func hcsModifyComputeSystem(computeSystem HcsSystem, configuration string, result **uint16) (hr error) {
+func hcsModifyProcess(process HcsProcess, settings string, result **uint16) (hr error) {
var _p0 *uint16
- _p0, hr = syscall.UTF16PtrFromString(configuration)
+ _p0, hr = syscall.UTF16PtrFromString(settings)
if hr != nil {
return
}
- return _hcsModifyComputeSystem(computeSystem, _p0, result)
+ return _hcsModifyProcess(process, _p0, result)
}
-func _hcsModifyComputeSystem(computeSystem HcsSystem, configuration *uint16, result **uint16) (hr error) {
- if hr = procHcsModifyComputeSystem.Find(); hr != nil {
+func _hcsModifyProcess(process HcsProcess, settings *uint16, result **uint16) (hr error) {
+ hr = procHcsModifyProcess.Find()
+ if hr != nil {
return
}
- r0, _, _ := syscall.Syscall(procHcsModifyComputeSystem.Addr(), 3, uintptr(computeSystem), uintptr(unsafe.Pointer(configuration)), uintptr(unsafe.Pointer(result)))
+ r0, _, _ := syscall.Syscall(procHcsModifyProcess.Addr(), 3, uintptr(process), uintptr(unsafe.Pointer(settings)), uintptr(unsafe.Pointer(result)))
if int32(r0) < 0 {
if r0&0x1fff0000 == 0x00070000 {
r0 &= 0xffff
@@ -326,7 +313,8 @@ func hcsModifyServiceSettings(settings string, result **uint16) (hr error) {
}
func _hcsModifyServiceSettings(settings *uint16, result **uint16) (hr error) {
- if hr = procHcsModifyServiceSettings.Find(); hr != nil {
+ hr = procHcsModifyServiceSettings.Find()
+ if hr != nil {
return
}
r0, _, _ := syscall.Syscall(procHcsModifyServiceSettings.Addr(), 2, uintptr(unsafe.Pointer(settings)), uintptr(unsafe.Pointer(result)), 0)
@@ -339,11 +327,21 @@ func _hcsModifyServiceSettings(settings *uint16, result **uint16) (hr error) {
return
}
-func hcsRegisterComputeSystemCallback(computeSystem HcsSystem, callback uintptr, context uintptr, callbackHandle *HcsCallback) (hr error) {
- if hr = procHcsRegisterComputeSystemCallback.Find(); hr != nil {
+func hcsOpenComputeSystem(id string, computeSystem *HcsSystem, result **uint16) (hr error) {
+ var _p0 *uint16
+ _p0, hr = syscall.UTF16PtrFromString(id)
+ if hr != nil {
return
}
- r0, _, _ := syscall.Syscall6(procHcsRegisterComputeSystemCallback.Addr(), 4, uintptr(computeSystem), uintptr(callback), uintptr(context), uintptr(unsafe.Pointer(callbackHandle)), 0, 0)
+ return _hcsOpenComputeSystem(_p0, computeSystem, result)
+}
+
+func _hcsOpenComputeSystem(id *uint16, computeSystem *HcsSystem, result **uint16) (hr error) {
+ hr = procHcsOpenComputeSystem.Find()
+ if hr != nil {
+ return
+ }
+ r0, _, _ := syscall.Syscall(procHcsOpenComputeSystem.Addr(), 3, uintptr(unsafe.Pointer(id)), uintptr(unsafe.Pointer(computeSystem)), uintptr(unsafe.Pointer(result)))
if int32(r0) < 0 {
if r0&0x1fff0000 == 0x00070000 {
r0 &= 0xffff
@@ -353,11 +351,12 @@ func hcsRegisterComputeSystemCallback(computeSystem HcsSystem, callback uintptr,
return
}
-func hcsUnregisterComputeSystemCallback(callbackHandle HcsCallback) (hr error) {
- if hr = procHcsUnregisterComputeSystemCallback.Find(); hr != nil {
+func hcsOpenProcess(computeSystem HcsSystem, pid uint32, process *HcsProcess, result **uint16) (hr error) {
+ hr = procHcsOpenProcess.Find()
+ if hr != nil {
return
}
- r0, _, _ := syscall.Syscall(procHcsUnregisterComputeSystemCallback.Addr(), 1, uintptr(callbackHandle), 0, 0)
+ r0, _, _ := syscall.Syscall6(procHcsOpenProcess.Addr(), 4, uintptr(computeSystem), uintptr(pid), uintptr(unsafe.Pointer(process)), uintptr(unsafe.Pointer(result)), 0, 0)
if int32(r0) < 0 {
if r0&0x1fff0000 == 0x00070000 {
r0 &= 0xffff
@@ -367,20 +366,21 @@ func hcsUnregisterComputeSystemCallback(callbackHandle HcsCallback) (hr error) {
return
}
-func hcsSaveComputeSystem(computeSystem HcsSystem, options string, result **uint16) (hr error) {
+func hcsPauseComputeSystem(computeSystem HcsSystem, options string, result **uint16) (hr error) {
var _p0 *uint16
_p0, hr = syscall.UTF16PtrFromString(options)
if hr != nil {
return
}
- return _hcsSaveComputeSystem(computeSystem, _p0, result)
+ return _hcsPauseComputeSystem(computeSystem, _p0, result)
}
-func _hcsSaveComputeSystem(computeSystem HcsSystem, options *uint16, result **uint16) (hr error) {
- if hr = procHcsSaveComputeSystem.Find(); hr != nil {
+func _hcsPauseComputeSystem(computeSystem HcsSystem, options *uint16, result **uint16) (hr error) {
+ hr = procHcsPauseComputeSystem.Find()
+ if hr != nil {
return
}
- r0, _, _ := syscall.Syscall(procHcsSaveComputeSystem.Addr(), 3, uintptr(computeSystem), uintptr(unsafe.Pointer(options)), uintptr(unsafe.Pointer(result)))
+ r0, _, _ := syscall.Syscall(procHcsPauseComputeSystem.Addr(), 3, uintptr(computeSystem), uintptr(unsafe.Pointer(options)), uintptr(unsafe.Pointer(result)))
if int32(r0) < 0 {
if r0&0x1fff0000 == 0x00070000 {
r0 &= 0xffff
@@ -390,20 +390,27 @@ func _hcsSaveComputeSystem(computeSystem HcsSystem, options *uint16, result **ui
return
}
-func hcsCreateProcess(computeSystem HcsSystem, processParameters string, processInformation *HcsProcessInformation, process *HcsProcess, result **uint16) (hr error) {
- var _p0 *uint16
- _p0, hr = syscall.UTF16PtrFromString(processParameters)
+func hcsRegisterComputeSystemCallback(computeSystem HcsSystem, callback uintptr, context uintptr, callbackHandle *HcsCallback) (hr error) {
+ hr = procHcsRegisterComputeSystemCallback.Find()
if hr != nil {
return
}
- return _hcsCreateProcess(computeSystem, _p0, processInformation, process, result)
+ r0, _, _ := syscall.Syscall6(procHcsRegisterComputeSystemCallback.Addr(), 4, uintptr(computeSystem), uintptr(callback), uintptr(context), uintptr(unsafe.Pointer(callbackHandle)), 0, 0)
+ if int32(r0) < 0 {
+ if r0&0x1fff0000 == 0x00070000 {
+ r0 &= 0xffff
+ }
+ hr = syscall.Errno(r0)
+ }
+ return
}
-func _hcsCreateProcess(computeSystem HcsSystem, processParameters *uint16, processInformation *HcsProcessInformation, process *HcsProcess, result **uint16) (hr error) {
- if hr = procHcsCreateProcess.Find(); hr != nil {
+func hcsRegisterProcessCallback(process HcsProcess, callback uintptr, context uintptr, callbackHandle *HcsCallback) (hr error) {
+ hr = procHcsRegisterProcessCallback.Find()
+ if hr != nil {
return
}
- r0, _, _ := syscall.Syscall6(procHcsCreateProcess.Addr(), 5, uintptr(computeSystem), uintptr(unsafe.Pointer(processParameters)), uintptr(unsafe.Pointer(processInformation)), uintptr(unsafe.Pointer(process)), uintptr(unsafe.Pointer(result)), 0)
+ r0, _, _ := syscall.Syscall6(procHcsRegisterProcessCallback.Addr(), 4, uintptr(process), uintptr(callback), uintptr(context), uintptr(unsafe.Pointer(callbackHandle)), 0, 0)
if int32(r0) < 0 {
if r0&0x1fff0000 == 0x00070000 {
r0 &= 0xffff
@@ -413,11 +420,21 @@ func _hcsCreateProcess(computeSystem HcsSystem, processParameters *uint16, proce
return
}
-func hcsOpenProcess(computeSystem HcsSystem, pid uint32, process *HcsProcess, result **uint16) (hr error) {
- if hr = procHcsOpenProcess.Find(); hr != nil {
+func hcsResumeComputeSystem(computeSystem HcsSystem, options string, result **uint16) (hr error) {
+ var _p0 *uint16
+ _p0, hr = syscall.UTF16PtrFromString(options)
+ if hr != nil {
return
}
- r0, _, _ := syscall.Syscall6(procHcsOpenProcess.Addr(), 4, uintptr(computeSystem), uintptr(pid), uintptr(unsafe.Pointer(process)), uintptr(unsafe.Pointer(result)), 0, 0)
+ return _hcsResumeComputeSystem(computeSystem, _p0, result)
+}
+
+func _hcsResumeComputeSystem(computeSystem HcsSystem, options *uint16, result **uint16) (hr error) {
+ hr = procHcsResumeComputeSystem.Find()
+ if hr != nil {
+ return
+ }
+ r0, _, _ := syscall.Syscall(procHcsResumeComputeSystem.Addr(), 3, uintptr(computeSystem), uintptr(unsafe.Pointer(options)), uintptr(unsafe.Pointer(result)))
if int32(r0) < 0 {
if r0&0x1fff0000 == 0x00070000 {
r0 &= 0xffff
@@ -427,11 +444,21 @@ func hcsOpenProcess(computeSystem HcsSystem, pid uint32, process *HcsProcess, re
return
}
-func hcsCloseProcess(process HcsProcess) (hr error) {
- if hr = procHcsCloseProcess.Find(); hr != nil {
+func hcsSaveComputeSystem(computeSystem HcsSystem, options string, result **uint16) (hr error) {
+ var _p0 *uint16
+ _p0, hr = syscall.UTF16PtrFromString(options)
+ if hr != nil {
return
}
- r0, _, _ := syscall.Syscall(procHcsCloseProcess.Addr(), 1, uintptr(process), 0, 0)
+ return _hcsSaveComputeSystem(computeSystem, _p0, result)
+}
+
+func _hcsSaveComputeSystem(computeSystem HcsSystem, options *uint16, result **uint16) (hr error) {
+ hr = procHcsSaveComputeSystem.Find()
+ if hr != nil {
+ return
+ }
+ r0, _, _ := syscall.Syscall(procHcsSaveComputeSystem.Addr(), 3, uintptr(computeSystem), uintptr(unsafe.Pointer(options)), uintptr(unsafe.Pointer(result)))
if int32(r0) < 0 {
if r0&0x1fff0000 == 0x00070000 {
r0 &= 0xffff
@@ -441,11 +468,21 @@ func hcsCloseProcess(process HcsProcess) (hr error) {
return
}
-func hcsTerminateProcess(process HcsProcess, result **uint16) (hr error) {
- if hr = procHcsTerminateProcess.Find(); hr != nil {
+func hcsShutdownComputeSystem(computeSystem HcsSystem, options string, result **uint16) (hr error) {
+ var _p0 *uint16
+ _p0, hr = syscall.UTF16PtrFromString(options)
+ if hr != nil {
return
}
- r0, _, _ := syscall.Syscall(procHcsTerminateProcess.Addr(), 2, uintptr(process), uintptr(unsafe.Pointer(result)), 0)
+ return _hcsShutdownComputeSystem(computeSystem, _p0, result)
+}
+
+func _hcsShutdownComputeSystem(computeSystem HcsSystem, options *uint16, result **uint16) (hr error) {
+ hr = procHcsShutdownComputeSystem.Find()
+ if hr != nil {
+ return
+ }
+ r0, _, _ := syscall.Syscall(procHcsShutdownComputeSystem.Addr(), 3, uintptr(computeSystem), uintptr(unsafe.Pointer(options)), uintptr(unsafe.Pointer(result)))
if int32(r0) < 0 {
if r0&0x1fff0000 == 0x00070000 {
r0 &= 0xffff
@@ -465,7 +502,8 @@ func hcsSignalProcess(process HcsProcess, options string, result **uint16) (hr e
}
func _hcsSignalProcess(process HcsProcess, options *uint16, result **uint16) (hr error) {
- if hr = procHcsSignalProcess.Find(); hr != nil {
+ hr = procHcsSignalProcess.Find()
+ if hr != nil {
return
}
r0, _, _ := syscall.Syscall(procHcsSignalProcess.Addr(), 3, uintptr(process), uintptr(unsafe.Pointer(options)), uintptr(unsafe.Pointer(result)))
@@ -478,25 +516,21 @@ func _hcsSignalProcess(process HcsProcess, options *uint16, result **uint16) (hr
return
}
-func hcsGetProcessInfo(process HcsProcess, processInformation *HcsProcessInformation, result **uint16) (hr error) {
- if hr = procHcsGetProcessInfo.Find(); hr != nil {
+func hcsStartComputeSystem(computeSystem HcsSystem, options string, result **uint16) (hr error) {
+ var _p0 *uint16
+ _p0, hr = syscall.UTF16PtrFromString(options)
+ if hr != nil {
return
}
- r0, _, _ := syscall.Syscall(procHcsGetProcessInfo.Addr(), 3, uintptr(process), uintptr(unsafe.Pointer(processInformation)), uintptr(unsafe.Pointer(result)))
- if int32(r0) < 0 {
- if r0&0x1fff0000 == 0x00070000 {
- r0 &= 0xffff
- }
- hr = syscall.Errno(r0)
- }
- return
+ return _hcsStartComputeSystem(computeSystem, _p0, result)
}
-func hcsGetProcessProperties(process HcsProcess, processProperties **uint16, result **uint16) (hr error) {
- if hr = procHcsGetProcessProperties.Find(); hr != nil {
+func _hcsStartComputeSystem(computeSystem HcsSystem, options *uint16, result **uint16) (hr error) {
+ hr = procHcsStartComputeSystem.Find()
+ if hr != nil {
return
}
- r0, _, _ := syscall.Syscall(procHcsGetProcessProperties.Addr(), 3, uintptr(process), uintptr(unsafe.Pointer(processProperties)), uintptr(unsafe.Pointer(result)))
+ r0, _, _ := syscall.Syscall(procHcsStartComputeSystem.Addr(), 3, uintptr(computeSystem), uintptr(unsafe.Pointer(options)), uintptr(unsafe.Pointer(result)))
if int32(r0) < 0 {
if r0&0x1fff0000 == 0x00070000 {
r0 &= 0xffff
@@ -506,20 +540,21 @@ func hcsGetProcessProperties(process HcsProcess, processProperties **uint16, res
return
}
-func hcsModifyProcess(process HcsProcess, settings string, result **uint16) (hr error) {
+func hcsTerminateComputeSystem(computeSystem HcsSystem, options string, result **uint16) (hr error) {
var _p0 *uint16
- _p0, hr = syscall.UTF16PtrFromString(settings)
+ _p0, hr = syscall.UTF16PtrFromString(options)
if hr != nil {
return
}
- return _hcsModifyProcess(process, _p0, result)
+ return _hcsTerminateComputeSystem(computeSystem, _p0, result)
}
-func _hcsModifyProcess(process HcsProcess, settings *uint16, result **uint16) (hr error) {
- if hr = procHcsModifyProcess.Find(); hr != nil {
+func _hcsTerminateComputeSystem(computeSystem HcsSystem, options *uint16, result **uint16) (hr error) {
+ hr = procHcsTerminateComputeSystem.Find()
+ if hr != nil {
return
}
- r0, _, _ := syscall.Syscall(procHcsModifyProcess.Addr(), 3, uintptr(process), uintptr(unsafe.Pointer(settings)), uintptr(unsafe.Pointer(result)))
+ r0, _, _ := syscall.Syscall(procHcsTerminateComputeSystem.Addr(), 3, uintptr(computeSystem), uintptr(unsafe.Pointer(options)), uintptr(unsafe.Pointer(result)))
if int32(r0) < 0 {
if r0&0x1fff0000 == 0x00070000 {
r0 &= 0xffff
@@ -529,20 +564,12 @@ func _hcsModifyProcess(process HcsProcess, settings *uint16, result **uint16) (h
return
}
-func hcsGetServiceProperties(propertyQuery string, properties **uint16, result **uint16) (hr error) {
- var _p0 *uint16
- _p0, hr = syscall.UTF16PtrFromString(propertyQuery)
+func hcsTerminateProcess(process HcsProcess, result **uint16) (hr error) {
+ hr = procHcsTerminateProcess.Find()
if hr != nil {
return
}
- return _hcsGetServiceProperties(_p0, properties, result)
-}
-
-func _hcsGetServiceProperties(propertyQuery *uint16, properties **uint16, result **uint16) (hr error) {
- if hr = procHcsGetServiceProperties.Find(); hr != nil {
- return
- }
- r0, _, _ := syscall.Syscall(procHcsGetServiceProperties.Addr(), 3, uintptr(unsafe.Pointer(propertyQuery)), uintptr(unsafe.Pointer(properties)), uintptr(unsafe.Pointer(result)))
+ r0, _, _ := syscall.Syscall(procHcsTerminateProcess.Addr(), 2, uintptr(process), uintptr(unsafe.Pointer(result)), 0)
if int32(r0) < 0 {
if r0&0x1fff0000 == 0x00070000 {
r0 &= 0xffff
@@ -552,11 +579,12 @@ func _hcsGetServiceProperties(propertyQuery *uint16, properties **uint16, result
return
}
-func hcsRegisterProcessCallback(process HcsProcess, callback uintptr, context uintptr, callbackHandle *HcsCallback) (hr error) {
- if hr = procHcsRegisterProcessCallback.Find(); hr != nil {
+func hcsUnregisterComputeSystemCallback(callbackHandle HcsCallback) (hr error) {
+ hr = procHcsUnregisterComputeSystemCallback.Find()
+ if hr != nil {
return
}
- r0, _, _ := syscall.Syscall6(procHcsRegisterProcessCallback.Addr(), 4, uintptr(process), uintptr(callback), uintptr(context), uintptr(unsafe.Pointer(callbackHandle)), 0, 0)
+ r0, _, _ := syscall.Syscall(procHcsUnregisterComputeSystemCallback.Addr(), 1, uintptr(callbackHandle), 0, 0)
if int32(r0) < 0 {
if r0&0x1fff0000 == 0x00070000 {
r0 &= 0xffff
@@ -567,7 +595,8 @@ func hcsRegisterProcessCallback(process HcsProcess, callback uintptr, context ui
}
func hcsUnregisterProcessCallback(callbackHandle HcsCallback) (hr error) {
- if hr = procHcsUnregisterProcessCallback.Find(); hr != nil {
+ hr = procHcsUnregisterProcessCallback.Find()
+ if hr != nil {
return
}
r0, _, _ := syscall.Syscall(procHcsUnregisterProcessCallback.Addr(), 1, uintptr(callbackHandle), 0, 0)
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/activatelayer.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/activatelayer.go
index 5debe974d..e12253c94 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/activatelayer.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/activatelayer.go
@@ -1,3 +1,5 @@
+//go:build windows
+
package wclayer
import (
@@ -14,7 +16,7 @@ import (
// An activated layer must later be deactivated via DeactivateLayer.
func ActivateLayer(ctx context.Context, path string) (err error) {
title := "hcsshim::ActivateLayer"
- ctx, span := trace.StartSpan(ctx, title) //nolint:ineffassign,staticcheck
+ ctx, span := oc.StartSpan(ctx, title) //nolint:ineffassign,staticcheck
defer span.End()
defer func() { oc.SetSpanStatus(span, err) }()
span.AddAttributes(trace.StringAttribute("path", path))
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/baselayerreader.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/baselayerreader.go
new file mode 100644
index 000000000..ec4423eff
--- /dev/null
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/baselayerreader.go
@@ -0,0 +1,216 @@
+package wclayer
+
+import (
+ "errors"
+ "io"
+ "os"
+ "path/filepath"
+ "strings"
+ "syscall"
+
+ "github.com/Microsoft/go-winio"
+ "github.com/Microsoft/hcsshim/internal/longpath"
+ "github.com/Microsoft/hcsshim/internal/oc"
+ "go.opencensus.io/trace"
+)
+
+type baseLayerReader struct {
+ s *trace.Span
+ root string
+ result chan *fileEntry
+ proceed chan bool
+ currentFile *os.File
+ backupReader *winio.BackupFileReader
+}
+
+func newBaseLayerReader(root string, s *trace.Span) (r *baseLayerReader) {
+ r = &baseLayerReader{
+ s: s,
+ root: root,
+ result: make(chan *fileEntry),
+ proceed: make(chan bool),
+ }
+ go r.walk()
+ return r
+}
+
+func (r *baseLayerReader) walkUntilCancelled() error {
+ root, err := longpath.LongAbs(r.root)
+ if err != nil {
+ return err
+ }
+
+ r.root = root
+
+ err = filepath.Walk(filepath.Join(r.root, filesPath), func(path string, info os.FileInfo, err error) error {
+ if err != nil {
+ return err
+ }
+
+ // Indirect fix for https://github.com/moby/moby/issues/32838#issuecomment-343610048.
+ // Handle failure from what may be a golang bug in the conversion of
+ // UTF16 to UTF8 in files which are left in the recycle bin. Os.Lstat
+ // which is called by filepath.Walk will fail when a filename contains
+ // unicode characters. Skip the recycle bin regardless which is goodness.
+ if strings.EqualFold(path, filepath.Join(r.root, `Files\$Recycle.Bin`)) && info.IsDir() {
+ return filepath.SkipDir
+ }
+
+ r.result <- &fileEntry{path, info, nil}
+ if !<-r.proceed {
+ return errorIterationCanceled
+ }
+
+ return nil
+ })
+
+ if err == errorIterationCanceled {
+ return nil
+ }
+
+ if err != nil {
+ return err
+ }
+
+ utilityVMAbsPath := filepath.Join(r.root, utilityVMPath)
+ utilityVMFilesAbsPath := filepath.Join(r.root, utilityVMFilesPath)
+
+ // Ignore a UtilityVM without Files, that's not _really_ a UtiltyVM
+ if _, err = os.Lstat(utilityVMFilesAbsPath); err != nil {
+ if os.IsNotExist(err) {
+ return io.EOF
+ }
+ return err
+ }
+
+ err = filepath.Walk(utilityVMAbsPath, func(path string, info os.FileInfo, err error) error {
+ if err != nil {
+ return err
+ }
+
+ if path != utilityVMAbsPath && path != utilityVMFilesAbsPath && !hasPathPrefix(path, utilityVMFilesAbsPath) {
+ if info.IsDir() {
+ return filepath.SkipDir
+ }
+ return nil
+ }
+
+ r.result <- &fileEntry{path, info, nil}
+ if !<-r.proceed {
+ return errorIterationCanceled
+ }
+
+ return nil
+ })
+
+ if err == errorIterationCanceled {
+ return nil
+ }
+
+ if err != nil {
+ return err
+ }
+
+ return io.EOF
+}
+
+func (r *baseLayerReader) walk() {
+ defer close(r.result)
+ if !<-r.proceed {
+ return
+ }
+
+ err := r.walkUntilCancelled()
+ if err != nil {
+ for {
+ r.result <- &fileEntry{err: err}
+ if !<-r.proceed {
+ return
+ }
+ }
+ }
+}
+
+func (r *baseLayerReader) reset() {
+ if r.backupReader != nil {
+ r.backupReader.Close()
+ r.backupReader = nil
+ }
+ if r.currentFile != nil {
+ r.currentFile.Close()
+ r.currentFile = nil
+ }
+}
+
+func (r *baseLayerReader) Next() (path string, size int64, fileInfo *winio.FileBasicInfo, err error) {
+ r.reset()
+ r.proceed <- true
+ fe := <-r.result
+ if fe == nil {
+ err = errors.New("BaseLayerReader closed")
+ return
+ }
+ if fe.err != nil {
+ err = fe.err
+ return
+ }
+
+ path, err = filepath.Rel(r.root, fe.path)
+ if err != nil {
+ return
+ }
+
+ f, err := openFileOrDir(fe.path, syscall.GENERIC_READ, syscall.OPEN_EXISTING)
+ if err != nil {
+ return
+ }
+ defer func() {
+ if f != nil {
+ f.Close()
+ }
+ }()
+
+ fileInfo, err = winio.GetFileBasicInfo(f)
+ if err != nil {
+ return
+ }
+
+ size = fe.fi.Size()
+ r.backupReader = winio.NewBackupFileReader(f, true)
+
+ r.currentFile = f
+ f = nil
+ return
+}
+
+func (r *baseLayerReader) LinkInfo() (uint32, *winio.FileIDInfo, error) {
+ fileStandardInfo, err := winio.GetFileStandardInfo(r.currentFile)
+ if err != nil {
+ return 0, nil, err
+ }
+ fileIDInfo, err := winio.GetFileID(r.currentFile)
+ if err != nil {
+ return 0, nil, err
+ }
+ return fileStandardInfo.NumberOfLinks, fileIDInfo, nil
+}
+
+func (r *baseLayerReader) Read(b []byte) (int, error) {
+ if r.backupReader == nil {
+ return 0, io.EOF
+ }
+ return r.backupReader.Read(b)
+}
+
+func (r *baseLayerReader) Close() (err error) {
+ defer r.s.End()
+ defer func() {
+ oc.SetSpanStatus(r.s, err)
+ close(r.proceed)
+ }()
+ r.proceed <- false
+ // The r.result channel will be closed once walk() returns
+ <-r.result
+ r.reset()
+ return nil
+}
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/baselayer.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/baselayerwriter.go
similarity index 99%
rename from tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/baselayer.go
rename to tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/baselayerwriter.go
index 3ec708d1e..aea8b421e 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/baselayer.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/baselayerwriter.go
@@ -1,3 +1,5 @@
+//go:build windows
+
package wclayer
import (
@@ -48,7 +50,6 @@ func reapplyDirectoryTimes(root *os.File, dis []dirInfo) error {
if err != nil {
return err
}
-
}
return nil
}
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/converttobaselayer.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/converttobaselayer.go
new file mode 100644
index 000000000..ceb3b5083
--- /dev/null
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/converttobaselayer.go
@@ -0,0 +1,158 @@
+package wclayer
+
+import (
+ "context"
+ "fmt"
+ "os"
+ "path/filepath"
+ "syscall"
+
+ "github.com/Microsoft/hcsshim/internal/hcserror"
+ "github.com/Microsoft/hcsshim/internal/longpath"
+ "github.com/Microsoft/hcsshim/internal/oc"
+ "github.com/Microsoft/hcsshim/internal/safefile"
+ "github.com/Microsoft/hcsshim/internal/winapi"
+ "github.com/pkg/errors"
+ "go.opencensus.io/trace"
+ "golang.org/x/sys/windows"
+)
+
+var hiveNames = []string{"DEFAULT", "SAM", "SECURITY", "SOFTWARE", "SYSTEM"}
+
+// Ensure the given file exists as an ordinary file, and create a minimal hive file if not.
+func ensureHive(path string, root *os.File) (err error) {
+ _, err = safefile.LstatRelative(path, root)
+ if err != nil && !os.IsNotExist(err) {
+ return fmt.Errorf("accessing %s: %w", path, err)
+ }
+
+ version := windows.RtlGetVersion()
+ if version == nil {
+ return fmt.Errorf("failed to get OS version")
+ }
+
+ var fullPath string
+ fullPath, err = longpath.LongAbs(filepath.Join(root.Name(), path))
+ if err != nil {
+ return fmt.Errorf("getting path: %w", err)
+ }
+
+ var key syscall.Handle
+ err = winapi.ORCreateHive(&key)
+ if err != nil {
+ return fmt.Errorf("creating hive: %w", err)
+ }
+
+ defer func() {
+ closeErr := winapi.ORCloseHive(key)
+ if closeErr != nil && err == nil {
+ err = fmt.Errorf("closing hive key: %w", closeErr)
+ }
+ }()
+
+ err = winapi.ORSaveHive(key, fullPath, version.MajorVersion, version.MinorVersion)
+ if err != nil {
+ return fmt.Errorf("saving hive: %w", err)
+ }
+
+ return nil
+}
+
+func ensureBaseLayer(root *os.File) (hasUtilityVM bool, err error) {
+ // The base layer registry hives will be copied from here
+ const hiveSourcePath = "Files\\Windows\\System32\\config"
+ if err = safefile.MkdirAllRelative(hiveSourcePath, root); err != nil {
+ return
+ }
+
+ for _, hiveName := range hiveNames {
+ hivePath := filepath.Join(hiveSourcePath, hiveName)
+ if err = ensureHive(hivePath, root); err != nil {
+ return
+ }
+ }
+
+ stat, err := safefile.LstatRelative(utilityVMFilesPath, root)
+
+ if os.IsNotExist(err) {
+ return false, nil
+ }
+
+ if err != nil {
+ return
+ }
+
+ if !stat.Mode().IsDir() {
+ fullPath := filepath.Join(root.Name(), utilityVMFilesPath)
+ return false, errors.Errorf("%s has unexpected file mode %s", fullPath, stat.Mode().String())
+ }
+
+ const bcdRelativePath = "EFI\\Microsoft\\Boot\\BCD"
+
+ // Just check that this exists as a regular file. If it exists but is not a valid registry hive,
+ // ProcessUtilityVMImage will complain:
+ // "The registry could not read in, or write out, or flush, one of the files that contain the system's image of the registry."
+ bcdPath := filepath.Join(utilityVMFilesPath, bcdRelativePath)
+
+ stat, err = safefile.LstatRelative(bcdPath, root)
+ if err != nil {
+ return false, errors.Wrapf(err, "UtilityVM must contain '%s'", bcdRelativePath)
+ }
+
+ if !stat.Mode().IsRegular() {
+ fullPath := filepath.Join(root.Name(), bcdPath)
+ return false, errors.Errorf("%s has unexpected file mode %s", fullPath, stat.Mode().String())
+ }
+
+ return true, nil
+}
+
+func convertToBaseLayer(ctx context.Context, root *os.File) error {
+ hasUtilityVM, err := ensureBaseLayer(root)
+
+ if err != nil {
+ return err
+ }
+
+ if err := ProcessBaseLayer(ctx, root.Name()); err != nil {
+ return err
+ }
+
+ if !hasUtilityVM {
+ return nil
+ }
+
+ err = safefile.EnsureNotReparsePointRelative(utilityVMPath, root)
+ if err != nil {
+ return err
+ }
+
+ utilityVMPath := filepath.Join(root.Name(), utilityVMPath)
+ return ProcessUtilityVMImage(ctx, utilityVMPath)
+}
+
+// ConvertToBaseLayer processes a candidate base layer, i.e. a directory
+// containing the desired file content under Files/, and optionally the
+// desired file content for a UtilityVM under UtilityVM/Files/
+func ConvertToBaseLayer(ctx context.Context, path string) (err error) {
+ title := "hcsshim::ConvertToBaseLayer"
+ ctx, span := trace.StartSpan(ctx, title)
+ defer span.End()
+ defer func() { oc.SetSpanStatus(span, err) }()
+ span.AddAttributes(trace.StringAttribute("path", path))
+
+ root, err := safefile.OpenRoot(path)
+ if err != nil {
+ return hcserror.New(err, title+" - failed", "")
+ }
+ defer func() {
+ if err2 := root.Close(); err == nil && err2 != nil {
+ err = hcserror.New(err2, title+" - failed", "")
+ }
+ }()
+
+ if err = convertToBaseLayer(ctx, root); err != nil {
+ return hcserror.New(err, title+" - failed", "")
+ }
+ return nil
+}
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/createlayer.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/createlayer.go
index 480aee872..932475723 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/createlayer.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/createlayer.go
@@ -1,3 +1,5 @@
+//go:build windows
+
package wclayer
import (
@@ -12,7 +14,7 @@ import (
// the parent layer provided.
func CreateLayer(ctx context.Context, path, parent string) (err error) {
title := "hcsshim::CreateLayer"
- ctx, span := trace.StartSpan(ctx, title) //nolint:ineffassign,staticcheck
+ ctx, span := oc.StartSpan(ctx, title) //nolint:ineffassign,staticcheck
defer span.End()
defer func() { oc.SetSpanStatus(span, err) }()
span.AddAttributes(
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/createscratchlayer.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/createscratchlayer.go
index 131aa94f1..5c9d5d250 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/createscratchlayer.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/createscratchlayer.go
@@ -1,3 +1,5 @@
+//go:build windows
+
package wclayer
import (
@@ -13,7 +15,7 @@ import (
// This requires the full list of paths to all parent layers up to the base
func CreateScratchLayer(ctx context.Context, path string, parentLayerPaths []string) (err error) {
title := "hcsshim::CreateScratchLayer"
- ctx, span := trace.StartSpan(ctx, title)
+ ctx, span := oc.StartSpan(ctx, title)
defer span.End()
defer func() { oc.SetSpanStatus(span, err) }()
span.AddAttributes(
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/deactivatelayer.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/deactivatelayer.go
index d5bf2f5bd..e3bc77cbc 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/deactivatelayer.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/deactivatelayer.go
@@ -1,3 +1,5 @@
+//go:build windows
+
package wclayer
import (
@@ -11,7 +13,7 @@ import (
// DeactivateLayer will dismount a layer that was mounted via ActivateLayer.
func DeactivateLayer(ctx context.Context, path string) (err error) {
title := "hcsshim::DeactivateLayer"
- ctx, span := trace.StartSpan(ctx, title) //nolint:ineffassign,staticcheck
+ ctx, span := oc.StartSpan(ctx, title) //nolint:ineffassign,staticcheck
defer span.End()
defer func() { oc.SetSpanStatus(span, err) }()
span.AddAttributes(trace.StringAttribute("path", path))
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/destroylayer.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/destroylayer.go
index 424467ac3..d0a59efe1 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/destroylayer.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/destroylayer.go
@@ -1,3 +1,5 @@
+//go:build windows
+
package wclayer
import (
@@ -12,7 +14,7 @@ import (
// path, including that layer's containing folder, if any.
func DestroyLayer(ctx context.Context, path string) (err error) {
title := "hcsshim::DestroyLayer"
- ctx, span := trace.StartSpan(ctx, title) //nolint:ineffassign,staticcheck
+ ctx, span := oc.StartSpan(ctx, title) //nolint:ineffassign,staticcheck
defer span.End()
defer func() { oc.SetSpanStatus(span, err) }()
span.AddAttributes(trace.StringAttribute("path", path))
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/doc.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/doc.go
new file mode 100644
index 000000000..dd1d55580
--- /dev/null
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/doc.go
@@ -0,0 +1,4 @@
+// Package wclayer provides bindings to HCS's legacy layer management API and
+// provides a higher level interface around these calls for container layer
+// management.
+package wclayer
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/expandscratchsize.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/expandscratchsize.go
index 035c9041e..e2ec27ad0 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/expandscratchsize.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/expandscratchsize.go
@@ -1,3 +1,5 @@
+//go:build windows
+
package wclayer
import (
@@ -16,7 +18,7 @@ import (
// ExpandScratchSize expands the size of a layer to at least size bytes.
func ExpandScratchSize(ctx context.Context, path string, size uint64) (err error) {
title := "hcsshim::ExpandScratchSize"
- ctx, span := trace.StartSpan(ctx, title)
+ ctx, span := oc.StartSpan(ctx, title)
defer span.End()
defer func() { oc.SetSpanStatus(span, err) }()
span.AddAttributes(
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/exportlayer.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/exportlayer.go
index 97b27eb7d..d4c677aab 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/exportlayer.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/exportlayer.go
@@ -1,8 +1,9 @@
+//go:build windows
+
package wclayer
import (
"context"
- "io/ioutil"
"os"
"strings"
@@ -19,7 +20,7 @@ import (
// perform the export.
func ExportLayer(ctx context.Context, path string, exportFolderPath string, parentLayerPaths []string) (err error) {
title := "hcsshim::ExportLayer"
- ctx, span := trace.StartSpan(ctx, title)
+ ctx, span := oc.StartSpan(ctx, title)
defer span.End()
defer func() { oc.SetSpanStatus(span, err) }()
span.AddAttributes(
@@ -40,9 +41,16 @@ func ExportLayer(ctx context.Context, path string, exportFolderPath string, pare
return nil
}
+// LayerReader is an interface that supports reading an existing container image layer.
type LayerReader interface {
+ // Next advances to the next file and returns the name, size, and file info
Next() (string, int64, *winio.FileBasicInfo, error)
+ // LinkInfo returns the number of links and the file identifier for the current file.
+ LinkInfo() (uint32, *winio.FileIDInfo, error)
+ // Read reads data from the current file, in the format of a Win32 backup stream, and
+ // returns the number of bytes read.
Read(b []byte) (int, error)
+ // Close finishes the layer reading process and releases any resources.
Close() error
}
@@ -50,7 +58,7 @@ type LayerReader interface {
// The caller must have taken the SeBackupPrivilege privilege
// to call this and any methods on the resulting LayerReader.
func NewLayerReader(ctx context.Context, path string, parentLayerPaths []string) (_ LayerReader, err error) {
- ctx, span := trace.StartSpan(ctx, "hcsshim::NewLayerReader")
+ ctx, span := oc.StartSpan(ctx, "hcsshim::NewLayerReader")
defer func() {
if err != nil {
oc.SetSpanStatus(span, err)
@@ -61,7 +69,12 @@ func NewLayerReader(ctx context.Context, path string, parentLayerPaths []string)
trace.StringAttribute("path", path),
trace.StringAttribute("parentLayerPaths", strings.Join(parentLayerPaths, ", ")))
- exportPath, err := ioutil.TempDir("", "hcs")
+ if len(parentLayerPaths) == 0 {
+ // This is a base layer. It gets exported differently.
+ return newBaseLayerReader(path, span), nil
+ }
+
+ exportPath, err := os.MkdirTemp("", "hcs")
if err != nil {
return nil, err
}
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/getlayermountpath.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/getlayermountpath.go
index 8d213f587..715e06e37 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/getlayermountpath.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/getlayermountpath.go
@@ -1,3 +1,5 @@
+//go:build windows
+
package wclayer
import (
@@ -16,7 +18,7 @@ import (
// folder path at which the layer is stored.
func GetLayerMountPath(ctx context.Context, path string) (_ string, err error) {
title := "hcsshim::GetLayerMountPath"
- ctx, span := trace.StartSpan(ctx, title)
+ ctx, span := oc.StartSpan(ctx, title)
defer span.End()
defer func() { oc.SetSpanStatus(span, err) }()
span.AddAttributes(trace.StringAttribute("path", path))
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/getsharedbaseimages.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/getsharedbaseimages.go
index ae1fff840..5e400fb20 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/getsharedbaseimages.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/getsharedbaseimages.go
@@ -1,3 +1,5 @@
+//go:build windows
+
package wclayer
import (
@@ -14,7 +16,7 @@ import (
// of registering them with the graphdriver, graph, and tagstore.
func GetSharedBaseImages(ctx context.Context) (_ string, err error) {
title := "hcsshim::GetSharedBaseImages"
- ctx, span := trace.StartSpan(ctx, title) //nolint:ineffassign,staticcheck
+ ctx, span := oc.StartSpan(ctx, title) //nolint:ineffassign,staticcheck
defer span.End()
defer func() { oc.SetSpanStatus(span, err) }()
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/grantvmaccess.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/grantvmaccess.go
index 4b282fef9..20217ed81 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/grantvmaccess.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/grantvmaccess.go
@@ -1,3 +1,5 @@
+//go:build windows
+
package wclayer
import (
@@ -11,7 +13,7 @@ import (
// GrantVmAccess adds access to a file for a given VM
func GrantVmAccess(ctx context.Context, vmid string, filepath string) (err error) {
title := "hcsshim::GrantVmAccess"
- ctx, span := trace.StartSpan(ctx, title) //nolint:ineffassign,staticcheck
+ ctx, span := oc.StartSpan(ctx, title) //nolint:ineffassign,staticcheck
defer span.End()
defer func() { oc.SetSpanStatus(span, err) }()
span.AddAttributes(
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/importlayer.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/importlayer.go
index 687550f0b..50f669a26 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/importlayer.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/importlayer.go
@@ -1,8 +1,9 @@
+//go:build windows
+
package wclayer
import (
"context"
- "io/ioutil"
"os"
"path/filepath"
"strings"
@@ -20,7 +21,7 @@ import (
// be present on the system at the paths provided in parentLayerPaths.
func ImportLayer(ctx context.Context, path string, importFolderPath string, parentLayerPaths []string) (err error) {
title := "hcsshim::ImportLayer"
- ctx, span := trace.StartSpan(ctx, title)
+ ctx, span := oc.StartSpan(ctx, title)
defer span.End()
defer func() { oc.SetSpanStatus(span, err) }()
span.AddAttributes(
@@ -124,7 +125,7 @@ func (r *legacyLayerWriterWrapper) Close() (err error) {
// The caller must have taken the SeBackupPrivilege and SeRestorePrivilege privileges
// to call this and any methods on the resulting LayerWriter.
func NewLayerWriter(ctx context.Context, path string, parentLayerPaths []string) (_ LayerWriter, err error) {
- ctx, span := trace.StartSpan(ctx, "hcsshim::NewLayerWriter")
+ ctx, span := oc.StartSpan(ctx, "hcsshim::NewLayerWriter")
defer func() {
if err != nil {
oc.SetSpanStatus(span, err)
@@ -148,7 +149,7 @@ func NewLayerWriter(ctx context.Context, path string, parentLayerPaths []string)
}, nil
}
- importPath, err := ioutil.TempDir("", "hcs")
+ importPath, err := os.MkdirTemp("", "hcs")
if err != nil {
return nil, err
}
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/layerexists.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/layerexists.go
index 01e672339..4d82977ea 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/layerexists.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/layerexists.go
@@ -1,3 +1,5 @@
+//go:build windows
+
package wclayer
import (
@@ -12,7 +14,7 @@ import (
// to the system.
func LayerExists(ctx context.Context, path string) (_ bool, err error) {
title := "hcsshim::LayerExists"
- ctx, span := trace.StartSpan(ctx, title) //nolint:ineffassign,staticcheck
+ ctx, span := oc.StartSpan(ctx, title) //nolint:ineffassign,staticcheck
defer span.End()
defer func() { oc.SetSpanStatus(span, err) }()
span.AddAttributes(trace.StringAttribute("path", path))
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/layerid.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/layerid.go
index 0ce34a30f..d4805f144 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/layerid.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/layerid.go
@@ -1,3 +1,5 @@
+//go:build windows
+
package wclayer
import (
@@ -12,7 +14,7 @@ import (
// LayerID returns the layer ID of a layer on disk.
func LayerID(ctx context.Context, path string) (_ guid.GUID, err error) {
title := "hcsshim::LayerID"
- ctx, span := trace.StartSpan(ctx, title)
+ ctx, span := oc.StartSpan(ctx, title)
defer span.End()
defer func() { oc.SetSpanStatus(span, err) }()
span.AddAttributes(trace.StringAttribute("path", path))
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/layerutils.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/layerutils.go
index 1ec893c6a..d5d2cb137 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/layerutils.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/layerutils.go
@@ -1,3 +1,5 @@
+//go:build windows
+
package wclayer
// This file contains utility functions to support storage (graph) related
@@ -11,7 +13,9 @@ import (
"github.com/sirupsen/logrus"
)
-/* To pass into syscall, we need a struct matching the following:
+/*
+To pass into syscall, we need a struct matching the following:
+
enum GraphDriverType
{
DiffDriver,
@@ -34,32 +38,34 @@ var (
stdDriverInfo = driverInfo{1, &utf16EmptyString}
)
-/* To pass into syscall, we need a struct matching the following:
+/*
+To pass into syscall, we need a struct matching the following:
+
typedef struct _WC_LAYER_DESCRIPTOR {
- //
- // The ID of the layer
- //
+ //
+ // The ID of the layer
+ //
- GUID LayerId;
+ GUID LayerId;
- //
- // Additional flags
- //
+ //
+ // Additional flags
+ //
- union {
- struct {
- ULONG Reserved : 31;
- ULONG Dirty : 1; // Created from sandbox as a result of snapshot
- };
- ULONG Value;
- } Flags;
+ union {
+ struct {
+ ULONG Reserved : 31;
+ ULONG Dirty : 1; // Created from sandbox as a result of snapshot
+ };
+ ULONG Value;
+ } Flags;
- //
- // Path to the layer root directory, null-terminated
- //
+ //
+ // Path to the layer root directory, null-terminated
+ //
- PCWSTR Path;
+ PCWSTR Path;
} WC_LAYER_DESCRIPTOR, *PWC_LAYER_DESCRIPTOR;
*/
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/legacy.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/legacy.go
index b7f3064f2..ee8da5df9 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/legacy.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/legacy.go
@@ -1,3 +1,5 @@
+//go:build windows
+
package wclayer
import (
@@ -6,7 +8,6 @@ import (
"errors"
"fmt"
"io"
- "io/ioutil"
"os"
"path/filepath"
"strings"
@@ -262,7 +263,6 @@ func (r *legacyLayerReader) Next() (path string, size int64, fileInfo *winio.Fil
// The creation time and access time get reset for files outside of the Files path.
fileInfo.CreationTime = fileInfo.LastWriteTime
fileInfo.LastAccessTime = fileInfo.LastWriteTime
-
} else {
// The file attributes are written before the backup stream.
var attr uint32
@@ -294,6 +294,18 @@ func (r *legacyLayerReader) Next() (path string, size int64, fileInfo *winio.Fil
return
}
+func (r *legacyLayerReader) LinkInfo() (uint32, *winio.FileIDInfo, error) {
+ fileStandardInfo, err := winio.GetFileStandardInfo(r.currentFile)
+ if err != nil {
+ return 0, nil, err
+ }
+ fileIDInfo, err := winio.GetFileID(r.currentFile)
+ if err != nil {
+ return 0, nil, err
+ }
+ return fileStandardInfo.NumberOfLinks, fileIDInfo, nil
+}
+
func (r *legacyLayerReader) Read(b []byte) (int, error) {
if r.backupReader == nil {
if r.currentFile == nil {
@@ -349,7 +361,7 @@ type legacyLayerWriter struct {
currentIsDir bool
}
-// newLegacyLayerWriter returns a LayerWriter that can write the contaler layer
+// newLegacyLayerWriter returns a LayerWriter that can write the container layer
// transport format to disk.
func newLegacyLayerWriter(root string, parentRoots []string, destRoot string) (w *legacyLayerWriter, err error) {
w = &legacyLayerWriter{
@@ -376,7 +388,7 @@ func newLegacyLayerWriter(root string, parentRoots []string, destRoot string) (w
}
w.parentRoots = append(w.parentRoots, f)
}
- w.bufWriter = bufio.NewWriterSize(ioutil.Discard, 65536)
+ w.bufWriter = bufio.NewWriterSize(io.Discard, 65536)
return
}
@@ -419,7 +431,7 @@ func (w *legacyLayerWriter) reset() error {
if err != nil {
return err
}
- w.bufWriter.Reset(ioutil.Discard)
+ w.bufWriter.Reset(io.Discard)
if w.currentIsDir {
r := w.currentFile
br := winio.NewBackupStreamReader(r)
@@ -695,7 +707,7 @@ func (w *legacyLayerWriter) Add(name string, fileInfo *winio.FileBasicInfo) erro
// The file attributes are written before the stream.
err = binary.Write(w.bufWriter, binary.LittleEndian, uint32(fileInfo.FileAttributes))
if err != nil {
- w.bufWriter.Reset(ioutil.Discard)
+ w.bufWriter.Reset(io.Discard)
return err
}
}
@@ -730,7 +742,7 @@ func (w *legacyLayerWriter) AddLink(name string, target string) error {
return errors.New("invalid hard link in layer")
}
- // Find to try the target of the link in a previously added file. If that
+ // Try to find the target of the link in a previously added file. If that
// fails, search in parent layers.
var selectedRoot *os.File
if _, ok := w.addedFiles[target]; ok {
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/nametoguid.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/nametoguid.go
index 09950297c..c45fa2750 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/nametoguid.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/nametoguid.go
@@ -1,3 +1,5 @@
+//go:build windows
+
package wclayer
import (
@@ -14,7 +16,7 @@ import (
// across all clients.
func NameToGuid(ctx context.Context, name string) (_ guid.GUID, err error) {
title := "hcsshim::NameToGuid"
- ctx, span := trace.StartSpan(ctx, title) //nolint:ineffassign,staticcheck
+ ctx, span := oc.StartSpan(ctx, title) //nolint:ineffassign,staticcheck
defer span.End()
defer func() { oc.SetSpanStatus(span, err) }()
span.AddAttributes(trace.StringAttribute("objectName", name))
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/preparelayer.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/preparelayer.go
index 90129faef..b66e07124 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/preparelayer.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/preparelayer.go
@@ -1,3 +1,5 @@
+//go:build windows
+
package wclayer
import (
@@ -19,7 +21,7 @@ var prepareLayerLock sync.Mutex
// Disabling the filter must be done via UnprepareLayer.
func PrepareLayer(ctx context.Context, path string, parentLayerPaths []string) (err error) {
title := "hcsshim::PrepareLayer"
- ctx, span := trace.StartSpan(ctx, title)
+ ctx, span := oc.StartSpan(ctx, title)
defer span.End()
defer func() { oc.SetSpanStatus(span, err) }()
span.AddAttributes(
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/processimage.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/processimage.go
index 30bcdff5f..7c49cbda4 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/processimage.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/processimage.go
@@ -1,3 +1,5 @@
+//go:build windows
+
package wclayer
import (
@@ -12,7 +14,7 @@ import (
// The files should have been extracted to \Files.
func ProcessBaseLayer(ctx context.Context, path string) (err error) {
title := "hcsshim::ProcessBaseLayer"
- ctx, span := trace.StartSpan(ctx, title) //nolint:ineffassign,staticcheck
+ ctx, span := oc.StartSpan(ctx, title) //nolint:ineffassign,staticcheck
defer span.End()
defer func() { oc.SetSpanStatus(span, err) }()
span.AddAttributes(trace.StringAttribute("path", path))
@@ -28,7 +30,7 @@ func ProcessBaseLayer(ctx context.Context, path string) (err error) {
// The files should have been extracted to \Files.
func ProcessUtilityVMImage(ctx context.Context, path string) (err error) {
title := "hcsshim::ProcessUtilityVMImage"
- ctx, span := trace.StartSpan(ctx, title) //nolint:ineffassign,staticcheck
+ ctx, span := oc.StartSpan(ctx, title) //nolint:ineffassign,staticcheck
defer span.End()
defer func() { oc.SetSpanStatus(span, err) }()
span.AddAttributes(trace.StringAttribute("path", path))
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/unpreparelayer.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/unpreparelayer.go
index 71b130c52..fe20702c1 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/unpreparelayer.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/unpreparelayer.go
@@ -1,3 +1,5 @@
+//go:build windows
+
package wclayer
import (
@@ -12,7 +14,7 @@ import (
// the given id.
func UnprepareLayer(ctx context.Context, path string) (err error) {
title := "hcsshim::UnprepareLayer"
- ctx, span := trace.StartSpan(ctx, title) //nolint:ineffassign,staticcheck
+ ctx, span := oc.StartSpan(ctx, title) //nolint:ineffassign,staticcheck
defer span.End()
defer func() { oc.SetSpanStatus(span, err) }()
span.AddAttributes(trace.StringAttribute("path", path))
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/wclayer.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/wclayer.go
index 9b1e06d50..39682b817 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/wclayer.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/wclayer.go
@@ -1,11 +1,10 @@
-// Package wclayer provides bindings to HCS's legacy layer management API and
-// provides a higher level interface around these calls for container layer
-// management.
+//go:build windows
+
package wclayer
import "github.com/Microsoft/go-winio/pkg/guid"
-//go:generate go run ../../mksyscall_windows.go -output zsyscall_windows.go wclayer.go
+//go:generate go run github.com/Microsoft/go-winio/tools/mkwinsyscall -output zsyscall_windows.go wclayer.go
//sys activateLayer(info *driverInfo, id string) (hr error) = vmcompute.ActivateLayer?
//sys copyLayer(info *driverInfo, srcId string, dstId string, descriptors []WC_LAYER_DESCRIPTOR) (hr error) = vmcompute.CopyLayer?
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/zsyscall_windows.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/zsyscall_windows.go
index 67f917f07..0cb509c46 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/zsyscall_windows.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/wclayer/zsyscall_windows.go
@@ -1,4 +1,6 @@
-// Code generated mksyscall_windows.exe DO NOT EDIT
+//go:build windows
+
+// Code generated by 'go generate' using "github.com/Microsoft/go-winio/tools/mkwinsyscall"; DO NOT EDIT.
package wclayer
@@ -19,6 +21,7 @@ const (
var (
errERROR_IO_PENDING error = syscall.Errno(errnoERROR_IO_PENDING)
+ errERROR_EINVAL error = syscall.EINVAL
)
// errnoErr returns common boxed Errno values, to prevent
@@ -26,7 +29,7 @@ var (
func errnoErr(e syscall.Errno) error {
switch e {
case 0:
- return nil
+ return errERROR_EINVAL
case errnoERROR_IO_PENDING:
return errERROR_IO_PENDING
}
@@ -37,33 +40,75 @@ func errnoErr(e syscall.Errno) error {
}
var (
- modvmcompute = windows.NewLazySystemDLL("vmcompute.dll")
- modvirtdisk = windows.NewLazySystemDLL("virtdisk.dll")
modkernel32 = windows.NewLazySystemDLL("kernel32.dll")
+ modvirtdisk = windows.NewLazySystemDLL("virtdisk.dll")
+ modvmcompute = windows.NewLazySystemDLL("vmcompute.dll")
+ procGetDiskFreeSpaceExW = modkernel32.NewProc("GetDiskFreeSpaceExW")
+ procAttachVirtualDisk = modvirtdisk.NewProc("AttachVirtualDisk")
+ procOpenVirtualDisk = modvirtdisk.NewProc("OpenVirtualDisk")
procActivateLayer = modvmcompute.NewProc("ActivateLayer")
procCopyLayer = modvmcompute.NewProc("CopyLayer")
procCreateLayer = modvmcompute.NewProc("CreateLayer")
procCreateSandboxLayer = modvmcompute.NewProc("CreateSandboxLayer")
- procExpandSandboxSize = modvmcompute.NewProc("ExpandSandboxSize")
procDeactivateLayer = modvmcompute.NewProc("DeactivateLayer")
procDestroyLayer = modvmcompute.NewProc("DestroyLayer")
+ procExpandSandboxSize = modvmcompute.NewProc("ExpandSandboxSize")
procExportLayer = modvmcompute.NewProc("ExportLayer")
- procGetLayerMountPath = modvmcompute.NewProc("GetLayerMountPath")
procGetBaseImages = modvmcompute.NewProc("GetBaseImages")
+ procGetLayerMountPath = modvmcompute.NewProc("GetLayerMountPath")
+ procGrantVmAccess = modvmcompute.NewProc("GrantVmAccess")
procImportLayer = modvmcompute.NewProc("ImportLayer")
procLayerExists = modvmcompute.NewProc("LayerExists")
procNameToGuid = modvmcompute.NewProc("NameToGuid")
procPrepareLayer = modvmcompute.NewProc("PrepareLayer")
- procUnprepareLayer = modvmcompute.NewProc("UnprepareLayer")
procProcessBaseImage = modvmcompute.NewProc("ProcessBaseImage")
procProcessUtilityImage = modvmcompute.NewProc("ProcessUtilityImage")
- procGrantVmAccess = modvmcompute.NewProc("GrantVmAccess")
- procOpenVirtualDisk = modvirtdisk.NewProc("OpenVirtualDisk")
- procAttachVirtualDisk = modvirtdisk.NewProc("AttachVirtualDisk")
- procGetDiskFreeSpaceExW = modkernel32.NewProc("GetDiskFreeSpaceExW")
+ procUnprepareLayer = modvmcompute.NewProc("UnprepareLayer")
)
+func getDiskFreeSpaceEx(directoryName string, freeBytesAvailableToCaller *int64, totalNumberOfBytes *int64, totalNumberOfFreeBytes *int64) (err error) {
+ var _p0 *uint16
+ _p0, err = syscall.UTF16PtrFromString(directoryName)
+ if err != nil {
+ return
+ }
+ return _getDiskFreeSpaceEx(_p0, freeBytesAvailableToCaller, totalNumberOfBytes, totalNumberOfFreeBytes)
+}
+
+func _getDiskFreeSpaceEx(directoryName *uint16, freeBytesAvailableToCaller *int64, totalNumberOfBytes *int64, totalNumberOfFreeBytes *int64) (err error) {
+ r1, _, e1 := syscall.Syscall6(procGetDiskFreeSpaceExW.Addr(), 4, uintptr(unsafe.Pointer(directoryName)), uintptr(unsafe.Pointer(freeBytesAvailableToCaller)), uintptr(unsafe.Pointer(totalNumberOfBytes)), uintptr(unsafe.Pointer(totalNumberOfFreeBytes)), 0, 0)
+ if r1 == 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func attachVirtualDisk(handle syscall.Handle, sd uintptr, flags uint32, providerFlags uint32, params uintptr, overlapped uintptr) (err error) {
+ r1, _, e1 := syscall.Syscall6(procAttachVirtualDisk.Addr(), 6, uintptr(handle), uintptr(sd), uintptr(flags), uintptr(providerFlags), uintptr(params), uintptr(overlapped))
+ if r1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func openVirtualDisk(virtualStorageType *virtualStorageType, path string, virtualDiskAccessMask uint32, flags uint32, parameters *openVirtualDiskParameters, handle *syscall.Handle) (err error) {
+ var _p0 *uint16
+ _p0, err = syscall.UTF16PtrFromString(path)
+ if err != nil {
+ return
+ }
+ return _openVirtualDisk(virtualStorageType, _p0, virtualDiskAccessMask, flags, parameters, handle)
+}
+
+func _openVirtualDisk(virtualStorageType *virtualStorageType, path *uint16, virtualDiskAccessMask uint32, flags uint32, parameters *openVirtualDiskParameters, handle *syscall.Handle) (err error) {
+ r1, _, e1 := syscall.Syscall6(procOpenVirtualDisk.Addr(), 6, uintptr(unsafe.Pointer(virtualStorageType)), uintptr(unsafe.Pointer(path)), uintptr(virtualDiskAccessMask), uintptr(flags), uintptr(unsafe.Pointer(parameters)), uintptr(unsafe.Pointer(handle)))
+ if r1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
func activateLayer(info *driverInfo, id string) (hr error) {
var _p0 *uint16
_p0, hr = syscall.UTF16PtrFromString(id)
@@ -74,7 +119,8 @@ func activateLayer(info *driverInfo, id string) (hr error) {
}
func _activateLayer(info *driverInfo, id *uint16) (hr error) {
- if hr = procActivateLayer.Find(); hr != nil {
+ hr = procActivateLayer.Find()
+ if hr != nil {
return
}
r0, _, _ := syscall.Syscall(procActivateLayer.Addr(), 2, uintptr(unsafe.Pointer(info)), uintptr(unsafe.Pointer(id)), 0)
@@ -102,13 +148,14 @@ func copyLayer(info *driverInfo, srcId string, dstId string, descriptors []WC_LA
}
func _copyLayer(info *driverInfo, srcId *uint16, dstId *uint16, descriptors []WC_LAYER_DESCRIPTOR) (hr error) {
+ hr = procCopyLayer.Find()
+ if hr != nil {
+ return
+ }
var _p2 *WC_LAYER_DESCRIPTOR
if len(descriptors) > 0 {
_p2 = &descriptors[0]
}
- if hr = procCopyLayer.Find(); hr != nil {
- return
- }
r0, _, _ := syscall.Syscall6(procCopyLayer.Addr(), 5, uintptr(unsafe.Pointer(info)), uintptr(unsafe.Pointer(srcId)), uintptr(unsafe.Pointer(dstId)), uintptr(unsafe.Pointer(_p2)), uintptr(len(descriptors)), 0)
if int32(r0) < 0 {
if r0&0x1fff0000 == 0x00070000 {
@@ -134,7 +181,8 @@ func createLayer(info *driverInfo, id string, parent string) (hr error) {
}
func _createLayer(info *driverInfo, id *uint16, parent *uint16) (hr error) {
- if hr = procCreateLayer.Find(); hr != nil {
+ hr = procCreateLayer.Find()
+ if hr != nil {
return
}
r0, _, _ := syscall.Syscall(procCreateLayer.Addr(), 3, uintptr(unsafe.Pointer(info)), uintptr(unsafe.Pointer(id)), uintptr(unsafe.Pointer(parent)))
@@ -157,13 +205,14 @@ func createSandboxLayer(info *driverInfo, id string, parent uintptr, descriptors
}
func _createSandboxLayer(info *driverInfo, id *uint16, parent uintptr, descriptors []WC_LAYER_DESCRIPTOR) (hr error) {
+ hr = procCreateSandboxLayer.Find()
+ if hr != nil {
+ return
+ }
var _p1 *WC_LAYER_DESCRIPTOR
if len(descriptors) > 0 {
_p1 = &descriptors[0]
}
- if hr = procCreateSandboxLayer.Find(); hr != nil {
- return
- }
r0, _, _ := syscall.Syscall6(procCreateSandboxLayer.Addr(), 5, uintptr(unsafe.Pointer(info)), uintptr(unsafe.Pointer(id)), uintptr(parent), uintptr(unsafe.Pointer(_p1)), uintptr(len(descriptors)), 0)
if int32(r0) < 0 {
if r0&0x1fff0000 == 0x00070000 {
@@ -174,20 +223,21 @@ func _createSandboxLayer(info *driverInfo, id *uint16, parent uintptr, descripto
return
}
-func expandSandboxSize(info *driverInfo, id string, size uint64) (hr error) {
+func deactivateLayer(info *driverInfo, id string) (hr error) {
var _p0 *uint16
_p0, hr = syscall.UTF16PtrFromString(id)
if hr != nil {
return
}
- return _expandSandboxSize(info, _p0, size)
+ return _deactivateLayer(info, _p0)
}
-func _expandSandboxSize(info *driverInfo, id *uint16, size uint64) (hr error) {
- if hr = procExpandSandboxSize.Find(); hr != nil {
+func _deactivateLayer(info *driverInfo, id *uint16) (hr error) {
+ hr = procDeactivateLayer.Find()
+ if hr != nil {
return
}
- r0, _, _ := syscall.Syscall(procExpandSandboxSize.Addr(), 3, uintptr(unsafe.Pointer(info)), uintptr(unsafe.Pointer(id)), uintptr(size))
+ r0, _, _ := syscall.Syscall(procDeactivateLayer.Addr(), 2, uintptr(unsafe.Pointer(info)), uintptr(unsafe.Pointer(id)), 0)
if int32(r0) < 0 {
if r0&0x1fff0000 == 0x00070000 {
r0 &= 0xffff
@@ -197,20 +247,21 @@ func _expandSandboxSize(info *driverInfo, id *uint16, size uint64) (hr error) {
return
}
-func deactivateLayer(info *driverInfo, id string) (hr error) {
+func destroyLayer(info *driverInfo, id string) (hr error) {
var _p0 *uint16
_p0, hr = syscall.UTF16PtrFromString(id)
if hr != nil {
return
}
- return _deactivateLayer(info, _p0)
+ return _destroyLayer(info, _p0)
}
-func _deactivateLayer(info *driverInfo, id *uint16) (hr error) {
- if hr = procDeactivateLayer.Find(); hr != nil {
+func _destroyLayer(info *driverInfo, id *uint16) (hr error) {
+ hr = procDestroyLayer.Find()
+ if hr != nil {
return
}
- r0, _, _ := syscall.Syscall(procDeactivateLayer.Addr(), 2, uintptr(unsafe.Pointer(info)), uintptr(unsafe.Pointer(id)), 0)
+ r0, _, _ := syscall.Syscall(procDestroyLayer.Addr(), 2, uintptr(unsafe.Pointer(info)), uintptr(unsafe.Pointer(id)), 0)
if int32(r0) < 0 {
if r0&0x1fff0000 == 0x00070000 {
r0 &= 0xffff
@@ -220,20 +271,21 @@ func _deactivateLayer(info *driverInfo, id *uint16) (hr error) {
return
}
-func destroyLayer(info *driverInfo, id string) (hr error) {
+func expandSandboxSize(info *driverInfo, id string, size uint64) (hr error) {
var _p0 *uint16
_p0, hr = syscall.UTF16PtrFromString(id)
if hr != nil {
return
}
- return _destroyLayer(info, _p0)
+ return _expandSandboxSize(info, _p0, size)
}
-func _destroyLayer(info *driverInfo, id *uint16) (hr error) {
- if hr = procDestroyLayer.Find(); hr != nil {
+func _expandSandboxSize(info *driverInfo, id *uint16, size uint64) (hr error) {
+ hr = procExpandSandboxSize.Find()
+ if hr != nil {
return
}
- r0, _, _ := syscall.Syscall(procDestroyLayer.Addr(), 2, uintptr(unsafe.Pointer(info)), uintptr(unsafe.Pointer(id)), 0)
+ r0, _, _ := syscall.Syscall(procExpandSandboxSize.Addr(), 3, uintptr(unsafe.Pointer(info)), uintptr(unsafe.Pointer(id)), uintptr(size))
if int32(r0) < 0 {
if r0&0x1fff0000 == 0x00070000 {
r0 &= 0xffff
@@ -258,14 +310,30 @@ func exportLayer(info *driverInfo, id string, path string, descriptors []WC_LAYE
}
func _exportLayer(info *driverInfo, id *uint16, path *uint16, descriptors []WC_LAYER_DESCRIPTOR) (hr error) {
+ hr = procExportLayer.Find()
+ if hr != nil {
+ return
+ }
var _p2 *WC_LAYER_DESCRIPTOR
if len(descriptors) > 0 {
_p2 = &descriptors[0]
}
- if hr = procExportLayer.Find(); hr != nil {
+ r0, _, _ := syscall.Syscall6(procExportLayer.Addr(), 5, uintptr(unsafe.Pointer(info)), uintptr(unsafe.Pointer(id)), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(_p2)), uintptr(len(descriptors)), 0)
+ if int32(r0) < 0 {
+ if r0&0x1fff0000 == 0x00070000 {
+ r0 &= 0xffff
+ }
+ hr = syscall.Errno(r0)
+ }
+ return
+}
+
+func getBaseImages(buffer **uint16) (hr error) {
+ hr = procGetBaseImages.Find()
+ if hr != nil {
return
}
- r0, _, _ := syscall.Syscall6(procExportLayer.Addr(), 5, uintptr(unsafe.Pointer(info)), uintptr(unsafe.Pointer(id)), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(_p2)), uintptr(len(descriptors)), 0)
+ r0, _, _ := syscall.Syscall(procGetBaseImages.Addr(), 1, uintptr(unsafe.Pointer(buffer)), 0, 0)
if int32(r0) < 0 {
if r0&0x1fff0000 == 0x00070000 {
r0 &= 0xffff
@@ -285,7 +353,8 @@ func getLayerMountPath(info *driverInfo, id string, length *uintptr, buffer *uin
}
func _getLayerMountPath(info *driverInfo, id *uint16, length *uintptr, buffer *uint16) (hr error) {
- if hr = procGetLayerMountPath.Find(); hr != nil {
+ hr = procGetLayerMountPath.Find()
+ if hr != nil {
return
}
r0, _, _ := syscall.Syscall6(procGetLayerMountPath.Addr(), 4, uintptr(unsafe.Pointer(info)), uintptr(unsafe.Pointer(id)), uintptr(unsafe.Pointer(length)), uintptr(unsafe.Pointer(buffer)), 0, 0)
@@ -298,11 +367,26 @@ func _getLayerMountPath(info *driverInfo, id *uint16, length *uintptr, buffer *u
return
}
-func getBaseImages(buffer **uint16) (hr error) {
- if hr = procGetBaseImages.Find(); hr != nil {
+func grantVmAccess(vmid string, filepath string) (hr error) {
+ var _p0 *uint16
+ _p0, hr = syscall.UTF16PtrFromString(vmid)
+ if hr != nil {
return
}
- r0, _, _ := syscall.Syscall(procGetBaseImages.Addr(), 1, uintptr(unsafe.Pointer(buffer)), 0, 0)
+ var _p1 *uint16
+ _p1, hr = syscall.UTF16PtrFromString(filepath)
+ if hr != nil {
+ return
+ }
+ return _grantVmAccess(_p0, _p1)
+}
+
+func _grantVmAccess(vmid *uint16, filepath *uint16) (hr error) {
+ hr = procGrantVmAccess.Find()
+ if hr != nil {
+ return
+ }
+ r0, _, _ := syscall.Syscall(procGrantVmAccess.Addr(), 2, uintptr(unsafe.Pointer(vmid)), uintptr(unsafe.Pointer(filepath)), 0)
if int32(r0) < 0 {
if r0&0x1fff0000 == 0x00070000 {
r0 &= 0xffff
@@ -327,13 +411,14 @@ func importLayer(info *driverInfo, id string, path string, descriptors []WC_LAYE
}
func _importLayer(info *driverInfo, id *uint16, path *uint16, descriptors []WC_LAYER_DESCRIPTOR) (hr error) {
+ hr = procImportLayer.Find()
+ if hr != nil {
+ return
+ }
var _p2 *WC_LAYER_DESCRIPTOR
if len(descriptors) > 0 {
_p2 = &descriptors[0]
}
- if hr = procImportLayer.Find(); hr != nil {
- return
- }
r0, _, _ := syscall.Syscall6(procImportLayer.Addr(), 5, uintptr(unsafe.Pointer(info)), uintptr(unsafe.Pointer(id)), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(_p2)), uintptr(len(descriptors)), 0)
if int32(r0) < 0 {
if r0&0x1fff0000 == 0x00070000 {
@@ -354,7 +439,8 @@ func layerExists(info *driverInfo, id string, exists *uint32) (hr error) {
}
func _layerExists(info *driverInfo, id *uint16, exists *uint32) (hr error) {
- if hr = procLayerExists.Find(); hr != nil {
+ hr = procLayerExists.Find()
+ if hr != nil {
return
}
r0, _, _ := syscall.Syscall(procLayerExists.Addr(), 3, uintptr(unsafe.Pointer(info)), uintptr(unsafe.Pointer(id)), uintptr(unsafe.Pointer(exists)))
@@ -377,7 +463,8 @@ func nameToGuid(name string, guid *_guid) (hr error) {
}
func _nameToGuid(name *uint16, guid *_guid) (hr error) {
- if hr = procNameToGuid.Find(); hr != nil {
+ hr = procNameToGuid.Find()
+ if hr != nil {
return
}
r0, _, _ := syscall.Syscall(procNameToGuid.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(guid)), 0)
@@ -400,13 +487,14 @@ func prepareLayer(info *driverInfo, id string, descriptors []WC_LAYER_DESCRIPTOR
}
func _prepareLayer(info *driverInfo, id *uint16, descriptors []WC_LAYER_DESCRIPTOR) (hr error) {
+ hr = procPrepareLayer.Find()
+ if hr != nil {
+ return
+ }
var _p1 *WC_LAYER_DESCRIPTOR
if len(descriptors) > 0 {
_p1 = &descriptors[0]
}
- if hr = procPrepareLayer.Find(); hr != nil {
- return
- }
r0, _, _ := syscall.Syscall6(procPrepareLayer.Addr(), 4, uintptr(unsafe.Pointer(info)), uintptr(unsafe.Pointer(id)), uintptr(unsafe.Pointer(_p1)), uintptr(len(descriptors)), 0, 0)
if int32(r0) < 0 {
if r0&0x1fff0000 == 0x00070000 {
@@ -417,29 +505,6 @@ func _prepareLayer(info *driverInfo, id *uint16, descriptors []WC_LAYER_DESCRIPT
return
}
-func unprepareLayer(info *driverInfo, id string) (hr error) {
- var _p0 *uint16
- _p0, hr = syscall.UTF16PtrFromString(id)
- if hr != nil {
- return
- }
- return _unprepareLayer(info, _p0)
-}
-
-func _unprepareLayer(info *driverInfo, id *uint16) (hr error) {
- if hr = procUnprepareLayer.Find(); hr != nil {
- return
- }
- r0, _, _ := syscall.Syscall(procUnprepareLayer.Addr(), 2, uintptr(unsafe.Pointer(info)), uintptr(unsafe.Pointer(id)), 0)
- if int32(r0) < 0 {
- if r0&0x1fff0000 == 0x00070000 {
- r0 &= 0xffff
- }
- hr = syscall.Errno(r0)
- }
- return
-}
-
func processBaseImage(path string) (hr error) {
var _p0 *uint16
_p0, hr = syscall.UTF16PtrFromString(path)
@@ -450,7 +515,8 @@ func processBaseImage(path string) (hr error) {
}
func _processBaseImage(path *uint16) (hr error) {
- if hr = procProcessBaseImage.Find(); hr != nil {
+ hr = procProcessBaseImage.Find()
+ if hr != nil {
return
}
r0, _, _ := syscall.Syscall(procProcessBaseImage.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0)
@@ -473,7 +539,8 @@ func processUtilityImage(path string) (hr error) {
}
func _processUtilityImage(path *uint16) (hr error) {
- if hr = procProcessUtilityImage.Find(); hr != nil {
+ hr = procProcessUtilityImage.Find()
+ if hr != nil {
return
}
r0, _, _ := syscall.Syscall(procProcessUtilityImage.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0)
@@ -486,25 +553,21 @@ func _processUtilityImage(path *uint16) (hr error) {
return
}
-func grantVmAccess(vmid string, filepath string) (hr error) {
+func unprepareLayer(info *driverInfo, id string) (hr error) {
var _p0 *uint16
- _p0, hr = syscall.UTF16PtrFromString(vmid)
- if hr != nil {
- return
- }
- var _p1 *uint16
- _p1, hr = syscall.UTF16PtrFromString(filepath)
+ _p0, hr = syscall.UTF16PtrFromString(id)
if hr != nil {
return
}
- return _grantVmAccess(_p0, _p1)
+ return _unprepareLayer(info, _p0)
}
-func _grantVmAccess(vmid *uint16, filepath *uint16) (hr error) {
- if hr = procGrantVmAccess.Find(); hr != nil {
+func _unprepareLayer(info *driverInfo, id *uint16) (hr error) {
+ hr = procUnprepareLayer.Find()
+ if hr != nil {
return
}
- r0, _, _ := syscall.Syscall(procGrantVmAccess.Addr(), 2, uintptr(unsafe.Pointer(vmid)), uintptr(unsafe.Pointer(filepath)), 0)
+ r0, _, _ := syscall.Syscall(procUnprepareLayer.Addr(), 2, uintptr(unsafe.Pointer(info)), uintptr(unsafe.Pointer(id)), 0)
if int32(r0) < 0 {
if r0&0x1fff0000 == 0x00070000 {
r0 &= 0xffff
@@ -513,57 +576,3 @@ func _grantVmAccess(vmid *uint16, filepath *uint16) (hr error) {
}
return
}
-
-func openVirtualDisk(virtualStorageType *virtualStorageType, path string, virtualDiskAccessMask uint32, flags uint32, parameters *openVirtualDiskParameters, handle *syscall.Handle) (err error) {
- var _p0 *uint16
- _p0, err = syscall.UTF16PtrFromString(path)
- if err != nil {
- return
- }
- return _openVirtualDisk(virtualStorageType, _p0, virtualDiskAccessMask, flags, parameters, handle)
-}
-
-func _openVirtualDisk(virtualStorageType *virtualStorageType, path *uint16, virtualDiskAccessMask uint32, flags uint32, parameters *openVirtualDiskParameters, handle *syscall.Handle) (err error) {
- r1, _, e1 := syscall.Syscall6(procOpenVirtualDisk.Addr(), 6, uintptr(unsafe.Pointer(virtualStorageType)), uintptr(unsafe.Pointer(path)), uintptr(virtualDiskAccessMask), uintptr(flags), uintptr(unsafe.Pointer(parameters)), uintptr(unsafe.Pointer(handle)))
- if r1 != 0 {
- if e1 != 0 {
- err = errnoErr(e1)
- } else {
- err = syscall.EINVAL
- }
- }
- return
-}
-
-func attachVirtualDisk(handle syscall.Handle, sd uintptr, flags uint32, providerFlags uint32, params uintptr, overlapped uintptr) (err error) {
- r1, _, e1 := syscall.Syscall6(procAttachVirtualDisk.Addr(), 6, uintptr(handle), uintptr(sd), uintptr(flags), uintptr(providerFlags), uintptr(params), uintptr(overlapped))
- if r1 != 0 {
- if e1 != 0 {
- err = errnoErr(e1)
- } else {
- err = syscall.EINVAL
- }
- }
- return
-}
-
-func getDiskFreeSpaceEx(directoryName string, freeBytesAvailableToCaller *int64, totalNumberOfBytes *int64, totalNumberOfFreeBytes *int64) (err error) {
- var _p0 *uint16
- _p0, err = syscall.UTF16PtrFromString(directoryName)
- if err != nil {
- return
- }
- return _getDiskFreeSpaceEx(_p0, freeBytesAvailableToCaller, totalNumberOfBytes, totalNumberOfFreeBytes)
-}
-
-func _getDiskFreeSpaceEx(directoryName *uint16, freeBytesAvailableToCaller *int64, totalNumberOfBytes *int64, totalNumberOfFreeBytes *int64) (err error) {
- r1, _, e1 := syscall.Syscall6(procGetDiskFreeSpaceExW.Addr(), 4, uintptr(unsafe.Pointer(directoryName)), uintptr(unsafe.Pointer(freeBytesAvailableToCaller)), uintptr(unsafe.Pointer(totalNumberOfBytes)), uintptr(unsafe.Pointer(totalNumberOfFreeBytes)), 0, 0)
- if r1 == 0 {
- if e1 != 0 {
- err = errnoErr(e1)
- } else {
- err = syscall.EINVAL
- }
- }
- return
-}
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/bindflt.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/bindflt.go
new file mode 100644
index 000000000..559d44325
--- /dev/null
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/bindflt.go
@@ -0,0 +1,19 @@
+package winapi
+
+const (
+ BINDFLT_FLAG_READ_ONLY_MAPPING uint32 = 0x00000001
+ BINDFLT_FLAG_MERGED_BIND_MAPPING uint32 = 0x00000002
+ BINDFLT_FLAG_USE_CURRENT_SILO_MAPPING uint32 = 0x00000004
+)
+
+// HRESULT
+// BfSetupFilter(
+// _In_opt_ HANDLE JobHandle,
+// _In_ ULONG Flags,
+// _In_ LPCWSTR VirtualizationRootPath,
+// _In_ LPCWSTR VirtualizationTargetPath,
+// _In_reads_opt_( VirtualizationExceptionPathCount ) LPCWSTR* VirtualizationExceptionPaths,
+// _In_opt_ ULONG VirtualizationExceptionPathCount
+// );
+//
+//sys BfSetupFilter(jobHandle windows.Handle, flags uint32, virtRootPath *uint16, virtTargetPath *uint16, virtExceptions **uint16, virtExceptionPathCount uint32) (hr error) = bindfltapi.BfSetupFilter?
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/console.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/console.go
index def952541..4547cdd8e 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/console.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/console.go
@@ -1,3 +1,5 @@
+//go:build windows
+
package winapi
import (
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/devices.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/devices.go
index df28ea242..7875466ca 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/devices.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/devices.go
@@ -1,3 +1,5 @@
+//go:build windows
+
package winapi
import "github.com/Microsoft/go-winio/pkg/guid"
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/doc.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/doc.go
new file mode 100644
index 000000000..9acc0bfc1
--- /dev/null
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/doc.go
@@ -0,0 +1,3 @@
+// Package winapi contains various low-level bindings to Windows APIs. It can
+// be thought of as an extension to golang.org/x/sys/windows.
+package winapi
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/elevation.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/elevation.go
new file mode 100644
index 000000000..40cbf8712
--- /dev/null
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/elevation.go
@@ -0,0 +1,11 @@
+//go:build windows
+
+package winapi
+
+import (
+ "golang.org/x/sys/windows"
+)
+
+func IsElevated() bool {
+ return windows.GetCurrentProcessToken().IsElevated()
+}
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/errors.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/errors.go
index 4e80ef68c..49ce924cb 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/errors.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/errors.go
@@ -1,3 +1,5 @@
+//go:build windows
+
package winapi
import "syscall"
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/filesystem.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/filesystem.go
index 7ce52afd5..3dcb3faa0 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/filesystem.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/filesystem.go
@@ -1,5 +1,8 @@
+//go:build windows
+
package winapi
+//sys CopyFileW(existingFileName *uint16, newFileName *uint16, failIfExists int32) (err error) = kernel32.CopyFileW
//sys NtCreateFile(handle *uintptr, accessMask uint32, oa *ObjectAttributes, iosb *IOStatusBlock, allocationSize *uint64, fileAttributes uint32, shareAccess uint32, createDisposition uint32, createOptions uint32, eaBuffer *byte, eaLength uint32) (status uint32) = ntdll.NtCreateFile
//sys NtSetInformationFile(handle uintptr, iosb *IOStatusBlock, information uintptr, length uint32, class uint32) (status uint32) = ntdll.NtSetInformationFile
@@ -34,34 +37,35 @@ const (
// Select entries from FILE_INFO_BY_HANDLE_CLASS.
//
// C declaration:
-// typedef enum _FILE_INFO_BY_HANDLE_CLASS {
-// FileBasicInfo,
-// FileStandardInfo,
-// FileNameInfo,
-// FileRenameInfo,
-// FileDispositionInfo,
-// FileAllocationInfo,
-// FileEndOfFileInfo,
-// FileStreamInfo,
-// FileCompressionInfo,
-// FileAttributeTagInfo,
-// FileIdBothDirectoryInfo,
-// FileIdBothDirectoryRestartInfo,
-// FileIoPriorityHintInfo,
-// FileRemoteProtocolInfo,
-// FileFullDirectoryInfo,
-// FileFullDirectoryRestartInfo,
-// FileStorageInfo,
-// FileAlignmentInfo,
-// FileIdInfo,
-// FileIdExtdDirectoryInfo,
-// FileIdExtdDirectoryRestartInfo,
-// FileDispositionInfoEx,
-// FileRenameInfoEx,
-// FileCaseSensitiveInfo,
-// FileNormalizedNameInfo,
-// MaximumFileInfoByHandleClass
-// } FILE_INFO_BY_HANDLE_CLASS, *PFILE_INFO_BY_HANDLE_CLASS;
+//
+// typedef enum _FILE_INFO_BY_HANDLE_CLASS {
+// FileBasicInfo,
+// FileStandardInfo,
+// FileNameInfo,
+// FileRenameInfo,
+// FileDispositionInfo,
+// FileAllocationInfo,
+// FileEndOfFileInfo,
+// FileStreamInfo,
+// FileCompressionInfo,
+// FileAttributeTagInfo,
+// FileIdBothDirectoryInfo,
+// FileIdBothDirectoryRestartInfo,
+// FileIoPriorityHintInfo,
+// FileRemoteProtocolInfo,
+// FileFullDirectoryInfo,
+// FileFullDirectoryRestartInfo,
+// FileStorageInfo,
+// FileAlignmentInfo,
+// FileIdInfo,
+// FileIdExtdDirectoryInfo,
+// FileIdExtdDirectoryRestartInfo,
+// FileDispositionInfoEx,
+// FileRenameInfoEx,
+// FileCaseSensitiveInfo,
+// FileNormalizedNameInfo,
+// MaximumFileInfoByHandleClass
+// } FILE_INFO_BY_HANDLE_CLASS, *PFILE_INFO_BY_HANDLE_CLASS;
//
// Documentation: https://docs.microsoft.com/en-us/windows/win32/api/minwinbase/ne-minwinbase-file_info_by_handle_class
const (
@@ -98,10 +102,11 @@ type FileLinkInformation struct {
}
// C declaration:
-// typedef struct _FILE_ID_INFO {
-// ULONGLONG VolumeSerialNumber;
-// FILE_ID_128 FileId;
-// } FILE_ID_INFO, *PFILE_ID_INFO;
+//
+// typedef struct _FILE_ID_INFO {
+// ULONGLONG VolumeSerialNumber;
+// FILE_ID_128 FileId;
+// } FILE_ID_INFO, *PFILE_ID_INFO;
//
// Documentation: https://docs.microsoft.com/en-us/windows/win32/api/winbase/ns-winbase-file_id_info
type FILE_ID_INFO struct {
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/jobobject.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/jobobject.go
index 7eb13f8f0..b0deb5c72 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/jobobject.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/jobobject.go
@@ -1,3 +1,5 @@
+//go:build windows
+
package winapi
import (
@@ -55,6 +57,8 @@ const (
JobObjectLimitViolationInformation uint32 = 13
JobObjectMemoryUsageInformation uint32 = 28
JobObjectNotificationLimitInformation2 uint32 = 33
+ JobObjectCreateSilo uint32 = 35
+ JobObjectSiloBasicInformation uint32 = 36
JobObjectIoAttribution uint32 = 42
)
@@ -111,29 +115,27 @@ type JOBOBJECT_BASIC_ACCOUNTING_INFORMATION struct {
TotalTerminateProcesses uint32
}
-//https://docs.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-jobobject_basic_and_io_accounting_information
+// https://docs.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-jobobject_basic_and_io_accounting_information
type JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION struct {
BasicInfo JOBOBJECT_BASIC_ACCOUNTING_INFORMATION
IoInfo windows.IO_COUNTERS
}
-// typedef struct _JOBOBJECT_MEMORY_USAGE_INFORMATION {
-// ULONG64 JobMemory;
-// ULONG64 PeakJobMemoryUsed;
-// } JOBOBJECT_MEMORY_USAGE_INFORMATION, *PJOBOBJECT_MEMORY_USAGE_INFORMATION;
-//
+// typedef struct _JOBOBJECT_MEMORY_USAGE_INFORMATION {
+// ULONG64 JobMemory;
+// ULONG64 PeakJobMemoryUsed;
+// } JOBOBJECT_MEMORY_USAGE_INFORMATION, *PJOBOBJECT_MEMORY_USAGE_INFORMATION;
type JOBOBJECT_MEMORY_USAGE_INFORMATION struct {
JobMemory uint64
PeakJobMemoryUsed uint64
}
-// typedef struct _JOBOBJECT_IO_ATTRIBUTION_STATS {
-// ULONG_PTR IoCount;
-// ULONGLONG TotalNonOverlappedQueueTime;
-// ULONGLONG TotalNonOverlappedServiceTime;
-// ULONGLONG TotalSize;
-// } JOBOBJECT_IO_ATTRIBUTION_STATS, *PJOBOBJECT_IO_ATTRIBUTION_STATS;
-//
+// typedef struct _JOBOBJECT_IO_ATTRIBUTION_STATS {
+// ULONG_PTR IoCount;
+// ULONGLONG TotalNonOverlappedQueueTime;
+// ULONGLONG TotalNonOverlappedServiceTime;
+// ULONGLONG TotalSize;
+// } JOBOBJECT_IO_ATTRIBUTION_STATS, *PJOBOBJECT_IO_ATTRIBUTION_STATS;
type JOBOBJECT_IO_ATTRIBUTION_STATS struct {
IoCount uintptr
TotalNonOverlappedQueueTime uint64
@@ -141,12 +143,11 @@ type JOBOBJECT_IO_ATTRIBUTION_STATS struct {
TotalSize uint64
}
-// typedef struct _JOBOBJECT_IO_ATTRIBUTION_INFORMATION {
-// ULONG ControlFlags;
-// JOBOBJECT_IO_ATTRIBUTION_STATS ReadStats;
-// JOBOBJECT_IO_ATTRIBUTION_STATS WriteStats;
-// } JOBOBJECT_IO_ATTRIBUTION_INFORMATION, *PJOBOBJECT_IO_ATTRIBUTION_INFORMATION;
-//
+// typedef struct _JOBOBJECT_IO_ATTRIBUTION_INFORMATION {
+// ULONG ControlFlags;
+// JOBOBJECT_IO_ATTRIBUTION_STATS ReadStats;
+// JOBOBJECT_IO_ATTRIBUTION_STATS WriteStats;
+// } JOBOBJECT_IO_ATTRIBUTION_INFORMATION, *PJOBOBJECT_IO_ATTRIBUTION_INFORMATION;
type JOBOBJECT_IO_ATTRIBUTION_INFORMATION struct {
ControlFlags uint32
ReadStats JOBOBJECT_IO_ATTRIBUTION_STATS
@@ -183,7 +184,7 @@ type JOBOBJECT_ASSOCIATE_COMPLETION_PORT struct {
// LPCWSTR lpName
// );
//
-//sys OpenJobObject(desiredAccess uint32, inheritHandle bool, lpName *uint16) (handle windows.Handle, err error) = kernel32.OpenJobObjectW
+//sys OpenJobObject(desiredAccess uint32, inheritHandle int32, lpName *uint16) (handle windows.Handle, err error) = kernel32.OpenJobObjectW
// DWORD SetIoRateControlInformationJobObject(
// HANDLE hJob,
@@ -198,6 +199,7 @@ type JOBOBJECT_ASSOCIATE_COMPLETION_PORT struct {
// JOBOBJECT_IO_RATE_CONTROL_INFORMATION **InfoBlocks,
// ULONG *InfoBlockCount
// );
+//
//sys QueryIoRateControlInformationJobObject(jobHandle windows.Handle, volumeName *uint16, ioRateControlInfo **JOBOBJECT_IO_RATE_CONTROL_INFORMATION, infoBlockCount *uint32) (ret uint32, err error) = kernel32.QueryIoRateControlInformationJobObject
// NTSTATUS
@@ -206,6 +208,7 @@ type JOBOBJECT_ASSOCIATE_COMPLETION_PORT struct {
// _In_ ACCESS_MASK DesiredAccess,
// _In_ POBJECT_ATTRIBUTES ObjectAttributes
// );
+//
//sys NtOpenJobObject(jobHandle *windows.Handle, desiredAccess uint32, objAttributes *ObjectAttributes) (status uint32) = ntdll.NtOpenJobObject
// NTSTATUS
@@ -215,4 +218,5 @@ type JOBOBJECT_ASSOCIATE_COMPLETION_PORT struct {
// _In_ ACCESS_MASK DesiredAccess,
// _In_opt_ POBJECT_ATTRIBUTES ObjectAttributes
// );
+//
//sys NtCreateJobObject(jobHandle *windows.Handle, desiredAccess uint32, objAttributes *ObjectAttributes) (status uint32) = ntdll.NtCreateJobObject
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/ofreg.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/ofreg.go
new file mode 100644
index 000000000..d8f7afe8a
--- /dev/null
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/ofreg.go
@@ -0,0 +1,5 @@
+package winapi
+
+//sys ORCreateHive(key *syscall.Handle) (regerrno error) = offreg.ORCreateHive
+//sys ORSaveHive(key syscall.Handle, file string, OsMajorVersion uint32, OsMinorVersion uint32) (regerrno error) = offreg.ORSaveHive
+//sys ORCloseHive(key syscall.Handle) (regerrno error) = offreg.ORCloseHive
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/path.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/path.go
index 908920e87..c6a149b55 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/path.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/path.go
@@ -8,4 +8,5 @@ package winapi
// LPWSTR lpBuffer,
// LPWSTR *lpFilePart
// );
+//
//sys SearchPath(lpPath *uint16, lpFileName *uint16, lpExtension *uint16, nBufferLength uint32, lpBuffer *uint16, lpFilePath *uint16) (size uint32, err error) = kernel32.SearchPathW
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/process.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/process.go
index 222529f43..f4ae94cfa 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/process.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/process.go
@@ -20,22 +20,20 @@ const ProcessVmCounters = 3
//
//sys NtQueryInformationProcess(processHandle windows.Handle, processInfoClass uint32, processInfo unsafe.Pointer, processInfoLength uint32, returnLength *uint32) (status uint32) = ntdll.NtQueryInformationProcess
-// typedef struct _VM_COUNTERS_EX
-// {
-// SIZE_T PeakVirtualSize;
-// SIZE_T VirtualSize;
-// ULONG PageFaultCount;
-// SIZE_T PeakWorkingSetSize;
-// SIZE_T WorkingSetSize;
-// SIZE_T QuotaPeakPagedPoolUsage;
-// SIZE_T QuotaPagedPoolUsage;
-// SIZE_T QuotaPeakNonPagedPoolUsage;
-// SIZE_T QuotaNonPagedPoolUsage;
-// SIZE_T PagefileUsage;
-// SIZE_T PeakPagefileUsage;
-// SIZE_T PrivateUsage;
-// } VM_COUNTERS_EX, *PVM_COUNTERS_EX;
-//
+// typedef struct _VM_COUNTERS_EX {
+// SIZE_T PeakVirtualSize;
+// SIZE_T VirtualSize;
+// ULONG PageFaultCount;
+// SIZE_T PeakWorkingSetSize;
+// SIZE_T WorkingSetSize;
+// SIZE_T QuotaPeakPagedPoolUsage;
+// SIZE_T QuotaPagedPoolUsage;
+// SIZE_T QuotaPeakNonPagedPoolUsage;
+// SIZE_T QuotaNonPagedPoolUsage;
+// SIZE_T PagefileUsage;
+// SIZE_T PeakPagefileUsage;
+// SIZE_T PrivateUsage;
+// } VM_COUNTERS_EX, *PVM_COUNTERS_EX;
type VM_COUNTERS_EX struct {
PeakVirtualSize uintptr
VirtualSize uintptr
@@ -51,13 +49,11 @@ type VM_COUNTERS_EX struct {
PrivateUsage uintptr
}
-// typedef struct _VM_COUNTERS_EX2
-// {
-// VM_COUNTERS_EX CountersEx;
-// SIZE_T PrivateWorkingSetSize;
-// SIZE_T SharedCommitUsage;
-// } VM_COUNTERS_EX2, *PVM_COUNTERS_EX2;
-//
+// typedef struct _VM_COUNTERS_EX2 {
+// VM_COUNTERS_EX CountersEx;
+// SIZE_T PrivateWorkingSetSize;
+// SIZE_T SharedCommitUsage;
+// } VM_COUNTERS_EX2, *PVM_COUNTERS_EX2;
type VM_COUNTERS_EX2 struct {
CountersEx VM_COUNTERS_EX
PrivateWorkingSetSize uintptr
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/system.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/system.go
index 78fe01a4b..cb494aaa6 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/system.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/system.go
@@ -1,3 +1,5 @@
+//go:build windows
+
package winapi
import "golang.org/x/sys/windows"
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/thread.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/thread.go
index 4724713e3..f23141a83 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/thread.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/thread.go
@@ -9,4 +9,5 @@ package winapi
// DWORD dwCreationFlags,
// LPDWORD lpThreadId
// );
+//
//sys CreateRemoteThread(process windows.Handle, sa *windows.SecurityAttributes, stackSize uint32, startAddr uintptr, parameter uintptr, creationFlags uint32, threadID *uint32) (handle windows.Handle, err error) = kernel32.CreateRemoteThread
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/user.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/user.go
new file mode 100644
index 000000000..84d4cc294
--- /dev/null
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/user.go
@@ -0,0 +1,194 @@
+//go:build windows
+
+package winapi
+
+import (
+ "syscall"
+
+ "golang.org/x/sys/windows"
+)
+
+const UserNameCharLimit = 20
+
+const (
+ USER_PRIV_GUEST uint32 = iota
+ USER_PRIV_USER
+ USER_PRIV_ADMIN
+)
+
+const (
+ UF_NORMAL_ACCOUNT = 0x00200
+ UF_DONT_EXPIRE_PASSWD = 0x10000
+)
+
+const NERR_UserNotFound = syscall.Errno(0x8AD)
+
+// typedef struct _LOCALGROUP_MEMBERS_INFO_0 {
+// PSID lgrmi0_sid;
+// } LOCALGROUP_MEMBERS_INFO_0, *PLOCALGROUP_MEMBERS_INFO_0, *LPLOCALGROUP_MEMBERS_INFO_0;
+type LocalGroupMembersInfo0 struct {
+ Sid *windows.SID
+}
+
+// typedef struct _LOCALGROUP_INFO_1 {
+// LPWSTR lgrpi1_name;
+// LPWSTR lgrpi1_comment;
+// } LOCALGROUP_INFO_1, *PLOCALGROUP_INFO_1, *LPLOCALGROUP_INFO_1;
+type LocalGroupInfo1 struct {
+ Name *uint16
+ Comment *uint16
+}
+
+// typedef struct _USER_INFO_1 {
+// LPWSTR usri1_name;
+// LPWSTR usri1_password;
+// DWORD usri1_password_age;
+// DWORD usri1_priv;
+// LPWSTR usri1_home_dir;
+// LPWSTR usri1_comment;
+// DWORD usri1_flags;
+// LPWSTR usri1_script_path;
+// } USER_INFO_1, *PUSER_INFO_1, *LPUSER_INFO_1;
+type UserInfo1 struct {
+ Name *uint16
+ Password *uint16
+ PasswordAge uint32
+ Priv uint32
+ HomeDir *uint16
+ Comment *uint16
+ Flags uint32
+ ScriptPath *uint16
+}
+
+// NET_API_STATUS NET_API_FUNCTION NetLocalGroupGetInfo(
+// [in] LPCWSTR servername,
+// [in] LPCWSTR groupname,
+// [in] DWORD level,
+// [out] LPBYTE *bufptr
+// );
+//
+//sys netLocalGroupGetInfo(serverName *uint16, groupName *uint16, level uint32, bufptr **byte) (status error) = netapi32.NetLocalGroupGetInfo
+
+// NetLocalGroupGetInfo is a slightly go friendlier wrapper around the NetLocalGroupGetInfo function. Instead of taking in *uint16's, it takes in
+// go strings and does the conversion internally.
+func NetLocalGroupGetInfo(serverName, groupName string, level uint32, bufPtr **byte) (err error) {
+ var (
+ serverNameUTF16 *uint16
+ groupNameUTF16 *uint16
+ )
+ if serverName != "" {
+ serverNameUTF16, err = windows.UTF16PtrFromString(serverName)
+ if err != nil {
+ return err
+ }
+ }
+ if groupName != "" {
+ groupNameUTF16, err = windows.UTF16PtrFromString(groupName)
+ if err != nil {
+ return err
+ }
+ }
+ return netLocalGroupGetInfo(
+ serverNameUTF16,
+ groupNameUTF16,
+ level,
+ bufPtr,
+ )
+}
+
+// NET_API_STATUS NET_API_FUNCTION NetUserAdd(
+// [in] LPCWSTR servername,
+// [in] DWORD level,
+// [in] LPBYTE buf,
+// [out] LPDWORD parm_err
+// );
+//
+//sys netUserAdd(serverName *uint16, level uint32, buf *byte, parm_err *uint32) (status error) = netapi32.NetUserAdd
+
+// NetUserAdd is a slightly go friendlier wrapper around the NetUserAdd function. Instead of taking in *uint16's, it takes in
+// go strings and does the conversion internally.
+func NetUserAdd(serverName string, level uint32, buf *byte, parm_err *uint32) (err error) {
+ var serverNameUTF16 *uint16
+ if serverName != "" {
+ serverNameUTF16, err = windows.UTF16PtrFromString(serverName)
+ if err != nil {
+ return err
+ }
+ }
+ return netUserAdd(
+ serverNameUTF16,
+ level,
+ buf,
+ parm_err,
+ )
+}
+
+// NET_API_STATUS NET_API_FUNCTION NetUserDel(
+// [in] LPCWSTR servername,
+// [in] LPCWSTR username
+// );
+//
+//sys netUserDel(serverName *uint16, username *uint16) (status error) = netapi32.NetUserDel
+
+// NetUserDel is a slightly go friendlier wrapper around the NetUserDel function. Instead of taking in *uint16's, it takes in
+// go strings and does the conversion internally.
+func NetUserDel(serverName, userName string) (err error) {
+ var (
+ serverNameUTF16 *uint16
+ userNameUTF16 *uint16
+ )
+ if serverName != "" {
+ serverNameUTF16, err = windows.UTF16PtrFromString(serverName)
+ if err != nil {
+ return err
+ }
+ }
+ if userName != "" {
+ userNameUTF16, err = windows.UTF16PtrFromString(userName)
+ if err != nil {
+ return err
+ }
+ }
+ return netUserDel(
+ serverNameUTF16,
+ userNameUTF16,
+ )
+}
+
+// NET_API_STATUS NET_API_FUNCTION NetLocalGroupAddMembers(
+// [in] LPCWSTR servername,
+// [in] LPCWSTR groupname,
+// [in] DWORD level,
+// [in] LPBYTE buf,
+// [in] DWORD totalentries
+// );
+//
+//sys netLocalGroupAddMembers(serverName *uint16, groupName *uint16, level uint32, buf *byte, totalEntries uint32) (status error) = netapi32.NetLocalGroupAddMembers
+
+// NetLocalGroupAddMembers is a slightly go friendlier wrapper around the NetLocalGroupAddMembers function. Instead of taking in *uint16's, it takes in
+// go strings and does the conversion internally.
+func NetLocalGroupAddMembers(serverName, groupName string, level uint32, buf *byte, totalEntries uint32) (err error) {
+ var (
+ serverNameUTF16 *uint16
+ groupNameUTF16 *uint16
+ )
+ if serverName != "" {
+ serverNameUTF16, err = windows.UTF16PtrFromString(serverName)
+ if err != nil {
+ return err
+ }
+ }
+ if groupName != "" {
+ groupNameUTF16, err = windows.UTF16PtrFromString(groupName)
+ if err != nil {
+ return err
+ }
+ }
+ return netLocalGroupAddMembers(
+ serverNameUTF16,
+ groupNameUTF16,
+ level,
+ buf,
+ totalEntries,
+ )
+}
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/utils.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/utils.go
index 859b753c2..a2da57070 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/utils.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/utils.go
@@ -1,3 +1,5 @@
+//go:build windows
+
package winapi
import (
@@ -32,7 +34,7 @@ type UnicodeString struct {
// denotes the maximum number of wide chars a path can have.
const NTSTRSAFE_UNICODE_STRING_MAX_CCH = 32767
-//String converts a UnicodeString to a golang string
+// String converts a UnicodeString to a golang string
func (uni UnicodeString) String() string {
// UnicodeString is not guaranteed to be null terminated, therefore
// use the UnicodeString's Length field
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/winapi.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/winapi.go
index d2cc9d9fb..6a90e3a69 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/winapi.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/winapi.go
@@ -1,5 +1,3 @@
-// Package winapi contains various low-level bindings to Windows APIs. It can
-// be thought of as an extension to golang.org/x/sys/windows.
package winapi
-//go:generate go run ..\..\mksyscall_windows.go -output zsyscall_windows.go user.go console.go system.go net.go path.go thread.go jobobject.go logon.go memory.go process.go processor.go devices.go filesystem.go errors.go
+//go:generate go run github.com/Microsoft/go-winio/tools/mkwinsyscall -output zsyscall_windows.go ./*.go
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/zsyscall_windows.go b/tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/zsyscall_windows.go
index 1f16cf0b8..c607245eb 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/zsyscall_windows.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/internal/winapi/zsyscall_windows.go
@@ -1,4 +1,6 @@
-// Code generated mksyscall_windows.exe DO NOT EDIT
+//go:build windows
+
+// Code generated by 'go generate' using "github.com/Microsoft/go-winio/tools/mkwinsyscall"; DO NOT EDIT.
package winapi
@@ -19,6 +21,7 @@ const (
var (
errERROR_IO_PENDING error = syscall.Errno(errnoERROR_IO_PENDING)
+ errERROR_EINVAL error = syscall.EINVAL
)
// errnoErr returns common boxed Errno values, to prevent
@@ -26,7 +29,7 @@ var (
func errnoErr(e syscall.Errno) error {
switch e {
case 0:
- return nil
+ return errERROR_EINVAL
case errnoERROR_IO_PENDING:
return errERROR_IO_PENDING
}
@@ -37,44 +40,68 @@ func errnoErr(e syscall.Errno) error {
}
var (
- modkernel32 = windows.NewLazySystemDLL("kernel32.dll")
- modntdll = windows.NewLazySystemDLL("ntdll.dll")
- modiphlpapi = windows.NewLazySystemDLL("iphlpapi.dll")
- modadvapi32 = windows.NewLazySystemDLL("advapi32.dll")
- modcfgmgr32 = windows.NewLazySystemDLL("cfgmgr32.dll")
+ modadvapi32 = windows.NewLazySystemDLL("advapi32.dll")
+ modbindfltapi = windows.NewLazySystemDLL("bindfltapi.dll")
+ modcfgmgr32 = windows.NewLazySystemDLL("cfgmgr32.dll")
+ modiphlpapi = windows.NewLazySystemDLL("iphlpapi.dll")
+ modkernel32 = windows.NewLazySystemDLL("kernel32.dll")
+ modnetapi32 = windows.NewLazySystemDLL("netapi32.dll")
+ modntdll = windows.NewLazySystemDLL("ntdll.dll")
+ modoffreg = windows.NewLazySystemDLL("offreg.dll")
- procCreatePseudoConsole = modkernel32.NewProc("CreatePseudoConsole")
- procClosePseudoConsole = modkernel32.NewProc("ClosePseudoConsole")
- procResizePseudoConsole = modkernel32.NewProc("ResizePseudoConsole")
- procNtQuerySystemInformation = modntdll.NewProc("NtQuerySystemInformation")
+ procLogonUserW = modadvapi32.NewProc("LogonUserW")
+ procBfSetupFilter = modbindfltapi.NewProc("BfSetupFilter")
+ procCM_Get_DevNode_PropertyW = modcfgmgr32.NewProc("CM_Get_DevNode_PropertyW")
+ procCM_Get_Device_ID_ListA = modcfgmgr32.NewProc("CM_Get_Device_ID_ListA")
+ procCM_Get_Device_ID_List_SizeA = modcfgmgr32.NewProc("CM_Get_Device_ID_List_SizeA")
+ procCM_Locate_DevNodeW = modcfgmgr32.NewProc("CM_Locate_DevNodeW")
procSetJobCompartmentId = modiphlpapi.NewProc("SetJobCompartmentId")
- procSearchPathW = modkernel32.NewProc("SearchPathW")
+ procClosePseudoConsole = modkernel32.NewProc("ClosePseudoConsole")
+ procCopyFileW = modkernel32.NewProc("CopyFileW")
+ procCreatePseudoConsole = modkernel32.NewProc("CreatePseudoConsole")
procCreateRemoteThread = modkernel32.NewProc("CreateRemoteThread")
+ procGetActiveProcessorCount = modkernel32.NewProc("GetActiveProcessorCount")
procIsProcessInJob = modkernel32.NewProc("IsProcessInJob")
- procQueryInformationJobObject = modkernel32.NewProc("QueryInformationJobObject")
- procOpenJobObjectW = modkernel32.NewProc("OpenJobObjectW")
- procSetIoRateControlInformationJobObject = modkernel32.NewProc("SetIoRateControlInformationJobObject")
- procQueryIoRateControlInformationJobObject = modkernel32.NewProc("QueryIoRateControlInformationJobObject")
- procNtOpenJobObject = modntdll.NewProc("NtOpenJobObject")
- procNtCreateJobObject = modntdll.NewProc("NtCreateJobObject")
- procLogonUserW = modadvapi32.NewProc("LogonUserW")
procLocalAlloc = modkernel32.NewProc("LocalAlloc")
procLocalFree = modkernel32.NewProc("LocalFree")
- procNtQueryInformationProcess = modntdll.NewProc("NtQueryInformationProcess")
- procGetActiveProcessorCount = modkernel32.NewProc("GetActiveProcessorCount")
- procCM_Get_Device_ID_List_SizeA = modcfgmgr32.NewProc("CM_Get_Device_ID_List_SizeA")
- procCM_Get_Device_ID_ListA = modcfgmgr32.NewProc("CM_Get_Device_ID_ListA")
- procCM_Locate_DevNodeW = modcfgmgr32.NewProc("CM_Locate_DevNodeW")
- procCM_Get_DevNode_PropertyW = modcfgmgr32.NewProc("CM_Get_DevNode_PropertyW")
+ procOpenJobObjectW = modkernel32.NewProc("OpenJobObjectW")
+ procQueryInformationJobObject = modkernel32.NewProc("QueryInformationJobObject")
+ procQueryIoRateControlInformationJobObject = modkernel32.NewProc("QueryIoRateControlInformationJobObject")
+ procResizePseudoConsole = modkernel32.NewProc("ResizePseudoConsole")
+ procSearchPathW = modkernel32.NewProc("SearchPathW")
+ procSetIoRateControlInformationJobObject = modkernel32.NewProc("SetIoRateControlInformationJobObject")
+ procNetLocalGroupAddMembers = modnetapi32.NewProc("NetLocalGroupAddMembers")
+ procNetLocalGroupGetInfo = modnetapi32.NewProc("NetLocalGroupGetInfo")
+ procNetUserAdd = modnetapi32.NewProc("NetUserAdd")
+ procNetUserDel = modnetapi32.NewProc("NetUserDel")
procNtCreateFile = modntdll.NewProc("NtCreateFile")
- procNtSetInformationFile = modntdll.NewProc("NtSetInformationFile")
+ procNtCreateJobObject = modntdll.NewProc("NtCreateJobObject")
procNtOpenDirectoryObject = modntdll.NewProc("NtOpenDirectoryObject")
+ procNtOpenJobObject = modntdll.NewProc("NtOpenJobObject")
procNtQueryDirectoryObject = modntdll.NewProc("NtQueryDirectoryObject")
+ procNtQueryInformationProcess = modntdll.NewProc("NtQueryInformationProcess")
+ procNtQuerySystemInformation = modntdll.NewProc("NtQuerySystemInformation")
+ procNtSetInformationFile = modntdll.NewProc("NtSetInformationFile")
procRtlNtStatusToDosError = modntdll.NewProc("RtlNtStatusToDosError")
+ procORCloseHive = modoffreg.NewProc("ORCloseHive")
+ procORCreateHive = modoffreg.NewProc("ORCreateHive")
+ procORSaveHive = modoffreg.NewProc("ORSaveHive")
)
-func createPseudoConsole(size uint32, hInput windows.Handle, hOutput windows.Handle, dwFlags uint32, hpcon *windows.Handle) (hr error) {
- r0, _, _ := syscall.Syscall6(procCreatePseudoConsole.Addr(), 5, uintptr(size), uintptr(hInput), uintptr(hOutput), uintptr(dwFlags), uintptr(unsafe.Pointer(hpcon)), 0)
+func LogonUser(username *uint16, domain *uint16, password *uint16, logonType uint32, logonProvider uint32, token *windows.Token) (err error) {
+ r1, _, e1 := syscall.Syscall6(procLogonUserW.Addr(), 6, uintptr(unsafe.Pointer(username)), uintptr(unsafe.Pointer(domain)), uintptr(unsafe.Pointer(password)), uintptr(logonType), uintptr(logonProvider), uintptr(unsafe.Pointer(token)))
+ if r1 == 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func BfSetupFilter(jobHandle windows.Handle, flags uint32, virtRootPath *uint16, virtTargetPath *uint16, virtExceptions **uint16, virtExceptionPathCount uint32) (hr error) {
+ hr = procBfSetupFilter.Find()
+ if hr != nil {
+ return
+ }
+ r0, _, _ := syscall.Syscall6(procBfSetupFilter.Addr(), 6, uintptr(jobHandle), uintptr(flags), uintptr(unsafe.Pointer(virtRootPath)), uintptr(unsafe.Pointer(virtTargetPath)), uintptr(unsafe.Pointer(virtExceptions)), uintptr(virtExceptionPathCount))
if int32(r0) < 0 {
if r0&0x1fff0000 == 0x00070000 {
r0 &= 0xffff
@@ -84,13 +111,8 @@ func createPseudoConsole(size uint32, hInput windows.Handle, hOutput windows.Han
return
}
-func ClosePseudoConsole(hpc windows.Handle) {
- syscall.Syscall(procClosePseudoConsole.Addr(), 1, uintptr(hpc), 0, 0)
- return
-}
-
-func resizePseudoConsole(hPc windows.Handle, size uint32) (hr error) {
- r0, _, _ := syscall.Syscall(procResizePseudoConsole.Addr(), 2, uintptr(hPc), uintptr(size), 0)
+func CMGetDevNodeProperty(dnDevInst uint32, propertyKey *DevPropKey, propertyType *uint32, propertyBuffer *uint16, propertyBufferSize *uint32, uFlags uint32) (hr error) {
+ r0, _, _ := syscall.Syscall6(procCM_Get_DevNode_PropertyW.Addr(), 6, uintptr(dnDevInst), uintptr(unsafe.Pointer(propertyKey)), uintptr(unsafe.Pointer(propertyType)), uintptr(unsafe.Pointer(propertyBuffer)), uintptr(unsafe.Pointer(propertyBufferSize)), uintptr(uFlags))
if int32(r0) < 0 {
if r0&0x1fff0000 == 0x00070000 {
r0 &= 0xffff
@@ -100,135 +122,99 @@ func resizePseudoConsole(hPc windows.Handle, size uint32) (hr error) {
return
}
-func NtQuerySystemInformation(systemInfoClass int, systemInformation unsafe.Pointer, systemInfoLength uint32, returnLength *uint32) (status uint32) {
- r0, _, _ := syscall.Syscall6(procNtQuerySystemInformation.Addr(), 4, uintptr(systemInfoClass), uintptr(systemInformation), uintptr(systemInfoLength), uintptr(unsafe.Pointer(returnLength)), 0, 0)
- status = uint32(r0)
- return
-}
-
-func SetJobCompartmentId(handle windows.Handle, compartmentId uint32) (win32Err error) {
- r0, _, _ := syscall.Syscall(procSetJobCompartmentId.Addr(), 2, uintptr(handle), uintptr(compartmentId), 0)
- if r0 != 0 {
- win32Err = syscall.Errno(r0)
+func CMGetDeviceIDList(pszFilter *byte, buffer *byte, bufferLen uint32, uFlags uint32) (hr error) {
+ r0, _, _ := syscall.Syscall6(procCM_Get_Device_ID_ListA.Addr(), 4, uintptr(unsafe.Pointer(pszFilter)), uintptr(unsafe.Pointer(buffer)), uintptr(bufferLen), uintptr(uFlags), 0, 0)
+ if int32(r0) < 0 {
+ if r0&0x1fff0000 == 0x00070000 {
+ r0 &= 0xffff
+ }
+ hr = syscall.Errno(r0)
}
return
}
-func SearchPath(lpPath *uint16, lpFileName *uint16, lpExtension *uint16, nBufferLength uint32, lpBuffer *uint16, lpFilePath *uint16) (size uint32, err error) {
- r0, _, e1 := syscall.Syscall6(procSearchPathW.Addr(), 6, uintptr(unsafe.Pointer(lpPath)), uintptr(unsafe.Pointer(lpFileName)), uintptr(unsafe.Pointer(lpExtension)), uintptr(nBufferLength), uintptr(unsafe.Pointer(lpBuffer)), uintptr(unsafe.Pointer(lpFilePath)))
- size = uint32(r0)
- if size == 0 {
- if e1 != 0 {
- err = errnoErr(e1)
- } else {
- err = syscall.EINVAL
+func CMGetDeviceIDListSize(pulLen *uint32, pszFilter *byte, uFlags uint32) (hr error) {
+ r0, _, _ := syscall.Syscall(procCM_Get_Device_ID_List_SizeA.Addr(), 3, uintptr(unsafe.Pointer(pulLen)), uintptr(unsafe.Pointer(pszFilter)), uintptr(uFlags))
+ if int32(r0) < 0 {
+ if r0&0x1fff0000 == 0x00070000 {
+ r0 &= 0xffff
}
+ hr = syscall.Errno(r0)
}
return
}
-func CreateRemoteThread(process windows.Handle, sa *windows.SecurityAttributes, stackSize uint32, startAddr uintptr, parameter uintptr, creationFlags uint32, threadID *uint32) (handle windows.Handle, err error) {
- r0, _, e1 := syscall.Syscall9(procCreateRemoteThread.Addr(), 7, uintptr(process), uintptr(unsafe.Pointer(sa)), uintptr(stackSize), uintptr(startAddr), uintptr(parameter), uintptr(creationFlags), uintptr(unsafe.Pointer(threadID)), 0, 0)
- handle = windows.Handle(r0)
- if handle == 0 {
- if e1 != 0 {
- err = errnoErr(e1)
- } else {
- err = syscall.EINVAL
- }
+func CMLocateDevNode(pdnDevInst *uint32, pDeviceID string, uFlags uint32) (hr error) {
+ var _p0 *uint16
+ _p0, hr = syscall.UTF16PtrFromString(pDeviceID)
+ if hr != nil {
+ return
}
- return
+ return _CMLocateDevNode(pdnDevInst, _p0, uFlags)
}
-func IsProcessInJob(procHandle windows.Handle, jobHandle windows.Handle, result *int32) (err error) {
- r1, _, e1 := syscall.Syscall(procIsProcessInJob.Addr(), 3, uintptr(procHandle), uintptr(jobHandle), uintptr(unsafe.Pointer(result)))
- if r1 == 0 {
- if e1 != 0 {
- err = errnoErr(e1)
- } else {
- err = syscall.EINVAL
+func _CMLocateDevNode(pdnDevInst *uint32, pDeviceID *uint16, uFlags uint32) (hr error) {
+ r0, _, _ := syscall.Syscall(procCM_Locate_DevNodeW.Addr(), 3, uintptr(unsafe.Pointer(pdnDevInst)), uintptr(unsafe.Pointer(pDeviceID)), uintptr(uFlags))
+ if int32(r0) < 0 {
+ if r0&0x1fff0000 == 0x00070000 {
+ r0 &= 0xffff
}
+ hr = syscall.Errno(r0)
}
return
}
-func QueryInformationJobObject(jobHandle windows.Handle, infoClass uint32, jobObjectInfo unsafe.Pointer, jobObjectInformationLength uint32, lpReturnLength *uint32) (err error) {
- r1, _, e1 := syscall.Syscall6(procQueryInformationJobObject.Addr(), 5, uintptr(jobHandle), uintptr(infoClass), uintptr(jobObjectInfo), uintptr(jobObjectInformationLength), uintptr(unsafe.Pointer(lpReturnLength)), 0)
- if r1 == 0 {
- if e1 != 0 {
- err = errnoErr(e1)
- } else {
- err = syscall.EINVAL
- }
+func SetJobCompartmentId(handle windows.Handle, compartmentId uint32) (win32Err error) {
+ r0, _, _ := syscall.Syscall(procSetJobCompartmentId.Addr(), 2, uintptr(handle), uintptr(compartmentId), 0)
+ if r0 != 0 {
+ win32Err = syscall.Errno(r0)
}
return
}
-func OpenJobObject(desiredAccess uint32, inheritHandle bool, lpName *uint16) (handle windows.Handle, err error) {
- var _p0 uint32
- if inheritHandle {
- _p0 = 1
- } else {
- _p0 = 0
- }
- r0, _, e1 := syscall.Syscall(procOpenJobObjectW.Addr(), 3, uintptr(desiredAccess), uintptr(_p0), uintptr(unsafe.Pointer(lpName)))
- handle = windows.Handle(r0)
- if handle == 0 {
- if e1 != 0 {
- err = errnoErr(e1)
- } else {
- err = syscall.EINVAL
- }
- }
+func ClosePseudoConsole(hpc windows.Handle) {
+ syscall.Syscall(procClosePseudoConsole.Addr(), 1, uintptr(hpc), 0, 0)
return
}
-func SetIoRateControlInformationJobObject(jobHandle windows.Handle, ioRateControlInfo *JOBOBJECT_IO_RATE_CONTROL_INFORMATION) (ret uint32, err error) {
- r0, _, e1 := syscall.Syscall(procSetIoRateControlInformationJobObject.Addr(), 2, uintptr(jobHandle), uintptr(unsafe.Pointer(ioRateControlInfo)), 0)
- ret = uint32(r0)
- if ret == 0 {
- if e1 != 0 {
- err = errnoErr(e1)
- } else {
- err = syscall.EINVAL
- }
+func CopyFileW(existingFileName *uint16, newFileName *uint16, failIfExists int32) (err error) {
+ r1, _, e1 := syscall.Syscall(procCopyFileW.Addr(), 3, uintptr(unsafe.Pointer(existingFileName)), uintptr(unsafe.Pointer(newFileName)), uintptr(failIfExists))
+ if r1 == 0 {
+ err = errnoErr(e1)
}
return
}
-func QueryIoRateControlInformationJobObject(jobHandle windows.Handle, volumeName *uint16, ioRateControlInfo **JOBOBJECT_IO_RATE_CONTROL_INFORMATION, infoBlockCount *uint32) (ret uint32, err error) {
- r0, _, e1 := syscall.Syscall6(procQueryIoRateControlInformationJobObject.Addr(), 4, uintptr(jobHandle), uintptr(unsafe.Pointer(volumeName)), uintptr(unsafe.Pointer(ioRateControlInfo)), uintptr(unsafe.Pointer(infoBlockCount)), 0, 0)
- ret = uint32(r0)
- if ret == 0 {
- if e1 != 0 {
- err = errnoErr(e1)
- } else {
- err = syscall.EINVAL
+func createPseudoConsole(size uint32, hInput windows.Handle, hOutput windows.Handle, dwFlags uint32, hpcon *windows.Handle) (hr error) {
+ r0, _, _ := syscall.Syscall6(procCreatePseudoConsole.Addr(), 5, uintptr(size), uintptr(hInput), uintptr(hOutput), uintptr(dwFlags), uintptr(unsafe.Pointer(hpcon)), 0)
+ if int32(r0) < 0 {
+ if r0&0x1fff0000 == 0x00070000 {
+ r0 &= 0xffff
}
+ hr = syscall.Errno(r0)
}
return
}
-func NtOpenJobObject(jobHandle *windows.Handle, desiredAccess uint32, objAttributes *ObjectAttributes) (status uint32) {
- r0, _, _ := syscall.Syscall(procNtOpenJobObject.Addr(), 3, uintptr(unsafe.Pointer(jobHandle)), uintptr(desiredAccess), uintptr(unsafe.Pointer(objAttributes)))
- status = uint32(r0)
+func CreateRemoteThread(process windows.Handle, sa *windows.SecurityAttributes, stackSize uint32, startAddr uintptr, parameter uintptr, creationFlags uint32, threadID *uint32) (handle windows.Handle, err error) {
+ r0, _, e1 := syscall.Syscall9(procCreateRemoteThread.Addr(), 7, uintptr(process), uintptr(unsafe.Pointer(sa)), uintptr(stackSize), uintptr(startAddr), uintptr(parameter), uintptr(creationFlags), uintptr(unsafe.Pointer(threadID)), 0, 0)
+ handle = windows.Handle(r0)
+ if handle == 0 {
+ err = errnoErr(e1)
+ }
return
}
-func NtCreateJobObject(jobHandle *windows.Handle, desiredAccess uint32, objAttributes *ObjectAttributes) (status uint32) {
- r0, _, _ := syscall.Syscall(procNtCreateJobObject.Addr(), 3, uintptr(unsafe.Pointer(jobHandle)), uintptr(desiredAccess), uintptr(unsafe.Pointer(objAttributes)))
- status = uint32(r0)
+func GetActiveProcessorCount(groupNumber uint16) (amount uint32) {
+ r0, _, _ := syscall.Syscall(procGetActiveProcessorCount.Addr(), 1, uintptr(groupNumber), 0, 0)
+ amount = uint32(r0)
return
}
-func LogonUser(username *uint16, domain *uint16, password *uint16, logonType uint32, logonProvider uint32, token *windows.Token) (err error) {
- r1, _, e1 := syscall.Syscall6(procLogonUserW.Addr(), 6, uintptr(unsafe.Pointer(username)), uintptr(unsafe.Pointer(domain)), uintptr(unsafe.Pointer(password)), uintptr(logonType), uintptr(logonProvider), uintptr(unsafe.Pointer(token)))
+func IsProcessInJob(procHandle windows.Handle, jobHandle windows.Handle, result *int32) (err error) {
+ r1, _, e1 := syscall.Syscall(procIsProcessInJob.Addr(), 3, uintptr(procHandle), uintptr(jobHandle), uintptr(unsafe.Pointer(result)))
if r1 == 0 {
- if e1 != 0 {
- err = errnoErr(e1)
- } else {
- err = syscall.EINVAL
- }
+ err = errnoErr(e1)
}
return
}
@@ -244,31 +230,34 @@ func LocalFree(ptr uintptr) {
return
}
-func NtQueryInformationProcess(processHandle windows.Handle, processInfoClass uint32, processInfo unsafe.Pointer, processInfoLength uint32, returnLength *uint32) (status uint32) {
- r0, _, _ := syscall.Syscall6(procNtQueryInformationProcess.Addr(), 5, uintptr(processHandle), uintptr(processInfoClass), uintptr(processInfo), uintptr(processInfoLength), uintptr(unsafe.Pointer(returnLength)), 0)
- status = uint32(r0)
+func OpenJobObject(desiredAccess uint32, inheritHandle int32, lpName *uint16) (handle windows.Handle, err error) {
+ r0, _, e1 := syscall.Syscall(procOpenJobObjectW.Addr(), 3, uintptr(desiredAccess), uintptr(inheritHandle), uintptr(unsafe.Pointer(lpName)))
+ handle = windows.Handle(r0)
+ if handle == 0 {
+ err = errnoErr(e1)
+ }
return
}
-func GetActiveProcessorCount(groupNumber uint16) (amount uint32) {
- r0, _, _ := syscall.Syscall(procGetActiveProcessorCount.Addr(), 1, uintptr(groupNumber), 0, 0)
- amount = uint32(r0)
+func QueryInformationJobObject(jobHandle windows.Handle, infoClass uint32, jobObjectInfo unsafe.Pointer, jobObjectInformationLength uint32, lpReturnLength *uint32) (err error) {
+ r1, _, e1 := syscall.Syscall6(procQueryInformationJobObject.Addr(), 5, uintptr(jobHandle), uintptr(infoClass), uintptr(jobObjectInfo), uintptr(jobObjectInformationLength), uintptr(unsafe.Pointer(lpReturnLength)), 0)
+ if r1 == 0 {
+ err = errnoErr(e1)
+ }
return
}
-func CMGetDeviceIDListSize(pulLen *uint32, pszFilter *byte, uFlags uint32) (hr error) {
- r0, _, _ := syscall.Syscall(procCM_Get_Device_ID_List_SizeA.Addr(), 3, uintptr(unsafe.Pointer(pulLen)), uintptr(unsafe.Pointer(pszFilter)), uintptr(uFlags))
- if int32(r0) < 0 {
- if r0&0x1fff0000 == 0x00070000 {
- r0 &= 0xffff
- }
- hr = syscall.Errno(r0)
+func QueryIoRateControlInformationJobObject(jobHandle windows.Handle, volumeName *uint16, ioRateControlInfo **JOBOBJECT_IO_RATE_CONTROL_INFORMATION, infoBlockCount *uint32) (ret uint32, err error) {
+ r0, _, e1 := syscall.Syscall6(procQueryIoRateControlInformationJobObject.Addr(), 4, uintptr(jobHandle), uintptr(unsafe.Pointer(volumeName)), uintptr(unsafe.Pointer(ioRateControlInfo)), uintptr(unsafe.Pointer(infoBlockCount)), 0, 0)
+ ret = uint32(r0)
+ if ret == 0 {
+ err = errnoErr(e1)
}
return
}
-func CMGetDeviceIDList(pszFilter *byte, buffer *byte, bufferLen uint32, uFlags uint32) (hr error) {
- r0, _, _ := syscall.Syscall6(procCM_Get_Device_ID_ListA.Addr(), 4, uintptr(unsafe.Pointer(pszFilter)), uintptr(unsafe.Pointer(buffer)), uintptr(bufferLen), uintptr(uFlags), 0, 0)
+func resizePseudoConsole(hPc windows.Handle, size uint32) (hr error) {
+ r0, _, _ := syscall.Syscall(procResizePseudoConsole.Addr(), 2, uintptr(hPc), uintptr(size), 0)
if int32(r0) < 0 {
if r0&0x1fff0000 == 0x00070000 {
r0 &= 0xffff
@@ -278,33 +267,52 @@ func CMGetDeviceIDList(pszFilter *byte, buffer *byte, bufferLen uint32, uFlags u
return
}
-func CMLocateDevNode(pdnDevInst *uint32, pDeviceID string, uFlags uint32) (hr error) {
- var _p0 *uint16
- _p0, hr = syscall.UTF16PtrFromString(pDeviceID)
- if hr != nil {
- return
+func SearchPath(lpPath *uint16, lpFileName *uint16, lpExtension *uint16, nBufferLength uint32, lpBuffer *uint16, lpFilePath *uint16) (size uint32, err error) {
+ r0, _, e1 := syscall.Syscall6(procSearchPathW.Addr(), 6, uintptr(unsafe.Pointer(lpPath)), uintptr(unsafe.Pointer(lpFileName)), uintptr(unsafe.Pointer(lpExtension)), uintptr(nBufferLength), uintptr(unsafe.Pointer(lpBuffer)), uintptr(unsafe.Pointer(lpFilePath)))
+ size = uint32(r0)
+ if size == 0 {
+ err = errnoErr(e1)
}
- return _CMLocateDevNode(pdnDevInst, _p0, uFlags)
+ return
}
-func _CMLocateDevNode(pdnDevInst *uint32, pDeviceID *uint16, uFlags uint32) (hr error) {
- r0, _, _ := syscall.Syscall(procCM_Locate_DevNodeW.Addr(), 3, uintptr(unsafe.Pointer(pdnDevInst)), uintptr(unsafe.Pointer(pDeviceID)), uintptr(uFlags))
- if int32(r0) < 0 {
- if r0&0x1fff0000 == 0x00070000 {
- r0 &= 0xffff
- }
- hr = syscall.Errno(r0)
+func SetIoRateControlInformationJobObject(jobHandle windows.Handle, ioRateControlInfo *JOBOBJECT_IO_RATE_CONTROL_INFORMATION) (ret uint32, err error) {
+ r0, _, e1 := syscall.Syscall(procSetIoRateControlInformationJobObject.Addr(), 2, uintptr(jobHandle), uintptr(unsafe.Pointer(ioRateControlInfo)), 0)
+ ret = uint32(r0)
+ if ret == 0 {
+ err = errnoErr(e1)
}
return
}
-func CMGetDevNodeProperty(dnDevInst uint32, propertyKey *DevPropKey, propertyType *uint32, propertyBuffer *uint16, propertyBufferSize *uint32, uFlags uint32) (hr error) {
- r0, _, _ := syscall.Syscall6(procCM_Get_DevNode_PropertyW.Addr(), 6, uintptr(dnDevInst), uintptr(unsafe.Pointer(propertyKey)), uintptr(unsafe.Pointer(propertyType)), uintptr(unsafe.Pointer(propertyBuffer)), uintptr(unsafe.Pointer(propertyBufferSize)), uintptr(uFlags))
- if int32(r0) < 0 {
- if r0&0x1fff0000 == 0x00070000 {
- r0 &= 0xffff
- }
- hr = syscall.Errno(r0)
+func netLocalGroupAddMembers(serverName *uint16, groupName *uint16, level uint32, buf *byte, totalEntries uint32) (status error) {
+ r0, _, _ := syscall.Syscall6(procNetLocalGroupAddMembers.Addr(), 5, uintptr(unsafe.Pointer(serverName)), uintptr(unsafe.Pointer(groupName)), uintptr(level), uintptr(unsafe.Pointer(buf)), uintptr(totalEntries), 0)
+ if r0 != 0 {
+ status = syscall.Errno(r0)
+ }
+ return
+}
+
+func netLocalGroupGetInfo(serverName *uint16, groupName *uint16, level uint32, bufptr **byte) (status error) {
+ r0, _, _ := syscall.Syscall6(procNetLocalGroupGetInfo.Addr(), 4, uintptr(unsafe.Pointer(serverName)), uintptr(unsafe.Pointer(groupName)), uintptr(level), uintptr(unsafe.Pointer(bufptr)), 0, 0)
+ if r0 != 0 {
+ status = syscall.Errno(r0)
+ }
+ return
+}
+
+func netUserAdd(serverName *uint16, level uint32, buf *byte, parm_err *uint32) (status error) {
+ r0, _, _ := syscall.Syscall6(procNetUserAdd.Addr(), 4, uintptr(unsafe.Pointer(serverName)), uintptr(level), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(parm_err)), 0, 0)
+ if r0 != 0 {
+ status = syscall.Errno(r0)
+ }
+ return
+}
+
+func netUserDel(serverName *uint16, username *uint16) (status error) {
+ r0, _, _ := syscall.Syscall(procNetUserDel.Addr(), 2, uintptr(unsafe.Pointer(serverName)), uintptr(unsafe.Pointer(username)), 0)
+ if r0 != 0 {
+ status = syscall.Errno(r0)
}
return
}
@@ -315,8 +323,8 @@ func NtCreateFile(handle *uintptr, accessMask uint32, oa *ObjectAttributes, iosb
return
}
-func NtSetInformationFile(handle uintptr, iosb *IOStatusBlock, information uintptr, length uint32, class uint32) (status uint32) {
- r0, _, _ := syscall.Syscall6(procNtSetInformationFile.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(iosb)), uintptr(information), uintptr(length), uintptr(class), 0)
+func NtCreateJobObject(jobHandle *windows.Handle, desiredAccess uint32, objAttributes *ObjectAttributes) (status uint32) {
+ r0, _, _ := syscall.Syscall(procNtCreateJobObject.Addr(), 3, uintptr(unsafe.Pointer(jobHandle)), uintptr(desiredAccess), uintptr(unsafe.Pointer(objAttributes)))
status = uint32(r0)
return
}
@@ -327,24 +335,44 @@ func NtOpenDirectoryObject(handle *uintptr, accessMask uint32, oa *ObjectAttribu
return
}
+func NtOpenJobObject(jobHandle *windows.Handle, desiredAccess uint32, objAttributes *ObjectAttributes) (status uint32) {
+ r0, _, _ := syscall.Syscall(procNtOpenJobObject.Addr(), 3, uintptr(unsafe.Pointer(jobHandle)), uintptr(desiredAccess), uintptr(unsafe.Pointer(objAttributes)))
+ status = uint32(r0)
+ return
+}
+
func NtQueryDirectoryObject(handle uintptr, buffer *byte, length uint32, singleEntry bool, restartScan bool, context *uint32, returnLength *uint32) (status uint32) {
var _p0 uint32
if singleEntry {
_p0 = 1
- } else {
- _p0 = 0
}
var _p1 uint32
if restartScan {
_p1 = 1
- } else {
- _p1 = 0
}
r0, _, _ := syscall.Syscall9(procNtQueryDirectoryObject.Addr(), 7, uintptr(handle), uintptr(unsafe.Pointer(buffer)), uintptr(length), uintptr(_p0), uintptr(_p1), uintptr(unsafe.Pointer(context)), uintptr(unsafe.Pointer(returnLength)), 0, 0)
status = uint32(r0)
return
}
+func NtQueryInformationProcess(processHandle windows.Handle, processInfoClass uint32, processInfo unsafe.Pointer, processInfoLength uint32, returnLength *uint32) (status uint32) {
+ r0, _, _ := syscall.Syscall6(procNtQueryInformationProcess.Addr(), 5, uintptr(processHandle), uintptr(processInfoClass), uintptr(processInfo), uintptr(processInfoLength), uintptr(unsafe.Pointer(returnLength)), 0)
+ status = uint32(r0)
+ return
+}
+
+func NtQuerySystemInformation(systemInfoClass int, systemInformation unsafe.Pointer, systemInfoLength uint32, returnLength *uint32) (status uint32) {
+ r0, _, _ := syscall.Syscall6(procNtQuerySystemInformation.Addr(), 4, uintptr(systemInfoClass), uintptr(systemInformation), uintptr(systemInfoLength), uintptr(unsafe.Pointer(returnLength)), 0, 0)
+ status = uint32(r0)
+ return
+}
+
+func NtSetInformationFile(handle uintptr, iosb *IOStatusBlock, information uintptr, length uint32, class uint32) (status uint32) {
+ r0, _, _ := syscall.Syscall6(procNtSetInformationFile.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(iosb)), uintptr(information), uintptr(length), uintptr(class), 0)
+ status = uint32(r0)
+ return
+}
+
func RtlNtStatusToDosError(status uint32) (winerr error) {
r0, _, _ := syscall.Syscall(procRtlNtStatusToDosError.Addr(), 1, uintptr(status), 0, 0)
if r0 != 0 {
@@ -352,3 +380,36 @@ func RtlNtStatusToDosError(status uint32) (winerr error) {
}
return
}
+
+func ORCloseHive(key syscall.Handle) (regerrno error) {
+ r0, _, _ := syscall.Syscall(procORCloseHive.Addr(), 1, uintptr(key), 0, 0)
+ if r0 != 0 {
+ regerrno = syscall.Errno(r0)
+ }
+ return
+}
+
+func ORCreateHive(key *syscall.Handle) (regerrno error) {
+ r0, _, _ := syscall.Syscall(procORCreateHive.Addr(), 1, uintptr(unsafe.Pointer(key)), 0, 0)
+ if r0 != 0 {
+ regerrno = syscall.Errno(r0)
+ }
+ return
+}
+
+func ORSaveHive(key syscall.Handle, file string, OsMajorVersion uint32, OsMinorVersion uint32) (regerrno error) {
+ var _p0 *uint16
+ _p0, regerrno = syscall.UTF16PtrFromString(file)
+ if regerrno != nil {
+ return
+ }
+ return _ORSaveHive(key, _p0, OsMajorVersion, OsMinorVersion)
+}
+
+func _ORSaveHive(key syscall.Handle, file *uint16, OsMajorVersion uint32, OsMinorVersion uint32) (regerrno error) {
+ r0, _, _ := syscall.Syscall6(procORSaveHive.Addr(), 4, uintptr(key), uintptr(unsafe.Pointer(file)), uintptr(OsMajorVersion), uintptr(OsMinorVersion), 0, 0)
+ if r0 != 0 {
+ regerrno = syscall.Errno(r0)
+ }
+ return
+}
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/layer.go b/tools/vendor/github.com/Microsoft/hcsshim/layer.go
index 891616370..afd1ddd0a 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/layer.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/layer.go
@@ -1,3 +1,5 @@
+//go:build windows
+
package hcsshim
import (
@@ -68,6 +70,9 @@ func ProcessUtilityVMImage(path string) error {
func UnprepareLayer(info DriverInfo, layerId string) error {
return wclayer.UnprepareLayer(context.Background(), layerPath(&info, layerId))
}
+func ConvertToBaseLayer(path string) error {
+ return wclayer.ConvertToBaseLayer(context.Background(), path)
+}
type DriverInfo struct {
Flavour int
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/osversion/osversion_windows.go b/tools/vendor/github.com/Microsoft/hcsshim/osversion/osversion_windows.go
index 3ab3bcd89..6c435d2b6 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/osversion/osversion_windows.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/osversion/osversion_windows.go
@@ -45,6 +45,15 @@ func Build() uint16 {
return Get().Build
}
-func (osv OSVersion) ToString() string {
+// String returns the OSVersion formatted as a string. It implements the
+// [fmt.Stringer] interface.
+func (osv OSVersion) String() string {
return fmt.Sprintf("%d.%d.%d", osv.MajorVersion, osv.MinorVersion, osv.Build)
}
+
+// ToString returns the OSVersion formatted as a string.
+//
+// Deprecated: use [OSVersion.String].
+func (osv OSVersion) ToString() string {
+ return osv.String()
+}
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/osversion/windowsbuilds.go b/tools/vendor/github.com/Microsoft/hcsshim/osversion/windowsbuilds.go
index 75dce5d82..446369591 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/osversion/windowsbuilds.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/osversion/windowsbuilds.go
@@ -1,37 +1,63 @@
package osversion
+// Windows Client and Server build numbers.
+//
+// See:
+// https://learn.microsoft.com/en-us/windows/release-health/release-information
+// https://learn.microsoft.com/en-us/windows/release-health/windows-server-release-info
+// https://learn.microsoft.com/en-us/windows/release-health/windows11-release-information
const (
// RS1 (version 1607, codename "Redstone 1") corresponds to Windows Server
// 2016 (ltsc2016) and Windows 10 (Anniversary Update).
RS1 = 14393
+ // V1607 (version 1607, codename "Redstone 1") is an alias for [RS1].
+ V1607 = RS1
+ // LTSC2016 (Windows Server 2016) is an alias for [RS1].
+ LTSC2016 = RS1
// RS2 (version 1703, codename "Redstone 2") was a client-only update, and
// corresponds to Windows 10 (Creators Update).
RS2 = 15063
+ // V1703 (version 1703, codename "Redstone 2") is an alias for [RS2].
+ V1703 = RS2
// RS3 (version 1709, codename "Redstone 3") corresponds to Windows Server
// 1709 (Semi-Annual Channel (SAC)), and Windows 10 (Fall Creators Update).
RS3 = 16299
+ // V1709 (version 1709, codename "Redstone 3") is an alias for [RS3].
+ V1709 = RS3
// RS4 (version 1803, codename "Redstone 4") corresponds to Windows Server
// 1803 (Semi-Annual Channel (SAC)), and Windows 10 (April 2018 Update).
RS4 = 17134
+ // V1803 (version 1803, codename "Redstone 4") is an alias for [RS4].
+ V1803 = RS4
// RS5 (version 1809, codename "Redstone 5") corresponds to Windows Server
// 2019 (ltsc2019), and Windows 10 (October 2018 Update).
RS5 = 17763
+ // V1809 (version 1809, codename "Redstone 5") is an alias for [RS5].
+ V1809 = RS5
+ // LTSC2019 (Windows Server 2019) is an alias for [RS5].
+ LTSC2019 = RS5
- // V19H1 (version 1903) corresponds to Windows Server 1903 (semi-annual
+ // V19H1 (version 1903, codename 19H1) corresponds to Windows Server 1903 (semi-annual
// channel).
V19H1 = 18362
+ // V1903 (version 1903) is an alias for [V19H1].
+ V1903 = V19H1
- // V19H2 (version 1909) corresponds to Windows Server 1909 (semi-annual
+ // V19H2 (version 1909, codename 19H2) corresponds to Windows Server 1909 (semi-annual
// channel).
V19H2 = 18363
+ // V1909 (version 1909) is an alias for [V19H2].
+ V1909 = V19H2
- // V20H1 (version 2004) corresponds to Windows Server 2004 (semi-annual
+ // V20H1 (version 2004, codename 20H1) corresponds to Windows Server 2004 (semi-annual
// channel).
V20H1 = 19041
+ // V2004 (version 2004) is an alias for [V20H1].
+ V2004 = V20H1
// V20H2 corresponds to Windows Server 20H2 (semi-annual channel).
V20H2 = 19042
@@ -44,7 +70,15 @@ const (
// V21H2Server corresponds to Windows Server 2022 (ltsc2022).
V21H2Server = 20348
+ // LTSC2022 (Windows Server 2022) is an alias for [V21H2Server]
+ LTSC2022 = V21H2Server
// V21H2Win11 corresponds to Windows 11 (original release).
V21H2Win11 = 22000
+
+ // V22H2Win10 corresponds to Windows 10 (2022 Update).
+ V22H2Win10 = 19045
+
+ // V22H2Win11 corresponds to Windows 11 (2022 Update).
+ V22H2Win11 = 22621
)
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/pkg/ociwclayer/doc.go b/tools/vendor/github.com/Microsoft/hcsshim/pkg/ociwclayer/doc.go
new file mode 100644
index 000000000..0ec1aa05c
--- /dev/null
+++ b/tools/vendor/github.com/Microsoft/hcsshim/pkg/ociwclayer/doc.go
@@ -0,0 +1,3 @@
+// Package ociwclayer provides functions for importing and exporting Windows
+// container layers from and to their OCI tar representation.
+package ociwclayer
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/pkg/ociwclayer/export.go b/tools/vendor/github.com/Microsoft/hcsshim/pkg/ociwclayer/export.go
index e3f1be333..1c2c82c70 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/pkg/ociwclayer/export.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/pkg/ociwclayer/export.go
@@ -1,5 +1,5 @@
-// Package ociwclayer provides functions for importing and exporting Windows
-// container layers from and to their OCI tar representation.
+//go:build windows
+
package ociwclayer
import (
@@ -9,11 +9,9 @@ import (
"path/filepath"
"github.com/Microsoft/go-winio/backuptar"
- "github.com/Microsoft/hcsshim"
+ "github.com/Microsoft/hcsshim/internal/wclayer"
)
-var driverInfo = hcsshim.DriverInfo{}
-
// ExportLayerToTar writes an OCI layer tar stream from the provided on-disk layer.
// The caller must specify the parent layers, if any, ordered from lowest to
// highest layer.
@@ -21,25 +19,25 @@ var driverInfo = hcsshim.DriverInfo{}
// The layer will be mounted for this process, so the caller should ensure that
// it is not currently mounted.
func ExportLayerToTar(ctx context.Context, w io.Writer, path string, parentLayerPaths []string) error {
- err := hcsshim.ActivateLayer(driverInfo, path)
+ err := wclayer.ActivateLayer(ctx, path)
if err != nil {
return err
}
defer func() {
- _ = hcsshim.DeactivateLayer(driverInfo, path)
+ _ = wclayer.DeactivateLayer(ctx, path)
}()
// Prepare and unprepare the layer to ensure that it has been initialized.
- err = hcsshim.PrepareLayer(driverInfo, path, parentLayerPaths)
+ err = wclayer.PrepareLayer(ctx, path, parentLayerPaths)
if err != nil {
return err
}
- err = hcsshim.UnprepareLayer(driverInfo, path)
+ err = wclayer.UnprepareLayer(ctx, path)
if err != nil {
return err
}
- r, err := hcsshim.NewLayerReader(driverInfo, path, parentLayerPaths)
+ r, err := wclayer.NewLayerReader(ctx, path, parentLayerPaths)
if err != nil {
return err
}
@@ -52,7 +50,9 @@ func ExportLayerToTar(ctx context.Context, w io.Writer, path string, parentLayer
return cerr
}
-func writeTarFromLayer(ctx context.Context, r hcsshim.LayerReader, w io.Writer) error {
+func writeTarFromLayer(ctx context.Context, r wclayer.LayerReader, w io.Writer) error {
+ linkRecords := make(map[[16]byte]string)
+
t := tar.NewWriter(w)
for {
select {
@@ -78,6 +78,27 @@ func writeTarFromLayer(ctx context.Context, r hcsshim.LayerReader, w io.Writer)
return err
}
} else {
+ numberOfLinks, fileIDInfo, err := r.LinkInfo()
+ if err != nil {
+ return err
+ }
+ if numberOfLinks > 1 {
+ if linkName, ok := linkRecords[fileIDInfo.FileID]; ok {
+ // We've seen this file before, by another name, so put a hardlink in the tar stream.
+ hdr := backuptar.BasicInfoHeader(name, 0, fileInfo)
+ hdr.Mode = 0644
+ hdr.Typeflag = tar.TypeLink
+ hdr.Linkname = linkName
+ if err := t.WriteHeader(hdr); err != nil {
+ return err
+ }
+ continue
+ }
+
+ // All subsequent names for this file will be hard-linked to this name
+ linkRecords[fileIDInfo.FileID] = filepath.ToSlash(name)
+ }
+
err = backuptar.WriteTarFileFromBackupStream(t, r, name, size, fileInfo)
if err != nil {
return err
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/pkg/ociwclayer/import.go b/tools/vendor/github.com/Microsoft/hcsshim/pkg/ociwclayer/import.go
index e74a6b594..c9fb6df27 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/pkg/ociwclayer/import.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/pkg/ociwclayer/import.go
@@ -1,3 +1,5 @@
+//go:build windows
+
package ociwclayer
import (
@@ -12,7 +14,7 @@ import (
winio "github.com/Microsoft/go-winio"
"github.com/Microsoft/go-winio/backuptar"
- "github.com/Microsoft/hcsshim"
+ "github.com/Microsoft/hcsshim/internal/wclayer"
)
const whiteoutPrefix = ".wh."
@@ -41,7 +43,7 @@ func ImportLayerFromTar(ctx context.Context, r io.Reader, path string, parentLay
if err != nil {
return 0, err
}
- w, err := hcsshim.NewLayerWriter(hcsshim.DriverInfo{}, path, parentLayerPaths)
+ w, err := wclayer.NewLayerWriter(ctx, path, parentLayerPaths)
if err != nil {
return 0, err
}
@@ -56,7 +58,7 @@ func ImportLayerFromTar(ctx context.Context, r io.Reader, path string, parentLay
return n, nil
}
-func writeLayerFromTar(ctx context.Context, r io.Reader, w hcsshim.LayerWriter, root string) (int64, error) {
+func writeLayerFromTar(ctx context.Context, r io.Reader, w wclayer.LayerWriter, root string) (int64, error) {
t := tar.NewReader(r)
hdr, err := t.Next()
totalSize := int64(0)
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/process.go b/tools/vendor/github.com/Microsoft/hcsshim/process.go
index 3362c6833..44df91cde 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/process.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/process.go
@@ -1,3 +1,5 @@
+//go:build windows
+
package hcsshim
import (
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/tools.go b/tools/vendor/github.com/Microsoft/hcsshim/tools.go
new file mode 100644
index 000000000..3964e2f02
--- /dev/null
+++ b/tools/vendor/github.com/Microsoft/hcsshim/tools.go
@@ -0,0 +1,5 @@
+//go:build tools
+
+package hcsshim
+
+import _ "github.com/Microsoft/go-winio/tools/mkwinsyscall"
diff --git a/tools/vendor/github.com/Microsoft/hcsshim/zsyscall_windows.go b/tools/vendor/github.com/Microsoft/hcsshim/zsyscall_windows.go
index 8bed84857..9b619b6e6 100644
--- a/tools/vendor/github.com/Microsoft/hcsshim/zsyscall_windows.go
+++ b/tools/vendor/github.com/Microsoft/hcsshim/zsyscall_windows.go
@@ -1,4 +1,6 @@
-// Code generated mksyscall_windows.exe DO NOT EDIT
+//go:build windows
+
+// Code generated by 'go generate' using "github.com/Microsoft/go-winio/tools/mkwinsyscall"; DO NOT EDIT.
package hcsshim
@@ -19,6 +21,7 @@ const (
var (
errERROR_IO_PENDING error = syscall.Errno(errnoERROR_IO_PENDING)
+ errERROR_EINVAL error = syscall.EINVAL
)
// errnoErr returns common boxed Errno values, to prevent
@@ -26,7 +29,7 @@ var (
func errnoErr(e syscall.Errno) error {
switch e {
case 0:
- return nil
+ return errERROR_EINVAL
case errnoERROR_IO_PENDING:
return errERROR_IO_PENDING
}
diff --git a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/LICENSE b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/LICENSE
similarity index 100%
rename from tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/LICENSE
rename to tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/LICENSE
diff --git a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/antlrdoc.go b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/antlrdoc.go
new file mode 100644
index 000000000..ab5121267
--- /dev/null
+++ b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/antlrdoc.go
@@ -0,0 +1,68 @@
+/*
+Package antlr implements the Go version of the ANTLR 4 runtime.
+
+# The ANTLR Tool
+
+ANTLR (ANother Tool for Language Recognition) is a powerful parser generator for reading, processing, executing,
+or translating structured text or binary files. It's widely used to build languages, tools, and frameworks.
+From a grammar, ANTLR generates a parser that can build parse trees and also generates a listener interface
+(or visitor) that makes it easy to respond to the recognition of phrases of interest.
+
+# Code Generation
+
+ANTLR supports the generation of code in a number of [target languages], and the generated code is supported by a
+runtime library, written specifically to support the generated code in the target language. This library is the
+runtime for the Go target.
+
+To generate code for the go target, it is generally recommended to place the source grammar files in a package of
+their own, and use the `.sh` script method of generating code, using the go generate directive. In that same directory
+it is usual, though not required, to place the antlr tool that should be used to generate the code. That does mean
+that the antlr tool JAR file will be checked in to your source code control though, so you are free to use any other
+way of specifying the version of the ANTLR tool to use, such as aliasing in `.zshrc` or equivalent, or a profile in
+your IDE, or configuration in your CI system.
+
+Here is a general template for an ANTLR based recognizer in Go:
+
+ .
+ ├── myproject
+ ├── parser
+ │ ├── mygrammar.g4
+ │ ├── antlr-4.12.0-complete.jar
+ │ ├── error_listeners.go
+ │ ├── generate.go
+ │ ├── generate.sh
+ ├── go.mod
+ ├── go.sum
+ ├── main.go
+ └── main_test.go
+
+Make sure that the package statement in your grammar file(s) reflects the go package they exist in.
+The generate.go file then looks like this:
+
+ package parser
+
+ //go:generate ./generate.sh
+
+And the generate.sh file will look similar to this:
+
+ #!/bin/sh
+
+ alias antlr4='java -Xmx500M -cp "./antlr4-4.12.0-complete.jar:$CLASSPATH" org.antlr.v4.Tool'
+ antlr4 -Dlanguage=Go -no-visitor -package parser *.g4
+
+depending on whether you want visitors or listeners or any other ANTLR options.
+
+From the command line at the root of your package “myproject†you can then simply issue the command:
+
+ go generate ./...
+
+# Copyright Notice
+
+Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
+
+Use of this file is governed by the BSD 3-clause license, which can be found in the [LICENSE.txt] file in the project root.
+
+[target languages]: https://github.com/antlr/antlr4/tree/master/runtime
+[LICENSE.txt]: https://github.com/antlr/antlr4/blob/master/LICENSE.txt
+*/
+package antlr
diff --git a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/atn.go b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/atn.go
similarity index 72%
rename from tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/atn.go
rename to tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/atn.go
index a4e2079e6..98010d2e6 100644
--- a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/atn.go
+++ b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/atn.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
@@ -6,11 +6,24 @@ package antlr
import "sync"
+// ATNInvalidAltNumber is used to represent an ALT number that has yet to be calculated or
+// which is invalid for a particular struct such as [*antlr.BaseRuleContext]
var ATNInvalidAltNumber int
+// ATN represents an “[Augmented Transition Network]â€, though general in ANTLR the term
+// “Augmented Recursive Transition Network†though there are some descriptions of “[Recursive Transition Network]â€
+// in existence.
+//
+// ATNs represent the main networks in the system and are serialized by the code generator and support [ALL(*)].
+//
+// [Augmented Transition Network]: https://en.wikipedia.org/wiki/Augmented_transition_network
+// [ALL(*)]: https://www.antlr.org/papers/allstar-techreport.pdf
+// [Recursive Transition Network]: https://en.wikipedia.org/wiki/Recursive_transition_network
type ATN struct {
// DecisionToState is the decision points for all rules, subrules, optional
- // blocks, ()+, ()*, etc. Used to build DFA predictors for them.
+ // blocks, ()+, ()*, etc. Each subrule/rule is a decision point, and we must track them so we
+ // can go back later and build DFA predictors for them. This includes
+ // all the rules, subrules, optional blocks, ()+, ()* etc...
DecisionToState []DecisionState
// grammarType is the ATN type and is used for deserializing ATNs from strings.
@@ -45,6 +58,8 @@ type ATN struct {
edgeMu sync.RWMutex
}
+// NewATN returns a new ATN struct representing the given grammarType and is used
+// for runtime deserialization of ATNs from the code generated by the ANTLR tool
func NewATN(grammarType int, maxTokenType int) *ATN {
return &ATN{
grammarType: grammarType,
@@ -53,7 +68,7 @@ func NewATN(grammarType int, maxTokenType int) *ATN {
}
}
-// NextTokensInContext computes the set of valid tokens that can occur starting
+// NextTokensInContext computes and returns the set of valid tokens that can occur starting
// in state s. If ctx is nil, the set of tokens will not include what can follow
// the rule surrounding s. In other words, the set will be restricted to tokens
// reachable staying within the rule of s.
@@ -61,8 +76,8 @@ func (a *ATN) NextTokensInContext(s ATNState, ctx RuleContext) *IntervalSet {
return NewLL1Analyzer(a).Look(s, nil, ctx)
}
-// NextTokensNoContext computes the set of valid tokens that can occur starting
-// in s and staying in same rule. Token.EPSILON is in set if we reach end of
+// NextTokensNoContext computes and returns the set of valid tokens that can occur starting
+// in state s and staying in same rule. [antlr.Token.EPSILON] is in set if we reach end of
// rule.
func (a *ATN) NextTokensNoContext(s ATNState) *IntervalSet {
a.mu.Lock()
@@ -76,6 +91,8 @@ func (a *ATN) NextTokensNoContext(s ATNState) *IntervalSet {
return iset
}
+// NextTokens computes and returns the set of valid tokens starting in state s, by
+// calling either [NextTokensNoContext] (ctx == nil) or [NextTokensInContext] (ctx != nil).
func (a *ATN) NextTokens(s ATNState, ctx RuleContext) *IntervalSet {
if ctx == nil {
return a.NextTokensNoContext(s)
diff --git a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/atn_config.go b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/atn_config.go
similarity index 84%
rename from tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/atn_config.go
rename to tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/atn_config.go
index 97ba417f7..7619fa172 100644
--- a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/atn_config.go
+++ b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/atn_config.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
@@ -8,19 +8,14 @@ import (
"fmt"
)
-type comparable interface {
- equals(other interface{}) bool
-}
-
// ATNConfig is a tuple: (ATN state, predicted alt, syntactic, semantic
// context). The syntactic context is a graph-structured stack node whose
// path(s) to the root is the rule invocation(s) chain used to arrive at the
// state. The semantic context is the tree of semantic predicates encountered
// before reaching an ATN state.
type ATNConfig interface {
- comparable
-
- hash() int
+ Equals(o Collectable[ATNConfig]) bool
+ Hash() int
GetState() ATNState
GetAlt() int
@@ -47,7 +42,7 @@ type BaseATNConfig struct {
reachesIntoOuterContext int
}
-func NewBaseATNConfig7(old *BaseATNConfig) *BaseATNConfig { // TODO: Dup
+func NewBaseATNConfig7(old *BaseATNConfig) ATNConfig { // TODO: Dup
return &BaseATNConfig{
state: old.state,
alt: old.alt,
@@ -135,11 +130,16 @@ func (b *BaseATNConfig) SetReachesIntoOuterContext(v int) {
b.reachesIntoOuterContext = v
}
+// Equals is the default comparison function for an ATNConfig when no specialist implementation is required
+// for a collection.
+//
// An ATN configuration is equal to another if both have the same state, they
// predict the same alternative, and syntactic/semantic contexts are the same.
-func (b *BaseATNConfig) equals(o interface{}) bool {
+func (b *BaseATNConfig) Equals(o Collectable[ATNConfig]) bool {
if b == o {
return true
+ } else if o == nil {
+ return false
}
var other, ok = o.(*BaseATNConfig)
@@ -153,30 +153,32 @@ func (b *BaseATNConfig) equals(o interface{}) bool {
if b.context == nil {
equal = other.context == nil
} else {
- equal = b.context.equals(other.context)
+ equal = b.context.Equals(other.context)
}
var (
nums = b.state.GetStateNumber() == other.state.GetStateNumber()
alts = b.alt == other.alt
- cons = b.semanticContext.equals(other.semanticContext)
+ cons = b.semanticContext.Equals(other.semanticContext)
sups = b.precedenceFilterSuppressed == other.precedenceFilterSuppressed
)
return nums && alts && cons && sups && equal
}
-func (b *BaseATNConfig) hash() int {
+// Hash is the default hash function for BaseATNConfig, when no specialist hash function
+// is required for a collection
+func (b *BaseATNConfig) Hash() int {
var c int
if b.context != nil {
- c = b.context.hash()
+ c = b.context.Hash()
}
h := murmurInit(7)
h = murmurUpdate(h, b.state.GetStateNumber())
h = murmurUpdate(h, b.alt)
h = murmurUpdate(h, c)
- h = murmurUpdate(h, b.semanticContext.hash())
+ h = murmurUpdate(h, b.semanticContext.Hash())
return murmurFinish(h, 4)
}
@@ -243,7 +245,9 @@ func NewLexerATNConfig1(state ATNState, alt int, context PredictionContext) *Lex
return &LexerATNConfig{BaseATNConfig: NewBaseATNConfig5(state, alt, context, SemanticContextNone)}
}
-func (l *LexerATNConfig) hash() int {
+// Hash is the default hash function for LexerATNConfig objects, it can be used directly or via
+// the default comparator [ObjEqComparator].
+func (l *LexerATNConfig) Hash() int {
var f int
if l.passedThroughNonGreedyDecision {
f = 1
@@ -253,15 +257,20 @@ func (l *LexerATNConfig) hash() int {
h := murmurInit(7)
h = murmurUpdate(h, l.state.GetStateNumber())
h = murmurUpdate(h, l.alt)
- h = murmurUpdate(h, l.context.hash())
- h = murmurUpdate(h, l.semanticContext.hash())
+ h = murmurUpdate(h, l.context.Hash())
+ h = murmurUpdate(h, l.semanticContext.Hash())
h = murmurUpdate(h, f)
- h = murmurUpdate(h, l.lexerActionExecutor.hash())
+ h = murmurUpdate(h, l.lexerActionExecutor.Hash())
h = murmurFinish(h, 6)
return h
}
-func (l *LexerATNConfig) equals(other interface{}) bool {
+// Equals is the default comparison function for LexerATNConfig objects, it can be used directly or via
+// the default comparator [ObjEqComparator].
+func (l *LexerATNConfig) Equals(other Collectable[ATNConfig]) bool {
+ if l == other {
+ return true
+ }
var othert, ok = other.(*LexerATNConfig)
if l == other {
@@ -275,7 +284,7 @@ func (l *LexerATNConfig) equals(other interface{}) bool {
var b bool
if l.lexerActionExecutor != nil {
- b = !l.lexerActionExecutor.equals(othert.lexerActionExecutor)
+ b = !l.lexerActionExecutor.Equals(othert.lexerActionExecutor)
} else {
b = othert.lexerActionExecutor != nil
}
@@ -284,10 +293,9 @@ func (l *LexerATNConfig) equals(other interface{}) bool {
return false
}
- return l.BaseATNConfig.equals(othert.BaseATNConfig)
+ return l.BaseATNConfig.Equals(othert.BaseATNConfig)
}
-
func checkNonGreedyDecision(source *LexerATNConfig, target ATNState) bool {
var ds, ok = target.(DecisionState)
diff --git a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/atn_config_set.go b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/atn_config_set.go
similarity index 81%
rename from tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/atn_config_set.go
rename to tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/atn_config_set.go
index 49ad4a719..43e9b33f3 100644
--- a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/atn_config_set.go
+++ b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/atn_config_set.go
@@ -1,24 +1,25 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
package antlr
-import "fmt"
+import (
+ "fmt"
+)
type ATNConfigSet interface {
- hash() int
+ Hash() int
+ Equals(o Collectable[ATNConfig]) bool
Add(ATNConfig, *DoubleDict) bool
AddAll([]ATNConfig) bool
- GetStates() Set
+ GetStates() *JStore[ATNState, Comparator[ATNState]]
GetPredicates() []SemanticContext
GetItems() []ATNConfig
OptimizeConfigs(interpreter *BaseATNSimulator)
- Equals(other interface{}) bool
-
Length() int
IsEmpty() bool
Contains(ATNConfig) bool
@@ -57,7 +58,7 @@ type BaseATNConfigSet struct {
// effectively doubles the number of objects associated with ATNConfigs. All
// keys are hashed by (s, i, _, pi), not including the context. Wiped out when
// read-only because a set becomes a DFA state.
- configLookup Set
+ configLookup *JStore[ATNConfig, Comparator[ATNConfig]]
// configs is the added elements.
configs []ATNConfig
@@ -83,7 +84,7 @@ type BaseATNConfigSet struct {
// readOnly is whether it is read-only. Do not
// allow any code to manipulate the set if true because DFA states will point at
- // sets and those must not change. It not protect other fields; conflictingAlts
+ // sets and those must not change. It not, protect other fields; conflictingAlts
// in particular, which is assigned after readOnly.
readOnly bool
@@ -104,7 +105,7 @@ func (b *BaseATNConfigSet) Alts() *BitSet {
func NewBaseATNConfigSet(fullCtx bool) *BaseATNConfigSet {
return &BaseATNConfigSet{
cachedHash: -1,
- configLookup: newArray2DHashSetWithCap(hashATNConfig, equalATNConfigs, 16, 2),
+ configLookup: NewJStore[ATNConfig, Comparator[ATNConfig]](aConfCompInst),
fullCtx: fullCtx,
}
}
@@ -126,9 +127,11 @@ func (b *BaseATNConfigSet) Add(config ATNConfig, mergeCache *DoubleDict) bool {
b.dipsIntoOuterContext = true
}
- existing := b.configLookup.Add(config).(ATNConfig)
+ existing, present := b.configLookup.Put(config)
- if existing == config {
+ // The config was not already in the set
+ //
+ if !present {
b.cachedHash = -1
b.configs = append(b.configs, config) // Track order here
return true
@@ -154,11 +157,14 @@ func (b *BaseATNConfigSet) Add(config ATNConfig, mergeCache *DoubleDict) bool {
return true
}
-func (b *BaseATNConfigSet) GetStates() Set {
- states := newArray2DHashSet(nil, nil)
+func (b *BaseATNConfigSet) GetStates() *JStore[ATNState, Comparator[ATNState]] {
+
+ // states uses the standard comparator provided by the ATNState instance
+ //
+ states := NewJStore[ATNState, Comparator[ATNState]](aStateEqInst)
for i := 0; i < len(b.configs); i++ {
- states.Add(b.configs[i].GetState())
+ states.Put(b.configs[i].GetState())
}
return states
@@ -214,7 +220,34 @@ func (b *BaseATNConfigSet) AddAll(coll []ATNConfig) bool {
return false
}
-func (b *BaseATNConfigSet) Equals(other interface{}) bool {
+// Compare is a hack function just to verify that adding DFAstares to the known
+// set works, so long as comparison of ATNConfigSet s works. For that to work, we
+// need to make sure that the set of ATNConfigs in two sets are equivalent. We can't
+// know the order, so we do this inefficient hack. If this proves the point, then
+// we can change the config set to a better structure.
+func (b *BaseATNConfigSet) Compare(bs *BaseATNConfigSet) bool {
+ if len(b.configs) != len(bs.configs) {
+ return false
+ }
+
+ for _, c := range b.configs {
+ found := false
+ for _, c2 := range bs.configs {
+ if c.Equals(c2) {
+ found = true
+ break
+ }
+ }
+
+ if !found {
+ return false
+ }
+
+ }
+ return true
+}
+
+func (b *BaseATNConfigSet) Equals(other Collectable[ATNConfig]) bool {
if b == other {
return true
} else if _, ok := other.(*BaseATNConfigSet); !ok {
@@ -224,15 +257,15 @@ func (b *BaseATNConfigSet) Equals(other interface{}) bool {
other2 := other.(*BaseATNConfigSet)
return b.configs != nil &&
- // TODO: b.configs.equals(other2.configs) && // TODO: Is b necessary?
b.fullCtx == other2.fullCtx &&
b.uniqueAlt == other2.uniqueAlt &&
b.conflictingAlts == other2.conflictingAlts &&
b.hasSemanticContext == other2.hasSemanticContext &&
- b.dipsIntoOuterContext == other2.dipsIntoOuterContext
+ b.dipsIntoOuterContext == other2.dipsIntoOuterContext &&
+ b.Compare(other2)
}
-func (b *BaseATNConfigSet) hash() int {
+func (b *BaseATNConfigSet) Hash() int {
if b.readOnly {
if b.cachedHash == -1 {
b.cachedHash = b.hashCodeConfigs()
@@ -247,7 +280,7 @@ func (b *BaseATNConfigSet) hash() int {
func (b *BaseATNConfigSet) hashCodeConfigs() int {
h := 1
for _, config := range b.configs {
- h = 31*h + config.hash()
+ h = 31*h + config.Hash()
}
return h
}
@@ -283,7 +316,7 @@ func (b *BaseATNConfigSet) Clear() {
b.configs = make([]ATNConfig, 0)
b.cachedHash = -1
- b.configLookup = newArray2DHashSet(nil, equalATNConfigs)
+ b.configLookup = NewJStore[ATNConfig, Comparator[ATNConfig]](atnConfCompInst)
}
func (b *BaseATNConfigSet) FullContext() bool {
@@ -365,7 +398,8 @@ type OrderedATNConfigSet struct {
func NewOrderedATNConfigSet() *OrderedATNConfigSet {
b := NewBaseATNConfigSet(false)
- b.configLookup = newArray2DHashSet(nil, nil)
+ // This set uses the standard Hash() and Equals() from ATNConfig
+ b.configLookup = NewJStore[ATNConfig, Comparator[ATNConfig]](aConfEqInst)
return &OrderedATNConfigSet{BaseATNConfigSet: b}
}
@@ -375,7 +409,7 @@ func hashATNConfig(i interface{}) int {
hash := 7
hash = 31*hash + o.GetState().GetStateNumber()
hash = 31*hash + o.GetAlt()
- hash = 31*hash + o.GetSemanticContext().hash()
+ hash = 31*hash + o.GetSemanticContext().Hash()
return hash
}
@@ -403,5 +437,5 @@ func equalATNConfigs(a, b interface{}) bool {
return false
}
- return ai.GetSemanticContext().equals(bi.GetSemanticContext())
+ return ai.GetSemanticContext().Equals(bi.GetSemanticContext())
}
diff --git a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/atn_deserialization_options.go b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/atn_deserialization_options.go
similarity index 96%
rename from tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/atn_deserialization_options.go
rename to tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/atn_deserialization_options.go
index cb8eafb0b..3c975ec7b 100644
--- a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/atn_deserialization_options.go
+++ b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/atn_deserialization_options.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
diff --git a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/atn_deserializer.go b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/atn_deserializer.go
similarity index 99%
rename from tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/atn_deserializer.go
rename to tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/atn_deserializer.go
index aea9bbfa9..3888856b4 100644
--- a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/atn_deserializer.go
+++ b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/atn_deserializer.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
diff --git a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/atn_simulator.go b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/atn_simulator.go
similarity index 94%
rename from tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/atn_simulator.go
rename to tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/atn_simulator.go
index d5454d6d5..41529115f 100644
--- a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/atn_simulator.go
+++ b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/atn_simulator.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
diff --git a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/atn_state.go b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/atn_state.go
similarity index 97%
rename from tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/atn_state.go
rename to tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/atn_state.go
index 3835bb2e9..1f2a56bc3 100644
--- a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/atn_state.go
+++ b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/atn_state.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
@@ -49,7 +49,8 @@ type ATNState interface {
AddTransition(Transition, int)
String() string
- hash() int
+ Hash() int
+ Equals(Collectable[ATNState]) bool
}
type BaseATNState struct {
@@ -123,7 +124,7 @@ func (as *BaseATNState) SetNextTokenWithinRule(v *IntervalSet) {
as.NextTokenWithinRule = v
}
-func (as *BaseATNState) hash() int {
+func (as *BaseATNState) Hash() int {
return as.stateNumber
}
@@ -131,7 +132,7 @@ func (as *BaseATNState) String() string {
return strconv.Itoa(as.stateNumber)
}
-func (as *BaseATNState) equals(other interface{}) bool {
+func (as *BaseATNState) Equals(other Collectable[ATNState]) bool {
if ot, ok := other.(ATNState); ok {
return as.stateNumber == ot.GetStateNumber()
}
diff --git a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/atn_type.go b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/atn_type.go
similarity index 79%
rename from tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/atn_type.go
rename to tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/atn_type.go
index a7b48976b..3a515a145 100644
--- a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/atn_type.go
+++ b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/atn_type.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
diff --git a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/char_stream.go b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/char_stream.go
similarity index 82%
rename from tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/char_stream.go
rename to tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/char_stream.go
index 70c1207f7..c33f0adb5 100644
--- a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/char_stream.go
+++ b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/char_stream.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
diff --git a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/common_token_factory.go b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/common_token_factory.go
similarity index 96%
rename from tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/common_token_factory.go
rename to tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/common_token_factory.go
index 330ff8f31..1bb0314ea 100644
--- a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/common_token_factory.go
+++ b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/common_token_factory.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
diff --git a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/common_token_stream.go b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/common_token_stream.go
similarity index 98%
rename from tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/common_token_stream.go
rename to tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/common_token_stream.go
index c90e9b890..c6c9485a2 100644
--- a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/common_token_stream.go
+++ b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/common_token_stream.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
@@ -331,10 +331,12 @@ func (c *CommonTokenStream) GetTextFromRuleContext(interval RuleContext) string
func (c *CommonTokenStream) GetTextFromInterval(interval *Interval) string {
c.lazyInit()
- c.Fill()
if interval == nil {
+ c.Fill()
interval = NewInterval(0, len(c.tokens)-1)
+ } else {
+ c.Sync(interval.Stop)
}
start := interval.Start
diff --git a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/comparators.go b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/comparators.go
new file mode 100644
index 000000000..9ea320053
--- /dev/null
+++ b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/comparators.go
@@ -0,0 +1,147 @@
+package antlr
+
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
+// Use of this file is governed by the BSD 3-clause license that
+// can be found in the LICENSE.txt file in the project root.
+
+// This file contains all the implementations of custom comparators used for generic collections when the
+// Hash() and Equals() funcs supplied by the struct objects themselves need to be overridden. Normally, we would
+// put the comparators in the source file for the struct themselves, but given the organization of this code is
+// sorta kinda based upon the Java code, I found it confusing trying to find out which comparator was where and used by
+// which instantiation of a collection. For instance, an Array2DHashSet in the Java source, when used with ATNConfig
+// collections requires three different comparators depending on what the collection is being used for. Collecting - pun intended -
+// all the comparators here, makes it much easier to see which implementation of hash and equals is used by which collection.
+// It also makes it easy to verify that the Hash() and Equals() functions marry up with the Java implementations.
+
+// ObjEqComparator is the equivalent of the Java ObjectEqualityComparator, which is the default instance of
+// Equality comparator. We do not have inheritance in Go, only interfaces, so we use generics to enforce some
+// type safety and avoid having to implement this for every type that we want to perform comparison on.
+//
+// This comparator works by using the standard Hash() and Equals() methods of the type T that is being compared. Which
+// allows us to use it in any collection instance that does nto require a special hash or equals implementation.
+type ObjEqComparator[T Collectable[T]] struct{}
+
+var (
+ aStateEqInst = &ObjEqComparator[ATNState]{}
+ aConfEqInst = &ObjEqComparator[ATNConfig]{}
+ aConfCompInst = &ATNConfigComparator[ATNConfig]{}
+ atnConfCompInst = &BaseATNConfigComparator[ATNConfig]{}
+ dfaStateEqInst = &ObjEqComparator[*DFAState]{}
+ semctxEqInst = &ObjEqComparator[SemanticContext]{}
+ atnAltCfgEqInst = &ATNAltConfigComparator[ATNConfig]{}
+)
+
+// Equals2 delegates to the Equals() method of type T
+func (c *ObjEqComparator[T]) Equals2(o1, o2 T) bool {
+ return o1.Equals(o2)
+}
+
+// Hash1 delegates to the Hash() method of type T
+func (c *ObjEqComparator[T]) Hash1(o T) int {
+
+ return o.Hash()
+}
+
+type SemCComparator[T Collectable[T]] struct{}
+
+// ATNConfigComparator is used as the compartor for the configLookup field of an ATNConfigSet
+// and has a custom Equals() and Hash() implementation, because equality is not based on the
+// standard Hash() and Equals() methods of the ATNConfig type.
+type ATNConfigComparator[T Collectable[T]] struct {
+}
+
+// Equals2 is a custom comparator for ATNConfigs specifically for configLookup
+func (c *ATNConfigComparator[T]) Equals2(o1, o2 ATNConfig) bool {
+
+ // Same pointer, must be equal, even if both nil
+ //
+ if o1 == o2 {
+ return true
+
+ }
+
+ // If either are nil, but not both, then the result is false
+ //
+ if o1 == nil || o2 == nil {
+ return false
+ }
+
+ return o1.GetState().GetStateNumber() == o2.GetState().GetStateNumber() &&
+ o1.GetAlt() == o2.GetAlt() &&
+ o1.GetSemanticContext().Equals(o2.GetSemanticContext())
+}
+
+// Hash1 is custom hash implementation for ATNConfigs specifically for configLookup
+func (c *ATNConfigComparator[T]) Hash1(o ATNConfig) int {
+ hash := 7
+ hash = 31*hash + o.GetState().GetStateNumber()
+ hash = 31*hash + o.GetAlt()
+ hash = 31*hash + o.GetSemanticContext().Hash()
+ return hash
+}
+
+// ATNAltConfigComparator is used as the comparator for mapping configs to Alt Bitsets
+type ATNAltConfigComparator[T Collectable[T]] struct {
+}
+
+// Equals2 is a custom comparator for ATNConfigs specifically for configLookup
+func (c *ATNAltConfigComparator[T]) Equals2(o1, o2 ATNConfig) bool {
+
+ // Same pointer, must be equal, even if both nil
+ //
+ if o1 == o2 {
+ return true
+
+ }
+
+ // If either are nil, but not both, then the result is false
+ //
+ if o1 == nil || o2 == nil {
+ return false
+ }
+
+ return o1.GetState().GetStateNumber() == o2.GetState().GetStateNumber() &&
+ o1.GetContext().Equals(o2.GetContext())
+}
+
+// Hash1 is custom hash implementation for ATNConfigs specifically for configLookup
+func (c *ATNAltConfigComparator[T]) Hash1(o ATNConfig) int {
+ h := murmurInit(7)
+ h = murmurUpdate(h, o.GetState().GetStateNumber())
+ h = murmurUpdate(h, o.GetContext().Hash())
+ return murmurFinish(h, 2)
+}
+
+// BaseATNConfigComparator is used as the comparator for the configLookup field of a BaseATNConfigSet
+// and has a custom Equals() and Hash() implementation, because equality is not based on the
+// standard Hash() and Equals() methods of the ATNConfig type.
+type BaseATNConfigComparator[T Collectable[T]] struct {
+}
+
+// Equals2 is a custom comparator for ATNConfigs specifically for baseATNConfigSet
+func (c *BaseATNConfigComparator[T]) Equals2(o1, o2 ATNConfig) bool {
+
+ // Same pointer, must be equal, even if both nil
+ //
+ if o1 == o2 {
+ return true
+
+ }
+
+ // If either are nil, but not both, then the result is false
+ //
+ if o1 == nil || o2 == nil {
+ return false
+ }
+
+ return o1.GetState().GetStateNumber() == o2.GetState().GetStateNumber() &&
+ o1.GetAlt() == o2.GetAlt() &&
+ o1.GetSemanticContext().Equals(o2.GetSemanticContext())
+}
+
+// Hash1 is custom hash implementation for ATNConfigs specifically for configLookup, but in fact just
+// delegates to the standard Hash() method of the ATNConfig type.
+func (c *BaseATNConfigComparator[T]) Hash1(o ATNConfig) int {
+
+ return o.Hash()
+}
diff --git a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/dfa.go b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/dfa.go
similarity index 80%
rename from tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/dfa.go
rename to tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/dfa.go
index d55a2a87d..bfd43e1f7 100644
--- a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/dfa.go
+++ b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/dfa.go
@@ -1,13 +1,9 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
package antlr
-import (
- "sort"
-)
-
type DFA struct {
// atnStartState is the ATN state in which this was created
atnStartState DecisionState
@@ -15,8 +11,15 @@ type DFA struct {
decision int
// states is all the DFA states. Use Map to get the old state back; Set can only
- // indicate whether it is there.
- states map[int]*DFAState
+ // indicate whether it is there. Go maps implement key hash collisions and so on and are very
+ // good, but the DFAState is an object and can't be used directly as the key as it can in say JAva
+ // amd C#, whereby if the hashcode is the same for two objects, then Equals() is called against them
+ // to see if they really are the same object.
+ //
+ //
+ states *JStore[*DFAState, *ObjEqComparator[*DFAState]]
+
+ numstates int
s0 *DFAState
@@ -29,7 +32,7 @@ func NewDFA(atnStartState DecisionState, decision int) *DFA {
dfa := &DFA{
atnStartState: atnStartState,
decision: decision,
- states: make(map[int]*DFAState),
+ states: NewJStore[*DFAState, *ObjEqComparator[*DFAState]](dfaStateEqInst),
}
if s, ok := atnStartState.(*StarLoopEntryState); ok && s.precedenceRuleDecision {
dfa.precedenceDfa = true
@@ -92,7 +95,8 @@ func (d *DFA) getPrecedenceDfa() bool {
// true or nil otherwise, and d.precedenceDfa is updated.
func (d *DFA) setPrecedenceDfa(precedenceDfa bool) {
if d.getPrecedenceDfa() != precedenceDfa {
- d.setStates(make(map[int]*DFAState))
+ d.states = NewJStore[*DFAState, *ObjEqComparator[*DFAState]](dfaStateEqInst)
+ d.numstates = 0
if precedenceDfa {
precedenceState := NewDFAState(-1, NewBaseATNConfigSet(false))
@@ -117,38 +121,12 @@ func (d *DFA) setS0(s *DFAState) {
d.s0 = s
}
-func (d *DFA) getState(hash int) (*DFAState, bool) {
- s, ok := d.states[hash]
- return s, ok
-}
-
-func (d *DFA) setStates(states map[int]*DFAState) {
- d.states = states
-}
-
-func (d *DFA) setState(hash int, state *DFAState) {
- d.states[hash] = state
-}
-
-func (d *DFA) numStates() int {
- return len(d.states)
-}
-
-type dfaStateList []*DFAState
-
-func (d dfaStateList) Len() int { return len(d) }
-func (d dfaStateList) Less(i, j int) bool { return d[i].stateNumber < d[j].stateNumber }
-func (d dfaStateList) Swap(i, j int) { d[i], d[j] = d[j], d[i] }
-
// sortedStates returns the states in d sorted by their state number.
func (d *DFA) sortedStates() []*DFAState {
- vs := make([]*DFAState, 0, len(d.states))
-
- for _, v := range d.states {
- vs = append(vs, v)
- }
- sort.Sort(dfaStateList(vs))
+ vs := d.states.SortedSlice(func(i, j *DFAState) bool {
+ return i.stateNumber < j.stateNumber
+ })
return vs
}
diff --git a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/dfa_serializer.go b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/dfa_serializer.go
similarity index 97%
rename from tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/dfa_serializer.go
rename to tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/dfa_serializer.go
index bf2ccc06c..84d0a31e5 100644
--- a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/dfa_serializer.go
+++ b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/dfa_serializer.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
diff --git a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/dfa_state.go b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/dfa_state.go
similarity index 90%
rename from tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/dfa_state.go
rename to tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/dfa_state.go
index 970ed1986..c90dec55c 100644
--- a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/dfa_state.go
+++ b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/dfa_state.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
@@ -90,16 +90,16 @@ func NewDFAState(stateNumber int, configs ATNConfigSet) *DFAState {
}
// GetAltSet gets the set of all alts mentioned by all ATN configurations in d.
-func (d *DFAState) GetAltSet() Set {
- alts := newArray2DHashSet(nil, nil)
+func (d *DFAState) GetAltSet() []int {
+ var alts []int
if d.configs != nil {
for _, c := range d.configs.GetItems() {
- alts.Add(c.GetAlt())
+ alts = append(alts, c.GetAlt())
}
}
- if alts.Len() == 0 {
+ if len(alts) == 0 {
return nil
}
@@ -130,27 +130,6 @@ func (d *DFAState) setPrediction(v int) {
d.prediction = v
}
-// equals returns whether d equals other. Two DFAStates are equal if their ATN
-// configuration sets are the same. This method is used to see if a state
-// already exists.
-//
-// Because the number of alternatives and number of ATN configurations are
-// finite, there is a finite number of DFA states that can be processed. This is
-// necessary to show that the algorithm terminates.
-//
-// Cannot test the DFA state numbers here because in
-// ParserATNSimulator.addDFAState we need to know if any other state exists that
-// has d exact set of ATN configurations. The stateNumber is irrelevant.
-func (d *DFAState) equals(other interface{}) bool {
- if d == other {
- return true
- } else if _, ok := other.(*DFAState); !ok {
- return false
- }
-
- return d.configs.Equals(other.(*DFAState).configs)
-}
-
func (d *DFAState) String() string {
var s string
if d.isAcceptState {
@@ -164,8 +143,27 @@ func (d *DFAState) String() string {
return fmt.Sprintf("%d:%s%s", d.stateNumber, fmt.Sprint(d.configs), s)
}
-func (d *DFAState) hash() int {
+func (d *DFAState) Hash() int {
h := murmurInit(7)
- h = murmurUpdate(h, d.configs.hash())
+ h = murmurUpdate(h, d.configs.Hash())
return murmurFinish(h, 1)
}
+
+// Equals returns whether d equals other. Two DFAStates are equal if their ATN
+// configuration sets are the same. This method is used to see if a state
+// already exists.
+//
+// Because the number of alternatives and number of ATN configurations are
+// finite, there is a finite number of DFA states that can be processed. This is
+// necessary to show that the algorithm terminates.
+//
+// Cannot test the DFA state numbers here because in
+// ParserATNSimulator.addDFAState we need to know if any other state exists that
+// has d exact set of ATN configurations. The stateNumber is irrelevant.
+func (d *DFAState) Equals(o Collectable[*DFAState]) bool {
+ if d == o {
+ return true
+ }
+
+ return d.configs.Equals(o.(*DFAState).configs)
+}
diff --git a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/diagnostic_error_listener.go b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/diagnostic_error_listener.go
similarity index 98%
rename from tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/diagnostic_error_listener.go
rename to tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/diagnostic_error_listener.go
index 1fec43d9d..c55bcc19b 100644
--- a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/diagnostic_error_listener.go
+++ b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/diagnostic_error_listener.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
@@ -87,7 +87,6 @@ func (d *DiagnosticErrorListener) getDecisionDescription(recognizer Parser, dfa
return strconv.Itoa(decision) + " (" + ruleName + ")"
}
-//
// Computes the set of conflicting or ambiguous alternatives from a
// configuration set, if that information was not already provided by the
// parser.
@@ -97,7 +96,6 @@ func (d *DiagnosticErrorListener) getDecisionDescription(recognizer Parser, dfa
// @param configs The conflicting or ambiguous configuration set.
// @return Returns {@code ReportedAlts} if it is not {@code nil}, otherwise
// returns the set of alternatives represented in {@code configs}.
-//
func (d *DiagnosticErrorListener) getConflictingAlts(ReportedAlts *BitSet, set ATNConfigSet) *BitSet {
if ReportedAlts != nil {
return ReportedAlts
diff --git a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/error_listener.go b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/error_listener.go
similarity index 98%
rename from tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/error_listener.go
rename to tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/error_listener.go
index 028e1a9d7..f679f0dcd 100644
--- a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/error_listener.go
+++ b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/error_listener.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
@@ -48,12 +48,9 @@ func NewConsoleErrorListener() *ConsoleErrorListener {
return new(ConsoleErrorListener)
}
-//
// Provides a default instance of {@link ConsoleErrorListener}.
-//
var ConsoleErrorListenerINSTANCE = NewConsoleErrorListener()
-//
// {@inheritDoc}
//
//
@@ -64,7 +61,6 @@ var ConsoleErrorListenerINSTANCE = NewConsoleErrorListener()
//
// line line:charPositionInLinemsg
//
-//
func (c *ConsoleErrorListener) SyntaxError(recognizer Recognizer, offendingSymbol interface{}, line, column int, msg string, e RecognitionException) {
fmt.Fprintln(os.Stderr, "line "+strconv.Itoa(line)+":"+strconv.Itoa(column)+" "+msg)
}
diff --git a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/error_strategy.go b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/error_strategy.go
similarity index 99%
rename from tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/error_strategy.go
rename to tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/error_strategy.go
index c4080dbfd..5c0a637ba 100644
--- a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/error_strategy.go
+++ b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/error_strategy.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
@@ -23,7 +23,6 @@ type ErrorStrategy interface {
// This is the default implementation of {@link ANTLRErrorStrategy} used for
// error Reporting and recovery in ANTLR parsers.
-//
type DefaultErrorStrategy struct {
errorRecoveryMode bool
lastErrorIndex int
@@ -61,12 +60,10 @@ func (d *DefaultErrorStrategy) reset(recognizer Parser) {
d.endErrorCondition(recognizer)
}
-//
// This method is called to enter error recovery mode when a recognition
// exception is Reported.
//
// @param recognizer the parser instance
-//
func (d *DefaultErrorStrategy) beginErrorCondition(recognizer Parser) {
d.errorRecoveryMode = true
}
@@ -75,28 +72,23 @@ func (d *DefaultErrorStrategy) InErrorRecoveryMode(recognizer Parser) bool {
return d.errorRecoveryMode
}
-//
// This method is called to leave error recovery mode after recovering from
// a recognition exception.
//
// @param recognizer
-//
func (d *DefaultErrorStrategy) endErrorCondition(recognizer Parser) {
d.errorRecoveryMode = false
d.lastErrorStates = nil
d.lastErrorIndex = -1
}
-//
// {@inheritDoc}
//
//
The default implementation simply calls {@link //endErrorCondition}.
The default implementation returns immediately if the handler is already
@@ -114,7 +106,6 @@ func (d *DefaultErrorStrategy) ReportMatch(recognizer Parser) {
//
All other types: calls {@link Parser//NotifyErrorListeners} to Report
// the exception
//
-//
func (d *DefaultErrorStrategy) ReportError(recognizer Parser, e RecognitionException) {
// if we've already Reported an error and have not Matched a token
// yet successfully, don't Report any errors.
@@ -142,7 +133,6 @@ func (d *DefaultErrorStrategy) ReportError(recognizer Parser, e RecognitionExcep
//
The default implementation reSynchronizes the parser by consuming tokens
// until we find one in the reSynchronization set--loosely the set of tokens
// that can follow the current rule.
-//
func (d *DefaultErrorStrategy) Recover(recognizer Parser, e RecognitionException) {
if d.lastErrorIndex == recognizer.GetInputStream().Index() &&
@@ -206,7 +196,6 @@ func (d *DefaultErrorStrategy) Recover(recognizer Parser, e RecognitionException
// compare token set at the start of the loop and at each iteration. If for
// some reason speed is suffering for you, you can turn off d
// functionality by simply overriding d method as a blank { }.
-//
func (d *DefaultErrorStrategy) Sync(recognizer Parser) {
// If already recovering, don't try to Sync
if d.InErrorRecoveryMode(recognizer) {
@@ -247,7 +236,6 @@ func (d *DefaultErrorStrategy) Sync(recognizer Parser) {
//
// @param recognizer the parser instance
// @param e the recognition exception
-//
func (d *DefaultErrorStrategy) ReportNoViableAlternative(recognizer Parser, e *NoViableAltException) {
tokens := recognizer.GetTokenStream()
var input string
@@ -264,7 +252,6 @@ func (d *DefaultErrorStrategy) ReportNoViableAlternative(recognizer Parser, e *N
recognizer.NotifyErrorListeners(msg, e.offendingToken, e)
}
-//
// This is called by {@link //ReportError} when the exception is an
// {@link InputMisMatchException}.
//
@@ -272,14 +259,12 @@ func (d *DefaultErrorStrategy) ReportNoViableAlternative(recognizer Parser, e *N
//
// @param recognizer the parser instance
// @param e the recognition exception
-//
func (this *DefaultErrorStrategy) ReportInputMisMatch(recognizer Parser, e *InputMisMatchException) {
msg := "mismatched input " + this.GetTokenErrorDisplay(e.offendingToken) +
" expecting " + e.getExpectedTokens().StringVerbose(recognizer.GetLiteralNames(), recognizer.GetSymbolicNames(), false)
recognizer.NotifyErrorListeners(msg, e.offendingToken, e)
}
-//
// This is called by {@link //ReportError} when the exception is a
// {@link FailedPredicateException}.
//
@@ -287,7 +272,6 @@ func (this *DefaultErrorStrategy) ReportInputMisMatch(recognizer Parser, e *Inpu
//
// @param recognizer the parser instance
// @param e the recognition exception
-//
func (d *DefaultErrorStrategy) ReportFailedPredicate(recognizer Parser, e *FailedPredicateException) {
ruleName := recognizer.GetRuleNames()[recognizer.GetParserRuleContext().GetRuleIndex()]
msg := "rule " + ruleName + " " + e.message
@@ -310,7 +294,6 @@ func (d *DefaultErrorStrategy) ReportFailedPredicate(recognizer Parser, e *Faile
// {@link Parser//NotifyErrorListeners}.
//
// @param recognizer the parser instance
-//
func (d *DefaultErrorStrategy) ReportUnwantedToken(recognizer Parser) {
if d.InErrorRecoveryMode(recognizer) {
return
@@ -339,7 +322,6 @@ func (d *DefaultErrorStrategy) ReportUnwantedToken(recognizer Parser) {
// {@link Parser//NotifyErrorListeners}.
//
// @param recognizer the parser instance
-//
func (d *DefaultErrorStrategy) ReportMissingToken(recognizer Parser) {
if d.InErrorRecoveryMode(recognizer) {
return
@@ -392,15 +374,14 @@ func (d *DefaultErrorStrategy) ReportMissingToken(recognizer Parser) {
// derivation:
//
//
-// => ID '=' '(' INT ')' ('+' atom)* ''
+// => ID '=' '(' INT ')' ('+' atom)* â€
// ^
//
//
-// The attempt to Match {@code ')'} will fail when it sees {@code ''} and
-// call {@link //recoverInline}. To recover, it sees that {@code LA(1)==''}
+// The attempt to Match {@code ')'} will fail when it sees {@code â€} and
+// call {@link //recoverInline}. To recover, it sees that {@code LA(1)==â€}
// is in the set of tokens that can follow the {@code ')'} token reference
// in rule {@code atom}. It can assume that you forgot the {@code ')'}.
-//
func (d *DefaultErrorStrategy) RecoverInline(recognizer Parser) Token {
// SINGLE TOKEN DELETION
MatchedSymbol := d.SingleTokenDeletion(recognizer)
@@ -418,7 +399,6 @@ func (d *DefaultErrorStrategy) RecoverInline(recognizer Parser) Token {
panic(NewInputMisMatchException(recognizer))
}
-//
// This method implements the single-token insertion inline error recovery
// strategy. It is called by {@link //recoverInline} if the single-token
// deletion strategy fails to recover from the mismatched input. If this
@@ -434,7 +414,6 @@ func (d *DefaultErrorStrategy) RecoverInline(recognizer Parser) Token {
// @param recognizer the parser instance
// @return {@code true} if single-token insertion is a viable recovery
// strategy for the current mismatched input, otherwise {@code false}
-//
func (d *DefaultErrorStrategy) SingleTokenInsertion(recognizer Parser) bool {
currentSymbolType := recognizer.GetTokenStream().LA(1)
// if current token is consistent with what could come after current
@@ -469,7 +448,6 @@ func (d *DefaultErrorStrategy) SingleTokenInsertion(recognizer Parser) bool {
// @return the successfully Matched {@link Token} instance if single-token
// deletion successfully recovers from the mismatched input, otherwise
// {@code nil}
-//
func (d *DefaultErrorStrategy) SingleTokenDeletion(recognizer Parser) Token {
NextTokenType := recognizer.GetTokenStream().LA(2)
expecting := d.GetExpectedTokens(recognizer)
@@ -507,7 +485,6 @@ func (d *DefaultErrorStrategy) SingleTokenDeletion(recognizer Parser) Token {
// a CommonToken of the appropriate type. The text will be the token.
// If you change what tokens must be created by the lexer,
// override d method to create the appropriate tokens.
-//
func (d *DefaultErrorStrategy) GetMissingSymbol(recognizer Parser) Token {
currentSymbol := recognizer.GetCurrentToken()
expecting := d.GetExpectedTokens(recognizer)
@@ -546,7 +523,6 @@ func (d *DefaultErrorStrategy) GetExpectedTokens(recognizer Parser) *IntervalSet
// the token). This is better than forcing you to override a method in
// your token objects because you don't have to go modify your lexer
// so that it creates a NewJava type.
-//
func (d *DefaultErrorStrategy) GetTokenErrorDisplay(t Token) string {
if t == nil {
return ""
@@ -578,7 +554,7 @@ func (d *DefaultErrorStrategy) escapeWSAndQuote(s string) string {
// from within the rule i.e., the FIRST computation done by
// ANTLR stops at the end of a rule.
//
-// EXAMPLE
+// # EXAMPLE
//
// When you find a "no viable alt exception", the input is not
// consistent with any of the alternatives for rule r. The best
@@ -597,7 +573,6 @@ func (d *DefaultErrorStrategy) escapeWSAndQuote(s string) string {
// c : ID
// | INT
//
-//
// At each rule invocation, the set of tokens that could follow
// that rule is pushed on a stack. Here are the various
// context-sensitive follow sets:
@@ -660,7 +635,6 @@ func (d *DefaultErrorStrategy) escapeWSAndQuote(s string) string {
//
// Like Grosch I implement context-sensitive FOLLOW sets that are combined
// at run-time upon error to avoid overhead during parsing.
-//
func (d *DefaultErrorStrategy) getErrorRecoverySet(recognizer Parser) *IntervalSet {
atn := recognizer.GetInterpreter().atn
ctx := recognizer.GetParserRuleContext()
@@ -733,7 +707,6 @@ func NewBailErrorStrategy() *BailErrorStrategy {
// in a {@link ParseCancellationException} so it is not caught by the
// rule func catches. Use {@link Exception//getCause()} to get the
// original {@link RecognitionException}.
-//
func (b *BailErrorStrategy) Recover(recognizer Parser, e RecognitionException) {
context := recognizer.GetParserRuleContext()
for context != nil {
@@ -749,7 +722,6 @@ func (b *BailErrorStrategy) Recover(recognizer Parser, e RecognitionException) {
// Make sure we don't attempt to recover inline if the parser
// successfully recovers, it won't panic an exception.
-//
func (b *BailErrorStrategy) RecoverInline(recognizer Parser) Token {
b.Recover(recognizer, NewInputMisMatchException(recognizer))
diff --git a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/errors.go b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/errors.go
similarity index 98%
rename from tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/errors.go
rename to tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/errors.go
index 2ef74926e..3954c1378 100644
--- a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/errors.go
+++ b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/errors.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
@@ -74,7 +74,6 @@ func (b *BaseRecognitionException) GetInputStream() IntStream {
//
If the state number is not known, b method returns -1.
-//
// Gets the set of input symbols which could potentially follow the
// previously Matched symbol at the time b exception was panicn.
//
@@ -136,7 +135,6 @@ type NoViableAltException struct {
// to take based upon the remaining input. It tracks the starting token
// of the offending input and also knows where the parser was
// in the various paths when the error. Reported by ReportNoViableAlternative()
-//
func NewNoViableAltException(recognizer Parser, input TokenStream, startToken Token, offendingToken Token, deadEndConfigs ATNConfigSet, ctx ParserRuleContext) *NoViableAltException {
if ctx == nil {
@@ -177,7 +175,6 @@ type InputMisMatchException struct {
// This signifies any kind of mismatched input exceptions such as
// when the current input does not Match the expected token.
-//
func NewInputMisMatchException(recognizer Parser) *InputMisMatchException {
i := new(InputMisMatchException)
diff --git a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/file_stream.go b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/file_stream.go
similarity index 92%
rename from tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/file_stream.go
rename to tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/file_stream.go
index 842170c08..bd6ad5efe 100644
--- a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/file_stream.go
+++ b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/file_stream.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
diff --git a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/input_stream.go b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/input_stream.go
similarity index 96%
rename from tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/input_stream.go
rename to tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/input_stream.go
index 5ff270f53..a8b889ced 100644
--- a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/input_stream.go
+++ b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/input_stream.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
diff --git a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/int_stream.go b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/int_stream.go
similarity index 82%
rename from tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/int_stream.go
rename to tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/int_stream.go
index 438e0ea6e..4778878bd 100644
--- a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/int_stream.go
+++ b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/int_stream.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
diff --git a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/interval_set.go b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/interval_set.go
similarity index 98%
rename from tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/interval_set.go
rename to tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/interval_set.go
index 1e9393adb..c1e155e81 100644
--- a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/interval_set.go
+++ b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/interval_set.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
@@ -223,6 +223,10 @@ func (i *IntervalSet) StringVerbose(literalNames []string, symbolicNames []strin
return i.toIndexString()
}
+func (i *IntervalSet) GetIntervals() []*Interval {
+ return i.intervals
+}
+
func (i *IntervalSet) toCharString() string {
names := make([]string, len(i.intervals))
diff --git a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/jcollect.go b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/jcollect.go
new file mode 100644
index 000000000..e5a74f0c6
--- /dev/null
+++ b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/jcollect.go
@@ -0,0 +1,198 @@
+package antlr
+
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
+// Use of this file is governed by the BSD 3-clause license that
+// can be found in the LICENSE.txt file in the project root.
+
+import (
+ "sort"
+)
+
+// Collectable is an interface that a struct should implement if it is to be
+// usable as a key in these collections.
+type Collectable[T any] interface {
+ Hash() int
+ Equals(other Collectable[T]) bool
+}
+
+type Comparator[T any] interface {
+ Hash1(o T) int
+ Equals2(T, T) bool
+}
+
+// JStore implements a container that allows the use of a struct to calculate the key
+// for a collection of values akin to map. This is not meant to be a full-blown HashMap but just
+// serve the needs of the ANTLR Go runtime.
+//
+// For ease of porting the logic of the runtime from the master target (Java), this collection
+// operates in a similar way to Java, in that it can use any struct that supplies a Hash() and Equals()
+// function as the key. The values are stored in a standard go map which internally is a form of hashmap
+// itself, the key for the go map is the hash supplied by the key object. The collection is able to deal with
+// hash conflicts by using a simple slice of values associated with the hash code indexed bucket. That isn't
+// particularly efficient, but it is simple, and it works. As this is specifically for the ANTLR runtime, and
+// we understand the requirements, then this is fine - this is not a general purpose collection.
+type JStore[T any, C Comparator[T]] struct {
+ store map[int][]T
+ len int
+ comparator Comparator[T]
+}
+
+func NewJStore[T any, C Comparator[T]](comparator Comparator[T]) *JStore[T, C] {
+
+ if comparator == nil {
+ panic("comparator cannot be nil")
+ }
+
+ s := &JStore[T, C]{
+ store: make(map[int][]T, 1),
+ comparator: comparator,
+ }
+ return s
+}
+
+// Put will store given value in the collection. Note that the key for storage is generated from
+// the value itself - this is specifically because that is what ANTLR needs - this would not be useful
+// as any kind of general collection.
+//
+// If the key has a hash conflict, then the value will be added to the slice of values associated with the
+// hash, unless the value is already in the slice, in which case the existing value is returned. Value equivalence is
+// tested by calling the equals() method on the key.
+//
+// # If the given value is already present in the store, then the existing value is returned as v and exists is set to true
+//
+// If the given value is not present in the store, then the value is added to the store and returned as v and exists is set to false.
+func (s *JStore[T, C]) Put(value T) (v T, exists bool) { //nolint:ireturn
+
+ kh := s.comparator.Hash1(value)
+
+ for _, v1 := range s.store[kh] {
+ if s.comparator.Equals2(value, v1) {
+ return v1, true
+ }
+ }
+ s.store[kh] = append(s.store[kh], value)
+ s.len++
+ return value, false
+}
+
+// Get will return the value associated with the key - the type of the key is the same type as the value
+// which would not generally be useful, but this is a specific thing for ANTLR where the key is
+// generated using the object we are going to store.
+func (s *JStore[T, C]) Get(key T) (T, bool) { //nolint:ireturn
+
+ kh := s.comparator.Hash1(key)
+
+ for _, v := range s.store[kh] {
+ if s.comparator.Equals2(key, v) {
+ return v, true
+ }
+ }
+ return key, false
+}
+
+// Contains returns true if the given key is present in the store
+func (s *JStore[T, C]) Contains(key T) bool { //nolint:ireturn
+
+ _, present := s.Get(key)
+ return present
+}
+
+func (s *JStore[T, C]) SortedSlice(less func(i, j T) bool) []T {
+ vs := make([]T, 0, len(s.store))
+ for _, v := range s.store {
+ vs = append(vs, v...)
+ }
+ sort.Slice(vs, func(i, j int) bool {
+ return less(vs[i], vs[j])
+ })
+
+ return vs
+}
+
+func (s *JStore[T, C]) Each(f func(T) bool) {
+ for _, e := range s.store {
+ for _, v := range e {
+ f(v)
+ }
+ }
+}
+
+func (s *JStore[T, C]) Len() int {
+ return s.len
+}
+
+func (s *JStore[T, C]) Values() []T {
+ vs := make([]T, 0, len(s.store))
+ for _, e := range s.store {
+ for _, v := range e {
+ vs = append(vs, v)
+ }
+ }
+ return vs
+}
+
+type entry[K, V any] struct {
+ key K
+ val V
+}
+
+type JMap[K, V any, C Comparator[K]] struct {
+ store map[int][]*entry[K, V]
+ len int
+ comparator Comparator[K]
+}
+
+func NewJMap[K, V any, C Comparator[K]](comparator Comparator[K]) *JMap[K, V, C] {
+ return &JMap[K, V, C]{
+ store: make(map[int][]*entry[K, V], 1),
+ comparator: comparator,
+ }
+}
+
+func (m *JMap[K, V, C]) Put(key K, val V) {
+ kh := m.comparator.Hash1(key)
+
+ m.store[kh] = append(m.store[kh], &entry[K, V]{key, val})
+ m.len++
+}
+
+func (m *JMap[K, V, C]) Values() []V {
+ vs := make([]V, 0, len(m.store))
+ for _, e := range m.store {
+ for _, v := range e {
+ vs = append(vs, v.val)
+ }
+ }
+ return vs
+}
+
+func (m *JMap[K, V, C]) Get(key K) (V, bool) {
+
+ var none V
+ kh := m.comparator.Hash1(key)
+ for _, e := range m.store[kh] {
+ if m.comparator.Equals2(e.key, key) {
+ return e.val, true
+ }
+ }
+ return none, false
+}
+
+func (m *JMap[K, V, C]) Len() int {
+ return len(m.store)
+}
+
+func (m *JMap[K, V, C]) Delete(key K) {
+ kh := m.comparator.Hash1(key)
+ for i, e := range m.store[kh] {
+ if m.comparator.Equals2(e.key, key) {
+ m.store[kh] = append(m.store[kh][:i], m.store[kh][i+1:]...)
+ m.len--
+ return
+ }
+ }
+}
+
+func (m *JMap[K, V, C]) Clear() {
+ m.store = make(map[int][]*entry[K, V])
+}
diff --git a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/lexer.go b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/lexer.go
similarity index 98%
rename from tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/lexer.go
rename to tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/lexer.go
index b04f04572..6533f0516 100644
--- a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/lexer.go
+++ b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/lexer.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
@@ -232,8 +232,6 @@ func (b *BaseLexer) NextToken() Token {
}
return b.token
}
-
- return nil
}
// Instruct the lexer to Skip creating a token for current lexer rule
@@ -342,7 +340,7 @@ func (b *BaseLexer) GetCharIndex() int {
}
// Return the text Matched so far for the current token or any text override.
-//Set the complete text of l token it wipes any previous changes to the text.
+// Set the complete text of l token it wipes any previous changes to the text.
func (b *BaseLexer) GetText() string {
if b.text != "" {
return b.text
diff --git a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/lexer_action.go b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/lexer_action.go
similarity index 91%
rename from tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/lexer_action.go
rename to tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/lexer_action.go
index 5a325be13..111656c29 100644
--- a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/lexer_action.go
+++ b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/lexer_action.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
@@ -21,8 +21,8 @@ type LexerAction interface {
getActionType() int
getIsPositionDependent() bool
execute(lexer Lexer)
- hash() int
- equals(other LexerAction) bool
+ Hash() int
+ Equals(other LexerAction) bool
}
type BaseLexerAction struct {
@@ -51,15 +51,14 @@ func (b *BaseLexerAction) getIsPositionDependent() bool {
return b.isPositionDependent
}
-func (b *BaseLexerAction) hash() int {
+func (b *BaseLexerAction) Hash() int {
return b.actionType
}
-func (b *BaseLexerAction) equals(other LexerAction) bool {
+func (b *BaseLexerAction) Equals(other LexerAction) bool {
return b == other
}
-//
// Implements the {@code Skip} lexer action by calling {@link Lexer//Skip}.
//
//
The {@code Skip} command does not have any parameters, so l action is
@@ -85,7 +84,8 @@ func (l *LexerSkipAction) String() string {
return "skip"
}
-// Implements the {@code type} lexer action by calling {@link Lexer//setType}
+// Implements the {@code type} lexer action by calling {@link Lexer//setType}
+//
// with the assigned type.
type LexerTypeAction struct {
*BaseLexerAction
@@ -104,14 +104,14 @@ func (l *LexerTypeAction) execute(lexer Lexer) {
lexer.SetType(l.thetype)
}
-func (l *LexerTypeAction) hash() int {
+func (l *LexerTypeAction) Hash() int {
h := murmurInit(0)
h = murmurUpdate(h, l.actionType)
h = murmurUpdate(h, l.thetype)
return murmurFinish(h, 2)
}
-func (l *LexerTypeAction) equals(other LexerAction) bool {
+func (l *LexerTypeAction) Equals(other LexerAction) bool {
if l == other {
return true
} else if _, ok := other.(*LexerTypeAction); !ok {
@@ -148,14 +148,14 @@ func (l *LexerPushModeAction) execute(lexer Lexer) {
lexer.PushMode(l.mode)
}
-func (l *LexerPushModeAction) hash() int {
+func (l *LexerPushModeAction) Hash() int {
h := murmurInit(0)
h = murmurUpdate(h, l.actionType)
h = murmurUpdate(h, l.mode)
return murmurFinish(h, 2)
}
-func (l *LexerPushModeAction) equals(other LexerAction) bool {
+func (l *LexerPushModeAction) Equals(other LexerAction) bool {
if l == other {
return true
} else if _, ok := other.(*LexerPushModeAction); !ok {
@@ -245,14 +245,14 @@ func (l *LexerModeAction) execute(lexer Lexer) {
lexer.SetMode(l.mode)
}
-func (l *LexerModeAction) hash() int {
+func (l *LexerModeAction) Hash() int {
h := murmurInit(0)
h = murmurUpdate(h, l.actionType)
h = murmurUpdate(h, l.mode)
return murmurFinish(h, 2)
}
-func (l *LexerModeAction) equals(other LexerAction) bool {
+func (l *LexerModeAction) Equals(other LexerAction) bool {
if l == other {
return true
} else if _, ok := other.(*LexerModeAction); !ok {
@@ -303,7 +303,7 @@ func (l *LexerCustomAction) execute(lexer Lexer) {
lexer.Action(nil, l.ruleIndex, l.actionIndex)
}
-func (l *LexerCustomAction) hash() int {
+func (l *LexerCustomAction) Hash() int {
h := murmurInit(0)
h = murmurUpdate(h, l.actionType)
h = murmurUpdate(h, l.ruleIndex)
@@ -311,13 +311,14 @@ func (l *LexerCustomAction) hash() int {
return murmurFinish(h, 3)
}
-func (l *LexerCustomAction) equals(other LexerAction) bool {
+func (l *LexerCustomAction) Equals(other LexerAction) bool {
if l == other {
return true
} else if _, ok := other.(*LexerCustomAction); !ok {
return false
} else {
- return l.ruleIndex == other.(*LexerCustomAction).ruleIndex && l.actionIndex == other.(*LexerCustomAction).actionIndex
+ return l.ruleIndex == other.(*LexerCustomAction).ruleIndex &&
+ l.actionIndex == other.(*LexerCustomAction).actionIndex
}
}
@@ -344,14 +345,14 @@ func (l *LexerChannelAction) execute(lexer Lexer) {
lexer.SetChannel(l.channel)
}
-func (l *LexerChannelAction) hash() int {
+func (l *LexerChannelAction) Hash() int {
h := murmurInit(0)
h = murmurUpdate(h, l.actionType)
h = murmurUpdate(h, l.channel)
return murmurFinish(h, 2)
}
-func (l *LexerChannelAction) equals(other LexerAction) bool {
+func (l *LexerChannelAction) Equals(other LexerAction) bool {
if l == other {
return true
} else if _, ok := other.(*LexerChannelAction); !ok {
@@ -412,10 +413,10 @@ func (l *LexerIndexedCustomAction) execute(lexer Lexer) {
l.lexerAction.execute(lexer)
}
-func (l *LexerIndexedCustomAction) hash() int {
+func (l *LexerIndexedCustomAction) Hash() int {
h := murmurInit(0)
h = murmurUpdate(h, l.offset)
- h = murmurUpdate(h, l.lexerAction.hash())
+ h = murmurUpdate(h, l.lexerAction.Hash())
return murmurFinish(h, 2)
}
@@ -425,6 +426,7 @@ func (l *LexerIndexedCustomAction) equals(other LexerAction) bool {
} else if _, ok := other.(*LexerIndexedCustomAction); !ok {
return false
} else {
- return l.offset == other.(*LexerIndexedCustomAction).offset && l.lexerAction == other.(*LexerIndexedCustomAction).lexerAction
+ return l.offset == other.(*LexerIndexedCustomAction).offset &&
+ l.lexerAction.Equals(other.(*LexerIndexedCustomAction).lexerAction)
}
}
diff --git a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/lexer_action_executor.go b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/lexer_action_executor.go
similarity index 88%
rename from tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/lexer_action_executor.go
rename to tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/lexer_action_executor.go
index 056941dd6..be1ba7a7e 100644
--- a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/lexer_action_executor.go
+++ b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/lexer_action_executor.go
@@ -1,9 +1,11 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
package antlr
+import "golang.org/x/exp/slices"
+
// Represents an executor for a sequence of lexer actions which traversed during
// the Matching operation of a lexer rule (token).
//
@@ -12,8 +14,8 @@ package antlr
// not cause bloating of the {@link DFA} created for the lexer.
type LexerActionExecutor struct {
- lexerActions []LexerAction
- cachedHash int
+ lexerActions []LexerAction
+ cachedHash int
}
func NewLexerActionExecutor(lexerActions []LexerAction) *LexerActionExecutor {
@@ -30,7 +32,7 @@ func NewLexerActionExecutor(lexerActions []LexerAction) *LexerActionExecutor {
// of the performance-critical {@link LexerATNConfig//hashCode} operation.
l.cachedHash = murmurInit(57)
for _, a := range lexerActions {
- l.cachedHash = murmurUpdate(l.cachedHash, a.hash())
+ l.cachedHash = murmurUpdate(l.cachedHash, a.Hash())
}
return l
@@ -151,14 +153,17 @@ func (l *LexerActionExecutor) execute(lexer Lexer, input CharStream, startIndex
}
}
-func (l *LexerActionExecutor) hash() int {
+func (l *LexerActionExecutor) Hash() int {
if l == nil {
+ // TODO: Why is this here? l should not be nil
return 61
}
+
+ // TODO: This is created from the action itself when the struct is created - will this be an issue at some point? Java uses the runtime assign hashcode
return l.cachedHash
}
-func (l *LexerActionExecutor) equals(other interface{}) bool {
+func (l *LexerActionExecutor) Equals(other interface{}) bool {
if l == other {
return true
}
@@ -169,5 +174,13 @@ func (l *LexerActionExecutor) equals(other interface{}) bool {
if othert == nil {
return false
}
- return l.cachedHash == othert.cachedHash && &l.lexerActions == &othert.lexerActions
+ if l.cachedHash != othert.cachedHash {
+ return false
+ }
+ if len(l.lexerActions) != len(othert.lexerActions) {
+ return false
+ }
+ return slices.EqualFunc(l.lexerActions, othert.lexerActions, func(i, j LexerAction) bool {
+ return i.Equals(j)
+ })
}
diff --git a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/lexer_atn_simulator.go b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/lexer_atn_simulator.go
similarity index 98%
rename from tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/lexer_atn_simulator.go
rename to tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/lexer_atn_simulator.go
index dc05153ea..c573b7521 100644
--- a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/lexer_atn_simulator.go
+++ b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/lexer_atn_simulator.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
@@ -591,19 +591,24 @@ func (l *LexerATNSimulator) addDFAState(configs ATNConfigSet, suppressEdge bool)
proposed.lexerActionExecutor = firstConfigWithRuleStopState.(*LexerATNConfig).lexerActionExecutor
proposed.setPrediction(l.atn.ruleToTokenType[firstConfigWithRuleStopState.GetState().GetRuleIndex()])
}
- hash := proposed.hash()
dfa := l.decisionToDFA[l.mode]
l.atn.stateMu.Lock()
defer l.atn.stateMu.Unlock()
- existing, ok := dfa.getState(hash)
- if ok {
+ existing, present := dfa.states.Get(proposed)
+ if present {
+
+ // This state was already present, so just return it.
+ //
proposed = existing
} else {
- proposed.stateNumber = dfa.numStates()
+
+ // We need to add the new state
+ //
+ proposed.stateNumber = dfa.states.Len()
configs.SetReadOnly(true)
proposed.configs = configs
- dfa.setState(hash, proposed)
+ dfa.states.Put(proposed)
}
if !suppressEdge {
dfa.setS0(proposed)
diff --git a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/ll1_analyzer.go b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/ll1_analyzer.go
similarity index 87%
rename from tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/ll1_analyzer.go
rename to tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/ll1_analyzer.go
index 6ffb37de6..76689615a 100644
--- a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/ll1_analyzer.go
+++ b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/ll1_analyzer.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
@@ -14,14 +14,15 @@ func NewLL1Analyzer(atn *ATN) *LL1Analyzer {
return la
}
-//* Special value added to the lookahead sets to indicate that we hit
-// a predicate during analysis if {@code seeThruPreds==false}.
-///
+// - Special value added to the lookahead sets to indicate that we hit
+// a predicate during analysis if {@code seeThruPreds==false}.
+//
+// /
const (
LL1AnalyzerHitPred = TokenInvalidType
)
-//*
+// *
// Calculates the SLL(1) expected lookahead set for each outgoing transition
// of an {@link ATNState}. The returned array has one element for each
// outgoing transition in {@code s}. If the closure from transition
@@ -38,7 +39,7 @@ func (la *LL1Analyzer) getDecisionLookahead(s ATNState) []*IntervalSet {
look := make([]*IntervalSet, count)
for alt := 0; alt < count; alt++ {
look[alt] = NewIntervalSet()
- lookBusy := newArray2DHashSet(nil, nil)
+ lookBusy := NewJStore[ATNConfig, Comparator[ATNConfig]](aConfEqInst)
seeThruPreds := false // fail to get lookahead upon pred
la.look1(s.GetTransitions()[alt].getTarget(), nil, BasePredictionContextEMPTY, look[alt], lookBusy, NewBitSet(), seeThruPreds, false)
// Wipe out lookahead for la alternative if we found nothing
@@ -50,7 +51,7 @@ func (la *LL1Analyzer) getDecisionLookahead(s ATNState) []*IntervalSet {
return look
}
-//*
+// *
// Compute set of tokens that can follow {@code s} in the ATN in the
// specified {@code ctx}.
//
@@ -67,7 +68,7 @@ func (la *LL1Analyzer) getDecisionLookahead(s ATNState) []*IntervalSet {
//
// @return The set of tokens that can follow {@code s} in the ATN in the
// specified {@code ctx}.
-///
+// /
func (la *LL1Analyzer) Look(s, stopState ATNState, ctx RuleContext) *IntervalSet {
r := NewIntervalSet()
seeThruPreds := true // ignore preds get all lookahead
@@ -75,7 +76,7 @@ func (la *LL1Analyzer) Look(s, stopState ATNState, ctx RuleContext) *IntervalSet
if ctx != nil {
lookContext = predictionContextFromRuleContext(s.GetATN(), ctx)
}
- la.look1(s, stopState, lookContext, r, newArray2DHashSet(nil, nil), NewBitSet(), seeThruPreds, true)
+ la.look1(s, stopState, lookContext, r, NewJStore[ATNConfig, Comparator[ATNConfig]](aConfEqInst), NewBitSet(), seeThruPreds, true)
return r
}
@@ -109,14 +110,14 @@ func (la *LL1Analyzer) Look(s, stopState ATNState, ctx RuleContext) *IntervalSet
// outermost context is reached. This parameter has no effect if {@code ctx}
// is {@code nil}.
-func (la *LL1Analyzer) look2(s, stopState ATNState, ctx PredictionContext, look *IntervalSet, lookBusy Set, calledRuleStack *BitSet, seeThruPreds, addEOF bool, i int) {
+func (la *LL1Analyzer) look2(s, stopState ATNState, ctx PredictionContext, look *IntervalSet, lookBusy *JStore[ATNConfig, Comparator[ATNConfig]], calledRuleStack *BitSet, seeThruPreds, addEOF bool, i int) {
returnState := la.atn.states[ctx.getReturnState(i)]
la.look1(returnState, stopState, ctx.GetParent(i), look, lookBusy, calledRuleStack, seeThruPreds, addEOF)
}
-func (la *LL1Analyzer) look1(s, stopState ATNState, ctx PredictionContext, look *IntervalSet, lookBusy Set, calledRuleStack *BitSet, seeThruPreds, addEOF bool) {
+func (la *LL1Analyzer) look1(s, stopState ATNState, ctx PredictionContext, look *IntervalSet, lookBusy *JStore[ATNConfig, Comparator[ATNConfig]], calledRuleStack *BitSet, seeThruPreds, addEOF bool) {
c := NewBaseATNConfig6(s, 0, ctx)
@@ -124,8 +125,11 @@ func (la *LL1Analyzer) look1(s, stopState ATNState, ctx PredictionContext, look
return
}
- lookBusy.Add(c)
+ _, present := lookBusy.Put(c)
+ if present {
+ return
+ }
if s == stopState {
if ctx == nil {
look.addOne(TokenEpsilon)
@@ -198,7 +202,7 @@ func (la *LL1Analyzer) look1(s, stopState ATNState, ctx PredictionContext, look
}
}
-func (la *LL1Analyzer) look3(stopState ATNState, ctx PredictionContext, look *IntervalSet, lookBusy Set, calledRuleStack *BitSet, seeThruPreds, addEOF bool, t1 *RuleTransition) {
+func (la *LL1Analyzer) look3(stopState ATNState, ctx PredictionContext, look *IntervalSet, lookBusy *JStore[ATNConfig, Comparator[ATNConfig]], calledRuleStack *BitSet, seeThruPreds, addEOF bool, t1 *RuleTransition) {
newContext := SingletonBasePredictionContextCreate(ctx, t1.followState.GetStateNumber())
diff --git a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/parser.go b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/parser.go
similarity index 99%
rename from tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/parser.go
rename to tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/parser.go
index 2ab2f5605..d26bf0639 100644
--- a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/parser.go
+++ b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/parser.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
@@ -91,7 +91,6 @@ func NewBaseParser(input TokenStream) *BaseParser {
// bypass alternatives.
//
// @see ATNDeserializationOptions//isGenerateRuleBypassTransitions()
-//
var bypassAltsAtnCache = make(map[string]int)
// reset the parser's state//
@@ -230,7 +229,6 @@ func (p *BaseParser) GetParseListeners() []ParseTreeListener {
// @param listener the listener to add
//
// @panics nilPointerException if {@code} listener is {@code nil}
-//
func (p *BaseParser) AddParseListener(listener ParseTreeListener) {
if listener == nil {
panic("listener")
@@ -241,13 +239,11 @@ func (p *BaseParser) AddParseListener(listener ParseTreeListener) {
p.parseListeners = append(p.parseListeners, listener)
}
-//
// Remove {@code listener} from the list of parse listeners.
//
//
If {@code listener} is {@code nil} or has not been added as a parse
// listener, p.method does nothing.
// @param listener the listener to remove
-//
func (p *BaseParser) RemoveParseListener(listener ParseTreeListener) {
if p.parseListeners != nil {
@@ -289,11 +285,9 @@ func (p *BaseParser) TriggerEnterRuleEvent() {
}
}
-//
// Notify any parse listeners of an exit rule event.
//
// @see //addParseListener
-//
func (p *BaseParser) TriggerExitRuleEvent() {
if p.parseListeners != nil {
// reverse order walk of listeners
@@ -330,7 +324,6 @@ func (p *BaseParser) setTokenFactory(factory TokenFactory) {
//
// @panics UnsupportedOperationException if the current parser does not
// implement the {@link //getSerializedATN()} method.
-//
func (p *BaseParser) GetATNWithBypassAlts() {
// TODO
@@ -402,7 +395,6 @@ func (p *BaseParser) SetTokenStream(input TokenStream) {
// Match needs to return the current input symbol, which gets put
// into the label for the associated token ref e.g., x=ID.
-//
func (p *BaseParser) GetCurrentToken() Token {
return p.input.LT(1)
}
@@ -624,7 +616,6 @@ func (p *BaseParser) IsExpectedToken(symbol int) bool {
// respectively.
//
// @see ATN//getExpectedTokens(int, RuleContext)
-//
func (p *BaseParser) GetExpectedTokens() *IntervalSet {
return p.Interpreter.atn.getExpectedTokens(p.state, p.ctx)
}
@@ -686,7 +677,7 @@ func (p *BaseParser) GetDFAStrings() string {
func (p *BaseParser) DumpDFA() {
seenOne := false
for _, dfa := range p.Interpreter.decisionToDFA {
- if dfa.numStates() > 0 {
+ if dfa.states.Len() > 0 {
if seenOne {
fmt.Println()
}
@@ -703,7 +694,6 @@ func (p *BaseParser) GetSourceName() string {
// During a parse is sometimes useful to listen in on the rule entry and exit
// events as well as token Matches. p.is for quick and dirty debugging.
-//
func (p *BaseParser) SetTrace(trace *TraceListener) {
if trace == nil {
p.RemoveParseListener(p.tracer)
diff --git a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/parser_atn_simulator.go b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/parser_atn_simulator.go
similarity index 94%
rename from tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/parser_atn_simulator.go
rename to tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/parser_atn_simulator.go
index 888d51297..8bcc46a0d 100644
--- a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/parser_atn_simulator.go
+++ b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/parser_atn_simulator.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
@@ -11,11 +11,11 @@ import (
)
var (
- ParserATNSimulatorDebug = false
- ParserATNSimulatorListATNDecisions = false
- ParserATNSimulatorDFADebug = false
- ParserATNSimulatorRetryDebug = false
- TurnOffLRLoopEntryBranchOpt = false
+ ParserATNSimulatorDebug = false
+ ParserATNSimulatorTraceATNSim = false
+ ParserATNSimulatorDFADebug = false
+ ParserATNSimulatorRetryDebug = false
+ TurnOffLRLoopEntryBranchOpt = false
)
type ParserATNSimulator struct {
@@ -70,8 +70,8 @@ func (p *ParserATNSimulator) reset() {
}
func (p *ParserATNSimulator) AdaptivePredict(input TokenStream, decision int, outerContext ParserRuleContext) int {
- if ParserATNSimulatorDebug || ParserATNSimulatorListATNDecisions {
- fmt.Println("AdaptivePredict decision " + strconv.Itoa(decision) +
+ if ParserATNSimulatorDebug || ParserATNSimulatorTraceATNSim {
+ fmt.Println("adaptivePredict decision " + strconv.Itoa(decision) +
" exec LA(1)==" + p.getLookaheadName(input) +
" line " + strconv.Itoa(input.LT(1).GetLine()) + ":" +
strconv.Itoa(input.LT(1).GetColumn()))
@@ -111,15 +111,15 @@ func (p *ParserATNSimulator) AdaptivePredict(input TokenStream, decision int, ou
if s0 == nil {
if outerContext == nil {
- outerContext = RuleContextEmpty
+ outerContext = ParserRuleContextEmpty
}
- if ParserATNSimulatorDebug || ParserATNSimulatorListATNDecisions {
+ if ParserATNSimulatorDebug {
fmt.Println("predictATN decision " + strconv.Itoa(dfa.decision) +
" exec LA(1)==" + p.getLookaheadName(input) +
", outerContext=" + outerContext.String(p.parser.GetRuleNames(), nil))
}
fullCtx := false
- s0Closure := p.computeStartState(dfa.atnStartState, RuleContextEmpty, fullCtx)
+ s0Closure := p.computeStartState(dfa.atnStartState, ParserRuleContextEmpty, fullCtx)
p.atn.stateMu.Lock()
if dfa.getPrecedenceDfa() {
@@ -174,17 +174,18 @@ func (p *ParserATNSimulator) AdaptivePredict(input TokenStream, decision int, ou
// Reporting insufficient predicates
// cover these cases:
-// dead end
-// single alt
-// single alt + preds
-// conflict
-// conflict + preds
//
+// dead end
+// single alt
+// single alt + preds
+// conflict
+// conflict + preds
func (p *ParserATNSimulator) execATN(dfa *DFA, s0 *DFAState, input TokenStream, startIndex int, outerContext ParserRuleContext) int {
- if ParserATNSimulatorDebug || ParserATNSimulatorListATNDecisions {
+ if ParserATNSimulatorDebug || ParserATNSimulatorTraceATNSim {
fmt.Println("execATN decision " + strconv.Itoa(dfa.decision) +
- " exec LA(1)==" + p.getLookaheadName(input) +
+ ", DFA state " + s0.String() +
+ ", LA(1)==" + p.getLookaheadName(input) +
" line " + strconv.Itoa(input.LT(1).GetLine()) + ":" + strconv.Itoa(input.LT(1).GetColumn()))
}
@@ -277,8 +278,6 @@ func (p *ParserATNSimulator) execATN(dfa *DFA, s0 *DFAState, input TokenStream,
t = input.LA(1)
}
}
-
- panic("Should not have reached p state")
}
// Get an existing target state for an edge in the DFA. If the target state
@@ -384,7 +383,7 @@ func (p *ParserATNSimulator) predicateDFAState(dfaState *DFAState, decisionState
// comes back with reach.uniqueAlt set to a valid alt
func (p *ParserATNSimulator) execATNWithFullContext(dfa *DFA, D *DFAState, s0 ATNConfigSet, input TokenStream, startIndex int, outerContext ParserRuleContext) int {
- if ParserATNSimulatorDebug || ParserATNSimulatorListATNDecisions {
+ if ParserATNSimulatorDebug || ParserATNSimulatorTraceATNSim {
fmt.Println("execATNWithFullContext " + s0.String())
}
@@ -492,9 +491,6 @@ func (p *ParserATNSimulator) execATNWithFullContext(dfa *DFA, D *DFAState, s0 AT
}
func (p *ParserATNSimulator) computeReachSet(closure ATNConfigSet, t int, fullCtx bool) ATNConfigSet {
- if ParserATNSimulatorDebug {
- fmt.Println("in computeReachSet, starting closure: " + closure.String())
- }
if p.mergeCache == nil {
p.mergeCache = NewDoubleDict()
}
@@ -570,7 +566,7 @@ func (p *ParserATNSimulator) computeReachSet(closure ATNConfigSet, t int, fullCt
//
if reach == nil {
reach = NewBaseATNConfigSet(fullCtx)
- closureBusy := newArray2DHashSet(nil, nil)
+ closureBusy := NewJStore[ATNConfig, Comparator[ATNConfig]](aConfEqInst)
treatEOFAsEpsilon := t == TokenEOF
amount := len(intermediate.configs)
for k := 0; k < amount; k++ {
@@ -610,6 +606,11 @@ func (p *ParserATNSimulator) computeReachSet(closure ATNConfigSet, t int, fullCt
reach.Add(skippedStopStates[l], p.mergeCache)
}
}
+
+ if ParserATNSimulatorTraceATNSim {
+ fmt.Println("computeReachSet " + closure.String() + " -> " + reach.String())
+ }
+
if len(reach.GetItems()) == 0 {
return nil
}
@@ -617,7 +618,6 @@ func (p *ParserATNSimulator) computeReachSet(closure ATNConfigSet, t int, fullCt
return reach
}
-//
// Return a configuration set containing only the configurations from
// {@code configs} which are in a {@link RuleStopState}. If all
// configurations in {@code configs} are already in a rule stop state, p
@@ -636,7 +636,6 @@ func (p *ParserATNSimulator) computeReachSet(closure ATNConfigSet, t int, fullCt
// @return {@code configs} if all configurations in {@code configs} are in a
// rule stop state, otherwise return a Newconfiguration set containing only
// the configurations from {@code configs} which are in a rule stop state
-//
func (p *ParserATNSimulator) removeAllConfigsNotInRuleStopState(configs ATNConfigSet, lookToEndOfRule bool) ATNConfigSet {
if PredictionModeallConfigsInRuleStopStates(configs) {
return configs
@@ -662,16 +661,20 @@ func (p *ParserATNSimulator) computeStartState(a ATNState, ctx RuleContext, full
// always at least the implicit call to start rule
initialContext := predictionContextFromRuleContext(p.atn, ctx)
configs := NewBaseATNConfigSet(fullCtx)
+ if ParserATNSimulatorDebug || ParserATNSimulatorTraceATNSim {
+ fmt.Println("computeStartState from ATN state " + a.String() +
+ " initialContext=" + initialContext.String())
+ }
+
for i := 0; i < len(a.GetTransitions()); i++ {
target := a.GetTransitions()[i].getTarget()
c := NewBaseATNConfig6(target, i+1, initialContext)
- closureBusy := newArray2DHashSet(nil, nil)
+ closureBusy := NewJStore[ATNConfig, Comparator[ATNConfig]](atnConfCompInst)
p.closure(c, configs, closureBusy, true, fullCtx, false)
}
return configs
}
-//
// This method transforms the start state computed by
// {@link //computeStartState} to the special start state used by a
// precedence DFA for a particular precedence value. The transformation
@@ -726,7 +729,6 @@ func (p *ParserATNSimulator) computeStartState(a ATNState, ctx RuleContext, full
// @return The transformed configuration set representing the start state
// for a precedence DFA at a particular precedence level (determined by
// calling {@link Parser//getPrecedence}).
-//
func (p *ParserATNSimulator) applyPrecedenceFilter(configs ATNConfigSet) ATNConfigSet {
statesFromAlt1 := make(map[int]PredictionContext)
@@ -760,7 +762,7 @@ func (p *ParserATNSimulator) applyPrecedenceFilter(configs ATNConfigSet) ATNConf
// (basically a graph subtraction algorithm).
if !config.getPrecedenceFilterSuppressed() {
context := statesFromAlt1[config.GetState().GetStateNumber()]
- if context != nil && context.equals(config.GetContext()) {
+ if context != nil && context.Equals(config.GetContext()) {
// eliminated
continue
}
@@ -824,7 +826,6 @@ func (p *ParserATNSimulator) getPredicatePredictions(ambigAlts *BitSet, altToPre
return pairs
}
-//
// This method is used to improve the localization of error messages by
// choosing an alternative rather than panicing a
// {@link NoViableAltException} in particular prediction scenarios where the
@@ -869,7 +870,6 @@ func (p *ParserATNSimulator) getPredicatePredictions(ambigAlts *BitSet, altToPre
// @return The value to return from {@link //AdaptivePredict}, or
// {@link ATN//INVALID_ALT_NUMBER} if a suitable alternative was not
// identified and {@link //AdaptivePredict} should Report an error instead.
-//
func (p *ParserATNSimulator) getSynValidOrSemInvalidAltThatFinishedDecisionEntryRule(configs ATNConfigSet, outerContext ParserRuleContext) int {
cfgs := p.splitAccordingToSemanticValidity(configs, outerContext)
semValidConfigs := cfgs[0]
@@ -938,11 +938,11 @@ func (p *ParserATNSimulator) splitAccordingToSemanticValidity(configs ATNConfigS
}
// Look through a list of predicate/alt pairs, returning alts for the
-// pairs that win. A {@code NONE} predicate indicates an alt containing an
-// unpredicated config which behaves as "always true." If !complete
-// then we stop at the first predicate that evaluates to true. This
-// includes pairs with nil predicates.
//
+// pairs that win. A {@code NONE} predicate indicates an alt containing an
+// unpredicated config which behaves as "always true." If !complete
+// then we stop at the first predicate that evaluates to true. This
+// includes pairs with nil predicates.
func (p *ParserATNSimulator) evalSemanticContext(predPredictions []*PredPrediction, outerContext ParserRuleContext, complete bool) *BitSet {
predictions := NewBitSet()
for i := 0; i < len(predPredictions); i++ {
@@ -972,16 +972,16 @@ func (p *ParserATNSimulator) evalSemanticContext(predPredictions []*PredPredicti
return predictions
}
-func (p *ParserATNSimulator) closure(config ATNConfig, configs ATNConfigSet, closureBusy Set, collectPredicates, fullCtx, treatEOFAsEpsilon bool) {
+func (p *ParserATNSimulator) closure(config ATNConfig, configs ATNConfigSet, closureBusy *JStore[ATNConfig, Comparator[ATNConfig]], collectPredicates, fullCtx, treatEOFAsEpsilon bool) {
initialDepth := 0
p.closureCheckingStopState(config, configs, closureBusy, collectPredicates,
fullCtx, initialDepth, treatEOFAsEpsilon)
}
-func (p *ParserATNSimulator) closureCheckingStopState(config ATNConfig, configs ATNConfigSet, closureBusy Set, collectPredicates, fullCtx bool, depth int, treatEOFAsEpsilon bool) {
- if ParserATNSimulatorDebug {
+func (p *ParserATNSimulator) closureCheckingStopState(config ATNConfig, configs ATNConfigSet, closureBusy *JStore[ATNConfig, Comparator[ATNConfig]], collectPredicates, fullCtx bool, depth int, treatEOFAsEpsilon bool) {
+ if ParserATNSimulatorTraceATNSim {
fmt.Println("closure(" + config.String() + ")")
- fmt.Println("configs(" + configs.String() + ")")
+ //fmt.Println("configs(" + configs.String() + ")")
if config.GetReachesIntoOuterContext() > 50 {
panic("problem")
}
@@ -1031,7 +1031,7 @@ func (p *ParserATNSimulator) closureCheckingStopState(config ATNConfig, configs
}
// Do the actual work of walking epsilon edges//
-func (p *ParserATNSimulator) closureWork(config ATNConfig, configs ATNConfigSet, closureBusy Set, collectPredicates, fullCtx bool, depth int, treatEOFAsEpsilon bool) {
+func (p *ParserATNSimulator) closureWork(config ATNConfig, configs ATNConfigSet, closureBusy *JStore[ATNConfig, Comparator[ATNConfig]], collectPredicates, fullCtx bool, depth int, treatEOFAsEpsilon bool) {
state := config.GetState()
// optimization
if !state.GetEpsilonOnlyTransitions() {
@@ -1066,7 +1066,8 @@ func (p *ParserATNSimulator) closureWork(config ATNConfig, configs ATNConfigSet,
c.SetReachesIntoOuterContext(c.GetReachesIntoOuterContext() + 1)
- if closureBusy.Add(c) != c {
+ _, present := closureBusy.Put(c)
+ if present {
// avoid infinite recursion for right-recursive rules
continue
}
@@ -1077,9 +1078,13 @@ func (p *ParserATNSimulator) closureWork(config ATNConfig, configs ATNConfigSet,
fmt.Println("dips into outer ctx: " + c.String())
}
} else {
- if !t.getIsEpsilon() && closureBusy.Add(c) != c {
- // avoid infinite recursion for EOF* and EOF+
- continue
+
+ if !t.getIsEpsilon() {
+ _, present := closureBusy.Put(c)
+ if present {
+ // avoid infinite recursion for EOF* and EOF+
+ continue
+ }
}
if _, ok := t.(*RuleTransition); ok {
// latch when newDepth goes negative - once we step out of the entry context we can't return
@@ -1104,7 +1109,16 @@ func (p *ParserATNSimulator) canDropLoopEntryEdgeInLeftRecursiveRule(config ATNC
// left-recursion elimination. For efficiency, also check if
// the context has an empty stack case. If so, it would mean
// global FOLLOW so we can't perform optimization
- if startLoop, ok := _p.(StarLoopEntryState); !ok || !startLoop.precedenceRuleDecision || config.GetContext().isEmpty() || config.GetContext().hasEmptyPath() {
+ if _p.GetStateType() != ATNStateStarLoopEntry {
+ return false
+ }
+ startLoop, ok := _p.(*StarLoopEntryState)
+ if !ok {
+ return false
+ }
+ if !startLoop.precedenceRuleDecision ||
+ config.GetContext().isEmpty() ||
+ config.GetContext().hasEmptyPath() {
return false
}
@@ -1117,8 +1131,8 @@ func (p *ParserATNSimulator) canDropLoopEntryEdgeInLeftRecursiveRule(config ATNC
return false
}
}
-
- decisionStartState := _p.(BlockStartState).GetTransitions()[0].getTarget().(BlockStartState)
+ x := _p.GetTransitions()[0].getTarget()
+ decisionStartState := x.(BlockStartState)
blockEndStateNum := decisionStartState.getEndState().stateNumber
blockEndState := p.atn.states[blockEndStateNum].(*BlockEndState)
@@ -1355,13 +1369,12 @@ func (p *ParserATNSimulator) GetTokenName(t int) string {
return "EOF"
}
- if p.parser != nil && p.parser.GetLiteralNames() != nil {
- if t >= len(p.parser.GetLiteralNames()) {
- fmt.Println(strconv.Itoa(t) + " ttype out of range: " + strings.Join(p.parser.GetLiteralNames(), ","))
- // fmt.Println(p.parser.GetInputStream().(TokenStream).GetAllText()) // p seems incorrect
- } else {
- return p.parser.GetLiteralNames()[t] + "<" + strconv.Itoa(t) + ">"
- }
+ if p.parser != nil && p.parser.GetLiteralNames() != nil && t < len(p.parser.GetLiteralNames()) {
+ return p.parser.GetLiteralNames()[t] + "<" + strconv.Itoa(t) + ">"
+ }
+
+ if p.parser != nil && p.parser.GetLiteralNames() != nil && t < len(p.parser.GetSymbolicNames()) {
+ return p.parser.GetSymbolicNames()[t] + "<" + strconv.Itoa(t) + ">"
}
return strconv.Itoa(t)
@@ -1372,9 +1385,9 @@ func (p *ParserATNSimulator) getLookaheadName(input TokenStream) string {
}
// Used for debugging in AdaptivePredict around execATN but I cut
-// it out for clarity now that alg. works well. We can leave p
-// "dead" code for a bit.
//
+// it out for clarity now that alg. works well. We can leave p
+// "dead" code for a bit.
func (p *ParserATNSimulator) dumpDeadEndConfigs(nvae *NoViableAltException) {
panic("Not implemented")
@@ -1421,7 +1434,6 @@ func (p *ParserATNSimulator) getUniqueAlt(configs ATNConfigSet) int {
return alt
}
-//
// Add an edge to the DFA, if possible. This method calls
// {@link //addDFAState} to ensure the {@code to} state is present in the
// DFA. If {@code from} is {@code nil}, or if {@code t} is outside the
@@ -1440,7 +1452,6 @@ func (p *ParserATNSimulator) getUniqueAlt(configs ATNConfigSet) int {
// @return If {@code to} is {@code nil}, p method returns {@code nil}
// otherwise p method returns the result of calling {@link //addDFAState}
// on {@code to}
-//
func (p *ParserATNSimulator) addDFAEdge(dfa *DFA, from *DFAState, t int, to *DFAState) *DFAState {
if ParserATNSimulatorDebug {
fmt.Println("EDGE " + from.String() + " -> " + to.String() + " upon " + p.GetTokenName(t))
@@ -1472,7 +1483,6 @@ func (p *ParserATNSimulator) addDFAEdge(dfa *DFA, from *DFAState, t int, to *DFA
return to
}
-//
// Add state {@code D} to the DFA if it is not already present, and return
// the actual instance stored in the DFA. If a state equivalent to {@code D}
// is already in the DFA, the existing state is returned. Otherwise p
@@ -1486,25 +1496,30 @@ func (p *ParserATNSimulator) addDFAEdge(dfa *DFA, from *DFAState, t int, to *DFA
// @return The state stored in the DFA. This will be either the existing
// state if {@code D} is already in the DFA, or {@code D} itself if the
// state was not already present.
-//
func (p *ParserATNSimulator) addDFAState(dfa *DFA, d *DFAState) *DFAState {
if d == ATNSimulatorError {
return d
}
- hash := d.hash()
- existing, ok := dfa.getState(hash)
- if ok {
+ existing, present := dfa.states.Get(d)
+ if present {
+ if ParserATNSimulatorTraceATNSim {
+ fmt.Print("addDFAState " + d.String() + " exists")
+ }
return existing
}
- d.stateNumber = dfa.numStates()
+
+ // The state was not present, so update it with configs
+ //
+ d.stateNumber = dfa.states.Len()
if !d.configs.ReadOnly() {
d.configs.OptimizeConfigs(p.BaseATNSimulator)
d.configs.SetReadOnly(true)
}
- dfa.setState(hash, d)
- if ParserATNSimulatorDebug {
- fmt.Println("adding NewDFA state: " + d.String())
+ dfa.states.Put(d)
+ if ParserATNSimulatorTraceATNSim {
+ fmt.Println("addDFAState new " + d.String())
}
+
return d
}
diff --git a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/parser_rule_context.go b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/parser_rule_context.go
similarity index 98%
rename from tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/parser_rule_context.go
rename to tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/parser_rule_context.go
index 49cd10c5f..1c8cee747 100644
--- a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/parser_rule_context.go
+++ b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/parser_rule_context.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
@@ -340,7 +340,7 @@ func (prc *BaseParserRuleContext) String(ruleNames []string, stop RuleContext) s
return s
}
-var RuleContextEmpty = NewBaseParserRuleContext(nil, -1)
+var ParserRuleContextEmpty = NewBaseParserRuleContext(nil, -1)
type InterpreterRuleContext interface {
ParserRuleContext
diff --git a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/prediction_context.go b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/prediction_context.go
similarity index 81%
rename from tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/prediction_context.go
rename to tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/prediction_context.go
index 9fdfd52b2..ba62af361 100644
--- a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/prediction_context.go
+++ b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/prediction_context.go
@@ -1,10 +1,12 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
package antlr
import (
+ "fmt"
+ "golang.org/x/exp/slices"
"strconv"
)
@@ -26,10 +28,10 @@ var (
)
type PredictionContext interface {
- hash() int
+ Hash() int
+ Equals(interface{}) bool
GetParent(int) PredictionContext
getReturnState(int) int
- equals(PredictionContext) bool
length() int
isEmpty() bool
hasEmptyPath() bool
@@ -53,7 +55,7 @@ func (b *BasePredictionContext) isEmpty() bool {
func calculateHash(parent PredictionContext, returnState int) int {
h := murmurInit(1)
- h = murmurUpdate(h, parent.hash())
+ h = murmurUpdate(h, parent.Hash())
h = murmurUpdate(h, returnState)
return murmurFinish(h, 2)
}
@@ -86,7 +88,6 @@ func NewPredictionContextCache() *PredictionContextCache {
// Add a context to the cache and return it. If the context already exists,
// return that one instead and do not add a Newcontext to the cache.
// Protect shared cache from unsafe thread access.
-//
func (p *PredictionContextCache) add(ctx PredictionContext) PredictionContext {
if ctx == BasePredictionContextEMPTY {
return BasePredictionContextEMPTY
@@ -160,28 +161,28 @@ func (b *BaseSingletonPredictionContext) hasEmptyPath() bool {
return b.returnState == BasePredictionContextEmptyReturnState
}
-func (b *BaseSingletonPredictionContext) equals(other PredictionContext) bool {
+func (b *BaseSingletonPredictionContext) Hash() int {
+ return b.cachedHash
+}
+
+func (b *BaseSingletonPredictionContext) Equals(other interface{}) bool {
if b == other {
return true
- } else if _, ok := other.(*BaseSingletonPredictionContext); !ok {
+ }
+ if _, ok := other.(*BaseSingletonPredictionContext); !ok {
return false
- } else if b.hash() != other.hash() {
- return false // can't be same if hash is different
}
otherP := other.(*BaseSingletonPredictionContext)
- if b.returnState != other.getReturnState(0) {
+ if b.returnState != otherP.getReturnState(0) {
return false
- } else if b.parentCtx == nil {
+ }
+ if b.parentCtx == nil {
return otherP.parentCtx == nil
}
- return b.parentCtx.equals(otherP.parentCtx)
-}
-
-func (b *BaseSingletonPredictionContext) hash() int {
- return b.cachedHash
+ return b.parentCtx.Equals(otherP.parentCtx)
}
func (b *BaseSingletonPredictionContext) String() string {
@@ -215,7 +216,7 @@ func NewEmptyPredictionContext() *EmptyPredictionContext {
p := new(EmptyPredictionContext)
p.BaseSingletonPredictionContext = NewBaseSingletonPredictionContext(nil, BasePredictionContextEmptyReturnState)
-
+ p.cachedHash = calculateEmptyHash()
return p
}
@@ -231,7 +232,11 @@ func (e *EmptyPredictionContext) getReturnState(index int) int {
return e.returnState
}
-func (e *EmptyPredictionContext) equals(other PredictionContext) bool {
+func (e *EmptyPredictionContext) Hash() int {
+ return e.cachedHash
+}
+
+func (e *EmptyPredictionContext) Equals(other interface{}) bool {
return e == other
}
@@ -254,7 +259,7 @@ func NewArrayPredictionContext(parents []PredictionContext, returnStates []int)
hash := murmurInit(1)
for _, parent := range parents {
- hash = murmurUpdate(hash, parent.hash())
+ hash = murmurUpdate(hash, parent.Hash())
}
for _, returnState := range returnStates {
@@ -298,18 +303,31 @@ func (a *ArrayPredictionContext) getReturnState(index int) int {
return a.returnStates[index]
}
-func (a *ArrayPredictionContext) equals(other PredictionContext) bool {
- if _, ok := other.(*ArrayPredictionContext); !ok {
+// Equals is the default comparison function for ArrayPredictionContext when no specialized
+// implementation is needed for a collection
+func (a *ArrayPredictionContext) Equals(o interface{}) bool {
+ if a == o {
+ return true
+ }
+ other, ok := o.(*ArrayPredictionContext)
+ if !ok {
return false
- } else if a.cachedHash != other.hash() {
+ }
+ if a.cachedHash != other.Hash() {
return false // can't be same if hash is different
- } else {
- otherP := other.(*ArrayPredictionContext)
- return &a.returnStates == &otherP.returnStates && &a.parents == &otherP.parents
}
+
+ // Must compare the actual array elements and not just the array address
+ //
+ return slices.Equal(a.returnStates, other.returnStates) &&
+ slices.EqualFunc(a.parents, other.parents, func(x, y PredictionContext) bool {
+ return x.Equals(y)
+ })
}
-func (a *ArrayPredictionContext) hash() int {
+// Hash is the default hash function for ArrayPredictionContext when no specialized
+// implementation is needed for a collection
+func (a *ArrayPredictionContext) Hash() int {
return a.BasePredictionContext.cachedHash
}
@@ -343,11 +361,11 @@ func (a *ArrayPredictionContext) String() string {
// /
func predictionContextFromRuleContext(a *ATN, outerContext RuleContext) PredictionContext {
if outerContext == nil {
- outerContext = RuleContextEmpty
+ outerContext = ParserRuleContextEmpty
}
// if we are in RuleContext of start rule, s, then BasePredictionContext
// is EMPTY. Nobody called us. (if we are empty, return empty)
- if outerContext.GetParent() == nil || outerContext == RuleContextEmpty {
+ if outerContext.GetParent() == nil || outerContext == ParserRuleContextEmpty {
return BasePredictionContextEMPTY
}
// If we have a parent, convert it to a BasePredictionContext graph
@@ -359,11 +377,20 @@ func predictionContextFromRuleContext(a *ATN, outerContext RuleContext) Predicti
}
func merge(a, b PredictionContext, rootIsWildcard bool, mergeCache *DoubleDict) PredictionContext {
- // share same graph if both same
- if a == b {
+
+ // Share same graph if both same
+ //
+ if a == b || a.Equals(b) {
return a
}
+ // In Java, EmptyPredictionContext inherits from SingletonPredictionContext, and so the test
+ // in java for SingletonPredictionContext will succeed and a new ArrayPredictionContext will be created
+ // from it.
+ // In go, EmptyPredictionContext does not equate to SingletonPredictionContext and so that conversion
+ // will fail. We need to test for both Empty and Singleton and create an ArrayPredictionContext from
+ // either of them.
+
ac, ok1 := a.(*BaseSingletonPredictionContext)
bc, ok2 := b.(*BaseSingletonPredictionContext)
@@ -380,17 +407,32 @@ func merge(a, b PredictionContext, rootIsWildcard bool, mergeCache *DoubleDict)
return b
}
}
- // convert singleton so both are arrays to normalize
- if _, ok := a.(*BaseSingletonPredictionContext); ok {
- a = NewArrayPredictionContext([]PredictionContext{a.GetParent(0)}, []int{a.getReturnState(0)})
+
+ // Convert Singleton or Empty so both are arrays to normalize - We should not use the existing parameters
+ // here.
+ //
+ // TODO: I think that maybe the Prediction Context structs should be redone as there is a chance we will see this mess again - maybe redo the logic here
+
+ var arp, arb *ArrayPredictionContext
+ var ok bool
+ if arp, ok = a.(*ArrayPredictionContext); ok {
+ } else if _, ok = a.(*BaseSingletonPredictionContext); ok {
+ arp = NewArrayPredictionContext([]PredictionContext{a.GetParent(0)}, []int{a.getReturnState(0)})
+ } else if _, ok = a.(*EmptyPredictionContext); ok {
+ arp = NewArrayPredictionContext([]PredictionContext{}, []int{})
}
- if _, ok := b.(*BaseSingletonPredictionContext); ok {
- b = NewArrayPredictionContext([]PredictionContext{b.GetParent(0)}, []int{b.getReturnState(0)})
+
+ if arb, ok = b.(*ArrayPredictionContext); ok {
+ } else if _, ok = b.(*BaseSingletonPredictionContext); ok {
+ arb = NewArrayPredictionContext([]PredictionContext{b.GetParent(0)}, []int{b.getReturnState(0)})
+ } else if _, ok = b.(*EmptyPredictionContext); ok {
+ arb = NewArrayPredictionContext([]PredictionContext{}, []int{})
}
- return mergeArrays(a.(*ArrayPredictionContext), b.(*ArrayPredictionContext), rootIsWildcard, mergeCache)
+
+ // Both arp and arb
+ return mergeArrays(arp, arb, rootIsWildcard, mergeCache)
}
-//
// Merge two {@link SingletonBasePredictionContext} instances.
//
//
Stack tops equal, parents merge is same return left graph.
@@ -423,11 +465,11 @@ func merge(a, b PredictionContext, rootIsWildcard bool, mergeCache *DoubleDict)
// /
func mergeSingletons(a, b *BaseSingletonPredictionContext, rootIsWildcard bool, mergeCache *DoubleDict) PredictionContext {
if mergeCache != nil {
- previous := mergeCache.Get(a.hash(), b.hash())
+ previous := mergeCache.Get(a.Hash(), b.Hash())
if previous != nil {
return previous.(PredictionContext)
}
- previous = mergeCache.Get(b.hash(), a.hash())
+ previous = mergeCache.Get(b.Hash(), a.Hash())
if previous != nil {
return previous.(PredictionContext)
}
@@ -436,7 +478,7 @@ func mergeSingletons(a, b *BaseSingletonPredictionContext, rootIsWildcard bool,
rootMerge := mergeRoot(a, b, rootIsWildcard)
if rootMerge != nil {
if mergeCache != nil {
- mergeCache.set(a.hash(), b.hash(), rootMerge)
+ mergeCache.set(a.Hash(), b.Hash(), rootMerge)
}
return rootMerge
}
@@ -456,7 +498,7 @@ func mergeSingletons(a, b *BaseSingletonPredictionContext, rootIsWildcard bool,
// Newjoined parent so create Newsingleton pointing to it, a'
spc := SingletonBasePredictionContextCreate(parent, a.returnState)
if mergeCache != nil {
- mergeCache.set(a.hash(), b.hash(), spc)
+ mergeCache.set(a.Hash(), b.Hash(), spc)
}
return spc
}
@@ -478,7 +520,7 @@ func mergeSingletons(a, b *BaseSingletonPredictionContext, rootIsWildcard bool,
parents := []PredictionContext{singleParent, singleParent}
apc := NewArrayPredictionContext(parents, payloads)
if mergeCache != nil {
- mergeCache.set(a.hash(), b.hash(), apc)
+ mergeCache.set(a.Hash(), b.Hash(), apc)
}
return apc
}
@@ -494,12 +536,11 @@ func mergeSingletons(a, b *BaseSingletonPredictionContext, rootIsWildcard bool,
}
apc := NewArrayPredictionContext(parents, payloads)
if mergeCache != nil {
- mergeCache.set(a.hash(), b.hash(), apc)
+ mergeCache.set(a.Hash(), b.Hash(), apc)
}
return apc
}
-//
// Handle case where at least one of {@code a} or {@code b} is
// {@link //EMPTY}. In the following diagrams, the symbol {@code $} is used
// to represent {@link //EMPTY}.
@@ -561,7 +602,6 @@ func mergeRoot(a, b SingletonPredictionContext, rootIsWildcard bool) PredictionC
return nil
}
-//
// Merge two {@link ArrayBasePredictionContext} instances.
//
//
Different tops, different parents.
@@ -583,12 +623,18 @@ func mergeRoot(a, b SingletonPredictionContext, rootIsWildcard bool) PredictionC
// /
func mergeArrays(a, b *ArrayPredictionContext, rootIsWildcard bool, mergeCache *DoubleDict) PredictionContext {
if mergeCache != nil {
- previous := mergeCache.Get(a.hash(), b.hash())
+ previous := mergeCache.Get(a.Hash(), b.Hash())
if previous != nil {
+ if ParserATNSimulatorTraceATNSim {
+ fmt.Println("mergeArrays a=" + a.String() + ",b=" + b.String() + " -> previous")
+ }
return previous.(PredictionContext)
}
- previous = mergeCache.Get(b.hash(), a.hash())
+ previous = mergeCache.Get(b.Hash(), a.Hash())
if previous != nil {
+ if ParserATNSimulatorTraceATNSim {
+ fmt.Println("mergeArrays a=" + a.String() + ",b=" + b.String() + " -> previous")
+ }
return previous.(PredictionContext)
}
}
@@ -608,7 +654,7 @@ func mergeArrays(a, b *ArrayPredictionContext, rootIsWildcard bool, mergeCache *
payload := a.returnStates[i]
// $+$ = $
bothDollars := payload == BasePredictionContextEmptyReturnState && aParent == nil && bParent == nil
- axAX := (aParent != nil && bParent != nil && aParent == bParent) // ax+ax
+ axAX := aParent != nil && bParent != nil && aParent == bParent // ax+ax
// ->
// ax
if bothDollars || axAX {
@@ -651,7 +697,7 @@ func mergeArrays(a, b *ArrayPredictionContext, rootIsWildcard bool, mergeCache *
if k == 1 { // for just one merged element, return singleton top
pc := SingletonBasePredictionContextCreate(mergedParents[0], mergedReturnStates[0])
if mergeCache != nil {
- mergeCache.set(a.hash(), b.hash(), pc)
+ mergeCache.set(a.Hash(), b.Hash(), pc)
}
return pc
}
@@ -663,27 +709,36 @@ func mergeArrays(a, b *ArrayPredictionContext, rootIsWildcard bool, mergeCache *
// if we created same array as a or b, return that instead
// TODO: track whether this is possible above during merge sort for speed
+ // TODO: In go, I do not think we can just do M == xx as M is a brand new allocation. This could be causing allocation problems
if M == a {
if mergeCache != nil {
- mergeCache.set(a.hash(), b.hash(), a)
+ mergeCache.set(a.Hash(), b.Hash(), a)
+ }
+ if ParserATNSimulatorTraceATNSim {
+ fmt.Println("mergeArrays a=" + a.String() + ",b=" + b.String() + " -> a")
}
return a
}
if M == b {
if mergeCache != nil {
- mergeCache.set(a.hash(), b.hash(), b)
+ mergeCache.set(a.Hash(), b.Hash(), b)
+ }
+ if ParserATNSimulatorTraceATNSim {
+ fmt.Println("mergeArrays a=" + a.String() + ",b=" + b.String() + " -> b")
}
return b
}
combineCommonParents(mergedParents)
if mergeCache != nil {
- mergeCache.set(a.hash(), b.hash(), M)
+ mergeCache.set(a.Hash(), b.Hash(), M)
+ }
+ if ParserATNSimulatorTraceATNSim {
+ fmt.Println("mergeArrays a=" + a.String() + ",b=" + b.String() + " -> " + M.String())
}
return M
}
-//
// Make pass over all M {@code parents} merge any {@code equals()}
// ones.
// /
diff --git a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/prediction_mode.go b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/prediction_mode.go
similarity index 95%
rename from tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/prediction_mode.go
rename to tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/prediction_mode.go
index 15718f912..7b9b72fab 100644
--- a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/prediction_mode.go
+++ b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/prediction_mode.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
@@ -70,7 +70,6 @@ const (
PredictionModeLLExactAmbigDetection = 2
)
-//
// Computes the SLL prediction termination condition.
//
//
@@ -108,9 +107,9 @@ const (
// The single-alt-state thing lets prediction continue upon rules like
// (otherwise, it would admit defeat too soon):
//
-//
{@code [12|1|[], 6|2|[], 12|2|[]]. s : (ID | ID ID?) '' }
+//
{@code [12|1|[], 6|2|[], 12|2|[]]. s : (ID | ID ID?) †}
//
-//
When the ATN simulation reaches the state before {@code ''}, it has a
+//
When the ATN simulation reaches the state before {@code â€}, it has a
// DFA state that looks like: {@code [12|1|[], 6|2|[], 12|2|[]]}. Naturally
// {@code 12|1|[]} and {@code 12|2|[]} conflict, but we cannot stop
// processing this node because alternative to has another way to continue,
@@ -152,16 +151,15 @@ const (
//
//
Before testing these configurations against others, we have to merge
// {@code x} and {@code x'} (without modifying the existing configurations).
-// For example, we test {@code (x+x')==x''} when looking for conflicts in
+// For example, we test {@code (x+x')==xâ€} when looking for conflicts in
// the following configurations.
If the configuration set has predicates (as indicated by
// {@link ATNConfigSet//hasSemanticContext}), this algorithm makes a copy of
// the configurations to strip out all of the predicates so that a standard
// {@link ATNConfigSet} will merge everything ignoring predicates.
-//
func PredictionModehasSLLConflictTerminatingPrediction(mode int, configs ATNConfigSet) bool {
// Configs in rule stop states indicate reaching the end of the decision
// rule (local context) or end of start rule (full context). If all
@@ -229,7 +227,6 @@ func PredictionModeallConfigsInRuleStopStates(configs ATNConfigSet) bool {
return true
}
-//
// Full LL prediction termination.
//
//
Can we stop looking ahead during ATN simulation or is there some
@@ -334,7 +331,7 @@ func PredictionModeallConfigsInRuleStopStates(configs ATNConfigSet) bool {
//
//
//
//
@@ -369,31 +366,26 @@ func PredictionModeallConfigsInRuleStopStates(configs ATNConfigSet) bool {
// two or one and three so we keep going. We can only stop prediction when
// we need exact ambiguity detection when the sets look like
// {@code A={{1,2}}} or {@code {{1,2},{1,2}}}, etc...
-//
func PredictionModeresolvesToJustOneViableAlt(altsets []*BitSet) int {
return PredictionModegetSingleViableAlt(altsets)
}
-//
// Determines if every alternative subset in {@code altsets} contains more
// than one alternative.
//
// @param altsets a collection of alternative subsets
// @return {@code true} if every {@link BitSet} in {@code altsets} has
// {@link BitSet//cardinality cardinality} > 1, otherwise {@code false}
-//
func PredictionModeallSubsetsConflict(altsets []*BitSet) bool {
return !PredictionModehasNonConflictingAltSet(altsets)
}
-//
// Determines if any single alternative subset in {@code altsets} contains
// exactly one alternative.
//
// @param altsets a collection of alternative subsets
// @return {@code true} if {@code altsets} contains a {@link BitSet} with
// {@link BitSet//cardinality cardinality} 1, otherwise {@code false}
-//
func PredictionModehasNonConflictingAltSet(altsets []*BitSet) bool {
for i := 0; i < len(altsets); i++ {
alts := altsets[i]
@@ -404,14 +396,12 @@ func PredictionModehasNonConflictingAltSet(altsets []*BitSet) bool {
return false
}
-//
// Determines if any single alternative subset in {@code altsets} contains
// more than one alternative.
//
// @param altsets a collection of alternative subsets
// @return {@code true} if {@code altsets} contains a {@link BitSet} with
// {@link BitSet//cardinality cardinality} > 1, otherwise {@code false}
-//
func PredictionModehasConflictingAltSet(altsets []*BitSet) bool {
for i := 0; i < len(altsets); i++ {
alts := altsets[i]
@@ -422,13 +412,11 @@ func PredictionModehasConflictingAltSet(altsets []*BitSet) bool {
return false
}
-//
// Determines if every alternative subset in {@code altsets} is equivalent.
//
// @param altsets a collection of alternative subsets
// @return {@code true} if every member of {@code altsets} is equal to the
// others, otherwise {@code false}
-//
func PredictionModeallSubsetsEqual(altsets []*BitSet) bool {
var first *BitSet
@@ -444,13 +432,11 @@ func PredictionModeallSubsetsEqual(altsets []*BitSet) bool {
return true
}
-//
// Returns the unique alternative predicted by all alternative subsets in
// {@code altsets}. If no such alternative exists, this method returns
// {@link ATN//INVALID_ALT_NUMBER}.
//
// @param altsets a collection of alternative subsets
-//
func PredictionModegetUniqueAlt(altsets []*BitSet) int {
all := PredictionModeGetAlts(altsets)
if all.length() == 1 {
@@ -466,7 +452,6 @@ func PredictionModegetUniqueAlt(altsets []*BitSet) int {
//
// @param altsets a collection of alternative subsets
// @return the set of represented alternatives in {@code altsets}
-//
func PredictionModeGetAlts(altsets []*BitSet) *BitSet {
all := NewBitSet()
for _, alts := range altsets {
@@ -475,44 +460,35 @@ func PredictionModeGetAlts(altsets []*BitSet) *BitSet {
return all
}
-//
-// This func gets the conflicting alt subsets from a configuration set.
+// PredictionModegetConflictingAltSubsets gets the conflicting alt subsets from a configuration set.
// For each configuration {@code c} in {@code configs}:
//
//
// map[c] U= c.{@link ATNConfig//alt alt} // map hash/equals uses s and x, not
// alt and not pred
//
-//
func PredictionModegetConflictingAltSubsets(configs ATNConfigSet) []*BitSet {
- configToAlts := make(map[int]*BitSet)
+ configToAlts := NewJMap[ATNConfig, *BitSet, *ATNAltConfigComparator[ATNConfig]](atnAltCfgEqInst)
for _, c := range configs.GetItems() {
- key := 31 * c.GetState().GetStateNumber() + c.GetContext().hash()
- alts, ok := configToAlts[key]
+ alts, ok := configToAlts.Get(c)
if !ok {
alts = NewBitSet()
- configToAlts[key] = alts
+ configToAlts.Put(c, alts)
}
alts.add(c.GetAlt())
}
- values := make([]*BitSet, 0, 10)
- for _, v := range configToAlts {
- values = append(values, v)
- }
- return values
+ return configToAlts.Values()
}
-//
-// Get a map from state to alt subset from a configuration set. For each
+// PredictionModeGetStateToAltMap gets a map from state to alt subset from a configuration set. For each
// configuration {@code c} in {@code configs}:
//
//
-//
func PredictionModeGetStateToAltMap(configs ATNConfigSet) *AltDict {
m := NewAltDict()
diff --git a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/recognizer.go b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/recognizer.go
similarity index 92%
rename from tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/recognizer.go
rename to tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/recognizer.go
index 93efcf355..bfe542d09 100644
--- a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/recognizer.go
+++ b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/recognizer.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
@@ -49,7 +49,7 @@ var tokenTypeMapCache = make(map[string]int)
var ruleIndexMapCache = make(map[string]int)
func (b *BaseRecognizer) checkVersion(toolVersion string) {
- runtimeVersion := "4.10.1"
+ runtimeVersion := "4.12.0"
if runtimeVersion != toolVersion {
fmt.Println("ANTLR runtime and generated code versions disagree: " + runtimeVersion + "!=" + toolVersion)
}
@@ -108,7 +108,6 @@ func (b *BaseRecognizer) SetState(v int) {
// Get a map from rule names to rule indexes.
//
//
Used for XPath and tree pattern compilation.
-//
func (b *BaseRecognizer) GetRuleIndexMap() map[string]int {
panic("Method not defined!")
@@ -171,18 +170,18 @@ func (b *BaseRecognizer) GetErrorHeader(e RecognitionException) string {
}
// How should a token be displayed in an error message? The default
-// is to display just the text, but during development you might
-// want to have a lot of information spit out. Override in that case
-// to use t.String() (which, for CommonToken, dumps everything about
-// the token). This is better than forcing you to override a method in
-// your token objects because you don't have to go modify your lexer
-// so that it creates a NewJava type.
+//
+// is to display just the text, but during development you might
+// want to have a lot of information spit out. Override in that case
+// to use t.String() (which, for CommonToken, dumps everything about
+// the token). This is better than forcing you to override a method in
+// your token objects because you don't have to go modify your lexer
+// so that it creates a NewJava type.
//
// @deprecated This method is not called by the ANTLR 4 Runtime. Specific
// implementations of {@link ANTLRErrorStrategy} may provide a similar
// feature when necessary. For example, see
// {@link DefaultErrorStrategy//GetTokenErrorDisplay}.
-//
func (b *BaseRecognizer) GetTokenErrorDisplay(t Token) string {
if t == nil {
return ""
diff --git a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/rule_context.go b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/rule_context.go
similarity index 97%
rename from tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/rule_context.go
rename to tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/rule_context.go
index 600cf8c06..210699ba2 100644
--- a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/rule_context.go
+++ b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/rule_context.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
diff --git a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/semantic_context.go b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/semantic_context.go
similarity index 85%
rename from tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/semantic_context.go
rename to tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/semantic_context.go
index 9ada43077..a702e99de 100644
--- a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/semantic_context.go
+++ b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/semantic_context.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
@@ -18,12 +18,12 @@ import (
//
type SemanticContext interface {
- comparable
+ Equals(other Collectable[SemanticContext]) bool
+ Hash() int
evaluate(parser Recognizer, outerContext RuleContext) bool
evalPrecedence(parser Recognizer, outerContext RuleContext) SemanticContext
- hash() int
String() string
}
@@ -78,7 +78,7 @@ func NewPredicate(ruleIndex, predIndex int, isCtxDependent bool) *Predicate {
//The default {@link SemanticContext}, which is semantically equivalent to
//a predicate of the form {@code {true}?}.
-var SemanticContextNone SemanticContext = NewPredicate(-1, -1, false)
+var SemanticContextNone = NewPredicate(-1, -1, false)
func (p *Predicate) evalPrecedence(parser Recognizer, outerContext RuleContext) SemanticContext {
return p
@@ -95,7 +95,7 @@ func (p *Predicate) evaluate(parser Recognizer, outerContext RuleContext) bool {
return parser.Sempred(localctx, p.ruleIndex, p.predIndex)
}
-func (p *Predicate) equals(other interface{}) bool {
+func (p *Predicate) Equals(other Collectable[SemanticContext]) bool {
if p == other {
return true
} else if _, ok := other.(*Predicate); !ok {
@@ -107,7 +107,7 @@ func (p *Predicate) equals(other interface{}) bool {
}
}
-func (p *Predicate) hash() int {
+func (p *Predicate) Hash() int {
h := murmurInit(0)
h = murmurUpdate(h, p.ruleIndex)
h = murmurUpdate(h, p.predIndex)
@@ -151,17 +151,22 @@ func (p *PrecedencePredicate) compareTo(other *PrecedencePredicate) int {
return p.precedence - other.precedence
}
-func (p *PrecedencePredicate) equals(other interface{}) bool {
- if p == other {
- return true
- } else if _, ok := other.(*PrecedencePredicate); !ok {
+func (p *PrecedencePredicate) Equals(other Collectable[SemanticContext]) bool {
+
+ var op *PrecedencePredicate
+ var ok bool
+ if op, ok = other.(*PrecedencePredicate); !ok {
return false
- } else {
- return p.precedence == other.(*PrecedencePredicate).precedence
}
+
+ if p == op {
+ return true
+ }
+
+ return p.precedence == other.(*PrecedencePredicate).precedence
}
-func (p *PrecedencePredicate) hash() int {
+func (p *PrecedencePredicate) Hash() int {
h := uint32(1)
h = 31*h + uint32(p.precedence)
return int(h)
@@ -171,10 +176,10 @@ func (p *PrecedencePredicate) String() string {
return "{" + strconv.Itoa(p.precedence) + ">=prec}?"
}
-func PrecedencePredicatefilterPrecedencePredicates(set Set) []*PrecedencePredicate {
+func PrecedencePredicatefilterPrecedencePredicates(set *JStore[SemanticContext, Comparator[SemanticContext]]) []*PrecedencePredicate {
result := make([]*PrecedencePredicate, 0)
- set.Each(func(v interface{}) bool {
+ set.Each(func(v SemanticContext) bool {
if c2, ok := v.(*PrecedencePredicate); ok {
result = append(result, c2)
}
@@ -193,21 +198,21 @@ type AND struct {
func NewAND(a, b SemanticContext) *AND {
- operands := newArray2DHashSet(nil, nil)
+ operands := NewJStore[SemanticContext, Comparator[SemanticContext]](semctxEqInst)
if aa, ok := a.(*AND); ok {
for _, o := range aa.opnds {
- operands.Add(o)
+ operands.Put(o)
}
} else {
- operands.Add(a)
+ operands.Put(a)
}
if ba, ok := b.(*AND); ok {
for _, o := range ba.opnds {
- operands.Add(o)
+ operands.Put(o)
}
} else {
- operands.Add(b)
+ operands.Put(b)
}
precedencePredicates := PrecedencePredicatefilterPrecedencePredicates(operands)
if len(precedencePredicates) > 0 {
@@ -220,7 +225,7 @@ func NewAND(a, b SemanticContext) *AND {
}
}
- operands.Add(reduced)
+ operands.Put(reduced)
}
vs := operands.Values()
@@ -235,14 +240,15 @@ func NewAND(a, b SemanticContext) *AND {
return and
}
-func (a *AND) equals(other interface{}) bool {
+func (a *AND) Equals(other Collectable[SemanticContext]) bool {
if a == other {
return true
- } else if _, ok := other.(*AND); !ok {
+ }
+ if _, ok := other.(*AND); !ok {
return false
} else {
for i, v := range other.(*AND).opnds {
- if !a.opnds[i].equals(v) {
+ if !a.opnds[i].Equals(v) {
return false
}
}
@@ -250,13 +256,11 @@ func (a *AND) equals(other interface{}) bool {
}
}
-//
// {@inheritDoc}
//
//
// The evaluation of predicates by a context is short-circuiting, but
// unordered.
-//
func (a *AND) evaluate(parser Recognizer, outerContext RuleContext) bool {
for i := 0; i < len(a.opnds); i++ {
if !a.opnds[i].evaluate(parser, outerContext) {
@@ -304,18 +308,18 @@ func (a *AND) evalPrecedence(parser Recognizer, outerContext RuleContext) Semant
return result
}
-func (a *AND) hash() int {
+func (a *AND) Hash() int {
h := murmurInit(37) // Init with a value different from OR
for _, op := range a.opnds {
- h = murmurUpdate(h, op.hash())
+ h = murmurUpdate(h, op.Hash())
}
return murmurFinish(h, len(a.opnds))
}
-func (a *OR) hash() int {
+func (a *OR) Hash() int {
h := murmurInit(41) // Init with a value different from AND
for _, op := range a.opnds {
- h = murmurUpdate(h, op.hash())
+ h = murmurUpdate(h, op.Hash())
}
return murmurFinish(h, len(a.opnds))
}
@@ -345,21 +349,21 @@ type OR struct {
func NewOR(a, b SemanticContext) *OR {
- operands := newArray2DHashSet(nil, nil)
+ operands := NewJStore[SemanticContext, Comparator[SemanticContext]](semctxEqInst)
if aa, ok := a.(*OR); ok {
for _, o := range aa.opnds {
- operands.Add(o)
+ operands.Put(o)
}
} else {
- operands.Add(a)
+ operands.Put(a)
}
if ba, ok := b.(*OR); ok {
for _, o := range ba.opnds {
- operands.Add(o)
+ operands.Put(o)
}
} else {
- operands.Add(b)
+ operands.Put(b)
}
precedencePredicates := PrecedencePredicatefilterPrecedencePredicates(operands)
if len(precedencePredicates) > 0 {
@@ -372,7 +376,7 @@ func NewOR(a, b SemanticContext) *OR {
}
}
- operands.Add(reduced)
+ operands.Put(reduced)
}
vs := operands.Values()
@@ -388,14 +392,14 @@ func NewOR(a, b SemanticContext) *OR {
return o
}
-func (o *OR) equals(other interface{}) bool {
+func (o *OR) Equals(other Collectable[SemanticContext]) bool {
if o == other {
return true
} else if _, ok := other.(*OR); !ok {
return false
} else {
for i, v := range other.(*OR).opnds {
- if !o.opnds[i].equals(v) {
+ if !o.opnds[i].Equals(v) {
return false
}
}
@@ -406,7 +410,6 @@ func (o *OR) equals(other interface{}) bool {
//
// The evaluation of predicates by o context is short-circuiting, but
// unordered.
-//
func (o *OR) evaluate(parser Recognizer, outerContext RuleContext) bool {
for i := 0; i < len(o.opnds); i++ {
if o.opnds[i].evaluate(parser, outerContext) {
diff --git a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/token.go b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/token.go
similarity index 98%
rename from tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/token.go
rename to tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/token.go
index 2d8e99095..f73b06bc6 100644
--- a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/token.go
+++ b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/token.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
@@ -158,7 +158,6 @@ func NewCommonToken(source *TokenSourceCharStreamPair, tokenType, channel, start
// {@link Token//GetInputStream}.
//
// @param oldToken The token to copy.
-//
func (c *CommonToken) clone() *CommonToken {
t := NewCommonToken(c.source, c.tokenType, c.channel, c.start, c.stop)
t.tokenIndex = c.GetTokenIndex()
diff --git a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/token_source.go b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/token_source.go
similarity index 85%
rename from tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/token_source.go
rename to tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/token_source.go
index e023978fe..a3f36eaa6 100644
--- a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/token_source.go
+++ b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/token_source.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
diff --git a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/token_stream.go b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/token_stream.go
similarity index 87%
rename from tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/token_stream.go
rename to tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/token_stream.go
index df92c8147..1527d43f6 100644
--- a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/token_stream.go
+++ b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/token_stream.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
diff --git a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/tokenstream_rewriter.go b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/tokenstream_rewriter.go
similarity index 58%
rename from tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/tokenstream_rewriter.go
rename to tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/tokenstream_rewriter.go
index 96a03f02a..b3e38af34 100644
--- a/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/tokenstream_rewriter.go
+++ b/tools/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/tokenstream_rewriter.go
@@ -1,15 +1,15 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
+
package antlr
import (
-"bytes"
-"fmt"
+ "bytes"
+ "fmt"
)
-
-//
+//
// Useful for rewriting out a buffered input token stream after doing some
// augmentation or other manipulations on it.
@@ -85,12 +85,10 @@ import (
// If you don't use named rewrite streams, a "default" stream is used as the
// first example shows.
-
-
-const(
+const (
Default_Program_Name = "default"
- Program_Init_Size = 100
- Min_Token_Index = 0
+ Program_Init_Size = 100
+ Min_Token_Index = 0
)
// Define the rewrite operation hierarchy
@@ -98,13 +96,13 @@ const(
type RewriteOperation interface {
// Execute the rewrite operation by possibly adding to the buffer.
// Return the index of the next token to operate on.
- Execute(buffer *bytes.Buffer) int
- String() string
- GetInstructionIndex() int
- GetIndex() int
- GetText() string
- GetOpName() string
- GetTokens() TokenStream
+ Execute(buffer *bytes.Buffer) int
+ String() string
+ GetInstructionIndex() int
+ GetIndex() int
+ GetText() string
+ GetOpName() string
+ GetTokens() TokenStream
SetInstructionIndex(val int)
SetIndex(int)
SetText(string)
@@ -114,63 +112,62 @@ type RewriteOperation interface {
type BaseRewriteOperation struct {
//Current index of rewrites list
- instruction_index int
+ instruction_index int
//Token buffer index
- index int
+ index int
//Substitution text
- text string
+ text string
//Actual operation name
- op_name string
+ op_name string
//Pointer to token steam
- tokens TokenStream
+ tokens TokenStream
}
-func (op *BaseRewriteOperation)GetInstructionIndex() int{
+func (op *BaseRewriteOperation) GetInstructionIndex() int {
return op.instruction_index
}
-func (op *BaseRewriteOperation)GetIndex() int{
+func (op *BaseRewriteOperation) GetIndex() int {
return op.index
}
-func (op *BaseRewriteOperation)GetText() string{
+func (op *BaseRewriteOperation) GetText() string {
return op.text
}
-func (op *BaseRewriteOperation)GetOpName() string{
+func (op *BaseRewriteOperation) GetOpName() string {
return op.op_name
}
-func (op *BaseRewriteOperation)GetTokens() TokenStream{
+func (op *BaseRewriteOperation) GetTokens() TokenStream {
return op.tokens
}
-func (op *BaseRewriteOperation)SetInstructionIndex(val int){
+func (op *BaseRewriteOperation) SetInstructionIndex(val int) {
op.instruction_index = val
}
-func (op *BaseRewriteOperation)SetIndex(val int) {
+func (op *BaseRewriteOperation) SetIndex(val int) {
op.index = val
}
-func (op *BaseRewriteOperation)SetText(val string){
+func (op *BaseRewriteOperation) SetText(val string) {
op.text = val
}
-func (op *BaseRewriteOperation)SetOpName(val string){
+func (op *BaseRewriteOperation) SetOpName(val string) {
op.op_name = val
}
-func (op *BaseRewriteOperation)SetTokens(val TokenStream) {
+func (op *BaseRewriteOperation) SetTokens(val TokenStream) {
op.tokens = val
}
-
-func (op *BaseRewriteOperation) Execute(buffer *bytes.Buffer) int{
+func (op *BaseRewriteOperation) Execute(buffer *bytes.Buffer) int {
return op.index
}
-func (op *BaseRewriteOperation) String() string {
+func (op *BaseRewriteOperation) String() string {
return fmt.Sprintf("<%s@%d:\"%s\">",
op.op_name,
op.tokens.Get(op.GetIndex()),
@@ -179,26 +176,25 @@ func (op *BaseRewriteOperation) String() string {
}
-
type InsertBeforeOp struct {
BaseRewriteOperation
}
-func NewInsertBeforeOp(index int, text string, stream TokenStream) *InsertBeforeOp{
- return &InsertBeforeOp{BaseRewriteOperation:BaseRewriteOperation{
- index:index,
- text:text,
- op_name:"InsertBeforeOp",
- tokens:stream,
+func NewInsertBeforeOp(index int, text string, stream TokenStream) *InsertBeforeOp {
+ return &InsertBeforeOp{BaseRewriteOperation: BaseRewriteOperation{
+ index: index,
+ text: text,
+ op_name: "InsertBeforeOp",
+ tokens: stream,
}}
}
-func (op *InsertBeforeOp) Execute(buffer *bytes.Buffer) int{
+func (op *InsertBeforeOp) Execute(buffer *bytes.Buffer) int {
buffer.WriteString(op.text)
- if op.tokens.Get(op.index).GetTokenType() != TokenEOF{
+ if op.tokens.Get(op.index).GetTokenType() != TokenEOF {
buffer.WriteString(op.tokens.Get(op.index).GetText())
}
- return op.index+1
+ return op.index + 1
}
func (op *InsertBeforeOp) String() string {
@@ -213,20 +209,20 @@ type InsertAfterOp struct {
BaseRewriteOperation
}
-func NewInsertAfterOp(index int, text string, stream TokenStream) *InsertAfterOp{
- return &InsertAfterOp{BaseRewriteOperation:BaseRewriteOperation{
- index:index+1,
- text:text,
- tokens:stream,
+func NewInsertAfterOp(index int, text string, stream TokenStream) *InsertAfterOp {
+ return &InsertAfterOp{BaseRewriteOperation: BaseRewriteOperation{
+ index: index + 1,
+ text: text,
+ tokens: stream,
}}
}
func (op *InsertAfterOp) Execute(buffer *bytes.Buffer) int {
buffer.WriteString(op.text)
- if op.tokens.Get(op.index).GetTokenType() != TokenEOF{
+ if op.tokens.Get(op.index).GetTokenType() != TokenEOF {
buffer.WriteString(op.tokens.Get(op.index).GetText())
}
- return op.index+1
+ return op.index + 1
}
func (op *InsertAfterOp) String() string {
@@ -235,28 +231,28 @@ func (op *InsertAfterOp) String() string {
// I'm going to try replacing range from x..y with (y-x)+1 ReplaceOp
// instructions.
-type ReplaceOp struct{
+type ReplaceOp struct {
BaseRewriteOperation
LastIndex int
}
-func NewReplaceOp(from, to int, text string, stream TokenStream)*ReplaceOp {
+func NewReplaceOp(from, to int, text string, stream TokenStream) *ReplaceOp {
return &ReplaceOp{
- BaseRewriteOperation:BaseRewriteOperation{
- index:from,
- text:text,
- op_name:"ReplaceOp",
- tokens:stream,
+ BaseRewriteOperation: BaseRewriteOperation{
+ index: from,
+ text: text,
+ op_name: "ReplaceOp",
+ tokens: stream,
},
- LastIndex:to,
+ LastIndex: to,
}
}
-func (op *ReplaceOp)Execute(buffer *bytes.Buffer) int{
- if op.text != ""{
+func (op *ReplaceOp) Execute(buffer *bytes.Buffer) int {
+ if op.text != "" {
buffer.WriteString(op.text)
}
- return op.LastIndex +1
+ return op.LastIndex + 1
}
func (op *ReplaceOp) String() string {
@@ -268,54 +264,54 @@ func (op *ReplaceOp) String() string {
op.tokens.Get(op.index), op.tokens.Get(op.LastIndex), op.text)
}
-
type TokenStreamRewriter struct {
//Our source stream
- tokens TokenStream
+ tokens TokenStream
// You may have multiple, named streams of rewrite operations.
// I'm calling these things "programs."
// Maps String (name) → rewrite (List)
- programs map[string][]RewriteOperation
- last_rewrite_token_indexes map[string]int
+ programs map[string][]RewriteOperation
+ last_rewrite_token_indexes map[string]int
}
-func NewTokenStreamRewriter(tokens TokenStream) *TokenStreamRewriter{
+func NewTokenStreamRewriter(tokens TokenStream) *TokenStreamRewriter {
return &TokenStreamRewriter{
- tokens: tokens,
- programs: map[string][]RewriteOperation{
- Default_Program_Name:make([]RewriteOperation,0, Program_Init_Size),
+ tokens: tokens,
+ programs: map[string][]RewriteOperation{
+ Default_Program_Name: make([]RewriteOperation, 0, Program_Init_Size),
},
- last_rewrite_token_indexes: map[string]int{},
+ last_rewrite_token_indexes: map[string]int{},
}
}
-func (tsr *TokenStreamRewriter) GetTokenStream() TokenStream{
+func (tsr *TokenStreamRewriter) GetTokenStream() TokenStream {
return tsr.tokens
}
-// Rollback the instruction stream for a program so that
-// the indicated instruction (via instructionIndex) is no
-// longer in the stream. UNTESTED!
-func (tsr *TokenStreamRewriter) Rollback(program_name string, instruction_index int){
- is, ok := tsr.programs[program_name]
- if ok{
+// Rollback the instruction stream for a program so that
+// the indicated instruction (via instructionIndex) is no
+// longer in the stream. UNTESTED!
+func (tsr *TokenStreamRewriter) Rollback(program_name string, instruction_index int) {
+ is, ok := tsr.programs[program_name]
+ if ok {
tsr.programs[program_name] = is[Min_Token_Index:instruction_index]
}
}
-func (tsr *TokenStreamRewriter) RollbackDefault(instruction_index int){
+func (tsr *TokenStreamRewriter) RollbackDefault(instruction_index int) {
tsr.Rollback(Default_Program_Name, instruction_index)
}
-//Reset the program so that no instructions exist
-func (tsr *TokenStreamRewriter) DeleteProgram(program_name string){
+
+// Reset the program so that no instructions exist
+func (tsr *TokenStreamRewriter) DeleteProgram(program_name string) {
tsr.Rollback(program_name, Min_Token_Index) //TODO: double test on that cause lower bound is not included
}
-func (tsr *TokenStreamRewriter) DeleteProgramDefault(){
+func (tsr *TokenStreamRewriter) DeleteProgramDefault() {
tsr.DeleteProgram(Default_Program_Name)
}
-func (tsr *TokenStreamRewriter) InsertAfter(program_name string, index int, text string){
+func (tsr *TokenStreamRewriter) InsertAfter(program_name string, index int, text string) {
// to insert after, just insert before next index (even if past end)
var op RewriteOperation = NewInsertAfterOp(index, text, tsr.tokens)
rewrites := tsr.GetProgram(program_name)
@@ -323,31 +319,31 @@ func (tsr *TokenStreamRewriter) InsertAfter(program_name string, index int, text
tsr.AddToProgram(program_name, op)
}
-func (tsr *TokenStreamRewriter) InsertAfterDefault(index int, text string){
+func (tsr *TokenStreamRewriter) InsertAfterDefault(index int, text string) {
tsr.InsertAfter(Default_Program_Name, index, text)
}
-func (tsr *TokenStreamRewriter) InsertAfterToken(program_name string, token Token, text string){
+func (tsr *TokenStreamRewriter) InsertAfterToken(program_name string, token Token, text string) {
tsr.InsertAfter(program_name, token.GetTokenIndex(), text)
}
-func (tsr* TokenStreamRewriter) InsertBefore(program_name string, index int, text string){
+func (tsr *TokenStreamRewriter) InsertBefore(program_name string, index int, text string) {
var op RewriteOperation = NewInsertBeforeOp(index, text, tsr.tokens)
rewrites := tsr.GetProgram(program_name)
op.SetInstructionIndex(len(rewrites))
tsr.AddToProgram(program_name, op)
}
-func (tsr *TokenStreamRewriter) InsertBeforeDefault(index int, text string){
+func (tsr *TokenStreamRewriter) InsertBeforeDefault(index int, text string) {
tsr.InsertBefore(Default_Program_Name, index, text)
}
-func (tsr *TokenStreamRewriter) InsertBeforeToken(program_name string,token Token, text string){
+func (tsr *TokenStreamRewriter) InsertBeforeToken(program_name string, token Token, text string) {
tsr.InsertBefore(program_name, token.GetTokenIndex(), text)
}
-func (tsr *TokenStreamRewriter) Replace(program_name string, from, to int, text string){
- if from > to || from < 0 || to < 0 || to >= tsr.tokens.Size(){
+func (tsr *TokenStreamRewriter) Replace(program_name string, from, to int, text string) {
+ if from > to || from < 0 || to < 0 || to >= tsr.tokens.Size() {
panic(fmt.Sprintf("replace: range invalid: %d..%d(size=%d)",
from, to, tsr.tokens.Size()))
}
@@ -357,207 +353,216 @@ func (tsr *TokenStreamRewriter) Replace(program_name string, from, to int, text
tsr.AddToProgram(program_name, op)
}
-func (tsr *TokenStreamRewriter)ReplaceDefault(from, to int, text string) {
+func (tsr *TokenStreamRewriter) ReplaceDefault(from, to int, text string) {
tsr.Replace(Default_Program_Name, from, to, text)
}
-func (tsr *TokenStreamRewriter)ReplaceDefaultPos(index int, text string){
+func (tsr *TokenStreamRewriter) ReplaceDefaultPos(index int, text string) {
tsr.ReplaceDefault(index, index, text)
}
-func (tsr *TokenStreamRewriter)ReplaceToken(program_name string, from, to Token, text string){
+func (tsr *TokenStreamRewriter) ReplaceToken(program_name string, from, to Token, text string) {
tsr.Replace(program_name, from.GetTokenIndex(), to.GetTokenIndex(), text)
}
-func (tsr *TokenStreamRewriter)ReplaceTokenDefault(from, to Token, text string){
+func (tsr *TokenStreamRewriter) ReplaceTokenDefault(from, to Token, text string) {
tsr.ReplaceToken(Default_Program_Name, from, to, text)
}
-func (tsr *TokenStreamRewriter)ReplaceTokenDefaultPos(index Token, text string){
+func (tsr *TokenStreamRewriter) ReplaceTokenDefaultPos(index Token, text string) {
tsr.ReplaceTokenDefault(index, index, text)
}
-func (tsr *TokenStreamRewriter)Delete(program_name string, from, to int){
- tsr.Replace(program_name, from, to, "" )
+func (tsr *TokenStreamRewriter) Delete(program_name string, from, to int) {
+ tsr.Replace(program_name, from, to, "")
}
-func (tsr *TokenStreamRewriter)DeleteDefault(from, to int){
+func (tsr *TokenStreamRewriter) DeleteDefault(from, to int) {
tsr.Delete(Default_Program_Name, from, to)
}
-func (tsr *TokenStreamRewriter)DeleteDefaultPos(index int){
- tsr.DeleteDefault(index,index)
+func (tsr *TokenStreamRewriter) DeleteDefaultPos(index int) {
+ tsr.DeleteDefault(index, index)
}
-func (tsr *TokenStreamRewriter)DeleteToken(program_name string, from, to Token) {
+func (tsr *TokenStreamRewriter) DeleteToken(program_name string, from, to Token) {
tsr.ReplaceToken(program_name, from, to, "")
}
-func (tsr *TokenStreamRewriter)DeleteTokenDefault(from,to Token){
+func (tsr *TokenStreamRewriter) DeleteTokenDefault(from, to Token) {
tsr.DeleteToken(Default_Program_Name, from, to)
}
-func (tsr *TokenStreamRewriter)GetLastRewriteTokenIndex(program_name string)int {
+func (tsr *TokenStreamRewriter) GetLastRewriteTokenIndex(program_name string) int {
i, ok := tsr.last_rewrite_token_indexes[program_name]
- if !ok{
+ if !ok {
return -1
}
return i
}
-func (tsr *TokenStreamRewriter)GetLastRewriteTokenIndexDefault()int{
+func (tsr *TokenStreamRewriter) GetLastRewriteTokenIndexDefault() int {
return tsr.GetLastRewriteTokenIndex(Default_Program_Name)
}
-func (tsr *TokenStreamRewriter)SetLastRewriteTokenIndex(program_name string, i int){
+func (tsr *TokenStreamRewriter) SetLastRewriteTokenIndex(program_name string, i int) {
tsr.last_rewrite_token_indexes[program_name] = i
}
-func (tsr *TokenStreamRewriter)InitializeProgram(name string)[]RewriteOperation{
+func (tsr *TokenStreamRewriter) InitializeProgram(name string) []RewriteOperation {
is := make([]RewriteOperation, 0, Program_Init_Size)
tsr.programs[name] = is
return is
}
-func (tsr *TokenStreamRewriter)AddToProgram(name string, op RewriteOperation){
+func (tsr *TokenStreamRewriter) AddToProgram(name string, op RewriteOperation) {
is := tsr.GetProgram(name)
is = append(is, op)
tsr.programs[name] = is
}
-func (tsr *TokenStreamRewriter)GetProgram(name string) []RewriteOperation {
+func (tsr *TokenStreamRewriter) GetProgram(name string) []RewriteOperation {
is, ok := tsr.programs[name]
- if !ok{
+ if !ok {
is = tsr.InitializeProgram(name)
}
return is
}
-// Return the text from the original tokens altered per the
-// instructions given to this rewriter.
-func (tsr *TokenStreamRewriter)GetTextDefault() string{
+
+// Return the text from the original tokens altered per the
+// instructions given to this rewriter.
+func (tsr *TokenStreamRewriter) GetTextDefault() string {
return tsr.GetText(
Default_Program_Name,
NewInterval(0, tsr.tokens.Size()-1))
}
-// Return the text from the original tokens altered per the
-// instructions given to this rewriter.
-func (tsr *TokenStreamRewriter)GetText(program_name string, interval *Interval) string {
+
+// Return the text from the original tokens altered per the
+// instructions given to this rewriter.
+func (tsr *TokenStreamRewriter) GetText(program_name string, interval *Interval) string {
rewrites := tsr.programs[program_name]
start := interval.Start
- stop := interval.Stop
+ stop := interval.Stop
// ensure start/end are in range
stop = min(stop, tsr.tokens.Size()-1)
- start = max(start,0)
- if rewrites == nil || len(rewrites) == 0{
+ start = max(start, 0)
+ if rewrites == nil || len(rewrites) == 0 {
return tsr.tokens.GetTextFromInterval(interval) // no instructions to execute
}
buf := bytes.Buffer{}
// First, optimize instruction stream
indexToOp := reduceToSingleOperationPerIndex(rewrites)
// Walk buffer, executing instructions and emitting tokens
- for i:=start; i<=stop && i= tsr.tokens.Size()-1 {buf.WriteString(op.GetText())}
+ for _, op := range indexToOp {
+ if op.GetIndex() >= tsr.tokens.Size()-1 {
+ buf.WriteString(op.GetText())
+ }
}
}
return buf.String()
}
-// We need to combine operations and report invalid operations (like
-// overlapping replaces that are not completed nested). Inserts to
-// same index need to be combined etc... Here are the cases:
+// We need to combine operations and report invalid operations (like
+// overlapping replaces that are not completed nested). Inserts to
+// same index need to be combined etc... Here are the cases:
//
-// I.i.u I.j.v leave alone, nonoverlapping
-// I.i.u I.i.v combine: Iivu
+// I.i.u I.j.v leave alone, nonoverlapping
+// I.i.u I.i.v combine: Iivu
//
-// R.i-j.u R.x-y.v | i-j in x-y delete first R
-// R.i-j.u R.i-j.v delete first R
-// R.i-j.u R.x-y.v | x-y in i-j ERROR
-// R.i-j.u R.x-y.v | boundaries overlap ERROR
+// R.i-j.u R.x-y.v | i-j in x-y delete first R
+// R.i-j.u R.i-j.v delete first R
+// R.i-j.u R.x-y.v | x-y in i-j ERROR
+// R.i-j.u R.x-y.v | boundaries overlap ERROR
//
-// Delete special case of replace (text==null):
-// D.i-j.u D.x-y.v | boundaries overlap combine to max(min)..max(right)
+// Delete special case of replace (text==null):
+// D.i-j.u D.x-y.v | boundaries overlap combine to max(min)..max(right)
//
-// I.i.u R.x-y.v | i in (x+1)-y delete I (since insert before
-// we're not deleting i)
-// I.i.u R.x-y.v | i not in (x+1)-y leave alone, nonoverlapping
-// R.x-y.v I.i.u | i in x-y ERROR
-// R.x-y.v I.x.u R.x-y.uv (combine, delete I)
-// R.x-y.v I.i.u | i not in x-y leave alone, nonoverlapping
+// I.i.u R.x-y.v | i in (x+1)-y delete I (since insert before
+// we're not deleting i)
+// I.i.u R.x-y.v | i not in (x+1)-y leave alone, nonoverlapping
+// R.x-y.v I.i.u | i in x-y ERROR
+// R.x-y.v I.x.u R.x-y.uv (combine, delete I)
+// R.x-y.v I.i.u | i not in x-y leave alone, nonoverlapping
//
-// I.i.u = insert u before op @ index i
-// R.x-y.u = replace x-y indexed tokens with u
+// I.i.u = insert u before op @ index i
+// R.x-y.u = replace x-y indexed tokens with u
//
-// First we need to examine replaces. For any replace op:
+// First we need to examine replaces. For any replace op:
//
-// 1. wipe out any insertions before op within that range.
-// 2. Drop any replace op before that is contained completely within
-// that range.
-// 3. Throw exception upon boundary overlap with any previous replace.
+// 1. wipe out any insertions before op within that range.
+// 2. Drop any replace op before that is contained completely within
+// that range.
+// 3. Throw exception upon boundary overlap with any previous replace.
//
-// Then we can deal with inserts:
+// Then we can deal with inserts:
//
-// 1. for any inserts to same index, combine even if not adjacent.
-// 2. for any prior replace with same left boundary, combine this
-// insert with replace and delete this replace.
-// 3. throw exception if index in same range as previous replace
+// 1. for any inserts to same index, combine even if not adjacent.
+// 2. for any prior replace with same left boundary, combine this
+// insert with replace and delete this replace.
+// 3. throw exception if index in same range as previous replace
//
-// Don't actually delete; make op null in list. Easier to walk list.
-// Later we can throw as we add to index → op map.
+// Don't actually delete; make op null in list. Easier to walk list.
+// Later we can throw as we add to index → op map.
//
-// Note that I.2 R.2-2 will wipe out I.2 even though, technically, the
-// inserted stuff would be before the replace range. But, if you
-// add tokens in front of a method body '{' and then delete the method
-// body, I think the stuff before the '{' you added should disappear too.
+// Note that I.2 R.2-2 will wipe out I.2 even though, technically, the
+// inserted stuff would be before the replace range. But, if you
+// add tokens in front of a method body '{' and then delete the method
+// body, I think the stuff before the '{' you added should disappear too.
//
-// Return a map from token index to operation.
-//
-func reduceToSingleOperationPerIndex(rewrites []RewriteOperation) map[int]RewriteOperation{
+// Return a map from token index to operation.
+func reduceToSingleOperationPerIndex(rewrites []RewriteOperation) map[int]RewriteOperation {
// WALK REPLACES
- for i:=0; i < len(rewrites); i++{
+ for i := 0; i < len(rewrites); i++ {
op := rewrites[i]
- if op == nil{continue}
+ if op == nil {
+ continue
+ }
rop, ok := op.(*ReplaceOp)
- if !ok{continue}
+ if !ok {
+ continue
+ }
// Wipe prior inserts within range
- for j:=0; j rop.index && iop.index <=rop.LastIndex{
+ } else if iop.index > rop.index && iop.index <= rop.LastIndex {
// delete insert as it's a no-op.
rewrites[iop.instruction_index] = nil
}
}
}
// Drop any prior replaces contained within
- for j:=0; j=rop.index && prevop.LastIndex <= rop.LastIndex{
+ for j := 0; j < i && j < len(rewrites); j++ {
+ if prevop, ok := rewrites[j].(*ReplaceOp); ok {
+ if prevop.index >= rop.index && prevop.LastIndex <= rop.LastIndex {
// delete replace as it's a no-op.
rewrites[prevop.instruction_index] = nil
continue
@@ -566,61 +571,67 @@ func reduceToSingleOperationPerIndex(rewrites []RewriteOperation) map[int]Rewrit
disjoint := prevop.LastIndex < rop.index || prevop.index > rop.LastIndex
// Delete special case of replace (text==null):
// D.i-j.u D.x-y.v | boundaries overlap combine to max(min)..max(right)
- if prevop.text == "" && rop.text == "" && !disjoint{
+ if prevop.text == "" && rop.text == "" && !disjoint {
rewrites[prevop.instruction_index] = nil
rop.index = min(prevop.index, rop.index)
rop.LastIndex = max(prevop.LastIndex, rop.LastIndex)
println("new rop" + rop.String()) //TODO: remove console write, taken from Java version
- }else if !disjoint{
+ } else if !disjoint {
panic("replace op boundaries of " + rop.String() + " overlap with previous " + prevop.String())
}
}
}
}
// WALK INSERTS
- for i:=0; i < len(rewrites); i++ {
+ for i := 0; i < len(rewrites); i++ {
op := rewrites[i]
- if op == nil{continue}
+ if op == nil {
+ continue
+ }
//hack to replicate inheritance in composition
_, iok := rewrites[i].(*InsertBeforeOp)
_, aok := rewrites[i].(*InsertAfterOp)
- if !iok && !aok{continue}
+ if !iok && !aok {
+ continue
+ }
iop := rewrites[i]
// combine current insert with prior if any at same index
// deviating a bit from TokenStreamRewriter.java - hard to incorporate inheritance logic
- for j:=0; j= rop.index && iop.GetIndex() <= rop.LastIndex{
- panic("insert op "+iop.String()+" within boundaries of previous "+rop.String())
+ if iop.GetIndex() >= rop.index && iop.GetIndex() <= rop.LastIndex {
+ panic("insert op " + iop.String() + " within boundaries of previous " + rop.String())
}
}
}
}
m := map[int]RewriteOperation{}
- for i:=0; i < len(rewrites); i++{
+ for i := 0; i < len(rewrites); i++ {
op := rewrites[i]
- if op == nil {continue}
- if _, ok := m[op.GetIndex()]; ok{
+ if op == nil {
+ continue
+ }
+ if _, ok := m[op.GetIndex()]; ok {
panic("should only be one op per index")
}
m[op.GetIndex()] = op
@@ -628,22 +639,21 @@ func reduceToSingleOperationPerIndex(rewrites []RewriteOperation) map[int]Rewrit
return m
}
-
/*
Quick fixing Go lack of overloads
- */
+*/
-func max(a,b int)int{
- if a>b{
+func max(a, b int) int {
+ if a > b {
return a
- }else {
+ } else {
return b
}
}
-func min(a,b int)int{
- if a as.threshold {
as.expand()
}
@@ -98,7 +96,7 @@ func (as *array2DHashSet) expand() {
b := as.getBuckets(o)
bucketLength := newBucketLengths[b]
- var newBucket []interface{}
+ var newBucket []Collectable[any]
if bucketLength == 0 {
// new bucket
newBucket = as.createBucket(as.initialBucketCapacity)
@@ -107,7 +105,7 @@ func (as *array2DHashSet) expand() {
newBucket = newTable[b]
if bucketLength == len(newBucket) {
// expand
- newBucketCopy := make([]interface{}, len(newBucket)<<1)
+ newBucketCopy := make([]Collectable[any], len(newBucket)<<1)
copy(newBucketCopy[:bucketLength], newBucket)
newBucket = newBucketCopy
newTable[b] = newBucket
@@ -124,7 +122,7 @@ func (as *array2DHashSet) Len() int {
return as.n
}
-func (as *array2DHashSet) Get(o interface{}) interface{} {
+func (as *array2DHashSet) Get(o Collectable[any]) interface{} {
if o == nil {
return nil
}
@@ -147,7 +145,7 @@ func (as *array2DHashSet) Get(o interface{}) interface{} {
return nil
}
-func (as *array2DHashSet) innerAdd(o interface{}) interface{} {
+func (as *array2DHashSet) innerAdd(o Collectable[any]) interface{} {
b := as.getBuckets(o)
bucket := as.buckets[b]
@@ -178,7 +176,7 @@ func (as *array2DHashSet) innerAdd(o interface{}) interface{} {
// full bucket, expand and add to end
oldLength := len(bucket)
- bucketCopy := make([]interface{}, oldLength<<1)
+ bucketCopy := make([]Collectable[any], oldLength<<1)
copy(bucketCopy[:oldLength], bucket)
bucket = bucketCopy
as.buckets[b] = bucket
@@ -187,22 +185,22 @@ func (as *array2DHashSet) innerAdd(o interface{}) interface{} {
return o
}
-func (as *array2DHashSet) getBuckets(value interface{}) int {
+func (as *array2DHashSet) getBuckets(value Collectable[any]) int {
hash := as.hashcodeFunction(value)
return hash & (len(as.buckets) - 1)
}
-func (as *array2DHashSet) createBuckets(cap int) [][]interface{} {
- return make([][]interface{}, cap)
+func (as *array2DHashSet) createBuckets(cap int) [][]Collectable[any] {
+ return make([][]Collectable[any], cap)
}
-func (as *array2DHashSet) createBucket(cap int) []interface{} {
- return make([]interface{}, cap)
+func (as *array2DHashSet) createBucket(cap int) []Collectable[any] {
+ return make([]Collectable[any], cap)
}
func newArray2DHashSetWithCap(
hashcodeFunction func(interface{}) int,
- equalsFunction func(interface{}, interface{}) bool,
+ equalsFunction func(Collectable[any], Collectable[any]) bool,
initCap int,
initBucketCap int,
) *array2DHashSet {
@@ -231,7 +229,7 @@ func newArray2DHashSetWithCap(
func newArray2DHashSet(
hashcodeFunction func(interface{}) int,
- equalsFunction func(interface{}, interface{}) bool,
+ equalsFunction func(Collectable[any], Collectable[any]) bool,
) *array2DHashSet {
return newArray2DHashSetWithCap(hashcodeFunction, equalsFunction, _initalCapacity, _initalBucketCapacity)
}
diff --git a/tools/vendor/github.com/asaskevich/govalidator/validator.go b/tools/vendor/github.com/asaskevich/govalidator/validator.go
index 46ecfc84a..c9c4fac06 100644
--- a/tools/vendor/github.com/asaskevich/govalidator/validator.go
+++ b/tools/vendor/github.com/asaskevich/govalidator/validator.go
@@ -454,27 +454,26 @@ func IsCreditCard(str string) bool {
if !rxCreditCard.MatchString(sanitized) {
return false
}
+
+ number, _ := ToInt(sanitized)
+ number, lastDigit := number / 10, number % 10
+
var sum int64
- var digit string
- var tmpNum int64
- var shouldDouble bool
- for i := len(sanitized) - 1; i >= 0; i-- {
- digit = sanitized[i:(i + 1)]
- tmpNum, _ = ToInt(digit)
- if shouldDouble {
- tmpNum *= 2
- if tmpNum >= 10 {
- sum += (tmpNum % 10) + 1
- } else {
- sum += tmpNum
+ for i:=0; number > 0; i++ {
+ digit := number % 10
+
+ if i % 2 == 0 {
+ digit *= 2
+ if digit > 9 {
+ digit -= 9
}
- } else {
- sum += tmpNum
}
- shouldDouble = !shouldDouble
+
+ sum += digit
+ number = number / 10
}
-
- return sum%10 == 0
+
+ return (sum + lastDigit) % 10 == 0
}
// IsISBN10 checks if the string is an ISBN version 10.
diff --git a/tools/vendor/github.com/cenkalti/backoff/v4/.travis.yml b/tools/vendor/github.com/cenkalti/backoff/v4/.travis.yml
deleted file mode 100644
index c79105c2f..000000000
--- a/tools/vendor/github.com/cenkalti/backoff/v4/.travis.yml
+++ /dev/null
@@ -1,10 +0,0 @@
-language: go
-go:
- - 1.13
- - 1.x
- - tip
-before_install:
- - go get github.com/mattn/goveralls
- - go get golang.org/x/tools/cmd/cover
-script:
- - $HOME/gopath/bin/goveralls -service=travis-ci
diff --git a/tools/vendor/github.com/cenkalti/backoff/v4/retry.go b/tools/vendor/github.com/cenkalti/backoff/v4/retry.go
index 1ce2507eb..b9c0c51cd 100644
--- a/tools/vendor/github.com/cenkalti/backoff/v4/retry.go
+++ b/tools/vendor/github.com/cenkalti/backoff/v4/retry.go
@@ -5,10 +5,20 @@ import (
"time"
)
+// An OperationWithData is executing by RetryWithData() or RetryNotifyWithData().
+// The operation will be retried using a backoff policy if it returns an error.
+type OperationWithData[T any] func() (T, error)
+
// An Operation is executing by Retry() or RetryNotify().
// The operation will be retried using a backoff policy if it returns an error.
type Operation func() error
+func (o Operation) withEmptyData() OperationWithData[struct{}] {
+ return func() (struct{}, error) {
+ return struct{}{}, o()
+ }
+}
+
// Notify is a notify-on-error function. It receives an operation error and
// backoff delay if the operation failed (with an error).
//
@@ -28,18 +38,41 @@ func Retry(o Operation, b BackOff) error {
return RetryNotify(o, b, nil)
}
+// RetryWithData is like Retry but returns data in the response too.
+func RetryWithData[T any](o OperationWithData[T], b BackOff) (T, error) {
+ return RetryNotifyWithData(o, b, nil)
+}
+
// RetryNotify calls notify function with the error and wait duration
// for each failed attempt before sleep.
func RetryNotify(operation Operation, b BackOff, notify Notify) error {
return RetryNotifyWithTimer(operation, b, notify, nil)
}
+// RetryNotifyWithData is like RetryNotify but returns data in the response too.
+func RetryNotifyWithData[T any](operation OperationWithData[T], b BackOff, notify Notify) (T, error) {
+ return doRetryNotify(operation, b, notify, nil)
+}
+
// RetryNotifyWithTimer calls notify function with the error and wait duration using the given Timer
// for each failed attempt before sleep.
// A default timer that uses system timer is used when nil is passed.
func RetryNotifyWithTimer(operation Operation, b BackOff, notify Notify, t Timer) error {
- var err error
- var next time.Duration
+ _, err := doRetryNotify(operation.withEmptyData(), b, notify, t)
+ return err
+}
+
+// RetryNotifyWithTimerAndData is like RetryNotifyWithTimer but returns data in the response too.
+func RetryNotifyWithTimerAndData[T any](operation OperationWithData[T], b BackOff, notify Notify, t Timer) (T, error) {
+ return doRetryNotify(operation, b, notify, t)
+}
+
+func doRetryNotify[T any](operation OperationWithData[T], b BackOff, notify Notify, t Timer) (T, error) {
+ var (
+ err error
+ next time.Duration
+ res T
+ )
if t == nil {
t = &defaultTimer{}
}
@@ -52,21 +85,22 @@ func RetryNotifyWithTimer(operation Operation, b BackOff, notify Notify, t Timer
b.Reset()
for {
- if err = operation(); err == nil {
- return nil
+ res, err = operation()
+ if err == nil {
+ return res, nil
}
var permanent *PermanentError
if errors.As(err, &permanent) {
- return permanent.Err
+ return res, permanent.Err
}
if next = b.NextBackOff(); next == Stop {
if cerr := ctx.Err(); cerr != nil {
- return cerr
+ return res, cerr
}
- return err
+ return res, err
}
if notify != nil {
@@ -77,7 +111,7 @@ func RetryNotifyWithTimer(operation Operation, b BackOff, notify Notify, t Timer
select {
case <-ctx.Done():
- return ctx.Err()
+ return res, ctx.Err()
case <-t.C():
}
}
diff --git a/tools/vendor/github.com/cespare/xxhash/v2/README.md b/tools/vendor/github.com/cespare/xxhash/v2/README.md
index 792b4a60b..8bf0e5b78 100644
--- a/tools/vendor/github.com/cespare/xxhash/v2/README.md
+++ b/tools/vendor/github.com/cespare/xxhash/v2/README.md
@@ -3,8 +3,7 @@
[![Go Reference](https://pkg.go.dev/badge/github.com/cespare/xxhash/v2.svg)](https://pkg.go.dev/github.com/cespare/xxhash/v2)
[![Test](https://github.com/cespare/xxhash/actions/workflows/test.yml/badge.svg)](https://github.com/cespare/xxhash/actions/workflows/test.yml)
-xxhash is a Go implementation of the 64-bit
-[xxHash](http://cyan4973.github.io/xxHash/) algorithm, XXH64. This is a
+xxhash is a Go implementation of the 64-bit [xxHash] algorithm, XXH64. This is a
high-quality hashing algorithm that is much faster than anything in the Go
standard library.
@@ -25,8 +24,11 @@ func (*Digest) WriteString(string) (int, error)
func (*Digest) Sum64() uint64
```
-This implementation provides a fast pure-Go implementation and an even faster
-assembly implementation for amd64.
+The package is written with optimized pure Go and also contains even faster
+assembly implementations for amd64 and arm64. If desired, the `purego` build tag
+opts into using the Go code even on those architectures.
+
+[xxHash]: http://cyan4973.github.io/xxHash/
## Compatibility
@@ -45,19 +47,20 @@ I recommend using the latest release of Go.
Here are some quick benchmarks comparing the pure-Go and assembly
implementations of Sum64.
-| input size | purego | asm |
-| --- | --- | --- |
-| 5 B | 979.66 MB/s | 1291.17 MB/s |
-| 100 B | 7475.26 MB/s | 7973.40 MB/s |
-| 4 KB | 17573.46 MB/s | 17602.65 MB/s |
-| 10 MB | 17131.46 MB/s | 17142.16 MB/s |
+| input size | purego | asm |
+| ---------- | --------- | --------- |
+| 4 B | 1.3 GB/s | 1.2 GB/s |
+| 16 B | 2.9 GB/s | 3.5 GB/s |
+| 100 B | 6.9 GB/s | 8.1 GB/s |
+| 4 KB | 11.7 GB/s | 16.7 GB/s |
+| 10 MB | 12.0 GB/s | 17.3 GB/s |
-These numbers were generated on Ubuntu 18.04 with an Intel i7-8700K CPU using
-the following commands under Go 1.11.2:
+These numbers were generated on Ubuntu 20.04 with an Intel Xeon Platinum 8252C
+CPU using the following commands under Go 1.19.2:
```
-$ go test -tags purego -benchtime 10s -bench '/xxhash,direct,bytes'
-$ go test -benchtime 10s -bench '/xxhash,direct,bytes'
+benchstat <(go test -tags purego -benchtime 500ms -count 15 -bench 'Sum64$')
+benchstat <(go test -benchtime 500ms -count 15 -bench 'Sum64$')
```
## Projects using this package
diff --git a/tools/vendor/github.com/cespare/xxhash/v2/testall.sh b/tools/vendor/github.com/cespare/xxhash/v2/testall.sh
new file mode 100644
index 000000000..94b9c4439
--- /dev/null
+++ b/tools/vendor/github.com/cespare/xxhash/v2/testall.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+set -eu -o pipefail
+
+# Small convenience script for running the tests with various combinations of
+# arch/tags. This assumes we're running on amd64 and have qemu available.
+
+go test ./...
+go test -tags purego ./...
+GOARCH=arm64 go test
+GOARCH=arm64 go test -tags purego
diff --git a/tools/vendor/github.com/cespare/xxhash/v2/xxhash.go b/tools/vendor/github.com/cespare/xxhash/v2/xxhash.go
index 15c835d54..a9e0d45c9 100644
--- a/tools/vendor/github.com/cespare/xxhash/v2/xxhash.go
+++ b/tools/vendor/github.com/cespare/xxhash/v2/xxhash.go
@@ -16,19 +16,11 @@ const (
prime5 uint64 = 2870177450012600261
)
-// NOTE(caleb): I'm using both consts and vars of the primes. Using consts where
-// possible in the Go code is worth a small (but measurable) performance boost
-// by avoiding some MOVQs. Vars are needed for the asm and also are useful for
-// convenience in the Go code in a few places where we need to intentionally
-// avoid constant arithmetic (e.g., v1 := prime1 + prime2 fails because the
-// result overflows a uint64).
-var (
- prime1v = prime1
- prime2v = prime2
- prime3v = prime3
- prime4v = prime4
- prime5v = prime5
-)
+// Store the primes in an array as well.
+//
+// The consts are used when possible in Go code to avoid MOVs but we need a
+// contiguous array of the assembly code.
+var primes = [...]uint64{prime1, prime2, prime3, prime4, prime5}
// Digest implements hash.Hash64.
type Digest struct {
@@ -50,10 +42,10 @@ func New() *Digest {
// Reset clears the Digest's state so that it can be reused.
func (d *Digest) Reset() {
- d.v1 = prime1v + prime2
+ d.v1 = primes[0] + prime2
d.v2 = prime2
d.v3 = 0
- d.v4 = -prime1v
+ d.v4 = -primes[0]
d.total = 0
d.n = 0
}
@@ -69,21 +61,23 @@ func (d *Digest) Write(b []byte) (n int, err error) {
n = len(b)
d.total += uint64(n)
+ memleft := d.mem[d.n&(len(d.mem)-1):]
+
if d.n+n < 32 {
// This new data doesn't even fill the current block.
- copy(d.mem[d.n:], b)
+ copy(memleft, b)
d.n += n
return
}
if d.n > 0 {
// Finish off the partial block.
- copy(d.mem[d.n:], b)
+ c := copy(memleft, b)
d.v1 = round(d.v1, u64(d.mem[0:8]))
d.v2 = round(d.v2, u64(d.mem[8:16]))
d.v3 = round(d.v3, u64(d.mem[16:24]))
d.v4 = round(d.v4, u64(d.mem[24:32]))
- b = b[32-d.n:]
+ b = b[c:]
d.n = 0
}
@@ -133,21 +127,20 @@ func (d *Digest) Sum64() uint64 {
h += d.total
- i, end := 0, d.n
- for ; i+8 <= end; i += 8 {
- k1 := round(0, u64(d.mem[i:i+8]))
+ b := d.mem[:d.n&(len(d.mem)-1)]
+ for ; len(b) >= 8; b = b[8:] {
+ k1 := round(0, u64(b[:8]))
h ^= k1
h = rol27(h)*prime1 + prime4
}
- if i+4 <= end {
- h ^= uint64(u32(d.mem[i:i+4])) * prime1
+ if len(b) >= 4 {
+ h ^= uint64(u32(b[:4])) * prime1
h = rol23(h)*prime2 + prime3
- i += 4
+ b = b[4:]
}
- for i < end {
- h ^= uint64(d.mem[i]) * prime5
+ for ; len(b) > 0; b = b[1:] {
+ h ^= uint64(b[0]) * prime5
h = rol11(h) * prime1
- i++
}
h ^= h >> 33
diff --git a/tools/vendor/github.com/cespare/xxhash/v2/xxhash_amd64.s b/tools/vendor/github.com/cespare/xxhash/v2/xxhash_amd64.s
index be8db5bf7..3e8b13257 100644
--- a/tools/vendor/github.com/cespare/xxhash/v2/xxhash_amd64.s
+++ b/tools/vendor/github.com/cespare/xxhash/v2/xxhash_amd64.s
@@ -1,215 +1,209 @@
+//go:build !appengine && gc && !purego
// +build !appengine
// +build gc
// +build !purego
#include "textflag.h"
-// Register allocation:
-// AX h
-// SI pointer to advance through b
-// DX n
-// BX loop end
-// R8 v1, k1
-// R9 v2
-// R10 v3
-// R11 v4
-// R12 tmp
-// R13 prime1v
-// R14 prime2v
-// DI prime4v
-
-// round reads from and advances the buffer pointer in SI.
-// It assumes that R13 has prime1v and R14 has prime2v.
-#define round(r) \
- MOVQ (SI), R12 \
- ADDQ $8, SI \
- IMULQ R14, R12 \
- ADDQ R12, r \
- ROLQ $31, r \
- IMULQ R13, r
-
-// mergeRound applies a merge round on the two registers acc and val.
-// It assumes that R13 has prime1v, R14 has prime2v, and DI has prime4v.
-#define mergeRound(acc, val) \
- IMULQ R14, val \
- ROLQ $31, val \
- IMULQ R13, val \
- XORQ val, acc \
- IMULQ R13, acc \
- ADDQ DI, acc
+// Registers:
+#define h AX
+#define d AX
+#define p SI // pointer to advance through b
+#define n DX
+#define end BX // loop end
+#define v1 R8
+#define v2 R9
+#define v3 R10
+#define v4 R11
+#define x R12
+#define prime1 R13
+#define prime2 R14
+#define prime4 DI
+
+#define round(acc, x) \
+ IMULQ prime2, x \
+ ADDQ x, acc \
+ ROLQ $31, acc \
+ IMULQ prime1, acc
+
+// round0 performs the operation x = round(0, x).
+#define round0(x) \
+ IMULQ prime2, x \
+ ROLQ $31, x \
+ IMULQ prime1, x
+
+// mergeRound applies a merge round on the two registers acc and x.
+// It assumes that prime1, prime2, and prime4 have been loaded.
+#define mergeRound(acc, x) \
+ round0(x) \
+ XORQ x, acc \
+ IMULQ prime1, acc \
+ ADDQ prime4, acc
+
+// blockLoop processes as many 32-byte blocks as possible,
+// updating v1, v2, v3, and v4. It assumes that there is at least one block
+// to process.
+#define blockLoop() \
+loop: \
+ MOVQ +0(p), x \
+ round(v1, x) \
+ MOVQ +8(p), x \
+ round(v2, x) \
+ MOVQ +16(p), x \
+ round(v3, x) \
+ MOVQ +24(p), x \
+ round(v4, x) \
+ ADDQ $32, p \
+ CMPQ p, end \
+ JLE loop
// func Sum64(b []byte) uint64
-TEXT ·Sum64(SB), NOSPLIT, $0-32
+TEXT ·Sum64(SB), NOSPLIT|NOFRAME, $0-32
// Load fixed primes.
- MOVQ ·prime1v(SB), R13
- MOVQ ·prime2v(SB), R14
- MOVQ ·prime4v(SB), DI
+ MOVQ ·primes+0(SB), prime1
+ MOVQ ·primes+8(SB), prime2
+ MOVQ ·primes+24(SB), prime4
// Load slice.
- MOVQ b_base+0(FP), SI
- MOVQ b_len+8(FP), DX
- LEAQ (SI)(DX*1), BX
+ MOVQ b_base+0(FP), p
+ MOVQ b_len+8(FP), n
+ LEAQ (p)(n*1), end
// The first loop limit will be len(b)-32.
- SUBQ $32, BX
+ SUBQ $32, end
// Check whether we have at least one block.
- CMPQ DX, $32
+ CMPQ n, $32
JLT noBlocks
// Set up initial state (v1, v2, v3, v4).
- MOVQ R13, R8
- ADDQ R14, R8
- MOVQ R14, R9
- XORQ R10, R10
- XORQ R11, R11
- SUBQ R13, R11
-
- // Loop until SI > BX.
-blockLoop:
- round(R8)
- round(R9)
- round(R10)
- round(R11)
-
- CMPQ SI, BX
- JLE blockLoop
-
- MOVQ R8, AX
- ROLQ $1, AX
- MOVQ R9, R12
- ROLQ $7, R12
- ADDQ R12, AX
- MOVQ R10, R12
- ROLQ $12, R12
- ADDQ R12, AX
- MOVQ R11, R12
- ROLQ $18, R12
- ADDQ R12, AX
-
- mergeRound(AX, R8)
- mergeRound(AX, R9)
- mergeRound(AX, R10)
- mergeRound(AX, R11)
+ MOVQ prime1, v1
+ ADDQ prime2, v1
+ MOVQ prime2, v2
+ XORQ v3, v3
+ XORQ v4, v4
+ SUBQ prime1, v4
+
+ blockLoop()
+
+ MOVQ v1, h
+ ROLQ $1, h
+ MOVQ v2, x
+ ROLQ $7, x
+ ADDQ x, h
+ MOVQ v3, x
+ ROLQ $12, x
+ ADDQ x, h
+ MOVQ v4, x
+ ROLQ $18, x
+ ADDQ x, h
+
+ mergeRound(h, v1)
+ mergeRound(h, v2)
+ mergeRound(h, v3)
+ mergeRound(h, v4)
JMP afterBlocks
noBlocks:
- MOVQ ·prime5v(SB), AX
+ MOVQ ·primes+32(SB), h
afterBlocks:
- ADDQ DX, AX
-
- // Right now BX has len(b)-32, and we want to loop until SI > len(b)-8.
- ADDQ $24, BX
-
- CMPQ SI, BX
- JG fourByte
-
-wordLoop:
- // Calculate k1.
- MOVQ (SI), R8
- ADDQ $8, SI
- IMULQ R14, R8
- ROLQ $31, R8
- IMULQ R13, R8
-
- XORQ R8, AX
- ROLQ $27, AX
- IMULQ R13, AX
- ADDQ DI, AX
-
- CMPQ SI, BX
- JLE wordLoop
-
-fourByte:
- ADDQ $4, BX
- CMPQ SI, BX
- JG singles
-
- MOVL (SI), R8
- ADDQ $4, SI
- IMULQ R13, R8
- XORQ R8, AX
-
- ROLQ $23, AX
- IMULQ R14, AX
- ADDQ ·prime3v(SB), AX
-
-singles:
- ADDQ $4, BX
- CMPQ SI, BX
+ ADDQ n, h
+
+ ADDQ $24, end
+ CMPQ p, end
+ JG try4
+
+loop8:
+ MOVQ (p), x
+ ADDQ $8, p
+ round0(x)
+ XORQ x, h
+ ROLQ $27, h
+ IMULQ prime1, h
+ ADDQ prime4, h
+
+ CMPQ p, end
+ JLE loop8
+
+try4:
+ ADDQ $4, end
+ CMPQ p, end
+ JG try1
+
+ MOVL (p), x
+ ADDQ $4, p
+ IMULQ prime1, x
+ XORQ x, h
+
+ ROLQ $23, h
+ IMULQ prime2, h
+ ADDQ ·primes+16(SB), h
+
+try1:
+ ADDQ $4, end
+ CMPQ p, end
JGE finalize
-singlesLoop:
- MOVBQZX (SI), R12
- ADDQ $1, SI
- IMULQ ·prime5v(SB), R12
- XORQ R12, AX
+loop1:
+ MOVBQZX (p), x
+ ADDQ $1, p
+ IMULQ ·primes+32(SB), x
+ XORQ x, h
+ ROLQ $11, h
+ IMULQ prime1, h
- ROLQ $11, AX
- IMULQ R13, AX
-
- CMPQ SI, BX
- JL singlesLoop
+ CMPQ p, end
+ JL loop1
finalize:
- MOVQ AX, R12
- SHRQ $33, R12
- XORQ R12, AX
- IMULQ R14, AX
- MOVQ AX, R12
- SHRQ $29, R12
- XORQ R12, AX
- IMULQ ·prime3v(SB), AX
- MOVQ AX, R12
- SHRQ $32, R12
- XORQ R12, AX
-
- MOVQ AX, ret+24(FP)
+ MOVQ h, x
+ SHRQ $33, x
+ XORQ x, h
+ IMULQ prime2, h
+ MOVQ h, x
+ SHRQ $29, x
+ XORQ x, h
+ IMULQ ·primes+16(SB), h
+ MOVQ h, x
+ SHRQ $32, x
+ XORQ x, h
+
+ MOVQ h, ret+24(FP)
RET
-// writeBlocks uses the same registers as above except that it uses AX to store
-// the d pointer.
-
// func writeBlocks(d *Digest, b []byte) int
-TEXT ·writeBlocks(SB), NOSPLIT, $0-40
+TEXT ·writeBlocks(SB), NOSPLIT|NOFRAME, $0-40
// Load fixed primes needed for round.
- MOVQ ·prime1v(SB), R13
- MOVQ ·prime2v(SB), R14
+ MOVQ ·primes+0(SB), prime1
+ MOVQ ·primes+8(SB), prime2
// Load slice.
- MOVQ b_base+8(FP), SI
- MOVQ b_len+16(FP), DX
- LEAQ (SI)(DX*1), BX
- SUBQ $32, BX
+ MOVQ b_base+8(FP), p
+ MOVQ b_len+16(FP), n
+ LEAQ (p)(n*1), end
+ SUBQ $32, end
// Load vN from d.
- MOVQ d+0(FP), AX
- MOVQ 0(AX), R8 // v1
- MOVQ 8(AX), R9 // v2
- MOVQ 16(AX), R10 // v3
- MOVQ 24(AX), R11 // v4
+ MOVQ s+0(FP), d
+ MOVQ 0(d), v1
+ MOVQ 8(d), v2
+ MOVQ 16(d), v3
+ MOVQ 24(d), v4
// We don't need to check the loop condition here; this function is
// always called with at least one block of data to process.
-blockLoop:
- round(R8)
- round(R9)
- round(R10)
- round(R11)
-
- CMPQ SI, BX
- JLE blockLoop
+ blockLoop()
// Copy vN back to d.
- MOVQ R8, 0(AX)
- MOVQ R9, 8(AX)
- MOVQ R10, 16(AX)
- MOVQ R11, 24(AX)
-
- // The number of bytes written is SI minus the old base pointer.
- SUBQ b_base+8(FP), SI
- MOVQ SI, ret+32(FP)
+ MOVQ v1, 0(d)
+ MOVQ v2, 8(d)
+ MOVQ v3, 16(d)
+ MOVQ v4, 24(d)
+
+ // The number of bytes written is p minus the old base pointer.
+ SUBQ b_base+8(FP), p
+ MOVQ p, ret+32(FP)
RET
diff --git a/tools/vendor/github.com/cespare/xxhash/v2/xxhash_arm64.s b/tools/vendor/github.com/cespare/xxhash/v2/xxhash_arm64.s
new file mode 100644
index 000000000..7e3145a22
--- /dev/null
+++ b/tools/vendor/github.com/cespare/xxhash/v2/xxhash_arm64.s
@@ -0,0 +1,183 @@
+//go:build !appengine && gc && !purego
+// +build !appengine
+// +build gc
+// +build !purego
+
+#include "textflag.h"
+
+// Registers:
+#define digest R1
+#define h R2 // return value
+#define p R3 // input pointer
+#define n R4 // input length
+#define nblocks R5 // n / 32
+#define prime1 R7
+#define prime2 R8
+#define prime3 R9
+#define prime4 R10
+#define prime5 R11
+#define v1 R12
+#define v2 R13
+#define v3 R14
+#define v4 R15
+#define x1 R20
+#define x2 R21
+#define x3 R22
+#define x4 R23
+
+#define round(acc, x) \
+ MADD prime2, acc, x, acc \
+ ROR $64-31, acc \
+ MUL prime1, acc
+
+// round0 performs the operation x = round(0, x).
+#define round0(x) \
+ MUL prime2, x \
+ ROR $64-31, x \
+ MUL prime1, x
+
+#define mergeRound(acc, x) \
+ round0(x) \
+ EOR x, acc \
+ MADD acc, prime4, prime1, acc
+
+// blockLoop processes as many 32-byte blocks as possible,
+// updating v1, v2, v3, and v4. It assumes that n >= 32.
+#define blockLoop() \
+ LSR $5, n, nblocks \
+ PCALIGN $16 \
+ loop: \
+ LDP.P 16(p), (x1, x2) \
+ LDP.P 16(p), (x3, x4) \
+ round(v1, x1) \
+ round(v2, x2) \
+ round(v3, x3) \
+ round(v4, x4) \
+ SUB $1, nblocks \
+ CBNZ nblocks, loop
+
+// func Sum64(b []byte) uint64
+TEXT ·Sum64(SB), NOSPLIT|NOFRAME, $0-32
+ LDP b_base+0(FP), (p, n)
+
+ LDP ·primes+0(SB), (prime1, prime2)
+ LDP ·primes+16(SB), (prime3, prime4)
+ MOVD ·primes+32(SB), prime5
+
+ CMP $32, n
+ CSEL LT, prime5, ZR, h // if n < 32 { h = prime5 } else { h = 0 }
+ BLT afterLoop
+
+ ADD prime1, prime2, v1
+ MOVD prime2, v2
+ MOVD $0, v3
+ NEG prime1, v4
+
+ blockLoop()
+
+ ROR $64-1, v1, x1
+ ROR $64-7, v2, x2
+ ADD x1, x2
+ ROR $64-12, v3, x3
+ ROR $64-18, v4, x4
+ ADD x3, x4
+ ADD x2, x4, h
+
+ mergeRound(h, v1)
+ mergeRound(h, v2)
+ mergeRound(h, v3)
+ mergeRound(h, v4)
+
+afterLoop:
+ ADD n, h
+
+ TBZ $4, n, try8
+ LDP.P 16(p), (x1, x2)
+
+ round0(x1)
+
+ // NOTE: here and below, sequencing the EOR after the ROR (using a
+ // rotated register) is worth a small but measurable speedup for small
+ // inputs.
+ ROR $64-27, h
+ EOR x1 @> 64-27, h, h
+ MADD h, prime4, prime1, h
+
+ round0(x2)
+ ROR $64-27, h
+ EOR x2 @> 64-27, h, h
+ MADD h, prime4, prime1, h
+
+try8:
+ TBZ $3, n, try4
+ MOVD.P 8(p), x1
+
+ round0(x1)
+ ROR $64-27, h
+ EOR x1 @> 64-27, h, h
+ MADD h, prime4, prime1, h
+
+try4:
+ TBZ $2, n, try2
+ MOVWU.P 4(p), x2
+
+ MUL prime1, x2
+ ROR $64-23, h
+ EOR x2 @> 64-23, h, h
+ MADD h, prime3, prime2, h
+
+try2:
+ TBZ $1, n, try1
+ MOVHU.P 2(p), x3
+ AND $255, x3, x1
+ LSR $8, x3, x2
+
+ MUL prime5, x1
+ ROR $64-11, h
+ EOR x1 @> 64-11, h, h
+ MUL prime1, h
+
+ MUL prime5, x2
+ ROR $64-11, h
+ EOR x2 @> 64-11, h, h
+ MUL prime1, h
+
+try1:
+ TBZ $0, n, finalize
+ MOVBU (p), x4
+
+ MUL prime5, x4
+ ROR $64-11, h
+ EOR x4 @> 64-11, h, h
+ MUL prime1, h
+
+finalize:
+ EOR h >> 33, h
+ MUL prime2, h
+ EOR h >> 29, h
+ MUL prime3, h
+ EOR h >> 32, h
+
+ MOVD h, ret+24(FP)
+ RET
+
+// func writeBlocks(d *Digest, b []byte) int
+TEXT ·writeBlocks(SB), NOSPLIT|NOFRAME, $0-40
+ LDP ·primes+0(SB), (prime1, prime2)
+
+ // Load state. Assume v[1-4] are stored contiguously.
+ MOVD d+0(FP), digest
+ LDP 0(digest), (v1, v2)
+ LDP 16(digest), (v3, v4)
+
+ LDP b_base+8(FP), (p, n)
+
+ blockLoop()
+
+ // Store updated state.
+ STP (v1, v2), 0(digest)
+ STP (v3, v4), 16(digest)
+
+ BIC $31, n
+ MOVD n, ret+32(FP)
+ RET
diff --git a/tools/vendor/github.com/cespare/xxhash/v2/xxhash_amd64.go b/tools/vendor/github.com/cespare/xxhash/v2/xxhash_asm.go
similarity index 73%
rename from tools/vendor/github.com/cespare/xxhash/v2/xxhash_amd64.go
rename to tools/vendor/github.com/cespare/xxhash/v2/xxhash_asm.go
index ad14b807f..9216e0a40 100644
--- a/tools/vendor/github.com/cespare/xxhash/v2/xxhash_amd64.go
+++ b/tools/vendor/github.com/cespare/xxhash/v2/xxhash_asm.go
@@ -1,3 +1,5 @@
+//go:build (amd64 || arm64) && !appengine && gc && !purego
+// +build amd64 arm64
// +build !appengine
// +build gc
// +build !purego
diff --git a/tools/vendor/github.com/cespare/xxhash/v2/xxhash_other.go b/tools/vendor/github.com/cespare/xxhash/v2/xxhash_other.go
index 4a5a82160..26df13bba 100644
--- a/tools/vendor/github.com/cespare/xxhash/v2/xxhash_other.go
+++ b/tools/vendor/github.com/cespare/xxhash/v2/xxhash_other.go
@@ -1,4 +1,5 @@
-// +build !amd64 appengine !gc purego
+//go:build (!amd64 && !arm64) || appengine || !gc || purego
+// +build !amd64,!arm64 appengine !gc purego
package xxhash
@@ -14,10 +15,10 @@ func Sum64(b []byte) uint64 {
var h uint64
if n >= 32 {
- v1 := prime1v + prime2
+ v1 := primes[0] + prime2
v2 := prime2
v3 := uint64(0)
- v4 := -prime1v
+ v4 := -primes[0]
for len(b) >= 32 {
v1 = round(v1, u64(b[0:8:len(b)]))
v2 = round(v2, u64(b[8:16:len(b)]))
@@ -36,19 +37,18 @@ func Sum64(b []byte) uint64 {
h += uint64(n)
- i, end := 0, len(b)
- for ; i+8 <= end; i += 8 {
- k1 := round(0, u64(b[i:i+8:len(b)]))
+ for ; len(b) >= 8; b = b[8:] {
+ k1 := round(0, u64(b[:8]))
h ^= k1
h = rol27(h)*prime1 + prime4
}
- if i+4 <= end {
- h ^= uint64(u32(b[i:i+4:len(b)])) * prime1
+ if len(b) >= 4 {
+ h ^= uint64(u32(b[:4])) * prime1
h = rol23(h)*prime2 + prime3
- i += 4
+ b = b[4:]
}
- for ; i < end; i++ {
- h ^= uint64(b[i]) * prime5
+ for ; len(b) > 0; b = b[1:] {
+ h ^= uint64(b[0]) * prime5
h = rol11(h) * prime1
}
diff --git a/tools/vendor/github.com/cespare/xxhash/v2/xxhash_safe.go b/tools/vendor/github.com/cespare/xxhash/v2/xxhash_safe.go
index fc9bea7a3..e86f1b5fd 100644
--- a/tools/vendor/github.com/cespare/xxhash/v2/xxhash_safe.go
+++ b/tools/vendor/github.com/cespare/xxhash/v2/xxhash_safe.go
@@ -1,3 +1,4 @@
+//go:build appengine
// +build appengine
// This file contains the safe implementations of otherwise unsafe-using code.
diff --git a/tools/vendor/github.com/cespare/xxhash/v2/xxhash_unsafe.go b/tools/vendor/github.com/cespare/xxhash/v2/xxhash_unsafe.go
index 376e0ca2e..1c1638fd8 100644
--- a/tools/vendor/github.com/cespare/xxhash/v2/xxhash_unsafe.go
+++ b/tools/vendor/github.com/cespare/xxhash/v2/xxhash_unsafe.go
@@ -1,3 +1,4 @@
+//go:build !appengine
// +build !appengine
// This file encapsulates usage of unsafe.
@@ -11,7 +12,7 @@ import (
// In the future it's possible that compiler optimizations will make these
// XxxString functions unnecessary by realizing that calls such as
-// Sum64([]byte(s)) don't need to copy s. See https://golang.org/issue/2205.
+// Sum64([]byte(s)) don't need to copy s. See https://go.dev/issue/2205.
// If that happens, even if we keep these functions they can be replaced with
// the trivial safe code.
diff --git a/tools/vendor/github.com/containerd/containerd/api/events/container.pb.go b/tools/vendor/github.com/containerd/containerd/api/events/container.pb.go
new file mode 100644
index 000000000..d7d40258c
--- /dev/null
+++ b/tools/vendor/github.com/containerd/containerd/api/events/container.pb.go
@@ -0,0 +1,431 @@
+//
+//Copyright The containerd 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.
+
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// protoc-gen-go v1.28.1
+// protoc v3.20.1
+// source: github.com/containerd/containerd/api/events/container.proto
+
+package events
+
+import (
+ _ "github.com/containerd/containerd/protobuf/plugin"
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ anypb "google.golang.org/protobuf/types/known/anypb"
+ reflect "reflect"
+ sync "sync"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+type ContainerCreate struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ ID string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
+ Image string `protobuf:"bytes,2,opt,name=image,proto3" json:"image,omitempty"`
+ Runtime *ContainerCreate_Runtime `protobuf:"bytes,3,opt,name=runtime,proto3" json:"runtime,omitempty"`
+}
+
+func (x *ContainerCreate) Reset() {
+ *x = ContainerCreate{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_github_com_containerd_containerd_api_events_container_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ContainerCreate) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ContainerCreate) ProtoMessage() {}
+
+func (x *ContainerCreate) ProtoReflect() protoreflect.Message {
+ mi := &file_github_com_containerd_containerd_api_events_container_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ContainerCreate.ProtoReflect.Descriptor instead.
+func (*ContainerCreate) Descriptor() ([]byte, []int) {
+ return file_github_com_containerd_containerd_api_events_container_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *ContainerCreate) GetID() string {
+ if x != nil {
+ return x.ID
+ }
+ return ""
+}
+
+func (x *ContainerCreate) GetImage() string {
+ if x != nil {
+ return x.Image
+ }
+ return ""
+}
+
+func (x *ContainerCreate) GetRuntime() *ContainerCreate_Runtime {
+ if x != nil {
+ return x.Runtime
+ }
+ return nil
+}
+
+type ContainerUpdate struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ ID string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
+ Image string `protobuf:"bytes,2,opt,name=image,proto3" json:"image,omitempty"`
+ Labels map[string]string `protobuf:"bytes,3,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+ SnapshotKey string `protobuf:"bytes,4,opt,name=snapshot_key,json=snapshotKey,proto3" json:"snapshot_key,omitempty"`
+}
+
+func (x *ContainerUpdate) Reset() {
+ *x = ContainerUpdate{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_github_com_containerd_containerd_api_events_container_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ContainerUpdate) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ContainerUpdate) ProtoMessage() {}
+
+func (x *ContainerUpdate) ProtoReflect() protoreflect.Message {
+ mi := &file_github_com_containerd_containerd_api_events_container_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ContainerUpdate.ProtoReflect.Descriptor instead.
+func (*ContainerUpdate) Descriptor() ([]byte, []int) {
+ return file_github_com_containerd_containerd_api_events_container_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *ContainerUpdate) GetID() string {
+ if x != nil {
+ return x.ID
+ }
+ return ""
+}
+
+func (x *ContainerUpdate) GetImage() string {
+ if x != nil {
+ return x.Image
+ }
+ return ""
+}
+
+func (x *ContainerUpdate) GetLabels() map[string]string {
+ if x != nil {
+ return x.Labels
+ }
+ return nil
+}
+
+func (x *ContainerUpdate) GetSnapshotKey() string {
+ if x != nil {
+ return x.SnapshotKey
+ }
+ return ""
+}
+
+type ContainerDelete struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ ID string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
+}
+
+func (x *ContainerDelete) Reset() {
+ *x = ContainerDelete{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_github_com_containerd_containerd_api_events_container_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ContainerDelete) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ContainerDelete) ProtoMessage() {}
+
+func (x *ContainerDelete) ProtoReflect() protoreflect.Message {
+ mi := &file_github_com_containerd_containerd_api_events_container_proto_msgTypes[2]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ContainerDelete.ProtoReflect.Descriptor instead.
+func (*ContainerDelete) Descriptor() ([]byte, []int) {
+ return file_github_com_containerd_containerd_api_events_container_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *ContainerDelete) GetID() string {
+ if x != nil {
+ return x.ID
+ }
+ return ""
+}
+
+type ContainerCreate_Runtime struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+ Options *anypb.Any `protobuf:"bytes,2,opt,name=options,proto3" json:"options,omitempty"`
+}
+
+func (x *ContainerCreate_Runtime) Reset() {
+ *x = ContainerCreate_Runtime{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_github_com_containerd_containerd_api_events_container_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ContainerCreate_Runtime) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ContainerCreate_Runtime) ProtoMessage() {}
+
+func (x *ContainerCreate_Runtime) ProtoReflect() protoreflect.Message {
+ mi := &file_github_com_containerd_containerd_api_events_container_proto_msgTypes[3]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ContainerCreate_Runtime.ProtoReflect.Descriptor instead.
+func (*ContainerCreate_Runtime) Descriptor() ([]byte, []int) {
+ return file_github_com_containerd_containerd_api_events_container_proto_rawDescGZIP(), []int{0, 0}
+}
+
+func (x *ContainerCreate_Runtime) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *ContainerCreate_Runtime) GetOptions() *anypb.Any {
+ if x != nil {
+ return x.Options
+ }
+ return nil
+}
+
+var File_github_com_containerd_containerd_api_events_container_proto protoreflect.FileDescriptor
+
+var file_github_com_containerd_containerd_api_events_container_proto_rawDesc = []byte{
+ 0x0a, 0x3b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x6e,
+ 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
+ 0x72, 0x64, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x63, 0x6f,
+ 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x11, 0x63,
+ 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73,
+ 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
+ 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x40, 0x67, 0x69, 0x74,
+ 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
+ 0x72, 0x64, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2f, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2f, 0x66, 0x69,
+ 0x65, 0x6c, 0x64, 0x70, 0x61, 0x74, 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xcc, 0x01,
+ 0x0a, 0x0f, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74,
+ 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69,
+ 0x64, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x44, 0x0a, 0x07, 0x72, 0x75, 0x6e, 0x74, 0x69,
+ 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61,
+ 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x43, 0x6f, 0x6e,
+ 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x2e, 0x52, 0x75, 0x6e,
+ 0x74, 0x69, 0x6d, 0x65, 0x52, 0x07, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x1a, 0x4d, 0x0a,
+ 0x07, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x07,
+ 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e,
+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
+ 0x41, 0x6e, 0x79, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xdd, 0x01, 0x0a,
+ 0x0f, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
+ 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64,
+ 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x46, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73,
+ 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e,
+ 0x65, 0x72, 0x64, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61,
+ 0x69, 0x6e, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c,
+ 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x21,
+ 0x0a, 0x0c, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x04,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x4b, 0x65,
+ 0x79, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79,
+ 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b,
+ 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x21, 0x0a, 0x0f,
+ 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12,
+ 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x42,
+ 0x38, 0x5a, 0x32, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f,
+ 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e,
+ 0x65, 0x72, 0x64, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x3b, 0x65,
+ 0x76, 0x65, 0x6e, 0x74, 0x73, 0xa0, 0xf4, 0x1e, 0x01, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x33,
+}
+
+var (
+ file_github_com_containerd_containerd_api_events_container_proto_rawDescOnce sync.Once
+ file_github_com_containerd_containerd_api_events_container_proto_rawDescData = file_github_com_containerd_containerd_api_events_container_proto_rawDesc
+)
+
+func file_github_com_containerd_containerd_api_events_container_proto_rawDescGZIP() []byte {
+ file_github_com_containerd_containerd_api_events_container_proto_rawDescOnce.Do(func() {
+ file_github_com_containerd_containerd_api_events_container_proto_rawDescData = protoimpl.X.CompressGZIP(file_github_com_containerd_containerd_api_events_container_proto_rawDescData)
+ })
+ return file_github_com_containerd_containerd_api_events_container_proto_rawDescData
+}
+
+var file_github_com_containerd_containerd_api_events_container_proto_msgTypes = make([]protoimpl.MessageInfo, 5)
+var file_github_com_containerd_containerd_api_events_container_proto_goTypes = []interface{}{
+ (*ContainerCreate)(nil), // 0: containerd.events.ContainerCreate
+ (*ContainerUpdate)(nil), // 1: containerd.events.ContainerUpdate
+ (*ContainerDelete)(nil), // 2: containerd.events.ContainerDelete
+ (*ContainerCreate_Runtime)(nil), // 3: containerd.events.ContainerCreate.Runtime
+ nil, // 4: containerd.events.ContainerUpdate.LabelsEntry
+ (*anypb.Any)(nil), // 5: google.protobuf.Any
+}
+var file_github_com_containerd_containerd_api_events_container_proto_depIdxs = []int32{
+ 3, // 0: containerd.events.ContainerCreate.runtime:type_name -> containerd.events.ContainerCreate.Runtime
+ 4, // 1: containerd.events.ContainerUpdate.labels:type_name -> containerd.events.ContainerUpdate.LabelsEntry
+ 5, // 2: containerd.events.ContainerCreate.Runtime.options:type_name -> google.protobuf.Any
+ 3, // [3:3] is the sub-list for method output_type
+ 3, // [3:3] is the sub-list for method input_type
+ 3, // [3:3] is the sub-list for extension type_name
+ 3, // [3:3] is the sub-list for extension extendee
+ 0, // [0:3] is the sub-list for field type_name
+}
+
+func init() { file_github_com_containerd_containerd_api_events_container_proto_init() }
+func file_github_com_containerd_containerd_api_events_container_proto_init() {
+ if File_github_com_containerd_containerd_api_events_container_proto != nil {
+ return
+ }
+ if !protoimpl.UnsafeEnabled {
+ file_github_com_containerd_containerd_api_events_container_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ContainerCreate); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_github_com_containerd_containerd_api_events_container_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ContainerUpdate); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_github_com_containerd_containerd_api_events_container_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ContainerDelete); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_github_com_containerd_containerd_api_events_container_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ContainerCreate_Runtime); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_github_com_containerd_containerd_api_events_container_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 5,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_github_com_containerd_containerd_api_events_container_proto_goTypes,
+ DependencyIndexes: file_github_com_containerd_containerd_api_events_container_proto_depIdxs,
+ MessageInfos: file_github_com_containerd_containerd_api_events_container_proto_msgTypes,
+ }.Build()
+ File_github_com_containerd_containerd_api_events_container_proto = out.File
+ file_github_com_containerd_containerd_api_events_container_proto_rawDesc = nil
+ file_github_com_containerd_containerd_api_events_container_proto_goTypes = nil
+ file_github_com_containerd_containerd_api_events_container_proto_depIdxs = nil
+}
diff --git a/tools/vendor/github.com/containerd/containerd/api/events/container.proto b/tools/vendor/github.com/containerd/containerd/api/events/container.proto
new file mode 100644
index 000000000..29fd18f88
--- /dev/null
+++ b/tools/vendor/github.com/containerd/containerd/api/events/container.proto
@@ -0,0 +1,46 @@
+/*
+ Copyright The containerd 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.
+*/
+
+syntax = "proto3";
+
+package containerd.events;
+
+import "google/protobuf/any.proto";
+import "github.com/containerd/containerd/protobuf/plugin/fieldpath.proto";
+
+option go_package = "github.com/containerd/containerd/api/events;events";
+option (containerd.plugin.fieldpath_all) = true;
+
+message ContainerCreate {
+ string id = 1;
+ string image = 2;
+ message Runtime {
+ string name = 1;
+ google.protobuf.Any options = 2;
+ }
+ Runtime runtime = 3;
+}
+
+message ContainerUpdate {
+ string id = 1;
+ string image = 2;
+ map labels = 3;
+ string snapshot_key = 4;
+}
+
+message ContainerDelete {
+ string id = 1;
+}
diff --git a/tools/vendor/github.com/containerd/containerd/api/events/container_fieldpath.pb.go b/tools/vendor/github.com/containerd/containerd/api/events/container_fieldpath.pb.go
new file mode 100644
index 000000000..c23b07762
--- /dev/null
+++ b/tools/vendor/github.com/containerd/containerd/api/events/container_fieldpath.pb.go
@@ -0,0 +1,95 @@
+// Code generated by protoc-gen-go-fieldpath. DO NOT EDIT.
+// source: github.com/containerd/containerd/api/events/container.proto
+package events
+
+import (
+ v2 "github.com/containerd/typeurl/v2"
+ strings "strings"
+)
+
+// Field returns the value for the given fieldpath as a string, if defined.
+// If the value is not defined, the second value will be false.
+func (m *ContainerCreate) Field(fieldpath []string) (string, bool) {
+ if len(fieldpath) == 0 {
+ return "", false
+ }
+ switch fieldpath[0] {
+ case "id":
+ return string(m.ID), len(m.ID) > 0
+ case "image":
+ return string(m.Image), len(m.Image) > 0
+ case "runtime":
+ // NOTE(stevvooe): This is probably not correct in many cases.
+ // We assume that the target message also implements the Field
+ // method, which isn't likely true in a lot of cases.
+ //
+ // If you have a broken build and have found this comment,
+ // you may be closer to a solution.
+ if m.Runtime == nil {
+ return "", false
+ }
+ return m.Runtime.Field(fieldpath[1:])
+ }
+ return "", false
+}
+
+// Field returns the value for the given fieldpath as a string, if defined.
+// If the value is not defined, the second value will be false.
+func (m *ContainerCreate_Runtime) Field(fieldpath []string) (string, bool) {
+ if len(fieldpath) == 0 {
+ return "", false
+ }
+ switch fieldpath[0] {
+ case "name":
+ return string(m.Name), len(m.Name) > 0
+ case "options":
+ decoded, err := v2.UnmarshalAny(m.Options)
+ if err != nil {
+ return "", false
+ }
+ adaptor, ok := decoded.(interface{ Field([]string) (string, bool) })
+ if !ok {
+ return "", false
+ }
+ return adaptor.Field(fieldpath[1:])
+ }
+ return "", false
+}
+
+// Field returns the value for the given fieldpath as a string, if defined.
+// If the value is not defined, the second value will be false.
+func (m *ContainerUpdate) Field(fieldpath []string) (string, bool) {
+ if len(fieldpath) == 0 {
+ return "", false
+ }
+ switch fieldpath[0] {
+ case "id":
+ return string(m.ID), len(m.ID) > 0
+ case "image":
+ return string(m.Image), len(m.Image) > 0
+ case "labels":
+ // Labels fields have been special-cased by name. If this breaks,
+ // add better special casing to fieldpath plugin.
+ if len(m.Labels) == 0 {
+ return "", false
+ }
+ value, ok := m.Labels[strings.Join(fieldpath[1:], ".")]
+ return value, ok
+ case "snapshot_key":
+ return string(m.SnapshotKey), len(m.SnapshotKey) > 0
+ }
+ return "", false
+}
+
+// Field returns the value for the given fieldpath as a string, if defined.
+// If the value is not defined, the second value will be false.
+func (m *ContainerDelete) Field(fieldpath []string) (string, bool) {
+ if len(fieldpath) == 0 {
+ return "", false
+ }
+ switch fieldpath[0] {
+ case "id":
+ return string(m.ID), len(m.ID) > 0
+ }
+ return "", false
+}
diff --git a/tools/vendor/github.com/containerd/containerd/api/events/content.pb.go b/tools/vendor/github.com/containerd/containerd/api/events/content.pb.go
new file mode 100644
index 000000000..9e3f843e2
--- /dev/null
+++ b/tools/vendor/github.com/containerd/containerd/api/events/content.pb.go
@@ -0,0 +1,168 @@
+//
+//Copyright The containerd 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.
+
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// protoc-gen-go v1.28.1
+// protoc v3.20.1
+// source: github.com/containerd/containerd/api/events/content.proto
+
+package events
+
+import (
+ _ "github.com/containerd/containerd/protobuf/plugin"
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ reflect "reflect"
+ sync "sync"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+type ContentDelete struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Digest string `protobuf:"bytes,1,opt,name=digest,proto3" json:"digest,omitempty"`
+}
+
+func (x *ContentDelete) Reset() {
+ *x = ContentDelete{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_github_com_containerd_containerd_api_events_content_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ContentDelete) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ContentDelete) ProtoMessage() {}
+
+func (x *ContentDelete) ProtoReflect() protoreflect.Message {
+ mi := &file_github_com_containerd_containerd_api_events_content_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ContentDelete.ProtoReflect.Descriptor instead.
+func (*ContentDelete) Descriptor() ([]byte, []int) {
+ return file_github_com_containerd_containerd_api_events_content_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *ContentDelete) GetDigest() string {
+ if x != nil {
+ return x.Digest
+ }
+ return ""
+}
+
+var File_github_com_containerd_containerd_api_events_content_proto protoreflect.FileDescriptor
+
+var file_github_com_containerd_containerd_api_events_content_proto_rawDesc = []byte{
+ 0x0a, 0x39, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x6e,
+ 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
+ 0x72, 0x64, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x63, 0x6f,
+ 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x11, 0x63, 0x6f, 0x6e,
+ 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0x40,
+ 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61,
+ 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64,
+ 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e,
+ 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x70, 0x61, 0x74, 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x22, 0x27, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x74,
+ 0x65, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x42, 0x38, 0x5a, 0x32, 0x67, 0x69, 0x74,
+ 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
+ 0x72, 0x64, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2f, 0x61, 0x70,
+ 0x69, 0x2f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x3b, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0xa0,
+ 0xf4, 0x1e, 0x01, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_github_com_containerd_containerd_api_events_content_proto_rawDescOnce sync.Once
+ file_github_com_containerd_containerd_api_events_content_proto_rawDescData = file_github_com_containerd_containerd_api_events_content_proto_rawDesc
+)
+
+func file_github_com_containerd_containerd_api_events_content_proto_rawDescGZIP() []byte {
+ file_github_com_containerd_containerd_api_events_content_proto_rawDescOnce.Do(func() {
+ file_github_com_containerd_containerd_api_events_content_proto_rawDescData = protoimpl.X.CompressGZIP(file_github_com_containerd_containerd_api_events_content_proto_rawDescData)
+ })
+ return file_github_com_containerd_containerd_api_events_content_proto_rawDescData
+}
+
+var file_github_com_containerd_containerd_api_events_content_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
+var file_github_com_containerd_containerd_api_events_content_proto_goTypes = []interface{}{
+ (*ContentDelete)(nil), // 0: containerd.events.ContentDelete
+}
+var file_github_com_containerd_containerd_api_events_content_proto_depIdxs = []int32{
+ 0, // [0:0] is the sub-list for method output_type
+ 0, // [0:0] is the sub-list for method input_type
+ 0, // [0:0] is the sub-list for extension type_name
+ 0, // [0:0] is the sub-list for extension extendee
+ 0, // [0:0] is the sub-list for field type_name
+}
+
+func init() { file_github_com_containerd_containerd_api_events_content_proto_init() }
+func file_github_com_containerd_containerd_api_events_content_proto_init() {
+ if File_github_com_containerd_containerd_api_events_content_proto != nil {
+ return
+ }
+ if !protoimpl.UnsafeEnabled {
+ file_github_com_containerd_containerd_api_events_content_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ContentDelete); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_github_com_containerd_containerd_api_events_content_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 1,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_github_com_containerd_containerd_api_events_content_proto_goTypes,
+ DependencyIndexes: file_github_com_containerd_containerd_api_events_content_proto_depIdxs,
+ MessageInfos: file_github_com_containerd_containerd_api_events_content_proto_msgTypes,
+ }.Build()
+ File_github_com_containerd_containerd_api_events_content_proto = out.File
+ file_github_com_containerd_containerd_api_events_content_proto_rawDesc = nil
+ file_github_com_containerd_containerd_api_events_content_proto_goTypes = nil
+ file_github_com_containerd_containerd_api_events_content_proto_depIdxs = nil
+}
diff --git a/tools/vendor/github.com/containerd/containerd/api/events/content.proto b/tools/vendor/github.com/containerd/containerd/api/events/content.proto
new file mode 100644
index 000000000..97d424139
--- /dev/null
+++ b/tools/vendor/github.com/containerd/containerd/api/events/content.proto
@@ -0,0 +1,28 @@
+/*
+ Copyright The containerd 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.
+*/
+
+syntax = "proto3";
+
+package containerd.events;
+
+import "github.com/containerd/containerd/protobuf/plugin/fieldpath.proto";
+
+option go_package = "github.com/containerd/containerd/api/events;events";
+option (containerd.plugin.fieldpath_all) = true;
+
+message ContentDelete {
+ string digest = 1;
+}
diff --git a/tools/vendor/github.com/containerd/containerd/api/events/content_fieldpath.pb.go b/tools/vendor/github.com/containerd/containerd/api/events/content_fieldpath.pb.go
new file mode 100644
index 000000000..9485b664c
--- /dev/null
+++ b/tools/vendor/github.com/containerd/containerd/api/events/content_fieldpath.pb.go
@@ -0,0 +1,16 @@
+// Code generated by protoc-gen-go-fieldpath. DO NOT EDIT.
+// source: github.com/containerd/containerd/api/events/content.proto
+package events
+
+// Field returns the value for the given fieldpath as a string, if defined.
+// If the value is not defined, the second value will be false.
+func (m *ContentDelete) Field(fieldpath []string) (string, bool) {
+ if len(fieldpath) == 0 {
+ return "", false
+ }
+ switch fieldpath[0] {
+ case "digest":
+ return string(m.Digest), len(m.Digest) > 0
+ }
+ return "", false
+}
diff --git a/tools/vendor/github.com/containerd/containerd/api/events/doc.go b/tools/vendor/github.com/containerd/containerd/api/events/doc.go
new file mode 100644
index 000000000..354bef79f
--- /dev/null
+++ b/tools/vendor/github.com/containerd/containerd/api/events/doc.go
@@ -0,0 +1,19 @@
+/*
+ Copyright The containerd 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 events has protobuf types for various events that are used in
+// containerd.
+package events
diff --git a/tools/vendor/github.com/containerd/containerd/api/events/image.pb.go b/tools/vendor/github.com/containerd/containerd/api/events/image.pb.go
new file mode 100644
index 000000000..111af29e6
--- /dev/null
+++ b/tools/vendor/github.com/containerd/containerd/api/events/image.pb.go
@@ -0,0 +1,330 @@
+//
+//Copyright The containerd 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.
+
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// protoc-gen-go v1.28.1
+// protoc v3.20.1
+// source: github.com/containerd/containerd/api/events/image.proto
+
+package events
+
+import (
+ _ "github.com/containerd/containerd/protobuf/plugin"
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ reflect "reflect"
+ sync "sync"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+type ImageCreate struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+ Labels map[string]string `protobuf:"bytes,2,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+}
+
+func (x *ImageCreate) Reset() {
+ *x = ImageCreate{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_github_com_containerd_containerd_api_events_image_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ImageCreate) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ImageCreate) ProtoMessage() {}
+
+func (x *ImageCreate) ProtoReflect() protoreflect.Message {
+ mi := &file_github_com_containerd_containerd_api_events_image_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ImageCreate.ProtoReflect.Descriptor instead.
+func (*ImageCreate) Descriptor() ([]byte, []int) {
+ return file_github_com_containerd_containerd_api_events_image_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *ImageCreate) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *ImageCreate) GetLabels() map[string]string {
+ if x != nil {
+ return x.Labels
+ }
+ return nil
+}
+
+type ImageUpdate struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+ Labels map[string]string `protobuf:"bytes,2,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+}
+
+func (x *ImageUpdate) Reset() {
+ *x = ImageUpdate{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_github_com_containerd_containerd_api_events_image_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ImageUpdate) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ImageUpdate) ProtoMessage() {}
+
+func (x *ImageUpdate) ProtoReflect() protoreflect.Message {
+ mi := &file_github_com_containerd_containerd_api_events_image_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ImageUpdate.ProtoReflect.Descriptor instead.
+func (*ImageUpdate) Descriptor() ([]byte, []int) {
+ return file_github_com_containerd_containerd_api_events_image_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *ImageUpdate) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *ImageUpdate) GetLabels() map[string]string {
+ if x != nil {
+ return x.Labels
+ }
+ return nil
+}
+
+type ImageDelete struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+}
+
+func (x *ImageDelete) Reset() {
+ *x = ImageDelete{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_github_com_containerd_containerd_api_events_image_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ImageDelete) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ImageDelete) ProtoMessage() {}
+
+func (x *ImageDelete) ProtoReflect() protoreflect.Message {
+ mi := &file_github_com_containerd_containerd_api_events_image_proto_msgTypes[2]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ImageDelete.ProtoReflect.Descriptor instead.
+func (*ImageDelete) Descriptor() ([]byte, []int) {
+ return file_github_com_containerd_containerd_api_events_image_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *ImageDelete) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+var File_github_com_containerd_containerd_api_events_image_proto protoreflect.FileDescriptor
+
+var file_github_com_containerd_containerd_api_events_image_proto_rawDesc = []byte{
+ 0x0a, 0x37, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x6e,
+ 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
+ 0x72, 0x64, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x69, 0x6d,
+ 0x61, 0x67, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1d, 0x63, 0x6f, 0x6e, 0x74, 0x61,
+ 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x69,
+ 0x6d, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x1a, 0x40, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62,
+ 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2f,
+ 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x62, 0x75, 0x66, 0x2f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64,
+ 0x70, 0x61, 0x74, 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xac, 0x01, 0x0a, 0x0b, 0x49,
+ 0x6d, 0x61, 0x67, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,
+ 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x4e,
+ 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36,
+ 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x73, 0x65, 0x72, 0x76,
+ 0x69, 0x63, 0x65, 0x73, 0x2e, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x49,
+ 0x6d, 0x61, 0x67, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c,
+ 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x1a, 0x39,
+ 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a,
+ 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12,
+ 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05,
+ 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xac, 0x01, 0x0a, 0x0b, 0x49, 0x6d,
+ 0x61, 0x67, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d,
+ 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x4e, 0x0a,
+ 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e,
+ 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69,
+ 0x63, 0x65, 0x73, 0x2e, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6d,
+ 0x61, 0x67, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73,
+ 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x1a, 0x39, 0x0a,
+ 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03,
+ 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14,
+ 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76,
+ 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x21, 0x0a, 0x0b, 0x49, 0x6d, 0x61, 0x67,
+ 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x38, 0x5a, 0x32, 0x67,
+ 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69,
+ 0x6e, 0x65, 0x72, 0x64, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2f,
+ 0x61, 0x70, 0x69, 0x2f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x3b, 0x65, 0x76, 0x65, 0x6e, 0x74,
+ 0x73, 0xa0, 0xf4, 0x1e, 0x01, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_github_com_containerd_containerd_api_events_image_proto_rawDescOnce sync.Once
+ file_github_com_containerd_containerd_api_events_image_proto_rawDescData = file_github_com_containerd_containerd_api_events_image_proto_rawDesc
+)
+
+func file_github_com_containerd_containerd_api_events_image_proto_rawDescGZIP() []byte {
+ file_github_com_containerd_containerd_api_events_image_proto_rawDescOnce.Do(func() {
+ file_github_com_containerd_containerd_api_events_image_proto_rawDescData = protoimpl.X.CompressGZIP(file_github_com_containerd_containerd_api_events_image_proto_rawDescData)
+ })
+ return file_github_com_containerd_containerd_api_events_image_proto_rawDescData
+}
+
+var file_github_com_containerd_containerd_api_events_image_proto_msgTypes = make([]protoimpl.MessageInfo, 5)
+var file_github_com_containerd_containerd_api_events_image_proto_goTypes = []interface{}{
+ (*ImageCreate)(nil), // 0: containerd.services.images.v1.ImageCreate
+ (*ImageUpdate)(nil), // 1: containerd.services.images.v1.ImageUpdate
+ (*ImageDelete)(nil), // 2: containerd.services.images.v1.ImageDelete
+ nil, // 3: containerd.services.images.v1.ImageCreate.LabelsEntry
+ nil, // 4: containerd.services.images.v1.ImageUpdate.LabelsEntry
+}
+var file_github_com_containerd_containerd_api_events_image_proto_depIdxs = []int32{
+ 3, // 0: containerd.services.images.v1.ImageCreate.labels:type_name -> containerd.services.images.v1.ImageCreate.LabelsEntry
+ 4, // 1: containerd.services.images.v1.ImageUpdate.labels:type_name -> containerd.services.images.v1.ImageUpdate.LabelsEntry
+ 2, // [2:2] is the sub-list for method output_type
+ 2, // [2:2] is the sub-list for method input_type
+ 2, // [2:2] is the sub-list for extension type_name
+ 2, // [2:2] is the sub-list for extension extendee
+ 0, // [0:2] is the sub-list for field type_name
+}
+
+func init() { file_github_com_containerd_containerd_api_events_image_proto_init() }
+func file_github_com_containerd_containerd_api_events_image_proto_init() {
+ if File_github_com_containerd_containerd_api_events_image_proto != nil {
+ return
+ }
+ if !protoimpl.UnsafeEnabled {
+ file_github_com_containerd_containerd_api_events_image_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ImageCreate); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_github_com_containerd_containerd_api_events_image_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ImageUpdate); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_github_com_containerd_containerd_api_events_image_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ImageDelete); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_github_com_containerd_containerd_api_events_image_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 5,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_github_com_containerd_containerd_api_events_image_proto_goTypes,
+ DependencyIndexes: file_github_com_containerd_containerd_api_events_image_proto_depIdxs,
+ MessageInfos: file_github_com_containerd_containerd_api_events_image_proto_msgTypes,
+ }.Build()
+ File_github_com_containerd_containerd_api_events_image_proto = out.File
+ file_github_com_containerd_containerd_api_events_image_proto_rawDesc = nil
+ file_github_com_containerd_containerd_api_events_image_proto_goTypes = nil
+ file_github_com_containerd_containerd_api_events_image_proto_depIdxs = nil
+}
diff --git a/tools/vendor/github.com/containerd/containerd/api/events/image.proto b/tools/vendor/github.com/containerd/containerd/api/events/image.proto
new file mode 100644
index 000000000..c09c7384f
--- /dev/null
+++ b/tools/vendor/github.com/containerd/containerd/api/events/image.proto
@@ -0,0 +1,38 @@
+/*
+ Copyright The containerd 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.
+*/
+
+syntax = "proto3";
+
+package containerd.services.images.v1;
+
+import "github.com/containerd/containerd/protobuf/plugin/fieldpath.proto";
+
+option go_package = "github.com/containerd/containerd/api/events;events";
+option (containerd.plugin.fieldpath_all) = true;
+
+message ImageCreate {
+ string name = 1;
+ map labels = 2;
+}
+
+message ImageUpdate {
+ string name = 1;
+ map labels = 2;
+}
+
+message ImageDelete {
+ string name = 1;
+}
diff --git a/tools/vendor/github.com/containerd/containerd/api/events/image_fieldpath.pb.go b/tools/vendor/github.com/containerd/containerd/api/events/image_fieldpath.pb.go
new file mode 100644
index 000000000..2a56fcf9d
--- /dev/null
+++ b/tools/vendor/github.com/containerd/containerd/api/events/image_fieldpath.pb.go
@@ -0,0 +1,62 @@
+// Code generated by protoc-gen-go-fieldpath. DO NOT EDIT.
+// source: github.com/containerd/containerd/api/events/image.proto
+package events
+
+import (
+ strings "strings"
+)
+
+// Field returns the value for the given fieldpath as a string, if defined.
+// If the value is not defined, the second value will be false.
+func (m *ImageCreate) Field(fieldpath []string) (string, bool) {
+ if len(fieldpath) == 0 {
+ return "", false
+ }
+ switch fieldpath[0] {
+ case "name":
+ return string(m.Name), len(m.Name) > 0
+ case "labels":
+ // Labels fields have been special-cased by name. If this breaks,
+ // add better special casing to fieldpath plugin.
+ if len(m.Labels) == 0 {
+ return "", false
+ }
+ value, ok := m.Labels[strings.Join(fieldpath[1:], ".")]
+ return value, ok
+ }
+ return "", false
+}
+
+// Field returns the value for the given fieldpath as a string, if defined.
+// If the value is not defined, the second value will be false.
+func (m *ImageUpdate) Field(fieldpath []string) (string, bool) {
+ if len(fieldpath) == 0 {
+ return "", false
+ }
+ switch fieldpath[0] {
+ case "name":
+ return string(m.Name), len(m.Name) > 0
+ case "labels":
+ // Labels fields have been special-cased by name. If this breaks,
+ // add better special casing to fieldpath plugin.
+ if len(m.Labels) == 0 {
+ return "", false
+ }
+ value, ok := m.Labels[strings.Join(fieldpath[1:], ".")]
+ return value, ok
+ }
+ return "", false
+}
+
+// Field returns the value for the given fieldpath as a string, if defined.
+// If the value is not defined, the second value will be false.
+func (m *ImageDelete) Field(fieldpath []string) (string, bool) {
+ if len(fieldpath) == 0 {
+ return "", false
+ }
+ switch fieldpath[0] {
+ case "name":
+ return string(m.Name), len(m.Name) > 0
+ }
+ return "", false
+}
diff --git a/tools/vendor/github.com/containerd/containerd/api/events/namespace.pb.go b/tools/vendor/github.com/containerd/containerd/api/events/namespace.pb.go
new file mode 100644
index 000000000..801c1219e
--- /dev/null
+++ b/tools/vendor/github.com/containerd/containerd/api/events/namespace.pb.go
@@ -0,0 +1,330 @@
+//
+//Copyright The containerd 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.
+
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// protoc-gen-go v1.28.1
+// protoc v3.20.1
+// source: github.com/containerd/containerd/api/events/namespace.proto
+
+package events
+
+import (
+ _ "github.com/containerd/containerd/protobuf/plugin"
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ reflect "reflect"
+ sync "sync"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+type NamespaceCreate struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+ Labels map[string]string `protobuf:"bytes,2,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+}
+
+func (x *NamespaceCreate) Reset() {
+ *x = NamespaceCreate{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_github_com_containerd_containerd_api_events_namespace_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *NamespaceCreate) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*NamespaceCreate) ProtoMessage() {}
+
+func (x *NamespaceCreate) ProtoReflect() protoreflect.Message {
+ mi := &file_github_com_containerd_containerd_api_events_namespace_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use NamespaceCreate.ProtoReflect.Descriptor instead.
+func (*NamespaceCreate) Descriptor() ([]byte, []int) {
+ return file_github_com_containerd_containerd_api_events_namespace_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *NamespaceCreate) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *NamespaceCreate) GetLabels() map[string]string {
+ if x != nil {
+ return x.Labels
+ }
+ return nil
+}
+
+type NamespaceUpdate struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+ Labels map[string]string `protobuf:"bytes,2,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+}
+
+func (x *NamespaceUpdate) Reset() {
+ *x = NamespaceUpdate{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_github_com_containerd_containerd_api_events_namespace_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *NamespaceUpdate) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*NamespaceUpdate) ProtoMessage() {}
+
+func (x *NamespaceUpdate) ProtoReflect() protoreflect.Message {
+ mi := &file_github_com_containerd_containerd_api_events_namespace_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use NamespaceUpdate.ProtoReflect.Descriptor instead.
+func (*NamespaceUpdate) Descriptor() ([]byte, []int) {
+ return file_github_com_containerd_containerd_api_events_namespace_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *NamespaceUpdate) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *NamespaceUpdate) GetLabels() map[string]string {
+ if x != nil {
+ return x.Labels
+ }
+ return nil
+}
+
+type NamespaceDelete struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+}
+
+func (x *NamespaceDelete) Reset() {
+ *x = NamespaceDelete{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_github_com_containerd_containerd_api_events_namespace_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *NamespaceDelete) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*NamespaceDelete) ProtoMessage() {}
+
+func (x *NamespaceDelete) ProtoReflect() protoreflect.Message {
+ mi := &file_github_com_containerd_containerd_api_events_namespace_proto_msgTypes[2]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use NamespaceDelete.ProtoReflect.Descriptor instead.
+func (*NamespaceDelete) Descriptor() ([]byte, []int) {
+ return file_github_com_containerd_containerd_api_events_namespace_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *NamespaceDelete) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+var File_github_com_containerd_containerd_api_events_namespace_proto protoreflect.FileDescriptor
+
+var file_github_com_containerd_containerd_api_events_namespace_proto_rawDesc = []byte{
+ 0x0a, 0x3b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x6e,
+ 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
+ 0x72, 0x64, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x6e, 0x61,
+ 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x11, 0x63,
+ 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73,
+ 0x1a, 0x40, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x6e,
+ 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
+ 0x72, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x70, 0x6c, 0x75, 0x67,
+ 0x69, 0x6e, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x70, 0x61, 0x74, 0x68, 0x2e, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x22, 0xa8, 0x01, 0x0a, 0x0f, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65,
+ 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x46, 0x0a, 0x06, 0x6c, 0x61,
+ 0x62, 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x63, 0x6f, 0x6e,
+ 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x4e,
+ 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x2e, 0x4c,
+ 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65,
+ 0x6c, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72,
+ 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
+ 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xa8, 0x01,
+ 0x0a, 0x0f, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74,
+ 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x46, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18,
+ 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
+ 0x72, 0x64, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70,
+ 0x61, 0x63, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73,
+ 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x1a, 0x39, 0x0a,
+ 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03,
+ 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14,
+ 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76,
+ 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x25, 0x0a, 0x0f, 0x4e, 0x61, 0x6d, 0x65,
+ 0x73, 0x70, 0x61, 0x63, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e,
+ 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42,
+ 0x38, 0x5a, 0x32, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f,
+ 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e,
+ 0x65, 0x72, 0x64, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x3b, 0x65,
+ 0x76, 0x65, 0x6e, 0x74, 0x73, 0xa0, 0xf4, 0x1e, 0x01, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x33,
+}
+
+var (
+ file_github_com_containerd_containerd_api_events_namespace_proto_rawDescOnce sync.Once
+ file_github_com_containerd_containerd_api_events_namespace_proto_rawDescData = file_github_com_containerd_containerd_api_events_namespace_proto_rawDesc
+)
+
+func file_github_com_containerd_containerd_api_events_namespace_proto_rawDescGZIP() []byte {
+ file_github_com_containerd_containerd_api_events_namespace_proto_rawDescOnce.Do(func() {
+ file_github_com_containerd_containerd_api_events_namespace_proto_rawDescData = protoimpl.X.CompressGZIP(file_github_com_containerd_containerd_api_events_namespace_proto_rawDescData)
+ })
+ return file_github_com_containerd_containerd_api_events_namespace_proto_rawDescData
+}
+
+var file_github_com_containerd_containerd_api_events_namespace_proto_msgTypes = make([]protoimpl.MessageInfo, 5)
+var file_github_com_containerd_containerd_api_events_namespace_proto_goTypes = []interface{}{
+ (*NamespaceCreate)(nil), // 0: containerd.events.NamespaceCreate
+ (*NamespaceUpdate)(nil), // 1: containerd.events.NamespaceUpdate
+ (*NamespaceDelete)(nil), // 2: containerd.events.NamespaceDelete
+ nil, // 3: containerd.events.NamespaceCreate.LabelsEntry
+ nil, // 4: containerd.events.NamespaceUpdate.LabelsEntry
+}
+var file_github_com_containerd_containerd_api_events_namespace_proto_depIdxs = []int32{
+ 3, // 0: containerd.events.NamespaceCreate.labels:type_name -> containerd.events.NamespaceCreate.LabelsEntry
+ 4, // 1: containerd.events.NamespaceUpdate.labels:type_name -> containerd.events.NamespaceUpdate.LabelsEntry
+ 2, // [2:2] is the sub-list for method output_type
+ 2, // [2:2] is the sub-list for method input_type
+ 2, // [2:2] is the sub-list for extension type_name
+ 2, // [2:2] is the sub-list for extension extendee
+ 0, // [0:2] is the sub-list for field type_name
+}
+
+func init() { file_github_com_containerd_containerd_api_events_namespace_proto_init() }
+func file_github_com_containerd_containerd_api_events_namespace_proto_init() {
+ if File_github_com_containerd_containerd_api_events_namespace_proto != nil {
+ return
+ }
+ if !protoimpl.UnsafeEnabled {
+ file_github_com_containerd_containerd_api_events_namespace_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*NamespaceCreate); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_github_com_containerd_containerd_api_events_namespace_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*NamespaceUpdate); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_github_com_containerd_containerd_api_events_namespace_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*NamespaceDelete); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_github_com_containerd_containerd_api_events_namespace_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 5,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_github_com_containerd_containerd_api_events_namespace_proto_goTypes,
+ DependencyIndexes: file_github_com_containerd_containerd_api_events_namespace_proto_depIdxs,
+ MessageInfos: file_github_com_containerd_containerd_api_events_namespace_proto_msgTypes,
+ }.Build()
+ File_github_com_containerd_containerd_api_events_namespace_proto = out.File
+ file_github_com_containerd_containerd_api_events_namespace_proto_rawDesc = nil
+ file_github_com_containerd_containerd_api_events_namespace_proto_goTypes = nil
+ file_github_com_containerd_containerd_api_events_namespace_proto_depIdxs = nil
+}
diff --git a/tools/vendor/github.com/containerd/containerd/api/events/namespace.proto b/tools/vendor/github.com/containerd/containerd/api/events/namespace.proto
new file mode 100644
index 000000000..9bae531d7
--- /dev/null
+++ b/tools/vendor/github.com/containerd/containerd/api/events/namespace.proto
@@ -0,0 +1,38 @@
+/*
+ Copyright The containerd 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.
+*/
+
+syntax = "proto3";
+
+package containerd.events;
+
+import "github.com/containerd/containerd/protobuf/plugin/fieldpath.proto";
+
+option go_package = "github.com/containerd/containerd/api/events;events";
+option (containerd.plugin.fieldpath_all) = true;
+
+message NamespaceCreate {
+ string name = 1;
+ map labels = 2;
+}
+
+message NamespaceUpdate {
+ string name = 1;
+ map labels = 2;
+}
+
+message NamespaceDelete {
+ string name = 1;
+}
diff --git a/tools/vendor/github.com/containerd/containerd/api/events/namespace_fieldpath.pb.go b/tools/vendor/github.com/containerd/containerd/api/events/namespace_fieldpath.pb.go
new file mode 100644
index 000000000..93d20a676
--- /dev/null
+++ b/tools/vendor/github.com/containerd/containerd/api/events/namespace_fieldpath.pb.go
@@ -0,0 +1,62 @@
+// Code generated by protoc-gen-go-fieldpath. DO NOT EDIT.
+// source: github.com/containerd/containerd/api/events/namespace.proto
+package events
+
+import (
+ strings "strings"
+)
+
+// Field returns the value for the given fieldpath as a string, if defined.
+// If the value is not defined, the second value will be false.
+func (m *NamespaceCreate) Field(fieldpath []string) (string, bool) {
+ if len(fieldpath) == 0 {
+ return "", false
+ }
+ switch fieldpath[0] {
+ case "name":
+ return string(m.Name), len(m.Name) > 0
+ case "labels":
+ // Labels fields have been special-cased by name. If this breaks,
+ // add better special casing to fieldpath plugin.
+ if len(m.Labels) == 0 {
+ return "", false
+ }
+ value, ok := m.Labels[strings.Join(fieldpath[1:], ".")]
+ return value, ok
+ }
+ return "", false
+}
+
+// Field returns the value for the given fieldpath as a string, if defined.
+// If the value is not defined, the second value will be false.
+func (m *NamespaceUpdate) Field(fieldpath []string) (string, bool) {
+ if len(fieldpath) == 0 {
+ return "", false
+ }
+ switch fieldpath[0] {
+ case "name":
+ return string(m.Name), len(m.Name) > 0
+ case "labels":
+ // Labels fields have been special-cased by name. If this breaks,
+ // add better special casing to fieldpath plugin.
+ if len(m.Labels) == 0 {
+ return "", false
+ }
+ value, ok := m.Labels[strings.Join(fieldpath[1:], ".")]
+ return value, ok
+ }
+ return "", false
+}
+
+// Field returns the value for the given fieldpath as a string, if defined.
+// If the value is not defined, the second value will be false.
+func (m *NamespaceDelete) Field(fieldpath []string) (string, bool) {
+ if len(fieldpath) == 0 {
+ return "", false
+ }
+ switch fieldpath[0] {
+ case "name":
+ return string(m.Name), len(m.Name) > 0
+ }
+ return "", false
+}
diff --git a/tools/vendor/github.com/containerd/containerd/api/events/snapshot.pb.go b/tools/vendor/github.com/containerd/containerd/api/events/snapshot.pb.go
new file mode 100644
index 000000000..e074f9df2
--- /dev/null
+++ b/tools/vendor/github.com/containerd/containerd/api/events/snapshot.pb.go
@@ -0,0 +1,342 @@
+//
+//Copyright The containerd 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.
+
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// protoc-gen-go v1.28.1
+// protoc v3.20.1
+// source: github.com/containerd/containerd/api/events/snapshot.proto
+
+package events
+
+import (
+ _ "github.com/containerd/containerd/protobuf/plugin"
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ reflect "reflect"
+ sync "sync"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+type SnapshotPrepare struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
+ Parent string `protobuf:"bytes,2,opt,name=parent,proto3" json:"parent,omitempty"`
+ Snapshotter string `protobuf:"bytes,5,opt,name=snapshotter,proto3" json:"snapshotter,omitempty"`
+}
+
+func (x *SnapshotPrepare) Reset() {
+ *x = SnapshotPrepare{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_github_com_containerd_containerd_api_events_snapshot_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *SnapshotPrepare) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SnapshotPrepare) ProtoMessage() {}
+
+func (x *SnapshotPrepare) ProtoReflect() protoreflect.Message {
+ mi := &file_github_com_containerd_containerd_api_events_snapshot_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use SnapshotPrepare.ProtoReflect.Descriptor instead.
+func (*SnapshotPrepare) Descriptor() ([]byte, []int) {
+ return file_github_com_containerd_containerd_api_events_snapshot_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *SnapshotPrepare) GetKey() string {
+ if x != nil {
+ return x.Key
+ }
+ return ""
+}
+
+func (x *SnapshotPrepare) GetParent() string {
+ if x != nil {
+ return x.Parent
+ }
+ return ""
+}
+
+func (x *SnapshotPrepare) GetSnapshotter() string {
+ if x != nil {
+ return x.Snapshotter
+ }
+ return ""
+}
+
+type SnapshotCommit struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
+ Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
+ Snapshotter string `protobuf:"bytes,5,opt,name=snapshotter,proto3" json:"snapshotter,omitempty"`
+}
+
+func (x *SnapshotCommit) Reset() {
+ *x = SnapshotCommit{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_github_com_containerd_containerd_api_events_snapshot_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *SnapshotCommit) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SnapshotCommit) ProtoMessage() {}
+
+func (x *SnapshotCommit) ProtoReflect() protoreflect.Message {
+ mi := &file_github_com_containerd_containerd_api_events_snapshot_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use SnapshotCommit.ProtoReflect.Descriptor instead.
+func (*SnapshotCommit) Descriptor() ([]byte, []int) {
+ return file_github_com_containerd_containerd_api_events_snapshot_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *SnapshotCommit) GetKey() string {
+ if x != nil {
+ return x.Key
+ }
+ return ""
+}
+
+func (x *SnapshotCommit) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *SnapshotCommit) GetSnapshotter() string {
+ if x != nil {
+ return x.Snapshotter
+ }
+ return ""
+}
+
+type SnapshotRemove struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
+ Snapshotter string `protobuf:"bytes,5,opt,name=snapshotter,proto3" json:"snapshotter,omitempty"`
+}
+
+func (x *SnapshotRemove) Reset() {
+ *x = SnapshotRemove{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_github_com_containerd_containerd_api_events_snapshot_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *SnapshotRemove) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SnapshotRemove) ProtoMessage() {}
+
+func (x *SnapshotRemove) ProtoReflect() protoreflect.Message {
+ mi := &file_github_com_containerd_containerd_api_events_snapshot_proto_msgTypes[2]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use SnapshotRemove.ProtoReflect.Descriptor instead.
+func (*SnapshotRemove) Descriptor() ([]byte, []int) {
+ return file_github_com_containerd_containerd_api_events_snapshot_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *SnapshotRemove) GetKey() string {
+ if x != nil {
+ return x.Key
+ }
+ return ""
+}
+
+func (x *SnapshotRemove) GetSnapshotter() string {
+ if x != nil {
+ return x.Snapshotter
+ }
+ return ""
+}
+
+var File_github_com_containerd_containerd_api_events_snapshot_proto protoreflect.FileDescriptor
+
+var file_github_com_containerd_containerd_api_events_snapshot_proto_rawDesc = []byte{
+ 0x0a, 0x3a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x6e,
+ 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
+ 0x72, 0x64, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x73, 0x6e,
+ 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x11, 0x63, 0x6f,
+ 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x1a,
+ 0x40, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x6e, 0x74,
+ 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72,
+ 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x70, 0x6c, 0x75, 0x67, 0x69,
+ 0x6e, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x70, 0x61, 0x74, 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x22, 0x5d, 0x0a, 0x0f, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x50, 0x72, 0x65,
+ 0x70, 0x61, 0x72, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x20,
+ 0x0a, 0x0b, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x74, 0x65, 0x72,
+ 0x22, 0x58, 0x0a, 0x0e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x43, 0x6f, 0x6d, 0x6d,
+ 0x69, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x03, 0x6b, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x6e, 0x61, 0x70,
+ 0x73, 0x68, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73,
+ 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x22, 0x44, 0x0a, 0x0e, 0x53, 0x6e,
+ 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x10, 0x0a, 0x03,
+ 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x20,
+ 0x0a, 0x0b, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x74, 0x65, 0x72,
+ 0x42, 0x38, 0x5a, 0x32, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63,
+ 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69,
+ 0x6e, 0x65, 0x72, 0x64, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x3b,
+ 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0xa0, 0xf4, 0x1e, 0x01, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x33,
+}
+
+var (
+ file_github_com_containerd_containerd_api_events_snapshot_proto_rawDescOnce sync.Once
+ file_github_com_containerd_containerd_api_events_snapshot_proto_rawDescData = file_github_com_containerd_containerd_api_events_snapshot_proto_rawDesc
+)
+
+func file_github_com_containerd_containerd_api_events_snapshot_proto_rawDescGZIP() []byte {
+ file_github_com_containerd_containerd_api_events_snapshot_proto_rawDescOnce.Do(func() {
+ file_github_com_containerd_containerd_api_events_snapshot_proto_rawDescData = protoimpl.X.CompressGZIP(file_github_com_containerd_containerd_api_events_snapshot_proto_rawDescData)
+ })
+ return file_github_com_containerd_containerd_api_events_snapshot_proto_rawDescData
+}
+
+var file_github_com_containerd_containerd_api_events_snapshot_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
+var file_github_com_containerd_containerd_api_events_snapshot_proto_goTypes = []interface{}{
+ (*SnapshotPrepare)(nil), // 0: containerd.events.SnapshotPrepare
+ (*SnapshotCommit)(nil), // 1: containerd.events.SnapshotCommit
+ (*SnapshotRemove)(nil), // 2: containerd.events.SnapshotRemove
+}
+var file_github_com_containerd_containerd_api_events_snapshot_proto_depIdxs = []int32{
+ 0, // [0:0] is the sub-list for method output_type
+ 0, // [0:0] is the sub-list for method input_type
+ 0, // [0:0] is the sub-list for extension type_name
+ 0, // [0:0] is the sub-list for extension extendee
+ 0, // [0:0] is the sub-list for field type_name
+}
+
+func init() { file_github_com_containerd_containerd_api_events_snapshot_proto_init() }
+func file_github_com_containerd_containerd_api_events_snapshot_proto_init() {
+ if File_github_com_containerd_containerd_api_events_snapshot_proto != nil {
+ return
+ }
+ if !protoimpl.UnsafeEnabled {
+ file_github_com_containerd_containerd_api_events_snapshot_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*SnapshotPrepare); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_github_com_containerd_containerd_api_events_snapshot_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*SnapshotCommit); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_github_com_containerd_containerd_api_events_snapshot_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*SnapshotRemove); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_github_com_containerd_containerd_api_events_snapshot_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 3,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_github_com_containerd_containerd_api_events_snapshot_proto_goTypes,
+ DependencyIndexes: file_github_com_containerd_containerd_api_events_snapshot_proto_depIdxs,
+ MessageInfos: file_github_com_containerd_containerd_api_events_snapshot_proto_msgTypes,
+ }.Build()
+ File_github_com_containerd_containerd_api_events_snapshot_proto = out.File
+ file_github_com_containerd_containerd_api_events_snapshot_proto_rawDesc = nil
+ file_github_com_containerd_containerd_api_events_snapshot_proto_goTypes = nil
+ file_github_com_containerd_containerd_api_events_snapshot_proto_depIdxs = nil
+}
diff --git a/tools/vendor/github.com/containerd/containerd/api/events/snapshot.proto b/tools/vendor/github.com/containerd/containerd/api/events/snapshot.proto
new file mode 100644
index 000000000..effd86913
--- /dev/null
+++ b/tools/vendor/github.com/containerd/containerd/api/events/snapshot.proto
@@ -0,0 +1,41 @@
+/*
+ Copyright The containerd 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.
+*/
+
+syntax = "proto3";
+
+package containerd.events;
+
+import "github.com/containerd/containerd/protobuf/plugin/fieldpath.proto";
+
+option go_package = "github.com/containerd/containerd/api/events;events";
+option (containerd.plugin.fieldpath_all) = true;
+
+message SnapshotPrepare {
+ string key = 1;
+ string parent = 2;
+ string snapshotter = 5;
+}
+
+message SnapshotCommit {
+ string key = 1;
+ string name = 2;
+ string snapshotter = 5;
+}
+
+message SnapshotRemove {
+ string key = 1;
+ string snapshotter = 5;
+}
diff --git a/tools/vendor/github.com/containerd/containerd/api/events/snapshot_fieldpath.pb.go b/tools/vendor/github.com/containerd/containerd/api/events/snapshot_fieldpath.pb.go
new file mode 100644
index 000000000..c89d1ab4a
--- /dev/null
+++ b/tools/vendor/github.com/containerd/containerd/api/events/snapshot_fieldpath.pb.go
@@ -0,0 +1,52 @@
+// Code generated by protoc-gen-go-fieldpath. DO NOT EDIT.
+// source: github.com/containerd/containerd/api/events/snapshot.proto
+package events
+
+// Field returns the value for the given fieldpath as a string, if defined.
+// If the value is not defined, the second value will be false.
+func (m *SnapshotPrepare) Field(fieldpath []string) (string, bool) {
+ if len(fieldpath) == 0 {
+ return "", false
+ }
+ switch fieldpath[0] {
+ case "key":
+ return string(m.Key), len(m.Key) > 0
+ case "parent":
+ return string(m.Parent), len(m.Parent) > 0
+ case "snapshotter":
+ return string(m.Snapshotter), len(m.Snapshotter) > 0
+ }
+ return "", false
+}
+
+// Field returns the value for the given fieldpath as a string, if defined.
+// If the value is not defined, the second value will be false.
+func (m *SnapshotCommit) Field(fieldpath []string) (string, bool) {
+ if len(fieldpath) == 0 {
+ return "", false
+ }
+ switch fieldpath[0] {
+ case "key":
+ return string(m.Key), len(m.Key) > 0
+ case "name":
+ return string(m.Name), len(m.Name) > 0
+ case "snapshotter":
+ return string(m.Snapshotter), len(m.Snapshotter) > 0
+ }
+ return "", false
+}
+
+// Field returns the value for the given fieldpath as a string, if defined.
+// If the value is not defined, the second value will be false.
+func (m *SnapshotRemove) Field(fieldpath []string) (string, bool) {
+ if len(fieldpath) == 0 {
+ return "", false
+ }
+ switch fieldpath[0] {
+ case "key":
+ return string(m.Key), len(m.Key) > 0
+ case "snapshotter":
+ return string(m.Snapshotter), len(m.Snapshotter) > 0
+ }
+ return "", false
+}
diff --git a/tools/vendor/github.com/containerd/containerd/api/events/task.pb.go b/tools/vendor/github.com/containerd/containerd/api/events/task.pb.go
new file mode 100644
index 000000000..33fd521b6
--- /dev/null
+++ b/tools/vendor/github.com/containerd/containerd/api/events/task.pb.go
@@ -0,0 +1,1020 @@
+//
+//Copyright The containerd 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.
+
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// protoc-gen-go v1.28.1
+// protoc v3.20.1
+// source: github.com/containerd/containerd/api/events/task.proto
+
+package events
+
+import (
+ types "github.com/containerd/containerd/api/types"
+ _ "github.com/containerd/containerd/protobuf/plugin"
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ timestamppb "google.golang.org/protobuf/types/known/timestamppb"
+ reflect "reflect"
+ sync "sync"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+type TaskCreate struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ ContainerID string `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"`
+ Bundle string `protobuf:"bytes,2,opt,name=bundle,proto3" json:"bundle,omitempty"`
+ Rootfs []*types.Mount `protobuf:"bytes,3,rep,name=rootfs,proto3" json:"rootfs,omitempty"`
+ IO *TaskIO `protobuf:"bytes,4,opt,name=io,proto3" json:"io,omitempty"`
+ Checkpoint string `protobuf:"bytes,5,opt,name=checkpoint,proto3" json:"checkpoint,omitempty"`
+ Pid uint32 `protobuf:"varint,6,opt,name=pid,proto3" json:"pid,omitempty"`
+}
+
+func (x *TaskCreate) Reset() {
+ *x = TaskCreate{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_github_com_containerd_containerd_api_events_task_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *TaskCreate) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TaskCreate) ProtoMessage() {}
+
+func (x *TaskCreate) ProtoReflect() protoreflect.Message {
+ mi := &file_github_com_containerd_containerd_api_events_task_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use TaskCreate.ProtoReflect.Descriptor instead.
+func (*TaskCreate) Descriptor() ([]byte, []int) {
+ return file_github_com_containerd_containerd_api_events_task_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *TaskCreate) GetContainerID() string {
+ if x != nil {
+ return x.ContainerID
+ }
+ return ""
+}
+
+func (x *TaskCreate) GetBundle() string {
+ if x != nil {
+ return x.Bundle
+ }
+ return ""
+}
+
+func (x *TaskCreate) GetRootfs() []*types.Mount {
+ if x != nil {
+ return x.Rootfs
+ }
+ return nil
+}
+
+func (x *TaskCreate) GetIO() *TaskIO {
+ if x != nil {
+ return x.IO
+ }
+ return nil
+}
+
+func (x *TaskCreate) GetCheckpoint() string {
+ if x != nil {
+ return x.Checkpoint
+ }
+ return ""
+}
+
+func (x *TaskCreate) GetPid() uint32 {
+ if x != nil {
+ return x.Pid
+ }
+ return 0
+}
+
+type TaskStart struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ ContainerID string `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"`
+ Pid uint32 `protobuf:"varint,2,opt,name=pid,proto3" json:"pid,omitempty"`
+}
+
+func (x *TaskStart) Reset() {
+ *x = TaskStart{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_github_com_containerd_containerd_api_events_task_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *TaskStart) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TaskStart) ProtoMessage() {}
+
+func (x *TaskStart) ProtoReflect() protoreflect.Message {
+ mi := &file_github_com_containerd_containerd_api_events_task_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use TaskStart.ProtoReflect.Descriptor instead.
+func (*TaskStart) Descriptor() ([]byte, []int) {
+ return file_github_com_containerd_containerd_api_events_task_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *TaskStart) GetContainerID() string {
+ if x != nil {
+ return x.ContainerID
+ }
+ return ""
+}
+
+func (x *TaskStart) GetPid() uint32 {
+ if x != nil {
+ return x.Pid
+ }
+ return 0
+}
+
+type TaskDelete struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ ContainerID string `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"`
+ Pid uint32 `protobuf:"varint,2,opt,name=pid,proto3" json:"pid,omitempty"`
+ ExitStatus uint32 `protobuf:"varint,3,opt,name=exit_status,json=exitStatus,proto3" json:"exit_status,omitempty"`
+ ExitedAt *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=exited_at,json=exitedAt,proto3" json:"exited_at,omitempty"`
+ // id is the specific exec. By default if omitted will be `""` thus matches
+ // the init exec of the task matching `container_id`.
+ ID string `protobuf:"bytes,5,opt,name=id,proto3" json:"id,omitempty"`
+}
+
+func (x *TaskDelete) Reset() {
+ *x = TaskDelete{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_github_com_containerd_containerd_api_events_task_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *TaskDelete) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TaskDelete) ProtoMessage() {}
+
+func (x *TaskDelete) ProtoReflect() protoreflect.Message {
+ mi := &file_github_com_containerd_containerd_api_events_task_proto_msgTypes[2]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use TaskDelete.ProtoReflect.Descriptor instead.
+func (*TaskDelete) Descriptor() ([]byte, []int) {
+ return file_github_com_containerd_containerd_api_events_task_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *TaskDelete) GetContainerID() string {
+ if x != nil {
+ return x.ContainerID
+ }
+ return ""
+}
+
+func (x *TaskDelete) GetPid() uint32 {
+ if x != nil {
+ return x.Pid
+ }
+ return 0
+}
+
+func (x *TaskDelete) GetExitStatus() uint32 {
+ if x != nil {
+ return x.ExitStatus
+ }
+ return 0
+}
+
+func (x *TaskDelete) GetExitedAt() *timestamppb.Timestamp {
+ if x != nil {
+ return x.ExitedAt
+ }
+ return nil
+}
+
+func (x *TaskDelete) GetID() string {
+ if x != nil {
+ return x.ID
+ }
+ return ""
+}
+
+type TaskIO struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Stdin string `protobuf:"bytes,1,opt,name=stdin,proto3" json:"stdin,omitempty"`
+ Stdout string `protobuf:"bytes,2,opt,name=stdout,proto3" json:"stdout,omitempty"`
+ Stderr string `protobuf:"bytes,3,opt,name=stderr,proto3" json:"stderr,omitempty"`
+ Terminal bool `protobuf:"varint,4,opt,name=terminal,proto3" json:"terminal,omitempty"`
+}
+
+func (x *TaskIO) Reset() {
+ *x = TaskIO{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_github_com_containerd_containerd_api_events_task_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *TaskIO) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TaskIO) ProtoMessage() {}
+
+func (x *TaskIO) ProtoReflect() protoreflect.Message {
+ mi := &file_github_com_containerd_containerd_api_events_task_proto_msgTypes[3]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use TaskIO.ProtoReflect.Descriptor instead.
+func (*TaskIO) Descriptor() ([]byte, []int) {
+ return file_github_com_containerd_containerd_api_events_task_proto_rawDescGZIP(), []int{3}
+}
+
+func (x *TaskIO) GetStdin() string {
+ if x != nil {
+ return x.Stdin
+ }
+ return ""
+}
+
+func (x *TaskIO) GetStdout() string {
+ if x != nil {
+ return x.Stdout
+ }
+ return ""
+}
+
+func (x *TaskIO) GetStderr() string {
+ if x != nil {
+ return x.Stderr
+ }
+ return ""
+}
+
+func (x *TaskIO) GetTerminal() bool {
+ if x != nil {
+ return x.Terminal
+ }
+ return false
+}
+
+type TaskExit struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ ContainerID string `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"`
+ ID string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
+ Pid uint32 `protobuf:"varint,3,opt,name=pid,proto3" json:"pid,omitempty"`
+ ExitStatus uint32 `protobuf:"varint,4,opt,name=exit_status,json=exitStatus,proto3" json:"exit_status,omitempty"`
+ ExitedAt *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=exited_at,json=exitedAt,proto3" json:"exited_at,omitempty"`
+}
+
+func (x *TaskExit) Reset() {
+ *x = TaskExit{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_github_com_containerd_containerd_api_events_task_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *TaskExit) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TaskExit) ProtoMessage() {}
+
+func (x *TaskExit) ProtoReflect() protoreflect.Message {
+ mi := &file_github_com_containerd_containerd_api_events_task_proto_msgTypes[4]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use TaskExit.ProtoReflect.Descriptor instead.
+func (*TaskExit) Descriptor() ([]byte, []int) {
+ return file_github_com_containerd_containerd_api_events_task_proto_rawDescGZIP(), []int{4}
+}
+
+func (x *TaskExit) GetContainerID() string {
+ if x != nil {
+ return x.ContainerID
+ }
+ return ""
+}
+
+func (x *TaskExit) GetID() string {
+ if x != nil {
+ return x.ID
+ }
+ return ""
+}
+
+func (x *TaskExit) GetPid() uint32 {
+ if x != nil {
+ return x.Pid
+ }
+ return 0
+}
+
+func (x *TaskExit) GetExitStatus() uint32 {
+ if x != nil {
+ return x.ExitStatus
+ }
+ return 0
+}
+
+func (x *TaskExit) GetExitedAt() *timestamppb.Timestamp {
+ if x != nil {
+ return x.ExitedAt
+ }
+ return nil
+}
+
+type TaskOOM struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ ContainerID string `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"`
+}
+
+func (x *TaskOOM) Reset() {
+ *x = TaskOOM{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_github_com_containerd_containerd_api_events_task_proto_msgTypes[5]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *TaskOOM) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TaskOOM) ProtoMessage() {}
+
+func (x *TaskOOM) ProtoReflect() protoreflect.Message {
+ mi := &file_github_com_containerd_containerd_api_events_task_proto_msgTypes[5]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use TaskOOM.ProtoReflect.Descriptor instead.
+func (*TaskOOM) Descriptor() ([]byte, []int) {
+ return file_github_com_containerd_containerd_api_events_task_proto_rawDescGZIP(), []int{5}
+}
+
+func (x *TaskOOM) GetContainerID() string {
+ if x != nil {
+ return x.ContainerID
+ }
+ return ""
+}
+
+type TaskExecAdded struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ ContainerID string `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"`
+ ExecID string `protobuf:"bytes,2,opt,name=exec_id,json=execId,proto3" json:"exec_id,omitempty"`
+}
+
+func (x *TaskExecAdded) Reset() {
+ *x = TaskExecAdded{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_github_com_containerd_containerd_api_events_task_proto_msgTypes[6]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *TaskExecAdded) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TaskExecAdded) ProtoMessage() {}
+
+func (x *TaskExecAdded) ProtoReflect() protoreflect.Message {
+ mi := &file_github_com_containerd_containerd_api_events_task_proto_msgTypes[6]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use TaskExecAdded.ProtoReflect.Descriptor instead.
+func (*TaskExecAdded) Descriptor() ([]byte, []int) {
+ return file_github_com_containerd_containerd_api_events_task_proto_rawDescGZIP(), []int{6}
+}
+
+func (x *TaskExecAdded) GetContainerID() string {
+ if x != nil {
+ return x.ContainerID
+ }
+ return ""
+}
+
+func (x *TaskExecAdded) GetExecID() string {
+ if x != nil {
+ return x.ExecID
+ }
+ return ""
+}
+
+type TaskExecStarted struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ ContainerID string `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"`
+ ExecID string `protobuf:"bytes,2,opt,name=exec_id,json=execId,proto3" json:"exec_id,omitempty"`
+ Pid uint32 `protobuf:"varint,3,opt,name=pid,proto3" json:"pid,omitempty"`
+}
+
+func (x *TaskExecStarted) Reset() {
+ *x = TaskExecStarted{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_github_com_containerd_containerd_api_events_task_proto_msgTypes[7]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *TaskExecStarted) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TaskExecStarted) ProtoMessage() {}
+
+func (x *TaskExecStarted) ProtoReflect() protoreflect.Message {
+ mi := &file_github_com_containerd_containerd_api_events_task_proto_msgTypes[7]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use TaskExecStarted.ProtoReflect.Descriptor instead.
+func (*TaskExecStarted) Descriptor() ([]byte, []int) {
+ return file_github_com_containerd_containerd_api_events_task_proto_rawDescGZIP(), []int{7}
+}
+
+func (x *TaskExecStarted) GetContainerID() string {
+ if x != nil {
+ return x.ContainerID
+ }
+ return ""
+}
+
+func (x *TaskExecStarted) GetExecID() string {
+ if x != nil {
+ return x.ExecID
+ }
+ return ""
+}
+
+func (x *TaskExecStarted) GetPid() uint32 {
+ if x != nil {
+ return x.Pid
+ }
+ return 0
+}
+
+type TaskPaused struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ ContainerID string `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"`
+}
+
+func (x *TaskPaused) Reset() {
+ *x = TaskPaused{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_github_com_containerd_containerd_api_events_task_proto_msgTypes[8]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *TaskPaused) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TaskPaused) ProtoMessage() {}
+
+func (x *TaskPaused) ProtoReflect() protoreflect.Message {
+ mi := &file_github_com_containerd_containerd_api_events_task_proto_msgTypes[8]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use TaskPaused.ProtoReflect.Descriptor instead.
+func (*TaskPaused) Descriptor() ([]byte, []int) {
+ return file_github_com_containerd_containerd_api_events_task_proto_rawDescGZIP(), []int{8}
+}
+
+func (x *TaskPaused) GetContainerID() string {
+ if x != nil {
+ return x.ContainerID
+ }
+ return ""
+}
+
+type TaskResumed struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ ContainerID string `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"`
+}
+
+func (x *TaskResumed) Reset() {
+ *x = TaskResumed{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_github_com_containerd_containerd_api_events_task_proto_msgTypes[9]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *TaskResumed) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TaskResumed) ProtoMessage() {}
+
+func (x *TaskResumed) ProtoReflect() protoreflect.Message {
+ mi := &file_github_com_containerd_containerd_api_events_task_proto_msgTypes[9]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use TaskResumed.ProtoReflect.Descriptor instead.
+func (*TaskResumed) Descriptor() ([]byte, []int) {
+ return file_github_com_containerd_containerd_api_events_task_proto_rawDescGZIP(), []int{9}
+}
+
+func (x *TaskResumed) GetContainerID() string {
+ if x != nil {
+ return x.ContainerID
+ }
+ return ""
+}
+
+type TaskCheckpointed struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ ContainerID string `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"`
+ Checkpoint string `protobuf:"bytes,2,opt,name=checkpoint,proto3" json:"checkpoint,omitempty"`
+}
+
+func (x *TaskCheckpointed) Reset() {
+ *x = TaskCheckpointed{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_github_com_containerd_containerd_api_events_task_proto_msgTypes[10]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *TaskCheckpointed) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TaskCheckpointed) ProtoMessage() {}
+
+func (x *TaskCheckpointed) ProtoReflect() protoreflect.Message {
+ mi := &file_github_com_containerd_containerd_api_events_task_proto_msgTypes[10]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use TaskCheckpointed.ProtoReflect.Descriptor instead.
+func (*TaskCheckpointed) Descriptor() ([]byte, []int) {
+ return file_github_com_containerd_containerd_api_events_task_proto_rawDescGZIP(), []int{10}
+}
+
+func (x *TaskCheckpointed) GetContainerID() string {
+ if x != nil {
+ return x.ContainerID
+ }
+ return ""
+}
+
+func (x *TaskCheckpointed) GetCheckpoint() string {
+ if x != nil {
+ return x.Checkpoint
+ }
+ return ""
+}
+
+var File_github_com_containerd_containerd_api_events_task_proto protoreflect.FileDescriptor
+
+var file_github_com_containerd_containerd_api_events_task_proto_rawDesc = []byte{
+ 0x0a, 0x36, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x6e,
+ 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
+ 0x72, 0x64, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x74, 0x61,
+ 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x11, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69,
+ 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0x1f, 0x67, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d,
+ 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x36, 0x67, 0x69,
+ 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e,
+ 0x65, 0x72, 0x64, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2f, 0x61,
+ 0x70, 0x69, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x40, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d,
+ 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2f, 0x63, 0x6f, 0x6e, 0x74,
+ 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f,
+ 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x70, 0x61, 0x74, 0x68,
+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xd5, 0x01, 0x0a, 0x0a, 0x54, 0x61, 0x73, 0x6b, 0x43,
+ 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e,
+ 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e,
+ 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x75, 0x6e, 0x64,
+ 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65,
+ 0x12, 0x2f, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x74, 0x66, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b,
+ 0x32, 0x17, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x74, 0x79,
+ 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x74, 0x66,
+ 0x73, 0x12, 0x29, 0x0a, 0x02, 0x69, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e,
+ 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74,
+ 0x73, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x4f, 0x52, 0x02, 0x69, 0x6f, 0x12, 0x1e, 0x0a, 0x0a,
+ 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x0a, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03,
+ 0x70, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x70, 0x69, 0x64, 0x22, 0x40,
+ 0x0a, 0x09, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x63,
+ 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x12, 0x10,
+ 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x70, 0x69, 0x64,
+ 0x22, 0xab, 0x01, 0x0a, 0x0a, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12,
+ 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72,
+ 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52,
+ 0x03, 0x70, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x73, 0x74, 0x61,
+ 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x65, 0x78, 0x69, 0x74, 0x53,
+ 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x37, 0x0a, 0x09, 0x65, 0x78, 0x69, 0x74, 0x65, 0x64, 0x5f,
+ 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73,
+ 0x74, 0x61, 0x6d, 0x70, 0x52, 0x08, 0x65, 0x78, 0x69, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x0e,
+ 0x0a, 0x02, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x6a,
+ 0x0a, 0x06, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x4f, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x64, 0x69,
+ 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x64, 0x69, 0x6e, 0x12, 0x16,
+ 0x0a, 0x06, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
+ 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x64, 0x65, 0x72, 0x72,
+ 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x64, 0x65, 0x72, 0x72, 0x12, 0x1a,
+ 0x0a, 0x08, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08,
+ 0x52, 0x08, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x22, 0xa9, 0x01, 0x0a, 0x08, 0x54,
+ 0x61, 0x73, 0x6b, 0x45, 0x78, 0x69, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x61,
+ 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63,
+ 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69,
+ 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x70, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x0b,
+ 0x65, 0x78, 0x69, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28,
+ 0x0d, 0x52, 0x0a, 0x65, 0x78, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x37, 0x0a,
+ 0x09, 0x65, 0x78, 0x69, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
+ 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x08, 0x65, 0x78,
+ 0x69, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x2c, 0x0a, 0x07, 0x54, 0x61, 0x73, 0x6b, 0x4f, 0x4f,
+ 0x4d, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x69,
+ 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e,
+ 0x65, 0x72, 0x49, 0x64, 0x22, 0x4b, 0x0a, 0x0d, 0x54, 0x61, 0x73, 0x6b, 0x45, 0x78, 0x65, 0x63,
+ 0x41, 0x64, 0x64, 0x65, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e,
+ 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e,
+ 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x65, 0x78, 0x65, 0x63,
+ 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x78, 0x65, 0x63, 0x49,
+ 0x64, 0x22, 0x5f, 0x0a, 0x0f, 0x54, 0x61, 0x73, 0x6b, 0x45, 0x78, 0x65, 0x63, 0x53, 0x74, 0x61,
+ 0x72, 0x74, 0x65, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
+ 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74,
+ 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x65, 0x78, 0x65, 0x63, 0x5f,
+ 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x78, 0x65, 0x63, 0x49, 0x64,
+ 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x70,
+ 0x69, 0x64, 0x22, 0x2f, 0x0a, 0x0a, 0x54, 0x61, 0x73, 0x6b, 0x50, 0x61, 0x75, 0x73, 0x65, 0x64,
+ 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
+ 0x72, 0x49, 0x64, 0x22, 0x30, 0x0a, 0x0b, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x75, 0x6d,
+ 0x65, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f,
+ 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69,
+ 0x6e, 0x65, 0x72, 0x49, 0x64, 0x22, 0x55, 0x0a, 0x10, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x68, 0x65,
+ 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e,
+ 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a,
+ 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x0a, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x38, 0x5a, 0x32,
+ 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61,
+ 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64,
+ 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x3b, 0x65, 0x76, 0x65, 0x6e,
+ 0x74, 0x73, 0xa0, 0xf4, 0x1e, 0x01, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_github_com_containerd_containerd_api_events_task_proto_rawDescOnce sync.Once
+ file_github_com_containerd_containerd_api_events_task_proto_rawDescData = file_github_com_containerd_containerd_api_events_task_proto_rawDesc
+)
+
+func file_github_com_containerd_containerd_api_events_task_proto_rawDescGZIP() []byte {
+ file_github_com_containerd_containerd_api_events_task_proto_rawDescOnce.Do(func() {
+ file_github_com_containerd_containerd_api_events_task_proto_rawDescData = protoimpl.X.CompressGZIP(file_github_com_containerd_containerd_api_events_task_proto_rawDescData)
+ })
+ return file_github_com_containerd_containerd_api_events_task_proto_rawDescData
+}
+
+var file_github_com_containerd_containerd_api_events_task_proto_msgTypes = make([]protoimpl.MessageInfo, 11)
+var file_github_com_containerd_containerd_api_events_task_proto_goTypes = []interface{}{
+ (*TaskCreate)(nil), // 0: containerd.events.TaskCreate
+ (*TaskStart)(nil), // 1: containerd.events.TaskStart
+ (*TaskDelete)(nil), // 2: containerd.events.TaskDelete
+ (*TaskIO)(nil), // 3: containerd.events.TaskIO
+ (*TaskExit)(nil), // 4: containerd.events.TaskExit
+ (*TaskOOM)(nil), // 5: containerd.events.TaskOOM
+ (*TaskExecAdded)(nil), // 6: containerd.events.TaskExecAdded
+ (*TaskExecStarted)(nil), // 7: containerd.events.TaskExecStarted
+ (*TaskPaused)(nil), // 8: containerd.events.TaskPaused
+ (*TaskResumed)(nil), // 9: containerd.events.TaskResumed
+ (*TaskCheckpointed)(nil), // 10: containerd.events.TaskCheckpointed
+ (*types.Mount)(nil), // 11: containerd.types.Mount
+ (*timestamppb.Timestamp)(nil), // 12: google.protobuf.Timestamp
+}
+var file_github_com_containerd_containerd_api_events_task_proto_depIdxs = []int32{
+ 11, // 0: containerd.events.TaskCreate.rootfs:type_name -> containerd.types.Mount
+ 3, // 1: containerd.events.TaskCreate.io:type_name -> containerd.events.TaskIO
+ 12, // 2: containerd.events.TaskDelete.exited_at:type_name -> google.protobuf.Timestamp
+ 12, // 3: containerd.events.TaskExit.exited_at:type_name -> google.protobuf.Timestamp
+ 4, // [4:4] is the sub-list for method output_type
+ 4, // [4:4] is the sub-list for method input_type
+ 4, // [4:4] is the sub-list for extension type_name
+ 4, // [4:4] is the sub-list for extension extendee
+ 0, // [0:4] is the sub-list for field type_name
+}
+
+func init() { file_github_com_containerd_containerd_api_events_task_proto_init() }
+func file_github_com_containerd_containerd_api_events_task_proto_init() {
+ if File_github_com_containerd_containerd_api_events_task_proto != nil {
+ return
+ }
+ if !protoimpl.UnsafeEnabled {
+ file_github_com_containerd_containerd_api_events_task_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*TaskCreate); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_github_com_containerd_containerd_api_events_task_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*TaskStart); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_github_com_containerd_containerd_api_events_task_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*TaskDelete); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_github_com_containerd_containerd_api_events_task_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*TaskIO); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_github_com_containerd_containerd_api_events_task_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*TaskExit); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_github_com_containerd_containerd_api_events_task_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*TaskOOM); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_github_com_containerd_containerd_api_events_task_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*TaskExecAdded); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_github_com_containerd_containerd_api_events_task_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*TaskExecStarted); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_github_com_containerd_containerd_api_events_task_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*TaskPaused); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_github_com_containerd_containerd_api_events_task_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*TaskResumed); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_github_com_containerd_containerd_api_events_task_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*TaskCheckpointed); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_github_com_containerd_containerd_api_events_task_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 11,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_github_com_containerd_containerd_api_events_task_proto_goTypes,
+ DependencyIndexes: file_github_com_containerd_containerd_api_events_task_proto_depIdxs,
+ MessageInfos: file_github_com_containerd_containerd_api_events_task_proto_msgTypes,
+ }.Build()
+ File_github_com_containerd_containerd_api_events_task_proto = out.File
+ file_github_com_containerd_containerd_api_events_task_proto_rawDesc = nil
+ file_github_com_containerd_containerd_api_events_task_proto_goTypes = nil
+ file_github_com_containerd_containerd_api_events_task_proto_depIdxs = nil
+}
diff --git a/tools/vendor/github.com/containerd/containerd/api/events/task.proto b/tools/vendor/github.com/containerd/containerd/api/events/task.proto
new file mode 100644
index 000000000..238564dfe
--- /dev/null
+++ b/tools/vendor/github.com/containerd/containerd/api/events/task.proto
@@ -0,0 +1,93 @@
+/*
+ Copyright The containerd 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.
+*/
+
+syntax = "proto3";
+
+package containerd.events;
+
+import "google/protobuf/timestamp.proto";
+import "github.com/containerd/containerd/api/types/mount.proto";
+import "github.com/containerd/containerd/protobuf/plugin/fieldpath.proto";
+
+option go_package = "github.com/containerd/containerd/api/events;events";
+option (containerd.plugin.fieldpath_all) = true;
+
+message TaskCreate {
+ string container_id = 1;
+ string bundle = 2;
+ repeated containerd.types.Mount rootfs = 3;
+ TaskIO io = 4;
+ string checkpoint = 5;
+ uint32 pid = 6;
+}
+
+message TaskStart {
+ string container_id = 1;
+ uint32 pid = 2;
+}
+
+message TaskDelete {
+ string container_id = 1;
+ uint32 pid = 2;
+ uint32 exit_status = 3;
+ google.protobuf.Timestamp exited_at = 4;
+ // id is the specific exec. By default if omitted will be `""` thus matches
+ // the init exec of the task matching `container_id`.
+ string id = 5;
+}
+
+message TaskIO {
+ string stdin = 1;
+ string stdout = 2;
+ string stderr = 3;
+ bool terminal = 4;
+}
+
+message TaskExit {
+ string container_id = 1;
+ string id = 2;
+ uint32 pid = 3;
+ uint32 exit_status = 4;
+ google.protobuf.Timestamp exited_at = 5;
+}
+
+message TaskOOM {
+ string container_id = 1;
+}
+
+message TaskExecAdded {
+ string container_id = 1;
+ string exec_id = 2;
+}
+
+message TaskExecStarted {
+ string container_id = 1;
+ string exec_id = 2;
+ uint32 pid = 3;
+}
+
+message TaskPaused {
+ string container_id = 1;
+}
+
+message TaskResumed {
+ string container_id = 1;
+}
+
+message TaskCheckpointed {
+ string container_id = 1;
+ string checkpoint = 2;
+}
diff --git a/tools/vendor/github.com/containerd/containerd/api/events/task_fieldpath.pb.go b/tools/vendor/github.com/containerd/containerd/api/events/task_fieldpath.pb.go
new file mode 100644
index 000000000..633fc3a65
--- /dev/null
+++ b/tools/vendor/github.com/containerd/containerd/api/events/task_fieldpath.pb.go
@@ -0,0 +1,191 @@
+// Code generated by protoc-gen-go-fieldpath. DO NOT EDIT.
+// source: github.com/containerd/containerd/api/events/task.proto
+package events
+
+import (
+ fmt "fmt"
+)
+
+// Field returns the value for the given fieldpath as a string, if defined.
+// If the value is not defined, the second value will be false.
+func (m *TaskCreate) Field(fieldpath []string) (string, bool) {
+ if len(fieldpath) == 0 {
+ return "", false
+ }
+ switch fieldpath[0] {
+ // unhandled: rootfs
+ // unhandled: pid
+ case "container_id":
+ return string(m.ContainerID), len(m.ContainerID) > 0
+ case "bundle":
+ return string(m.Bundle), len(m.Bundle) > 0
+ case "io":
+ // NOTE(stevvooe): This is probably not correct in many cases.
+ // We assume that the target message also implements the Field
+ // method, which isn't likely true in a lot of cases.
+ //
+ // If you have a broken build and have found this comment,
+ // you may be closer to a solution.
+ if m.IO == nil {
+ return "", false
+ }
+ return m.IO.Field(fieldpath[1:])
+ case "checkpoint":
+ return string(m.Checkpoint), len(m.Checkpoint) > 0
+ }
+ return "", false
+}
+
+// Field returns the value for the given fieldpath as a string, if defined.
+// If the value is not defined, the second value will be false.
+func (m *TaskStart) Field(fieldpath []string) (string, bool) {
+ if len(fieldpath) == 0 {
+ return "", false
+ }
+ switch fieldpath[0] {
+ // unhandled: pid
+ case "container_id":
+ return string(m.ContainerID), len(m.ContainerID) > 0
+ }
+ return "", false
+}
+
+// Field returns the value for the given fieldpath as a string, if defined.
+// If the value is not defined, the second value will be false.
+func (m *TaskDelete) Field(fieldpath []string) (string, bool) {
+ if len(fieldpath) == 0 {
+ return "", false
+ }
+ switch fieldpath[0] {
+ // unhandled: pid
+ // unhandled: exit_status
+ // unhandled: exited_at
+ case "container_id":
+ return string(m.ContainerID), len(m.ContainerID) > 0
+ case "id":
+ return string(m.ID), len(m.ID) > 0
+ }
+ return "", false
+}
+
+// Field returns the value for the given fieldpath as a string, if defined.
+// If the value is not defined, the second value will be false.
+func (m *TaskIO) Field(fieldpath []string) (string, bool) {
+ if len(fieldpath) == 0 {
+ return "", false
+ }
+ switch fieldpath[0] {
+ case "stdin":
+ return string(m.Stdin), len(m.Stdin) > 0
+ case "stdout":
+ return string(m.Stdout), len(m.Stdout) > 0
+ case "stderr":
+ return string(m.Stderr), len(m.Stderr) > 0
+ case "terminal":
+ return fmt.Sprint(m.Terminal), true
+ }
+ return "", false
+}
+
+// Field returns the value for the given fieldpath as a string, if defined.
+// If the value is not defined, the second value will be false.
+func (m *TaskExit) Field(fieldpath []string) (string, bool) {
+ if len(fieldpath) == 0 {
+ return "", false
+ }
+ switch fieldpath[0] {
+ // unhandled: pid
+ // unhandled: exit_status
+ // unhandled: exited_at
+ case "container_id":
+ return string(m.ContainerID), len(m.ContainerID) > 0
+ case "id":
+ return string(m.ID), len(m.ID) > 0
+ }
+ return "", false
+}
+
+// Field returns the value for the given fieldpath as a string, if defined.
+// If the value is not defined, the second value will be false.
+func (m *TaskOOM) Field(fieldpath []string) (string, bool) {
+ if len(fieldpath) == 0 {
+ return "", false
+ }
+ switch fieldpath[0] {
+ case "container_id":
+ return string(m.ContainerID), len(m.ContainerID) > 0
+ }
+ return "", false
+}
+
+// Field returns the value for the given fieldpath as a string, if defined.
+// If the value is not defined, the second value will be false.
+func (m *TaskExecAdded) Field(fieldpath []string) (string, bool) {
+ if len(fieldpath) == 0 {
+ return "", false
+ }
+ switch fieldpath[0] {
+ case "container_id":
+ return string(m.ContainerID), len(m.ContainerID) > 0
+ case "exec_id":
+ return string(m.ExecID), len(m.ExecID) > 0
+ }
+ return "", false
+}
+
+// Field returns the value for the given fieldpath as a string, if defined.
+// If the value is not defined, the second value will be false.
+func (m *TaskExecStarted) Field(fieldpath []string) (string, bool) {
+ if len(fieldpath) == 0 {
+ return "", false
+ }
+ switch fieldpath[0] {
+ // unhandled: pid
+ case "container_id":
+ return string(m.ContainerID), len(m.ContainerID) > 0
+ case "exec_id":
+ return string(m.ExecID), len(m.ExecID) > 0
+ }
+ return "", false
+}
+
+// Field returns the value for the given fieldpath as a string, if defined.
+// If the value is not defined, the second value will be false.
+func (m *TaskPaused) Field(fieldpath []string) (string, bool) {
+ if len(fieldpath) == 0 {
+ return "", false
+ }
+ switch fieldpath[0] {
+ case "container_id":
+ return string(m.ContainerID), len(m.ContainerID) > 0
+ }
+ return "", false
+}
+
+// Field returns the value for the given fieldpath as a string, if defined.
+// If the value is not defined, the second value will be false.
+func (m *TaskResumed) Field(fieldpath []string) (string, bool) {
+ if len(fieldpath) == 0 {
+ return "", false
+ }
+ switch fieldpath[0] {
+ case "container_id":
+ return string(m.ContainerID), len(m.ContainerID) > 0
+ }
+ return "", false
+}
+
+// Field returns the value for the given fieldpath as a string, if defined.
+// If the value is not defined, the second value will be false.
+func (m *TaskCheckpointed) Field(fieldpath []string) (string, bool) {
+ if len(fieldpath) == 0 {
+ return "", false
+ }
+ switch fieldpath[0] {
+ case "container_id":
+ return string(m.ContainerID), len(m.ContainerID) > 0
+ case "checkpoint":
+ return string(m.Checkpoint), len(m.Checkpoint) > 0
+ }
+ return "", false
+}
diff --git a/tools/vendor/github.com/containerd/containerd/api/runtime/sandbox/v1/doc.go b/tools/vendor/github.com/containerd/containerd/api/runtime/sandbox/v1/doc.go
new file mode 100644
index 000000000..f960350c1
--- /dev/null
+++ b/tools/vendor/github.com/containerd/containerd/api/runtime/sandbox/v1/doc.go
@@ -0,0 +1,17 @@
+/*
+ Copyright The containerd 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 sandbox
diff --git a/tools/vendor/github.com/containerd/containerd/api/runtime/sandbox/v1/sandbox.pb.go b/tools/vendor/github.com/containerd/containerd/api/runtime/sandbox/v1/sandbox.pb.go
new file mode 100644
index 000000000..5b3d4aa78
--- /dev/null
+++ b/tools/vendor/github.com/containerd/containerd/api/runtime/sandbox/v1/sandbox.pb.go
@@ -0,0 +1,1480 @@
+//
+//Copyright The containerd 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.
+
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// protoc-gen-go v1.28.1
+// protoc v3.20.1
+// source: github.com/containerd/containerd/api/runtime/sandbox/v1/sandbox.proto
+
+package sandbox
+
+import (
+ types "github.com/containerd/containerd/api/types"
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ anypb "google.golang.org/protobuf/types/known/anypb"
+ timestamppb "google.golang.org/protobuf/types/known/timestamppb"
+ reflect "reflect"
+ sync "sync"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+type CreateSandboxRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ SandboxID string `protobuf:"bytes,1,opt,name=sandbox_id,json=sandboxId,proto3" json:"sandbox_id,omitempty"`
+ BundlePath string `protobuf:"bytes,2,opt,name=bundle_path,json=bundlePath,proto3" json:"bundle_path,omitempty"`
+ Rootfs []*types.Mount `protobuf:"bytes,3,rep,name=rootfs,proto3" json:"rootfs,omitempty"`
+ Options *anypb.Any `protobuf:"bytes,4,opt,name=options,proto3" json:"options,omitempty"`
+ NetnsPath string `protobuf:"bytes,5,opt,name=netns_path,json=netnsPath,proto3" json:"netns_path,omitempty"`
+}
+
+func (x *CreateSandboxRequest) Reset() {
+ *x = CreateSandboxRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateSandboxRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateSandboxRequest) ProtoMessage() {}
+
+func (x *CreateSandboxRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateSandboxRequest.ProtoReflect.Descriptor instead.
+func (*CreateSandboxRequest) Descriptor() ([]byte, []int) {
+ return file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *CreateSandboxRequest) GetSandboxID() string {
+ if x != nil {
+ return x.SandboxID
+ }
+ return ""
+}
+
+func (x *CreateSandboxRequest) GetBundlePath() string {
+ if x != nil {
+ return x.BundlePath
+ }
+ return ""
+}
+
+func (x *CreateSandboxRequest) GetRootfs() []*types.Mount {
+ if x != nil {
+ return x.Rootfs
+ }
+ return nil
+}
+
+func (x *CreateSandboxRequest) GetOptions() *anypb.Any {
+ if x != nil {
+ return x.Options
+ }
+ return nil
+}
+
+func (x *CreateSandboxRequest) GetNetnsPath() string {
+ if x != nil {
+ return x.NetnsPath
+ }
+ return ""
+}
+
+type CreateSandboxResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *CreateSandboxResponse) Reset() {
+ *x = CreateSandboxResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateSandboxResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateSandboxResponse) ProtoMessage() {}
+
+func (x *CreateSandboxResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateSandboxResponse.ProtoReflect.Descriptor instead.
+func (*CreateSandboxResponse) Descriptor() ([]byte, []int) {
+ return file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_rawDescGZIP(), []int{1}
+}
+
+type StartSandboxRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ SandboxID string `protobuf:"bytes,1,opt,name=sandbox_id,json=sandboxId,proto3" json:"sandbox_id,omitempty"`
+}
+
+func (x *StartSandboxRequest) Reset() {
+ *x = StartSandboxRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *StartSandboxRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*StartSandboxRequest) ProtoMessage() {}
+
+func (x *StartSandboxRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes[2]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use StartSandboxRequest.ProtoReflect.Descriptor instead.
+func (*StartSandboxRequest) Descriptor() ([]byte, []int) {
+ return file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *StartSandboxRequest) GetSandboxID() string {
+ if x != nil {
+ return x.SandboxID
+ }
+ return ""
+}
+
+type StartSandboxResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Pid uint32 `protobuf:"varint,1,opt,name=pid,proto3" json:"pid,omitempty"`
+ CreatedAt *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
+}
+
+func (x *StartSandboxResponse) Reset() {
+ *x = StartSandboxResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *StartSandboxResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*StartSandboxResponse) ProtoMessage() {}
+
+func (x *StartSandboxResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes[3]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use StartSandboxResponse.ProtoReflect.Descriptor instead.
+func (*StartSandboxResponse) Descriptor() ([]byte, []int) {
+ return file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_rawDescGZIP(), []int{3}
+}
+
+func (x *StartSandboxResponse) GetPid() uint32 {
+ if x != nil {
+ return x.Pid
+ }
+ return 0
+}
+
+func (x *StartSandboxResponse) GetCreatedAt() *timestamppb.Timestamp {
+ if x != nil {
+ return x.CreatedAt
+ }
+ return nil
+}
+
+type PlatformRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ SandboxID string `protobuf:"bytes,1,opt,name=sandbox_id,json=sandboxId,proto3" json:"sandbox_id,omitempty"`
+}
+
+func (x *PlatformRequest) Reset() {
+ *x = PlatformRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *PlatformRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*PlatformRequest) ProtoMessage() {}
+
+func (x *PlatformRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes[4]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use PlatformRequest.ProtoReflect.Descriptor instead.
+func (*PlatformRequest) Descriptor() ([]byte, []int) {
+ return file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_rawDescGZIP(), []int{4}
+}
+
+func (x *PlatformRequest) GetSandboxID() string {
+ if x != nil {
+ return x.SandboxID
+ }
+ return ""
+}
+
+type PlatformResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Platform *types.Platform `protobuf:"bytes,1,opt,name=platform,proto3" json:"platform,omitempty"`
+}
+
+func (x *PlatformResponse) Reset() {
+ *x = PlatformResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes[5]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *PlatformResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*PlatformResponse) ProtoMessage() {}
+
+func (x *PlatformResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes[5]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use PlatformResponse.ProtoReflect.Descriptor instead.
+func (*PlatformResponse) Descriptor() ([]byte, []int) {
+ return file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_rawDescGZIP(), []int{5}
+}
+
+func (x *PlatformResponse) GetPlatform() *types.Platform {
+ if x != nil {
+ return x.Platform
+ }
+ return nil
+}
+
+type StopSandboxRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ SandboxID string `protobuf:"bytes,1,opt,name=sandbox_id,json=sandboxId,proto3" json:"sandbox_id,omitempty"`
+ TimeoutSecs uint32 `protobuf:"varint,2,opt,name=timeout_secs,json=timeoutSecs,proto3" json:"timeout_secs,omitempty"`
+}
+
+func (x *StopSandboxRequest) Reset() {
+ *x = StopSandboxRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes[6]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *StopSandboxRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*StopSandboxRequest) ProtoMessage() {}
+
+func (x *StopSandboxRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes[6]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use StopSandboxRequest.ProtoReflect.Descriptor instead.
+func (*StopSandboxRequest) Descriptor() ([]byte, []int) {
+ return file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_rawDescGZIP(), []int{6}
+}
+
+func (x *StopSandboxRequest) GetSandboxID() string {
+ if x != nil {
+ return x.SandboxID
+ }
+ return ""
+}
+
+func (x *StopSandboxRequest) GetTimeoutSecs() uint32 {
+ if x != nil {
+ return x.TimeoutSecs
+ }
+ return 0
+}
+
+type StopSandboxResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *StopSandboxResponse) Reset() {
+ *x = StopSandboxResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes[7]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *StopSandboxResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*StopSandboxResponse) ProtoMessage() {}
+
+func (x *StopSandboxResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes[7]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use StopSandboxResponse.ProtoReflect.Descriptor instead.
+func (*StopSandboxResponse) Descriptor() ([]byte, []int) {
+ return file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_rawDescGZIP(), []int{7}
+}
+
+type UpdateSandboxRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ SandboxID string `protobuf:"bytes,1,opt,name=sandbox_id,json=sandboxId,proto3" json:"sandbox_id,omitempty"`
+ Resources *anypb.Any `protobuf:"bytes,2,opt,name=resources,proto3" json:"resources,omitempty"`
+ Annotations map[string]string `protobuf:"bytes,3,rep,name=annotations,proto3" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+}
+
+func (x *UpdateSandboxRequest) Reset() {
+ *x = UpdateSandboxRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes[8]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *UpdateSandboxRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UpdateSandboxRequest) ProtoMessage() {}
+
+func (x *UpdateSandboxRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes[8]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use UpdateSandboxRequest.ProtoReflect.Descriptor instead.
+func (*UpdateSandboxRequest) Descriptor() ([]byte, []int) {
+ return file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_rawDescGZIP(), []int{8}
+}
+
+func (x *UpdateSandboxRequest) GetSandboxID() string {
+ if x != nil {
+ return x.SandboxID
+ }
+ return ""
+}
+
+func (x *UpdateSandboxRequest) GetResources() *anypb.Any {
+ if x != nil {
+ return x.Resources
+ }
+ return nil
+}
+
+func (x *UpdateSandboxRequest) GetAnnotations() map[string]string {
+ if x != nil {
+ return x.Annotations
+ }
+ return nil
+}
+
+type WaitSandboxRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ SandboxID string `protobuf:"bytes,1,opt,name=sandbox_id,json=sandboxId,proto3" json:"sandbox_id,omitempty"`
+}
+
+func (x *WaitSandboxRequest) Reset() {
+ *x = WaitSandboxRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes[9]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *WaitSandboxRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*WaitSandboxRequest) ProtoMessage() {}
+
+func (x *WaitSandboxRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes[9]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use WaitSandboxRequest.ProtoReflect.Descriptor instead.
+func (*WaitSandboxRequest) Descriptor() ([]byte, []int) {
+ return file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_rawDescGZIP(), []int{9}
+}
+
+func (x *WaitSandboxRequest) GetSandboxID() string {
+ if x != nil {
+ return x.SandboxID
+ }
+ return ""
+}
+
+type WaitSandboxResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ ExitStatus uint32 `protobuf:"varint,1,opt,name=exit_status,json=exitStatus,proto3" json:"exit_status,omitempty"`
+ ExitedAt *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=exited_at,json=exitedAt,proto3" json:"exited_at,omitempty"`
+}
+
+func (x *WaitSandboxResponse) Reset() {
+ *x = WaitSandboxResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes[10]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *WaitSandboxResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*WaitSandboxResponse) ProtoMessage() {}
+
+func (x *WaitSandboxResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes[10]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use WaitSandboxResponse.ProtoReflect.Descriptor instead.
+func (*WaitSandboxResponse) Descriptor() ([]byte, []int) {
+ return file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_rawDescGZIP(), []int{10}
+}
+
+func (x *WaitSandboxResponse) GetExitStatus() uint32 {
+ if x != nil {
+ return x.ExitStatus
+ }
+ return 0
+}
+
+func (x *WaitSandboxResponse) GetExitedAt() *timestamppb.Timestamp {
+ if x != nil {
+ return x.ExitedAt
+ }
+ return nil
+}
+
+type UpdateSandboxResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *UpdateSandboxResponse) Reset() {
+ *x = UpdateSandboxResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes[11]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *UpdateSandboxResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UpdateSandboxResponse) ProtoMessage() {}
+
+func (x *UpdateSandboxResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes[11]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use UpdateSandboxResponse.ProtoReflect.Descriptor instead.
+func (*UpdateSandboxResponse) Descriptor() ([]byte, []int) {
+ return file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_rawDescGZIP(), []int{11}
+}
+
+type SandboxStatusRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ SandboxID string `protobuf:"bytes,1,opt,name=sandbox_id,json=sandboxId,proto3" json:"sandbox_id,omitempty"`
+ Verbose bool `protobuf:"varint,2,opt,name=verbose,proto3" json:"verbose,omitempty"`
+}
+
+func (x *SandboxStatusRequest) Reset() {
+ *x = SandboxStatusRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes[12]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *SandboxStatusRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SandboxStatusRequest) ProtoMessage() {}
+
+func (x *SandboxStatusRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes[12]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use SandboxStatusRequest.ProtoReflect.Descriptor instead.
+func (*SandboxStatusRequest) Descriptor() ([]byte, []int) {
+ return file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_rawDescGZIP(), []int{12}
+}
+
+func (x *SandboxStatusRequest) GetSandboxID() string {
+ if x != nil {
+ return x.SandboxID
+ }
+ return ""
+}
+
+func (x *SandboxStatusRequest) GetVerbose() bool {
+ if x != nil {
+ return x.Verbose
+ }
+ return false
+}
+
+type SandboxStatusResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ SandboxID string `protobuf:"bytes,1,opt,name=sandbox_id,json=sandboxId,proto3" json:"sandbox_id,omitempty"`
+ Pid uint32 `protobuf:"varint,2,opt,name=pid,proto3" json:"pid,omitempty"`
+ State string `protobuf:"bytes,3,opt,name=state,proto3" json:"state,omitempty"`
+ Info map[string]string `protobuf:"bytes,4,rep,name=info,proto3" json:"info,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+ CreatedAt *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
+ ExitedAt *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=exited_at,json=exitedAt,proto3" json:"exited_at,omitempty"`
+ Extra *anypb.Any `protobuf:"bytes,7,opt,name=extra,proto3" json:"extra,omitempty"`
+}
+
+func (x *SandboxStatusResponse) Reset() {
+ *x = SandboxStatusResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes[13]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *SandboxStatusResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SandboxStatusResponse) ProtoMessage() {}
+
+func (x *SandboxStatusResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes[13]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use SandboxStatusResponse.ProtoReflect.Descriptor instead.
+func (*SandboxStatusResponse) Descriptor() ([]byte, []int) {
+ return file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_rawDescGZIP(), []int{13}
+}
+
+func (x *SandboxStatusResponse) GetSandboxID() string {
+ if x != nil {
+ return x.SandboxID
+ }
+ return ""
+}
+
+func (x *SandboxStatusResponse) GetPid() uint32 {
+ if x != nil {
+ return x.Pid
+ }
+ return 0
+}
+
+func (x *SandboxStatusResponse) GetState() string {
+ if x != nil {
+ return x.State
+ }
+ return ""
+}
+
+func (x *SandboxStatusResponse) GetInfo() map[string]string {
+ if x != nil {
+ return x.Info
+ }
+ return nil
+}
+
+func (x *SandboxStatusResponse) GetCreatedAt() *timestamppb.Timestamp {
+ if x != nil {
+ return x.CreatedAt
+ }
+ return nil
+}
+
+func (x *SandboxStatusResponse) GetExitedAt() *timestamppb.Timestamp {
+ if x != nil {
+ return x.ExitedAt
+ }
+ return nil
+}
+
+func (x *SandboxStatusResponse) GetExtra() *anypb.Any {
+ if x != nil {
+ return x.Extra
+ }
+ return nil
+}
+
+type PingRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ SandboxID string `protobuf:"bytes,1,opt,name=sandbox_id,json=sandboxId,proto3" json:"sandbox_id,omitempty"`
+}
+
+func (x *PingRequest) Reset() {
+ *x = PingRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes[14]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *PingRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*PingRequest) ProtoMessage() {}
+
+func (x *PingRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes[14]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use PingRequest.ProtoReflect.Descriptor instead.
+func (*PingRequest) Descriptor() ([]byte, []int) {
+ return file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_rawDescGZIP(), []int{14}
+}
+
+func (x *PingRequest) GetSandboxID() string {
+ if x != nil {
+ return x.SandboxID
+ }
+ return ""
+}
+
+type PingResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *PingResponse) Reset() {
+ *x = PingResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes[15]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *PingResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*PingResponse) ProtoMessage() {}
+
+func (x *PingResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes[15]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use PingResponse.ProtoReflect.Descriptor instead.
+func (*PingResponse) Descriptor() ([]byte, []int) {
+ return file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_rawDescGZIP(), []int{15}
+}
+
+type ShutdownSandboxRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ SandboxID string `protobuf:"bytes,1,opt,name=sandbox_id,json=sandboxId,proto3" json:"sandbox_id,omitempty"`
+}
+
+func (x *ShutdownSandboxRequest) Reset() {
+ *x = ShutdownSandboxRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes[16]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ShutdownSandboxRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ShutdownSandboxRequest) ProtoMessage() {}
+
+func (x *ShutdownSandboxRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes[16]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ShutdownSandboxRequest.ProtoReflect.Descriptor instead.
+func (*ShutdownSandboxRequest) Descriptor() ([]byte, []int) {
+ return file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_rawDescGZIP(), []int{16}
+}
+
+func (x *ShutdownSandboxRequest) GetSandboxID() string {
+ if x != nil {
+ return x.SandboxID
+ }
+ return ""
+}
+
+type ShutdownSandboxResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *ShutdownSandboxResponse) Reset() {
+ *x = ShutdownSandboxResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes[17]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ShutdownSandboxResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ShutdownSandboxResponse) ProtoMessage() {}
+
+func (x *ShutdownSandboxResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes[17]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ShutdownSandboxResponse.ProtoReflect.Descriptor instead.
+func (*ShutdownSandboxResponse) Descriptor() ([]byte, []int) {
+ return file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_rawDescGZIP(), []int{17}
+}
+
+var File_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto protoreflect.FileDescriptor
+
+var file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_rawDesc = []byte{
+ 0x0a, 0x45, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x6e,
+ 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
+ 0x72, 0x64, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2f, 0x73,
+ 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f,
+ 0x78, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1d, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e,
+ 0x65, 0x72, 0x64, 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x73, 0x61, 0x6e, 0x64,
+ 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
+ 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x1a, 0x36, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63,
+ 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69,
+ 0x6e, 0x65, 0x72, 0x64, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x6d,
+ 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x39, 0x67, 0x69, 0x74, 0x68,
+ 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72,
+ 0x64, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2f, 0x61, 0x70, 0x69,
+ 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xd6, 0x01, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
+ 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d,
+ 0x0a, 0x0a, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x09, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x49, 0x64, 0x12, 0x1f, 0x0a,
+ 0x0b, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x2f,
+ 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x74, 0x66, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17,
+ 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x74, 0x79, 0x70, 0x65,
+ 0x73, 0x2e, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x74, 0x66, 0x73, 0x12,
+ 0x2e, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
+ 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12,
+ 0x1d, 0x0a, 0x0a, 0x6e, 0x65, 0x74, 0x6e, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x05, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x65, 0x74, 0x6e, 0x73, 0x50, 0x61, 0x74, 0x68, 0x22, 0x17,
+ 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x34, 0x0a, 0x13, 0x53, 0x74, 0x61, 0x72, 0x74,
+ 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d,
+ 0x0a, 0x0a, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x09, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x49, 0x64, 0x22, 0x63, 0x0a,
+ 0x14, 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x0d, 0x52, 0x03, 0x70, 0x69, 0x64, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74,
+ 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f,
+ 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69,
+ 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64,
+ 0x41, 0x74, 0x22, 0x30, 0x0a, 0x0f, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78,
+ 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x61, 0x6e, 0x64, 0x62,
+ 0x6f, 0x78, 0x49, 0x64, 0x22, 0x4a, 0x0a, 0x10, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d,
+ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74,
+ 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x6e,
+ 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x50, 0x6c,
+ 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d,
+ 0x22, 0x56, 0x0a, 0x12, 0x53, 0x74, 0x6f, 0x70, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52,
+ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f,
+ 0x78, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x61, 0x6e, 0x64,
+ 0x62, 0x6f, 0x78, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74,
+ 0x5f, 0x73, 0x65, 0x63, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x74, 0x69, 0x6d,
+ 0x65, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x63, 0x73, 0x22, 0x15, 0x0a, 0x13, 0x53, 0x74, 0x6f, 0x70,
+ 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
+ 0x91, 0x02, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f,
+ 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x61, 0x6e, 0x64,
+ 0x62, 0x6f, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x61,
+ 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75,
+ 0x72, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79,
+ 0x52, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x66, 0x0a, 0x0b, 0x61,
+ 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b,
+ 0x32, 0x44, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x72, 0x75,
+ 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31,
+ 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69,
+ 0x6f, 0x6e, 0x73, 0x1a, 0x3e, 0x0a, 0x10, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c,
+ 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a,
+ 0x02, 0x38, 0x01, 0x22, 0x33, 0x0a, 0x12, 0x57, 0x61, 0x69, 0x74, 0x53, 0x61, 0x6e, 0x64, 0x62,
+ 0x6f, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x61, 0x6e,
+ 0x64, 0x62, 0x6f, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73,
+ 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x49, 0x64, 0x22, 0x6f, 0x0a, 0x13, 0x57, 0x61, 0x69, 0x74,
+ 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
+ 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x65, 0x78, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
+ 0x12, 0x37, 0x0a, 0x09, 0x65, 0x78, 0x69, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52,
+ 0x08, 0x65, 0x78, 0x69, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x17, 0x0a, 0x15, 0x55, 0x70, 0x64,
+ 0x61, 0x74, 0x65, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x22, 0x4f, 0x0a, 0x14, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x53, 0x74, 0x61,
+ 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x61,
+ 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
+ 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72,
+ 0x62, 0x6f, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x76, 0x65, 0x72, 0x62,
+ 0x6f, 0x73, 0x65, 0x22, 0x8b, 0x03, 0x0a, 0x15, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x53,
+ 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a,
+ 0x0a, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x09, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03,
+ 0x70, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x70, 0x69, 0x64, 0x12, 0x14,
+ 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73,
+ 0x74, 0x61, 0x74, 0x65, 0x12, 0x52, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x03,
+ 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e,
+ 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e,
+ 0x76, 0x31, 0x2e, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
+ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74,
+ 0x72, 0x79, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61,
+ 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67,
+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54,
+ 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65,
+ 0x64, 0x41, 0x74, 0x12, 0x37, 0x0a, 0x09, 0x65, 0x78, 0x69, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74,
+ 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
+ 0x6d, 0x70, 0x52, 0x08, 0x65, 0x78, 0x69, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x2a, 0x0a, 0x05,
+ 0x65, 0x78, 0x74, 0x72, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f,
+ 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e,
+ 0x79, 0x52, 0x05, 0x65, 0x78, 0x74, 0x72, 0x61, 0x1a, 0x37, 0x0a, 0x09, 0x49, 0x6e, 0x66, 0x6f,
+ 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38,
+ 0x01, 0x22, 0x2c, 0x0a, 0x0b, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x49, 0x64, 0x22,
+ 0x0e, 0x0a, 0x0c, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
+ 0x37, 0x0a, 0x16, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x53, 0x61, 0x6e, 0x64, 0x62,
+ 0x6f, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x61, 0x6e,
+ 0x64, 0x62, 0x6f, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73,
+ 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x49, 0x64, 0x22, 0x19, 0x0a, 0x17, 0x53, 0x68, 0x75, 0x74,
+ 0x64, 0x6f, 0x77, 0x6e, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f,
+ 0x6e, 0x73, 0x65, 0x32, 0xbe, 0x07, 0x0a, 0x07, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x12,
+ 0x7a, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78,
+ 0x12, 0x33, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x72, 0x75,
+ 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31,
+ 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
+ 0x72, 0x64, 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62,
+ 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x61, 0x6e, 0x64,
+ 0x62, 0x6f, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, 0x0c, 0x53,
+ 0x74, 0x61, 0x72, 0x74, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x12, 0x32, 0x2e, 0x63, 0x6f,
+ 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65,
+ 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x72,
+ 0x74, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
+ 0x33, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x72, 0x75, 0x6e,
+ 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e,
+ 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6b, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d,
+ 0x12, 0x2e, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x72, 0x75,
+ 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31,
+ 0x2e, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x1a, 0x2f, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x72, 0x75,
+ 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31,
+ 0x2e, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+ 0x65, 0x12, 0x74, 0x0a, 0x0b, 0x53, 0x74, 0x6f, 0x70, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78,
+ 0x12, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x72, 0x75,
+ 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31,
+ 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64,
+ 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78,
+ 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x74, 0x0a, 0x0b, 0x57, 0x61, 0x69, 0x74, 0x53,
+ 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x12, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e,
+ 0x65, 0x72, 0x64, 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x73, 0x61, 0x6e, 0x64,
+ 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x61, 0x69, 0x74, 0x53, 0x61, 0x6e, 0x64, 0x62,
+ 0x6f, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x63, 0x6f, 0x6e, 0x74,
+ 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x73,
+ 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x61, 0x69, 0x74, 0x53, 0x61,
+ 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7a, 0x0a,
+ 0x0d, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x33,
+ 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x72, 0x75, 0x6e, 0x74,
+ 0x69, 0x6d, 0x65, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x53,
+ 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64,
+ 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78,
+ 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x53, 0x74, 0x61, 0x74, 0x75,
+ 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x66, 0x0a, 0x0b, 0x50, 0x69, 0x6e,
+ 0x67, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x12, 0x2a, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61,
+ 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x73, 0x61,
+ 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72,
+ 0x64, 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f,
+ 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+ 0x65, 0x12, 0x80, 0x01, 0x0a, 0x0f, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x53, 0x61,
+ 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x12, 0x35, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
+ 0x72, 0x64, 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62,
+ 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x53, 0x61,
+ 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x63,
+ 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d,
+ 0x65, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x68, 0x75,
+ 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x41, 0x5a, 0x3f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63,
+ 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2f, 0x63, 0x6f,
+ 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x75, 0x6e,
+ 0x74, 0x69, 0x6d, 0x65, 0x2f, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2f, 0x76, 0x31, 0x3b,
+ 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_rawDescOnce sync.Once
+ file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_rawDescData = file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_rawDesc
+)
+
+func file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_rawDescGZIP() []byte {
+ file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_rawDescOnce.Do(func() {
+ file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_rawDescData = protoimpl.X.CompressGZIP(file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_rawDescData)
+ })
+ return file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_rawDescData
+}
+
+var file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes = make([]protoimpl.MessageInfo, 20)
+var file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_goTypes = []interface{}{
+ (*CreateSandboxRequest)(nil), // 0: containerd.runtime.sandbox.v1.CreateSandboxRequest
+ (*CreateSandboxResponse)(nil), // 1: containerd.runtime.sandbox.v1.CreateSandboxResponse
+ (*StartSandboxRequest)(nil), // 2: containerd.runtime.sandbox.v1.StartSandboxRequest
+ (*StartSandboxResponse)(nil), // 3: containerd.runtime.sandbox.v1.StartSandboxResponse
+ (*PlatformRequest)(nil), // 4: containerd.runtime.sandbox.v1.PlatformRequest
+ (*PlatformResponse)(nil), // 5: containerd.runtime.sandbox.v1.PlatformResponse
+ (*StopSandboxRequest)(nil), // 6: containerd.runtime.sandbox.v1.StopSandboxRequest
+ (*StopSandboxResponse)(nil), // 7: containerd.runtime.sandbox.v1.StopSandboxResponse
+ (*UpdateSandboxRequest)(nil), // 8: containerd.runtime.sandbox.v1.UpdateSandboxRequest
+ (*WaitSandboxRequest)(nil), // 9: containerd.runtime.sandbox.v1.WaitSandboxRequest
+ (*WaitSandboxResponse)(nil), // 10: containerd.runtime.sandbox.v1.WaitSandboxResponse
+ (*UpdateSandboxResponse)(nil), // 11: containerd.runtime.sandbox.v1.UpdateSandboxResponse
+ (*SandboxStatusRequest)(nil), // 12: containerd.runtime.sandbox.v1.SandboxStatusRequest
+ (*SandboxStatusResponse)(nil), // 13: containerd.runtime.sandbox.v1.SandboxStatusResponse
+ (*PingRequest)(nil), // 14: containerd.runtime.sandbox.v1.PingRequest
+ (*PingResponse)(nil), // 15: containerd.runtime.sandbox.v1.PingResponse
+ (*ShutdownSandboxRequest)(nil), // 16: containerd.runtime.sandbox.v1.ShutdownSandboxRequest
+ (*ShutdownSandboxResponse)(nil), // 17: containerd.runtime.sandbox.v1.ShutdownSandboxResponse
+ nil, // 18: containerd.runtime.sandbox.v1.UpdateSandboxRequest.AnnotationsEntry
+ nil, // 19: containerd.runtime.sandbox.v1.SandboxStatusResponse.InfoEntry
+ (*types.Mount)(nil), // 20: containerd.types.Mount
+ (*anypb.Any)(nil), // 21: google.protobuf.Any
+ (*timestamppb.Timestamp)(nil), // 22: google.protobuf.Timestamp
+ (*types.Platform)(nil), // 23: containerd.types.Platform
+}
+var file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_depIdxs = []int32{
+ 20, // 0: containerd.runtime.sandbox.v1.CreateSandboxRequest.rootfs:type_name -> containerd.types.Mount
+ 21, // 1: containerd.runtime.sandbox.v1.CreateSandboxRequest.options:type_name -> google.protobuf.Any
+ 22, // 2: containerd.runtime.sandbox.v1.StartSandboxResponse.created_at:type_name -> google.protobuf.Timestamp
+ 23, // 3: containerd.runtime.sandbox.v1.PlatformResponse.platform:type_name -> containerd.types.Platform
+ 21, // 4: containerd.runtime.sandbox.v1.UpdateSandboxRequest.resources:type_name -> google.protobuf.Any
+ 18, // 5: containerd.runtime.sandbox.v1.UpdateSandboxRequest.annotations:type_name -> containerd.runtime.sandbox.v1.UpdateSandboxRequest.AnnotationsEntry
+ 22, // 6: containerd.runtime.sandbox.v1.WaitSandboxResponse.exited_at:type_name -> google.protobuf.Timestamp
+ 19, // 7: containerd.runtime.sandbox.v1.SandboxStatusResponse.info:type_name -> containerd.runtime.sandbox.v1.SandboxStatusResponse.InfoEntry
+ 22, // 8: containerd.runtime.sandbox.v1.SandboxStatusResponse.created_at:type_name -> google.protobuf.Timestamp
+ 22, // 9: containerd.runtime.sandbox.v1.SandboxStatusResponse.exited_at:type_name -> google.protobuf.Timestamp
+ 21, // 10: containerd.runtime.sandbox.v1.SandboxStatusResponse.extra:type_name -> google.protobuf.Any
+ 0, // 11: containerd.runtime.sandbox.v1.Sandbox.CreateSandbox:input_type -> containerd.runtime.sandbox.v1.CreateSandboxRequest
+ 2, // 12: containerd.runtime.sandbox.v1.Sandbox.StartSandbox:input_type -> containerd.runtime.sandbox.v1.StartSandboxRequest
+ 4, // 13: containerd.runtime.sandbox.v1.Sandbox.Platform:input_type -> containerd.runtime.sandbox.v1.PlatformRequest
+ 6, // 14: containerd.runtime.sandbox.v1.Sandbox.StopSandbox:input_type -> containerd.runtime.sandbox.v1.StopSandboxRequest
+ 9, // 15: containerd.runtime.sandbox.v1.Sandbox.WaitSandbox:input_type -> containerd.runtime.sandbox.v1.WaitSandboxRequest
+ 12, // 16: containerd.runtime.sandbox.v1.Sandbox.SandboxStatus:input_type -> containerd.runtime.sandbox.v1.SandboxStatusRequest
+ 14, // 17: containerd.runtime.sandbox.v1.Sandbox.PingSandbox:input_type -> containerd.runtime.sandbox.v1.PingRequest
+ 16, // 18: containerd.runtime.sandbox.v1.Sandbox.ShutdownSandbox:input_type -> containerd.runtime.sandbox.v1.ShutdownSandboxRequest
+ 1, // 19: containerd.runtime.sandbox.v1.Sandbox.CreateSandbox:output_type -> containerd.runtime.sandbox.v1.CreateSandboxResponse
+ 3, // 20: containerd.runtime.sandbox.v1.Sandbox.StartSandbox:output_type -> containerd.runtime.sandbox.v1.StartSandboxResponse
+ 5, // 21: containerd.runtime.sandbox.v1.Sandbox.Platform:output_type -> containerd.runtime.sandbox.v1.PlatformResponse
+ 7, // 22: containerd.runtime.sandbox.v1.Sandbox.StopSandbox:output_type -> containerd.runtime.sandbox.v1.StopSandboxResponse
+ 10, // 23: containerd.runtime.sandbox.v1.Sandbox.WaitSandbox:output_type -> containerd.runtime.sandbox.v1.WaitSandboxResponse
+ 13, // 24: containerd.runtime.sandbox.v1.Sandbox.SandboxStatus:output_type -> containerd.runtime.sandbox.v1.SandboxStatusResponse
+ 15, // 25: containerd.runtime.sandbox.v1.Sandbox.PingSandbox:output_type -> containerd.runtime.sandbox.v1.PingResponse
+ 17, // 26: containerd.runtime.sandbox.v1.Sandbox.ShutdownSandbox:output_type -> containerd.runtime.sandbox.v1.ShutdownSandboxResponse
+ 19, // [19:27] is the sub-list for method output_type
+ 11, // [11:19] is the sub-list for method input_type
+ 11, // [11:11] is the sub-list for extension type_name
+ 11, // [11:11] is the sub-list for extension extendee
+ 0, // [0:11] is the sub-list for field type_name
+}
+
+func init() { file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_init() }
+func file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_init() {
+ if File_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto != nil {
+ return
+ }
+ if !protoimpl.UnsafeEnabled {
+ file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CreateSandboxRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CreateSandboxResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*StartSandboxRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*StartSandboxResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*PlatformRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*PlatformResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*StopSandboxRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*StopSandboxResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*UpdateSandboxRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*WaitSandboxRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*WaitSandboxResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*UpdateSandboxResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*SandboxStatusRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*SandboxStatusResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*PingRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*PingResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ShutdownSandboxRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ShutdownSandboxResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 20,
+ NumExtensions: 0,
+ NumServices: 1,
+ },
+ GoTypes: file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_goTypes,
+ DependencyIndexes: file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_depIdxs,
+ MessageInfos: file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes,
+ }.Build()
+ File_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto = out.File
+ file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_rawDesc = nil
+ file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_goTypes = nil
+ file_github_com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_depIdxs = nil
+}
diff --git a/tools/vendor/github.com/containerd/containerd/api/runtime/sandbox/v1/sandbox.proto b/tools/vendor/github.com/containerd/containerd/api/runtime/sandbox/v1/sandbox.proto
new file mode 100644
index 000000000..a051f3ea3
--- /dev/null
+++ b/tools/vendor/github.com/containerd/containerd/api/runtime/sandbox/v1/sandbox.proto
@@ -0,0 +1,136 @@
+/*
+ Copyright The containerd 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.
+*/
+
+syntax = "proto3";
+
+package containerd.runtime.sandbox.v1;
+
+import "google/protobuf/any.proto";
+import "google/protobuf/timestamp.proto";
+
+import "github.com/containerd/containerd/api/types/mount.proto";
+import "github.com/containerd/containerd/api/types/platform.proto";
+
+option go_package = "github.com/containerd/containerd/api/runtime/sandbox/v1;sandbox";
+
+// Sandbox is an optional interface that shim may implement to support sandboxes environments.
+// A typical example of sandbox is microVM or pause container - an entity that groups containers and/or
+// holds resources relevant for this group.
+service Sandbox {
+ // CreateSandbox will be called right after sandbox shim instance launched.
+ // It is a good place to initialize sandbox environment.
+ rpc CreateSandbox(CreateSandboxRequest) returns (CreateSandboxResponse);
+
+ // StartSandbox will start previsouly created sandbox.
+ rpc StartSandbox(StartSandboxRequest) returns (StartSandboxResponse);
+
+ // Platform queries the platform the sandbox is going to run containers on.
+ // containerd will use this to generate a proper OCI spec.
+ rpc Platform(PlatformRequest) returns (PlatformResponse);
+
+ // StopSandbox will stop existing sandbox instance
+ rpc StopSandbox(StopSandboxRequest) returns (StopSandboxResponse);
+
+ // WaitSandbox blocks until sanbox exits.
+ rpc WaitSandbox(WaitSandboxRequest) returns (WaitSandboxResponse);
+
+ // SandboxStatus will return current status of the running sandbox instance
+ rpc SandboxStatus(SandboxStatusRequest) returns (SandboxStatusResponse);
+
+ // PingSandbox is a lightweight API call to check whether sandbox alive.
+ rpc PingSandbox(PingRequest) returns (PingResponse);
+
+ // ShutdownSandbox must shutdown shim instance.
+ rpc ShutdownSandbox(ShutdownSandboxRequest) returns (ShutdownSandboxResponse);
+}
+
+message CreateSandboxRequest {
+ string sandbox_id = 1;
+ string bundle_path = 2;
+ repeated containerd.types.Mount rootfs = 3;
+ google.protobuf.Any options = 4;
+ string netns_path = 5;
+}
+
+message CreateSandboxResponse {}
+
+message StartSandboxRequest {
+ string sandbox_id = 1;
+}
+
+message StartSandboxResponse {
+ uint32 pid = 1;
+ google.protobuf.Timestamp created_at = 2;
+}
+
+message PlatformRequest {
+ string sandbox_id = 1;
+}
+
+message PlatformResponse {
+ containerd.types.Platform platform = 1;
+}
+
+message StopSandboxRequest {
+ string sandbox_id = 1;
+ uint32 timeout_secs = 2;
+}
+
+message StopSandboxResponse {}
+
+message UpdateSandboxRequest {
+ string sandbox_id = 1;
+ google.protobuf.Any resources = 2;
+ map annotations = 3;
+}
+
+message WaitSandboxRequest {
+ string sandbox_id = 1;
+}
+
+message WaitSandboxResponse {
+ uint32 exit_status = 1;
+ google.protobuf.Timestamp exited_at = 2;
+}
+
+message UpdateSandboxResponse {}
+
+message SandboxStatusRequest {
+ string sandbox_id = 1;
+ bool verbose = 2;
+}
+
+message SandboxStatusResponse {
+ string sandbox_id = 1;
+ uint32 pid = 2;
+ string state = 3;
+ map info = 4;
+ google.protobuf.Timestamp created_at = 5;
+ google.protobuf.Timestamp exited_at = 6;
+ google.protobuf.Any extra = 7;
+}
+
+message PingRequest {
+ string sandbox_id = 1;
+}
+
+message PingResponse {}
+
+message ShutdownSandboxRequest {
+ string sandbox_id = 1;
+}
+
+message ShutdownSandboxResponse {}
diff --git a/tools/vendor/github.com/containerd/containerd/api/runtime/sandbox/v1/sandbox_grpc.pb.go b/tools/vendor/github.com/containerd/containerd/api/runtime/sandbox/v1/sandbox_grpc.pb.go
new file mode 100644
index 000000000..f79424986
--- /dev/null
+++ b/tools/vendor/github.com/containerd/containerd/api/runtime/sandbox/v1/sandbox_grpc.pb.go
@@ -0,0 +1,377 @@
+// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
+// versions:
+// - protoc-gen-go-grpc v1.2.0
+// - protoc v3.20.1
+// source: github.com/containerd/containerd/api/runtime/sandbox/v1/sandbox.proto
+
+package sandbox
+
+import (
+ context "context"
+ grpc "google.golang.org/grpc"
+ codes "google.golang.org/grpc/codes"
+ status "google.golang.org/grpc/status"
+)
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the grpc package it is being compiled against.
+// Requires gRPC-Go v1.32.0 or later.
+const _ = grpc.SupportPackageIsVersion7
+
+// SandboxClient is the client API for Sandbox service.
+//
+// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
+type SandboxClient interface {
+ // CreateSandbox will be called right after sandbox shim instance launched.
+ // It is a good place to initialize sandbox environment.
+ CreateSandbox(ctx context.Context, in *CreateSandboxRequest, opts ...grpc.CallOption) (*CreateSandboxResponse, error)
+ // StartSandbox will start previsouly created sandbox.
+ StartSandbox(ctx context.Context, in *StartSandboxRequest, opts ...grpc.CallOption) (*StartSandboxResponse, error)
+ // Platform queries the platform the sandbox is going to run containers on.
+ // containerd will use this to generate a proper OCI spec.
+ Platform(ctx context.Context, in *PlatformRequest, opts ...grpc.CallOption) (*PlatformResponse, error)
+ // StopSandbox will stop existing sandbox instance
+ StopSandbox(ctx context.Context, in *StopSandboxRequest, opts ...grpc.CallOption) (*StopSandboxResponse, error)
+ // WaitSandbox blocks until sanbox exits.
+ WaitSandbox(ctx context.Context, in *WaitSandboxRequest, opts ...grpc.CallOption) (*WaitSandboxResponse, error)
+ // SandboxStatus will return current status of the running sandbox instance
+ SandboxStatus(ctx context.Context, in *SandboxStatusRequest, opts ...grpc.CallOption) (*SandboxStatusResponse, error)
+ // PingSandbox is a lightweight API call to check whether sandbox alive.
+ PingSandbox(ctx context.Context, in *PingRequest, opts ...grpc.CallOption) (*PingResponse, error)
+ // ShutdownSandbox must shutdown shim instance.
+ ShutdownSandbox(ctx context.Context, in *ShutdownSandboxRequest, opts ...grpc.CallOption) (*ShutdownSandboxResponse, error)
+}
+
+type sandboxClient struct {
+ cc grpc.ClientConnInterface
+}
+
+func NewSandboxClient(cc grpc.ClientConnInterface) SandboxClient {
+ return &sandboxClient{cc}
+}
+
+func (c *sandboxClient) CreateSandbox(ctx context.Context, in *CreateSandboxRequest, opts ...grpc.CallOption) (*CreateSandboxResponse, error) {
+ out := new(CreateSandboxResponse)
+ err := c.cc.Invoke(ctx, "/containerd.runtime.sandbox.v1.Sandbox/CreateSandbox", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *sandboxClient) StartSandbox(ctx context.Context, in *StartSandboxRequest, opts ...grpc.CallOption) (*StartSandboxResponse, error) {
+ out := new(StartSandboxResponse)
+ err := c.cc.Invoke(ctx, "/containerd.runtime.sandbox.v1.Sandbox/StartSandbox", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *sandboxClient) Platform(ctx context.Context, in *PlatformRequest, opts ...grpc.CallOption) (*PlatformResponse, error) {
+ out := new(PlatformResponse)
+ err := c.cc.Invoke(ctx, "/containerd.runtime.sandbox.v1.Sandbox/Platform", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *sandboxClient) StopSandbox(ctx context.Context, in *StopSandboxRequest, opts ...grpc.CallOption) (*StopSandboxResponse, error) {
+ out := new(StopSandboxResponse)
+ err := c.cc.Invoke(ctx, "/containerd.runtime.sandbox.v1.Sandbox/StopSandbox", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *sandboxClient) WaitSandbox(ctx context.Context, in *WaitSandboxRequest, opts ...grpc.CallOption) (*WaitSandboxResponse, error) {
+ out := new(WaitSandboxResponse)
+ err := c.cc.Invoke(ctx, "/containerd.runtime.sandbox.v1.Sandbox/WaitSandbox", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *sandboxClient) SandboxStatus(ctx context.Context, in *SandboxStatusRequest, opts ...grpc.CallOption) (*SandboxStatusResponse, error) {
+ out := new(SandboxStatusResponse)
+ err := c.cc.Invoke(ctx, "/containerd.runtime.sandbox.v1.Sandbox/SandboxStatus", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *sandboxClient) PingSandbox(ctx context.Context, in *PingRequest, opts ...grpc.CallOption) (*PingResponse, error) {
+ out := new(PingResponse)
+ err := c.cc.Invoke(ctx, "/containerd.runtime.sandbox.v1.Sandbox/PingSandbox", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *sandboxClient) ShutdownSandbox(ctx context.Context, in *ShutdownSandboxRequest, opts ...grpc.CallOption) (*ShutdownSandboxResponse, error) {
+ out := new(ShutdownSandboxResponse)
+ err := c.cc.Invoke(ctx, "/containerd.runtime.sandbox.v1.Sandbox/ShutdownSandbox", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+// SandboxServer is the server API for Sandbox service.
+// All implementations must embed UnimplementedSandboxServer
+// for forward compatibility
+type SandboxServer interface {
+ // CreateSandbox will be called right after sandbox shim instance launched.
+ // It is a good place to initialize sandbox environment.
+ CreateSandbox(context.Context, *CreateSandboxRequest) (*CreateSandboxResponse, error)
+ // StartSandbox will start previsouly created sandbox.
+ StartSandbox(context.Context, *StartSandboxRequest) (*StartSandboxResponse, error)
+ // Platform queries the platform the sandbox is going to run containers on.
+ // containerd will use this to generate a proper OCI spec.
+ Platform(context.Context, *PlatformRequest) (*PlatformResponse, error)
+ // StopSandbox will stop existing sandbox instance
+ StopSandbox(context.Context, *StopSandboxRequest) (*StopSandboxResponse, error)
+ // WaitSandbox blocks until sanbox exits.
+ WaitSandbox(context.Context, *WaitSandboxRequest) (*WaitSandboxResponse, error)
+ // SandboxStatus will return current status of the running sandbox instance
+ SandboxStatus(context.Context, *SandboxStatusRequest) (*SandboxStatusResponse, error)
+ // PingSandbox is a lightweight API call to check whether sandbox alive.
+ PingSandbox(context.Context, *PingRequest) (*PingResponse, error)
+ // ShutdownSandbox must shutdown shim instance.
+ ShutdownSandbox(context.Context, *ShutdownSandboxRequest) (*ShutdownSandboxResponse, error)
+ mustEmbedUnimplementedSandboxServer()
+}
+
+// UnimplementedSandboxServer must be embedded to have forward compatible implementations.
+type UnimplementedSandboxServer struct {
+}
+
+func (UnimplementedSandboxServer) CreateSandbox(context.Context, *CreateSandboxRequest) (*CreateSandboxResponse, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method CreateSandbox not implemented")
+}
+func (UnimplementedSandboxServer) StartSandbox(context.Context, *StartSandboxRequest) (*StartSandboxResponse, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method StartSandbox not implemented")
+}
+func (UnimplementedSandboxServer) Platform(context.Context, *PlatformRequest) (*PlatformResponse, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method Platform not implemented")
+}
+func (UnimplementedSandboxServer) StopSandbox(context.Context, *StopSandboxRequest) (*StopSandboxResponse, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method StopSandbox not implemented")
+}
+func (UnimplementedSandboxServer) WaitSandbox(context.Context, *WaitSandboxRequest) (*WaitSandboxResponse, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method WaitSandbox not implemented")
+}
+func (UnimplementedSandboxServer) SandboxStatus(context.Context, *SandboxStatusRequest) (*SandboxStatusResponse, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method SandboxStatus not implemented")
+}
+func (UnimplementedSandboxServer) PingSandbox(context.Context, *PingRequest) (*PingResponse, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method PingSandbox not implemented")
+}
+func (UnimplementedSandboxServer) ShutdownSandbox(context.Context, *ShutdownSandboxRequest) (*ShutdownSandboxResponse, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method ShutdownSandbox not implemented")
+}
+func (UnimplementedSandboxServer) mustEmbedUnimplementedSandboxServer() {}
+
+// UnsafeSandboxServer may be embedded to opt out of forward compatibility for this service.
+// Use of this interface is not recommended, as added methods to SandboxServer will
+// result in compilation errors.
+type UnsafeSandboxServer interface {
+ mustEmbedUnimplementedSandboxServer()
+}
+
+func RegisterSandboxServer(s grpc.ServiceRegistrar, srv SandboxServer) {
+ s.RegisterService(&Sandbox_ServiceDesc, srv)
+}
+
+func _Sandbox_CreateSandbox_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(CreateSandboxRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(SandboxServer).CreateSandbox(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/containerd.runtime.sandbox.v1.Sandbox/CreateSandbox",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(SandboxServer).CreateSandbox(ctx, req.(*CreateSandboxRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Sandbox_StartSandbox_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(StartSandboxRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(SandboxServer).StartSandbox(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/containerd.runtime.sandbox.v1.Sandbox/StartSandbox",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(SandboxServer).StartSandbox(ctx, req.(*StartSandboxRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Sandbox_Platform_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(PlatformRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(SandboxServer).Platform(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/containerd.runtime.sandbox.v1.Sandbox/Platform",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(SandboxServer).Platform(ctx, req.(*PlatformRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Sandbox_StopSandbox_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(StopSandboxRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(SandboxServer).StopSandbox(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/containerd.runtime.sandbox.v1.Sandbox/StopSandbox",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(SandboxServer).StopSandbox(ctx, req.(*StopSandboxRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Sandbox_WaitSandbox_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(WaitSandboxRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(SandboxServer).WaitSandbox(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/containerd.runtime.sandbox.v1.Sandbox/WaitSandbox",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(SandboxServer).WaitSandbox(ctx, req.(*WaitSandboxRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Sandbox_SandboxStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(SandboxStatusRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(SandboxServer).SandboxStatus(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/containerd.runtime.sandbox.v1.Sandbox/SandboxStatus",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(SandboxServer).SandboxStatus(ctx, req.(*SandboxStatusRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Sandbox_PingSandbox_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(PingRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(SandboxServer).PingSandbox(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/containerd.runtime.sandbox.v1.Sandbox/PingSandbox",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(SandboxServer).PingSandbox(ctx, req.(*PingRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Sandbox_ShutdownSandbox_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(ShutdownSandboxRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(SandboxServer).ShutdownSandbox(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/containerd.runtime.sandbox.v1.Sandbox/ShutdownSandbox",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(SandboxServer).ShutdownSandbox(ctx, req.(*ShutdownSandboxRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+// Sandbox_ServiceDesc is the grpc.ServiceDesc for Sandbox service.
+// It's only intended for direct use with grpc.RegisterService,
+// and not to be introspected or modified (even as a copy)
+var Sandbox_ServiceDesc = grpc.ServiceDesc{
+ ServiceName: "containerd.runtime.sandbox.v1.Sandbox",
+ HandlerType: (*SandboxServer)(nil),
+ Methods: []grpc.MethodDesc{
+ {
+ MethodName: "CreateSandbox",
+ Handler: _Sandbox_CreateSandbox_Handler,
+ },
+ {
+ MethodName: "StartSandbox",
+ Handler: _Sandbox_StartSandbox_Handler,
+ },
+ {
+ MethodName: "Platform",
+ Handler: _Sandbox_Platform_Handler,
+ },
+ {
+ MethodName: "StopSandbox",
+ Handler: _Sandbox_StopSandbox_Handler,
+ },
+ {
+ MethodName: "WaitSandbox",
+ Handler: _Sandbox_WaitSandbox_Handler,
+ },
+ {
+ MethodName: "SandboxStatus",
+ Handler: _Sandbox_SandboxStatus_Handler,
+ },
+ {
+ MethodName: "PingSandbox",
+ Handler: _Sandbox_PingSandbox_Handler,
+ },
+ {
+ MethodName: "ShutdownSandbox",
+ Handler: _Sandbox_ShutdownSandbox_Handler,
+ },
+ },
+ Streams: []grpc.StreamDesc{},
+ Metadata: "github.com/containerd/containerd/api/runtime/sandbox/v1/sandbox.proto",
+}
diff --git a/tools/vendor/github.com/containerd/containerd/api/runtime/sandbox/v1/sandbox_ttrpc.pb.go b/tools/vendor/github.com/containerd/containerd/api/runtime/sandbox/v1/sandbox_ttrpc.pb.go
new file mode 100644
index 000000000..d935fe611
--- /dev/null
+++ b/tools/vendor/github.com/containerd/containerd/api/runtime/sandbox/v1/sandbox_ttrpc.pb.go
@@ -0,0 +1,156 @@
+// Code generated by protoc-gen-go-ttrpc. DO NOT EDIT.
+// source: github.com/containerd/containerd/api/runtime/sandbox/v1/sandbox.proto
+package sandbox
+
+import (
+ context "context"
+ ttrpc "github.com/containerd/ttrpc"
+)
+
+type TTRPCSandboxService interface {
+ CreateSandbox(context.Context, *CreateSandboxRequest) (*CreateSandboxResponse, error)
+ StartSandbox(context.Context, *StartSandboxRequest) (*StartSandboxResponse, error)
+ Platform(context.Context, *PlatformRequest) (*PlatformResponse, error)
+ StopSandbox(context.Context, *StopSandboxRequest) (*StopSandboxResponse, error)
+ WaitSandbox(context.Context, *WaitSandboxRequest) (*WaitSandboxResponse, error)
+ SandboxStatus(context.Context, *SandboxStatusRequest) (*SandboxStatusResponse, error)
+ PingSandbox(context.Context, *PingRequest) (*PingResponse, error)
+ ShutdownSandbox(context.Context, *ShutdownSandboxRequest) (*ShutdownSandboxResponse, error)
+}
+
+func RegisterTTRPCSandboxService(srv *ttrpc.Server, svc TTRPCSandboxService) {
+ srv.RegisterService("containerd.runtime.sandbox.v1.Sandbox", &ttrpc.ServiceDesc{
+ Methods: map[string]ttrpc.Method{
+ "CreateSandbox": func(ctx context.Context, unmarshal func(interface{}) error) (interface{}, error) {
+ var req CreateSandboxRequest
+ if err := unmarshal(&req); err != nil {
+ return nil, err
+ }
+ return svc.CreateSandbox(ctx, &req)
+ },
+ "StartSandbox": func(ctx context.Context, unmarshal func(interface{}) error) (interface{}, error) {
+ var req StartSandboxRequest
+ if err := unmarshal(&req); err != nil {
+ return nil, err
+ }
+ return svc.StartSandbox(ctx, &req)
+ },
+ "Platform": func(ctx context.Context, unmarshal func(interface{}) error) (interface{}, error) {
+ var req PlatformRequest
+ if err := unmarshal(&req); err != nil {
+ return nil, err
+ }
+ return svc.Platform(ctx, &req)
+ },
+ "StopSandbox": func(ctx context.Context, unmarshal func(interface{}) error) (interface{}, error) {
+ var req StopSandboxRequest
+ if err := unmarshal(&req); err != nil {
+ return nil, err
+ }
+ return svc.StopSandbox(ctx, &req)
+ },
+ "WaitSandbox": func(ctx context.Context, unmarshal func(interface{}) error) (interface{}, error) {
+ var req WaitSandboxRequest
+ if err := unmarshal(&req); err != nil {
+ return nil, err
+ }
+ return svc.WaitSandbox(ctx, &req)
+ },
+ "SandboxStatus": func(ctx context.Context, unmarshal func(interface{}) error) (interface{}, error) {
+ var req SandboxStatusRequest
+ if err := unmarshal(&req); err != nil {
+ return nil, err
+ }
+ return svc.SandboxStatus(ctx, &req)
+ },
+ "PingSandbox": func(ctx context.Context, unmarshal func(interface{}) error) (interface{}, error) {
+ var req PingRequest
+ if err := unmarshal(&req); err != nil {
+ return nil, err
+ }
+ return svc.PingSandbox(ctx, &req)
+ },
+ "ShutdownSandbox": func(ctx context.Context, unmarshal func(interface{}) error) (interface{}, error) {
+ var req ShutdownSandboxRequest
+ if err := unmarshal(&req); err != nil {
+ return nil, err
+ }
+ return svc.ShutdownSandbox(ctx, &req)
+ },
+ },
+ })
+}
+
+type ttrpcsandboxClient struct {
+ client *ttrpc.Client
+}
+
+func NewTTRPCSandboxClient(client *ttrpc.Client) TTRPCSandboxService {
+ return &ttrpcsandboxClient{
+ client: client,
+ }
+}
+
+func (c *ttrpcsandboxClient) CreateSandbox(ctx context.Context, req *CreateSandboxRequest) (*CreateSandboxResponse, error) {
+ var resp CreateSandboxResponse
+ if err := c.client.Call(ctx, "containerd.runtime.sandbox.v1.Sandbox", "CreateSandbox", req, &resp); err != nil {
+ return nil, err
+ }
+ return &resp, nil
+}
+
+func (c *ttrpcsandboxClient) StartSandbox(ctx context.Context, req *StartSandboxRequest) (*StartSandboxResponse, error) {
+ var resp StartSandboxResponse
+ if err := c.client.Call(ctx, "containerd.runtime.sandbox.v1.Sandbox", "StartSandbox", req, &resp); err != nil {
+ return nil, err
+ }
+ return &resp, nil
+}
+
+func (c *ttrpcsandboxClient) Platform(ctx context.Context, req *PlatformRequest) (*PlatformResponse, error) {
+ var resp PlatformResponse
+ if err := c.client.Call(ctx, "containerd.runtime.sandbox.v1.Sandbox", "Platform", req, &resp); err != nil {
+ return nil, err
+ }
+ return &resp, nil
+}
+
+func (c *ttrpcsandboxClient) StopSandbox(ctx context.Context, req *StopSandboxRequest) (*StopSandboxResponse, error) {
+ var resp StopSandboxResponse
+ if err := c.client.Call(ctx, "containerd.runtime.sandbox.v1.Sandbox", "StopSandbox", req, &resp); err != nil {
+ return nil, err
+ }
+ return &resp, nil
+}
+
+func (c *ttrpcsandboxClient) WaitSandbox(ctx context.Context, req *WaitSandboxRequest) (*WaitSandboxResponse, error) {
+ var resp WaitSandboxResponse
+ if err := c.client.Call(ctx, "containerd.runtime.sandbox.v1.Sandbox", "WaitSandbox", req, &resp); err != nil {
+ return nil, err
+ }
+ return &resp, nil
+}
+
+func (c *ttrpcsandboxClient) SandboxStatus(ctx context.Context, req *SandboxStatusRequest) (*SandboxStatusResponse, error) {
+ var resp SandboxStatusResponse
+ if err := c.client.Call(ctx, "containerd.runtime.sandbox.v1.Sandbox", "SandboxStatus", req, &resp); err != nil {
+ return nil, err
+ }
+ return &resp, nil
+}
+
+func (c *ttrpcsandboxClient) PingSandbox(ctx context.Context, req *PingRequest) (*PingResponse, error) {
+ var resp PingResponse
+ if err := c.client.Call(ctx, "containerd.runtime.sandbox.v1.Sandbox", "PingSandbox", req, &resp); err != nil {
+ return nil, err
+ }
+ return &resp, nil
+}
+
+func (c *ttrpcsandboxClient) ShutdownSandbox(ctx context.Context, req *ShutdownSandboxRequest) (*ShutdownSandboxResponse, error) {
+ var resp ShutdownSandboxResponse
+ if err := c.client.Call(ctx, "containerd.runtime.sandbox.v1.Sandbox", "ShutdownSandbox", req, &resp); err != nil {
+ return nil, err
+ }
+ return &resp, nil
+}
diff --git a/tools/vendor/github.com/containerd/containerd/api/types/descriptor.pb.go b/tools/vendor/github.com/containerd/containerd/api/types/descriptor.pb.go
new file mode 100644
index 000000000..f3db1c52d
--- /dev/null
+++ b/tools/vendor/github.com/containerd/containerd/api/types/descriptor.pb.go
@@ -0,0 +1,206 @@
+//
+//Copyright The containerd 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.
+
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// protoc-gen-go v1.28.1
+// protoc v3.20.1
+// source: github.com/containerd/containerd/api/types/descriptor.proto
+
+package types
+
+import (
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ reflect "reflect"
+ sync "sync"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+// Descriptor describes a blob in a content store.
+//
+// This descriptor can be used to reference content from an
+// oci descriptor found in a manifest.
+// See https://godoc.org/github.com/opencontainers/image-spec/specs-go/v1#Descriptor
+type Descriptor struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ MediaType string `protobuf:"bytes,1,opt,name=media_type,json=mediaType,proto3" json:"media_type,omitempty"`
+ Digest string `protobuf:"bytes,2,opt,name=digest,proto3" json:"digest,omitempty"`
+ Size int64 `protobuf:"varint,3,opt,name=size,proto3" json:"size,omitempty"`
+ Annotations map[string]string `protobuf:"bytes,5,rep,name=annotations,proto3" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+}
+
+func (x *Descriptor) Reset() {
+ *x = Descriptor{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_github_com_containerd_containerd_api_types_descriptor_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Descriptor) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Descriptor) ProtoMessage() {}
+
+func (x *Descriptor) ProtoReflect() protoreflect.Message {
+ mi := &file_github_com_containerd_containerd_api_types_descriptor_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Descriptor.ProtoReflect.Descriptor instead.
+func (*Descriptor) Descriptor() ([]byte, []int) {
+ return file_github_com_containerd_containerd_api_types_descriptor_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *Descriptor) GetMediaType() string {
+ if x != nil {
+ return x.MediaType
+ }
+ return ""
+}
+
+func (x *Descriptor) GetDigest() string {
+ if x != nil {
+ return x.Digest
+ }
+ return ""
+}
+
+func (x *Descriptor) GetSize() int64 {
+ if x != nil {
+ return x.Size
+ }
+ return 0
+}
+
+func (x *Descriptor) GetAnnotations() map[string]string {
+ if x != nil {
+ return x.Annotations
+ }
+ return nil
+}
+
+var File_github_com_containerd_containerd_api_types_descriptor_proto protoreflect.FileDescriptor
+
+var file_github_com_containerd_containerd_api_types_descriptor_proto_rawDesc = []byte{
+ 0x0a, 0x3b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x6e,
+ 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
+ 0x72, 0x64, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x64, 0x65, 0x73,
+ 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x10, 0x63,
+ 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x22,
+ 0xe8, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x12, 0x1d,
+ 0x0a, 0x0a, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a,
+ 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64,
+ 0x69, 0x67, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20,
+ 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x4f, 0x0a, 0x0b, 0x61, 0x6e, 0x6e,
+ 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d,
+ 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x74, 0x79, 0x70, 0x65,
+ 0x73, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x41, 0x6e, 0x6e,
+ 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x61,
+ 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x3e, 0x0a, 0x10, 0x41, 0x6e,
+ 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10,
+ 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79,
+ 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x32, 0x5a, 0x30, 0x67, 0x69,
+ 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e,
+ 0x65, 0x72, 0x64, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2f, 0x61,
+ 0x70, 0x69, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x3b, 0x74, 0x79, 0x70, 0x65, 0x73, 0x62, 0x06,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_github_com_containerd_containerd_api_types_descriptor_proto_rawDescOnce sync.Once
+ file_github_com_containerd_containerd_api_types_descriptor_proto_rawDescData = file_github_com_containerd_containerd_api_types_descriptor_proto_rawDesc
+)
+
+func file_github_com_containerd_containerd_api_types_descriptor_proto_rawDescGZIP() []byte {
+ file_github_com_containerd_containerd_api_types_descriptor_proto_rawDescOnce.Do(func() {
+ file_github_com_containerd_containerd_api_types_descriptor_proto_rawDescData = protoimpl.X.CompressGZIP(file_github_com_containerd_containerd_api_types_descriptor_proto_rawDescData)
+ })
+ return file_github_com_containerd_containerd_api_types_descriptor_proto_rawDescData
+}
+
+var file_github_com_containerd_containerd_api_types_descriptor_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
+var file_github_com_containerd_containerd_api_types_descriptor_proto_goTypes = []interface{}{
+ (*Descriptor)(nil), // 0: containerd.types.Descriptor
+ nil, // 1: containerd.types.Descriptor.AnnotationsEntry
+}
+var file_github_com_containerd_containerd_api_types_descriptor_proto_depIdxs = []int32{
+ 1, // 0: containerd.types.Descriptor.annotations:type_name -> containerd.types.Descriptor.AnnotationsEntry
+ 1, // [1:1] is the sub-list for method output_type
+ 1, // [1:1] is the sub-list for method input_type
+ 1, // [1:1] is the sub-list for extension type_name
+ 1, // [1:1] is the sub-list for extension extendee
+ 0, // [0:1] is the sub-list for field type_name
+}
+
+func init() { file_github_com_containerd_containerd_api_types_descriptor_proto_init() }
+func file_github_com_containerd_containerd_api_types_descriptor_proto_init() {
+ if File_github_com_containerd_containerd_api_types_descriptor_proto != nil {
+ return
+ }
+ if !protoimpl.UnsafeEnabled {
+ file_github_com_containerd_containerd_api_types_descriptor_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Descriptor); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_github_com_containerd_containerd_api_types_descriptor_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 2,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_github_com_containerd_containerd_api_types_descriptor_proto_goTypes,
+ DependencyIndexes: file_github_com_containerd_containerd_api_types_descriptor_proto_depIdxs,
+ MessageInfos: file_github_com_containerd_containerd_api_types_descriptor_proto_msgTypes,
+ }.Build()
+ File_github_com_containerd_containerd_api_types_descriptor_proto = out.File
+ file_github_com_containerd_containerd_api_types_descriptor_proto_rawDesc = nil
+ file_github_com_containerd_containerd_api_types_descriptor_proto_goTypes = nil
+ file_github_com_containerd_containerd_api_types_descriptor_proto_depIdxs = nil
+}
diff --git a/tools/vendor/github.com/containerd/containerd/api/types/descriptor.proto b/tools/vendor/github.com/containerd/containerd/api/types/descriptor.proto
new file mode 100644
index 000000000..faaf416dd
--- /dev/null
+++ b/tools/vendor/github.com/containerd/containerd/api/types/descriptor.proto
@@ -0,0 +1,33 @@
+/*
+ Copyright The containerd 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.
+*/
+
+syntax = "proto3";
+
+package containerd.types;
+
+option go_package = "github.com/containerd/containerd/api/types;types";
+
+// Descriptor describes a blob in a content store.
+//
+// This descriptor can be used to reference content from an
+// oci descriptor found in a manifest.
+// See https://godoc.org/github.com/opencontainers/image-spec/specs-go/v1#Descriptor
+message Descriptor {
+ string media_type = 1;
+ string digest = 2;
+ int64 size = 3;
+ map annotations = 5;
+}
diff --git a/tools/vendor/github.com/containerd/containerd/mount/subprocess_unsafe_linux.s b/tools/vendor/github.com/containerd/containerd/api/types/doc.go
similarity index 97%
rename from tools/vendor/github.com/containerd/containerd/mount/subprocess_unsafe_linux.s
rename to tools/vendor/github.com/containerd/containerd/api/types/doc.go
index c073fa4ad..475b465ed 100644
--- a/tools/vendor/github.com/containerd/containerd/mount/subprocess_unsafe_linux.s
+++ b/tools/vendor/github.com/containerd/containerd/api/types/doc.go
@@ -13,3 +13,5 @@
See the License for the specific language governing permissions and
limitations under the License.
*/
+
+package types
diff --git a/tools/vendor/github.com/containerd/containerd/api/types/metrics.pb.go b/tools/vendor/github.com/containerd/containerd/api/types/metrics.pb.go
new file mode 100644
index 000000000..b18ce1c5b
--- /dev/null
+++ b/tools/vendor/github.com/containerd/containerd/api/types/metrics.pb.go
@@ -0,0 +1,194 @@
+//
+//Copyright The containerd 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.
+
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// protoc-gen-go v1.28.1
+// protoc v3.20.1
+// source: github.com/containerd/containerd/api/types/metrics.proto
+
+package types
+
+import (
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ anypb "google.golang.org/protobuf/types/known/anypb"
+ timestamppb "google.golang.org/protobuf/types/known/timestamppb"
+ reflect "reflect"
+ sync "sync"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+type Metric struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Timestamp *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
+ ID string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
+ Data *anypb.Any `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"`
+}
+
+func (x *Metric) Reset() {
+ *x = Metric{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_github_com_containerd_containerd_api_types_metrics_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Metric) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Metric) ProtoMessage() {}
+
+func (x *Metric) ProtoReflect() protoreflect.Message {
+ mi := &file_github_com_containerd_containerd_api_types_metrics_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Metric.ProtoReflect.Descriptor instead.
+func (*Metric) Descriptor() ([]byte, []int) {
+ return file_github_com_containerd_containerd_api_types_metrics_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *Metric) GetTimestamp() *timestamppb.Timestamp {
+ if x != nil {
+ return x.Timestamp
+ }
+ return nil
+}
+
+func (x *Metric) GetID() string {
+ if x != nil {
+ return x.ID
+ }
+ return ""
+}
+
+func (x *Metric) GetData() *anypb.Any {
+ if x != nil {
+ return x.Data
+ }
+ return nil
+}
+
+var File_github_com_containerd_containerd_api_types_metrics_proto protoreflect.FileDescriptor
+
+var file_github_com_containerd_containerd_api_types_metrics_proto_rawDesc = []byte{
+ 0x0a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x6e,
+ 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
+ 0x72, 0x64, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x6d, 0x65, 0x74,
+ 0x72, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x10, 0x63, 0x6f, 0x6e, 0x74,
+ 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x1a, 0x19, 0x67, 0x6f,
+ 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e,
+ 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
+ 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x7c, 0x0a, 0x06, 0x4d, 0x65, 0x74, 0x72,
+ 0x69, 0x63, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
+ 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x0e, 0x0a, 0x02,
+ 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x28, 0x0a, 0x04,
+ 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79,
+ 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x42, 0x32, 0x5a, 0x30, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62,
+ 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2f,
+ 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x74,
+ 0x79, 0x70, 0x65, 0x73, 0x3b, 0x74, 0x79, 0x70, 0x65, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x33,
+}
+
+var (
+ file_github_com_containerd_containerd_api_types_metrics_proto_rawDescOnce sync.Once
+ file_github_com_containerd_containerd_api_types_metrics_proto_rawDescData = file_github_com_containerd_containerd_api_types_metrics_proto_rawDesc
+)
+
+func file_github_com_containerd_containerd_api_types_metrics_proto_rawDescGZIP() []byte {
+ file_github_com_containerd_containerd_api_types_metrics_proto_rawDescOnce.Do(func() {
+ file_github_com_containerd_containerd_api_types_metrics_proto_rawDescData = protoimpl.X.CompressGZIP(file_github_com_containerd_containerd_api_types_metrics_proto_rawDescData)
+ })
+ return file_github_com_containerd_containerd_api_types_metrics_proto_rawDescData
+}
+
+var file_github_com_containerd_containerd_api_types_metrics_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
+var file_github_com_containerd_containerd_api_types_metrics_proto_goTypes = []interface{}{
+ (*Metric)(nil), // 0: containerd.types.Metric
+ (*timestamppb.Timestamp)(nil), // 1: google.protobuf.Timestamp
+ (*anypb.Any)(nil), // 2: google.protobuf.Any
+}
+var file_github_com_containerd_containerd_api_types_metrics_proto_depIdxs = []int32{
+ 1, // 0: containerd.types.Metric.timestamp:type_name -> google.protobuf.Timestamp
+ 2, // 1: containerd.types.Metric.data:type_name -> google.protobuf.Any
+ 2, // [2:2] is the sub-list for method output_type
+ 2, // [2:2] is the sub-list for method input_type
+ 2, // [2:2] is the sub-list for extension type_name
+ 2, // [2:2] is the sub-list for extension extendee
+ 0, // [0:2] is the sub-list for field type_name
+}
+
+func init() { file_github_com_containerd_containerd_api_types_metrics_proto_init() }
+func file_github_com_containerd_containerd_api_types_metrics_proto_init() {
+ if File_github_com_containerd_containerd_api_types_metrics_proto != nil {
+ return
+ }
+ if !protoimpl.UnsafeEnabled {
+ file_github_com_containerd_containerd_api_types_metrics_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Metric); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_github_com_containerd_containerd_api_types_metrics_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 1,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_github_com_containerd_containerd_api_types_metrics_proto_goTypes,
+ DependencyIndexes: file_github_com_containerd_containerd_api_types_metrics_proto_depIdxs,
+ MessageInfos: file_github_com_containerd_containerd_api_types_metrics_proto_msgTypes,
+ }.Build()
+ File_github_com_containerd_containerd_api_types_metrics_proto = out.File
+ file_github_com_containerd_containerd_api_types_metrics_proto_rawDesc = nil
+ file_github_com_containerd_containerd_api_types_metrics_proto_goTypes = nil
+ file_github_com_containerd_containerd_api_types_metrics_proto_depIdxs = nil
+}
diff --git a/tools/vendor/github.com/containerd/containerd/api/types/metrics.proto b/tools/vendor/github.com/containerd/containerd/api/types/metrics.proto
new file mode 100644
index 000000000..3e6a7751e
--- /dev/null
+++ b/tools/vendor/github.com/containerd/containerd/api/types/metrics.proto
@@ -0,0 +1,30 @@
+/*
+ Copyright The containerd 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.
+*/
+
+syntax = "proto3";
+
+package containerd.types;
+
+import "google/protobuf/any.proto";
+import "google/protobuf/timestamp.proto";
+
+option go_package = "github.com/containerd/containerd/api/types;types";
+
+message Metric {
+ google.protobuf.Timestamp timestamp = 1;
+ string id = 2;
+ google.protobuf.Any data = 3;
+}
diff --git a/tools/vendor/github.com/containerd/containerd/api/types/mount.pb.go b/tools/vendor/github.com/containerd/containerd/api/types/mount.pb.go
new file mode 100644
index 000000000..ff77a7d7b
--- /dev/null
+++ b/tools/vendor/github.com/containerd/containerd/api/types/mount.pb.go
@@ -0,0 +1,202 @@
+//
+//Copyright The containerd 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.
+
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// protoc-gen-go v1.28.1
+// protoc v3.20.1
+// source: github.com/containerd/containerd/api/types/mount.proto
+
+package types
+
+import (
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ reflect "reflect"
+ sync "sync"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+// Mount describes mounts for a container.
+//
+// This type is the lingua franca of ContainerD. All services provide mounts
+// to be used with the container at creation time.
+//
+// The Mount type follows the structure of the mount syscall, including a type,
+// source, target and options.
+type Mount struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Type defines the nature of the mount.
+ Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
+ // Source specifies the name of the mount. Depending on mount type, this
+ // may be a volume name or a host path, or even ignored.
+ Source string `protobuf:"bytes,2,opt,name=source,proto3" json:"source,omitempty"`
+ // Target path in container
+ Target string `protobuf:"bytes,3,opt,name=target,proto3" json:"target,omitempty"`
+ // Options specifies zero or more fstab style mount options.
+ Options []string `protobuf:"bytes,4,rep,name=options,proto3" json:"options,omitempty"`
+}
+
+func (x *Mount) Reset() {
+ *x = Mount{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_github_com_containerd_containerd_api_types_mount_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Mount) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Mount) ProtoMessage() {}
+
+func (x *Mount) ProtoReflect() protoreflect.Message {
+ mi := &file_github_com_containerd_containerd_api_types_mount_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Mount.ProtoReflect.Descriptor instead.
+func (*Mount) Descriptor() ([]byte, []int) {
+ return file_github_com_containerd_containerd_api_types_mount_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *Mount) GetType() string {
+ if x != nil {
+ return x.Type
+ }
+ return ""
+}
+
+func (x *Mount) GetSource() string {
+ if x != nil {
+ return x.Source
+ }
+ return ""
+}
+
+func (x *Mount) GetTarget() string {
+ if x != nil {
+ return x.Target
+ }
+ return ""
+}
+
+func (x *Mount) GetOptions() []string {
+ if x != nil {
+ return x.Options
+ }
+ return nil
+}
+
+var File_github_com_containerd_containerd_api_types_mount_proto protoreflect.FileDescriptor
+
+var file_github_com_containerd_containerd_api_types_mount_proto_rawDesc = []byte{
+ 0x0a, 0x36, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x6e,
+ 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
+ 0x72, 0x64, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x6d, 0x6f, 0x75,
+ 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69,
+ 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x22, 0x65, 0x0a, 0x05, 0x4d, 0x6f,
+ 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63,
+ 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12,
+ 0x16, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f,
+ 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
+ 0x73, 0x42, 0x32, 0x5a, 0x30, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
+ 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61,
+ 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x3b,
+ 0x74, 0x79, 0x70, 0x65, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_github_com_containerd_containerd_api_types_mount_proto_rawDescOnce sync.Once
+ file_github_com_containerd_containerd_api_types_mount_proto_rawDescData = file_github_com_containerd_containerd_api_types_mount_proto_rawDesc
+)
+
+func file_github_com_containerd_containerd_api_types_mount_proto_rawDescGZIP() []byte {
+ file_github_com_containerd_containerd_api_types_mount_proto_rawDescOnce.Do(func() {
+ file_github_com_containerd_containerd_api_types_mount_proto_rawDescData = protoimpl.X.CompressGZIP(file_github_com_containerd_containerd_api_types_mount_proto_rawDescData)
+ })
+ return file_github_com_containerd_containerd_api_types_mount_proto_rawDescData
+}
+
+var file_github_com_containerd_containerd_api_types_mount_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
+var file_github_com_containerd_containerd_api_types_mount_proto_goTypes = []interface{}{
+ (*Mount)(nil), // 0: containerd.types.Mount
+}
+var file_github_com_containerd_containerd_api_types_mount_proto_depIdxs = []int32{
+ 0, // [0:0] is the sub-list for method output_type
+ 0, // [0:0] is the sub-list for method input_type
+ 0, // [0:0] is the sub-list for extension type_name
+ 0, // [0:0] is the sub-list for extension extendee
+ 0, // [0:0] is the sub-list for field type_name
+}
+
+func init() { file_github_com_containerd_containerd_api_types_mount_proto_init() }
+func file_github_com_containerd_containerd_api_types_mount_proto_init() {
+ if File_github_com_containerd_containerd_api_types_mount_proto != nil {
+ return
+ }
+ if !protoimpl.UnsafeEnabled {
+ file_github_com_containerd_containerd_api_types_mount_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Mount); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_github_com_containerd_containerd_api_types_mount_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 1,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_github_com_containerd_containerd_api_types_mount_proto_goTypes,
+ DependencyIndexes: file_github_com_containerd_containerd_api_types_mount_proto_depIdxs,
+ MessageInfos: file_github_com_containerd_containerd_api_types_mount_proto_msgTypes,
+ }.Build()
+ File_github_com_containerd_containerd_api_types_mount_proto = out.File
+ file_github_com_containerd_containerd_api_types_mount_proto_rawDesc = nil
+ file_github_com_containerd_containerd_api_types_mount_proto_goTypes = nil
+ file_github_com_containerd_containerd_api_types_mount_proto_depIdxs = nil
+}
diff --git a/tools/vendor/github.com/containerd/containerd/api/types/mount.proto b/tools/vendor/github.com/containerd/containerd/api/types/mount.proto
new file mode 100644
index 000000000..54e0a0cdd
--- /dev/null
+++ b/tools/vendor/github.com/containerd/containerd/api/types/mount.proto
@@ -0,0 +1,43 @@
+/*
+ Copyright The containerd 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.
+*/
+
+syntax = "proto3";
+
+package containerd.types;
+
+option go_package = "github.com/containerd/containerd/api/types;types";
+
+// Mount describes mounts for a container.
+//
+// This type is the lingua franca of ContainerD. All services provide mounts
+// to be used with the container at creation time.
+//
+// The Mount type follows the structure of the mount syscall, including a type,
+// source, target and options.
+message Mount {
+ // Type defines the nature of the mount.
+ string type = 1;
+
+ // Source specifies the name of the mount. Depending on mount type, this
+ // may be a volume name or a host path, or even ignored.
+ string source = 2;
+
+ // Target path in container
+ string target = 3;
+
+ // Options specifies zero or more fstab style mount options.
+ repeated string options = 4;
+}
diff --git a/tools/vendor/github.com/containerd/containerd/api/types/platform.pb.go b/tools/vendor/github.com/containerd/containerd/api/types/platform.pb.go
new file mode 100644
index 000000000..3e206cbaf
--- /dev/null
+++ b/tools/vendor/github.com/containerd/containerd/api/types/platform.pb.go
@@ -0,0 +1,184 @@
+//
+//Copyright The containerd 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.
+
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// protoc-gen-go v1.28.1
+// protoc v3.20.1
+// source: github.com/containerd/containerd/api/types/platform.proto
+
+package types
+
+import (
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ reflect "reflect"
+ sync "sync"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+// Platform follows the structure of the OCI platform specification, from
+// descriptors.
+type Platform struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ OS string `protobuf:"bytes,1,opt,name=os,proto3" json:"os,omitempty"`
+ Architecture string `protobuf:"bytes,2,opt,name=architecture,proto3" json:"architecture,omitempty"`
+ Variant string `protobuf:"bytes,3,opt,name=variant,proto3" json:"variant,omitempty"`
+}
+
+func (x *Platform) Reset() {
+ *x = Platform{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_github_com_containerd_containerd_api_types_platform_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Platform) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Platform) ProtoMessage() {}
+
+func (x *Platform) ProtoReflect() protoreflect.Message {
+ mi := &file_github_com_containerd_containerd_api_types_platform_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Platform.ProtoReflect.Descriptor instead.
+func (*Platform) Descriptor() ([]byte, []int) {
+ return file_github_com_containerd_containerd_api_types_platform_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *Platform) GetOS() string {
+ if x != nil {
+ return x.OS
+ }
+ return ""
+}
+
+func (x *Platform) GetArchitecture() string {
+ if x != nil {
+ return x.Architecture
+ }
+ return ""
+}
+
+func (x *Platform) GetVariant() string {
+ if x != nil {
+ return x.Variant
+ }
+ return ""
+}
+
+var File_github_com_containerd_containerd_api_types_platform_proto protoreflect.FileDescriptor
+
+var file_github_com_containerd_containerd_api_types_platform_proto_rawDesc = []byte{
+ 0x0a, 0x39, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x6e,
+ 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
+ 0x72, 0x64, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x70, 0x6c, 0x61,
+ 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x10, 0x63, 0x6f, 0x6e,
+ 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x22, 0x58, 0x0a,
+ 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x73, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x6f, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x72, 0x63,
+ 0x68, 0x69, 0x74, 0x65, 0x63, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x0c, 0x61, 0x72, 0x63, 0x68, 0x69, 0x74, 0x65, 0x63, 0x74, 0x75, 0x72, 0x65, 0x12, 0x18, 0x0a,
+ 0x07, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,
+ 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x42, 0x32, 0x5a, 0x30, 0x67, 0x69, 0x74, 0x68, 0x75,
+ 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64,
+ 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2f, 0x61, 0x70, 0x69, 0x2f,
+ 0x74, 0x79, 0x70, 0x65, 0x73, 0x3b, 0x74, 0x79, 0x70, 0x65, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_github_com_containerd_containerd_api_types_platform_proto_rawDescOnce sync.Once
+ file_github_com_containerd_containerd_api_types_platform_proto_rawDescData = file_github_com_containerd_containerd_api_types_platform_proto_rawDesc
+)
+
+func file_github_com_containerd_containerd_api_types_platform_proto_rawDescGZIP() []byte {
+ file_github_com_containerd_containerd_api_types_platform_proto_rawDescOnce.Do(func() {
+ file_github_com_containerd_containerd_api_types_platform_proto_rawDescData = protoimpl.X.CompressGZIP(file_github_com_containerd_containerd_api_types_platform_proto_rawDescData)
+ })
+ return file_github_com_containerd_containerd_api_types_platform_proto_rawDescData
+}
+
+var file_github_com_containerd_containerd_api_types_platform_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
+var file_github_com_containerd_containerd_api_types_platform_proto_goTypes = []interface{}{
+ (*Platform)(nil), // 0: containerd.types.Platform
+}
+var file_github_com_containerd_containerd_api_types_platform_proto_depIdxs = []int32{
+ 0, // [0:0] is the sub-list for method output_type
+ 0, // [0:0] is the sub-list for method input_type
+ 0, // [0:0] is the sub-list for extension type_name
+ 0, // [0:0] is the sub-list for extension extendee
+ 0, // [0:0] is the sub-list for field type_name
+}
+
+func init() { file_github_com_containerd_containerd_api_types_platform_proto_init() }
+func file_github_com_containerd_containerd_api_types_platform_proto_init() {
+ if File_github_com_containerd_containerd_api_types_platform_proto != nil {
+ return
+ }
+ if !protoimpl.UnsafeEnabled {
+ file_github_com_containerd_containerd_api_types_platform_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Platform); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_github_com_containerd_containerd_api_types_platform_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 1,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_github_com_containerd_containerd_api_types_platform_proto_goTypes,
+ DependencyIndexes: file_github_com_containerd_containerd_api_types_platform_proto_depIdxs,
+ MessageInfos: file_github_com_containerd_containerd_api_types_platform_proto_msgTypes,
+ }.Build()
+ File_github_com_containerd_containerd_api_types_platform_proto = out.File
+ file_github_com_containerd_containerd_api_types_platform_proto_rawDesc = nil
+ file_github_com_containerd_containerd_api_types_platform_proto_goTypes = nil
+ file_github_com_containerd_containerd_api_types_platform_proto_depIdxs = nil
+}
diff --git a/tools/vendor/github.com/containerd/containerd/api/types/platform.proto b/tools/vendor/github.com/containerd/containerd/api/types/platform.proto
new file mode 100644
index 000000000..b6088251f
--- /dev/null
+++ b/tools/vendor/github.com/containerd/containerd/api/types/platform.proto
@@ -0,0 +1,29 @@
+/*
+ Copyright The containerd 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.
+*/
+
+syntax = "proto3";
+
+package containerd.types;
+
+option go_package = "github.com/containerd/containerd/api/types;types";
+
+// Platform follows the structure of the OCI platform specification, from
+// descriptors.
+message Platform {
+ string os = 1;
+ string architecture = 2;
+ string variant = 3;
+}
diff --git a/tools/vendor/github.com/containerd/containerd/api/types/sandbox.pb.go b/tools/vendor/github.com/containerd/containerd/api/types/sandbox.pb.go
new file mode 100644
index 000000000..67594f416
--- /dev/null
+++ b/tools/vendor/github.com/containerd/containerd/api/types/sandbox.pb.go
@@ -0,0 +1,346 @@
+//
+//Copyright The containerd 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.
+
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// protoc-gen-go v1.28.1
+// protoc v3.20.1
+// source: github.com/containerd/containerd/api/types/sandbox.proto
+
+package types
+
+import (
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ anypb "google.golang.org/protobuf/types/known/anypb"
+ timestamppb "google.golang.org/protobuf/types/known/timestamppb"
+ reflect "reflect"
+ sync "sync"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+// Sandbox represents a sandbox metadata object that keeps all info required by controller to
+// work with a particular instance.
+type Sandbox struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // SandboxID is a unique instance identifier within namespace
+ SandboxID string `protobuf:"bytes,1,opt,name=sandbox_id,json=sandboxId,proto3" json:"sandbox_id,omitempty"`
+ // Runtime specifies which runtime to use for executing this container.
+ Runtime *Sandbox_Runtime `protobuf:"bytes,2,opt,name=runtime,proto3" json:"runtime,omitempty"`
+ // Spec is sandbox configuration (kin of OCI runtime spec), spec's data will be written to a config.json file in the
+ // bundle directory (similary to OCI spec).
+ Spec *anypb.Any `protobuf:"bytes,3,opt,name=spec,proto3" json:"spec,omitempty"`
+ // Labels provides an area to include arbitrary data on containers.
+ Labels map[string]string `protobuf:"bytes,4,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+ // CreatedAt is the time the container was first created.
+ CreatedAt *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
+ // UpdatedAt is the last time the container was mutated.
+ UpdatedAt *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"`
+ // Extensions allow clients to provide optional blobs that can be handled by runtime.
+ Extensions map[string]*anypb.Any `protobuf:"bytes,7,rep,name=extensions,proto3" json:"extensions,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+}
+
+func (x *Sandbox) Reset() {
+ *x = Sandbox{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_github_com_containerd_containerd_api_types_sandbox_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Sandbox) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Sandbox) ProtoMessage() {}
+
+func (x *Sandbox) ProtoReflect() protoreflect.Message {
+ mi := &file_github_com_containerd_containerd_api_types_sandbox_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Sandbox.ProtoReflect.Descriptor instead.
+func (*Sandbox) Descriptor() ([]byte, []int) {
+ return file_github_com_containerd_containerd_api_types_sandbox_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *Sandbox) GetSandboxID() string {
+ if x != nil {
+ return x.SandboxID
+ }
+ return ""
+}
+
+func (x *Sandbox) GetRuntime() *Sandbox_Runtime {
+ if x != nil {
+ return x.Runtime
+ }
+ return nil
+}
+
+func (x *Sandbox) GetSpec() *anypb.Any {
+ if x != nil {
+ return x.Spec
+ }
+ return nil
+}
+
+func (x *Sandbox) GetLabels() map[string]string {
+ if x != nil {
+ return x.Labels
+ }
+ return nil
+}
+
+func (x *Sandbox) GetCreatedAt() *timestamppb.Timestamp {
+ if x != nil {
+ return x.CreatedAt
+ }
+ return nil
+}
+
+func (x *Sandbox) GetUpdatedAt() *timestamppb.Timestamp {
+ if x != nil {
+ return x.UpdatedAt
+ }
+ return nil
+}
+
+func (x *Sandbox) GetExtensions() map[string]*anypb.Any {
+ if x != nil {
+ return x.Extensions
+ }
+ return nil
+}
+
+type Sandbox_Runtime struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Name is the name of the runtime.
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+ // Options specify additional runtime initialization options for the shim (this data will be available in StartShim).
+ // Typically this data expected to be runtime shim implementation specific.
+ Options *anypb.Any `protobuf:"bytes,2,opt,name=options,proto3" json:"options,omitempty"`
+}
+
+func (x *Sandbox_Runtime) Reset() {
+ *x = Sandbox_Runtime{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_github_com_containerd_containerd_api_types_sandbox_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Sandbox_Runtime) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Sandbox_Runtime) ProtoMessage() {}
+
+func (x *Sandbox_Runtime) ProtoReflect() protoreflect.Message {
+ mi := &file_github_com_containerd_containerd_api_types_sandbox_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Sandbox_Runtime.ProtoReflect.Descriptor instead.
+func (*Sandbox_Runtime) Descriptor() ([]byte, []int) {
+ return file_github_com_containerd_containerd_api_types_sandbox_proto_rawDescGZIP(), []int{0, 0}
+}
+
+func (x *Sandbox_Runtime) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *Sandbox_Runtime) GetOptions() *anypb.Any {
+ if x != nil {
+ return x.Options
+ }
+ return nil
+}
+
+var File_github_com_containerd_containerd_api_types_sandbox_proto protoreflect.FileDescriptor
+
+var file_github_com_containerd_containerd_api_types_sandbox_proto_rawDesc = []byte{
+ 0x0a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x6e,
+ 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
+ 0x72, 0x64, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x73, 0x61, 0x6e,
+ 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x10, 0x63, 0x6f, 0x6e, 0x74,
+ 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x1a, 0x19, 0x67, 0x6f,
+ 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e,
+ 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
+ 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xee, 0x04, 0x0a, 0x07, 0x53, 0x61, 0x6e,
+ 0x64, 0x62, 0x6f, 0x78, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x5f,
+ 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f,
+ 0x78, 0x49, 0x64, 0x12, 0x3b, 0x0a, 0x07, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72,
+ 0x64, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e,
+ 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x52, 0x07, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65,
+ 0x12, 0x28, 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14,
+ 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
+ 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x04, 0x73, 0x70, 0x65, 0x63, 0x12, 0x3d, 0x0a, 0x06, 0x6c, 0x61,
+ 0x62, 0x65, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x6f, 0x6e,
+ 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x53, 0x61,
+ 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72,
+ 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65,
+ 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e,
+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
+ 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74,
+ 0x65, 0x64, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f,
+ 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73,
+ 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12,
+ 0x49, 0x0a, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20,
+ 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64,
+ 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x45,
+ 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a,
+ 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x4d, 0x0a, 0x07, 0x52, 0x75,
+ 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x07, 0x6f, 0x70, 0x74,
+ 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79,
+ 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62,
+ 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61,
+ 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
+ 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x53, 0x0a, 0x0f, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,
+ 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2a, 0x0a, 0x05, 0x76, 0x61, 0x6c,
+ 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x05,
+ 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x32, 0x5a, 0x30, 0x67, 0x69, 0x74,
+ 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
+ 0x72, 0x64, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2f, 0x61, 0x70,
+ 0x69, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x3b, 0x74, 0x79, 0x70, 0x65, 0x73, 0x62, 0x06, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_github_com_containerd_containerd_api_types_sandbox_proto_rawDescOnce sync.Once
+ file_github_com_containerd_containerd_api_types_sandbox_proto_rawDescData = file_github_com_containerd_containerd_api_types_sandbox_proto_rawDesc
+)
+
+func file_github_com_containerd_containerd_api_types_sandbox_proto_rawDescGZIP() []byte {
+ file_github_com_containerd_containerd_api_types_sandbox_proto_rawDescOnce.Do(func() {
+ file_github_com_containerd_containerd_api_types_sandbox_proto_rawDescData = protoimpl.X.CompressGZIP(file_github_com_containerd_containerd_api_types_sandbox_proto_rawDescData)
+ })
+ return file_github_com_containerd_containerd_api_types_sandbox_proto_rawDescData
+}
+
+var file_github_com_containerd_containerd_api_types_sandbox_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
+var file_github_com_containerd_containerd_api_types_sandbox_proto_goTypes = []interface{}{
+ (*Sandbox)(nil), // 0: containerd.types.Sandbox
+ (*Sandbox_Runtime)(nil), // 1: containerd.types.Sandbox.Runtime
+ nil, // 2: containerd.types.Sandbox.LabelsEntry
+ nil, // 3: containerd.types.Sandbox.ExtensionsEntry
+ (*anypb.Any)(nil), // 4: google.protobuf.Any
+ (*timestamppb.Timestamp)(nil), // 5: google.protobuf.Timestamp
+}
+var file_github_com_containerd_containerd_api_types_sandbox_proto_depIdxs = []int32{
+ 1, // 0: containerd.types.Sandbox.runtime:type_name -> containerd.types.Sandbox.Runtime
+ 4, // 1: containerd.types.Sandbox.spec:type_name -> google.protobuf.Any
+ 2, // 2: containerd.types.Sandbox.labels:type_name -> containerd.types.Sandbox.LabelsEntry
+ 5, // 3: containerd.types.Sandbox.created_at:type_name -> google.protobuf.Timestamp
+ 5, // 4: containerd.types.Sandbox.updated_at:type_name -> google.protobuf.Timestamp
+ 3, // 5: containerd.types.Sandbox.extensions:type_name -> containerd.types.Sandbox.ExtensionsEntry
+ 4, // 6: containerd.types.Sandbox.Runtime.options:type_name -> google.protobuf.Any
+ 4, // 7: containerd.types.Sandbox.ExtensionsEntry.value:type_name -> google.protobuf.Any
+ 8, // [8:8] is the sub-list for method output_type
+ 8, // [8:8] is the sub-list for method input_type
+ 8, // [8:8] is the sub-list for extension type_name
+ 8, // [8:8] is the sub-list for extension extendee
+ 0, // [0:8] is the sub-list for field type_name
+}
+
+func init() { file_github_com_containerd_containerd_api_types_sandbox_proto_init() }
+func file_github_com_containerd_containerd_api_types_sandbox_proto_init() {
+ if File_github_com_containerd_containerd_api_types_sandbox_proto != nil {
+ return
+ }
+ if !protoimpl.UnsafeEnabled {
+ file_github_com_containerd_containerd_api_types_sandbox_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Sandbox); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_github_com_containerd_containerd_api_types_sandbox_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Sandbox_Runtime); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_github_com_containerd_containerd_api_types_sandbox_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 4,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_github_com_containerd_containerd_api_types_sandbox_proto_goTypes,
+ DependencyIndexes: file_github_com_containerd_containerd_api_types_sandbox_proto_depIdxs,
+ MessageInfos: file_github_com_containerd_containerd_api_types_sandbox_proto_msgTypes,
+ }.Build()
+ File_github_com_containerd_containerd_api_types_sandbox_proto = out.File
+ file_github_com_containerd_containerd_api_types_sandbox_proto_rawDesc = nil
+ file_github_com_containerd_containerd_api_types_sandbox_proto_goTypes = nil
+ file_github_com_containerd_containerd_api_types_sandbox_proto_depIdxs = nil
+}
diff --git a/tools/vendor/github.com/containerd/containerd/api/types/sandbox.proto b/tools/vendor/github.com/containerd/containerd/api/types/sandbox.proto
new file mode 100644
index 000000000..b60770619
--- /dev/null
+++ b/tools/vendor/github.com/containerd/containerd/api/types/sandbox.proto
@@ -0,0 +1,51 @@
+/*
+ Copyright The containerd 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.
+*/
+
+syntax = "proto3";
+
+package containerd.types;
+
+import "google/protobuf/any.proto";
+import "google/protobuf/timestamp.proto";
+
+option go_package = "github.com/containerd/containerd/api/types;types";
+
+// Sandbox represents a sandbox metadata object that keeps all info required by controller to
+// work with a particular instance.
+message Sandbox {
+ // SandboxID is a unique instance identifier within namespace
+ string sandbox_id = 1;
+ message Runtime {
+ // Name is the name of the runtime.
+ string name = 1;
+ // Options specify additional runtime initialization options for the shim (this data will be available in StartShim).
+ // Typically this data expected to be runtime shim implementation specific.
+ google.protobuf.Any options = 2;
+ }
+ // Runtime specifies which runtime to use for executing this container.
+ Runtime runtime = 2;
+ // Spec is sandbox configuration (kin of OCI runtime spec), spec's data will be written to a config.json file in the
+ // bundle directory (similary to OCI spec).
+ google.protobuf.Any spec = 3;
+ // Labels provides an area to include arbitrary data on containers.
+ map labels = 4;
+ // CreatedAt is the time the container was first created.
+ google.protobuf.Timestamp created_at = 5;
+ // UpdatedAt is the last time the container was mutated.
+ google.protobuf.Timestamp updated_at = 6;
+ // Extensions allow clients to provide optional blobs that can be handled by runtime.
+ map extensions = 7;
+}
diff --git a/tools/vendor/github.com/containerd/containerd/mount/subprocess_unsafe_linux.go b/tools/vendor/github.com/containerd/containerd/archive/compression/compression_fuzzer.go
similarity index 68%
rename from tools/vendor/github.com/containerd/containerd/mount/subprocess_unsafe_linux.go
rename to tools/vendor/github.com/containerd/containerd/archive/compression/compression_fuzzer.go
index c7cb0c034..3516494ac 100644
--- a/tools/vendor/github.com/containerd/containerd/mount/subprocess_unsafe_linux.go
+++ b/tools/vendor/github.com/containerd/containerd/archive/compression/compression_fuzzer.go
@@ -1,3 +1,5 @@
+//go:build gofuzz
+
/*
Copyright The containerd Authors.
@@ -14,17 +16,13 @@
limitations under the License.
*/
-package mount
+package compression
import (
- _ "unsafe" // required for go:linkname.
+ "bytes"
)
-//go:linkname beforeFork syscall.runtime_BeforeFork
-func beforeFork()
-
-//go:linkname afterFork syscall.runtime_AfterFork
-func afterFork()
-
-//go:linkname afterForkInChild syscall.runtime_AfterForkInChild
-func afterForkInChild()
+func FuzzDecompressStream(data []byte) int {
+ _, _ = DecompressStream(bytes.NewReader(data))
+ return 1
+}
diff --git a/tools/vendor/github.com/containerd/containerd/sys/userns_deprecated.go b/tools/vendor/github.com/containerd/containerd/archive/link_default.go
similarity index 68%
rename from tools/vendor/github.com/containerd/containerd/sys/userns_deprecated.go
rename to tools/vendor/github.com/containerd/containerd/archive/link_default.go
index 53acf5547..84a8997eb 100644
--- a/tools/vendor/github.com/containerd/containerd/sys/userns_deprecated.go
+++ b/tools/vendor/github.com/containerd/containerd/archive/link_default.go
@@ -1,3 +1,5 @@
+//go:build !freebsd
+
/*
Copyright The containerd Authors.
@@ -14,10 +16,10 @@
limitations under the License.
*/
-package sys
+package archive
-import "github.com/containerd/containerd/pkg/userns"
+import "os"
-// RunningInUserNS detects whether we are currently running in a user namespace.
-// Deprecated: use github.com/containerd/containerd/pkg/userns.RunningInUserNS instead.
-var RunningInUserNS = userns.RunningInUserNS
+func link(oldname, newname string) error {
+ return os.Link(oldname, newname)
+}
diff --git a/tools/vendor/github.com/containerd/containerd/archive/link_freebsd.go b/tools/vendor/github.com/containerd/containerd/archive/link_freebsd.go
new file mode 100644
index 000000000..2097db06b
--- /dev/null
+++ b/tools/vendor/github.com/containerd/containerd/archive/link_freebsd.go
@@ -0,0 +1,82 @@
+/*
+ Copyright The containerd 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 archive
+
+import (
+ "os"
+ "syscall"
+
+ "golang.org/x/sys/unix"
+)
+
+func link(oldname, newname string) error {
+ e := ignoringEINTR(func() error {
+ return unix.Linkat(unix.AT_FDCWD, oldname, unix.AT_FDCWD, newname, 0)
+ })
+ if e != nil {
+ return &os.LinkError{Op: "link", Old: oldname, New: newname, Err: e}
+ }
+ return nil
+}
+
+// The following contents were copied from Go 1.18.2.
+// Use of this source code is governed by the following
+// BSD-style license:
+//
+// Copyright (c) 2009 The Go Authors. All rights reserved.
+//
+// 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.
+
+// ignoringEINTR makes a function call and repeats it if it returns an
+// EINTR error. This appears to be required even though we install all
+// signal handlers with SA_RESTART: see #22838, #38033, #38836, #40846.
+// Also #20400 and #36644 are issues in which a signal handler is
+// installed without setting SA_RESTART. None of these are the common case,
+// but there are enough of them that it seems that we can't avoid
+// an EINTR loop.
+func ignoringEINTR(fn func() error) error {
+ for {
+ err := fn()
+ if err != syscall.EINTR {
+ return err
+ }
+ }
+}
diff --git a/tools/vendor/github.com/containerd/containerd/archive/tar.go b/tools/vendor/github.com/containerd/containerd/archive/tar.go
index a57074e77..28b623dcf 100644
--- a/tools/vendor/github.com/containerd/containerd/archive/tar.go
+++ b/tools/vendor/github.com/containerd/containerd/archive/tar.go
@@ -24,13 +24,14 @@ import (
"io"
"os"
"path/filepath"
- "runtime"
"strings"
"sync"
"syscall"
"time"
+ "github.com/containerd/containerd/archive/tarheader"
"github.com/containerd/containerd/log"
+ "github.com/containerd/containerd/pkg/epoch"
"github.com/containerd/containerd/pkg/userns"
"github.com/containerd/continuity/fs"
)
@@ -51,11 +52,11 @@ var errInvalidArchive = errors.New("invalid archive")
// files will be prepended with the prefix ".wh.". This style is
// based off AUFS whiteouts.
// See https://github.com/opencontainers/image-spec/blob/main/layer.md
-func Diff(ctx context.Context, a, b string) io.ReadCloser {
+func Diff(ctx context.Context, a, b string, opts ...WriteDiffOpt) io.ReadCloser {
r, w := io.Pipe()
go func() {
- err := WriteDiff(ctx, w, a, b)
+ err := WriteDiff(ctx, w, a, b, opts...)
if err != nil {
log.G(ctx).WithError(err).Debugf("write diff failed")
}
@@ -81,6 +82,10 @@ func WriteDiff(ctx context.Context, w io.Writer, a, b string, opts ...WriteDiffO
return fmt.Errorf("failed to apply option: %w", err)
}
}
+ if tm := epoch.FromContext(ctx); tm != nil && options.SourceDateEpoch == nil {
+ options.SourceDateEpoch = tm
+ }
+
if options.writeDiffFunc == nil {
options.writeDiffFunc = writeDiffNaive
}
@@ -95,8 +100,14 @@ func WriteDiff(ctx context.Context, w io.Writer, a, b string, opts ...WriteDiffO
// files will be prepended with the prefix ".wh.". This style is
// based off AUFS whiteouts.
// See https://github.com/opencontainers/image-spec/blob/main/layer.md
-func writeDiffNaive(ctx context.Context, w io.Writer, a, b string, _ WriteDiffOptions) error {
- cw := NewChangeWriter(w, b)
+func writeDiffNaive(ctx context.Context, w io.Writer, a, b string, o WriteDiffOptions) error {
+ var opts []ChangeWriterOpt
+ if o.SourceDateEpoch != nil {
+ opts = append(opts,
+ WithModTimeUpperBound(*o.SourceDateEpoch),
+ WithWhiteoutTime(*o.SourceDateEpoch))
+ }
+ cw := NewChangeWriter(w, b, opts...)
err := fs.Changes(ctx, a, b, cw.HandleChange)
if err != nil {
return fmt.Errorf("failed to create diff tar stream: %w", err)
@@ -120,6 +131,8 @@ const (
whiteoutOpaqueDir = whiteoutMetaPrefix + ".opq"
paxSchilyXattr = "SCHILY.xattr."
+
+ userXattrPrefix = "user."
)
// Apply applies a tar stream of an OCI style diff tar.
@@ -288,7 +301,7 @@ func applyNaive(ctx context.Context, root string, r io.Reader, options ApplyOpti
srcData := io.Reader(tr)
srcHdr := hdr
- if err := createTarFile(ctx, path, root, srcHdr, srcData); err != nil {
+ if err := createTarFile(ctx, path, root, srcHdr, srcData, options.NoSameOwner); err != nil {
return 0, err
}
@@ -313,7 +326,7 @@ func applyNaive(ctx context.Context, root string, r io.Reader, options ApplyOpti
return size, nil
}
-func createTarFile(ctx context.Context, path, extractDir string, hdr *tar.Header, reader io.Reader) error {
+func createTarFile(ctx context.Context, path, extractDir string, hdr *tar.Header, reader io.Reader, noSameOwner bool) error {
// hdr.Mode is in linux format, which we can use for syscalls,
// but for os.Foo() calls we need the mode converted to os.FileMode,
// so use hdrInfo.Mode() (they differ for e.g. setuid bits)
@@ -329,6 +342,7 @@ func createTarFile(ctx context.Context, path, extractDir string, hdr *tar.Header
}
}
+ //nolint:staticcheck // TypeRegA is deprecated but we may still receive an external tar with TypeRegA
case tar.TypeReg, tar.TypeRegA:
file, err := openFile(path, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, hdrInfo.Mode())
if err != nil {
@@ -361,7 +375,7 @@ func createTarFile(ctx context.Context, path, extractDir string, hdr *tar.Header
return err
}
- if err := os.Link(targetPath, path); err != nil {
+ if err := link(targetPath, path); err != nil {
return err
}
@@ -378,8 +392,7 @@ func createTarFile(ctx context.Context, path, extractDir string, hdr *tar.Header
return fmt.Errorf("unhandled tar header type %d", hdr.Typeflag)
}
- // Lchown is not supported on Windows.
- if runtime.GOOS != "windows" {
+ if !noSameOwner {
if err := os.Lchown(path, hdr.Uid, hdr.Gid); err != nil {
err = fmt.Errorf("failed to Lchown %q for UID %d, GID %d: %w", path, hdr.Uid, hdr.Gid, err)
if errors.Is(err, syscall.EINVAL) && userns.RunningInUserNS() {
@@ -393,11 +406,19 @@ func createTarFile(ctx context.Context, path, extractDir string, hdr *tar.Header
if strings.HasPrefix(key, paxSchilyXattr) {
key = key[len(paxSchilyXattr):]
if err := setxattr(path, key, value); err != nil {
+ if errors.Is(err, syscall.EPERM) && strings.HasPrefix(key, userXattrPrefix) {
+ // In the user.* namespace, only regular files and directories can have extended attributes.
+ // See https://man7.org/linux/man-pages/man7/xattr.7.html for details.
+ if fi, err := os.Lstat(path); err == nil && (!fi.Mode().IsRegular() && !fi.Mode().IsDir()) {
+ log.G(ctx).WithError(err).Warnf("ignored xattr %s in archive", key)
+ continue
+ }
+ }
if errors.Is(err, syscall.ENOTSUP) {
log.G(ctx).WithError(err).Warnf("ignored xattr %s in archive", key)
continue
}
- return err
+ return fmt.Errorf("failed to setxattr %q for key %q: %w", path, key, err)
}
}
}
@@ -481,26 +502,48 @@ func mkparent(ctx context.Context, path, root string, parents []string) error {
// See also https://github.com/opencontainers/image-spec/blob/main/layer.md for details
// about OCI layers
type ChangeWriter struct {
- tw *tar.Writer
- source string
- whiteoutT time.Time
- inodeSrc map[uint64]string
- inodeRefs map[uint64][]string
- addedDirs map[string]struct{}
+ tw *tar.Writer
+ source string
+ modTimeUpperBound *time.Time
+ whiteoutT time.Time
+ inodeSrc map[uint64]string
+ inodeRefs map[uint64][]string
+ addedDirs map[string]struct{}
+}
+
+// ChangeWriterOpt can be specified in NewChangeWriter.
+type ChangeWriterOpt func(cw *ChangeWriter)
+
+// WithModTimeUpperBound sets the mod time upper bound.
+func WithModTimeUpperBound(tm time.Time) ChangeWriterOpt {
+ return func(cw *ChangeWriter) {
+ cw.modTimeUpperBound = &tm
+ }
+}
+
+// WithWhiteoutTime sets the whiteout timestamp.
+func WithWhiteoutTime(tm time.Time) ChangeWriterOpt {
+ return func(cw *ChangeWriter) {
+ cw.whiteoutT = tm
+ }
}
// NewChangeWriter returns ChangeWriter that writes tar stream of the source directory
// to the privided writer. Change information (add/modify/delete/unmodified) for each
// file needs to be passed through HandleChange method.
-func NewChangeWriter(w io.Writer, source string) *ChangeWriter {
- return &ChangeWriter{
+func NewChangeWriter(w io.Writer, source string, opts ...ChangeWriterOpt) *ChangeWriter {
+ cw := &ChangeWriter{
tw: tar.NewWriter(w),
source: source,
- whiteoutT: time.Now(),
+ whiteoutT: time.Now(), // can be overridden with WithWhiteoutTime(time.Time) ChangeWriterOpt .
inodeSrc: map[uint64]string{},
inodeRefs: map[uint64][]string{},
addedDirs: map[string]struct{}{},
}
+ for _, o := range opts {
+ o(cw)
+ }
+ return cw
}
// HandleChange receives filesystem change information and reflect that information to
@@ -544,7 +587,8 @@ func (cw *ChangeWriter) HandleChange(k fs.ChangeKind, p string, f os.FileInfo, e
}
}
- hdr, err := tar.FileInfoHeader(f, link)
+ // Use FileInfoHeaderNoLookups to avoid propagating user names and group names from the host
+ hdr, err := tarheader.FileInfoHeaderNoLookups(f, link)
if err != nil {
return err
}
@@ -553,6 +597,9 @@ func (cw *ChangeWriter) HandleChange(k fs.ChangeKind, p string, f os.FileInfo, e
// truncate timestamp for compatibility. without PAX stdlib rounds timestamps instead
hdr.Format = tar.FormatPAX
+ if cw.modTimeUpperBound != nil && hdr.ModTime.After(*cw.modTimeUpperBound) {
+ hdr.ModTime = *cw.modTimeUpperBound
+ }
hdr.ModTime = hdr.ModTime.Truncate(time.Second)
hdr.AccessTime = time.Time{}
hdr.ChangeTime = time.Time{}
@@ -564,11 +611,9 @@ func (cw *ChangeWriter) HandleChange(k fs.ChangeKind, p string, f os.FileInfo, e
return fmt.Errorf("failed to make path relative: %w", err)
}
}
- name, err = tarName(name)
- if err != nil {
- return fmt.Errorf("cannot canonicalize path: %w", err)
- }
- // suffix with '/' for directories
+ // Canonicalize to POSIX-style paths using forward slashes. Directory
+ // entries must end with a slash.
+ name = filepath.ToSlash(name)
if f.IsDir() && !strings.HasSuffix(name, "/") {
name += "/"
}
diff --git a/tools/vendor/github.com/containerd/containerd/archive/tar_mostunix.go b/tools/vendor/github.com/containerd/containerd/archive/tar_mostunix.go
index d2d970356..ca5e602a0 100644
--- a/tools/vendor/github.com/containerd/containerd/archive/tar_mostunix.go
+++ b/tools/vendor/github.com/containerd/containerd/archive/tar_mostunix.go
@@ -1,5 +1,4 @@
//go:build !windows && !freebsd
-// +build !windows,!freebsd
/*
Copyright The containerd Authors.
diff --git a/tools/vendor/github.com/containerd/containerd/archive/tar_opts.go b/tools/vendor/github.com/containerd/containerd/archive/tar_opts.go
index 58985555a..ac3a03c8d 100644
--- a/tools/vendor/github.com/containerd/containerd/archive/tar_opts.go
+++ b/tools/vendor/github.com/containerd/containerd/archive/tar_opts.go
@@ -20,6 +20,7 @@ import (
"archive/tar"
"context"
"io"
+ "time"
)
// ApplyOptions provides additional options for an Apply operation
@@ -27,6 +28,7 @@ type ApplyOptions struct {
Filter Filter // Filter tar headers
ConvertWhiteout ConvertWhiteout // Convert whiteout files
Parents []string // Parent directories to handle inherited attributes without CoW
+ NoSameOwner bool // NoSameOwner will not attempt to preserve the owner specified in the tar archive.
applyFunc func(context.Context, string, io.Reader, ApplyOptions) (int64, error)
}
@@ -61,6 +63,15 @@ func WithConvertWhiteout(c ConvertWhiteout) ApplyOpt {
}
}
+// WithNoSameOwner is same as '--no-same-owner` in 'tar' command.
+// It'll skip attempt to preserve the owner specified in the tar archive.
+func WithNoSameOwner() ApplyOpt {
+ return func(options *ApplyOptions) error {
+ options.NoSameOwner = true
+ return nil
+ }
+}
+
// WithParents provides parent directories for resolving inherited attributes
// directory from the filesystem.
// Inherited attributes are searched from first to last, making the first
@@ -79,7 +90,22 @@ type WriteDiffOptions struct {
ParentLayers []string // Windows needs the full list of parent layers
writeDiffFunc func(context.Context, io.Writer, string, string, WriteDiffOptions) error
+
+ // SourceDateEpoch specifies the following timestamps to provide control for reproducibility.
+ // - The upper bound timestamp of the diff contents
+ // - The timestamp of the whiteouts
+ //
+ // See also https://reproducible-builds.org/docs/source-date-epoch/ .
+ SourceDateEpoch *time.Time
}
// WriteDiffOpt allows setting mutable archive write properties on creation
type WriteDiffOpt func(options *WriteDiffOptions) error
+
+// WithSourceDateEpoch specifies the SOURCE_DATE_EPOCH without touching the env vars.
+func WithSourceDateEpoch(tm *time.Time) WriteDiffOpt {
+ return func(options *WriteDiffOptions) error {
+ options.SourceDateEpoch = tm
+ return nil
+ }
+}
diff --git a/tools/vendor/github.com/containerd/containerd/archive/tar_unix.go b/tools/vendor/github.com/containerd/containerd/archive/tar_unix.go
index 2f3a3a392..8e883eee6 100644
--- a/tools/vendor/github.com/containerd/containerd/archive/tar_unix.go
+++ b/tools/vendor/github.com/containerd/containerd/archive/tar_unix.go
@@ -1,5 +1,4 @@
//go:build !windows
-// +build !windows
/*
Copyright The containerd Authors.
@@ -34,10 +33,6 @@ import (
"golang.org/x/sys/unix"
)
-func tarName(p string) (string, error) {
- return p, nil
-}
-
func chmodTarEntry(perm os.FileMode) os.FileMode {
return perm
}
@@ -62,8 +57,7 @@ func setHeaderForSpecialDevice(hdr *tar.Header, name string, fi os.FileInfo) err
return errors.New("unsupported stat type")
}
- // Rdev is int32 on darwin/bsd, int64 on linux/solaris
- rdev := uint64(s.Rdev) // nolint: unconvert
+ rdev := uint64(s.Rdev) //nolint:nolintlint,unconvert // rdev is int32 on darwin/bsd, int64 on linux/solaris
// Currently go does not fill in the major/minors
if s.Mode&syscall.S_IFBLK != 0 ||
diff --git a/tools/vendor/github.com/containerd/containerd/archive/tar_windows.go b/tools/vendor/github.com/containerd/containerd/archive/tar_windows.go
index 4b71c1e30..dc8f64ee4 100644
--- a/tools/vendor/github.com/containerd/containerd/archive/tar_windows.go
+++ b/tools/vendor/github.com/containerd/containerd/archive/tar_windows.go
@@ -23,24 +23,9 @@ import (
"os"
"strings"
- "github.com/containerd/containerd/sys"
+ "github.com/moby/sys/sequential"
)
-// tarName returns platform-specific filepath
-// to canonical posix-style path for tar archival. p is relative
-// path.
-func tarName(p string) (string, error) {
- // windows: convert windows style relative path with backslashes
- // into forward slashes. Since windows does not allow '/' or '\'
- // in file names, it is mostly safe to replace however we must
- // check just in case
- if strings.Contains(p, "/") {
- return "", fmt.Errorf("windows path contains forward slash: %s", p)
- }
-
- return strings.Replace(p, string(os.PathSeparator), "/", -1), nil
-}
-
// chmodTarEntry is used to adjust the file permissions used in tar header based
// on the platform the archival is done.
func chmodTarEntry(perm os.FileMode) os.FileMode {
@@ -57,15 +42,15 @@ func setHeaderForSpecialDevice(*tar.Header, string, os.FileInfo) error {
}
func open(p string) (*os.File, error) {
- // We use sys.OpenSequential to ensure we use sequential file
- // access on Windows to avoid depleting the standby list.
- return sys.OpenSequential(p)
+ // We use sequential file access to avoid depleting the standby list on
+ // Windows.
+ return sequential.Open(p)
}
func openFile(name string, flag int, perm os.FileMode) (*os.File, error) {
- // Source is regular file. We use sys.OpenFileSequential to use sequential
- // file access to avoid depleting the standby list on Windows.
- return sys.OpenFileSequential(name, flag, perm)
+ // Source is regular file. We use sequential file access to avoid depleting
+ // the standby list on Windows.
+ return sequential.OpenFile(name, flag, perm)
}
func mkdir(path string, perm os.FileMode) error {
diff --git a/tools/vendor/github.com/containerd/containerd/archive/tarheader/tarheader.go b/tools/vendor/github.com/containerd/containerd/archive/tarheader/tarheader.go
new file mode 100644
index 000000000..2f93842c1
--- /dev/null
+++ b/tools/vendor/github.com/containerd/containerd/archive/tarheader/tarheader.go
@@ -0,0 +1,82 @@
+/*
+ Copyright The containerd 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.
+*/
+
+/*
+ Portions from https://github.com/moby/moby/blob/v23.0.1/pkg/archive/archive.go#L419-L464
+ Copyright (C) Docker/Moby authors.
+ Licensed under the Apache License, Version 2.0
+ NOTICE: https://github.com/moby/moby/blob/v23.0.1/NOTICE
+*/
+
+package tarheader
+
+import (
+ "archive/tar"
+ "os"
+)
+
+// nosysFileInfo hides the system-dependent info of the wrapped FileInfo to
+// prevent tar.FileInfoHeader from introspecting it and potentially calling into
+// glibc.
+//
+// From https://github.com/moby/moby/blob/v23.0.1/pkg/archive/archive.go#L419-L434 .
+type nosysFileInfo struct {
+ os.FileInfo
+}
+
+func (fi nosysFileInfo) Sys() interface{} {
+ // A Sys value of type *tar.Header is safe as it is system-independent.
+ // The tar.FileInfoHeader function copies the fields into the returned
+ // header without performing any OS lookups.
+ if sys, ok := fi.FileInfo.Sys().(*tar.Header); ok {
+ return sys
+ }
+ return nil
+}
+
+// sysStat, if non-nil, populates hdr from system-dependent fields of fi.
+//
+// From https://github.com/moby/moby/blob/v23.0.1/pkg/archive/archive.go#L436-L437 .
+var sysStat func(fi os.FileInfo, hdr *tar.Header) error
+
+// FileInfoHeaderNoLookups creates a partially-populated tar.Header from fi.
+//
+// Compared to the archive/tar.FileInfoHeader function, this function is safe to
+// call from a chrooted process as it does not populate fields which would
+// require operating system lookups. It behaves identically to
+// tar.FileInfoHeader when fi is a FileInfo value returned from
+// tar.Header.FileInfo().
+//
+// When fi is a FileInfo for a native file, such as returned from os.Stat() and
+// os.Lstat(), the returned Header value differs from one returned from
+// tar.FileInfoHeader in the following ways. The Uname and Gname fields are not
+// set as OS lookups would be required to populate them. The AccessTime and
+// ChangeTime fields are not currently set (not yet implemented) although that
+// is subject to change. Callers which require the AccessTime or ChangeTime
+// fields to be zeroed should explicitly zero them out in the returned Header
+// value to avoid any compatibility issues in the future.
+//
+// From https://github.com/moby/moby/blob/v23.0.1/pkg/archive/archive.go#L439-L464 .
+func FileInfoHeaderNoLookups(fi os.FileInfo, link string) (*tar.Header, error) {
+ hdr, err := tar.FileInfoHeader(nosysFileInfo{fi}, link)
+ if err != nil {
+ return nil, err
+ }
+ if sysStat != nil {
+ return hdr, sysStat(fi, hdr)
+ }
+ return hdr, nil
+}
diff --git a/tools/vendor/github.com/containerd/containerd/archive/tarheader/tarheader_unix.go b/tools/vendor/github.com/containerd/containerd/archive/tarheader/tarheader_unix.go
new file mode 100644
index 000000000..98ad8f945
--- /dev/null
+++ b/tools/vendor/github.com/containerd/containerd/archive/tarheader/tarheader_unix.go
@@ -0,0 +1,59 @@
+//go:build !windows
+
+/*
+ Copyright The containerd 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.
+*/
+
+/*
+ Portions from https://github.com/moby/moby/blob/v23.0.1/pkg/archive/archive_unix.go#L52-L70
+ Copyright (C) Docker/Moby authors.
+ Licensed under the Apache License, Version 2.0
+ NOTICE: https://github.com/moby/moby/blob/v23.0.1/NOTICE
+*/
+
+package tarheader
+
+import (
+ "archive/tar"
+ "os"
+ "syscall"
+
+ "golang.org/x/sys/unix"
+)
+
+func init() {
+ sysStat = statUnix
+}
+
+// statUnix populates hdr from system-dependent fields of fi without performing
+// any OS lookups.
+// From https://github.com/moby/moby/blob/v23.0.1/pkg/archive/archive_unix.go#L52-L70
+func statUnix(fi os.FileInfo, hdr *tar.Header) error {
+ s, ok := fi.Sys().(*syscall.Stat_t)
+ if !ok {
+ return nil
+ }
+
+ hdr.Uid = int(s.Uid)
+ hdr.Gid = int(s.Gid)
+
+ if s.Mode&unix.S_IFBLK != 0 ||
+ s.Mode&unix.S_IFCHR != 0 {
+ hdr.Devmajor = int64(unix.Major(uint64(s.Rdev)))
+ hdr.Devminor = int64(unix.Minor(uint64(s.Rdev)))
+ }
+
+ return nil
+}
diff --git a/tools/vendor/github.com/containerd/containerd/archive/time_unix.go b/tools/vendor/github.com/containerd/containerd/archive/time_unix.go
index 043e37453..b5a10d528 100644
--- a/tools/vendor/github.com/containerd/containerd/archive/time_unix.go
+++ b/tools/vendor/github.com/containerd/containerd/archive/time_unix.go
@@ -1,5 +1,4 @@
//go:build !windows
-// +build !windows
/*
Copyright The containerd Authors.
diff --git a/tools/vendor/github.com/containerd/containerd/archive/time_windows.go b/tools/vendor/github.com/containerd/containerd/archive/time_windows.go
index 71f397821..d906a3e5e 100644
--- a/tools/vendor/github.com/containerd/containerd/archive/time_windows.go
+++ b/tools/vendor/github.com/containerd/containerd/archive/time_windows.go
@@ -25,18 +25,17 @@ import (
// chtimes will set the create time on a file using the given modtime.
// This requires calling SetFileTime and explicitly including the create time.
func chtimes(path string, atime, mtime time.Time) error {
- ctimespec := windows.NsecToTimespec(mtime.UnixNano())
- pathp, e := windows.UTF16PtrFromString(path)
- if e != nil {
- return e
+ pathp, err := windows.UTF16PtrFromString(path)
+ if err != nil {
+ return err
}
- h, e := windows.CreateFile(pathp,
+ h, err := windows.CreateFile(pathp,
windows.FILE_WRITE_ATTRIBUTES, windows.FILE_SHARE_WRITE, nil,
windows.OPEN_EXISTING, windows.FILE_FLAG_BACKUP_SEMANTICS, 0)
- if e != nil {
- return e
+ if err != nil {
+ return err
}
defer windows.Close(h)
- c := windows.NsecToFiletime(windows.TimespecToNsec(ctimespec))
+ c := windows.NsecToFiletime(mtime.UnixNano())
return windows.SetFileTime(h, &c, nil, nil)
}
diff --git a/tools/vendor/github.com/containerd/containerd/containers/containers.go b/tools/vendor/github.com/containerd/containerd/containers/containers.go
index 7174bbd6a..49f389133 100644
--- a/tools/vendor/github.com/containerd/containerd/containers/containers.go
+++ b/tools/vendor/github.com/containerd/containerd/containers/containers.go
@@ -20,7 +20,7 @@ import (
"context"
"time"
- "github.com/gogo/protobuf/types"
+ "github.com/containerd/typeurl/v2"
)
// Container represents the set of data pinned by a container. Unless otherwise
@@ -53,7 +53,7 @@ type Container struct {
// container.
//
// This field is required but mutable.
- Spec *types.Any
+ Spec typeurl.Any
// SnapshotKey specifies the snapshot key to use for the container's root
// filesystem. When starting a task from this container, a caller should
@@ -75,13 +75,18 @@ type Container struct {
UpdatedAt time.Time
// Extensions stores client-specified metadata
- Extensions map[string]types.Any
+ Extensions map[string]typeurl.Any
+
+ // SandboxID is an identifier of sandbox this container belongs to.
+ //
+ // This property is optional, but can't be changed after creation.
+ SandboxID string
}
// RuntimeInfo holds runtime specific information
type RuntimeInfo struct {
Name string
- Options *types.Any
+ Options typeurl.Any
}
// Store interacts with the underlying container storage
diff --git a/tools/vendor/github.com/containerd/containerd/content/content.go b/tools/vendor/github.com/containerd/containerd/content/content.go
index ff17a8417..b7230d88b 100644
--- a/tools/vendor/github.com/containerd/containerd/content/content.go
+++ b/tools/vendor/github.com/containerd/containerd/content/content.go
@@ -25,6 +25,26 @@ import (
ocispec "github.com/opencontainers/image-spec/specs-go/v1"
)
+// Store combines the methods of content-oriented interfaces into a set that
+// are commonly provided by complete implementations.
+//
+// Overall content lifecycle:
+// - Ingester is used to initiate a write operation (aka ingestion)
+// - IngestManager is used to manage (e.g. list, abort) active ingestions
+// - Once an ingestion is complete (see Writer.Commit), Provider is used to
+// query a single piece of content by its digest
+// - Manager is used to manage (e.g. list, delete) previously committed content
+//
+// Note that until ingestion is complete, its content is not visible through
+// Provider or Manager. Once ingestion is complete, it is no longer exposed
+// through IngestManager.
+type Store interface {
+ Manager
+ Provider
+ IngestManager
+ Ingester
+}
+
// ReaderAt extends the standard io.ReaderAt interface with reporting of Size and io.Closer
type ReaderAt interface {
io.ReaderAt
@@ -42,10 +62,30 @@ type Provider interface {
// Ingester writes content
type Ingester interface {
- // Some implementations require WithRef to be included in opts.
+ // Writer initiates a writing operation (aka ingestion). A single ingestion
+ // is uniquely identified by its ref, provided using a WithRef option.
+ // Writer can be called multiple times with the same ref to access the same
+ // ingestion.
+ // Once all the data is written, use Writer.Commit to complete the ingestion.
Writer(ctx context.Context, opts ...WriterOpt) (Writer, error)
}
+// IngestManager provides methods for managing ingestions. An ingestion is a
+// not-yet-complete writing operation initiated using Ingester and identified
+// by a ref string.
+type IngestManager interface {
+ // Status returns the status of the provided ref.
+ Status(ctx context.Context, ref string) (Status, error)
+
+ // ListStatuses returns the status of any active ingestions whose ref match
+ // the provided regular expression. If empty, all active ingestions will be
+ // returned.
+ ListStatuses(ctx context.Context, filters ...string) ([]Status, error)
+
+ // Abort completely cancels the ingest operation targeted by ref.
+ Abort(ctx context.Context, ref string) error
+}
+
// Info holds content specific information
//
// TODO(stevvooe): Consider a very different name for this struct. Info is way
@@ -58,7 +98,7 @@ type Info struct {
Labels map[string]string
}
-// Status of a content operation
+// Status of a content operation (i.e. an ingestion)
type Status struct {
Ref string
Offset int64
@@ -94,21 +134,7 @@ type Manager interface {
Delete(ctx context.Context, dgst digest.Digest) error
}
-// IngestManager provides methods for managing ingests.
-type IngestManager interface {
- // Status returns the status of the provided ref.
- Status(ctx context.Context, ref string) (Status, error)
-
- // ListStatuses returns the status of any active ingestions whose ref match the
- // provided regular expression. If empty, all active ingestions will be
- // returned.
- ListStatuses(ctx context.Context, filters ...string) ([]Status, error)
-
- // Abort completely cancels the ingest operation targeted by ref.
- Abort(ctx context.Context, ref string) error
-}
-
-// Writer handles the write of content into a content store
+// Writer handles writing of content into a content store
type Writer interface {
// Close closes the writer, if the writer has not been
// committed this allows resuming or aborting.
@@ -131,15 +157,6 @@ type Writer interface {
Truncate(size int64) error
}
-// Store combines the methods of content-oriented interfaces into a set that
-// are commonly provided by complete implementations.
-type Store interface {
- Manager
- Provider
- IngestManager
- Ingester
-}
-
// Opt is used to alter the mutable properties of content
type Opt func(*Info) error
diff --git a/tools/vendor/github.com/containerd/containerd/content/helpers.go b/tools/vendor/github.com/containerd/containerd/content/helpers.go
index 3ec1ffce0..5404109a6 100644
--- a/tools/vendor/github.com/containerd/containerd/content/helpers.go
+++ b/tools/vendor/github.com/containerd/containerd/content/helpers.go
@@ -21,15 +21,21 @@ import (
"errors"
"fmt"
"io"
- "math/rand"
"sync"
"time"
"github.com/containerd/containerd/errdefs"
+ "github.com/containerd/containerd/log"
+ "github.com/containerd/containerd/pkg/randutil"
"github.com/opencontainers/go-digest"
ocispec "github.com/opencontainers/image-spec/specs-go/v1"
)
+// maxResets is the no.of times the Copy() method can tolerate a reset of the body
+const maxResets = 5
+
+var ErrReset = errors.New("writer has been reset")
+
var bufPool = sync.Pool{
New: func() interface{} {
buffer := make([]byte, 1<<20)
@@ -37,16 +43,26 @@ var bufPool = sync.Pool{
},
}
+type reader interface {
+ Reader() io.Reader
+}
+
// NewReader returns a io.Reader from a ReaderAt
func NewReader(ra ReaderAt) io.Reader {
- rd := io.NewSectionReader(ra, 0, ra.Size())
- return rd
+ if rd, ok := ra.(reader); ok {
+ return rd.Reader()
+ }
+ return io.NewSectionReader(ra, 0, ra.Size())
}
// ReadBlob retrieves the entire contents of the blob from the provider.
//
// Avoid using this for large blobs, such as layers.
func ReadBlob(ctx context.Context, provider Provider, desc ocispec.Descriptor) ([]byte, error) {
+ if int64(len(desc.Data)) == desc.Size && digest.FromBytes(desc.Data) == desc.Digest {
+ return desc.Data, nil
+ }
+
ra, err := provider.ReaderAt(ctx, desc)
if err != nil {
return nil, err
@@ -80,7 +96,7 @@ func WriteBlob(ctx context.Context, cs Ingester, ref string, r io.Reader, desc o
return fmt.Errorf("failed to open writer: %w", err)
}
- return nil // all ready present
+ return nil // already present
}
defer cw.Close()
@@ -107,7 +123,7 @@ func OpenWriter(ctx context.Context, cs Ingester, opts ...WriterOpt) (Writer, er
// error or abort. Requires asserting for an ingest manager
select {
- case <-time.After(time.Millisecond * time.Duration(rand.Intn(retry))):
+ case <-time.After(time.Millisecond * time.Duration(randutil.Intn(retry))):
if retry < 2048 {
retry = retry << 1
}
@@ -131,35 +147,63 @@ func OpenWriter(ctx context.Context, cs Ingester, opts ...WriterOpt) (Writer, er
// the size or digest is unknown, these values may be empty.
//
// Copy is buffered, so no need to wrap reader in buffered io.
-func Copy(ctx context.Context, cw Writer, r io.Reader, size int64, expected digest.Digest, opts ...Opt) error {
+func Copy(ctx context.Context, cw Writer, or io.Reader, size int64, expected digest.Digest, opts ...Opt) error {
ws, err := cw.Status()
if err != nil {
return fmt.Errorf("failed to get status: %w", err)
}
-
+ r := or
if ws.Offset > 0 {
- r, err = seekReader(r, ws.Offset, size)
+ r, err = seekReader(or, ws.Offset, size)
if err != nil {
return fmt.Errorf("unable to resume write to %v: %w", ws.Ref, err)
}
}
- copied, err := copyWithBuffer(cw, r)
- if err != nil {
- return fmt.Errorf("failed to copy: %w", err)
- }
- if size != 0 && copied < size-ws.Offset {
- // Short writes would return its own error, this indicates a read failure
- return fmt.Errorf("failed to read expected number of bytes: %w", io.ErrUnexpectedEOF)
- }
-
- if err := cw.Commit(ctx, size, expected, opts...); err != nil {
- if !errdefs.IsAlreadyExists(err) {
- return fmt.Errorf("failed commit on ref %q: %w", ws.Ref, err)
+ for i := 0; i < maxResets; i++ {
+ if i >= 1 {
+ log.G(ctx).WithField("digest", expected).Debugf("retrying copy due to reset")
+ }
+ copied, err := copyWithBuffer(cw, r)
+ if errors.Is(err, ErrReset) {
+ ws, err := cw.Status()
+ if err != nil {
+ return fmt.Errorf("failed to get status: %w", err)
+ }
+ r, err = seekReader(or, ws.Offset, size)
+ if err != nil {
+ return fmt.Errorf("unable to resume write to %v: %w", ws.Ref, err)
+ }
+ continue
+ }
+ if err != nil {
+ return fmt.Errorf("failed to copy: %w", err)
+ }
+ if size != 0 && copied < size-ws.Offset {
+ // Short writes would return its own error, this indicates a read failure
+ return fmt.Errorf("failed to read expected number of bytes: %w", io.ErrUnexpectedEOF)
}
+ if err := cw.Commit(ctx, size, expected, opts...); err != nil {
+ if errors.Is(err, ErrReset) {
+ ws, err := cw.Status()
+ if err != nil {
+ return fmt.Errorf("failed to get status: %w", err)
+ }
+ r, err = seekReader(or, ws.Offset, size)
+ if err != nil {
+ return fmt.Errorf("unable to resume write to %v: %w", ws.Ref, err)
+ }
+ continue
+ }
+ if !errdefs.IsAlreadyExists(err) {
+ return fmt.Errorf("failed commit on ref %q: %w", ws.Ref, err)
+ }
+ }
+ return nil
}
- return nil
+ log.G(ctx).WithField("digest", expected).Errorf("failed to copy after %d retries", maxResets)
+ return fmt.Errorf("failed to copy after %d retries", maxResets)
}
// CopyReaderAt copies to a writer from a given reader at for the given
diff --git a/tools/vendor/github.com/containerd/containerd/content/local/content_local_fuzzer.go b/tools/vendor/github.com/containerd/containerd/content/local/content_local_fuzzer.go
new file mode 100644
index 000000000..a523f28d9
--- /dev/null
+++ b/tools/vendor/github.com/containerd/containerd/content/local/content_local_fuzzer.go
@@ -0,0 +1,76 @@
+//go:build gofuzz
+
+/*
+ Copyright The containerd 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 local
+
+import (
+ "bufio"
+ "bytes"
+ "context"
+ _ "crypto/sha256"
+ "io"
+ "testing"
+
+ "github.com/opencontainers/go-digest"
+
+ "github.com/containerd/containerd/content"
+)
+
+func FuzzContentStoreWriter(data []byte) int {
+ t := &testing.T{}
+ ctx := context.Background()
+ ctx, _, cs, cleanup := contentStoreEnv(t)
+ defer cleanup()
+
+ cw, err := cs.Writer(ctx, content.WithRef("myref"))
+ if err != nil {
+ return 0
+ }
+ if err := cw.Close(); err != nil {
+ return 0
+ }
+
+ // reopen, so we can test things
+ cw, err = cs.Writer(ctx, content.WithRef("myref"))
+ if err != nil {
+ return 0
+ }
+
+ err = checkCopyFuzz(int64(len(data)), cw, bufio.NewReader(io.NopCloser(bytes.NewReader(data))))
+ if err != nil {
+ return 0
+ }
+ expected := digest.FromBytes(data)
+
+ if err = cw.Commit(ctx, int64(len(data)), expected); err != nil {
+ return 0
+ }
+ return 1
+}
+
+func checkCopyFuzz(size int64, dst io.Writer, src io.Reader) error {
+ nn, err := io.Copy(dst, src)
+ if err != nil {
+ return err
+ }
+
+ if nn != size {
+ return err
+ }
+ return nil
+}
diff --git a/tools/vendor/github.com/containerd/containerd/content/local/readerat.go b/tools/vendor/github.com/containerd/containerd/content/local/readerat.go
index a83c171bb..899e85c0b 100644
--- a/tools/vendor/github.com/containerd/containerd/content/local/readerat.go
+++ b/tools/vendor/github.com/containerd/containerd/content/local/readerat.go
@@ -18,6 +18,7 @@ package local
import (
"fmt"
+ "io"
"os"
"github.com/containerd/containerd/content"
@@ -65,3 +66,7 @@ func (ra sizeReaderAt) Size() int64 {
func (ra sizeReaderAt) Close() error {
return ra.fp.Close()
}
+
+func (ra sizeReaderAt) Reader() io.Reader {
+ return io.LimitReader(ra.fp, ra.size)
+}
diff --git a/tools/vendor/github.com/containerd/containerd/content/local/store.go b/tools/vendor/github.com/containerd/containerd/content/local/store.go
index 457bbcd0e..baae3565b 100644
--- a/tools/vendor/github.com/containerd/containerd/content/local/store.go
+++ b/tools/vendor/github.com/containerd/containerd/content/local/store.go
@@ -20,7 +20,6 @@ import (
"context"
"fmt"
"io"
- "math/rand"
"os"
"path/filepath"
"strconv"
@@ -32,9 +31,10 @@ import (
"github.com/containerd/containerd/errdefs"
"github.com/containerd/containerd/filters"
"github.com/containerd/containerd/log"
+ "github.com/containerd/containerd/pkg/randutil"
"github.com/sirupsen/logrus"
- digest "github.com/opencontainers/go-digest"
+ "github.com/opencontainers/go-digest"
ocispec "github.com/opencontainers/image-spec/specs-go/v1"
)
@@ -262,7 +262,7 @@ func (s *store) Walk(ctx context.Context, fn content.WalkFunc, fs ...string) err
return nil
}
- dgst := digest.NewDigestFromHex(alg.String(), filepath.Base(path))
+ dgst := digest.NewDigestFromEncoded(alg, filepath.Base(path))
if err := dgst.Validate(); err != nil {
// log error but don't report
log.L.WithError(err).WithField("path", path).Error("invalid digest for blob path")
@@ -473,7 +473,7 @@ func (s *store) Writer(ctx context.Context, opts ...content.WriterOpt) (content.
lockErr = nil
break
}
- time.Sleep(time.Millisecond * time.Duration(rand.Intn(1< 0
+ case "topic":
+ return e.Topic, len(e.Topic) > 0
+ case "event":
+ decoded, err := typeurl.UnmarshalAny(e.Event)
+ if err != nil {
+ return "", false
+ }
+
+ adaptor, ok := decoded.(interface {
+ Field([]string) (string, bool)
+ })
+ if !ok {
+ return "", false
+ }
+ return adaptor.Field(fieldpath[1:])
+ }
+ return "", false
+}
+
+// Event is a generic interface for any type of event
+type Event interface{}
+
+// Publisher posts the event.
+type Publisher interface {
+ Publish(ctx context.Context, topic string, event Event) error
+}
+
+// Forwarder forwards an event to the underlying event bus
+type Forwarder interface {
+ Forward(ctx context.Context, envelope *Envelope) error
+}
+
+// Subscriber allows callers to subscribe to events
+type Subscriber interface {
+ Subscribe(ctx context.Context, filters ...string) (ch <-chan *Envelope, errs <-chan error)
+}
diff --git a/tools/vendor/github.com/containerd/containerd/filters/filter.go b/tools/vendor/github.com/containerd/containerd/filters/filter.go
index cf09d8d9e..e13f2625c 100644
--- a/tools/vendor/github.com/containerd/containerd/filters/filter.go
+++ b/tools/vendor/github.com/containerd/containerd/filters/filter.go
@@ -65,7 +65,6 @@
// ```
// name==foo,labels.bar
// ```
-//
package filters
import (
diff --git a/tools/vendor/github.com/containerd/containerd/filters/parser.go b/tools/vendor/github.com/containerd/containerd/filters/parser.go
index 49182d7b7..32767909b 100644
--- a/tools/vendor/github.com/containerd/containerd/filters/parser.go
+++ b/tools/vendor/github.com/containerd/containerd/filters/parser.go
@@ -45,7 +45,6 @@ field := quoted | [A-Za-z] [A-Za-z0-9_]+
operator := "==" | "!=" | "~="
value := quoted | [^\s,]+
quoted :=
-
*/
func Parse(s string) (Filter, error) {
// special case empty to match all
diff --git a/tools/vendor/github.com/containerd/containerd/filters/quote.go b/tools/vendor/github.com/containerd/containerd/filters/quote.go
index b76aab9b4..5c800ef84 100644
--- a/tools/vendor/github.com/containerd/containerd/filters/quote.go
+++ b/tools/vendor/github.com/containerd/containerd/filters/quote.go
@@ -31,10 +31,10 @@ var errQuoteSyntax = errors.New("quote syntax error")
// or character literal represented by the string s.
// It returns four values:
//
-// 1) value, the decoded Unicode code point or byte value;
-// 2) multibyte, a boolean indicating whether the decoded character requires a multibyte UTF-8 representation;
-// 3) tail, the remainder of the string after the character; and
-// 4) an error that will be nil if the character is syntactically valid.
+// 1. value, the decoded Unicode code point or byte value;
+// 2. multibyte, a boolean indicating whether the decoded character requires a multibyte UTF-8 representation;
+// 3. tail, the remainder of the string after the character; and
+// 4. an error that will be nil if the character is syntactically valid.
//
// The second argument, quote, specifies the type of literal being parsed
// and therefore which escaped quote character is permitted.
diff --git a/tools/vendor/github.com/containerd/containerd/images/image.go b/tools/vendor/github.com/containerd/containerd/images/image.go
index d45afe482..2d2e36a9a 100644
--- a/tools/vendor/github.com/containerd/containerd/images/image.go
+++ b/tools/vendor/github.com/containerd/containerd/images/image.go
@@ -138,7 +138,7 @@ type platformManifest struct {
// TODO(stevvooe): This violates the current platform agnostic approach to this
// package by returning a specific manifest type. We'll need to refactor this
// to return a manifest descriptor or decide that we want to bring the API in
-// this direction because this abstraction is not needed.`
+// this direction because this abstraction is not needed.
func Manifest(ctx context.Context, provider content.Provider, image ocispec.Descriptor, platform platforms.MatchComparer) (ocispec.Manifest, error) {
var (
limit = 1
@@ -311,7 +311,7 @@ func Check(ctx context.Context, provider content.Provider, image ocispec.Descrip
return false, nil, nil, nil, fmt.Errorf("failed to check image %v: %w", image.Digest, err)
}
- // TODO(stevvooe): It is possible that referenced conponents could have
+ // TODO(stevvooe): It is possible that referenced components could have
// children, but this is rare. For now, we ignore this and only verify
// that manifest components are present.
required = append([]ocispec.Descriptor{mfst.Config}, mfst.Layers...)
diff --git a/tools/vendor/github.com/containerd/containerd/images/mediatypes.go b/tools/vendor/github.com/containerd/containerd/images/mediatypes.go
index 671e160e1..067963bab 100644
--- a/tools/vendor/github.com/containerd/containerd/images/mediatypes.go
+++ b/tools/vendor/github.com/containerd/containerd/images/mediatypes.go
@@ -38,7 +38,9 @@ const (
MediaTypeDockerSchema2Config = "application/vnd.docker.container.image.v1+json"
MediaTypeDockerSchema2Manifest = "application/vnd.docker.distribution.manifest.v2+json"
MediaTypeDockerSchema2ManifestList = "application/vnd.docker.distribution.manifest.list.v2+json"
+
// Checkpoint/Restore Media Types
+
MediaTypeContainerd1Checkpoint = "application/vnd.containerd.container.criu.checkpoint.criu.tar"
MediaTypeContainerd1CheckpointPreDump = "application/vnd.containerd.container.criu.checkpoint.predump.tar"
MediaTypeContainerd1Resource = "application/vnd.containerd.container.resource.tar"
@@ -47,9 +49,12 @@ const (
MediaTypeContainerd1CheckpointOptions = "application/vnd.containerd.container.checkpoint.options.v1+proto"
MediaTypeContainerd1CheckpointRuntimeName = "application/vnd.containerd.container.checkpoint.runtime.name"
MediaTypeContainerd1CheckpointRuntimeOptions = "application/vnd.containerd.container.checkpoint.runtime.options+proto"
- // Legacy Docker schema1 manifest
+
+ // MediaTypeDockerSchema1Manifest is the legacy Docker schema1 manifest
MediaTypeDockerSchema1Manifest = "application/vnd.docker.distribution.manifest.v1+prettyjws"
- // Encypted media types
+
+ // Encrypted media types
+
MediaTypeImageLayerEncrypted = ocispec.MediaTypeImageLayer + "+encrypted"
MediaTypeImageLayerGzipEncrypted = ocispec.MediaTypeImageLayerGzip + "+encrypted"
)
@@ -93,16 +98,23 @@ func DiffCompression(ctx context.Context, mediaType string) (string, error) {
// parseMediaTypes splits the media type into the base type and
// an array of sorted extensions
-func parseMediaTypes(mt string) (string, []string) {
+func parseMediaTypes(mt string) (mediaType string, suffixes []string) {
if mt == "" {
return "", []string{}
}
+ mediaType, ext, ok := strings.Cut(mt, "+")
+ if !ok {
+ return mediaType, []string{}
+ }
- s := strings.Split(mt, "+")
- ext := s[1:]
- sort.Strings(ext)
-
- return s[0], ext
+ // Splitting the extensions following the mediatype "(+)gzip+encrypted".
+ // We expect this to be a limited list, so add an arbitrary limit (50).
+ //
+ // Note that DiffCompression is only using the last element, so perhaps we
+ // should split on the last "+" only.
+ suffixes = strings.SplitN(ext, "+", 50)
+ sort.Strings(suffixes)
+ return mediaType, suffixes
}
// IsNonDistributable returns true if the media type is non-distributable.
@@ -118,8 +130,7 @@ func IsLayerType(mt string) bool {
}
// Parse Docker media types, strip off any + suffixes first
- base, _ := parseMediaTypes(mt)
- switch base {
+ switch base, _ := parseMediaTypes(mt); base {
case MediaTypeDockerSchema2Layer, MediaTypeDockerSchema2LayerGzip,
MediaTypeDockerSchema2LayerForeign, MediaTypeDockerSchema2LayerForeignGzip:
return true
diff --git a/tools/vendor/github.com/containerd/containerd/labels/labels.go b/tools/vendor/github.com/containerd/containerd/labels/labels.go
index d76ff2cf9..0f9bab5c5 100644
--- a/tools/vendor/github.com/containerd/containerd/labels/labels.go
+++ b/tools/vendor/github.com/containerd/containerd/labels/labels.go
@@ -19,3 +19,11 @@ package labels
// LabelUncompressed is added to compressed layer contents.
// The value is digest of the uncompressed content.
const LabelUncompressed = "containerd.io/uncompressed"
+
+// LabelSharedNamespace is added to a namespace to allow that namespaces
+// contents to be shared.
+const LabelSharedNamespace = "containerd.io/namespace.shareable"
+
+// LabelDistributionSource is added to content to indicate its origin.
+// e.g., "containerd.io/distribution.source.docker.io=library/redis"
+const LabelDistributionSource = "containerd.io/distribution.source"
diff --git a/tools/vendor/github.com/containerd/containerd/labels/validate.go b/tools/vendor/github.com/containerd/containerd/labels/validate.go
index 1fd527adb..f83b5dde2 100644
--- a/tools/vendor/github.com/containerd/containerd/labels/validate.go
+++ b/tools/vendor/github.com/containerd/containerd/labels/validate.go
@@ -24,15 +24,18 @@ import (
const (
maxSize = 4096
+ // maximum length of key portion of error message if len of key + len of value > maxSize
+ keyMaxLen = 64
)
// Validate a label's key and value are under 4096 bytes
func Validate(k, v string) error {
- if (len(k) + len(v)) > maxSize {
- if len(k) > 10 {
- k = k[:10]
+ total := len(k) + len(v)
+ if total > maxSize {
+ if len(k) > keyMaxLen {
+ k = k[:keyMaxLen]
}
- return fmt.Errorf("label key and value greater than maximum size (%d bytes), key: %s: %w", maxSize, k, errdefs.ErrInvalidArgument)
+ return fmt.Errorf("label key and value length (%d bytes) greater than maximum size (%d bytes), key: %s: %w", total, maxSize, k, errdefs.ErrInvalidArgument)
}
return nil
}
diff --git a/tools/vendor/github.com/containerd/containerd/leases/id.go b/tools/vendor/github.com/containerd/containerd/leases/id.go
index 8781a1d72..8f5dc93f3 100644
--- a/tools/vendor/github.com/containerd/containerd/leases/id.go
+++ b/tools/vendor/github.com/containerd/containerd/leases/id.go
@@ -17,9 +17,9 @@
package leases
import (
+ "crypto/rand"
"encoding/base64"
"fmt"
- "math/rand"
"time"
)
diff --git a/tools/vendor/github.com/containerd/containerd/leases/lease.go b/tools/vendor/github.com/containerd/containerd/leases/lease.go
index 058d06559..fc0ca3491 100644
--- a/tools/vendor/github.com/containerd/containerd/leases/lease.go
+++ b/tools/vendor/github.com/containerd/containerd/leases/lease.go
@@ -65,10 +65,15 @@ func SynchronousDelete(ctx context.Context, o *DeleteOptions) error {
return nil
}
-// WithLabels sets labels on a lease
+// WithLabels merges labels on a lease
func WithLabels(labels map[string]string) Opt {
return func(l *Lease) error {
- l.Labels = labels
+ if l.Labels == nil {
+ l.Labels = map[string]string{}
+ }
+ for k, v := range labels {
+ l.Labels[k] = v
+ }
return nil
}
}
diff --git a/tools/vendor/github.com/containerd/containerd/log/context.go b/tools/vendor/github.com/containerd/containerd/log/context.go
index 0db9562b8..92cfcd91a 100644
--- a/tools/vendor/github.com/containerd/containerd/log/context.go
+++ b/tools/vendor/github.com/containerd/containerd/log/context.go
@@ -35,6 +35,9 @@ var (
type (
loggerKey struct{}
+
+ // Fields type to pass to `WithFields`, alias from `logrus`.
+ Fields = logrus.Fields
)
const (
diff --git a/tools/vendor/github.com/containerd/containerd/metadata/adaptors.go b/tools/vendor/github.com/containerd/containerd/metadata/adaptors.go
index c5d576f84..dbff7bacd 100644
--- a/tools/vendor/github.com/containerd/containerd/metadata/adaptors.go
+++ b/tools/vendor/github.com/containerd/containerd/metadata/adaptors.go
@@ -24,6 +24,7 @@ import (
"github.com/containerd/containerd/filters"
"github.com/containerd/containerd/images"
"github.com/containerd/containerd/leases"
+ "github.com/containerd/containerd/sandbox"
"github.com/containerd/containerd/snapshots"
)
@@ -149,6 +150,23 @@ func adaptSnapshot(info snapshots.Info) filters.Adaptor {
})
}
+func adaptSandbox(instance *sandbox.Sandbox) filters.Adaptor {
+ return filters.AdapterFunc(func(fieldpath []string) (string, bool) {
+ if len(fieldpath) == 0 {
+ return "", false
+ }
+
+ switch fieldpath[0] {
+ case "id":
+ return instance.ID, true
+ case "labels":
+ return checkMap(fieldpath[1:], instance.Labels)
+ default:
+ return "", false
+ }
+ })
+}
+
func checkMap(fieldpath []string, m map[string]string) (string, bool) {
if len(m) == 0 {
return "", false
diff --git a/tools/vendor/github.com/containerd/containerd/metadata/boltutil/helpers.go b/tools/vendor/github.com/containerd/containerd/metadata/boltutil/helpers.go
index 4722a5226..8f8df3361 100644
--- a/tools/vendor/github.com/containerd/containerd/metadata/boltutil/helpers.go
+++ b/tools/vendor/github.com/containerd/containerd/metadata/boltutil/helpers.go
@@ -20,8 +20,10 @@ import (
"fmt"
"time"
- "github.com/gogo/protobuf/proto"
- "github.com/gogo/protobuf/types"
+ "github.com/containerd/containerd/protobuf"
+ "github.com/containerd/containerd/protobuf/proto"
+ "github.com/containerd/containerd/protobuf/types"
+ "github.com/containerd/typeurl/v2"
bolt "go.etcd.io/bbolt"
)
@@ -151,7 +153,7 @@ func WriteTimestamps(bkt *bolt.Bucket, created, updated time.Time) error {
// WriteExtensions will write a KV map to the given bucket,
// where `K` is a string key and `V` is a protobuf's Any type that represents a generic extension.
-func WriteExtensions(bkt *bolt.Bucket, extensions map[string]types.Any) error {
+func WriteExtensions(bkt *bolt.Bucket, extensions map[string]typeurl.Any) error {
if len(extensions) == 0 {
return nil
}
@@ -162,7 +164,8 @@ func WriteExtensions(bkt *bolt.Bucket, extensions map[string]types.Any) error {
}
for name, ext := range extensions {
- p, err := proto.Marshal(&ext)
+ ext := protobuf.FromAny(ext)
+ p, err := proto.Marshal(ext)
if err != nil {
return err
}
@@ -176,9 +179,9 @@ func WriteExtensions(bkt *bolt.Bucket, extensions map[string]types.Any) error {
}
// ReadExtensions will read back a map of extensions from the given bucket, previously written by WriteExtensions
-func ReadExtensions(bkt *bolt.Bucket) (map[string]types.Any, error) {
+func ReadExtensions(bkt *bolt.Bucket) (map[string]typeurl.Any, error) {
var (
- extensions = make(map[string]types.Any)
+ extensions = make(map[string]typeurl.Any)
ebkt = bkt.Bucket(bucketKeyExtensions)
)
@@ -192,7 +195,7 @@ func ReadExtensions(bkt *bolt.Bucket) (map[string]types.Any, error) {
return err
}
- extensions[string(k)] = t
+ extensions[string(k)] = &t
return nil
}); err != nil {
return nil, err
@@ -202,18 +205,19 @@ func ReadExtensions(bkt *bolt.Bucket) (map[string]types.Any, error) {
}
// WriteAny write a protobuf's Any type to the bucket
-func WriteAny(bkt *bolt.Bucket, name []byte, any *types.Any) error {
- if any == nil {
+func WriteAny(bkt *bolt.Bucket, name []byte, any typeurl.Any) error {
+ pbany := protobuf.FromAny(any)
+ if pbany == nil {
return nil
}
- data, err := proto.Marshal(any)
+ data, err := proto.Marshal(pbany)
if err != nil {
- return err
+ return fmt.Errorf("failed to marshal: %w", err)
}
if err := bkt.Put(name, data); err != nil {
- return err
+ return fmt.Errorf("put failed: %w", err)
}
return nil
diff --git a/tools/vendor/github.com/containerd/containerd/metadata/buckets.go b/tools/vendor/github.com/containerd/containerd/metadata/buckets.go
index d23be84fe..8dcf10f47 100644
--- a/tools/vendor/github.com/containerd/containerd/metadata/buckets.go
+++ b/tools/vendor/github.com/containerd/containerd/metadata/buckets.go
@@ -26,7 +26,7 @@
//
// Generically, we try to do the following:
//
-// //