From 936fe35acb89e8c77810a7ead4def29ef27f083e Mon Sep 17 00:00:00 2001 From: Chen TaoTao Date: Fri, 28 Oct 2022 15:33:19 +0800 Subject: [PATCH 01/37] runtime-rs : fix shim source is ambiguous In the documentation test, the name shim has multiple potential sources of import, now give it a clear source. Fixes: #5535 Signed-off-by: Chen TaoTao --- src/runtime-rs/crates/shim/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/runtime-rs/crates/shim/src/lib.rs b/src/runtime-rs/crates/shim/src/lib.rs index 2b419061c..59bf22ada 100644 --- a/src/runtime-rs/crates/shim/src/lib.rs +++ b/src/runtime-rs/crates/shim/src/lib.rs @@ -16,7 +16,7 @@ pub use error::Error; mod logger; mod panic_hook; mod shim; -pub use shim::ShimExecutor; +pub use crate::shim::ShimExecutor; mod core_sched; #[rustfmt::skip] pub mod config; From b74c18024a259c1f605201615ec038b5951ac0fb Mon Sep 17 00:00:00 2001 From: Xuewei Niu Date: Tue, 1 Nov 2022 11:00:38 +0800 Subject: [PATCH 02/37] runtime-rs: fix shared volume permission issue Fix the issue where share volumes always have readwrite permission even if readonly permission is enough. Fixes: #5549 Signed-off-by: Xuewei Niu --- src/runtime-rs/crates/resource/src/volume/share_fs_volume.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/runtime-rs/crates/resource/src/volume/share_fs_volume.rs b/src/runtime-rs/crates/resource/src/volume/share_fs_volume.rs index c75ea5ca1..90110944a 100644 --- a/src/runtime-rs/crates/resource/src/volume/share_fs_volume.rs +++ b/src/runtime-rs/crates/resource/src/volume/share_fs_volume.rs @@ -65,7 +65,7 @@ impl ShareFsVolume { cid: cid.to_string(), source: m.source.clone(), target: file_name, - readonly: false, + readonly: m.options.iter().any(|o| *o == "ro"), mount_options: m.options.clone(), mount: m.clone(), }) From 16dca4ecd405197bcb4c57cb21f3396af84eeee0 Mon Sep 17 00:00:00 2001 From: Manabu Sugimoto Date: Tue, 1 Nov 2022 17:01:19 +0900 Subject: [PATCH 03/37] runk: Ignore an error when calling kill cmd with --all option Ignore an error handling that is triggered when the kill command is called with `--all option` to the stopped container. High-level container runtimes such as containerd call the kill command with `--all` option in order to terminate all processes inside the container even if the container already is stopped. Hence, a low-level runtime should allow `kill --all` regardless of the container state like runc. This commit reverts to the previous behavior. Fixes: #5555 Signed-off-by: Manabu Sugimoto --- src/tools/runk/libcontainer/src/container.rs | 18 ++++++++++-------- src/tools/runk/libcontainer/src/status.rs | 2 +- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/tools/runk/libcontainer/src/container.rs b/src/tools/runk/libcontainer/src/container.rs index fce2d9ecd..260ea9d36 100644 --- a/src/tools/runk/libcontainer/src/container.rs +++ b/src/tools/runk/libcontainer/src/container.rs @@ -83,14 +83,6 @@ impl Container { } pub fn kill(&self, signal: Signal, all: bool) -> Result<()> { - if self.state == ContainerState::Stopped { - return Err(anyhow!( - "container {} can't be killed because it is {:?}", - self.status.id, - self.state - )); - } - if all { let pids = self.processes()?; for pid in pids { @@ -100,6 +92,16 @@ impl Container { kill(pid, signal)?; } } else { + // If --all option is not specified and the container is stopped, + // kill operation generates an error in accordance with the OCI runtime spec. + if self.state == ContainerState::Stopped { + return Err(anyhow!( + "container {} can't be killed because it is {:?}", + self.status.id, + self.state + )); + } + let pid = Pid::from_raw(self.status.pid); if status::is_process_running(pid)? { kill(pid, signal)?; diff --git a/src/tools/runk/libcontainer/src/status.rs b/src/tools/runk/libcontainer/src/status.rs index 6a3480c59..a5187e1f4 100644 --- a/src/tools/runk/libcontainer/src/status.rs +++ b/src/tools/runk/libcontainer/src/status.rs @@ -141,7 +141,7 @@ pub fn is_process_running(pid: Pid) -> Result { match kill(pid, None) { Err(errno) => { if errno != Errno::ESRCH { - return Err(anyhow!("no such process")); + return Err(anyhow!("failed to kill process {}: {:?}", pid, errno)); } Ok(false) } From df092185ee4fdea6c4a0f4103b6c57e3d434bcbe Mon Sep 17 00:00:00 2001 From: Manabu Sugimoto Date: Tue, 1 Nov 2022 20:22:29 +0900 Subject: [PATCH 04/37] runk: Upgrade libseccomp crate to v0.3.0 in Cargo.lock The libseccomp crate was upgraded to v0.3.0 by 4696ead, but `Cargo.lock` of runk wasn't updated by mistake. So, this commit updates `Cargo.lock` of runk to the latest dependencies. Fixes: #5487 Signed-off-by: Manabu Sugimoto --- src/tools/runk/Cargo.lock | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/tools/runk/Cargo.lock b/src/tools/runk/Cargo.lock index 5862c2758..7b874032f 100644 --- a/src/tools/runk/Cargo.lock +++ b/src/tools/runk/Cargo.lock @@ -582,10 +582,11 @@ dependencies = [ [[package]] name = "libseccomp" -version = "0.2.3" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49bda1fbf25c42ac8942ff7df1eb6172a3bc36299e84be0dba8c888a7db68c80" +checksum = "21c57fd8981a80019807b7b68118618d29a87177c63d704fc96e6ecd003ae5b3" dependencies = [ + "bitflags", "libc", "libseccomp-sys", "pkg-config", @@ -1094,7 +1095,7 @@ dependencies = [ "lazy_static", "libc", "libseccomp", - "nix 0.23.1", + "nix 0.24.2", "oci", "path-absolutize", "protobuf", From ca69a9ad6d3f5e411b5a2c83cc5872fc256442e8 Mon Sep 17 00:00:00 2001 From: "James O. D. Hunt" Date: Wed, 2 Nov 2022 09:50:29 +0000 Subject: [PATCH 05/37] snap: Use metadata for dependencies Rather than hard-coding the package manager into the docker part, use the `build-packages` section to specify the parts package dependencies in a distro agnostic manner. Signed-off-by: James O. D. Hunt --- snap/snapcraft.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index a2fdcc0ba..cde181d33 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -88,12 +88,13 @@ parts: prime: - -* build-packages: + - ca-certificates - curl + - gnupg + - lsb-release override-build: | source "${SNAPCRAFT_PROJECT_DIR}/snap/local/snap-common.sh" - sudo apt-get -y update - sudo apt-get -y install ca-certificates curl gnupg lsb-release curl -fsSL https://download.docker.com/linux/ubuntu/gpg |\ sudo gpg --batch --yes --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg distro_codename=$(lsb_release -cs) From 990e6359b7144f19044be2729a693609df5c8ade Mon Sep 17 00:00:00 2001 From: "James O. D. Hunt" Date: Wed, 2 Nov 2022 09:53:05 +0000 Subject: [PATCH 06/37] snap: Unbreak docker install It appears that _either_ the GitHub workflow runners have changed their environment, or the Ubuntu archive has changed package dependencies, resulting in the following error when building the snap: ``` Installing build dependencies: bc bison build-essential cpio curl docker.io ... : The following packages have unmet dependencies: docker.io : Depends: containerd (>= 1.2.6-0ubuntu1~) E: Unable to correct problems, you have held broken packages. ``` This PR uses the simplest solution: install the `containerd` and `runc` packages. However, we might want to investigate alternative solutions in the future given that the docker and containerd packages seem to have gone wild in the Ubuntu GitHub workflow runner environment. If you include the official docker repo (which the snap uses), a _subset_ of the related packages is now: - `containerd` - `containerd.io` - `docker-ce` - `docker.io` - `moby-containerd` - `moby-engine` - `moby-runc` - `runc` Fixes: #5545. Signed-off-by: James O. D. Hunt --- snap/snapcraft.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index cde181d33..2b68a7e87 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -89,9 +89,11 @@ parts: - -* build-packages: - ca-certificates + - containerd - curl - gnupg - lsb-release + - runc override-build: | source "${SNAPCRAFT_PROJECT_DIR}/snap/local/snap-common.sh" From 27b19135847d1641488edc0e00818c7f3b97c85c Mon Sep 17 00:00:00 2001 From: Pavel Mores Date: Wed, 2 Nov 2022 15:01:25 +0100 Subject: [PATCH 07/37] runtime-rs: blanks filled & fixes made to virtiofsd launch The 'config' argument to ShareVirtioFsStandalone::new() is now actually used, taking care of an explicit TODO. If a shared path doesn't exist in ShareVirtioFsStandalone::virtiofsd_args() it is now created instead of returning an error, thus following ShareVirtioFsInline's suit. The '-o vhost_user_socket=...' command line argument doesn't seem to be supported by newer versions of virtiofsd so we replace it with '--socket-path' which should be functionally equivalent according to docs. Fixes #5572 Signed-off-by: Pavel Mores --- .../share_fs/share_virtio_fs_standalone.rs | 21 +++++++------------ 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/src/runtime-rs/crates/resource/src/share_fs/share_virtio_fs_standalone.rs b/src/runtime-rs/crates/resource/src/share_fs/share_virtio_fs_standalone.rs index b0c914973..a9ef41ee7 100644 --- a/src/runtime-rs/crates/resource/src/share_fs/share_virtio_fs_standalone.rs +++ b/src/runtime-rs/crates/resource/src/share_fs/share_virtio_fs_standalone.rs @@ -21,7 +21,7 @@ use tokio::{ }; use super::{ - share_virtio_fs::generate_sock_path, utils::get_host_ro_shared_path, + share_virtio_fs::generate_sock_path, utils::ensure_dir_exist, utils::get_host_ro_shared_path, virtio_fs_share_mount::VirtiofsShareMount, ShareFs, ShareFsMount, }; @@ -49,16 +49,15 @@ pub(crate) struct ShareVirtioFsStandalone { } impl ShareVirtioFsStandalone { - pub(crate) fn new(id: &str, _config: &SharedFsInfo) -> Result { + pub(crate) fn new(id: &str, config: &SharedFsInfo) -> Result { Ok(Self { inner: Arc::new(RwLock::new(ShareVirtioFsStandaloneInner::default())), - // TODO: update with config config: ShareVirtioFsStandaloneConfig { id: id.to_string(), jail_root: "".to_string(), - virtio_fs_daemon: "".to_string(), - virtio_fs_cache: "".to_string(), - virtio_fs_extra_args: vec![], + virtio_fs_daemon: config.virtio_fs_daemon.clone(), + virtio_fs_cache: config.virtio_fs_cache.clone(), + virtio_fs_extra_args: config.virtio_fs_extra_args.clone(), }, share_fs_mount: Arc::new(VirtiofsShareMount::new(id)), }) @@ -66,17 +65,11 @@ impl ShareVirtioFsStandalone { fn virtiofsd_args(&self, sock_path: &str) -> Result> { let source_path = get_host_ro_shared_path(&self.config.id); - if !source_path.exists() { - return Err(anyhow!( - "The virtiofs shared path({:?}) didn't exist", - source_path - )); - } + ensure_dir_exist(&source_path)?; let mut args: Vec = vec![ String::from("-f"), - String::from("-o"), - format!("vhost_user_socket={}", sock_path), + format!("--socket-path={}", sock_path), String::from("-o"), format!("source={}", source_path.to_str().unwrap()), String::from("-o"), From fef8e92af1ed52b30b733d686c7be349888896cb Mon Sep 17 00:00:00 2001 From: Zhongtao Hu Date: Wed, 2 Nov 2022 17:52:47 +0800 Subject: [PATCH 08/37] runtime-rs:add hypervisor interface capabilities 1. be able to check does hypervisor support use block device, block device hotplug, multi-queue, and share file 2. be able to set the hypervisor capability of using block device, block device hotplug, multi-queue, and share file Fixes: #5569 Signed-off-by: Zhongtao Hu --- src/agent/Cargo.lock | 11 ++ src/libs/Cargo.lock | 11 ++ src/libs/kata-types/Cargo.toml | 1 + src/libs/kata-types/src/capabilities.rs | 107 ++++++++++++++++++ src/libs/kata-types/src/lib.rs | 3 + src/runtime-rs/Cargo.lock | 11 ++ .../crates/hypervisor/src/dragonball/inner.rs | 16 ++- .../src/dragonball/inner_hypervisor.rs | 7 +- .../crates/hypervisor/src/dragonball/mod.rs | 6 + src/runtime-rs/crates/hypervisor/src/lib.rs | 3 +- .../crates/resource/src/manager_inner.rs | 21 +++- 11 files changed, 188 insertions(+), 9 deletions(-) create mode 100644 src/libs/kata-types/src/capabilities.rs diff --git a/src/agent/Cargo.lock b/src/agent/Cargo.lock index a6a464c9a..f09ae2ca4 100644 --- a/src/agent/Cargo.lock +++ b/src/agent/Cargo.lock @@ -101,6 +101,16 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +[[package]] +name = "bitmask-enum" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd9e32d7420c85055e8107e5b2463c4eeefeaac18b52359fe9f9c08a18f342b2" +dependencies = [ + "quote", + "syn", +] + [[package]] name = "bumpalo" version = "3.10.0" @@ -715,6 +725,7 @@ dependencies = [ name = "kata-types" version = "0.1.0" dependencies = [ + "bitmask-enum", "byte-unit", "glob", "lazy_static", diff --git a/src/libs/Cargo.lock b/src/libs/Cargo.lock index 655c11678..66090c19c 100644 --- a/src/libs/Cargo.lock +++ b/src/libs/Cargo.lock @@ -46,6 +46,16 @@ version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" +[[package]] +name = "bitmask-enum" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd9e32d7420c85055e8107e5b2463c4eeefeaac18b52359fe9f9c08a18f342b2" +dependencies = [ + "quote", + "syn", +] + [[package]] name = "bumpalo" version = "3.11.0" @@ -410,6 +420,7 @@ dependencies = [ name = "kata-types" version = "0.1.0" dependencies = [ + "bitmask-enum", "byte-unit", "glob", "lazy_static", diff --git a/src/libs/kata-types/Cargo.toml b/src/libs/kata-types/Cargo.toml index 5a2560457..01456b4f6 100644 --- a/src/libs/kata-types/Cargo.toml +++ b/src/libs/kata-types/Cargo.toml @@ -11,6 +11,7 @@ license = "Apache-2.0" edition = "2018" [dependencies] +bitmask-enum = "2.1.0" byte-unit = "3.1.4" glob = "0.3.0" lazy_static = "1.4.0" diff --git a/src/libs/kata-types/src/capabilities.rs b/src/libs/kata-types/src/capabilities.rs new file mode 100644 index 000000000..15207e613 --- /dev/null +++ b/src/libs/kata-types/src/capabilities.rs @@ -0,0 +1,107 @@ +// Copyright (c) 2019-2022 Alibaba Cloud +// Copyright (c) 2019-2022 Ant Group +// +// SPDX-License-Identifier: Apache-2.0 +// + +use bitmask_enum::bitmask; + +/// CapabilityBits +#[bitmask(u8)] +pub enum CapabilityBits { + /// hypervisor supports use block device + BlockDeviceSupport, + /// hypervisor supports block device hotplug + BlockDeviceHotplugSupport, + /// hypervisor supports multi queue + MultiQueueSupport, + /// hypervisor supports filesystem share + FsSharingSupport, +} + +/// Capabilities describe a virtcontainers hypervisor capabilities through a bit mask. +#[derive(Debug, Clone)] +pub struct Capabilities { + /// Capability flags + flags: CapabilityBits, +} + +impl Default for Capabilities { + fn default() -> Self { + Self::new() + } +} + +impl Capabilities { + /// new Capabilities struct + pub fn new() -> Self { + Capabilities { + flags: CapabilityBits { bits: 0 }, + } + } + + /// set CapabilityBits + pub fn set(&mut self, flags: CapabilityBits) { + self.flags = flags; + } + + /// is_block_device_supported tells if an hypervisor supports block devices. + pub fn is_block_device_supported(&self) -> bool { + self.flags.and(CapabilityBits::BlockDeviceSupport) != 0 + } + + /// is_block_device_hotplug_supported tells if an hypervisor supports block devices. + pub fn is_block_device_hotplug_supported(&self) -> bool { + self.flags.and(CapabilityBits::BlockDeviceHotplugSupport) != 0 + } + + /// is_multi_queue_supported tells if an hypervisor supports device multi queue support. + pub fn is_multi_queue_supported(&self) -> bool { + self.flags.and(CapabilityBits::MultiQueueSupport) != 0 + } + + /// is_fs_sharing_supported tells if an hypervisor supports host filesystem sharing. + pub fn is_fs_sharing_supported(&self) -> bool { + self.flags.and(CapabilityBits::FsSharingSupport) != 0 + } +} + +#[cfg(test)] +mod tests { + use crate::capabilities::CapabilityBits; + + use super::Capabilities; + + #[test] + fn test_set_hypervisor_capabilities() { + let mut cap = Capabilities::new(); + assert!(!cap.is_block_device_supported()); + + // test set block device support + cap.set(CapabilityBits::BlockDeviceSupport); + assert!(cap.is_block_device_supported()); + assert!(!cap.is_block_device_hotplug_supported()); + + // test set block device hotplug support + cap.set(CapabilityBits::BlockDeviceSupport | CapabilityBits::BlockDeviceHotplugSupport); + assert!(cap.is_block_device_hotplug_supported()); + assert!(!cap.is_multi_queue_supported()); + + // test set multi queue support + cap.set( + CapabilityBits::BlockDeviceSupport + | CapabilityBits::BlockDeviceHotplugSupport + | CapabilityBits::MultiQueueSupport, + ); + assert!(cap.is_multi_queue_supported()); + + // test set host filesystem sharing support + cap.set( + CapabilityBits::BlockDeviceSupport + | CapabilityBits::BlockDeviceHotplugSupport + | CapabilityBits::MultiQueueSupport + | CapabilityBits::FsSharingSupport, + ); + assert!(cap.is_fs_sharing_supported()) + } +} diff --git a/src/libs/kata-types/src/lib.rs b/src/libs/kata-types/src/lib.rs index ce43d2960..5eb407561 100644 --- a/src/libs/kata-types/src/lib.rs +++ b/src/libs/kata-types/src/lib.rs @@ -31,6 +31,9 @@ pub mod mount; pub(crate) mod utils; +/// hypervisor capabilities +pub mod capabilities; + /// Common error codes. #[derive(thiserror::Error, Debug)] pub enum Error { diff --git a/src/runtime-rs/Cargo.lock b/src/runtime-rs/Cargo.lock index 6327884dd..d0fed4efc 100644 --- a/src/runtime-rs/Cargo.lock +++ b/src/runtime-rs/Cargo.lock @@ -254,6 +254,16 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +[[package]] +name = "bitmask-enum" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd9e32d7420c85055e8107e5b2463c4eeefeaac18b52359fe9f9c08a18f342b2" +dependencies = [ + "quote", + "syn", +] + [[package]] name = "blake3" version = "1.3.1" @@ -1373,6 +1383,7 @@ dependencies = [ name = "kata-types" version = "0.1.0" dependencies = [ + "bitmask-enum", "byte-unit", "glob", "lazy_static", diff --git a/src/runtime-rs/crates/hypervisor/src/dragonball/inner.rs b/src/runtime-rs/crates/hypervisor/src/dragonball/inner.rs index 851f2b66a..7db3f3278 100644 --- a/src/runtime-rs/crates/hypervisor/src/dragonball/inner.rs +++ b/src/runtime-rs/crates/hypervisor/src/dragonball/inner.rs @@ -16,7 +16,10 @@ use dragonball::{ vm::VmConfigInfo, }; use kata_sys_util::mount; -use kata_types::config::hypervisor::Hypervisor as HypervisorConfig; +use kata_types::{ + capabilities::{Capabilities, CapabilityBits}, + config::hypervisor::Hypervisor as HypervisorConfig, +}; use persist::{sandbox_persist::Persist, KATA_PATH}; use std::{collections::HashSet, fs::create_dir_all, path::PathBuf}; @@ -58,10 +61,19 @@ pub struct DragonballInner { /// cached block device pub(crate) cached_block_devices: HashSet, + + /// dragonball capabilities + pub(crate) capabilities: Capabilities, } impl DragonballInner { pub fn new() -> DragonballInner { + let mut capabilities = Capabilities::new(); + capabilities.set( + CapabilityBits::BlockDeviceSupport + | CapabilityBits::BlockDeviceHotplugSupport + | CapabilityBits::FsSharingSupport, + ); DragonballInner { id: "".to_string(), vm_path: "".to_string(), @@ -74,6 +86,7 @@ impl DragonballInner { vmm_instance: VmmInstance::new(""), run_dir: "".to_string(), cached_block_devices: Default::default(), + capabilities, } } @@ -351,6 +364,7 @@ impl Persist for DragonballInner { run_dir: hypervisor_state.run_dir, pending_devices: vec![], cached_block_devices: hypervisor_state.cached_block_devices, + capabilities: Capabilities::new(), }) } } diff --git a/src/runtime-rs/crates/hypervisor/src/dragonball/inner_hypervisor.rs b/src/runtime-rs/crates/hypervisor/src/dragonball/inner_hypervisor.rs index 3b5bd02af..8a26f8465 100644 --- a/src/runtime-rs/crates/hypervisor/src/dragonball/inner_hypervisor.rs +++ b/src/runtime-rs/crates/hypervisor/src/dragonball/inner_hypervisor.rs @@ -9,7 +9,8 @@ use std::{ iter::FromIterator, }; -use anyhow::{Context, Result}; +use anyhow::{Context, Ok, Result}; +use kata_types::capabilities::Capabilities; use super::inner::DragonballInner; use crate::{utils, VcpuThreadIds, VmmState}; @@ -133,4 +134,8 @@ impl DragonballInner { pub(crate) async fn get_jailer_root(&self) -> Result { Ok(self.jailer_root.clone()) } + + pub(crate) async fn capabilities(&self) -> Result { + Ok(self.capabilities.clone()) + } } diff --git a/src/runtime-rs/crates/hypervisor/src/dragonball/mod.rs b/src/runtime-rs/crates/hypervisor/src/dragonball/mod.rs index aaadd068a..37ffd69b9 100644 --- a/src/runtime-rs/crates/hypervisor/src/dragonball/mod.rs +++ b/src/runtime-rs/crates/hypervisor/src/dragonball/mod.rs @@ -16,6 +16,7 @@ use std::sync::Arc; use anyhow::{Context, Result}; use async_trait::async_trait; +use kata_types::capabilities::Capabilities; use kata_types::config::hypervisor::Hypervisor as HypervisorConfig; use tokio::sync::RwLock; @@ -131,6 +132,11 @@ impl Hypervisor for Dragonball { async fn save_state(&self) -> Result { self.save().await } + + async fn capabilities(&self) -> Result { + let inner = self.inner.read().await; + inner.capabilities().await + } } #[async_trait] diff --git a/src/runtime-rs/crates/hypervisor/src/lib.rs b/src/runtime-rs/crates/hypervisor/src/lib.rs index b9296d81e..6b499d0ba 100644 --- a/src/runtime-rs/crates/hypervisor/src/lib.rs +++ b/src/runtime-rs/crates/hypervisor/src/lib.rs @@ -21,8 +21,8 @@ use std::collections::HashMap; use anyhow::Result; use async_trait::async_trait; use hypervisor_persist::HypervisorState; +use kata_types::capabilities::Capabilities; use kata_types::config::hypervisor::Hypervisor as HypervisorConfig; - // Config which driver to use as vm root dev const VM_ROOTFS_DRIVER_BLK: &str = "virtio-blk"; const VM_ROOTFS_DRIVER_PMEM: &str = "virtio-pmem"; @@ -65,4 +65,5 @@ pub trait Hypervisor: Send + Sync { async fn check(&self) -> Result<()>; async fn get_jailer_root(&self) -> Result; async fn save_state(&self) -> Result; + async fn capabilities(&self) -> Result; } diff --git a/src/runtime-rs/crates/resource/src/manager_inner.rs b/src/runtime-rs/crates/resource/src/manager_inner.rs index dac07d02b..308867313 100644 --- a/src/runtime-rs/crates/resource/src/manager_inner.rs +++ b/src/runtime-rs/crates/resource/src/manager_inner.rs @@ -71,12 +71,21 @@ impl ResourceManagerInner { for dc in device_configs { match dc { ResourceConfig::ShareFs(c) => { - let share_fs = share_fs::new(&self.sid, &c).context("new share fs")?; - share_fs - .setup_device_before_start_vm(self.hypervisor.as_ref()) - .await - .context("setup share fs device before start vm")?; - self.share_fs = Some(share_fs); + self.share_fs = if self + .hypervisor + .capabilities() + .await? + .is_fs_sharing_supported() + { + let share_fs = share_fs::new(&self.sid, &c).context("new share fs")?; + share_fs + .setup_device_before_start_vm(self.hypervisor.as_ref()) + .await + .context("setup share fs device before start vm")?; + Some(share_fs) + } else { + None + }; } ResourceConfig::Network(c) => { let d = network::new(&c).await.context("new network")?; From 2508d39b7cb43d3465d9975fb780306834826da6 Mon Sep 17 00:00:00 2001 From: LitFlwr0 <861690705@qq.com> Date: Thu, 9 Jun 2022 00:25:49 +0800 Subject: [PATCH 09/37] runtime: added vcpus pinning logics Core VCPU threads pinning logics for issue 4476. Also provided docs. Fixes:#4476 Signed-off-by: LitFlwr0 <861690705@qq.com> --- docs/design/README.md | 1 + .../arch-images/vcpus-pinning-process.png | Bin 0 -> 197585 bytes docs/design/vcpu-threads-pinning.md | 37 +++++++ src/runtime/config/configuration-qemu.toml.in | 5 + src/runtime/pkg/katautils/config.go | 2 + src/runtime/pkg/oci/utils.go | 6 ++ src/runtime/virtcontainers/hypervisor.go | 3 + .../pkg/annotations/annotations.go | 3 + src/runtime/virtcontainers/sandbox.go | 93 ++++++++++++++++++ 9 files changed, 150 insertions(+) create mode 100644 docs/design/arch-images/vcpus-pinning-process.png create mode 100644 docs/design/vcpu-threads-pinning.md diff --git a/docs/design/README.md b/docs/design/README.md index adcffd019..a3344d831 100644 --- a/docs/design/README.md +++ b/docs/design/README.md @@ -7,6 +7,7 @@ Kata Containers design documents: - [Design requirements for Kata Containers](kata-design-requirements.md) - [VSocks](VSocks.md) - [VCPU handling](vcpu-handling.md) +- [VCPU threads pinning](vcpu-threads-pinning.md) - [Host cgroups](host-cgroups.md) - [`Inotify` support](inotify.md) - [Metrics(Kata 2.0)](kata-2-0-metrics.md) diff --git a/docs/design/arch-images/vcpus-pinning-process.png b/docs/design/arch-images/vcpus-pinning-process.png new file mode 100644 index 0000000000000000000000000000000000000000..266c34acbaa60dbceb5fc7680bad60d5b20a97a3 GIT binary patch literal 197585 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

_^ zdTJU@)J6q2>ZHQyqE+}!sLH11E-LNCf8w83&XD7vuNao`oqW&6H=YW`M|e#m2lSYnQUqk)l9dR5i(3}DZl>YVCSm)^zCT$P)nvno+hSzd9(Vd zGO}O8<&br%_W9%2kS_;o+Ro^O{oSv2Orse4g2)kF8h@F1w*>c3p!k#)*KSZ410!{? z*Pwsqdf>b7?^3jOz8vI3xw44y!HqR)siylnt*DY*ddApNxO}af>W%ZNSIhyP18>)^ zG2+^Od9WH3)acc&h&NHa@n3Q*5}Xq|>kgp#ZOCe{x|XTMXF?Fhw&Q~RCg)53@&{}m z@9>JVkDFqBiY)(osuZ}`UxX?`i){3Clnz$Y1!}2SwLJ2qzvTUvbVF!9%$El!Dz{-I zQS6?PC^#;}D0Jke2J3a>xe(8TbpCm}NJfy*;#~5!-tp zbrz3;Z??$8HUeO|`(bFrO{=RJ5Z90<5A{s0mnN*9H?~P+`9hrQM=X&bLH7Lc_rbwW zOsg%!ksbkRJ~bevJbDg|R*LfZpddkL@DkL1rZY;rS%(zakXGN|B5pIYrND!RlMC(F zeW?Gj({tF=sI%F9pWgR5^+0*$DRC2#i>FEFsc79Yo>=BTtb+|uH)@~OvZ18nI0CH5 z?qvf<{SShGtpruxEmeHn{-yjng_?aY7J|Ks9;g}J08IH8|n+EPjW^gzHG3u{S zfM~VI=*LxS=s)T0<0w_O8uf0VUYaAfB8L37?RA1(A=y%a()_!DD9u@}3bX~l4gogx z1)J65`bvL0v<4YmS(zaUxD0|n2=72I*`JmfK`6~G6^E%A&j)x8D^vUl3wA;f%6SjK zFc7O?hSdcwzQas@CjttSXMooNdGRx;zAORj$P)I4J=C8PTrY1ZI?|58bMK+n3$xgj z&^C;I`T_YfWtMAZ4O#`gk9$zn1#r3E35W*VUjsaJzTpaRl`R2Ki7Thk-0&yuUaH6* zMGXvbA@E=Oo3py4%v$5QBvzPerm8PO!1$z`>y5bBq))d!nctJyg35LvRU`mF`aBPl zg<9}9eR|64;}qr>hZ3eD4<8e&q2QFy&B+5O0SbfC1^w%MI~EccI!DuT=^1ypE)X^3 z1hc-~$kxXVgpwN+&s$AOFTw(W0zR%qTS89R+o#Y6A%_F?il6^k>CQ@&PeBeF)zbr# zX0A9`tR!4k(OYxQPl=KFF`KaxSx(pBpmB z0d1?4S6LpDh$4(_#L?NC&>07enq?`WOm&^RD`4ssT&dq3us4$!24Dq26y#|R{qIu$ zS>L|_7Q6KyA3io^@$03Z?vB5p5Wl9#`)1^ifQICJb^E zk|}+M#I@3@TC+++ekOlkzhq5o7H?uMeL61I7@9d|0!_6VQ(%*f5jVWXmF87%Kf`{% z__nVuHiqQ$UZS{E&RbhDZpKG-S&E6aFY7EyRygMUEA~h=IyG>*FqZ(hG{~%OfBmYr ztzV0Hk4?&>&hq9RaVW`kWp7=L*GKIGtAK1|@o(j6xhFOU4BY;QIkwQ2$Gkwc{@Y!L z%%UGZImgIoc>A74mqy0vT}?mESfwv@yS#@{X;?P$Q0W?6ICO>>V}JTzjPQSiYti7V zstHxv#?OJ!>u3e!?Lj@LyS8_<(|iG!0eT-6*I+bT0 zkk94XJX3zT&c@VvHRAFxUImUZq})v!k%b#Eio(ez>z;BIz!=F77=Gbzb071_GBunw z)hNQ8z0Tvqz#YpJ?N0uvIjAA~n7&lW*RxIC(EBRrEDw{Eg`nInSn7> zANgsc)k|U~ip;1PC1AcI<|20IStUzI%cS$m>BoG%5A^PuIP3bh**{GDOW^lf(B>E0pX=IhMB043L~eR-GF5_m z7Id}NT3YW(KBMZO%G6n#ppgv4#5xN7fcxT*aj7_rWUXzAahBm-HG{>ffGt6Z3?D*? z1&~wM*HOfT&CB#u|7*yLhFeu9=lnI#poLblO~9ZzQ+? zH^bl1@$aJ8BQD(00FOc}MZeY0HK-XT`{klbE8h*Eig@Um*#Bc{?>rCEy9Ye-oWM?( zt!{7!{s!^vs5+j{Pr>iafwiBt3f~;AJgnRqpx`psm7?GwAyrW?VL=(aQG5v8bGh_aV9Z0svGlf) z!#iJ|6H+ccheacV2~W`S1#Qn}^w9~UvDe~dnAnmu7cW~!iYVYDHki4I$xQUtfIE!~ znf=A?Xcf&HRURDDV&Z?eBQs%&W&_m2zBA`Y0;-6ws4OIMR1|jGkV?_C2q@v}4$8>s z2Z?s1mto5N7YT35IH}Ec(ZdiZ?Vfu_5un;0ycE37UFrRZFS}4>?gh>OAY`R&PCF6h zOg&4FaBkAsRCvYQkMRZA%+JW!J2Bq(|L&V@X*K2dsUsKPhfoPO16Ux>abRNAf8D;a z*dgdoM^Ic|@d0$ZCz!||0E!$(q%xCnkN273*L$7B3FDSCuM{ID7TJ2EE)AEWXVJ~) z&Y!aqV==siHwItN`-ZmA59f2>A`3trEk7 zI6wMXbRgU15Y~s}-7#8qZyP0}i{vJ3B|+xG--N+AtG)GCHYiZ(pR+ zV~C>QT50D~&8BM4tK(s+3js6s+b9g#3_g+i+#}mX(Wi`%rc6jhMN8_mpM{(L3sSi+zm9uuLtGPL8 z=jGZqu*mbbc47PkbQXH9*p!FyyUhY14HP^S)wFAp)bkQae7;qoXpGDQU9(a__{mVQ z>2)6LoA-6}&w7M&rddeGUx|eHW*JOMHtAQ#4N3Ykkx-bA)<$kyxkYt zAB!&ZAKS@fjX|IL`pM^HrJ+L_t8hnHSljy~>;1?$ol@pDDV##d3T!Rb2uAeTtGpw31}Vm`&cf79;lI!Eo(_o?H{ z70?S$^z%CAn+G91Nkp=XkIprI0(+PJb-7a3y<`7?p@Ac3Ve_RE78nue=?5t7yXyt* z(RAQn@i;JW0V!Ur6y*&iBElSgwi&(<20t&zQO+#eZkWY@o&fGPG$eFo13==AAEcA zvOGn>p>pJq>-A}hxAB@+-OM#ZFg4mW+lfe#%Rz#ce? z&Of4lIU=&kETl;7&zUJZ4{1`9i#4i-_lk+| z1ixJQz$TmO@{l0Vkntr|){H*)@6Mj(5rSAlcbZr}+|Fo~V(kL_I^9!hB!uiN_HaKt z4>%iTzxF%b`A-a7HeQZb-8h^Is#LX3I+-=R915r-ynlG?7GTpHqp^s=^{5#MNZ5M6LQ68_)A~I(pDv&jucMSIw?EBkuY~B5!XF z*(5AlPVpC`{8YjRC{ly@DV#ZB>n-Fmf9w$@T=Y19?lMKe?#3QWL zUg*@wZuei^GqcTLRMO|V&=RO@aIo;q{lKICUc?$_P*Q&|Q!&^6Z)!sq3-^?I9wKCbll5U+Qat6q6tAf9~{9@juweZq7lZqeI|?lnoP4`Qu77 z$sc17oiNa{+HH88jOXd z@=~QL?1a3eej?FYVpY{nNmV}k(R=m!bJLyHiU(}NSwt@fztswSOJB5C%XEoFM#Kwl z)Dylivp56)rJb_xe?>N^Q$_##?gPG5Si6EIXZVg`;#fp{u%FP~k~pHtsO$IHrD20; zNG;^bbg$d6P*4Q@1OC{tbhYg#O;QDhj+JD|m&zn*8vB1!tKYP%@wY}m&HUhDh2rL( z=t>>MQ`Tq{JwlCHkxAyW=JNB&F2-?9=g1l+ zxO3_^3(3T8pMX-S6ysJ&Lo>0lCt*&9BW9(3FXrGP<2o|uOFzX5H3V!eUJ6p4G`Z|D zRNe%uK%ATmNg27y3kQ3Lhni}FWtJKnlduSP9i2YWDBSd=YnVSud-sOS7VEG|uhfSU za`N8l)`&&zUdsP(vAao7j(8avFnc40P;w~3quvcFjNlH@HR9Fh`K!3050Q_jR8~F8 zbE2NY%BA*yIMleZdc7sHZx<6?%R=T-9eQP@IQqIw$&T^l^*mpHPpc+m$<#bEMamwF zAz!DitByKKS~ot?hZB}Pm94m0H^aCRLoxVUAxQKPC?1mG+J$%4;=63Ti&QRr&7qmz*0FM%+Z|L^!0pFAf6|4oC8ks{7Pyh z#=Q4dn_Gic>zZ%tj?*ovvE_5{nWE9-bI2o@H3yIznTCj1ijg&qgaO zu{-sai8yIPKJtNpb+V9%o^wvLBGeK+I6o{IhFQu+EUax=b79NSB;AOMc;gB}$vVw3 zN{(e@PvxMM?uUufz`oqH|AdUIjIf`@a%tDjH4E?4yIu%YQ@+OBqcy4a6yu_K#6`)W zlG?C~!P(aGT~XGUVN*$Qt_&hb+Px48$gTD{h_{~&ajNBtJk8Fv?F*f@c#ElfySaQa zjr)Y{z$JHOG1iqy!r0r!FH3!H2W`aDZ{KlyZEYQ#TLQ_%z%_8Z&;OTs{r|E63A29W z^T`9xiJ%ONc84YAnJOY=;)F4#51KzJkjPx0*&5_q_0t{Pp-4V+>;pVH_}tx9Nz|9T zdrr!x#{K?Xbc48BD_V5Otq36|Ee6g_?B3uh9Bi;u^@~GkdH*i`94hhGt@R6v>IK7} zbwvvw?AeIhN>XVqa(Nvy*$h7(^w;K{OexCO=u;L6AXgsZRkgMFIx#9lv@|Dci!l2~)=zz}AdNe8!*}C1N@9vnc@;Mkk%zlBvmcURM#qGPI96B&}z7 zWQNiFcf=X_!vWiyrsOu_N{3|Y8OArIw%Dl(7koEO)E%s`heD5pK^KHjUUIex6Zi8&)E2 zz$%VBw)QtnPrKG?QO-I|Gv^uucJ}(BNs|>B_PI*Tz0F;pNJ-Cn((?T^*>ulP*Y~D8 z-G8It2)&t|7e_#z0{@W+W`TJAIcbx6EJ~nZ_PS-{w?<>Z3xZJ6B(;Uw4~t`{B$mh) z_lWRnI!f=W#Ti*tWtw`>8{#Y*>mpD8+^1Ix)AbMf>4%D&VqvXL{Ze0coDzQ3=h;BC z$308S1ik(+!SoLg3Y3GT(727oxcDTie$DeBold{NBFEcZJ6!R8xu3dz2y=s<;o58H z%ky>2gspxEBfv=kX7HYO_L%WU)2om#_22Ihf5+a6ncI~KN|^B@XTRJ8o|pdC1a?zp z(wg#a-q|Q>3b;VvLmU|Okx<(}S6&V>o}WsU-Y^q<#uEq0usM-W8|*J|_LYy7aQ>QU z8Y{ZUyiP+I39Zgp@=VvBR^A!nt>x*99L?1T=zlH% zv2AC}Q>a#bx4!6~ogw{c7Ih`|Tv!wO}^Irlv>0!G+ zwDZ8o$;F6-$2*Z7mOj$6@m@90UiE`x?f3|o29kO5uM;0HDI4d&_A$0&E4YW=>u=%F zYfu9o7qa@TlvH82e)svvhh>wd9BGS4z)6FiSy;$L4SeT#eJBCYV+eRvzP)(YnYY`7xdPQAo+&3&k$IoM zZMg9TWhbjO3t3s$*em03?{-=;UE31dKtzD`R5987faNZhDqIG(26Si=?s*s*FaxzMPq) zKh_H>9)Ys4EUj43u=-w>1LZr(AFYe88Ee%H&zkr$;X@E2g2!pN<)BL0CX#+Wbv?v% z<_pc+y)67)MDPZ2VEs7e(MKYHJrayXiGA+8*WtaF@GAA^X>llF^%KCLy%rQ0>I~W( z01&+e+P=7_NbZCr?C^PR0cdH|Vv``_3B4yd?SWTgi>M!{>fi?|I3{k+5MjX+u)>m2 zNZWO^Z-#nY1#7yUN4VQ__N1$NG4prfz^})HhvykGwEySfw_>E23oM7jeygDhC&n_> zZNKmX9_OM&!{-1`tN?n@A*-sJMm^ai5B>!0D_$qd0lT<`p#2Mp)tRl>RCXZpF) zGOaD6@I!?{j6@L}%qG-BmhhsU#jOofhql+hhP>#&7Rycy91Le~O7)1q7{f{qO~>Ladji^~XS5KBhrqXw-a{bV@s0MoY)p zigyc?4PN5mB8{r&T=o8M$_J?FNVhB-(G$e^u&Om`(;Z>Urmw$jmMpIepe&8&vMFUW3!@ zgiXGNZ^Gb=2M)u#>wo!TBfw3_ss{fF)>GF|h{&?I`Uo`BY+Y~t41{Vg9MmYn;myW4 zHjNsn0@-pxM%ge3=oTGsVhRIV-jj^A(+1dDY93rX)^AjJ7j2mfo}p;?QtzOrz_dTTlb7*->2PP|8R@S_JWP03*eFO55xMJCURfmK}6 zS<>(~mPne2cHEs=w(9Ts^Cu3j?M;KRL*o3VpFk!7xDK}Ph4`NjB8_4l5-IBk0IrYy za&SNSgy1WuD=jP{QCOYgKW3nT*98Vv@jGmbhuOHU@I$*iSZVCwO@ASLw8DYDDG?4V zS=jeLXp>^4*rWZmHiU9!_~-;EPDoMVbtuT=EYxmMHlMp6s!(57wYf6Z9*j_Pq%?~t z<*xx12Mmwz+@TyYa|Hqg3dG=23C3JRjZ-uludAnJ)l@QI0N2YJ$mj(PNB)!aaah1h zk3xG96dIr%_JD61VKzHtUzPJF<4= zoy~;SqYw5gpg1!Lx^|C8GQ3x4mceeELx3@19;(b)*<(9pITV-*>Qw4Bf}ZwdV0_7= zbYc_!g;Y$)=Sa|kM#Pv=v(@-|n9p^>0KD z&tbsOEG24gA==aikdL!7vUG~xjjI|kLm0Qs>PEEXE$Z-ALNW^Dp@9Mpte{lL$w;e| zkwOERw$ZrL=j1t6PKlzg&}k)|-zWSxt%9)d+KGcuupHEMEV z&nk#@yX@wv@2T3%k1E>g#YYM(IZ}f_=j&hajoR5AIk7vCu)l6I2=Aa=G`JYIj22OH zFuW%CZSai(|N+_j#b0szaeKxAn?Zu()l#h$~TTBmhS^cJa)qrD7vHSU?2iiW^LS(oc z(1P*x@^tzNcKN>mWAi&7)hZ7@k_ zDQ@#6iSXVDC)e>w90YAM3F11kO}ryj18kWv8~Yz4U%~2I<874a3RJ*{2vC_xPDGj? zeh)VxY{S$)Aax?lmlM5AvANi6%QY5mhq`$#9H9sN%>ypy`LPpHVCA8cf&j#vrr;8c z3o>k&>@%9S+!K&R^LR6dSFkCtUEt{A+IkSR-q|ne8uq%r;42_)6``5>%D;4rZ`|R9 z_1MK~E29P_-)_7*5}5VFgjajKMNDc;(C~zg^IJZN?5X99r1!cATiQ?bh<`wZw2b>R z+!1PYeK*3Q-*b^`tb1mWH)!wTt@YoT8c^lHhlD`)q?&J(1OWQX_<&=dJs z#gLG?R@N!f5gsWjz!d#*&LFJ4Qsm4&ZETYt32JNN-KnlJyx4q{bq7r{t zfFf%p48^@exUKvvm`NdfR>oREl59bAjV^_r+bTJc*nP=&oWgBY+Sl8^TGd%mz#FAuy5@vH?dts97?EhQeL?W=V?*0~>ulBkCpE~3|wmI;`@T;UL3g$=u zj~-u48CnsWyC@wdmk&o`a>ewS9kcGQBxIwkIgthlEpG>Z&Um z?J~A^#Vw!;k|YjO_`s_hpdR6W_30`tI#{A^Tz7spby2#Y1%z+WQion=(X}l2l~}8@4;GfgSkAU!4r8j5SzPJG*R&R9gx;n8nTiOjpQ*x&n`Z`ue)&GjG2up9LH zHmSe2qdR-PMQg#~Bk?jQvN8Gu>g?Rcv1!$d?-+`RCWSxt;lh{3(i-b1VE}5`D~k6Z zJyjEj_1catk3&;G;M6DxK}pW&#;ot^C=kh%uEQkYW{Li%C%w&J*P@x7ctuWlaR|o#t z_KZ>s#4QIsF986KTzgAnhyE)n7lZfEttBgb)WZ1jTqcm3Xj;X7-0i;WL3J=h; zS~31!kRtiY2`ifl9LL=7%;SL}AZ#^>plmF{D&jT*9eqYWA#dsWE(vr3u9q~Lz=RtH z<5CH3a9a%5$FTV$u!ANwOBH4o$DAljG)OZDAV@w@H=)%aXs%Im_#q!fH|o@8CTsWM z8n=EG#n@*yw5?^MTL|Zl{k%yhJ zTi5+M(eq?K9Cd2F0u4!Tmh9lRtD~Mxuw5M?BGlcNNZJ6EB^dYPQ8y)HepHkKHdLCYR*!9jF6`XF z=J^Q<<)`BknYa<_riZEEW~B^wCU7-gNIbKYCamiwbe#TD^Yw1VM-g2;kisYwoUgVm zTKQgHns9Y#1#|J)VQ(6zz4(2w0@*5UpCiV}3k}wKi3&=23SN5^O{YwSiOYbLQ!?eh zcpbF)d^@)?0qWAR0Z_u;K(_>2)F>?;a^PzJOQ0D$mZ6$O78EgBw)2HY`=yGXi zDj|~RQ9VuhaSYALfO(q^3G(#fmVlE)(>yaV;ezfRB1`nIP`-EJi_MbrhqfXo`jSYR z`f>*yz3P9`pfyQi>LRh7^pm;aO(622ZGDqd8ezmdrHb)3(TPO!hC8~J+*C$?Wp7PV zIY{2qnt76~+Klg~weccu;q8e1<#-*K%flG3@`Pcg_WlK^3bNwqG$x(?SMjUuo9;?8 z?)%F?3@7c!F^9!4^LMK3vJhj_BNkJMp*Rf)i!3?VRFooGF#u(wfuN-z$7E zzXBfMwRsz(hu?!5Yv@^q0<=2MK>=>!Z($~2gMe=bur~<3j44W^FO8}|XjnwUXT;pF zJd}(PQ7tC1>M4v19qooDE%STx@16XS>5R|f zS8$>74=tZwDS!|-8wU2n9W)z598a|xq%u2|KjFx*Q-~40X95vtXc#3vCalD^E_RWt z!4GS38}XPC99hLvmDj!UtZjoNpQ*E>H^NV5jId?&Z}_rn&Xs=cVb84=E&m{7JfQ#` z6^37IxC?-IVL}y)(L@7DhADXecwE@_)+W>er>ucDqTX=^ejCRMRgl$f5Nx$Nt#N(* z13<5u=l0H{u1=*i-7G@t`tNrDyM@&*KSp?%!O;`JHT9#{`{ECEb@J$FP|?wEi%X4I zEA@^0yA2VYhjbtmC?bSCV!<5GQWeG-Rzq9hP;Cgfu*HNL%2ZpT(O!mEXl z^I{J2U!jD(W}~tA?G`T@tV^ORj_$_S|$GJvhN{@6ZI#U%>M*&@ndzxJ<>j6#Kfa ze)~99-_VF|4#`kJ&!3G>uw6>|QN#Utw7P<~yL}4VJNsKB(+9rEPs2f+8Wvbb5#kL2 zMp8!asM_ZmqB>t*zoNW(4%;FTT-u;Uhv*y%nIk)@D&VtpfJ4EFtuysoEn2dH&v zomU?5$~zke@Yy6!TvF(_*i3hOoya#>%TYW}N!MN$ZM6{kjxv^8@&-L@^EqsQc#&=) zfH06;8MxxGR$`o%wV097kzv+Dhnruz<+-XKJGy=26fG^XD27%GFxp*pJJ3&Gf)4y9 z<@|Ta+L)-xbqHj*_2nlK*it4kB0g{mMbE~ zC{OO?*xCJZM!mCE@OUvCt+@ZCNv~dO7nNQrb?Cq?G}!NVenm1VWh58&P7wokFFqLC zFh*mT1X=O)q)E{{gm1 z1o;6rL{dM(kXww-#_(>H&2|eYVDclDLUdqUo3lBV4e}_IRz|CPys)7Cr04Q|H``>`m}8grP7W!VYO4WytY4ZWdk z5pCqPW_d^B?i!Htiu`X|p?XwD;=rE;~LofCx$VI4ePe3l~T`IZZMtoTg7TWovb;OttSfu%5QR$8|bI# zKk11RKeHjTK7+pwCyl?d?bL#pNN~ORQ$UOD9t(#Ib4QcpP`#a zAF@*o9Y!HKgcF8!RYCkzLkBu(f}1a6@QukhTQ;BsVpE3^3SXe6BeN<^*x@`C`nbxe z(VHF?gQY_75VV743N$ZBpIPrYBE7-mJcFE#olTZ}bqk`f2*M%)bmjW6VLpL>u|?>> zZ0Sn@4!vQ05bVS@8=NxFxXwWnCMGeQxWi0Jk9l(k!pK_SMq$Ad03QgwKP9Nl z4oJn!PkN%CBlggB9u=V~^@IOFCxS8M$&GcyUycoCnlqRdyA2cDHkS~lr7CGyT@S_} zZaIaqu+{w(EhFdC76;Yhy8!rd_KFA8+~ecZylyK+!1VeGr{h+(kS};3Qj(h@I9;Jn zgf6%NX-czY6cv1PRN5)P) z=;f$`U`UIu`g(=K|I1YY157L_Ez$zwxF-~7AfNS)Tl)V#9c)!<*ibh8M` z7HIer4s6dDR&iVsC{BSl%+Hc=b2(G;B3!Fg>EQ3d0Lttk=!dG`lwcWZs1IR^{k=#k zyyc(T+sbST)Pts+Xy4NTx(0pdyJEulKu(+d6q~{DN!pBeal3%`4SnWOjfEs)TM&9hB~`OB2Gat zL~>C9ir~il-w=t%VK-(jm3UIQuGAYl`sgsTSO)FA3LLiZqH_Hn0`6|1AM3j$@d@@p zy*qlnz864X%neu-4v}3RBI^J|WlqC1>!oq**WG%z7ccT;6N(>YL4f!*n*PIocKp9L zQHF<=M1ty%Zt4i2tYkalP>oI0QEXon1O^87Bj4` zs$oQLx7{!lr(<+;6&pSh6a-FOFJ9aK`|g31W<2)F!|$ia9-!Q4UZv70AVs-^^{V2AgEVE2k1oBuf!5tXq(aBW6{{CHpc3usj2 zwP!P|`}xO1!Oqf;z!V-jkEWF3Cs^ad6?j10sO5+}ip*W!V<`>$o2}>-aR}pGhL`I) zB`7EWq%QWEK2-c`FR2D@Fj3kPM^+D>J|xtQA?1xqrpOM8>e0Q^OH5c8^C+ebO!J(h z+Rty$e*rm?&pc0$U!SJy4uNK^+am(I?;y}e4mrRairfc4a0JNoYIA8m{u^+c*a4e7 z=g6MR-BO6?RnF|buuj3l-`^jCfcjRz&v##2@Q$HwmmatX6DYRaVK17*?dgr-v`A`F z^*hTmc&5i}9rPCf&dZ^L{BR^Eb`MNPLkR;efJx`E?gz!WmRSsP)iH}#>bYN_9_uy& zC&+o9S<9T=+1O;&fC{DT#;N5XU9jjK<(Cb5DyOrPh(B`KuoiABT%JppC; z@BW>Dh@sEu!bv&IN2nPS2it4D4OP;ni22>`G~wZB-jq8T#9ma*r2}d0qUyJ=?b31K z-rEZA5zmwl>TWfsY`^Niz+eazJyuU@9^Cfca2}JH8+j5xPF99q;Y_dyy-0v9+Blm|tE21x=Rw1qKc=#mtEgCkWR|GX#;MI9PA$3Le2c25fK$pAWzxHuG6xMIXed z`tM4^TNxio zV1#kyMs;NhXuDHQ1mGxuPD5nD5^gqo&IxD&=`$uUxh^3r?h%H2>;+@gpI0Zj8_i>#`Pe)ErY=`wnc*Kd~~HneBCmiMVYl^gusMUdmk!8)>BvEt;1 z-ZbY*@JCdcg=YYoruYl|UP1LBC+w?z<@@4d%&uDv=VfS_F?Hu(~^p7$%dS zmh6^FbcT?3nTMiqHE*s7XkLei<6P}!xqf3sj%S1IcjUBZs*RooFrd033+>WJq{NEc zUpOHO{2e5LC@mtu-@{nodQNH*aFKM#*PzNStfQZI;@RDJ@qIyWz`2NizrO&F4cd^? z;#CAp&n?0t)=Fxn%%^!Yc@lD{3rG6kz8tjT;n+}E2D+Z9U#r0JrcepndIme;+zn1hbHT}`c9gRV3 zO9yy&50iT&CJ|A|JvkGeiQ~rmj`IhJ4LIlUAf4=!zB*h9Qv~Pcq!c}shXL}LCVjGO zK9>BD?~k z8G8dw7Zgo}s6j2$i&))!K&BF&zQrfqB|1`banrTx%rWPV`o}`Cfj_5s!2Q_`(pmPd zeVmky*tUKQ-ufhZ@Mdd~C7#82uA-SE8Tm*%$DI9k!|8#JkW@eBm zY6EZH-fnLJs{bHzt3W0iOAkpLv>S^a`F~Wsg+o+Pzx_>jcS}n*NK1D&Lw8GeNq2Wh zgLJpFba#meLx(gH67Rw1x%YS9zkr#|nX~u)uC+c(Il@9|W0)6Ld1}sD0jikhJs`9N zN*nh(4%s!h9RqD8-$skxP$nIy%KmKHz`9xUL6svLq2$%lmdxhaGLPGCLyX%_R~hDx zAwHTjmoC9;Ve6QR)Gzr??uw#B&oIBD`6t0Yy!XZM=JemMi?5>cNf|=E*_^NO##<3P z(8m;BQ6PE6OtDjc$l*6Vn&c!LS<=eo6VhX!VYaUCt@f`^)zD%}av0nA1xhm2S;JMJ z*NVoY%0b*6&H;scRP;Y-7H%@XC&M%nNqcC`B-|xZNA;-Em}TA*8y-MS9FOi-pEK@) zaeGpnvW&#?|9g`5%>`C=@MG>N!M^&ifP5!z4i3%kTKM*`CQ+SISS{z zZRzW=5QgTSjO;(?9D^HhmyhM~-&eG!9pmx0gKw7lZ(zuz19A_QsijC8$dksBN{{kO z?>;3y*Gh_BYN7*ikh*4PWFn7o`mdSvRJe_mmXxpP{)ggkyzB|17Z>xTDA^AsXEzJV zD;6Cwkfuh!z>h>sr-HtRA#Ve?hb|h>qs>Ld3qM-tjFh*BVV&Z;X^YO&;T%wlH7dSE zY;tLJQMa_F#P+)%rW}W{-bQ_tt3a?qh0gb42{<9?ZSmg_)N^R#GY0)8qh`#?e8EnB z22}R8a;3`C=<4?Gr+`)~sQa`FWtMd*`~J%f`s)RHqA06-@3J)sAVK>Wd^g-3Hfk?#|)x|`o$$0GFCaCS$%_sFz~f8&!RGHiX_VYT!hVmy$Zh|I3F20trp-wrFIAU);^F#_qyVUdnfYi!(O%b3sWU4uNVhf(uQdMWUoxYrKGY z(0xlW4JugVBSzmzwJG;rXmVDfSgrmXbY_4UM@KTAp~g~gRw{i-3d*I>#_6hA!cYuC z6y8#Cu*I5#aSNQ3ExRSKal#K0Ep>JSZ;@5 zaHg*235_!R(oR+OqSn`ddb$SEME)y(wz(W3AVeT!B}6s8ZMqL2zF!4Ts55*6+Nqf4AZZyqE;U55;N_%QJYV=lmG5pol#_)liaAb_cYE#l%aYME?sYDCBHDv-uO-~x zQIUI-mR0>Yks0^i$;m9SZwXzIOdX707kw#;N6cYmH2@cugI$UdGC+@uftXOA&W`cto`gsi5!8U!FKcgZX(XX`T(!&*1{d`~UFXrLe zT=TD+H~Y!kC4^Y=Gl_|{^}T6Zj=HiCt|B-88|E6-LgC?W-52pMm+2Hqm)KEDZas|Q z98xk;pj7zpOhMT^AQdcNS7ZahurW4cH1tCs74=xdM9GJ_pITEqqp~vWI<AOFgA`~n2hW|?7HGzjV4 zU7jvSIAwp8QywJp-WTAJ|qjtF|RSKlSFZr zmcxx)c`68S#3PJw)hO4u9cMYv^Q-y}vP*Sz%+EfS)4jg*Y{A#pe zYig`B=UqZ)Nm};=KTr3BT25&CnwACjN>(-V6MI3z?bO0t*?v>B49fC_YH)H*!2n#^ z9^Q(6IvoNos|3hmtm{z+M}E2`)dx%oZ=*~vFIq<4pv4(A-&CnpSa$ASB=0Gr47&#B zH%=Y01T}KqcKYReGL%=H-+G|I^+SGqw!?9M)evr1NMeoz#2545b@EK7|COWO29o4# zN(clH56amqxz4g9uM3qy9z>TIl(FA=zY^~7vnO(t4{1*vj?@oN*M^7akH-FZI{)OS zHSgt-TOU~?YD_^P@_~~$Y&CKJUId(Oo3MG`S(C-Yf}3_eMM%JBoI^(#6i>`d5tCOz zyv-PM>_%hI!qgo-f^6rGIW~yvE}$^P&L-ZC7lkV%UUb35J;3iIhSR2$)lu72>CJ$N zz5gDJNlL^pz%$Q6qF*tV+a8a&@DaIcagM%L_Mu)SRi_j~Tel-@G)bA6(!HwK*0%7Y zg!*=06#lDQy+j;DJYPyoS}F3-ut2A2#x0^3zU0ac9;^B!ya^R`bZ$w+ktW8~TGzy=*i!v6rQg_KP)-FhQLL~@ z4y*6lgiIN?^071gvt_cM7rj|csvaeA?EoU7O|>!~MIT3j<(|IQ6wLITFUzv+t}(=) zs z)5*Te{Q*t+ixkJt zBQj6-o5qD#w|fQ>g-0ClG3*7;RkhYLU*C_a0{wG*D8i&0O^8jQ zY-V=5gN8#5Q*$S^C#&54YVIV>991HU-zkDJ4gKYg5NvUc4Mti>=-7RtF!(RnuZSF4 zh4%)za_6%mitdlP_)N6bI_3FUkf`UyB5v?A)#*zW*vu{7E;p3K+ZRrK#-u46pZv|8 zOFd(hCx7YzNYXfyBA(K}MM!`L=idg^B+^&D-YFq&3#JZBjIdJGjq;URg=q%NWrWVz za&4BXQVAvH9G^lyfG$7zo%h8xNHn-c1%++jc)9Iluz%=Ef@eBPfS?o4jqX`D&s^r6 zC1yWJCZ)rW)S~FDG}3`bi)v62woB57E#fLXWW zc$7v=h8=t7Sef9VcT43&{ogs8))nrD*rRDSk)u zr7&YbFQnOtE-f#4Y$BEF)5?v8(ctiAlY9ot+aO2ZiyjpZ4aG76W|SIaXBos!qhEhg zM!?jO$_E!#B)`o48XrT}e3CHfz+iVo-_nXx$V6@(9Dn2b*9QFAsF@+f5R(TRev|94 zu&$ifeT7ACpMLAqpOIO(Ejausl?PWzw_TLL2a;cZicp;G1H44+TUAAi2K&q+1nTQ< ziZaXN$JGdXkLVmSz^Zk0Irj5^9wuOx77GU{5jL((SEZ4f}0&XOD*N00JZ0NlGl! za83r94nh<*V*sWv6cbuP>^3zIYl}IiHV$soJx?4vn9LcS*3mRG{qgP!GmQ_4x{a~6 zJ=i09$r^3FF8`46Z<66+wsBSI=AYKKH9t+F6f`d;fIFVtKCCv*HN2>o$&hc}H8K2= z%Sy`|qg%Ru?Q`Z*>h;G>PLn>o$|WbCXJ==+D*Nj zZ$Qj@K8;o-olZS-YAEy3#!%YSfZE!um7-SBeBFr*ydJIP7 z7=+70T1UJQ1n@chD0+vvRqLgy40^UrJ|0tM+8U00$!hL7_ZS1UpQsUXsx z#)@U+P_C4wREl&jJ(Z=XUkw~#A+YB1)2Quu`|Ei0FQufvZ|UOf@E;cdQClu6HTm+& z8!%@*)}l(!NwOQ-djLptZ8>kb@e1-ql!>Tn6(b2!XV`DLC@Yv|BF+w9IwqW@TNj=d z%PMDxvzBdbKX;wexZym?;lAg#bF1X|`*rLqO`8IXllA+dsu=9E8^!Ouk|}rHKSqQS)>Mv|MP0g_V3r^Vh z374WA=>G089YWez@;MEB$OxpzrI*~PB28_{F6sE%p_j5}evhDV*MjmZJN3Vpi+@j6 zSS-Z&IC91hhUCu=PAj2s;o?UF9&`bjSj#JRlRsGxov5X!P$eZERESE80|USsikmv> zJj$I&1DVvrKNP~>lY6Bn6vZ2mCTMCoTQiSK+nBE|9&<`L$5Ll(zo+wD5IpFnvulue z;cx_L&IB3FRMD_dO4e4z7k?+yMrwh}D6-g8*z$w!>gVvt0D zO7R0ef3qC7q9)yryo|}l%(%%ly%?%`*Cqd4PBkWOlQxrGM4N_1PD0zkhFkbjhdyrN zZ;k^s`{FV6qoHRk#q1S-ZXGX%$&Dw3c|+Fy5*mb?Q&Nzr(If)Y|Nid#V5p4Qrp`46 zNvoG4bx+s8#QNX`Jbc}dQ$wFE81mwA9PQKcjx5Cre2e4@?rt4^NQCANqU@#{Oy*ILze7;S7gJ%PhvaexTxYJE$F17;$ zd0in(!pIw*H&Mranb@wPK5}ID&}6-Ju5nd8{WSVqa+URnz5!+bbrSgz7|eW7-aWY% z@>v*d^77J_zKcswgMkK2QSJp7{{s>Ew|Z`r#@$7ty?epn7NW~vzy?ZVkFpdC3SH#ZQlM+u{L+B#e((@(xsFh7pi(`bQ1uBh9du5GL#rpsAJD?1eJ2( zL7@NgUafi)uGs22m^unV<6UfMOZlnk@RKx8hW*`aDRwhs2J#*tH2d|(F18h;h~GX_ zF$Rt3f5gN|D9G+Tt+(A(ejcPyXiVSCDF*0Rfn9#Up zdw~Y24tN0yNY&7G(?^(gQ~pShy7VSCBA`md12H2%$opjwk?j&7R&ck9>HUiDp=@4G zO*V|mr3qM?Js$1wBziTZ=ttu}EGT1NWnwjbWKgo(uFV%yyY)x(Y#Pj+!3OqTZ>Y=> zKr8`PYbyi6sijfyyt-++69{aL!-d}(Vy4E zaS9ZzJJsLB>0r~<$IZ0{^*pPdN@qJ?OYl7JYDU|A03XLms(b$crkh4LazFm!_`4US z+zBHe4Z3DB@+z%b!uW+RuJGs){6GQ*-QL*$IU^M~A`pCuEHR}s+cI^$t9>x74;x(m zw%_$Ni?(je1q)^v2a>f5Qb-o)N3F$LPrZX2m$RUOOe*1p`=JZtOuDc>bQ%`>c_s7l zciUhvYF@2&_W&ec_ybW=#Q*aTdP0Jt zG>l9DrK3EL$B}*Xk|bKbY0sJvHIBvHBA)TyM5BD05dsjbVcAt&yVv#+^&%O~^i}RQ zFu_jc@XZTFpZgF+?=~y;7gw6DVYG?XH~CT+c7WUaT5{}Vbwqf791upMdepd&nhWb( z;rP(Q+xJQT`$HF|5)o}Qp6MGR@GsWAp5wrFw3w4prxnE@pn}0b7ptnKa#G1`9DZpRQ%yNncCSdzm8i3F6OuC7e8`N>S}$4O4|28Gd#FDVznk6 zMwr;$V)ok(!@pu>vnbZT=Kh-J!|=%9(VRu}!X3g>{JruimjHOFzAvL!Px^O+)5E~< ziu$#)();4hp2cH}4TO`J7Q1hGvV{?Y`*g_3<>G<_v}KFbDL|7vqD{ca7f6k*torlX z=?30^e-|Alb>5Od6NDf5*0+7x+SaW&3fAhUt3Cm!NmP@{3zcu)|I8fji&jK#QZ35P zwccHWbDs=zU_z_^ZiOcLy;b2pU>|4$9^f-TV^!n~_h1pmAYQJ~v&t6#PQQX&Tp9|2 zap2K<*~wHMuvBG8GrIyH>}Q-auEq*IfkK!wD(mha`xR+JXV<${A4j3bmvIuLP5$zS$HonsE#C=wkO|ih49%kqA%*Pw^K+ zel(tA_4%$bS&1j<<#$*Z!IZP>6MgZ{c@VR_+I(3}E@XPH_V1o2gPvZ8H8(aA6-8~U zq(Qe&i=w~7-~dG4Zi)6nV3Be!Kx%Rtnoz%UuE0=q1v{rb0)|cfU9I0|4kSv-Ct)jU z)&67hhDD;zD=l^_98w|KBf2fNOK&MNpyKi23GL$8rZQ0vNX!LM+~$y$?*E&Oks~PZ zK;1y9RocA7uMUv51PoGOAebASg({|^HBex}pC__~2{9V<@>WAMbZc*6ghYw8jN=+(5eoop%qy$NtSVd0`&(Y*ltp$ch z7Iw-wZgV_&-Sa4Co%rF7zk$BgVK|aB_Q-s&0@r=i5hg5IhthQA@9}j?3bOV9b1@j*wUZF7_^h7o;|KuATWPRs zBp`Xa)B@N4_7|d8!icpeGa}a{y%5!q9Gm%Ftv7wf(h388vQkBh(j=>H&Aw^M9^TaY zlm3}sW^N&6*{m2yMGJq90=`Gu&BDBpi}a>$5Sn#NPPpiF_5?=ikHOA%VptG#329=wF)k7MbI|EHTm)P z*K5G1$^HBC)I5enydS){AqJvXI5$;1aoFf`JA($^k9zF%lIYuYE-mywo?1e8KfdgI z)CfJR%qkcU%q+1#H-)N}os9orj<8=Ec_{|$f?ey3%m2(?!*D?W!*D<)0LZnHSf*O? za`UuA7m5}HK}cEgQQj$icOD>rQR#B(Ud=^gn%L$1xc-5}bHFgMTg(`PIDUK;`O5M) z<4Y4@IVZO-RXW6DaRzjp`d?xaOw&EIt$ZCXk0;ET8oF7=7jm#N9G4Y4)Y`dd; ze|+NN?pwJ73?Y_HE>n^8@xkL{B#63V7n5b|`#>np^eb1osp)_q$X#@m%Cvf-5o=XH zB%h2On<6uj7EX+!*4)sOLWPig{Fwd}87;4oPJ74#N{Vhf3kjU!Eg{V8M{irAnE{xQ z@H`amTrtw(WBaVHw%O1EVF}7oX&t)|FrRp)RjIZQDZ)21Zo8+nX%3#n`t(e)`=saU zP$F_?+Si55Gu41BK9P()2mEDmau2#ujASu|6fywQ%xMm# z<^hKhAt@1#bb$Q=)%mMA&3r;HM!n(O2#ZjS8b_4D;QOHhH4-ok$p%*8F?p@UjB=N= z4|trx99@>h55<{T0k>2GQ-Qc{_<5B)4t&8Mdk7eQP3IdeCXk-B@Tyj~oZXZTLck!c zN>8j!U3uA4dWwQlX~pNoYAwr3wCW3%!DPY6DO26mZ(7TZayY@r64Tt>^I4VT*dF)> zZb|UYs%<4fB^jcOUUdxkw7B2^cx^n)fQsNQjs{~=IUR3wLYuo7j8K2srm zs7GZwW02G$D>2zxyH&@>t$ObbmOE;I0ax2o% zAr^&@7otv`Pzl}<@<&64*TlOR=03zo=vEJb>B^5cYNdBZ z(#a*@rw!$|Gaf5tm3S9@bGp~uE&CgGv)=Kwtj|`3d%7D&;RfYNvM%_-!z2h#LSh(h*7FIHr*F1mySKuRPDIKT3G+om465Pa4k1{<oVyVgSy%X%19^=nc(S2l61 zad8f0*HBq@`1g6(mWe z|K7)55u6%0{qp7XJLs1&bzbEa<3)`l5sXRwR7myTz1eb{J!es#`k_Yex(Y7t(E&(M#BAJLUO(hQ|m)!l-pH%eGo#u7A1w1ZtbRYRn9Y0olSqoN+Mx z?T*qnNZA*K=8QX0QXCF8l=}3$kNV>XDdYlsmvR*G0F-L_q5SY6-3Yw!1*G^NXf)nF zG?qg<-{C`?j~i)K^)1;1Odb@&SeOdp#wz7Z44O+r>-+==t+du`Lo<@fnk#GB;adt# zw{a6NsKa{~wLWcvG_G=v*WlGJ;-7n~XyJm>ng68ViGof{@u0&C`uH9YQ}iTlu+~o8 z>wHN)P351vIUi*oB3G;1avy!XV%!S1iZ&UYZDST2*FA!puhnrO*8Z|`Xz89!$fQu2 z>H;*e8Cu~otqup=C?RHmZ`MMCiplx!zn2mP@qx{5H#Xrng(@|I8IHKQ{8l7xitfRp zZ6T$IL{ZO`mxK}wB$&w7qWF^E$MW}^*AwU@Md-Hc5}tCIG6{}Qdn9-OgC%i3?nXmt z?W+H(V8wr>9(J*1K5G;SVMB!P+T14b3LKM&_uR}d0XbX=Wy_;8gJ@dTlU!DyQaty9!V zm;e%hCiRlMv{x5N{u7oiybTE-s98Aw{hu&{AJwoKL7y|COPPd^}E8R_Dq@#aXZD!n>% zCfWFb!?pp6IHE%2fA#%lNJLEiVbKc=}=Nq2{fmvwk)fwMGl z)ZWlz`}1$NT#tuv=-=gMFC=2v-ET+Nu`>WhD4mp_Pt$Ot=-}b#&M+TsF=hfY7pjxG z3%-G|)blYqYWYwOD8DLJW94uZHv_1Ajpa(Wcq{~lIh2Dz`v%sHoLL_rzDH?%&tRd+ z!FS(>xd;Guy4&%fV!J3h0f_YbKQxde<&l*N7DMByl1D=(CDo0;ofv-HsWrbrx0Nc& z_^P=5F1*u**i=;_`>_!Km_NFUye}8>=Zf^c-hE`iNnQ^&uKoxkys5W|{m77BB`Gp! z$)%GQ>3j)3^JRX_q$rEF`5_a<+N}M>kqsu=tR6IbQHVLdF5QO@(xRwEt{GDQ_3wvX zkIBYS%!lJ>Qmn_3N_gk&iAll}N$&`}|MOC~rhXRG4P0#1e%Nq=hF6s%%5w$c&r~j8 ztZUH=)!35gQC$D?v^qbUY;(Q!GE_ReHmlrduThYy!xytcNpuNefB=bd$6{w;6XmCC zV>j>A;v^p~a)Es$W|`C^Iptk zmI|7mC#a5H04r0fNK0gjMQN@Va#F4LynF)RK0$Yipu3`iTEA&RezPd**N1F#L$qjU z$uWsM+lWxJv`{UAd8|tvC)urB6Oq}QY3{ZYGRUy}N@Z(i4B5#5Y!at-fZ0+wc$nj+d0$|+fYo7r7}V-rNv>YSmy6xfB$dIdpmYFJn|)mC-u2^n57orsZ`7Sr zy&SzOkRfoNp55yQmeMlrvyE>|pyjg;89^Wnid9uJcrdvJW98Cusblf8+Dd=?e)2@S zPzVW8yFfj;{?HbgQK@uP{rGP@<{Rv`{zjCuh~7v{dKWj?CC_MXiY1AGMggUTjCNr$ zamKOg&yw0@a0Oze8W{e#g9!3&#`=mxQF>UocHs-Tv`_fN^ z)thv;d+G&Jo2b?|-G}Dw5P;3X;B#Ca1AI^th4EYrw;&axFl-wHWL~Hs9IU5J5Hq_8 z3nDev%xZsxsj7CzBf^?nJ;rvRVyjhDmjTVH}9)$ z)0Z${W09_dG4uJN$2uLpl#>jBX=v+ThugJJ&SjDEh2QbzRMSXAHazT)+-&lRt(-15 zAu8l~lPAHiKWGKjnU%6g)wqa`Q7!Cd9KcTZCDucM`9J&jTQcEN1j4`6BpQR!2lW=$ zS<+}s3oU+73&`zZIkh`{oT9P>uO5zjiTrY8^!|+8NMoFKTSZdHhj{I=T!8m&y=4hz zP=Zoieedj3j_HK%Z%}oQU&*CIe7}TcPk(xoPtg0uv*&=2?*p=cN zK{W=!a2e(=$|IoeX4~I2d0o+-l2rH+2|!Zif?YWZxZ^%$L#{==&m$lQK8y}I0)mpf zl0JFb7jN#k^SG;;#O8<!^|s3FZ){8{8b+ccU-thgC}n_uG@MWJ+?)id`GqsY~l> z?eOOf+akyJ<1ZV;Ug9#9%S3`7zH7t@aE;pex|}ps#sDT* zgivYb|0~V_b1WPv0(z?n!1f&NW7SW6t4Y8ahA8}2tO!Q=gWR$f#T{yb5Mmp$D*zjW z#pQK-ytFA>dujnqT_It7Rm7s(7&?9&HfZ)$FdJF4;1&2bf8H(Z{$J^EjZ#H}Nx+*7 z5Re9bR2%hfUTMo^=xp%(>ADBU92w+B+vsbhE0wf=0C+?JP6!A@lkdEKueZ=ub$g#i zXy{ZqIC=t=$4aMAnybrn3v?lN!MlRE!1t)g+?D&^MSH{aLeLt|k&hUkW$?T{0U-j% zhAL96YJYcfEO2{taFf@i>GqfPcOG6`8qq4kpr+@? z*-m|p^l>n0{bJLU>rO^+Fvs_n)Rf-3`sdvKZyF0O6hez!jS)`%GmuDj_?~diSc-CC-$#R3_|k*T7lRQvIikzOSfy zCh+C@_k`T>9Z1RirlP-FY^)>UZ3!_a&Hs7&|2y{Yq4-QOYoH1{my-w7{}y8tFu^NT zp^}yl0W;41PJg4eb=xXLtv(g$fJzeezu~9D97XI!fFw)KXdv#C^b?reDPSvgrBl_~i(o!mp{cw8Te=hu*C|MG8f9K&jQMGWFJMrps<=<9YZP&i#nr0P)(f^Xop$J3@ zAMnippc#i&phD_o?nNz*GZw#5x>%2j!i;CdWWyGg@uX0pXoi*G%+SP6>grV39z~EuK@ljkHHwJgIY0pIg4Z~%6ch7K^Ah4*DHLq=d(FS#Lv$)zaE+Ao6Ylnlc%$ce=Vu= z@Yw|}14)!B+>6Z&(Y3`+P`p&-turmsNzz;NdqBo9WZ!%IrIb70S#S;&jaj$=KSTJRtXk(=Bx#vq)@^!;lw>iG3aq9xcZLS zI%Bg?)Mz*r&ywO{9{9vzMBv4DK!Fnkp5f@Ux)|2DP-VF!S_ViQry}Jtbp(;0c3t!T zl04eZB)K6 zzVo!D8HG(c%(s}yZ)e|Gl{?~Zg!kDK*uxH%0Y;aOf8DpD4|+3*;^yu9A=RCcVgkoQ z4Fal0Dqec0&7qA&hn2>Am18Qq`e~$_RSi|zD2C*~51J)0T#5VbyKzHF8Nlg<8v$sy zn4o28z8?^XVnUgk~ZaxSz3E&nJ2FK~TyVUaT=-O@ZKK+A1>E9b zeJR0pDc95QL_Os2yfoP~BRSm`q|$NNgZ-N1UdGa3T6}$Wl2cH{eh42r)V1hm?E_%W z-v*$jU0)6+}@+sZWySa4~4F&DJgUIYzc} zpI+09Kr@uOD3xe=-r#RAK?gr|J%VDZKHU-yRHaJO07cLi8;V5^3Cg0a?pY<;1nhjt z@6YkD9rRTtm+d|e^npAn{+T0L3o}Pax$77J_|h`wvm?C! z&<0EQ&3p_?=cwIe)b~4}LOr9n?h!Q=CF=Im-(}032ZV)p-n&W1fKtc6=w);fj8CpD z?2&fc-#Ff=@Q$@}sAXv+^4sI^2iuxY%W{x(r2aQ^f{S3qE5B>1qQxVGc*7(!-iYK_Fm?1~Xjo zddw#DAJ!gr2*gzgEwgT82?{@Zv)s%gCMKviK*+EexPBnl>)JW+(qQebS>^v`<*^_K zBf;)xn#Hq^if6@YqnHCUIEOx~_EwMIAZTIHs26}i+GDAvbiu;+y7Td+*yY##@P{il zd!pH-Rpn2X)TGnCaPi^E9y?xZ6Na?A^aCCn&Lc@&3A|tgrcPn&$-7$5Ze$9-A3ruN z)0i%I9bfhxV{sl{2uOpbw49EQ<2l{`v64v6g! zjf2t7k{g?9+i8s2;MzUWSy9C6k3dG#1VN!_DrfVCmX02cW7xH?KarwLYSz@}R}*0B7o6HuLfDd068$s3o3n- z&XT77c52Mn9 zk@J!}od&L-t|hxu;ui&s%Vu6N6(px^RyN^9lcy}qU23ML@PA|jFEO6E(f?u75%3dW z5t@Qs;MC%6kqXb(?dtYmBV2hNN`gkStny@=2eD9F+2{&$E~OFMyhPCbYV3VXTBTu~ z&r(&rvqoamJFIwqaNE`Z+ob|oG6Qm!I2vCl8KdityAvQrRWa(YfT|?mQsJN7@9CAH z{rQY5!$(u~_9&mq&{0n5x}`d)iHIc&V1TUmH?X-E(9iQ0*OKaGhrDWZAvA-7%#>qi z;%VJa6ckD(?E^&b%=b_|$OfTpiwBNyBX*N1%Q?EVz4aV7OLnK{I+I^hYYR-(0@7!e zC0S<6tIwVHyO3S4DJG;|gL59_9b@ZlnG@|sBpHP1s^f|LH7ly}RuRJOd=;cxs+ z%I0_oI}3eMHmk8IvOqJ;`nYbwAnW(cPOu*JQV-&<=zVD#|@_^v+wLQNwa3Y zlG@m!{eWFty3zYI(Ypa`3US-3V{pZk`td9#c==9`KyW9~qmUm?D%#_xF(%`t^9U*O zpp-@cNJEO8+pnawoM;K3W_b94%XBOJXLxe>);t}QCXd(<9DTP=!=$`ci6ugNQ6t8+ zI(-QUVbxG(KiMRYB>8!;3KcvNvV;{~D=Iigu&se%rV*V9?J6!5`VLj9i@BU?7u+x# z(v;l;?B}Isyc8-K8yg&SC5XkdPFfY0SCjUXDc6^heI)6gGk0O@52^P=nQE7F-uWHG z_dK_ptUhxwUW}=%ZVGnC0>5>V>*t~`>xsyp%H$7zbMfOW*aW#?(o0z8kygvnH#p zO0f~1S6Hre<@`)bKM8lN>b^pYPF1HDXw(r1`3Kt zv8k&}f-9ed@#%-us=G|tz$GTJnPTL5yQ53F1NHOt7p(~Ox>W3GqDQN$hg|(#N zX`T$HHd1DL@RfwFeAT7`fd{$Vwj&sa!4)PG#ZH2SeSgw2q!o1M0~Sqzt>=h8U}9z@ zEZQR)XgX_r*GhI?P+a-h*KE#M<1(4zoxOdBWgZ~4fnd7&XpL?l$~0!R$xba({c=dK zNj4p-C#%k`?=n90Ti1MXII`9DExfAENAox4WPHwHEWKX*c<6!Tyfm`hBkA+}Ual_3 zLHJ}NG(#BDXKIktX8mFTh4iBpw#U8@U&s9z1JB7_^EX+fpV=9Odo9+`$qj{5z&pLQ z!`)O5xJ4tQ1yN=hdTocnrKUS(v3@`bf(n}ZTn&wOI*p_}n5I_%UlBtb?$G z;IQr4a{et$g9L1Ykp{*Gk1gNZGp_g1oaWVtu~0E|3?J}+7V#s&53m&rNr8)GDw3T2 z2cul})a&XA?Mfqw1Ue&;I)lGy4HcA?xL#q`erL^Aqwl8v41vZJry{%jOD-yjs1@(L zJzMr#q6YVO-Hi^NwA^OeEwhDEA?@)|FkG3NoaIw^s@cRN_55+6{=OoElcrF2Y5{i~3H~SR z^7xYEL3r(oa1$!eNH{s$2jC`p5U!W^?uBS{V_-Jy88p?B7MgmYyNR( zYIl}#=)t4%E3!53)YrO&Yz?K~Qp1|IU0 z&HjConm8jLQ8odmV%pzG=x`?9G*Y72KDo7WgQx)xY;}}R^;*dJsWLW$K@Gp&B)Qd3 z#fxr_PneS5jeIxDVQ;@HLxcCJPR+Y4%$C^ENtr8Ubj_rQIO_jI;_7mv(xJ%GP?0Ne zR!W7V8t#Sg5no+}@qn4ucpT^s!b@^b1WoB2Gbc2%Vgi_?VuF}-q9K)H{o_0tIp`Rp z!q@dje=p{`0_7ptkP5@v39CBETYJ)8lOEfGJ-po!HmuK4GyT%Lu9^Gd#Gv0gMRpt+ z?@x1Gzd778Wc&6Cqb_kdS`3eukJW6U)U?N=(~h_FHyB#~Pb5G)_rtaPg-f#x*Rcn9+S;puCD1=W*uJwxUjm?21zT zp7@XFFV)c`v~zU&Fz8#(nlrw>yIGAgn8?o{SI{q9?~ zP{Ifm-M}9J#XLWj z-6-@b*1GlhKgqGkvFATe4M%E{o|qV_de*CRr>BO^hEQJB4+U>EXn#&(g*V2RxT_sv zyoK1HM(HVm;W#;)0E|M`4hSw42Bt8ivvc^;mNT7$ms5huSWPw7GBQ^Rq!Ff@W`$#o z(C)G)N1W1g?tiXMGUl0Q9@|FYpX}}R#n~zXn(SJi{kVvjSdoZ*!4im@@x+xRNdL=u7ziJ0?S%4BLAvd8NnG1u!XYO_2}Eh*O^mdSYUz;dzl^aVZ;(*ZX{4GZ z4@50=#aeL>R~J9KBIu#|&Pn3;>u#8-DXioIEWhS=kV3KOFiYFQMNt7?83ESC>cTphEzhjyF)@cq`SK%1Ze^3mhSFuX@>5Ql9m<`qy#}hzdgR+IqUpm zEm$)T`?>etcU-}{*6$(tawzPh_SR>G;uTw+q>D}!9~ z7))mXjFN&9Yli5_f+FBk5Mf-3ysq5h@Uz80x6=LMI#x#ieX8czM^VhlB?;D<5~&(T zDa*2$VvC8X?}9y9G546pGQT_o>R)X0gil~FKj1u^2OK%W$$iSb~2e|Y~fk-qyI+FV>` zlGU^1(+N zY`5bRQ;8RiOMha_YEX~Ax)(32ThAvxkqvTIgU_UYgAttftY&@cOrBauH1I9dg_LQ#ZU+ zP>m8ABaDX4vli(*sZ}4KgenzHIG*u4Cqj*2@TNhSMdOHmQe44 z7y3FG60GJwNa(|#qAK;o1H>JKY0U>~!2pVY}xWp zXUWT^#@b};8H^k$ly}ALRFXeic~WJAs2Co(JPo!T!$T_+2QLnV5zfk(h|@C-CKark zrUkvNL7W7wyYDSgQW6~yYtjONFOJY8`>sScI;vQY(5j(;tr7HG-;^&`)>b67JJ(Z6t~M5mmr2oN^n(Jw$uVbM{QKfv zW8}VO$<<%UeYAZ8V*bWcV~90SMZTf&=~r3hI~-P9hMDVmU>bI#tSFXsp)V<_I(+no_u#15Mh2TNkG}3zwX+&&N zLSG;jxWfRMjLUn7K&WMxG*eQ~)3FhvLD?{B79csV)m2Av1IKVQO)c4)KX#nZMnf40 z7#(*#IhjS%>&}S?E9N8Gdi8d#N~P(JCIZr32439HUp%Z)|NG&E@Nx##9mcIH|16fF zA4IO8+3&t&=?3?SjMJ*S3t4YUZN%vKb&T>GMI*-9?^7ytzNXqL$NM1Tw%LxEX$@CN zt?uQOo0|wTcsn!Qd9D9K;@?84nRdY7noBJgojZ#_DJ5!PwpOwWn1U=D+XChFJ^xU% zyKva=ae8jt?JMcn$sWEOsm@$^T z8iM?(k16H#zgMx%V7jpL6c3$tDbkzqGw|g;R*uZ!lR>s?ZM4jKx2n4qaudk!jK8Zn zvJYq^-NkB|MO3`!XAkQOw~Z!WCq0{gAh*6>IleKv$lrEL>NdZ0%_%UicrF`pgb0_r z>kIKHuK!u6S33he^f$nUWcGz1dGWppQme_U?kg5Dy6M^Rm$eKW0U)g6@_JMhi^K_t zxzXy!r5=hl12Gqb>N9Xy*uDaCaMvp~WMfW1?B2p!!vuz9Aq+^|>^(Q;%i48PEV#&7 zp{vTT-{J6WQE==@zClofddD*zYTLoUQY*8jJ=u?Z z@n{}5Pxh$?0lhl1PPX0T6ot8=Scr}``RiGUr6#9_AwsC&x9X<0ajqBcfKng;bFT!0zMlb%z7JsJnI>#oOiq+jDxP<(D*lMqxCH+0p_uNR zD%^1S2$*~Wf3#I|(Sikkg|sBKe50U1hfX>{d_>F;o1tNAY?+*QF|MkH&BKagU3jV0 zp6Enw)5$e$RVI(9L^lThd@TFK?B)tEOV@CpC4%{q5&x!F5vy*Og-fv?+UPCtU-)3a zSVMUpgYl^>FW?tYD-s36y)!{d{!*SN{NERJC+(;{4@TmjWN{fOI3z!;i_Qx|NrJGR zw&v8%B?>@aH$no|HgA3be+M6+VtL*6i1ql|tp1T+k_3>Q7CS8*>jZDT<%>~W?xnHE z1lq~v&2GH!L0a6UZWGdSR_$%MsPP5Q;ofI=$8S7nklLIj>IQnSJIFPW8pMTniEs2N zwG(tl;&hhBVD+<-SSh(@T5T+O1)PVRz$hEEJ(V+gBJlwWHOX?I%VL#{NiekdqF4#9SrN3dpOr}(>z#3>;H&r3USS@Te$8*qXzPp$ZE@Ei6RBOEK zvCll1DA%p2Qm*o}e-L?AhJ4P_H2Dl!Z($;_5=N3@s`JuX&idY-QI?Cnr0vI?VoDd7 z%3acYVi_l5nZlaF3(zs9ww*F<YSsr_Ig&M^zBsA{Q}pIlkxug^LoL2$^4 zb~n0#<^1*~rtm}WuhBJOtf=+AN%6YoJj}WS&>4WXU-SP+HuX~p=?l<%wKxOv(Ffl9 zeT8m&T=z8J3`hWb%+$Ry%_b$5VP&F&1Cps*TXa5mxXV@+^>C8 zd&5&iD|c{zrNA)3<%Ht_oP)+Y7qty4x|e9#J`n@{EfGP#&dXK`V!g_Rk$jCg! zV0p#9mOiRf;X06zps`zA$A2jj1S{D~-*4dLVv9H|W_?M+!8M#ve9+XQ;CZxAfmhve zR7v`vtlNDqHCHBe!IWH%FIkh+?39D(S2O4886DM+g7sLXzcjn>d=G*WBx1R4?o+%v-l7#>0y|Ha3|_(b zj<>A~M@%GczEl3pCtIJd@Xb11+4qhZ=A9)-FO%?A@jiBvEinC!2hK92I7TFHL zzvKNCq(=4d$193CqNOxpxI@WS z5ZFtQ@-la2anXvfCKc9?v|m#faombnJBjRv83Gxj7fCWy35i${{eESJrKnOF>Z6d}ZLL$u2gN)U0gvui7BD&2(yF}r>0ueQ5sI7yaq-I1&wcnH) zWa0}KiHCz!@8k?O${Qp_KiVMWc>PpbQWRAT-hT(jgW2ARAXnXaZPFmCKJ|5#%xEHN zViG5s9S>!y5?@a@eu13l^#UiwivyL|_ZAvolIYOb_rz54DmA&%6c38#W%w)`z8>jM zSg1b0OVy)Kh5WoYj05Rl`zSHgN%8>B_nO5H+W<#5_SWn5Z+Gcnd190DhoWv9%hXY8 z_yf!#6-@nSeiPZ<)08sQ77-3SdPlTz4+s2^T4gdITeco>n)E42bX&={d<-L6E$(M- zK56FnyjPU7?=^-R=*ZgL2IiocSYzKG4mn&S7OEuB7eDP+Th2zV*msk8&s-F8f`ddB zdU)8T+8qg}GZL)zr4hv!3A)E-c*uBj6)`{|tUYajSw}T9Lba%X>g^(WRp4%}L zJm9*w^%LL9%MQUUdv*Qs@(ceGx1(d;Bk3wU)!x zyvj`>ZY&bOjeJ;V=+_NXBFRfWv$o>xGa4+}syfyA^tlJRclGHuicTL(gGy |y8 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

u|Ng3rSvno!e{<$;p5YAq&&55!qFPO(;+9M`-4 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 literal 0 HcmV?d00001 diff --git a/docs/design/vcpu-threads-pinning.md b/docs/design/vcpu-threads-pinning.md new file mode 100644 index 000000000..4de6ae986 --- /dev/null +++ b/docs/design/vcpu-threads-pinning.md @@ -0,0 +1,37 @@ +# Design Doc for Kata Containers' VCPUs Pinning Feature + +## Background +By now, vCPU threads of Kata Containers are scheduled randomly to CPUs. And each pod would request a specific set of CPUs which we call it CPU set (just the CPU set meaning in Linux cgroups). + +If the number of vCPU threads are equal to that of CPUs claimed in CPU set, we can then pin each vCPU thread to one specified CPU, to reduce the cost of random scheduling. + +## Detailed Design + +### Passing Config Parameters +Two ways are provided to use this vCPU thread pinning feature: through `QEMU` configuration file and through annotations. Finally the pinning parameter is passed to `HypervisorConfig`. + +### Related Linux Thread Scheduling API + +| API Info | Value | +|-------------------|-----------------------------------------------------------| +| Package | `golang.org/x/sys/unix` | +| Method | `unix.SchedSetaffinity(thread_id, &unixCPUSet)` | +| Official Doc Page | https://pkg.go.dev/golang.org/x/sys/unix#SchedSetaffinity | + +### When is VCPUs Pinning Checked? + +As shown in Section 1, when `num(vCPU threads) == num(CPUs in CPU set)`, we shall pin each vCPU thread to a specified CPU. And when this condition is broken, we should restore to the original random scheduling pattern. +So when may `num(CPUs in CPU set)` change? There are 5 possible scenes: + +| Possible scenes | Related Code | +|-----------------------------------|--------------------------------------------| +| when creating a container | File Sandbox.go, in method `CreateContainer` | +| when starting a container | File Sandbox.go, in method `StartContainer` | +| when deleting a container | File Sandbox.go, in method `DeleteContainer` | +| when updating a container | File Sandbox.go, in method `UpdateContainer` | +| when creating multiple containers | File Sandbox.go, in method `createContainers` | + +### Core Pinning Logics + +We can split the whole process into the following steps. Related methods are `checkVCPUsPinning` and `resetVCPUsPinning`, in file Sandbox.go. +![](arch-images/vcpus-pinning-process.png) \ No newline at end of file diff --git a/src/runtime/config/configuration-qemu.toml.in b/src/runtime/config/configuration-qemu.toml.in index 7b9166adc..7d0487d2b 100644 --- a/src/runtime/config/configuration-qemu.toml.in +++ b/src/runtime/config/configuration-qemu.toml.in @@ -96,6 +96,11 @@ machine_accelerators="@MACHINEACCELERATORS@" # For example, `cpu_features = "pmu=off,vmx=off" cpu_features="@CPUFEATURES@" +# vCPUs pinning settings +# if enabled, each vCPU thread will be scheduled to a fixed CPU +# qualified condition: num(vCPU threads) == num(CPUs in sandbox's CPUSet) +# enable_vcpus_pinning = false + # Default number of vCPUs per SB/VM: # unspecified or 0 --> will be set to @DEFVCPUS@ # < 0 --> will be set to the actual number of physical cores diff --git a/src/runtime/pkg/katautils/config.go b/src/runtime/pkg/katautils/config.go index dd996b403..d334c6171 100644 --- a/src/runtime/pkg/katautils/config.go +++ b/src/runtime/pkg/katautils/config.go @@ -155,6 +155,7 @@ type hypervisor struct { DisableSeccomp bool `toml:"disable_seccomp"` DisableSeLinux bool `toml:"disable_selinux"` LegacySerial bool `toml:"use_legacy_serial"` + EnableVCPUsPinning bool `toml:"enable_vcpus_pinning"` } type runtime struct { @@ -833,6 +834,7 @@ func newQemuHypervisorConfig(h hypervisor) (vc.HypervisorConfig, error) { Rootless: h.Rootless, LegacySerial: h.LegacySerial, DisableSeLinux: h.DisableSeLinux, + EnableVCPUsPinning: h.EnableVCPUsPinning, }, nil } diff --git a/src/runtime/pkg/oci/utils.go b/src/runtime/pkg/oci/utils.go index 95bfe2a33..57c2ed1a1 100644 --- a/src/runtime/pkg/oci/utils.go +++ b/src/runtime/pkg/oci/utils.go @@ -651,6 +651,12 @@ func addHypervisorCPUOverrides(ocispec specs.Spec, sbConfig *vc.SandboxConfig) e return err } + if err := newAnnotationConfiguration(ocispec, vcAnnotations.EnableVCPUsPinning).setBool(func(enableVCPUsPinning bool) { + sbConfig.HypervisorConfig.EnableVCPUsPinning = enableVCPUsPinning + }); err != nil { + return err + } + return newAnnotationConfiguration(ocispec, vcAnnotations.DefaultMaxVCPUs).setUintWithCheck(func(maxVCPUs uint64) error { max := uint32(maxVCPUs) diff --git a/src/runtime/virtcontainers/hypervisor.go b/src/runtime/virtcontainers/hypervisor.go index 51cf678b8..eb5abbb3b 100644 --- a/src/runtime/virtcontainers/hypervisor.go +++ b/src/runtime/virtcontainers/hypervisor.go @@ -559,6 +559,9 @@ type HypervisorConfig struct { // Use legacy serial for the guest console LegacySerial bool + + // EnableVCPUsPinning controls whether each vCPU thread should be scheduled to a fixed CPU + EnableVCPUsPinning bool } // vcpu mapping from vcpu number to thread number diff --git a/src/runtime/virtcontainers/pkg/annotations/annotations.go b/src/runtime/virtcontainers/pkg/annotations/annotations.go index d7919a0c8..d785580d9 100644 --- a/src/runtime/virtcontainers/pkg/annotations/annotations.go +++ b/src/runtime/virtcontainers/pkg/annotations/annotations.go @@ -143,6 +143,9 @@ const ( // DefaultVCPUs is a sandbox annotation that specifies the maximum number of vCPUs allocated for the VM by the hypervisor. DefaultMaxVCPUs = kataAnnotHypervisorPrefix + "default_max_vcpus" + // EnableVCPUsPinning is a sandbox annotation that controls bundling between vCPU threads and CPUs + EnableVCPUsPinning = kataAnnotationsPrefix + "enable_vcpus_pinning" + // // Memory related annotations // diff --git a/src/runtime/virtcontainers/sandbox.go b/src/runtime/virtcontainers/sandbox.go index e4a16983e..32ccc2dbb 100644 --- a/src/runtime/virtcontainers/sandbox.go +++ b/src/runtime/virtcontainers/sandbox.go @@ -44,6 +44,7 @@ import ( "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/pkg/rootless" "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/types" "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/utils" + "golang.org/x/sys/unix" ) // sandboxTracingTags defines tags for the trace span @@ -236,6 +237,7 @@ type Sandbox struct { sharePidNs bool seccompSupported bool disableVMShutdown bool + isVCPUsPinningOn bool } // ID returns the sandbox identifier string. @@ -1353,6 +1355,10 @@ func (s *Sandbox) CreateContainer(ctx context.Context, contConfig ContainerConfi return nil, err } + if err = s.checkVCPUsPinning(ctx); err != nil { + return nil, err + } + if err = s.storeSandbox(ctx); err != nil { return nil, err } @@ -1385,6 +1391,10 @@ func (s *Sandbox) StartContainer(ctx context.Context, containerID string) (VCCon return nil, err } + if err = s.checkVCPUsPinning(ctx); err != nil { + return nil, err + } + return c, nil } @@ -1457,6 +1467,10 @@ func (s *Sandbox) DeleteContainer(ctx context.Context, containerID string) (VCCo return nil, err } + if err = s.checkVCPUsPinning(ctx); err != nil { + return nil, err + } + if err = s.storeSandbox(ctx); err != nil { return nil, err } @@ -1522,6 +1536,10 @@ func (s *Sandbox) UpdateContainer(ctx context.Context, containerID string, resou return err } + if err = s.checkVCPUsPinning(ctx); err != nil { + return err + } + if err = s.storeSandbox(ctx); err != nil { return err } @@ -1640,6 +1658,11 @@ func (s *Sandbox) createContainers(ctx context.Context) error { if err := s.resourceControllerUpdate(ctx); err != nil { return err } + + if err := s.checkVCPUsPinning(ctx); err != nil { + return err + } + if err := s.storeSandbox(ctx); err != nil { return err } @@ -2459,3 +2482,73 @@ func (s *Sandbox) fetchContainers(ctx context.Context) error { return nil } + +// checkVCPUsPinning is used to support CPUSet mode of kata container. +// CPUSet mode is on when Sandbox.HypervisorConfig.EnableVCPUsPinning +// is set to true. Then it fetches sandbox's number of vCPU threads +// and number of CPUs in CPUSet. If the two are equal, each vCPU thread +// is then pinned to one fixed CPU in CPUSet. +func (s *Sandbox) checkVCPUsPinning(ctx context.Context) error { + if s.config == nil { + return fmt.Errorf("no hypervisor config found") + } + if !s.config.HypervisorConfig.EnableVCPUsPinning { + return nil + } + + // fetch vCPU thread ids and CPUSet + vCPUThreadsMap, err := s.hypervisor.GetThreadIDs(ctx) + if err != nil { + return fmt.Errorf("failed to get vCPU thread ids from hypervisor: %v", err) + } + cpuSetStr, _, err := s.getSandboxCPUSet() + if err != nil { + return fmt.Errorf("failed to get CPUSet config: %v", err) + } + cpuSet, err := cpuset.Parse(cpuSetStr) + if err != nil { + return fmt.Errorf("failed to parse CPUSet string: %v", err) + } + cpuSetSlice := cpuSet.ToSlice() + + // check if vCPU thread numbers and CPU numbers are equal + numVCPUs, numCPUs := len(vCPUThreadsMap.vcpus), len(cpuSetSlice) + // if not equal, we should reset threads scheduling to random pattern + if numVCPUs != numCPUs { + if s.isVCPUsPinningOn { + s.isVCPUsPinningOn = false + return s.resetVCPUsPinning(ctx, vCPUThreadsMap, cpuSetSlice) + } + return nil + } + + // if equal, we can now start vCPU threads pinning + i := 0 + for _, tid := range vCPUThreadsMap.vcpus { + unixCPUSet := unix.CPUSet{} + unixCPUSet.Set(cpuSetSlice[i]) + if err := unix.SchedSetaffinity(tid, &unixCPUSet); err != nil { + if err := s.resetVCPUsPinning(ctx, vCPUThreadsMap, cpuSetSlice); err != nil { + return err + } + return fmt.Errorf("failed to set vcpu thread %d affinity to cpu %d: %v", tid, cpuSetSlice[i], err) + } + i++ + } + s.isVCPUsPinningOn = true + return nil +} + +// resetVCPUsPinning cancels current pinning and restores default random vCPU threads scheduling +func (s *Sandbox) resetVCPUsPinning(ctx context.Context, vCPUThreadsMap VcpuThreadIDs, cpuSetSlice []int) error { + unixCPUSet := unix.CPUSet{} + for cpuId := range cpuSetSlice { + unixCPUSet.Set(cpuId) + } + for _, tid := range vCPUThreadsMap.vcpus { + if err := unix.SchedSetaffinity(tid, &unixCPUSet); err != nil { + return fmt.Errorf("failed to reset vcpu thread %d affinity to default mode: %v", tid, err) + } + } + return nil +} From 40d514aa2c73ddca2ff0e3bb5615d62fd77e5ada Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabiano=20Fid=C3=AAncio?= Date: Fri, 4 Nov 2022 12:34:08 +0100 Subject: [PATCH 10/37] github: Parallelise static checks MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Although introducing an awful amount of code duplication, let's parallelise the static checks in order to reduce its time and the space used in the VMs running those. While I understand there may be ways to make the whole setup less repetitive and error prone, I'm taking the approach of: * Make it work * Make it right * Make it fast So, it's clear that I'm only attempting to make it work, and I'd appreciate community help in order to improve the situation here. But, for now, this is a stopgap solution. JFYI, the time needed for run the tests on the `main` branch went down from ~110 minutes to ~60 minutes. Plus, we're not running those on a single VM anymore, which decreases the change to hit the space limit. Reference: https://github.com/kata-containers/kata-containers/actions/runs/3393468605/jobs/5640842041 Ideally, each one of the following tests should be also split into smaller tests, each test for one component, for instance. * static-checks * compiler-checks * unit-tests * unit-tests-as-root Fixes: #5585 Signed-off-by: Fabiano FidĂȘncio --- .github/workflows/static-checks.yaml | 258 ++++++++++++++++++++++++++- 1 file changed, 250 insertions(+), 8 deletions(-) diff --git a/.github/workflows/static-checks.yaml b/.github/workflows/static-checks.yaml index 0471a099b..d0159adf0 100644 --- a/.github/workflows/static-checks.yaml +++ b/.github/workflows/static-checks.yaml @@ -8,7 +8,7 @@ on: name: Static checks jobs: - test: + check-vendored-code: strategy: matrix: go-version: [1.16.x, 1.17.x] @@ -24,7 +24,7 @@ jobs: steps: - name: Install Go if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }} - uses: actions/setup-go@v2 + uses: actions/setup-go@v3 with: go-version: ${{ matrix.go-version }} env: @@ -43,7 +43,63 @@ jobs: echo "${{ github.workspace }}/bin" >> $GITHUB_PATH - name: Checkout code if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }} - uses: actions/checkout@v2 + uses: actions/checkout@v3 + with: + fetch-depth: 0 + path: ./src/github.com/${{ github.repository }} + - name: Setup travis references + if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }} + run: | + echo "TRAVIS_BRANCH=${TRAVIS_BRANCH:-$(echo $GITHUB_REF | awk 'BEGIN { FS = \"/\" } ; { print $3 }')}" + target_branch=${TRAVIS_BRANCH} + - name: Setup + if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }} + run: | + cd ${GOPATH}/src/github.com/${{ github.repository }} && ./ci/setup.sh + env: + GOPATH: ${{ runner.workspace }}/kata-containers + # Check whether the vendored code is up-to-date & working as the first thing + - name: Check vendored code + if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }} + run: | + cd ${GOPATH}/src/github.com/${{ github.repository }} && make vendor + + static-checks: + strategy: + matrix: + go-version: [1.16.x, 1.17.x] + os: [ubuntu-20.04] + runs-on: ${{ matrix.os }} + env: + TRAVIS: "true" + TRAVIS_BRANCH: ${{ github.base_ref }} + TRAVIS_PULL_REQUEST_BRANCH: ${{ github.head_ref }} + TRAVIS_PULL_REQUEST_SHA : ${{ github.event.pull_request.head.sha }} + RUST_BACKTRACE: "1" + target_branch: ${{ github.base_ref }} + steps: + - name: Install Go + if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }} + uses: actions/setup-go@v3 + with: + go-version: ${{ matrix.go-version }} + env: + GOPATH: ${{ runner.workspace }}/kata-containers + - name: Setup GOPATH + if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }} + run: | + echo "TRAVIS_BRANCH: ${TRAVIS_BRANCH}" + echo "TRAVIS_PULL_REQUEST_BRANCH: ${TRAVIS_PULL_REQUEST_BRANCH}" + echo "TRAVIS_PULL_REQUEST_SHA: ${TRAVIS_PULL_REQUEST_SHA}" + echo "TRAVIS: ${TRAVIS}" + - name: Set env + if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }} + run: | + echo "GOPATH=${{ github.workspace }}" >> $GITHUB_ENV + echo "${{ github.workspace }}/bin" >> $GITHUB_PATH + - name: Checkout code + if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }} + uses: actions/checkout@v3 with: fetch-depth: 0 path: ./src/github.com/${{ github.repository }} @@ -73,23 +129,209 @@ jobs: echo "Set environment variables for the libseccomp crate to link the libseccomp library statically" echo "LIBSECCOMP_LINK_TYPE=static" >> $GITHUB_ENV echo "LIBSECCOMP_LIB_PATH=${libseccomp_install_dir}/lib" >> $GITHUB_ENV - # Check whether the vendored code is up-to-date & working as the first thing - - name: Check vendored code - if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }} - run: | - cd ${GOPATH}/src/github.com/${{ github.repository }} && make vendor - name: Static Checks if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }} run: | cd ${GOPATH}/src/github.com/${{ github.repository }} && make static-checks + + + compiler-checks: + strategy: + matrix: + go-version: [1.16.x, 1.17.x] + os: [ubuntu-20.04] + runs-on: ${{ matrix.os }} + env: + TRAVIS: "true" + TRAVIS_BRANCH: ${{ github.base_ref }} + TRAVIS_PULL_REQUEST_BRANCH: ${{ github.head_ref }} + TRAVIS_PULL_REQUEST_SHA : ${{ github.event.pull_request.head.sha }} + RUST_BACKTRACE: "1" + target_branch: ${{ github.base_ref }} + steps: + - name: Install Go + if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }} + uses: actions/setup-go@v3 + with: + go-version: ${{ matrix.go-version }} + env: + GOPATH: ${{ runner.workspace }}/kata-containers + - name: Setup GOPATH + if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }} + run: | + echo "TRAVIS_BRANCH: ${TRAVIS_BRANCH}" + echo "TRAVIS_PULL_REQUEST_BRANCH: ${TRAVIS_PULL_REQUEST_BRANCH}" + echo "TRAVIS_PULL_REQUEST_SHA: ${TRAVIS_PULL_REQUEST_SHA}" + echo "TRAVIS: ${TRAVIS}" + - name: Set env + if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }} + run: | + echo "GOPATH=${{ github.workspace }}" >> $GITHUB_ENV + echo "${{ github.workspace }}/bin" >> $GITHUB_PATH + - name: Checkout code + if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }} + uses: actions/checkout@v3 + with: + fetch-depth: 0 + path: ./src/github.com/${{ github.repository }} + - name: Setup travis references + if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }} + run: | + echo "TRAVIS_BRANCH=${TRAVIS_BRANCH:-$(echo $GITHUB_REF | awk 'BEGIN { FS = \"/\" } ; { print $3 }')}" + target_branch=${TRAVIS_BRANCH} + - name: Setup + if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }} + run: | + cd ${GOPATH}/src/github.com/${{ github.repository }} && ./ci/setup.sh + env: + GOPATH: ${{ runner.workspace }}/kata-containers + - name: Installing rust + if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }} + run: | + cd ${GOPATH}/src/github.com/${{ github.repository }} && ./ci/install_rust.sh + PATH=$PATH:"$HOME/.cargo/bin" + rustup target add x86_64-unknown-linux-musl + rustup component add rustfmt clippy + - name: Setup seccomp + run: | + libseccomp_install_dir=$(mktemp -d -t libseccomp.XXXXXXXXXX) + gperf_install_dir=$(mktemp -d -t gperf.XXXXXXXXXX) + cd ${GOPATH}/src/github.com/${{ github.repository }} && ./ci/install_libseccomp.sh "${libseccomp_install_dir}" "${gperf_install_dir}" + echo "Set environment variables for the libseccomp crate to link the libseccomp library statically" + echo "LIBSECCOMP_LINK_TYPE=static" >> $GITHUB_ENV + echo "LIBSECCOMP_LIB_PATH=${libseccomp_install_dir}/lib" >> $GITHUB_ENV - name: Run Compiler Checks if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }} run: | cd ${GOPATH}/src/github.com/${{ github.repository }} && make check + + unit-tests: + runs-on: ubuntu-20.04 + env: + TRAVIS: "true" + TRAVIS_BRANCH: ${{ github.base_ref }} + TRAVIS_PULL_REQUEST_BRANCH: ${{ github.head_ref }} + TRAVIS_PULL_REQUEST_SHA : ${{ github.event.pull_request.head.sha }} + RUST_BACKTRACE: "1" + target_branch: ${{ github.base_ref }} + steps: + - name: Install Go + if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }} + uses: actions/setup-go@v3 + with: + go-version: 1.17.x + env: + GOPATH: ${{ runner.workspace }}/kata-containers + - name: Setup GOPATH + if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }} + run: | + echo "TRAVIS_BRANCH: ${TRAVIS_BRANCH}" + echo "TRAVIS_PULL_REQUEST_BRANCH: ${TRAVIS_PULL_REQUEST_BRANCH}" + echo "TRAVIS_PULL_REQUEST_SHA: ${TRAVIS_PULL_REQUEST_SHA}" + echo "TRAVIS: ${TRAVIS}" + - name: Set env + if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }} + run: | + echo "GOPATH=${{ github.workspace }}" >> $GITHUB_ENV + echo "${{ github.workspace }}/bin" >> $GITHUB_PATH + - name: Checkout code + if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }} + uses: actions/checkout@v3 + with: + fetch-depth: 0 + path: ./src/github.com/${{ github.repository }} + - name: Setup travis references + if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }} + run: | + echo "TRAVIS_BRANCH=${TRAVIS_BRANCH:-$(echo $GITHUB_REF | awk 'BEGIN { FS = \"/\" } ; { print $3 }')}" + target_branch=${TRAVIS_BRANCH} + - name: Setup + if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }} + run: | + cd ${GOPATH}/src/github.com/${{ github.repository }} && ./ci/setup.sh + env: + GOPATH: ${{ runner.workspace }}/kata-containers + - name: Installing rust + if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }} + run: | + cd ${GOPATH}/src/github.com/${{ github.repository }} && ./ci/install_rust.sh + PATH=$PATH:"$HOME/.cargo/bin" + rustup target add x86_64-unknown-linux-musl + rustup component add rustfmt clippy + - name: Setup seccomp + run: | + libseccomp_install_dir=$(mktemp -d -t libseccomp.XXXXXXXXXX) + gperf_install_dir=$(mktemp -d -t gperf.XXXXXXXXXX) + cd ${GOPATH}/src/github.com/${{ github.repository }} && ./ci/install_libseccomp.sh "${libseccomp_install_dir}" "${gperf_install_dir}" + echo "Set environment variables for the libseccomp crate to link the libseccomp library statically" + echo "LIBSECCOMP_LINK_TYPE=static" >> $GITHUB_ENV + echo "LIBSECCOMP_LIB_PATH=${libseccomp_install_dir}/lib" >> $GITHUB_ENV - name: Run Unit Tests if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }} run: | cd ${GOPATH}/src/github.com/${{ github.repository }} && make test + + unit-tests-as-root: + runs-on: ubuntu-20.04 + env: + TRAVIS: "true" + TRAVIS_BRANCH: ${{ github.base_ref }} + TRAVIS_PULL_REQUEST_BRANCH: ${{ github.head_ref }} + TRAVIS_PULL_REQUEST_SHA : ${{ github.event.pull_request.head.sha }} + RUST_BACKTRACE: "1" + target_branch: ${{ github.base_ref }} + steps: + - name: Install Go + if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }} + uses: actions/setup-go@v3 + with: + go-version: 1.17.x + env: + GOPATH: ${{ runner.workspace }}/kata-containers + - name: Setup GOPATH + if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }} + run: | + echo "TRAVIS_BRANCH: ${TRAVIS_BRANCH}" + echo "TRAVIS_PULL_REQUEST_BRANCH: ${TRAVIS_PULL_REQUEST_BRANCH}" + echo "TRAVIS_PULL_REQUEST_SHA: ${TRAVIS_PULL_REQUEST_SHA}" + echo "TRAVIS: ${TRAVIS}" + - name: Set env + if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }} + run: | + echo "GOPATH=${{ github.workspace }}" >> $GITHUB_ENV + echo "${{ github.workspace }}/bin" >> $GITHUB_PATH + - name: Checkout code + if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }} + uses: actions/checkout@v3 + with: + fetch-depth: 0 + path: ./src/github.com/${{ github.repository }} + - name: Setup travis references + if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }} + run: | + echo "TRAVIS_BRANCH=${TRAVIS_BRANCH:-$(echo $GITHUB_REF | awk 'BEGIN { FS = \"/\" } ; { print $3 }')}" + target_branch=${TRAVIS_BRANCH} + - name: Setup + if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }} + run: | + cd ${GOPATH}/src/github.com/${{ github.repository }} && ./ci/setup.sh + env: + GOPATH: ${{ runner.workspace }}/kata-containers + - name: Installing rust + if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }} + run: | + cd ${GOPATH}/src/github.com/${{ github.repository }} && ./ci/install_rust.sh + PATH=$PATH:"$HOME/.cargo/bin" + rustup target add x86_64-unknown-linux-musl + rustup component add rustfmt clippy + - name: Setup seccomp + run: | + libseccomp_install_dir=$(mktemp -d -t libseccomp.XXXXXXXXXX) + gperf_install_dir=$(mktemp -d -t gperf.XXXXXXXXXX) + cd ${GOPATH}/src/github.com/${{ github.repository }} && ./ci/install_libseccomp.sh "${libseccomp_install_dir}" "${gperf_install_dir}" + echo "Set environment variables for the libseccomp crate to link the libseccomp library statically" + echo "LIBSECCOMP_LINK_TYPE=static" >> $GITHUB_ENV + echo "LIBSECCOMP_LIB_PATH=${libseccomp_install_dir}/lib" >> $GITHUB_ENV - name: Run Unit Tests As Root User if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }} run: | From daeee26a1e40afbd7065a62539d43a5684cf57f4 Mon Sep 17 00:00:00 2001 From: Guanglu Guo Date: Thu, 3 Nov 2022 11:59:54 +0800 Subject: [PATCH 11/37] cloud-hypervisor: Fix GetThreadIDs function Get vcpu thread-ids by reading cloud-hypervisor process tasks information. Fixes: #5568 Signed-off-by: Guanglu Guo --- src/runtime/virtcontainers/clh.go | 50 +++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/src/runtime/virtcontainers/clh.go b/src/runtime/virtcontainers/clh.go index 93a19facd..a0f08e8cb 100644 --- a/src/runtime/virtcontainers/clh.go +++ b/src/runtime/virtcontainers/clh.go @@ -21,6 +21,7 @@ import ( "os" "os/exec" "path/filepath" + "regexp" "strconv" "strings" "syscall" @@ -725,6 +726,55 @@ func (clh *cloudHypervisor) GetThreadIDs(ctx context.Context) (VcpuThreadIDs, er vcpuInfo.vcpus = make(map[int]int) + getVcpus := func(pid int) (map[int]int, error) { + vcpus := make(map[int]int) + + dir := fmt.Sprintf("/proc/%d/task", pid) + files, err := os.ReadDir(dir) + if err != nil { + return vcpus, err + } + + pattern, err := regexp.Compile(`^vcpu\d+$`) + if err != nil { + return vcpus, err + } + for _, file := range files { + comm, err := os.ReadFile(fmt.Sprintf("%s/%s/comm", dir, file.Name())) + if err != nil { + return vcpus, err + } + pName := strings.TrimSpace(string(comm)) + if !pattern.MatchString(pName) { + continue + } + + cpuID := strings.TrimPrefix(pName, "vcpu") + threadID := file.Name() + + k, err := strconv.Atoi(cpuID) + if err != nil { + return vcpus, err + } + v, err := strconv.Atoi(threadID) + if err != nil { + return vcpus, err + } + vcpus[k] = v + } + return vcpus, nil + } + + if clh.state.PID == 0 { + return vcpuInfo, nil + } + + vcpus, err := getVcpus(clh.state.PID) + if err != nil { + return vcpuInfo, err + } + vcpuInfo.vcpus = vcpus + return vcpuInfo, nil } From 2adb1c18235e9c67304c37967149b465022cfaca Mon Sep 17 00:00:00 2001 From: Chao Wu Date: Wed, 2 Nov 2022 14:07:37 +0800 Subject: [PATCH 12/37] Dragonball: enable mem_file_path config into hugetlbfs process In the current Dragonball code, mem_file_path config is not used when hugetlbfs is enabled. In this commit we add mem_file_path into hugetlbfs enable process. fixes: #5566 Signed-off-by: Chao Wu --- src/dragonball/src/vm/mod.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/dragonball/src/vm/mod.rs b/src/dragonball/src/vm/mod.rs index 39f5483e9..4c4a8a7b1 100644 --- a/src/dragonball/src/vm/mod.rs +++ b/src/dragonball/src/vm/mod.rs @@ -520,6 +520,7 @@ impl Vm { let mem_type = self.vm_config.mem_type.clone(); let mut mem_file_path = String::from(""); if mem_type == "hugetlbfs" { + mem_file_path = self.vm_config.mem_file_path.clone(); let shared_info = self.shared_info.read() .expect("Failed to determine if instance is initialized because shared info couldn't be read due to poisoned lock"); mem_file_path.push_str("/dragonball/"); From 3e9c3f12cef87c3016104bccc87321d5dc84f3ab Mon Sep 17 00:00:00 2001 From: Mathis Joffre <51022808+Joffref@users.noreply.github.com> Date: Fri, 21 Oct 2022 14:56:41 +0200 Subject: [PATCH 13/37] docs: Fix configuration path On install you generate a configuration-fc.toml file when building the kata-runtime and copy it to either /etc/kata-containers/configuration-fc.toml or /usr/share/defaults/kata-containers/configuration-fc.toml. To reflect that the path must be one of the above, we can fix the path in doc. Fixes: #5589 Signed-off-by: Mathis Joffre --- docs/how-to/how-to-use-kata-containers-with-firecracker.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/how-to/how-to-use-kata-containers-with-firecracker.md b/docs/how-to/how-to-use-kata-containers-with-firecracker.md index 03f533ef7..d2bd362c1 100644 --- a/docs/how-to/how-to-use-kata-containers-with-firecracker.md +++ b/docs/how-to/how-to-use-kata-containers-with-firecracker.md @@ -212,7 +212,7 @@ Next, we need to configure containerd. Add a file in your path (e.g. `/usr/local ``` #!/bin/bash -KATA_CONF_FILE=/etc/containers/configuration-fc.toml /usr/local/bin/containerd-shim-kata-v2 $@ +KATA_CONF_FILE=/etc/kata-containers/configuration-fc.toml /usr/local/bin/containerd-shim-kata-v2 $@ ``` > **Note:** You may need to edit the paths of the configuration file and the `containerd-shim-kata-v2` to correspond to your setup. From 2333700237c1b3c749988eb5dfdfd4449b910fcf Mon Sep 17 00:00:00 2001 From: wllenyj Date: Wed, 18 May 2022 00:19:05 +0800 Subject: [PATCH 14/37] dragonball: add test utils. Added some tools for dragonball unit testing. Signed-off-by: wllenyj --- src/dragonball/src/lib.rs | 3 ++ src/dragonball/src/test_utils.rs | 47 ++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 src/dragonball/src/test_utils.rs diff --git a/src/dragonball/src/lib.rs b/src/dragonball/src/lib.rs index 7371e8213..5c0685326 100644 --- a/src/dragonball/src/lib.rs +++ b/src/dragonball/src/lib.rs @@ -34,6 +34,9 @@ pub mod vm; mod event_manager; mod io_manager; + +mod test_utils; + mod vmm; pub use self::error::StartMicroVmError; diff --git a/src/dragonball/src/test_utils.rs b/src/dragonball/src/test_utils.rs new file mode 100644 index 000000000..577b5df86 --- /dev/null +++ b/src/dragonball/src/test_utils.rs @@ -0,0 +1,47 @@ +// Copyright (C) 2022 Alibaba Cloud. All rights reserved. +// +// SPDX-License-Identifier: Apache-2.0 + +#[cfg(test)] +pub mod tests { + use crate::api::v1::InstanceInfo; + use crate::vm::{CpuTopology, KernelConfigInfo, Vm, VmConfigInfo}; + use dbs_utils::epoll_manager::EpollManager; + use linux_loader::cmdline::Cmdline; + use std::sync::{Arc, RwLock}; + use vmm_sys_util::tempfile::TempFile; + + pub fn create_vm_for_test() -> Vm { + // Call for kvm too frequently would cause error in some host kernel. + let instance_info = Arc::new(RwLock::new(InstanceInfo::default())); + let epoll_manager = EpollManager::default(); + let mut vm = Vm::new(None, instance_info, epoll_manager).unwrap(); + let kernel_file = TempFile::new().unwrap(); + let cmd_line = Cmdline::new(64); + vm.set_kernel_config(KernelConfigInfo::new( + kernel_file.into_file(), + None, + cmd_line, + )); + + let vm_config = VmConfigInfo { + vcpu_count: 1, + max_vcpu_count: 1, + cpu_pm: "off".to_string(), + mem_type: "shmem".to_string(), + mem_file_path: "".to_string(), + mem_size_mib: 1, + serial_path: None, + cpu_topology: CpuTopology { + threads_per_core: 1, + cores_per_die: 1, + dies_per_socket: 1, + sockets: 1, + }, + vpmu_feature: 0, + }; + vm.set_vm_config(vm_config); + vm.init_guest_memory().unwrap(); + vm + } +} From 57336835da65e7574f4b960bd252a37d03471114 Mon Sep 17 00:00:00 2001 From: wllenyj Date: Wed, 18 May 2022 00:20:53 +0800 Subject: [PATCH 15/37] dragonball: add more unit test for device manager Added more unit tests for device manager. Fixes: #4899 Signed-off-by: wllenyj --- src/dragonball/src/device_manager/mod.rs | 165 +++++++++++++++++++++++ src/dragonball/src/vm/mod.rs | 6 + 2 files changed, 171 insertions(+) diff --git a/src/dragonball/src/device_manager/mod.rs b/src/dragonball/src/device_manager/mod.rs index 09689ca52..9989a63af 100644 --- a/src/dragonball/src/device_manager/mod.rs +++ b/src/dragonball/src/device_manager/mod.rs @@ -1011,3 +1011,168 @@ impl DeviceManager { } } } + +#[cfg(test)] +mod tests { + use std::sync::{Arc, Mutex}; + + use kvm_ioctls::Kvm; + use test_utils::skip_if_not_root; + use vm_memory::{GuestAddress, MmapRegion}; + + use super::*; + use crate::vm::CpuTopology; + + impl DeviceManager { + pub fn new_test_mgr() -> Self { + let kvm = Kvm::new().unwrap(); + let vm = kvm.create_vm().unwrap(); + let vm_fd = Arc::new(vm); + let epoll_manager = EpollManager::default(); + let res_manager = Arc::new(ResourceManager::new(None)); + let logger = slog_scope::logger().new(slog::o!()); + + DeviceManager { + vm_fd: Arc::clone(&vm_fd), + con_manager: ConsoleManager::new(epoll_manager, &logger), + io_manager: Arc::new(ArcSwap::new(Arc::new(IoManager::new()))), + io_lock: Arc::new(Mutex::new(())), + irq_manager: Arc::new(KvmIrqManager::new(vm_fd.clone())), + res_manager, + + legacy_manager: None, + #[cfg(feature = "virtio-blk")] + block_manager: BlockDeviceMgr::default(), + #[cfg(feature = "virtio-fs")] + fs_manager: Arc::new(Mutex::new(FsDeviceMgr::default())), + #[cfg(feature = "virtio-net")] + virtio_net_manager: VirtioNetDeviceMgr::default(), + #[cfg(feature = "virtio-vsock")] + vsock_manager: VsockDeviceMgr::default(), + #[cfg(target_arch = "aarch64")] + mmio_device_info: HashMap::new(), + + logger, + } + } + } + + #[test] + fn test_create_device_manager() { + skip_if_not_root!(); + let mgr = DeviceManager::new_test_mgr(); + let _ = mgr.io_manager(); + } + + #[cfg(target_arch = "x86_64")] + #[test] + fn test_create_devices() { + skip_if_not_root!(); + use crate::vm::VmConfigInfo; + + let epoll_manager = EpollManager::default(); + let vmm = Arc::new(Mutex::new(crate::vmm::tests::create_vmm_instance())); + let event_mgr = crate::event_manager::EventManager::new(&vmm, epoll_manager).unwrap(); + let mut vm = crate::vm::tests::create_vm_instance(); + let vm_config = VmConfigInfo { + vcpu_count: 1, + max_vcpu_count: 1, + cpu_pm: "off".to_string(), + mem_type: "shmem".to_string(), + mem_file_path: "".to_string(), + mem_size_mib: 16, + serial_path: None, + cpu_topology: CpuTopology { + threads_per_core: 1, + cores_per_die: 1, + dies_per_socket: 1, + sockets: 1, + }, + vpmu_feature: 0, + }; + vm.set_vm_config(vm_config); + vm.init_guest_memory().unwrap(); + vm.setup_interrupt_controller().unwrap(); + let vm_as = vm.vm_as().cloned().unwrap(); + let kernel_temp_file = vmm_sys_util::tempfile::TempFile::new().unwrap(); + let kernel_file = kernel_temp_file.into_file(); + let mut cmdline = crate::vm::KernelConfigInfo::new( + kernel_file, + None, + linux_loader::cmdline::Cmdline::new(0x1000), + ); + + let address_space = vm.vm_address_space().cloned(); + let mgr = vm.device_manager_mut(); + let guard = mgr.io_manager.load(); + let mut lcr = [0u8]; + // 0x3f8 is the adddress of serial device + guard.pio_read(0x3f8 + 3, &mut lcr).unwrap_err(); + assert_eq!(lcr[0], 0x0); + + mgr.create_interrupt_manager().unwrap(); + mgr.create_devices( + vm_as, + event_mgr.epoll_manager(), + &mut cmdline, + None, + None, + address_space.as_ref(), + ) + .unwrap(); + let guard = mgr.io_manager.load(); + guard.pio_read(0x3f8 + 3, &mut lcr).unwrap(); + assert_eq!(lcr[0], 0x3); + } + + #[cfg(feature = "virtio-fs")] + #[test] + fn test_handler_insert_region() { + skip_if_not_root!(); + + use dbs_virtio_devices::VirtioRegionHandler; + use lazy_static::__Deref; + use vm_memory::{GuestAddressSpace, GuestMemory, GuestMemoryRegion}; + + let vm = crate::test_utils::tests::create_vm_for_test(); + let ctx = DeviceOpContext::new( + Some(vm.epoll_manager().clone()), + vm.device_manager(), + Some(vm.vm_as().unwrap().clone()), + vm.vm_address_space().cloned(), + true, + ); + let guest_addr = GuestAddress(0x200000000000); + + let cache_len = 1024 * 1024 * 1024; + let mmap_region = MmapRegion::build( + None, + cache_len as usize, + libc::PROT_NONE, + libc::MAP_ANONYMOUS | libc::MAP_NORESERVE | libc::MAP_PRIVATE, + ) + .unwrap(); + + let guest_mmap_region = + Arc::new(vm_memory::GuestRegionMmap::new(mmap_region, guest_addr).unwrap()); + + let mut handler = DeviceVirtioRegionHandler { + vm_as: ctx.get_vm_as().unwrap(), + address_space: ctx.address_space.as_ref().unwrap().clone(), + }; + handler.insert_region(guest_mmap_region).unwrap(); + let mut find_region = false; + let find_region_ptr = &mut find_region; + + let guard = vm.vm_as().unwrap().clone().memory(); + + let mem = guard.deref(); + for region in mem.iter() { + if region.start_addr() == guest_addr && region.len() == cache_len { + *find_region_ptr = true; + } + } + + assert!(find_region); + } +} diff --git a/src/dragonball/src/vm/mod.rs b/src/dragonball/src/vm/mod.rs index 39f5483e9..fa1b84be9 100644 --- a/src/dragonball/src/vm/mod.rs +++ b/src/dragonball/src/vm/mod.rs @@ -827,4 +827,10 @@ pub mod tests { .state = mstate; } } + + pub fn create_vm_instance() -> Vm { + let instance_info = Arc::new(RwLock::new(InstanceInfo::default())); + let epoll_manager = EpollManager::default(); + Vm::new(None, instance_info, epoll_manager).unwrap() + } } From 9f70a6949b3e4a1475c5ca7fd970a69441339074 Mon Sep 17 00:00:00 2001 From: Gabriela Cervantes Date: Tue, 8 Nov 2022 17:49:57 +0000 Subject: [PATCH 16/37] tools: Remove empty spaces from build kernel script This PR removes some extra empty spaces at the build kernel script. Fixes #5619 Signed-off-by: Gabriela Cervantes --- tools/packaging/kernel/build-kernel.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tools/packaging/kernel/build-kernel.sh b/tools/packaging/kernel/build-kernel.sh index 5b8e880d2..bb682e721 100755 --- a/tools/packaging/kernel/build-kernel.sh +++ b/tools/packaging/kernel/build-kernel.sh @@ -43,7 +43,7 @@ build_type="" force_setup_generate_config="false" #GPU kernel support gpu_vendor="" -#Confidential guest type +#Confidential guest type conf_guest="" # patches_path="" @@ -134,7 +134,7 @@ get_tee_kernel() { # different name, such as linux-${version}.tar.gz or simply # ${version}.tar.gz. Let's try both before failing. curl --fail -L "${kernel_url}/linux-${kernel_tarball}" -o ${kernel_tarball} || curl --fail -OL "${kernel_url}/${kernel_tarball}" - + mkdir -p ${kernel_path} tar --strip-components=1 -xf ${kernel_tarball} -C ${kernel_path} } @@ -473,7 +473,7 @@ install_kata() { } main() { - while getopts "a:b:c:deEfg:hk:p:t:u:v:x:" opt; do + while getopts "a:b:c:deEfg:hk:p:t:u:v:x:" opt; do case "$opt" in a) arch_target="${OPTARG}" @@ -516,7 +516,7 @@ main() { t) hypervisor_target="${OPTARG}" ;; - u) + u) kernel_url="${OPTARG}" ;; v) From 29c75cf12bfa133100e28e005618ba256d142d99 Mon Sep 17 00:00:00 2001 From: Chao Wu Date: Tue, 8 Nov 2022 22:24:19 +0800 Subject: [PATCH 17/37] runtime-rs: delete all cargo patches The cargo patch in the cargo.toml seems to cause the whole runtime-rs building time longer and also makes it harder to build runtime-rs in an environment without the network We should delete all patches from the cargo.toml file and publish all the crates that was once patched. fixes: #5614 #5527 #5526 #5449 Signed-off-by: Chao Wu --- src/dragonball/Cargo.toml | 25 ++++++--------------- src/runtime-rs/Cargo.toml | 10 --------- src/runtime-rs/crates/hypervisor/Cargo.toml | 2 +- 3 files changed, 8 insertions(+), 29 deletions(-) diff --git a/src/dragonball/Cargo.toml b/src/dragonball/Cargo.toml index b103d4f14..bccdd4442 100644 --- a/src/dragonball/Cargo.toml +++ b/src/dragonball/Cargo.toml @@ -12,15 +12,15 @@ edition = "2018" [dependencies] arc-swap = "1.5.0" bytes = "1.1.0" -dbs-address-space = "0.1.0" -dbs-allocator = "0.1.0" -dbs-arch = "0.1.0" -dbs-boot = "0.2.0" -dbs-device = "0.1.0" -dbs-interrupt = { version = "0.1.0", features = ["kvm-irq"] } +dbs-address-space = "0.2.1" +dbs-allocator = "0.1.1" +dbs-arch = "0.2.0" +dbs-boot = "0.3.0" +dbs-device = "0.2.0" +dbs-interrupt = { version = "0.2.0", features = ["kvm-irq"] } dbs-legacy-devices = "0.1.0" dbs-upcall = { version = "0.1.0", optional = true } -dbs-utils = "0.1.0" +dbs-utils = "0.2.0" dbs-virtio-devices = { version = "0.1.0", optional = true, features = ["virtio-mmio"] } kvm-bindings = "0.5.0" kvm-ioctls = "0.11.0" @@ -54,14 +54,3 @@ virtio-blk = ["dbs-virtio-devices/virtio-blk", "virtio-queue"] virtio-net = ["dbs-virtio-devices/virtio-net", "virtio-queue"] # virtio-fs only work on atomic-guest-memory virtio-fs = ["dbs-virtio-devices/virtio-fs", "virtio-queue", "atomic-guest-memory"] - -[patch.'crates-io'] -dbs-device = { git = "https://github.com/openanolis/dragonball-sandbox.git", rev = "c3d7831aee7c3962b8a90f0afbfd0fb7e4d30323" } -dbs-interrupt = { git = "https://github.com/openanolis/dragonball-sandbox.git", rev = "c3d7831aee7c3962b8a90f0afbfd0fb7e4d30323" } -dbs-legacy-devices = { git = "https://github.com/openanolis/dragonball-sandbox.git", rev = "c3d7831aee7c3962b8a90f0afbfd0fb7e4d30323" } -dbs-upcall = { git = "https://github.com/openanolis/dragonball-sandbox.git", rev = "c3d7831aee7c3962b8a90f0afbfd0fb7e4d30323" } -dbs-utils = { git = "https://github.com/openanolis/dragonball-sandbox.git", rev = "c3d7831aee7c3962b8a90f0afbfd0fb7e4d30323" } -dbs-virtio-devices = { git = "https://github.com/openanolis/dragonball-sandbox.git", rev = "c3d7831aee7c3962b8a90f0afbfd0fb7e4d30323" } -dbs-boot = { git = "https://github.com/openanolis/dragonball-sandbox.git", rev = "c3d7831aee7c3962b8a90f0afbfd0fb7e4d30323" } -dbs-arch = { git = "https://github.com/openanolis/dragonball-sandbox.git", rev = "c3d7831aee7c3962b8a90f0afbfd0fb7e4d30323" } -dbs-address-space = { git = "https://github.com/openanolis/dragonball-sandbox.git", rev = "c3d7831aee7c3962b8a90f0afbfd0fb7e4d30323" } diff --git a/src/runtime-rs/Cargo.toml b/src/runtime-rs/Cargo.toml index 99284a8e7..414b70725 100644 --- a/src/runtime-rs/Cargo.toml +++ b/src/runtime-rs/Cargo.toml @@ -2,13 +2,3 @@ members = [ "crates/shim", ] - -[patch.'crates-io'] -dbs-address-space = { git = "https://github.com/openanolis/dragonball-sandbox.git", rev = "c3d7831aee7c3962b8a90f0afbfd0fb7e4d30323" } -dbs-device = { git = "https://github.com/openanolis/dragonball-sandbox.git", rev = "c3d7831aee7c3962b8a90f0afbfd0fb7e4d30323" } -dbs-utils = { git = "https://github.com/openanolis/dragonball-sandbox.git", rev = "c3d7831aee7c3962b8a90f0afbfd0fb7e4d30323" } -dbs-interrupt = { git = "https://github.com/openanolis/dragonball-sandbox.git", rev = "c3d7831aee7c3962b8a90f0afbfd0fb7e4d30323" } -dbs-legacy-devices = { git = "https://github.com/openanolis/dragonball-sandbox.git", rev = "c3d7831aee7c3962b8a90f0afbfd0fb7e4d30323" } -dbs-virtio-devices = { git = "https://github.com/openanolis/dragonball-sandbox.git", rev = "c3d7831aee7c3962b8a90f0afbfd0fb7e4d30323" } -dbs-boot = { git = "https://github.com/openanolis/dragonball-sandbox.git", rev = "c3d7831aee7c3962b8a90f0afbfd0fb7e4d30323" } -dbs-arch = { git = "https://github.com/openanolis/dragonball-sandbox.git", rev = "c3d7831aee7c3962b8a90f0afbfd0fb7e4d30323" } diff --git a/src/runtime-rs/crates/hypervisor/Cargo.toml b/src/runtime-rs/crates/hypervisor/Cargo.toml index 7afd63850..0106291bf 100644 --- a/src/runtime-rs/crates/hypervisor/Cargo.toml +++ b/src/runtime-rs/crates/hypervisor/Cargo.toml @@ -10,7 +10,7 @@ license = "Apache-2.0" [dependencies] anyhow = "^1.0" async-trait = "0.1.48" -dbs-utils = "0.1.0" +dbs-utils = "0.2.0" go-flag = "0.1.0" libc = ">=0.2.39" nix = "0.24.2" From f8f97c1e222c5cf17079cbb7a5324036344711cf Mon Sep 17 00:00:00 2001 From: Ji-Xinyou Date: Thu, 8 Sep 2022 14:13:41 +0800 Subject: [PATCH 18/37] feat(shim-mgmt): iptables handler Support the handlers in runtime, which are used by kata-ctl iptables series of commands in runtime. Fixes: #5370 Signed-off-by: Ji-Xinyou --- src/runtime-rs/crates/agent/src/kata/agent.rs | 4 +- src/runtime-rs/crates/agent/src/kata/trans.rs | 52 ++++++++++++++--- src/runtime-rs/crates/agent/src/lib.rs | 13 +++-- src/runtime-rs/crates/agent/src/types.rs | 21 +++++++ .../crates/runtimes/common/src/sandbox.rs | 4 ++ .../crates/runtimes/src/shim_mgmt/client.rs | 20 ++++++- .../crates/runtimes/src/shim_mgmt/handlers.rs | 57 ++++++++++++++++++- .../runtimes/virt_container/src/sandbox.rs | 26 ++++++++- 8 files changed, 179 insertions(+), 18 deletions(-) diff --git a/src/runtime-rs/crates/agent/src/kata/agent.rs b/src/runtime-rs/crates/agent/src/kata/agent.rs index dcd11b9e2..b403f0f44 100644 --- a/src/runtime-rs/crates/agent/src/kata/agent.rs +++ b/src/runtime-rs/crates/agent/src/kata/agent.rs @@ -113,5 +113,7 @@ impl_agent!( create_sandbox | crate::CreateSandboxRequest | crate::Empty | None, destroy_sandbox | crate::Empty | crate::Empty | None, copy_file | crate::CopyFileRequest | crate::Empty | None, - get_oom_event | crate::Empty | crate::OomEventResponse | Some(0) + get_oom_event | crate::Empty | crate::OomEventResponse | Some(0), + get_ip_tables | crate::GetIPTablesRequest | crate::GetIPTablesResponse | None, + set_ip_tables | crate::SetIPTablesRequest | crate::SetIPTablesResponse | None ); diff --git a/src/runtime-rs/crates/agent/src/kata/trans.rs b/src/runtime-rs/crates/agent/src/kata/trans.rs index e7fdaa944..4ac0c45ec 100644 --- a/src/runtime-rs/crates/agent/src/kata/trans.rs +++ b/src/runtime-rs/crates/agent/src/kata/trans.rs @@ -16,14 +16,15 @@ use crate::{ ARPNeighbor, ARPNeighbors, AddArpNeighborRequest, AgentDetails, BlkioStats, BlkioStatsEntry, CgroupStats, CheckRequest, CloseStdinRequest, ContainerID, CopyFileRequest, CpuStats, CpuUsage, CreateContainerRequest, CreateSandboxRequest, Device, - Empty, ExecProcessRequest, FSGroup, FSGroupChangePolicy, GuestDetailsResponse, - HealthCheckResponse, HugetlbStats, IPAddress, IPFamily, Interface, Interfaces, - KernelModule, MemHotplugByProbeRequest, MemoryData, MemoryStats, NetworkStats, - OnlineCPUMemRequest, PidsStats, ReadStreamRequest, ReadStreamResponse, - RemoveContainerRequest, ReseedRandomDevRequest, Route, Routes, SetGuestDateTimeRequest, - SignalProcessRequest, StatsContainerResponse, Storage, StringUser, ThrottlingData, - TtyWinResizeRequest, UpdateContainerRequest, UpdateInterfaceRequest, UpdateRoutesRequest, - VersionCheckResponse, WaitProcessRequest, WriteStreamRequest, + Empty, ExecProcessRequest, FSGroup, FSGroupChangePolicy, GetIPTablesRequest, + GetIPTablesResponse, GuestDetailsResponse, HealthCheckResponse, HugetlbStats, IPAddress, + IPFamily, Interface, Interfaces, KernelModule, MemHotplugByProbeRequest, MemoryData, + MemoryStats, NetworkStats, OnlineCPUMemRequest, PidsStats, ReadStreamRequest, + ReadStreamResponse, RemoveContainerRequest, ReseedRandomDevRequest, Route, Routes, + SetGuestDateTimeRequest, SetIPTablesRequest, SetIPTablesResponse, SignalProcessRequest, + StatsContainerResponse, Storage, StringUser, ThrottlingData, TtyWinResizeRequest, + UpdateContainerRequest, UpdateInterfaceRequest, UpdateRoutesRequest, VersionCheckResponse, + WaitProcessRequest, WriteStreamRequest, }, OomEventResponse, WaitProcessResponse, WriteStreamResponse, }; @@ -388,6 +389,41 @@ impl From for WriteStreamResponse { } } +impl From for agent::GetIPTablesRequest { + fn from(from: GetIPTablesRequest) -> Self { + Self { + is_ipv6: from.is_ipv6, + ..Default::default() + } + } +} + +impl From for GetIPTablesResponse { + fn from(from: agent::GetIPTablesResponse) -> Self { + Self { + data: from.get_data().to_vec(), + } + } +} + +impl From for agent::SetIPTablesRequest { + fn from(from: SetIPTablesRequest) -> Self { + Self { + is_ipv6: from.is_ipv6, + data: from.data, + ..Default::default() + } + } +} + +impl From for SetIPTablesResponse { + fn from(from: agent::SetIPTablesResponse) -> Self { + Self { + data: from.get_data().to_vec(), + } + } +} + impl From for agent::ExecProcessRequest { fn from(from: ExecProcessRequest) -> Self { Self { diff --git a/src/runtime-rs/crates/agent/src/lib.rs b/src/runtime-rs/crates/agent/src/lib.rs index 8c41d751f..8ef76ebbe 100644 --- a/src/runtime-rs/crates/agent/src/lib.rs +++ b/src/runtime-rs/crates/agent/src/lib.rs @@ -16,11 +16,12 @@ pub mod types; pub use types::{ ARPNeighbor, ARPNeighbors, AddArpNeighborRequest, BlkioStatsEntry, CheckRequest, CloseStdinRequest, ContainerID, ContainerProcessID, CopyFileRequest, CreateContainerRequest, - CreateSandboxRequest, Empty, ExecProcessRequest, GetGuestDetailsRequest, GuestDetailsResponse, - HealthCheckResponse, IPAddress, IPFamily, Interface, Interfaces, ListProcessesRequest, - MemHotplugByProbeRequest, OnlineCPUMemRequest, OomEventResponse, ReadStreamRequest, - ReadStreamResponse, RemoveContainerRequest, ReseedRandomDevRequest, Route, Routes, - SetGuestDateTimeRequest, SignalProcessRequest, StatsContainerResponse, Storage, + CreateSandboxRequest, Empty, ExecProcessRequest, GetGuestDetailsRequest, GetIPTablesRequest, + GetIPTablesResponse, GuestDetailsResponse, HealthCheckResponse, IPAddress, IPFamily, Interface, + Interfaces, ListProcessesRequest, MemHotplugByProbeRequest, OnlineCPUMemRequest, + OomEventResponse, ReadStreamRequest, ReadStreamResponse, RemoveContainerRequest, + ReseedRandomDevRequest, Route, Routes, SetGuestDateTimeRequest, SetIPTablesRequest, + SetIPTablesResponse, SignalProcessRequest, StatsContainerResponse, Storage, TtyWinResizeRequest, UpdateContainerRequest, UpdateInterfaceRequest, UpdateRoutesRequest, VersionCheckResponse, WaitProcessRequest, WaitProcessResponse, WriteStreamRequest, WriteStreamResponse, @@ -85,4 +86,6 @@ pub trait Agent: AgentManager + HealthService + Send + Sync { // utils async fn copy_file(&self, req: CopyFileRequest) -> Result; async fn get_oom_event(&self, req: Empty) -> Result; + async fn get_ip_tables(&self, req: GetIPTablesRequest) -> Result; + async fn set_ip_tables(&self, req: SetIPTablesRequest) -> Result; } diff --git a/src/runtime-rs/crates/agent/src/types.rs b/src/runtime-rs/crates/agent/src/types.rs index eb5422e16..4c71534ec 100644 --- a/src/runtime-rs/crates/agent/src/types.rs +++ b/src/runtime-rs/crates/agent/src/types.rs @@ -205,6 +205,27 @@ pub struct UpdateContainerRequest { pub mounts: Vec, } +#[derive(PartialEq, Clone, Default, Debug)] +pub struct GetIPTablesRequest { + pub is_ipv6: bool, +} + +#[derive(PartialEq, Clone, Default, Debug)] +pub struct GetIPTablesResponse { + pub data: Vec, +} + +#[derive(PartialEq, Clone, Default, Debug)] +pub struct SetIPTablesRequest { + pub is_ipv6: bool, + pub data: Vec, +} + +#[derive(PartialEq, Clone, Default, Debug)] +pub struct SetIPTablesResponse { + pub data: Vec, +} + #[derive(PartialEq, Clone, Default)] pub struct WriteStreamRequest { pub process_id: ContainerProcessID, diff --git a/src/runtime-rs/crates/runtimes/common/src/sandbox.rs b/src/runtime-rs/crates/runtimes/common/src/sandbox.rs index 269a3586e..5ac028ddb 100644 --- a/src/runtime-rs/crates/runtimes/common/src/sandbox.rs +++ b/src/runtime-rs/crates/runtimes/common/src/sandbox.rs @@ -16,4 +16,8 @@ pub trait Sandbox: Send + Sync { // agent function async fn agent_sock(&self) -> Result; + + // utils + async fn set_iptables(&self, is_ipv6: bool, data: Vec) -> Result>; + async fn get_iptables(&self, is_ipv6: bool) -> Result>; } diff --git a/src/runtime-rs/crates/runtimes/src/shim_mgmt/client.rs b/src/runtime-rs/crates/runtimes/src/shim_mgmt/client.rs index 267de2428..5084c9f0f 100644 --- a/src/runtime-rs/crates/runtimes/src/shim_mgmt/client.rs +++ b/src/runtime-rs/crates/runtimes/src/shim_mgmt/client.rs @@ -12,7 +12,7 @@ use std::{path::Path, path::PathBuf, time::Duration}; use super::server::mgmt_socket_addr; use anyhow::{anyhow, Context, Result}; -use hyper::{Body, Client, Response}; +use hyper::{Body, Client, Method, Request, Response}; use hyperlocal::{UnixClientExt, UnixConnector, Uri}; /// Shim management client with timeout @@ -58,4 +58,22 @@ impl MgmtClient { None => work.await.context("failed to GET"), } } + + /// The http PUT method for client + pub async fn put(&self, uri: &str, data: Vec) -> Result> { + let url: hyper::Uri = Uri::new(&self.sock_path, uri).into(); + let request = Request::builder() + .method(Method::PUT) + .uri(url) + .body(Body::from(data)) + .unwrap(); + let work = self.client.request(request); + match self.timeout { + Some(timeout) => match tokio::time::timeout(timeout, work).await { + Ok(result) => result.map_err(|e| anyhow!(e)), + Err(_) => Err(anyhow!("TIMEOUT")), + }, + None => work.await.context("failed to PUT"), + } + } } diff --git a/src/runtime-rs/crates/runtimes/src/shim_mgmt/handlers.rs b/src/runtime-rs/crates/runtimes/src/shim_mgmt/handlers.rs index 4d98da149..94fd682eb 100644 --- a/src/runtime-rs/crates/runtimes/src/shim_mgmt/handlers.rs +++ b/src/runtime-rs/crates/runtimes/src/shim_mgmt/handlers.rs @@ -7,11 +7,12 @@ // This defines the handlers corresponding to the url when a request is sent to destined url, // the handler function should be invoked, and the corresponding data will be in the response +use anyhow::{anyhow, Result}; use common::Sandbox; -use hyper::{Body, Method, Request, Response, Result, StatusCode}; +use hyper::{Body, Method, Request, Response, StatusCode}; use std::sync::Arc; -use super::server::AGENT_URL; +use super::server::{AGENT_URL, IP6_TABLE_URL, IP_TABLE_URL}; // main router for response, this works as a multiplexer on // http arrival which invokes the corresponding handler function @@ -27,6 +28,12 @@ pub(crate) async fn handler_mux( ); match (req.method(), req.uri().path()) { (&Method::GET, AGENT_URL) => agent_url_handler(sandbox, req).await, + (&Method::PUT, IP_TABLE_URL) | (&Method::GET, IP_TABLE_URL) => { + ip_table_handler(sandbox, req).await + } + (&Method::PUT, IP6_TABLE_URL) | (&Method::GET, IP6_TABLE_URL) => { + ipv6_table_handler(sandbox, req).await + } _ => Ok(not_found(req).await), } } @@ -50,3 +57,49 @@ async fn agent_url_handler( .unwrap_or_else(|_| String::from("")); Ok(Response::new(Body::from(agent_sock))) } + +/// the ipv4 handler of iptable operation +async fn ip_table_handler(sandbox: Arc, req: Request) -> Result> { + generic_ip_table_handler(sandbox, req, false).await +} + +/// the ipv6 handler of iptable operation +async fn ipv6_table_handler( + sandbox: Arc, + req: Request, +) -> Result> { + generic_ip_table_handler(sandbox, req, true).await +} + +/// the generic iptable handler, for both ipv4 and ipv6 +/// this requires iptables-series binaries to be inside guest rootfs +async fn generic_ip_table_handler( + sandbox: Arc, + req: Request, + is_ipv6: bool, +) -> Result> { + info!(sl!(), "handler: iptable ipv6?: {}", is_ipv6); + match *req.method() { + Method::GET => match sandbox.get_iptables(is_ipv6).await { + Ok(data) => { + let body = Body::from(data); + Response::builder().body(body).map_err(|e| anyhow!(e)) + } + _ => { + Err(anyhow!("Failed to get iptable")) + } + }, + + Method::PUT => { + let data = hyper::body::to_bytes(req.into_body()).await?; + match sandbox.set_iptables(is_ipv6, data.to_vec()).await { + Ok(resp_data) => Response::builder() + .body(Body::from(resp_data)) + .map_err(|e| anyhow!(e)), + _ => Err(anyhow!("Failed to set iptable")), + } + } + + _ => Err(anyhow!("IP Tables only takes PUT and GET")), + } +} diff --git a/src/runtime-rs/crates/runtimes/virt_container/src/sandbox.rs b/src/runtime-rs/crates/runtimes/virt_container/src/sandbox.rs index 968c16441..067cf389e 100644 --- a/src/runtime-rs/crates/runtimes/virt_container/src/sandbox.rs +++ b/src/runtime-rs/crates/runtimes/virt_container/src/sandbox.rs @@ -6,7 +6,9 @@ use std::sync::Arc; -use agent::{self, kata::KataAgent, types::KernelModule, Agent}; +use agent::{ + self, kata::KataAgent, types::KernelModule, Agent, GetIPTablesRequest, SetIPTablesRequest, +}; use anyhow::{anyhow, Context, Result}; use async_trait::async_trait; use common::{ @@ -269,6 +271,28 @@ impl Sandbox for VirtSandbox { async fn agent_sock(&self) -> Result { self.agent.agent_sock().await } + + async fn set_iptables(&self, is_ipv6: bool, data: Vec) -> Result> { + info!(sl!(), "sb: set_iptables invoked"); + let req = SetIPTablesRequest { is_ipv6, data }; + let resp = self + .agent + .set_ip_tables(req) + .await + .context("sandbox: failed to set iptables")?; + Ok(resp.data) + } + + async fn get_iptables(&self, is_ipv6: bool) -> Result> { + info!(sl!(), "sb: get_iptables invoked"); + let req = GetIPTablesRequest { is_ipv6 }; + let resp = self + .agent + .get_ip_tables(req) + .await + .context("sandbox: failed to get iptables")?; + Ok(resp.data) + } } #[async_trait] From 8be08173050b616c2cc52369413663d698ef323c Mon Sep 17 00:00:00 2001 From: Gabriela Cervantes Date: Wed, 9 Nov 2022 17:09:13 +0000 Subject: [PATCH 19/37] tools: Fix indentation of build static virtiofsd script This Pr removes single spaces and fix the indentation of the script. Fixes #5630 Signed-off-by: Gabriela Cervantes --- .../virtiofsd/build-static-virtiofsd.sh | 102 +++++++++--------- 1 file changed, 51 insertions(+), 51 deletions(-) diff --git a/tools/packaging/static-build/virtiofsd/build-static-virtiofsd.sh b/tools/packaging/static-build/virtiofsd/build-static-virtiofsd.sh index 8b0a04826..4f4f05f0d 100755 --- a/tools/packaging/static-build/virtiofsd/build-static-virtiofsd.sh +++ b/tools/packaging/static-build/virtiofsd/build-static-virtiofsd.sh @@ -27,70 +27,70 @@ virtiofsd_zip="${virtiofsd_zip:-}" [ -d "virtiofsd" ] && rm -r virtiofsd pull_virtiofsd_released_binary() { - if [ "${ARCH}" != "x86_64" ]; then - info "Only x86_64 binaries are distributed as part of the virtiofsd releases" && return 1 - fi - info "Download virtiofsd version: ${virtiofsd_version}" + if [ "${ARCH}" != "x86_64" ]; then + info "Only x86_64 binaries are distributed as part of the virtiofsd releases" && return 1 + fi + info "Download virtiofsd version: ${virtiofsd_version}" - mkdir -p virtiofsd + mkdir -p virtiofsd - pushd virtiofsd - curl --fail -L ${virtiofsd_zip} -o virtiofsd.zip || return 1 - unzip virtiofsd.zip - mv -f target/x86_64-unknown-linux-musl/release/virtiofsd virtiofsd - chmod +x virtiofsd - rm -rf target - rm virtiofsd.zip - popd + pushd virtiofsd + curl --fail -L ${virtiofsd_zip} -o virtiofsd.zip || return 1 + unzip virtiofsd.zip + mv -f target/x86_64-unknown-linux-musl/release/virtiofsd virtiofsd + chmod +x virtiofsd + rm -rf target + rm virtiofsd.zip + popd } init_env() { - source "$HOME/.cargo/env" + source "$HOME/.cargo/env" - extra_rust_flags=" -C link-self-contained=yes" - case ${ARCH} in - "aarch64") - LIBC="musl" - ARCH_LIBC="" - ;; - "ppc64le") - LIBC="gnu" - ARCH="powerpc64le" - ARCH_LIBC=${ARCH}-linux-${LIBC} - ;; - "s390x") - LIBC="gnu" - ARCH_LIBC=${ARCH}-linux-${LIBC} - extra_rust_flags="" - ;; - "x86_64") - LIBC="musl" - ARCH_LIBC="" - ;; - esac + extra_rust_flags=" -C link-self-contained=yes" + case ${ARCH} in + "aarch64") + LIBC="musl" + ARCH_LIBC="" + ;; + "ppc64le") + LIBC="gnu" + ARCH="powerpc64le" + ARCH_LIBC=${ARCH}-linux-${LIBC} + ;; + "s390x") + LIBC="gnu" + ARCH_LIBC=${ARCH}-linux-${LIBC} + extra_rust_flags="" + ;; + "x86_64") + LIBC="musl" + ARCH_LIBC="" + ;; + esac } - + build_virtiofsd_from_source() { - echo "build viriofsd from source" - init_env + echo "build viriofsd from source" + init_env - git clone --depth 1 --branch ${virtiofsd_version} ${virtiofsd_repo} virtiofsd - pushd virtiofsd + git clone --depth 1 --branch ${virtiofsd_version} ${virtiofsd_repo} virtiofsd + pushd virtiofsd - export RUSTFLAGS='-C target-feature=+crt-static'${extra_rust_flags} - export LIBSECCOMP_LINK_TYPE=static - export LIBSECCOMP_LIB_PATH=/usr/lib/${ARCH_LIBC} - export LIBCAPNG_LINK_TYPE=static - export LIBCAPNG_LIB_PATH=/usr/lib/${ARCH_LIBC} - - cargo build --release --target ${ARCH}-unknown-linux-${LIBC} + export RUSTFLAGS='-C target-feature=+crt-static'${extra_rust_flags} + export LIBSECCOMP_LINK_TYPE=static + export LIBSECCOMP_LIB_PATH=/usr/lib/${ARCH_LIBC} + export LIBCAPNG_LINK_TYPE=static + export LIBCAPNG_LIB_PATH=/usr/lib/${ARCH_LIBC} - binary=$(find ./ -name virtiofsd) - mv -f ${binary} . - chmod +x virtiofsd + cargo build --release --target ${ARCH}-unknown-linux-${LIBC} - popd + binary=$(find ./ -name virtiofsd) + mv -f ${binary} . + chmod +x virtiofsd + + popd } pull_virtiofsd_released_binary || build_virtiofsd_from_source From f45fe4f90d9aab0e6738abd550f930a8a758e6d2 Mon Sep 17 00:00:00 2001 From: Chao Wu Date: Thu, 10 Nov 2022 19:13:23 +0800 Subject: [PATCH 20/37] versions: update vmm-sys-util and related crates to v0.11.0 Since the upstream of vmm-sys-utils upgraded to 0.11.0, some crates automatically upgrade to v0.11.0, and some stay at v0.10.0 ( depending on how they write version dependency in Cargo toml` which causes the compile error in runtime-rs. In order to fix this problem, we need to upgrade all vmm-sys-util dependencies in runtime-rs to v0.11.0. fixes: #5636 Signed-off-by: Chao Wu --- src/dragonball/Cargo.toml | 6 +- src/runtime-rs/Cargo.lock | 183 +++++++------------- src/runtime-rs/crates/hypervisor/Cargo.toml | 2 +- 3 files changed, 71 insertions(+), 120 deletions(-) diff --git a/src/dragonball/Cargo.toml b/src/dragonball/Cargo.toml index bccdd4442..9ef43a3e2 100644 --- a/src/dragonball/Cargo.toml +++ b/src/dragonball/Cargo.toml @@ -12,8 +12,8 @@ edition = "2018" [dependencies] arc-swap = "1.5.0" bytes = "1.1.0" -dbs-address-space = "0.2.1" -dbs-allocator = "0.1.1" +dbs-address-space = "0.2.0" +dbs-allocator = "0.1.0" dbs-arch = "0.2.0" dbs-boot = "0.3.0" dbs-device = "0.2.0" @@ -36,7 +36,7 @@ serde_json = "1.0.9" slog = "2.5.2" slog-scope = "4.4.0" thiserror = "1" -vmm-sys-util = "0.10.0" +vmm-sys-util = "0.11.0" virtio-queue = { version = "0.4.0", optional = true } vm-memory = { version = "0.9.0", features = ["backend-mmap"] } diff --git a/src/runtime-rs/Cargo.lock b/src/runtime-rs/Cargo.lock index d0fed4efc..c91d0f3b8 100644 --- a/src/runtime-rs/Cargo.lock +++ b/src/runtime-rs/Cargo.lock @@ -535,41 +535,6 @@ dependencies = [ "syn", ] -[[package]] -name = "darling" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c" -dependencies = [ - "darling_core", - "darling_macro", -] - -[[package]] -name = "darling_core" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim", - "syn", -] - -[[package]] -name = "darling_macro" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" -dependencies = [ - "darling_core", - "quote", - "syn", -] - [[package]] name = "dashmap" version = "4.0.2" @@ -582,15 +547,16 @@ dependencies = [ [[package]] name = "dbs-address-space" -version = "0.1.0" -source = "git+https://github.com/openanolis/dragonball-sandbox.git?rev=c3d7831aee7c3962b8a90f0afbfd0fb7e4d30323#c3d7831aee7c3962b8a90f0afbfd0fb7e4d30323" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bcc37dc0b8ffae1c5911d13ae630dc7a9020fa0de0edd178d6ab71daf56c8fc" dependencies = [ "arc-swap", "libc", "nix 0.23.1", "thiserror", "vm-memory", - "vmm-sys-util", + "vmm-sys-util 0.11.0", ] [[package]] @@ -604,21 +570,23 @@ dependencies = [ [[package]] name = "dbs-arch" -version = "0.1.0" -source = "git+https://github.com/openanolis/dragonball-sandbox.git?rev=c3d7831aee7c3962b8a90f0afbfd0fb7e4d30323#c3d7831aee7c3962b8a90f0afbfd0fb7e4d30323" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f89357fc97fb3608473073be037ea0b22787b1fa4c68b8eb3dd51f3c5fd6b41" dependencies = [ "kvm-bindings", "kvm-ioctls", "libc", "memoffset", "vm-memory", - "vmm-sys-util", + "vmm-sys-util 0.11.0", ] [[package]] name = "dbs-boot" -version = "0.2.0" -source = "git+https://github.com/openanolis/dragonball-sandbox.git?rev=c3d7831aee7c3962b8a90f0afbfd0fb7e4d30323#c3d7831aee7c3962b8a90f0afbfd0fb7e4d30323" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e6930547e688d8527705d1b7c4163c090c8535b8dd526d8251aa4dfdcbf2f82" dependencies = [ "dbs-arch", "kvm-bindings", @@ -632,35 +600,38 @@ dependencies = [ [[package]] name = "dbs-device" -version = "0.1.0" -source = "git+https://github.com/openanolis/dragonball-sandbox.git?rev=c3d7831aee7c3962b8a90f0afbfd0fb7e4d30323#c3d7831aee7c3962b8a90f0afbfd0fb7e4d30323" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14ecea44b4bc861c0c2ccb51868bea781286dc70e40ae46b54d4511e690a654a" dependencies = [ "thiserror", ] [[package]] name = "dbs-interrupt" -version = "0.1.0" -source = "git+https://github.com/openanolis/dragonball-sandbox.git?rev=c3d7831aee7c3962b8a90f0afbfd0fb7e4d30323#c3d7831aee7c3962b8a90f0afbfd0fb7e4d30323" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15f217820329cea9d8d2870f9cdda426c5ca4379e33283c39338841a86bdc36c" dependencies = [ "dbs-device", "kvm-bindings", "kvm-ioctls", "libc", - "vmm-sys-util", + "vmm-sys-util 0.11.0", ] [[package]] name = "dbs-legacy-devices" -version = "0.1.0" -source = "git+https://github.com/openanolis/dragonball-sandbox.git?rev=c3d7831aee7c3962b8a90f0afbfd0fb7e4d30323#c3d7831aee7c3962b8a90f0afbfd0fb7e4d30323" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4d089ac1c4d186c8133be59de09462e9793f7add10017c5b040318a3a7f431f" dependencies = [ "dbs-device", "dbs-utils", "log", "serde", "vm-superio", - "vmm-sys-util", + "vmm-sys-util 0.11.0", ] [[package]] @@ -675,8 +646,9 @@ dependencies = [ [[package]] name = "dbs-utils" -version = "0.1.0" -source = "git+https://github.com/openanolis/dragonball-sandbox.git?rev=c3d7831aee7c3962b8a90f0afbfd0fb7e4d30323#c3d7831aee7c3962b8a90f0afbfd0fb7e4d30323" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0cb6ff873451b76e22789af7fbe1d0478c42c717f817e66908be7a3a2288068c" dependencies = [ "anyhow", "event-manager", @@ -685,13 +657,14 @@ dependencies = [ "serde", "thiserror", "timerfd", - "vmm-sys-util", + "vmm-sys-util 0.11.0", ] [[package]] name = "dbs-virtio-devices" -version = "0.1.0" -source = "git+https://github.com/openanolis/dragonball-sandbox.git?rev=c3d7831aee7c3962b8a90f0afbfd0fb7e4d30323#c3d7831aee7c3962b8a90f0afbfd0fb7e4d30323" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f70cc3a62fa1c169beca6921ef0d3cf38fdfe7cd732ac76c8517bc8a3df9338" dependencies = [ "byteorder", "caps", @@ -716,7 +689,7 @@ dependencies = [ "virtio-bindings", "virtio-queue", "vm-memory", - "vmm-sys-util", + "vmm-sys-util 0.11.0", ] [[package]] @@ -781,7 +754,7 @@ dependencies = [ "thiserror", "virtio-queue", "vm-memory", - "vmm-sys-util", + "vmm-sys-util 0.11.0", ] [[package]] @@ -834,7 +807,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "377fa591135fbe23396a18e2655a6d5481bf7c5823cdfa3cc81b01a229cbe640" dependencies = [ "libc", - "vmm-sys-util", + "vmm-sys-util 0.11.0", ] [[package]] @@ -917,7 +890,7 @@ dependencies = [ "tokio-uring", "virtio-queue", "vm-memory", - "vmm-sys-util", + "vmm-sys-util 0.10.0", ] [[package]] @@ -1246,7 +1219,7 @@ dependencies = [ "slog-scope", "thiserror", "tokio", - "vmm-sys-util", + "vmm-sys-util 0.11.0", ] [[package]] @@ -1262,12 +1235,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "ident_case" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" - [[package]] name = "idna" version = "0.2.3" @@ -1413,7 +1380,7 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a78c049190826fff959994b7c1d8a2930d0a348f1b8f3aa4f9bb34cd5d7f2952" dependencies = [ - "vmm-sys-util", + "vmm-sys-util 0.11.0", ] [[package]] @@ -1424,7 +1391,7 @@ checksum = "97422ba48d7ffb66fd4d18130f72ab66f9bbbf791fb7a87b9291cdcfec437593" dependencies = [ "kvm-bindings", "libc", - "vmm-sys-util", + "vmm-sys-util 0.11.0", ] [[package]] @@ -1706,8 +1673,9 @@ dependencies = [ [[package]] name = "nydus-api" -version = "0.1.1" -source = "git+https://github.com/dragonflyoss/image-service.git?rev=e429be3e8623d47db0f97186f761aeda2983c6f4#e429be3e8623d47db0f97186f761aeda2983c6f4" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61fbfbdb58ff07bed50b412d4315b3c5808979bb5decb56706ac66d53daf2cf3" dependencies = [ "dbs-uhttp", "http", @@ -1721,13 +1689,14 @@ dependencies = [ "serde_derive", "serde_json", "url", - "vmm-sys-util", + "vmm-sys-util 0.10.0", ] [[package]] name = "nydus-blobfs" -version = "0.1.0" -source = "git+https://github.com/dragonflyoss/image-service.git?rev=e429be3e8623d47db0f97186f761aeda2983c6f4#e429be3e8623d47db0f97186f761aeda2983c6f4" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ef818ecadc217f49ce8d48506b885d8d26f877d26b0108d90d8b82547663d95" dependencies = [ "fuse-backend-rs", "libc", @@ -1737,14 +1706,14 @@ dependencies = [ "nydus-storage", "serde", "serde_json", - "serde_with", "vm-memory", ] [[package]] name = "nydus-error" -version = "0.2.1" -source = "git+https://github.com/dragonflyoss/image-service.git?rev=e429be3e8623d47db0f97186f761aeda2983c6f4#e429be3e8623d47db0f97186f761aeda2983c6f4" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90960fb7268286328d11f18e747bed58d8e3bbea6f401bd316e91fe39f4f7213" dependencies = [ "backtrace", "httpdate", @@ -1756,14 +1725,14 @@ dependencies = [ [[package]] name = "nydus-rafs" -version = "0.1.0" -source = "git+https://github.com/dragonflyoss/image-service.git?rev=e429be3e8623d47db0f97186f761aeda2983c6f4#e429be3e8623d47db0f97186f761aeda2983c6f4" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4a06e8b0b4a90acc2d128d2f3b1ab6ae5d325116f1f69754bd3628dbd4499f4" dependencies = [ "anyhow", "arc-swap", "bitflags", "blake3", - "flate2", "fuse-backend-rs", "futures 0.3.21", "lazy_static", @@ -1777,7 +1746,6 @@ dependencies = [ "nydus-utils", "serde", "serde_json", - "serde_with", "sha2 0.10.5", "spmc", "vm-memory", @@ -1785,8 +1753,9 @@ dependencies = [ [[package]] name = "nydus-storage" -version = "0.5.0" -source = "git+https://github.com/dragonflyoss/image-service.git?rev=e429be3e8623d47db0f97186f761aeda2983c6f4#e429be3e8623d47db0f97186f761aeda2983c6f4" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5dd10c443f47a0ac7d71021f7658a605c2be5b46576a91f3238babbaf3f459e" dependencies = [ "anyhow", "arc-swap", @@ -1804,17 +1773,17 @@ dependencies = [ "nydus-utils", "serde", "serde_json", - "serde_with", "sha2 0.10.5", "tokio", "vm-memory", - "vmm-sys-util", + "vmm-sys-util 0.10.0", ] [[package]] name = "nydus-utils" -version = "0.3.1" -source = "git+https://github.com/dragonflyoss/image-service.git?rev=e429be3e8623d47db0f97186f761aeda2983c6f4#e429be3e8623d47db0f97186f761aeda2983c6f4" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b7e976c67052c3ff63372e2a07701923796d25a77eac605824b26d406ab0918" dependencies = [ "blake3", "flate2", @@ -2461,28 +2430,6 @@ dependencies = [ "serde", ] -[[package]] -name = "serde_with" -version = "1.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "678b5a069e50bf00ecd22d0cd8ddf7c236f68581b03db652061ed5eb13a312ff" -dependencies = [ - "serde", - "serde_with_macros", -] - -[[package]] -name = "serde_with_macros" -version = "1.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e182d6ec6f05393cc0e5ed1bf81ad6db3a8feedf8ee515ecdd369809bcce8082" -dependencies = [ - "darling", - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "serial_test" version = "0.5.1" @@ -2666,12 +2613,6 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "02a8428da277a8e3a15271d79943e80ccc2ef254e78813a166a08d65e4c3ece5" -[[package]] -name = "strsim" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" - [[package]] name = "strum" version = "0.24.0" @@ -3118,7 +3059,7 @@ checksum = "519c0a333c871650269cba303bc108075d52a0c0d64f9b91fae61829b53725af" dependencies = [ "log", "vm-memory", - "vmm-sys-util", + "vmm-sys-util 0.11.0", ] [[package]] @@ -3154,6 +3095,16 @@ dependencies = [ "libc", ] +[[package]] +name = "vmm-sys-util" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc06a16ee8ebf0d9269aed304030b0d20a866b8b3dd3d4ce532596ac567a0d24" +dependencies = [ + "bitflags", + "libc", +] + [[package]] name = "vsock" version = "0.2.6" diff --git a/src/runtime-rs/crates/hypervisor/Cargo.toml b/src/runtime-rs/crates/hypervisor/Cargo.toml index 0106291bf..b1e5c8e2e 100644 --- a/src/runtime-rs/crates/hypervisor/Cargo.toml +++ b/src/runtime-rs/crates/hypervisor/Cargo.toml @@ -22,7 +22,7 @@ slog = "2.5.2" slog-scope = "4.4.0" thiserror = "1.0" tokio = { version = "1.8.0", features = ["sync"] } -vmm-sys-util = "0.10.0" +vmm-sys-util = "0.11.0" kata-sys-util = { path = "../../../libs/kata-sys-util" } kata-types = { path = "../../../libs/kata-types" } From 2631b08ff109c433ea79bd8122e31cb0200ca483 Mon Sep 17 00:00:00 2001 From: Alexandru Matei Date: Thu, 10 Nov 2022 14:06:13 +0200 Subject: [PATCH 21/37] clh: don't try to stop clh multiple times Avoid executing StopVM concurrently when virtiofs dies as a result of clh being stopped in StopVM. Fixes: #5622 Signed-off-by: Alexandru Matei --- src/runtime/virtcontainers/clh.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/runtime/virtcontainers/clh.go b/src/runtime/virtcontainers/clh.go index a0f08e8cb..4ea297cbd 100644 --- a/src/runtime/virtcontainers/clh.go +++ b/src/runtime/virtcontainers/clh.go @@ -24,6 +24,8 @@ import ( "regexp" "strconv" "strings" + "sync" + "sync/atomic" "syscall" "time" @@ -256,6 +258,8 @@ type cloudHypervisor struct { vmconfig chclient.VmConfig state CloudHypervisorState config HypervisorConfig + stopped int32 + mu sync.Mutex } var clhKernelParams = []Param{ @@ -1081,9 +1085,21 @@ func (clh *cloudHypervisor) ResumeVM(ctx context.Context) error { // StopVM will stop the Sandbox's VM. func (clh *cloudHypervisor) StopVM(ctx context.Context, waitOnly bool) (err error) { + clh.mu.Lock() + defer func() { + if err == nil { + atomic.StoreInt32(&clh.stopped, 1) + } + clh.mu.Unlock() + }() span, _ := katatrace.Trace(ctx, clh.Logger(), "StopVM", clhTracingTags, map[string]string{"sandbox_id": clh.id}) defer span.End() clh.Logger().WithField("function", "StopVM").Info("Stop Sandbox") + if atomic.LoadInt32(&clh.stopped) != 0 { + clh.Logger().Info("Already stopped") + return nil + } + return clh.terminate(ctx, waitOnly) } From 9ef68e0c7adc75e73e9a1b2827313c26c7551f51 Mon Sep 17 00:00:00 2001 From: Alexandru Matei Date: Thu, 10 Nov 2022 14:08:14 +0200 Subject: [PATCH 22/37] clh: fast exit from isClhRunning if the process was stopped Use atomic operations instead of acquiring a mutex in isClhRunning. This stops isClhRunning from generating a deadlock by trying to reacquire an already-acquired lock when called via StopVM->terminate. Signed-off-by: Alexandru Matei --- src/runtime/virtcontainers/clh.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/runtime/virtcontainers/clh.go b/src/runtime/virtcontainers/clh.go index 4ea297cbd..3319f7b91 100644 --- a/src/runtime/virtcontainers/clh.go +++ b/src/runtime/virtcontainers/clh.go @@ -1401,6 +1401,10 @@ func (clh *cloudHypervisor) isClhRunning(timeout uint) (bool, error) { pid := clh.state.PID + if atomic.LoadInt32(&clh.stopped) != 0 { + return false, nil + } + if err := syscall.Kill(pid, syscall.Signal(0)); err != nil { return false, nil } From 0e3ac66e761f8d41c91b5d07c985cedfa40790c0 Mon Sep 17 00:00:00 2001 From: Alexandru Matei Date: Tue, 8 Nov 2022 21:05:22 +0200 Subject: [PATCH 23/37] clh: return faster with dead clh process from isClhRunning Through proactively checking if Cloud Hypervisor process is dead, this patch provides a faster path for isClhRunning Fixes: #5623 Signed-off-by: Alexandru Matei --- src/runtime/virtcontainers/clh.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/runtime/virtcontainers/clh.go b/src/runtime/virtcontainers/clh.go index 3319f7b91..090e07475 100644 --- a/src/runtime/virtcontainers/clh.go +++ b/src/runtime/virtcontainers/clh.go @@ -1405,16 +1405,16 @@ func (clh *cloudHypervisor) isClhRunning(timeout uint) (bool, error) { return false, nil } - if err := syscall.Kill(pid, syscall.Signal(0)); err != nil { - return false, nil - } - timeStart := time.Now() cl := clh.client() for { + err := syscall.Kill(pid, syscall.Signal(0)) + if err != nil { + return false, nil + } ctx, cancel := context.WithTimeout(context.Background(), clh.getClhAPITimeout()*time.Second) - defer cancel() - _, _, err := cl.VmmPingGet(ctx) + _, _, err = cl.VmmPingGet(ctx) + cancel() if err == nil { return true, nil } else { From 7e481f217987d8b6835449a2a6b4ec85ba704efa Mon Sep 17 00:00:00 2001 From: Alexandru Matei Date: Tue, 8 Nov 2022 21:14:53 +0200 Subject: [PATCH 24/37] qemu: set stopped only if StopVM is successful Fixes: #5624 Signed-off-by: Alexandru Matei --- src/runtime/virtcontainers/qemu.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/runtime/virtcontainers/qemu.go b/src/runtime/virtcontainers/qemu.go index b7f9601c1..bea7fdeba 100644 --- a/src/runtime/virtcontainers/qemu.go +++ b/src/runtime/virtcontainers/qemu.go @@ -969,7 +969,7 @@ func (q *qemu) waitVM(ctx context.Context, timeout int) error { } // StopVM will stop the Sandbox's VM. -func (q *qemu) StopVM(ctx context.Context, waitOnly bool) error { +func (q *qemu) StopVM(ctx context.Context, waitOnly bool) (err error) { q.mu.Lock() defer q.mu.Unlock() span, _ := katatrace.Trace(ctx, q.Logger(), "StopVM", qemuTracingTags, map[string]string{"sandbox_id": q.id}) @@ -983,7 +983,9 @@ func (q *qemu) StopVM(ctx context.Context, waitOnly bool) error { defer func() { q.cleanupVM() - q.stopped = true + if err == nil { + q.stopped = true + } }() if q.config.Debug && q.qemuConfig.LogFile != "" { From a04afab74d6216d8fb9de3c30b5aa77b9f3ddbf5 Mon Sep 17 00:00:00 2001 From: Alexandru Matei Date: Tue, 8 Nov 2022 21:17:41 +0200 Subject: [PATCH 25/37] qemu: early exit from Check if the process was stopped Fixes: #5625 Signed-off-by: Alexandru Matei --- src/runtime/virtcontainers/qemu.go | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/runtime/virtcontainers/qemu.go b/src/runtime/virtcontainers/qemu.go index bea7fdeba..f15f62d13 100644 --- a/src/runtime/virtcontainers/qemu.go +++ b/src/runtime/virtcontainers/qemu.go @@ -21,6 +21,7 @@ import ( "strconv" "strings" "sync" + "sync/atomic" "syscall" "time" "unsafe" @@ -109,7 +110,7 @@ type qemu struct { nvdimmCount int - stopped bool + stopped int32 mu sync.Mutex } @@ -976,7 +977,7 @@ func (q *qemu) StopVM(ctx context.Context, waitOnly bool) (err error) { defer span.End() q.Logger().Info("Stopping Sandbox") - if q.stopped { + if atomic.LoadInt32(&q.stopped) != 0 { q.Logger().Info("Already stopped") return nil } @@ -984,7 +985,7 @@ func (q *qemu) StopVM(ctx context.Context, waitOnly bool) (err error) { defer func() { q.cleanupVM() if err == nil { - q.stopped = true + atomic.StoreInt32(&q.stopped, 1) } }() @@ -2570,7 +2571,7 @@ func (q *qemu) toGrpc(ctx context.Context) ([]byte, error) { func (q *qemu) Save() (s hv.HypervisorState) { // If QEMU isn't even running, there isn't any state to Save - if q.stopped { + if atomic.LoadInt32(&q.stopped) != 0 { return } @@ -2621,6 +2622,10 @@ func (q *qemu) Load(s hv.HypervisorState) { } func (q *qemu) Check() error { + if atomic.LoadInt32(&q.stopped) != 0 { + return fmt.Errorf("qemu is not running") + } + q.memoryDumpFlag.Lock() defer q.memoryDumpFlag.Unlock() From c46814b26a474c5d585fe718ecde9729a830e5ee Mon Sep 17 00:00:00 2001 From: Zhongtao Hu Date: Fri, 11 Nov 2022 10:15:29 +0800 Subject: [PATCH 26/37] runtime-rs:support nydus v5 and v6 add nydus v5 snd v6 upport for container rootfs Fixes:#5142 Signed-off-by: Zhongtao Hu --- src/agent/Cargo.lock | 8 + src/libs/kata-types/Cargo.toml | 2 + src/libs/kata-types/src/mount.rs | 73 ++++++++- .../hypervisor/src/dragonball/inner_device.rs | 3 +- src/runtime-rs/crates/resource/Cargo.toml | 1 + .../crates/resource/src/manager_inner.rs | 9 +- .../crates/resource/src/rootfs/mod.rs | 52 +++++-- .../resource/src/rootfs/nydus_rootfs.rs | 146 ++++++++++++++++++ .../resource/src/rootfs/share_fs_rootfs.rs | 9 +- .../crates/resource/src/share_fs/mod.rs | 8 +- .../resource/src/share_fs/share_virtio_fs.rs | 61 +++++++- .../src/share_fs/share_virtio_fs_inline.rs | 36 +---- .../crates/resource/src/share_fs/utils.rs | 27 +++- .../src/share_fs/virtio_fs_share_mount.rs | 2 + .../resource/src/volume/share_fs_volume.rs | 1 + .../crates/runtimes/src/shim_mgmt/handlers.rs | 4 +- .../src/container_manager/container.rs | 6 +- 17 files changed, 384 insertions(+), 64 deletions(-) create mode 100644 src/runtime-rs/crates/resource/src/rootfs/nydus_rootfs.rs diff --git a/src/agent/Cargo.lock b/src/agent/Cargo.lock index f09ae2ca4..2ab13e782 100644 --- a/src/agent/Cargo.lock +++ b/src/agent/Cargo.lock @@ -86,6 +86,12 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +[[package]] +name = "base64" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" + [[package]] name = "bincode" version = "1.3.3" @@ -725,6 +731,8 @@ dependencies = [ name = "kata-types" version = "0.1.0" dependencies = [ + "anyhow", + "base64", "bitmask-enum", "byte-unit", "glob", diff --git a/src/libs/kata-types/Cargo.toml b/src/libs/kata-types/Cargo.toml index 01456b4f6..598cde620 100644 --- a/src/libs/kata-types/Cargo.toml +++ b/src/libs/kata-types/Cargo.toml @@ -12,6 +12,8 @@ edition = "2018" [dependencies] bitmask-enum = "2.1.0" +anyhow = "1.0" +base64 = "0.13.0" byte-unit = "3.1.4" glob = "0.3.0" lazy_static = "1.4.0" diff --git a/src/libs/kata-types/src/mount.rs b/src/libs/kata-types/src/mount.rs index b58e810d6..339cce05f 100644 --- a/src/libs/kata-types/src/mount.rs +++ b/src/libs/kata-types/src/mount.rs @@ -4,6 +4,7 @@ // SPDX-License-Identifier: Apache-2.0 // +use anyhow::{anyhow, Context, Result}; use std::path::PathBuf; /// Prefix to mark a volume as Kata special. @@ -68,10 +69,46 @@ pub fn is_kata_host_dir_volume(ty: &str) -> bool { ty == KATA_HOST_DIR_VOLUME_TYPE } +/// Nydus extra options +#[derive(Debug, serde::Deserialize)] +pub struct NydusExtraOptions { + /// source path + pub source: String, + /// nydus config + pub config: String, + /// snapshotter directory + #[serde(rename(deserialize = "snapshotdir"))] + pub snapshot_dir: String, + /// fs version + pub fs_version: String, +} + +impl NydusExtraOptions { + /// Create Nydus extra options + pub fn new(mount: &Mount) -> Result { + let options: Vec<&str> = mount + .options + .iter() + .filter(|x| x.starts_with("extraoption=")) + .map(|x| x.as_ref()) + .collect(); + + if options.len() != 1 { + return Err(anyhow!( + "get_nydus_extra_options: Invalid nydus options: {:?}", + &mount.options + )); + } + let config_raw_data = options[0].trim_start_matches("extraoption="); + let extra_options_buf = + base64::decode(config_raw_data).context("decode the nydus's base64 extraoption")?; + + serde_json::from_slice(&extra_options_buf).context("deserialize nydus's extraoption") + } +} #[cfg(test)] mod tests { use super::*; - #[test] fn test_is_kata_special_volume() { assert!(is_kata_special_volume("kata:guest-mount:nfs")); @@ -85,4 +122,38 @@ mod tests { assert!(!is_kata_guest_mount_volume("kata:guest-moun")); assert!(!is_kata_guest_mount_volume("Kata:guest-mount:nfs")); } + + #[test] + fn test_get_nydus_extra_options_v5() { + let mut mount_info = Mount { + ..Default::default() + }; + mount_info.options = vec!["extraoption=eyJzb3VyY2UiOiIvdmFyL2xpYi9jb250YWluZXJkL2lvLmNvbnRhaW5lcmQuc25hcHNob3R0ZXIudjEubnlkdXMvc25hcHNob3RzLzkvZnMvaW1hZ2UvaW1hZ2UuYm9vdCIsImNvbmZpZyI6IntcImRldmljZVwiOntcImJhY2tlbmRcIjp7XCJ0eXBlXCI6XCJyZWdpc3RyeVwiLFwiY29uZmlnXCI6e1wicmVhZGFoZWFkXCI6ZmFsc2UsXCJob3N0XCI6XCJsb2NhbGhvc3Q6NTAwMFwiLFwicmVwb1wiOlwidWJ1bnR1LW55ZHVzXCIsXCJzY2hlbWVcIjpcImh0dHBcIixcInNraXBfdmVyaWZ5XCI6dHJ1ZSxcInByb3h5XCI6e1wiZmFsbGJhY2tcIjpmYWxzZX0sXCJ0aW1lb3V0XCI6NSxcImNvbm5lY3RfdGltZW91dFwiOjUsXCJyZXRyeV9saW1pdFwiOjJ9fSxcImNhY2hlXCI6e1widHlwZVwiOlwiYmxvYmNhY2hlXCIsXCJjb25maWdcIjp7XCJ3b3JrX2RpclwiOlwiL3Zhci9saWIvbnlkdXMvY2FjaGVcIixcImRpc2FibGVfaW5kZXhlZF9tYXBcIjpmYWxzZX19fSxcIm1vZGVcIjpcImRpcmVjdFwiLFwiZGlnZXN0X3ZhbGlkYXRlXCI6ZmFsc2UsXCJlbmFibGVfeGF0dHJcIjp0cnVlLFwiZnNfcHJlZmV0Y2hcIjp7XCJlbmFibGVcIjp0cnVlLFwicHJlZmV0Y2hfYWxsXCI6ZmFsc2UsXCJ0aHJlYWRzX2NvdW50XCI6NCxcIm1lcmdpbmdfc2l6ZVwiOjAsXCJiYW5kd2lkdGhfcmF0ZVwiOjB9LFwidHlwZVwiOlwiXCIsXCJpZFwiOlwiXCIsXCJkb21haW5faWRcIjpcIlwiLFwiY29uZmlnXCI6e1wiaWRcIjpcIlwiLFwiYmFja2VuZF90eXBlXCI6XCJcIixcImJhY2tlbmRfY29uZmlnXCI6e1wicmVhZGFoZWFkXCI6ZmFsc2UsXCJwcm94eVwiOntcImZhbGxiYWNrXCI6ZmFsc2V9fSxcImNhY2hlX3R5cGVcIjpcIlwiLFwiY2FjaGVfY29uZmlnXCI6e1wid29ya19kaXJcIjpcIlwifSxcIm1ldGFkYXRhX3BhdGhcIjpcIlwifX0iLCJzbmFwc2hvdGRpciI6Ii92YXIvbGliL2NvbnRhaW5lcmQvaW8uY29udGFpbmVyZC5zbmFwc2hvdHRlci52MS5ueWR1cy9zbmFwc2hvdHMvMjU3IiwiZnNfdmVyc2lvbiI6InY1In0=".to_string()]; + let extra_option_result = NydusExtraOptions::new(&mount_info); + assert!(extra_option_result.is_ok()); + let extra_option = extra_option_result.unwrap(); + assert_eq!(extra_option.source,"/var/lib/containerd/io.containerd.snapshotter.v1.nydus/snapshots/9/fs/image/image.boot"); + assert_eq!( + extra_option.snapshot_dir, + "/var/lib/containerd/io.containerd.snapshotter.v1.nydus/snapshots/257" + ); + assert_eq!(extra_option.fs_version, "v5"); + } + + #[test] + fn test_get_nydus_extra_options_v6() { + let mut mount_info = Mount { + ..Default::default() + }; + mount_info.options = vec!["extraoption=eyJzb3VyY2UiOiIvdmFyL2xpYi9jb250YWluZXJkL2lvLmNvbnRhaW5lcmQuc25hcHNob3R0ZXIudjEubnlkdXMvc25hcHNob3RzLzIwMS9mcy9pbWFnZS9pbWFnZS5ib290IiwiY29uZmlnIjoie1wiZGV2aWNlXCI6e1wiYmFja2VuZFwiOntcInR5cGVcIjpcInJlZ2lzdHJ5XCIsXCJjb25maWdcIjp7XCJyZWFkYWhlYWRcIjpmYWxzZSxcImhvc3RcIjpcImxvY2FsaG9zdDo1MDAwXCIsXCJyZXBvXCI6XCJ1YnVudHUtbnlkdXMtdjZcIixcInNjaGVtZVwiOlwiaHR0cFwiLFwic2tpcF92ZXJpZnlcIjp0cnVlLFwicHJveHlcIjp7XCJmYWxsYmFja1wiOmZhbHNlfSxcInRpbWVvdXRcIjo1LFwiY29ubmVjdF90aW1lb3V0XCI6NSxcInJldHJ5X2xpbWl0XCI6Mn19LFwiY2FjaGVcIjp7XCJ0eXBlXCI6XCJibG9iY2FjaGVcIixcImNvbmZpZ1wiOntcIndvcmtfZGlyXCI6XCIvdmFyL2xpYi9ueWR1cy9jYWNoZVwiLFwiZGlzYWJsZV9pbmRleGVkX21hcFwiOmZhbHNlfX19LFwibW9kZVwiOlwiZGlyZWN0XCIsXCJkaWdlc3RfdmFsaWRhdGVcIjpmYWxzZSxcImVuYWJsZV94YXR0clwiOnRydWUsXCJmc19wcmVmZXRjaFwiOntcImVuYWJsZVwiOnRydWUsXCJwcmVmZXRjaF9hbGxcIjpmYWxzZSxcInRocmVhZHNfY291bnRcIjo0LFwibWVyZ2luZ19zaXplXCI6MCxcImJhbmR3aWR0aF9yYXRlXCI6MH0sXCJ0eXBlXCI6XCJcIixcImlkXCI6XCJcIixcImRvbWFpbl9pZFwiOlwiXCIsXCJjb25maWdcIjp7XCJpZFwiOlwiXCIsXCJiYWNrZW5kX3R5cGVcIjpcIlwiLFwiYmFja2VuZF9jb25maWdcIjp7XCJyZWFkYWhlYWRcIjpmYWxzZSxcInByb3h5XCI6e1wiZmFsbGJhY2tcIjpmYWxzZX19LFwiY2FjaGVfdHlwZVwiOlwiXCIsXCJjYWNoZV9jb25maWdcIjp7XCJ3b3JrX2RpclwiOlwiXCJ9LFwibWV0YWRhdGFfcGF0aFwiOlwiXCJ9fSIsInNuYXBzaG90ZGlyIjoiL3Zhci9saWIvY29udGFpbmVyZC9pby5jb250YWluZXJkLnNuYXBzaG90dGVyLnYxLm55ZHVzL3NuYXBzaG90cy8yNjEiLCJmc192ZXJzaW9uIjoidjYifQ==".to_string()]; + let extra_option_result = NydusExtraOptions::new(&mount_info); + assert!(extra_option_result.is_ok()); + let extra_option = extra_option_result.unwrap(); + assert_eq!(extra_option.source,"/var/lib/containerd/io.containerd.snapshotter.v1.nydus/snapshots/201/fs/image/image.boot"); + assert_eq!( + extra_option.snapshot_dir, + "/var/lib/containerd/io.containerd.snapshotter.v1.nydus/snapshots/261" + ); + assert_eq!(extra_option.fs_version, "v6"); + } } diff --git a/src/runtime-rs/crates/hypervisor/src/dragonball/inner_device.rs b/src/runtime-rs/crates/hypervisor/src/dragonball/inner_device.rs index d47cac569..97f1a2c13 100644 --- a/src/runtime-rs/crates/hypervisor/src/dragonball/inner_device.rs +++ b/src/runtime-rs/crates/hypervisor/src/dragonball/inner_device.rs @@ -223,6 +223,7 @@ impl DragonballInner { }, cache_size: (self.config.shared_fs.virtio_fs_cache_size as u64) .saturating_mul(MB_TO_B as u64), + xattr: true, ..Default::default() }; self.do_add_fs_device(&config.fs_type, &mut fs_cfg) @@ -264,7 +265,7 @@ impl DragonballInner { fstype: Some(fstype.to_string()), source: Some(config.source.clone()), mountpoint: config.mount_point.clone(), - config: None, + config: config.config.clone(), tag: config.tag.clone(), prefetch_list_path: config.prefetch_list_path.clone(), dax_threshold_size_kb: None, diff --git a/src/runtime-rs/crates/resource/Cargo.toml b/src/runtime-rs/crates/resource/Cargo.toml index 0c45fa76c..e39169f0e 100644 --- a/src/runtime-rs/crates/resource/Cargo.toml +++ b/src/runtime-rs/crates/resource/Cargo.toml @@ -23,6 +23,7 @@ rand = "^0.7.2" rtnetlink = "0.11.0" scopeguard = "1.0.0" serde = { version = "1.0.138", features = ["derive"] } +serde_json = "1.0.82" slog = "2.5.2" slog-scope = "4.4.0" tokio = { version = "1.8.0", features = ["process"] } diff --git a/src/runtime-rs/crates/resource/src/manager_inner.rs b/src/runtime-rs/crates/resource/src/manager_inner.rs index 308867313..4bfe37b4f 100644 --- a/src/runtime-rs/crates/resource/src/manager_inner.rs +++ b/src/runtime-rs/crates/resource/src/manager_inner.rs @@ -178,7 +178,14 @@ impl ResourceManagerInner { rootfs_mounts: &[Mount], ) -> Result> { self.rootfs_resource - .handler_rootfs(&self.share_fs, cid, bundle_path, rootfs_mounts) + .handler_rootfs( + &self.share_fs, + self.hypervisor.as_ref(), + &self.sid, + cid, + bundle_path, + rootfs_mounts, + ) .await } diff --git a/src/runtime-rs/crates/resource/src/rootfs/mod.rs b/src/runtime-rs/crates/resource/src/rootfs/mod.rs index 827809bc4..7af49fed7 100644 --- a/src/runtime-rs/crates/resource/src/rootfs/mod.rs +++ b/src/runtime-rs/crates/resource/src/rootfs/mod.rs @@ -4,23 +4,29 @@ // SPDX-License-Identifier: Apache-2.0 // +mod nydus_rootfs; mod share_fs_rootfs; -use std::{sync::Arc, vec::Vec}; - +use agent::Storage; use anyhow::{anyhow, Context, Result}; use async_trait::async_trait; +use hypervisor::Hypervisor; use kata_types::mount::Mount; +use std::{sync::Arc, vec::Vec}; use tokio::sync::RwLock; use crate::share_fs::ShareFs; -const ROOTFS: &str = "rootfs"; +use self::nydus_rootfs::NYDUS_ROOTFS_TYPE; +const ROOTFS: &str = "rootfs"; +const HYBRID_ROOTFS_LOWER_DIR: &str = "rootfs_lower"; +const TYPE_OVERLAY_FS: &str = "overlay"; #[async_trait] pub trait Rootfs: Send + Sync { async fn get_guest_rootfs_path(&self) -> Result; async fn get_rootfs_mount(&self) -> Result>; + async fn get_storage(&self) -> Option; } #[derive(Default)] @@ -48,6 +54,8 @@ impl RootFsResource { pub async fn handler_rootfs( &self, share_fs: &Option>, + hypervisor: &dyn Hypervisor, + sid: &str, cid: &str, bundle_path: &str, rootfs_mounts: &[Mount], @@ -56,21 +64,41 @@ impl RootFsResource { mounts_vec if is_single_layer_rootfs(mounts_vec) => { // Safe as single_layer_rootfs must have one layer let layer = &mounts_vec[0]; - - let rootfs = if let Some(share_fs) = share_fs { - // share fs rootfs + let rootfs: Arc = if let Some(share_fs) = share_fs { let share_fs_mount = share_fs.get_share_fs_mount(); - share_fs_rootfs::ShareFsRootfs::new(&share_fs_mount, cid, bundle_path, layer) - .await - .context("new share fs rootfs")? + // nydus rootfs + if layer.fs_type == NYDUS_ROOTFS_TYPE { + Arc::new( + nydus_rootfs::NydusRootfs::new( + &share_fs_mount, + hypervisor, + sid, + cid, + layer, + ) + .await + .context("new nydus rootfs")?, + ) + } else { + // share fs rootfs + Arc::new( + share_fs_rootfs::ShareFsRootfs::new( + &share_fs_mount, + cid, + bundle_path, + layer, + ) + .await + .context("new share fs rootfs")?, + ) + } } else { return Err(anyhow!("unsupported rootfs {:?}", &layer)); }; let mut inner = self.inner.write().await; - let r = Arc::new(rootfs); - inner.rootfs.push(r.clone()); - Ok(r) + inner.rootfs.push(Arc::clone(&rootfs)); + Ok(rootfs) } _ => { return Err(anyhow!( diff --git a/src/runtime-rs/crates/resource/src/rootfs/nydus_rootfs.rs b/src/runtime-rs/crates/resource/src/rootfs/nydus_rootfs.rs new file mode 100644 index 000000000..68e5124cf --- /dev/null +++ b/src/runtime-rs/crates/resource/src/rootfs/nydus_rootfs.rs @@ -0,0 +1,146 @@ +// Copyright (c) 2019-2022 Alibaba Cloud +// Copyright (c) 2019-2022 Ant Group +// +// SPDX-License-Identifier: Apache-2.0 +// +use std::{fs, sync::Arc}; + +use super::{Rootfs, TYPE_OVERLAY_FS}; +use crate::{ + rootfs::{HYBRID_ROOTFS_LOWER_DIR, ROOTFS}, + share_fs::{ + do_get_guest_path, do_get_guest_share_path, get_host_rw_shared_path, rafs_mount, + ShareFsMount, ShareFsRootfsConfig, PASSTHROUGH_FS_DIR, + }, +}; +use agent::Storage; +use anyhow::{anyhow, Context, Result}; +use async_trait::async_trait; +use hypervisor::Hypervisor; +use kata_types::mount::{Mount, NydusExtraOptions}; + +// Used for nydus rootfs +pub(crate) const NYDUS_ROOTFS_TYPE: &str = "fuse.nydus-overlayfs"; +// Used for Nydus v5 rootfs version +const NYDUS_ROOTFS_V5: &str = "v5"; +// Used for Nydus v6 rootfs version +const NYDUS_ROOTFS_V6: &str = "v6"; + +const SNAPSHOT_DIR: &str = "snapshotdir"; +const KATA_OVERLAY_DEV_TYPE: &str = "overlayfs"; + +pub(crate) struct NydusRootfs { + guest_path: String, + rootfs: Storage, +} + +impl NydusRootfs { + pub async fn new( + share_fs_mount: &Arc, + h: &dyn Hypervisor, + sid: &str, + cid: &str, + rootfs: &Mount, + ) -> Result { + let extra_options = + NydusExtraOptions::new(rootfs).context("failed to parse nydus extra options")?; + info!(sl!(), "extra_option {:?}", &extra_options); + let rafs_meta = &extra_options.source; + let (rootfs_storage, rootfs_guest_path) = match extra_options.fs_version.as_str() { + // both nydus v5 and v6 can be handled by the builtin nydus in dragonball by using the rafs mode. + // nydus v6 could also be handled by the guest kernel as well, but some kernel patch is not support in the upstream community. We will add an option to let runtime-rs handle nydus v6 in the guest kernel optionally once the patch is ready + // see this issue (https://github.com/kata-containers/kata-containers/issues/5143) + NYDUS_ROOTFS_V5 | NYDUS_ROOTFS_V6 => { + // rafs mount the metadata of nydus rootfs + let rafs_mnt = do_get_guest_share_path(HYBRID_ROOTFS_LOWER_DIR, cid, true); + rafs_mount( + h, + rafs_meta.to_string(), + rafs_mnt, + extra_options.config.clone(), + None, + ) + .await + .context("failed to do rafs mount")?; + // create rootfs under the share directory + let container_share_dir = get_host_rw_shared_path(sid) + .join(PASSTHROUGH_FS_DIR) + .join(cid); + let rootfs_dir = container_share_dir.join(ROOTFS); + fs::create_dir_all(rootfs_dir).context("failed to create directory")?; + // mount point inside the guest + let rootfs_guest_path = do_get_guest_path(ROOTFS, cid, false, false); + // bind mount the snapshot dir under the share directory + share_fs_mount + .share_rootfs(ShareFsRootfsConfig { + cid: cid.to_string(), + source: extra_options.snapshot_dir.clone(), + target: SNAPSHOT_DIR.to_string(), + readonly: true, + is_rafs: false, + }) + .await + .context("share nydus rootfs")?; + let mut options: Vec = Vec::new(); + options.push( + "lowerdir=".to_string() + + &do_get_guest_path(HYBRID_ROOTFS_LOWER_DIR, cid, false, true), + ); + options.push( + "workdir=".to_string() + + &do_get_guest_path( + format!("{}/{}", SNAPSHOT_DIR, "work").as_str(), + cid, + false, + false, + ), + ); + options.push( + "upperdir=".to_string() + + &do_get_guest_path( + format!("{}/{}", SNAPSHOT_DIR, "fs").as_str(), + cid, + false, + false, + ), + ); + options.push("index=off".to_string()); + Ok(( + Storage { + driver: KATA_OVERLAY_DEV_TYPE.to_string(), + source: TYPE_OVERLAY_FS.to_string(), + fs_type: TYPE_OVERLAY_FS.to_string(), + options, + mount_point: rootfs_guest_path.clone(), + ..Default::default() + }, + rootfs_guest_path, + )) + } + _ => { + let errstr: &str = "new_nydus_rootfs: invalid nydus rootfs type"; + error!(sl!(), "{}", errstr); + Err(anyhow!(errstr)) + } + }?; + Ok(NydusRootfs { + guest_path: rootfs_guest_path, + rootfs: rootfs_storage, + }) + } +} + +#[async_trait] +impl Rootfs for NydusRootfs { + async fn get_guest_rootfs_path(&self) -> Result { + Ok(self.guest_path.clone()) + } + + async fn get_rootfs_mount(&self) -> Result> { + Ok(vec![]) + } + + async fn get_storage(&self) -> Option { + Some(self.rootfs.clone()) + } +} diff --git a/src/runtime-rs/crates/resource/src/rootfs/share_fs_rootfs.rs b/src/runtime-rs/crates/resource/src/rootfs/share_fs_rootfs.rs index 643af13fe..87ee869a4 100644 --- a/src/runtime-rs/crates/resource/src/rootfs/share_fs_rootfs.rs +++ b/src/runtime-rs/crates/resource/src/rootfs/share_fs_rootfs.rs @@ -4,12 +4,12 @@ // SPDX-License-Identifier: Apache-2.0 // -use std::sync::Arc; - +use agent::Storage; use anyhow::{Context, Result}; use async_trait::async_trait; use kata_sys_util::mount::Mounter; use kata_types::mount::Mount; +use std::sync::Arc; use super::{Rootfs, ROOTFS}; use crate::share_fs::{ShareFsMount, ShareFsRootfsConfig}; @@ -37,6 +37,7 @@ impl ShareFsRootfs { source: bundle_rootfs.to_string(), target: ROOTFS.to_string(), readonly: false, + is_rafs: false, }) .await .context("share rootfs")?; @@ -56,4 +57,8 @@ impl Rootfs for ShareFsRootfs { async fn get_rootfs_mount(&self) -> Result> { todo!() } + + async fn get_storage(&self) -> Option { + None + } } diff --git a/src/runtime-rs/crates/resource/src/share_fs/mod.rs b/src/runtime-rs/crates/resource/src/share_fs/mod.rs index b9abdb9df..e2d569601 100644 --- a/src/runtime-rs/crates/resource/src/share_fs/mod.rs +++ b/src/runtime-rs/crates/resource/src/share_fs/mod.rs @@ -5,11 +5,13 @@ // mod share_virtio_fs; +pub use share_virtio_fs::rafs_mount; mod share_virtio_fs_inline; use share_virtio_fs_inline::ShareVirtioFsInline; mod share_virtio_fs_standalone; use share_virtio_fs_standalone::ShareVirtioFsStandalone; mod utils; +pub use utils::{do_get_guest_path, do_get_guest_share_path, get_host_rw_shared_path}; mod virtio_fs_share_mount; use virtio_fs_share_mount::VirtiofsShareMount; @@ -22,6 +24,7 @@ use hypervisor::Hypervisor; use kata_types::config::hypervisor::SharedFsInfo; const VIRTIO_FS: &str = "virtio-fs"; +const _VIRTIO_FS_NYDUS: &str = "virtio-fs-nydus"; const INLINE_VIRTIO_FS: &str = "inline-virtio-fs"; const KATA_HOST_SHARED_DIR: &str = "/run/kata-containers/shared/sandboxes/"; @@ -31,7 +34,8 @@ const KATA_GUEST_SHARE_DIR: &str = "/run/kata-containers/shared/containers/"; pub(crate) const DEFAULT_KATA_GUEST_SANDBOX_DIR: &str = "/run/kata-containers/sandbox/"; -const PASSTHROUGH_FS_DIR: &str = "passthrough"; +pub const PASSTHROUGH_FS_DIR: &str = "passthrough"; +const RAFS_DIR: &str = "rafs"; #[async_trait] pub trait ShareFs: Send + Sync { @@ -47,6 +51,7 @@ pub struct ShareFsRootfsConfig { pub source: String, pub target: String, pub readonly: bool, + pub is_rafs: bool, } pub struct ShareFsVolumeConfig { @@ -56,6 +61,7 @@ pub struct ShareFsVolumeConfig { pub readonly: bool, pub mount_options: Vec, pub mount: oci::Mount, + pub is_rafs: bool, } pub struct ShareFsMountResult { diff --git a/src/runtime-rs/crates/resource/src/share_fs/share_virtio_fs.rs b/src/runtime-rs/crates/resource/src/share_fs/share_virtio_fs.rs index c4e398665..4aed2cc19 100644 --- a/src/runtime-rs/crates/resource/src/share_fs/share_virtio_fs.rs +++ b/src/runtime-rs/crates/resource/src/share_fs/share_virtio_fs.rs @@ -7,10 +7,13 @@ use std::path::Path; use anyhow::{Context, Result}; -use hypervisor::{device, Hypervisor}; +use hypervisor::{ + device::{Device as HypervisorDevice, ShareFsMountConfig, ShareFsMountType, ShareFsOperation}, + Hypervisor, ShareFsDeviceConfig, +}; use kata_sys_util::mount; -use super::utils; +use super::{utils, PASSTHROUGH_FS_DIR}; pub(crate) const MOUNT_GUEST_TAG: &str = "kataShared"; @@ -39,7 +42,7 @@ pub(crate) async fn prepare_virtiofs( mount::bind_mount_unchecked(&host_rw_dest, &host_ro_dest, true) .context("bind mount shared_fs directory")?; - let share_fs_device = device::Device::ShareFsDevice(device::ShareFsDeviceConfig { + let share_fs_device = HypervisorDevice::ShareFsDevice(ShareFsDeviceConfig { sock_path: generate_sock_path(root), mount_tag: String::from(MOUNT_GUEST_TAG), host_path: String::from(host_ro_dest.to_str().unwrap()), @@ -50,3 +53,55 @@ pub(crate) async fn prepare_virtiofs( h.add_device(share_fs_device).await.context("add device")?; Ok(()) } + +pub(crate) async fn setup_inline_virtiofs(id: &str, h: &dyn Hypervisor) -> Result<()> { + // - source is the absolute path of PASSTHROUGH_FS_DIR on host, e.g. + // /run/kata-containers/shared/sandboxes//passthrough + // - mount point is the path relative to KATA_GUEST_SHARE_DIR in guest + let mnt = format!("/{}", PASSTHROUGH_FS_DIR); + + let rw_source = utils::get_host_rw_shared_path(id).join(PASSTHROUGH_FS_DIR); + utils::ensure_dir_exist(&rw_source).context("ensure directory exist")?; + + let ro_source = utils::get_host_ro_shared_path(id).join(PASSTHROUGH_FS_DIR); + let source = String::from(ro_source.to_str().unwrap()); + + let virtio_fs = HypervisorDevice::ShareFsMount(ShareFsMountConfig { + source: source.clone(), + fstype: ShareFsMountType::PASSTHROUGH, + mount_point: mnt, + config: None, + tag: String::from(MOUNT_GUEST_TAG), + op: ShareFsOperation::Mount, + prefetch_list_path: None, + }); + h.add_device(virtio_fs) + .await + .with_context(|| format!("fail to attach passthrough fs {:?}", source)) +} + +pub async fn rafs_mount( + h: &dyn Hypervisor, + rafs_meta: String, + rafs_mnt: String, + config_content: String, + prefetch_list_path: Option, +) -> Result<()> { + info!( + sl!(), + "Attaching rafs meta file {} to virtio-fs device, rafs mount point {}", rafs_meta, rafs_mnt + ); + let virtio_fs = HypervisorDevice::ShareFsMount(ShareFsMountConfig { + source: rafs_meta.clone(), + fstype: ShareFsMountType::RAFS, + mount_point: rafs_mnt, + config: Some(config_content), + tag: String::from(MOUNT_GUEST_TAG), + op: ShareFsOperation::Mount, + prefetch_list_path, + }); + h.add_device(virtio_fs) + .await + .with_context(|| format!("fail to attach rafs {:?}", rafs_meta))?; + Ok(()) +} diff --git a/src/runtime-rs/crates/resource/src/share_fs/share_virtio_fs_inline.rs b/src/runtime-rs/crates/resource/src/share_fs/share_virtio_fs_inline.rs index 2607444cc..c082a28b7 100644 --- a/src/runtime-rs/crates/resource/src/share_fs/share_virtio_fs_inline.rs +++ b/src/runtime-rs/crates/resource/src/share_fs/share_virtio_fs_inline.rs @@ -7,17 +7,15 @@ use agent::Storage; use anyhow::{Context, Result}; use async_trait::async_trait; -use hypervisor::{ - device::{Device as HypervisorDevice, ShareFsMountConfig, ShareFsMountType, ShareFsOperation}, - Hypervisor, -}; +use hypervisor::Hypervisor; use kata_types::config::hypervisor::SharedFsInfo; use super::{ share_virtio_fs::{ - prepare_virtiofs, FS_TYPE_VIRTIO_FS, KATA_VIRTIO_FS_DEV_TYPE, MOUNT_GUEST_TAG, + prepare_virtiofs, setup_inline_virtiofs, FS_TYPE_VIRTIO_FS, KATA_VIRTIO_FS_DEV_TYPE, + MOUNT_GUEST_TAG, }, - utils, ShareFs, PASSTHROUGH_FS_DIR, *, + ShareFs, *, }; lazy_static! { @@ -80,29 +78,3 @@ impl ShareFs for ShareVirtioFsInline { Ok(storages) } } - -async fn setup_inline_virtiofs(id: &str, h: &dyn Hypervisor) -> Result<()> { - // - source is the absolute path of PASSTHROUGH_FS_DIR on host, e.g. - // /run/kata-containers/shared/sandboxes//passthrough - // - mount point is the path relative to KATA_GUEST_SHARE_DIR in guest - let mnt = format!("/{}", PASSTHROUGH_FS_DIR); - - let rw_source = utils::get_host_rw_shared_path(id).join(PASSTHROUGH_FS_DIR); - utils::ensure_dir_exist(&rw_source)?; - - let ro_source = utils::get_host_ro_shared_path(id).join(PASSTHROUGH_FS_DIR); - let source = String::from(ro_source.to_str().unwrap()); - - let virtio_fs = HypervisorDevice::ShareFsMount(ShareFsMountConfig { - source: source.clone(), - fstype: ShareFsMountType::PASSTHROUGH, - mount_point: mnt, - config: None, - tag: String::from(MOUNT_GUEST_TAG), - op: ShareFsOperation::Mount, - prefetch_list_path: None, - }); - h.add_device(virtio_fs) - .await - .context(format!("fail to attach passthrough fs {:?}", source)) -} diff --git a/src/runtime-rs/crates/resource/src/share_fs/utils.rs b/src/runtime-rs/crates/resource/src/share_fs/utils.rs index 97466cba6..5856cfd6c 100644 --- a/src/runtime-rs/crates/resource/src/share_fs/utils.rs +++ b/src/runtime-rs/crates/resource/src/share_fs/utils.rs @@ -27,6 +27,7 @@ pub(crate) fn share_to_guest( cid: &str, readonly: bool, is_volume: bool, + is_rafs: bool, ) -> Result { let host_dest = do_get_host_path(target, sid, cid, is_volume, false); mount::bind_mount_unchecked(source, &host_dest, readonly) @@ -39,7 +40,7 @@ pub(crate) fn share_to_guest( mount::bind_remount_read_only(&dst).context("bind remount readonly")?; } - Ok(do_get_guest_path(target, cid, is_volume)) + Ok(do_get_guest_path(target, cid, is_volume, is_rafs)) } // Shared path handling: // 1. create two directories for each sandbox: @@ -53,12 +54,22 @@ pub(crate) fn get_host_ro_shared_path(id: &str) -> PathBuf { Path::new(KATA_HOST_SHARED_DIR).join(id).join("ro") } -pub(crate) fn get_host_rw_shared_path(sid: &str) -> PathBuf { +pub fn get_host_rw_shared_path(sid: &str) -> PathBuf { Path::new(KATA_HOST_SHARED_DIR).join(sid).join("rw") } -fn do_get_guest_any_path(target: &str, cid: &str, is_volume: bool, is_virtiofs: bool) -> String { - let dir = PASSTHROUGH_FS_DIR; +fn do_get_guest_any_path( + target: &str, + cid: &str, + is_volume: bool, + is_rafs: bool, + is_virtiofs: bool, +) -> String { + let dir = if is_rafs { + RAFS_DIR + } else { + PASSTHROUGH_FS_DIR + }; let guest_share_dir = if is_virtiofs { Path::new("/").to_path_buf() } else { @@ -73,8 +84,12 @@ fn do_get_guest_any_path(target: &str, cid: &str, is_volume: bool, is_virtiofs: path.to_str().unwrap().to_string() } -pub(crate) fn do_get_guest_path(target: &str, cid: &str, is_volume: bool) -> String { - do_get_guest_any_path(target, cid, is_volume, false) +pub fn do_get_guest_path(target: &str, cid: &str, is_volume: bool, is_rafs: bool) -> String { + do_get_guest_any_path(target, cid, is_volume, is_rafs, false) +} + +pub fn do_get_guest_share_path(target: &str, cid: &str, is_rafs: bool) -> String { + do_get_guest_any_path(target, cid, false, is_rafs, true) } pub(crate) fn do_get_host_path( diff --git a/src/runtime-rs/crates/resource/src/share_fs/virtio_fs_share_mount.rs b/src/runtime-rs/crates/resource/src/share_fs/virtio_fs_share_mount.rs index ce3277974..541dc7f91 100644 --- a/src/runtime-rs/crates/resource/src/share_fs/virtio_fs_share_mount.rs +++ b/src/runtime-rs/crates/resource/src/share_fs/virtio_fs_share_mount.rs @@ -44,6 +44,7 @@ impl ShareFsMount for VirtiofsShareMount { &config.cid, config.readonly, false, + config.is_rafs, ) .context("share to guest")?; Ok(ShareFsMountResult { @@ -60,6 +61,7 @@ impl ShareFsMount for VirtiofsShareMount { &config.cid, config.readonly, true, + config.is_rafs, ) .context("share to guest")?; diff --git a/src/runtime-rs/crates/resource/src/volume/share_fs_volume.rs b/src/runtime-rs/crates/resource/src/volume/share_fs_volume.rs index 90110944a..907741091 100644 --- a/src/runtime-rs/crates/resource/src/volume/share_fs_volume.rs +++ b/src/runtime-rs/crates/resource/src/volume/share_fs_volume.rs @@ -68,6 +68,7 @@ impl ShareFsVolume { readonly: m.options.iter().any(|o| *o == "ro"), mount_options: m.options.clone(), mount: m.clone(), + is_rafs: false, }) .await .context("share fs volume")?; diff --git a/src/runtime-rs/crates/runtimes/src/shim_mgmt/handlers.rs b/src/runtime-rs/crates/runtimes/src/shim_mgmt/handlers.rs index 94fd682eb..468ae539c 100644 --- a/src/runtime-rs/crates/runtimes/src/shim_mgmt/handlers.rs +++ b/src/runtime-rs/crates/runtimes/src/shim_mgmt/handlers.rs @@ -85,9 +85,7 @@ async fn generic_ip_table_handler( let body = Body::from(data); Response::builder().body(body).map_err(|e| anyhow!(e)) } - _ => { - Err(anyhow!("Failed to get iptable")) - } + _ => Err(anyhow!("Failed to get iptable")), }, Method::PUT => { diff --git a/src/runtime-rs/crates/runtimes/virt_container/src/container_manager/container.rs b/src/runtime-rs/crates/runtimes/virt_container/src/container_manager/container.rs index 74853aec6..2e2a025f0 100644 --- a/src/runtime-rs/crates/runtimes/virt_container/src/container_manager/container.rs +++ b/src/runtime-rs/crates/runtimes/virt_container/src/container_manager/container.rs @@ -101,6 +101,10 @@ impl Container { } None => return Err(anyhow!("spec miss root field")), }; + let mut storages = vec![]; + if let Some(storage) = rootfs.get_storage().await { + storages.push(storage); + } inner.rootfs.push(rootfs); // handler volumes @@ -110,8 +114,6 @@ impl Container { .await .context("handler volumes")?; let mut oci_mounts = vec![]; - let mut storages = vec![]; - for v in volumes { let mut volume_mounts = v.get_volume_mount().context("get volume mount")?; if !volume_mounts.is_empty() { From c3f1922df695e2abb178485facc86dce6abf6348 Mon Sep 17 00:00:00 2001 From: Ji-Xinyou Date: Fri, 11 Nov 2022 14:02:39 +0800 Subject: [PATCH 27/37] fix(fmt): fix cargo fmt to pass static check Fix cargo fmt Fixes: #5639 Signed-off-by: Ji-Xinyou --- src/runtime-rs/crates/runtimes/src/shim_mgmt/handlers.rs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/runtime-rs/crates/runtimes/src/shim_mgmt/handlers.rs b/src/runtime-rs/crates/runtimes/src/shim_mgmt/handlers.rs index 94fd682eb..468ae539c 100644 --- a/src/runtime-rs/crates/runtimes/src/shim_mgmt/handlers.rs +++ b/src/runtime-rs/crates/runtimes/src/shim_mgmt/handlers.rs @@ -85,9 +85,7 @@ async fn generic_ip_table_handler( let body = Body::from(data); Response::builder().body(body).map_err(|e| anyhow!(e)) } - _ => { - Err(anyhow!("Failed to get iptable")) - } + _ => Err(anyhow!("Failed to get iptable")), }, Method::PUT => { From e80dbc15d8a6cc61d424176a94fbe720262680fb Mon Sep 17 00:00:00 2001 From: Chao Wu Date: Mon, 14 Nov 2022 11:22:56 +0800 Subject: [PATCH 28/37] runtime-rs: workaround Dragonball compilation problem Since the upstream rust-vmm is changing its dependency style towards caret requirements in these days (more information: rust-vmm/vm-memory#199) and it breaks Dragonball compilation frequently. rust-vmm is expected to finish the changes this week and in order to not break Kata CI due to Dragonball's compilation error, we will add Cargo.lock file into /src/dragonball first and remove it later when rust-vmm is stable. fixes: #5657 Signed-off-by: Chao Wu --- src/dragonball/Cargo.lock | 1850 +++++++++++++++++++++++++++++++++++++ 1 file changed, 1850 insertions(+) create mode 100644 src/dragonball/Cargo.lock diff --git a/src/dragonball/Cargo.lock b/src/dragonball/Cargo.lock new file mode 100644 index 000000000..1352f2980 --- /dev/null +++ b/src/dragonball/Cargo.lock @@ -0,0 +1,1850 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "addr2line" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9ecd88a8c8378ca913a680cd98f0f13ac67383d35993f86c90a70e3f137816b" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "anyhow" +version = "1.0.66" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "216261ddc8289130e551ddcd5ce8a064710c0d064a4d2895c67151c92b5443f6" + +[[package]] +name = "arc-swap" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "983cd8b9d4b02a6dc6ffa557262eb5858a27a0038ffffe21a0f133eaa819a164" + +[[package]] +name = "arrayref" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544" + +[[package]] +name = "arrayvec" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" + +[[package]] +name = "atty" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +dependencies = [ + "hermit-abi", + "libc", + "winapi", +] + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "backtrace" +version = "0.3.66" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cab84319d616cfb654d03394f38ab7e6f0919e181b1b57e1fd15e7fb4077d9a7" +dependencies = [ + "addr2line", + "cc", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", +] + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "blake3" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a08e53fc5a564bb15bfe6fae56bd71522205f1f91893f9c0116edad6496c183f" +dependencies = [ + "arrayref", + "arrayvec", + "cc", + "cfg-if", + "constant_time_eq", + "digest", +] + +[[package]] +name = "block-buffer" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e" +dependencies = [ + "generic-array", +] + +[[package]] +name = "bumpalo" +version = "3.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "572f695136211188308f16ad2ca5c851a712c464060ae6974944458eb83880ba" + +[[package]] +name = "byteorder" +version = "1.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" + +[[package]] +name = "bytes" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec8a7b6a70fde80372154c65702f00a0f56f3e1c36abbc6c440484be248856db" + +[[package]] +name = "caps" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "190baaad529bcfbde9e1a19022c42781bdb6ff9de25721abdb8fd98c0807730b" +dependencies = [ + "libc", + "thiserror", +] + +[[package]] +name = "cc" +version = "1.0.76" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76a284da2e6fe2092f2353e51713435363112dfd60030e22add80be333fb928f" +dependencies = [ + "jobserver", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "constant_time_eq" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" + +[[package]] +name = "core-foundation-sys" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" + +[[package]] +name = "cpufeatures" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" +dependencies = [ + "cfg-if", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edbafec5fa1f196ca66527c1b12c2ec4745ca14b50f1ad8f9f6f720b55d11fac" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "dashmap" +version = "4.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e77a43b28d0668df09411cb0bc9a8c2adc40f9a048afe863e05fd43251e8e39c" +dependencies = [ + "cfg-if", + "num_cpus", +] + +[[package]] +name = "dbs-address-space" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bcc37dc0b8ffae1c5911d13ae630dc7a9020fa0de0edd178d6ab71daf56c8fc" +dependencies = [ + "arc-swap", + "libc", + "nix 0.23.1", + "thiserror", + "vm-memory", + "vmm-sys-util 0.11.0", +] + +[[package]] +name = "dbs-allocator" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "543711b94b4bc1437d2ebb45f856452e96a45a67ab39f8dcf8c887c2a3701004" +dependencies = [ + "thiserror", +] + +[[package]] +name = "dbs-arch" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f89357fc97fb3608473073be037ea0b22787b1fa4c68b8eb3dd51f3c5fd6b41" +dependencies = [ + "kvm-bindings", + "kvm-ioctls", + "libc", + "memoffset", + "vm-memory", + "vmm-sys-util 0.11.0", +] + +[[package]] +name = "dbs-boot" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e6930547e688d8527705d1b7c4163c090c8535b8dd526d8251aa4dfdcbf2f82" +dependencies = [ + "dbs-arch", + "kvm-bindings", + "kvm-ioctls", + "lazy_static", + "libc", + "thiserror", + "vm-fdt", + "vm-memory", +] + +[[package]] +name = "dbs-device" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14ecea44b4bc861c0c2ccb51868bea781286dc70e40ae46b54d4511e690a654a" +dependencies = [ + "thiserror", +] + +[[package]] +name = "dbs-interrupt" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15f217820329cea9d8d2870f9cdda426c5ca4379e33283c39338841a86bdc36c" +dependencies = [ + "dbs-device", + "kvm-bindings", + "kvm-ioctls", + "libc", + "vmm-sys-util 0.11.0", +] + +[[package]] +name = "dbs-legacy-devices" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4d089ac1c4d186c8133be59de09462e9793f7add10017c5b040318a3a7f431f" +dependencies = [ + "dbs-device", + "dbs-utils", + "log", + "serde", + "vm-superio", + "vmm-sys-util 0.11.0", +] + +[[package]] +name = "dbs-uhttp" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fd0544fe7ba81fa8deb8800843836d279a81b051e2e8ab046fe1b0cb096c1cc" +dependencies = [ + "libc", + "mio", +] + +[[package]] +name = "dbs-upcall" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2fa8b67657cd71779eaceea1b5fa989b62a1be629a07be8498417772e5a8d35" +dependencies = [ + "anyhow", + "dbs-utils", + "dbs-virtio-devices", + "log", + "thiserror", + "timerfd", +] + +[[package]] +name = "dbs-utils" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0cb6ff873451b76e22789af7fbe1d0478c42c717f817e66908be7a3a2288068c" +dependencies = [ + "anyhow", + "event-manager", + "libc", + "log", + "serde", + "thiserror", + "timerfd", + "vmm-sys-util 0.11.0", +] + +[[package]] +name = "dbs-virtio-devices" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f70cc3a62fa1c169beca6921ef0d3cf38fdfe7cd732ac76c8517bc8a3df9338" +dependencies = [ + "byteorder", + "caps", + "dbs-device", + "dbs-interrupt", + "dbs-utils", + "epoll", + "fuse-backend-rs", + "io-uring", + "kvm-bindings", + "kvm-ioctls", + "libc", + "log", + "nix 0.23.1", + "nydus-blobfs", + "nydus-rafs", + "rlimit", + "serde", + "serde_json", + "thiserror", + "threadpool", + "virtio-bindings", + "virtio-queue", + "vm-memory", + "vmm-sys-util 0.11.0", +] + +[[package]] +name = "digest" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adfbc57365a37acbd2ebf2b64d7e69bb766e2fea813521ed536f5d0520dcf86c" +dependencies = [ + "block-buffer", + "crypto-common", + "subtle", +] + +[[package]] +name = "dirs-next" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" +dependencies = [ + "cfg-if", + "dirs-sys-next", +] + +[[package]] +name = "dirs-sys-next" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" +dependencies = [ + "libc", + "redox_users", + "winapi", +] + +[[package]] +name = "dragonball" +version = "0.1.0" +dependencies = [ + "arc-swap", + "bytes", + "dbs-address-space", + "dbs-allocator", + "dbs-arch", + "dbs-boot", + "dbs-device", + "dbs-interrupt", + "dbs-legacy-devices", + "dbs-upcall", + "dbs-utils", + "dbs-virtio-devices", + "kvm-bindings", + "kvm-ioctls", + "lazy_static", + "libc", + "linux-loader", + "log", + "nix 0.24.2", + "seccompiler", + "serde", + "serde_derive", + "serde_json", + "slog", + "slog-async", + "slog-scope", + "slog-term", + "test-utils", + "thiserror", + "virtio-queue", + "vm-memory", + "vmm-sys-util 0.11.0", +] + +[[package]] +name = "epoll" +version = "4.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20df693c700404f7e19d4d6fae6b15215d2913c27955d2b9d6f2c0f537511cd0" +dependencies = [ + "bitflags", + "libc", +] + +[[package]] +name = "errno" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1" +dependencies = [ + "errno-dragonfly", + "libc", + "winapi", +] + +[[package]] +name = "errno-dragonfly" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "event-manager" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "377fa591135fbe23396a18e2655a6d5481bf7c5823cdfa3cc81b01a229cbe640" +dependencies = [ + "libc", + "vmm-sys-util 0.11.0", +] + +[[package]] +name = "flate2" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "form_urlencoded" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "fuse-backend-rs" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "994a3bfb694ee52bf8f3bca80d784b723f150810998219337e429cc5dbe92717" +dependencies = [ + "arc-swap", + "bitflags", + "caps", + "core-foundation-sys", + "io-uring", + "lazy_static", + "libc", + "log", + "mio", + "nix 0.24.2", + "scoped-tls", + "slab", + "socket2", + "tokio-uring", + "virtio-queue", + "vm-memory", + "vmm-sys-util 0.10.0", +] + +[[package]] +name = "futures" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38390104763dc37a5145a53c29c63c1290b5d316d6086ec32c293f6736051bb0" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52ba265a92256105f45b719605a571ffe2d1f0fea3807304b522c1d778f79eed" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04909a7a7e4633ae6c4a9ab280aeb86da1236243a77b694a49eacd659a4bd3ac" + +[[package]] +name = "futures-executor" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7acc85df6714c176ab5edf386123fafe217be88c0840ec11f199441134a074e2" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00f5fb52a06bdcadeb54e8d3671f8888a39697dcb0b81b23b55174030427f4eb" + +[[package]] +name = "futures-macro" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdfb8ce053d86b91919aad980c220b1fb8401a9394410e1c289ed7e66b61835d" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "futures-sink" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39c15cf1a4aa79df40f1bb462fb39676d0ad9e366c2a33b590d7c66f4f81fcf9" + +[[package]] +name = "futures-task" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ffb393ac5d9a6eaa9d3fdf37ae2776656b706e200c8e16b1bdb227f5198e6ea" + +[[package]] +name = "futures-timer" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" + +[[package]] +name = "futures-util" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "197676987abd2f9cadff84926f410af1c183608d36641465df73ae8211dc65d6" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "generic-array" +version = "0.14.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", +] + +[[package]] +name = "gimli" +version = "0.26.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22030e2c5a68ec659fde1e949a745124b48e6fa8b045b7ed5bd1fe4ccc5c4e5d" + +[[package]] +name = "governor" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7df0ee4b237afb71e99f7e2fbd840ffec2d6c4bb569f69b2af18aa1f63077d38" +dependencies = [ + "dashmap", + "futures", + "futures-timer", + "no-std-compat", + "nonzero_ext", + "parking_lot", + "quanta", + "rand", + "smallvec", +] + +[[package]] +name = "hermit-abi" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +dependencies = [ + "libc", +] + +[[package]] +name = "http" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "httpdate" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" + +[[package]] +name = "idna" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "instant" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "io-lifetimes" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9448015e586b611e5d322f6703812bbca2f1e709d5773ecd38ddb4e3bb649504" + +[[package]] +name = "io-uring" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ba34abb5175052fc1a2227a10d2275b7386c9990167de9786c0b88d8b062330" +dependencies = [ + "bitflags", + "libc", +] + +[[package]] +name = "itoa" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc" + +[[package]] +name = "jobserver" +version = "0.1.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "068b1ee6743e4d11fb9c6a1e6064b3693a1b600e7f5f5988047d98b3dc9fb90b" +dependencies = [ + "libc", +] + +[[package]] +name = "js-sys" +version = "0.3.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "kvm-bindings" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a78c049190826fff959994b7c1d8a2930d0a348f1b8f3aa4f9bb34cd5d7f2952" +dependencies = [ + "vmm-sys-util 0.11.0", +] + +[[package]] +name = "kvm-ioctls" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97422ba48d7ffb66fd4d18130f72ab66f9bbbf791fb7a87b9291cdcfec437593" +dependencies = [ + "kvm-bindings", + "libc", + "vmm-sys-util 0.11.0", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "libc" +version = "0.2.137" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc7fcc620a3bff7cdd7a365be3376c97191aeaccc2a603e600951e452615bf89" + +[[package]] +name = "linux-loader" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62a2f912deca034ec34b0a43a390059ea98daac40e440ebe8bea88f3315fe168" +dependencies = [ + "vm-memory", +] + +[[package]] +name = "linux-raw-sys" +version = "0.0.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4d2456c373231a208ad294c33dc5bff30051eafd954cd4caae83a712b12854d" + +[[package]] +name = "lock_api" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "lz4-sys" +version = "1.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57d27b317e207b10f69f5e75494119e391a96f48861ae870d1da6edac98ca900" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "mach" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa" +dependencies = [ + "libc", +] + +[[package]] +name = "memchr" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" + +[[package]] +name = "memoffset" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" +dependencies = [ + "autocfg", +] + +[[package]] +name = "miniz_oxide" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96590ba8f175222643a85693f33d26e9c8a015f599c216509b1a6894af675d34" +dependencies = [ + "adler", +] + +[[package]] +name = "mio" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5d732bc30207a6423068df043e3d02e0735b155ad7ce1a6f76fe2baa5b158de" +dependencies = [ + "libc", + "log", + "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys", +] + +[[package]] +name = "nix" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f866317acbd3a240710c63f065ffb1e4fd466259045ccb504130b7f668f35c6" +dependencies = [ + "bitflags", + "cc", + "cfg-if", + "libc", + "memoffset", +] + +[[package]] +name = "nix" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "195cdbc1741b8134346d515b3a56a1c94b0912758009cfd53f99ea0f57b065fc" +dependencies = [ + "bitflags", + "cfg-if", + "libc", + "memoffset", +] + +[[package]] +name = "no-std-compat" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b93853da6d84c2e3c7d730d6473e8817692dd89be387eb01b94d7f108ecb5b8c" + +[[package]] +name = "nonzero_ext" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38bf9645c8b145698bb0b18a4637dcacbc421ea49bef2317e4fd8065a387cf21" + +[[package]] +name = "num_cpus" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6058e64324c71e02bc2b150e4f3bc8286db6c83092132ffa3f6b1eab0f9def5" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "num_threads" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44" +dependencies = [ + "libc", +] + +[[package]] +name = "nydus-api" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61fbfbdb58ff07bed50b412d4315b3c5808979bb5decb56706ac66d53daf2cf3" +dependencies = [ + "dbs-uhttp", + "http", + "lazy_static", + "libc", + "log", + "mio", + "nydus-error", + "nydus-utils", + "serde", + "serde_derive", + "serde_json", + "url", + "vmm-sys-util 0.10.0", +] + +[[package]] +name = "nydus-blobfs" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ef818ecadc217f49ce8d48506b885d8d26f877d26b0108d90d8b82547663d95" +dependencies = [ + "fuse-backend-rs", + "libc", + "log", + "nydus-error", + "nydus-rafs", + "nydus-storage", + "serde", + "serde_json", + "vm-memory", +] + +[[package]] +name = "nydus-error" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90960fb7268286328d11f18e747bed58d8e3bbea6f401bd316e91fe39f4f7213" +dependencies = [ + "backtrace", + "httpdate", + "libc", + "log", + "serde", + "serde_json", +] + +[[package]] +name = "nydus-rafs" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4a06e8b0b4a90acc2d128d2f3b1ab6ae5d325116f1f69754bd3628dbd4499f4" +dependencies = [ + "anyhow", + "arc-swap", + "bitflags", + "blake3", + "fuse-backend-rs", + "futures", + "lazy_static", + "libc", + "log", + "lz4-sys", + "nix 0.24.2", + "nydus-api", + "nydus-error", + "nydus-storage", + "nydus-utils", + "serde", + "serde_json", + "sha2", + "spmc", + "vm-memory", +] + +[[package]] +name = "nydus-storage" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5dd10c443f47a0ac7d71021f7658a605c2be5b46576a91f3238babbaf3f459e" +dependencies = [ + "anyhow", + "arc-swap", + "bitflags", + "dbs-uhttp", + "fuse-backend-rs", + "futures", + "governor", + "lazy_static", + "libc", + "log", + "nix 0.24.2", + "nydus-api", + "nydus-error", + "nydus-utils", + "serde", + "serde_json", + "sha2", + "tokio", + "vm-memory", + "vmm-sys-util 0.10.0", +] + +[[package]] +name = "nydus-utils" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b7e976c67052c3ff63372e2a07701923796d25a77eac605824b26d406ab0918" +dependencies = [ + "blake3", + "flate2", + "lazy_static", + "libc", + "log", + "lz4-sys", + "nix 0.24.2", + "nydus-error", + "serde", + "serde_json", + "sha2", + "tokio", + "zstd", +] + +[[package]] +name = "object" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21158b2c33aa6d4561f1c0a6ea283ca92bc54802a93b263e910746d679a7eb53" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86f0b0d4bf799edbc74508c1e8bf170ff5f41238e5f8225603ca7caaae2b7860" + +[[package]] +name = "parking_lot" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" +dependencies = [ + "instant", + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d76e8e1493bcac0d2766c42737f34458f1c8c50c0d23bcb24ea953affb273216" +dependencies = [ + "cfg-if", + "instant", + "libc", + "redox_syscall", + "smallvec", + "winapi", +] + +[[package]] +name = "percent-encoding" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" + +[[package]] +name = "pin-project-lite" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + +[[package]] +name = "proc-macro2" +version = "1.0.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ea3d908b0e36316caf9e9e2c4625cdde190a7e6f440d794667ed17a1855e725" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quanta" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20afe714292d5e879d8b12740aa223c6a88f118af41870e8b6196e39a02238a8" +dependencies = [ + "crossbeam-utils", + "libc", + "mach", + "once_cell", + "raw-cpuid", + "wasi 0.10.2+wasi-snapshot-preview1", + "web-sys", + "winapi", +] + +[[package]] +name = "quote" +version = "1.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom", +] + +[[package]] +name = "raw-cpuid" +version = "10.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6823ea29436221176fe662da99998ad3b4db2c7f31e7b6f5fe43adccd6320bb" +dependencies = [ + "bitflags", +] + +[[package]] +name = "redox_syscall" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +dependencies = [ + "bitflags", +] + +[[package]] +name = "redox_users" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" +dependencies = [ + "getrandom", + "redox_syscall", + "thiserror", +] + +[[package]] +name = "rlimit" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "347703a5ae47adf1e693144157be231dde38c72bd485925cae7407ad3e52480b" +dependencies = [ + "libc", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342" + +[[package]] +name = "rustix" +version = "0.34.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2079c267b8394eb529872c3cf92e181c378b41fea36e68130357b52493701d2e" +dependencies = [ + "bitflags", + "errno", + "io-lifetimes", + "libc", + "linux-raw-sys", + "winapi", +] + +[[package]] +name = "rustversion" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97477e48b4cf8603ad5f7aaf897467cf42ab4218a38ef76fb14c2d6773a6d6a8" + +[[package]] +name = "ryu" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09" + +[[package]] +name = "scoped-tls" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" + +[[package]] +name = "scopeguard" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" + +[[package]] +name = "seccompiler" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e01d1292a1131b22ccea49f30bd106f1238b5ddeec1a98d39268dcc31d540e68" +dependencies = [ + "libc", +] + +[[package]] +name = "serde" +version = "1.0.147" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d193d69bae983fc11a79df82342761dfbf28a99fc8d203dca4c3c1b590948965" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.147" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f1d362ca8fc9c3e3a7484440752472d68a6caa98f1ab81d99b5dfe517cec852" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce777b7b150d76b9cf60d28b55f5847135a003f7d7350c6be7a773508ce7d45" +dependencies = [ + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "sha2" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "slab" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" +dependencies = [ + "autocfg", +] + +[[package]] +name = "slog" +version = "2.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8347046d4ebd943127157b94d63abb990fcf729dc4e9978927fdf4ac3c998d06" + +[[package]] +name = "slog-async" +version = "2.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "766c59b252e62a34651412870ff55d8c4e6d04df19b43eecb2703e417b097ffe" +dependencies = [ + "crossbeam-channel", + "slog", + "take_mut", + "thread_local", +] + +[[package]] +name = "slog-scope" +version = "4.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f95a4b4c3274cd2869549da82b57ccc930859bdbf5bcea0424bc5f140b3c786" +dependencies = [ + "arc-swap", + "lazy_static", + "slog", +] + +[[package]] +name = "slog-term" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87d29185c55b7b258b4f120eab00f48557d4d9bc814f41713f449d35b0f8977c" +dependencies = [ + "atty", + "slog", + "term", + "thread_local", + "time", +] + +[[package]] +name = "smallvec" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" + +[[package]] +name = "socket2" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "spmc" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02a8428da277a8e3a15271d79943e80ccc2ef254e78813a166a08d65e4c3ece5" + +[[package]] +name = "subtle" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" + +[[package]] +name = "syn" +version = "1.0.103" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a864042229133ada95abf3b54fdc62ef5ccabe9515b64717bcb9a1919e59445d" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "take_mut" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f764005d11ee5f36500a149ace24e00e3da98b0158b3e2d53a7495660d3f4d60" + +[[package]] +name = "term" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f" +dependencies = [ + "dirs-next", + "rustversion", + "winapi", +] + +[[package]] +name = "test-utils" +version = "0.1.0" +dependencies = [ + "nix 0.24.2", +] + +[[package]] +name = "thiserror" +version = "1.0.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10deb33631e3c9018b9baf9dcbbc4f737320d2b576bac10f6aefa048fa407e3e" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "982d17546b47146b28f7c22e3d08465f6b8903d0ea13c1660d9d84a6e7adcdbb" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "thread_local" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180" +dependencies = [ + "once_cell", +] + +[[package]] +name = "threadpool" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" +dependencies = [ + "num_cpus", +] + +[[package]] +name = "time" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a561bf4617eebd33bca6434b988f39ed798e527f51a1e797d0ee4f61c0a38376" +dependencies = [ + "itoa", + "libc", + "num_threads", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd" + +[[package]] +name = "time-macros" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d967f99f534ca7e495c575c62638eebc2898a8c84c119b89e250477bc4ba16b2" +dependencies = [ + "time-core", +] + +[[package]] +name = "timerfd" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29f85a7c965b8e7136952f59f2a359694c78f105b2d2ff99cf6c2c404bf7e33f" +dependencies = [ + "rustix", +] + +[[package]] +name = "tinyvec" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" + +[[package]] +name = "tokio" +version = "1.21.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9e03c497dc955702ba729190dc4aac6f2a0ce97f913e5b1b5912fc5039d9099" +dependencies = [ + "autocfg", + "libc", + "mio", + "num_cpus", + "pin-project-lite", + "socket2", + "winapi", +] + +[[package]] +name = "tokio-uring" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3ad494f39874984d990ade7f6319dafbcd3301ff0b1841f8a55a1ebb3e742c8" +dependencies = [ + "io-uring", + "libc", + "scoped-tls", + "slab", + "socket2", + "tokio", +] + +[[package]] +name = "typenum" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" + +[[package]] +name = "unicode-bidi" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" + +[[package]] +name = "unicode-ident" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3" + +[[package]] +name = "unicode-normalization" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "url" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", +] + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "virtio-bindings" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ff512178285488516ed85f15b5d0113a7cdb89e9e8a760b269ae4f02b84bd6b" + +[[package]] +name = "virtio-queue" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "519c0a333c871650269cba303bc108075d52a0c0d64f9b91fae61829b53725af" +dependencies = [ + "log", + "vm-memory", + "vmm-sys-util 0.11.0", +] + +[[package]] +name = "vm-fdt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f43fb5a6bd1a7d423ad72802801036719b7546cf847a103f8fe4575f5b0d45a6" + +[[package]] +name = "vm-memory" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "583f213899e8a5eea23d9c507252d4bed5bc88f0ecbe0783262f80034630744b" +dependencies = [ + "arc-swap", + "libc", + "winapi", +] + +[[package]] +name = "vm-superio" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4b5231d334edbc03b22704caa1a022e4c07491d6df736593f26094df8b04a51" + +[[package]] +name = "vmm-sys-util" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08604d7be03eb26e33b3cee3ed4aef2bf550b305d1cca60e84da5d28d3790b62" +dependencies = [ + "bitflags", + "libc", +] + +[[package]] +name = "vmm-sys-util" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc06a16ee8ebf0d9269aed304030b0d20a866b8b3dd3d4ce532596ac567a0d24" +dependencies = [ + "bitflags", + "libc", +] + +[[package]] +name = "wasi" +version = "0.10.2+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasm-bindgen" +version = "0.2.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f" + +[[package]] +name = "web-sys" +version = "0.3.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-sys" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d2aa71f6f0cbe00ae5167d90ef3cfe66527d6f613ca78ac8024c3ccab9a19e" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd0f252f5a35cac83d6311b2e795981f5ee6e67eb1f9a7f64eb4500fbc4dcdb4" + +[[package]] +name = "windows_i686_gnu" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbeae19f6716841636c28d695375df17562ca208b2b7d0dc47635a50ae6c5de7" + +[[package]] +name = "windows_i686_msvc" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84c12f65daa39dd2babe6e442988fc329d6243fdce47d7d2d155b8d874862246" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf7b1b21b5362cbc318f686150e5bcea75ecedc74dd157d874d754a2ca44b0ed" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09d525d2ba30eeb3297665bd434a54297e4170c7f1a44cad4ef58095b4cd2028" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40009d85759725a34da6d89a94e63d7bdc50a862acf0dbc7c8e488f1edcb6f5" + +[[package]] +name = "zstd" +version = "0.11.2+zstd.1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" +dependencies = [ + "zstd-safe", +] + +[[package]] +name = "zstd-safe" +version = "5.0.2+zstd.1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db" +dependencies = [ + "libc", + "zstd-sys", +] + +[[package]] +name = "zstd-sys" +version = "2.0.1+zstd.1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fd07cbbc53846d9145dbffdf6dd09a7a0aa52be46741825f5c97bdd4f73f12b" +dependencies = [ + "cc", + "libc", +] From eab8d6be13654a970fa0712a381109a6ae6eec6a Mon Sep 17 00:00:00 2001 From: Peng Tao Date: Wed, 26 Oct 2022 10:32:01 +0800 Subject: [PATCH 29/37] build: update golang version to 1.19.2 So that we get the latest language fixes. There is little use to maitain compiler backward compatibility. Let's just set the default golang version to the latest 1.19.2. Fixes: #5494 Signed-off-by: Peng Tao --- .github/workflows/darwin-tests.yaml | 8 +- .github/workflows/docs-url-alive-check.yaml | 8 +- .github/workflows/static-checks.yaml | 28 +- src/runtime/go.mod | 55 +- src/runtime/go.sum | 7 - .../code.cloudfoundry.org/bytefmt/go.mod | 8 - .../code.cloudfoundry.org/bytefmt/go.sum | 93 -- .../vendor/github.com/BurntSushi/toml/go.mod | 3 - .../github.com/Microsoft/go-winio/go.mod | 8 - .../github.com/Microsoft/go-winio/go.sum | 11 - .../github.com/Microsoft/hcsshim/go.mod | 39 - .../github.com/Microsoft/hcsshim/go.sum | 993 ------------------ .../github.com/asaskevich/govalidator/go.mod | 3 - .../vendor/github.com/blang/semver/v4/go.mod | 3 - .../github.com/cespare/xxhash/v2/go.mod | 3 - .../github.com/cespare/xxhash/v2/go.sum | 0 .../vendor/github.com/cilium/ebpf/go.mod | 9 - .../vendor/github.com/cilium/ebpf/go.sum | 13 - .../github.com/containerd/cgroups/go.mod | 22 - .../github.com/containerd/cgroups/go.sum | 87 -- .../github.com/containerd/console/go.mod | 5 - .../github.com/containerd/console/go.sum | 2 - .../vendor/github.com/containerd/fifo/go.mod | 9 - .../vendor/github.com/containerd/fifo/go.sum | 15 - .../github.com/containerd/go-runc/go.mod | 11 - .../github.com/containerd/go-runc/go.sum | 17 - .../vendor/github.com/containerd/ttrpc/go.mod | 13 - .../vendor/github.com/containerd/ttrpc/go.sum | 99 -- .../github.com/containerd/typeurl/go.mod | 8 - .../github.com/containerd/typeurl/go.sum | 33 - .../cyphar/filepath-securejoin/go.mod | 3 - .../github.com/fsnotify/fsnotify/go.mod | 10 - .../github.com/fsnotify/fsnotify/go.sum | 2 - .../vendor/github.com/go-logr/logr/go.mod | 3 - .../vendor/github.com/go-logr/stdr/go.mod | 5 - .../vendor/github.com/go-logr/stdr/go.sum | 2 - .../github.com/go-openapi/analysis/go.mod | 14 - .../github.com/go-openapi/analysis/go.sum | 162 --- .../github.com/go-openapi/errors/go.mod | 12 - .../github.com/go-openapi/errors/go.sum | 26 - .../github.com/go-openapi/jsonpointer/go.mod | 9 - .../github.com/go-openapi/jsonpointer/go.sum | 24 - .../go-openapi/jsonreference/go.mod | 11 - .../go-openapi/jsonreference/go.sum | 37 - .../vendor/github.com/go-openapi/loads/go.mod | 11 - .../vendor/github.com/go-openapi/loads/go.sum | 164 --- .../github.com/go-openapi/runtime/go.mod | 17 - .../github.com/go-openapi/runtime/go.sum | 268 ----- .../vendor/github.com/go-openapi/spec/go.mod | 12 - .../vendor/github.com/go-openapi/spec/go.sum | 59 -- .../github.com/go-openapi/strfmt/go.mod | 13 - .../github.com/go-openapi/strfmt/go.sum | 63 -- .../vendor/github.com/go-openapi/swag/go.mod | 18 - .../vendor/github.com/go-openapi/swag/go.sum | 29 - .../github.com/go-openapi/validate/go.mod | 15 - .../github.com/go-openapi/validate/go.sum | 169 --- .../vendor/github.com/go-stack/stack/go.mod | 1 - .../vendor/github.com/godbus/dbus/v5/go.mod | 3 - .../vendor/github.com/godbus/dbus/v5/go.sum | 0 .../github.com/hashicorp/errwrap/go.mod | 1 - .../github.com/hashicorp/go-multierror/go.mod | 5 - .../github.com/hashicorp/go-multierror/go.sum | 2 - .../vendor/github.com/josharian/intern/go.mod | 3 - .../vendor/github.com/mdlayher/socket/go.mod | 10 - .../vendor/github.com/mdlayher/socket/go.sum | 13 - .../vendor/github.com/mdlayher/vsock/go.mod | 10 - .../vendor/github.com/mdlayher/vsock/go.sum | 17 - .../github.com/mitchellh/mapstructure/go.mod | 3 - .../github.com/moby/sys/mountinfo/go.mod | 5 - .../github.com/moby/sys/mountinfo/go.sum | 2 - .../opencontainers/go-digest/go.mod | 3 - .../vendor/github.com/pbnjay/memory/go.mod | 3 - .../github.com/prometheus/procfs/go.mod | 9 - .../github.com/prometheus/procfs/go.sum | 8 - .../github.com/russross/blackfriday/v2/go.mod | 1 - .../vendor/github.com/sirupsen/logrus/go.mod | 9 - .../vendor/github.com/sirupsen/logrus/go.sum | 14 - .../vendor/github.com/urfave/cli/go.mod | 9 - .../vendor/github.com/urfave/cli/go.sum | 14 - .../github.com/vishvananda/netlink/go.mod | 8 - .../github.com/vishvananda/netlink/go.sum | 6 - .../github.com/vishvananda/netns/go.mod | 5 - .../github.com/vishvananda/netns/go.sum | 2 - src/runtime/vendor/go.opencensus.io/go.mod | 12 - src/runtime/vendor/go.opencensus.io/go.sum | 116 -- .../otel/exporters/jaeger/go.mod | 75 -- .../otel/exporters/jaeger/go.sum | 18 - .../vendor/go.opentelemetry.io/otel/go.mod | 77 -- .../vendor/go.opentelemetry.io/otel/go.sum | 20 - .../go.opentelemetry.io/otel/trace/go.mod | 75 -- .../go.opentelemetry.io/otel/trace/go.sum | 18 - src/runtime/vendor/golang.org/x/oauth2/go.mod | 9 - src/runtime/vendor/golang.org/x/oauth2/go.sum | 366 ------- .../vendor/google.golang.org/grpc/go.mod | 19 - .../vendor/google.golang.org/grpc/go.sum | 141 --- src/runtime/vendor/gopkg.in/yaml.v2/go.mod | 5 - src/runtime/vendor/gopkg.in/yaml.v3/go.mod | 5 - src/runtime/vendor/modules.txt | 140 ++- src/tools/log-parser/go.mod | 12 +- .../vendor/github.com/BurntSushi/toml/go.mod | 3 - .../vendor/github.com/go-logfmt/logfmt/go.mod | 3 - .../github.com/russross/blackfriday/v2/go.mod | 1 - .../shurcooL/sanitized_anchor_name/go.mod | 1 - .../vendor/github.com/sirupsen/logrus/go.mod | 10 - .../vendor/github.com/sirupsen/logrus/go.sum | 8 - .../vendor/github.com/urfave/cli/go.mod | 9 - .../vendor/github.com/urfave/cli/go.sum | 14 - .../log-parser/vendor/gopkg.in/yaml.v2/go.mod | 5 - .../log-parser/vendor/gopkg.in/yaml.v3/go.mod | 5 - src/tools/log-parser/vendor/modules.txt | 19 +- versions.yaml | 7 +- 111 files changed, 183 insertions(+), 3947 deletions(-) delete mode 100644 src/runtime/vendor/code.cloudfoundry.org/bytefmt/go.mod delete mode 100644 src/runtime/vendor/code.cloudfoundry.org/bytefmt/go.sum delete mode 100644 src/runtime/vendor/github.com/BurntSushi/toml/go.mod delete mode 100644 src/runtime/vendor/github.com/Microsoft/go-winio/go.mod delete mode 100644 src/runtime/vendor/github.com/Microsoft/go-winio/go.sum delete mode 100644 src/runtime/vendor/github.com/Microsoft/hcsshim/go.mod delete mode 100644 src/runtime/vendor/github.com/Microsoft/hcsshim/go.sum delete mode 100644 src/runtime/vendor/github.com/asaskevich/govalidator/go.mod delete mode 100644 src/runtime/vendor/github.com/blang/semver/v4/go.mod delete mode 100644 src/runtime/vendor/github.com/cespare/xxhash/v2/go.mod delete mode 100644 src/runtime/vendor/github.com/cespare/xxhash/v2/go.sum delete mode 100644 src/runtime/vendor/github.com/cilium/ebpf/go.mod delete mode 100644 src/runtime/vendor/github.com/cilium/ebpf/go.sum delete mode 100644 src/runtime/vendor/github.com/containerd/cgroups/go.mod delete mode 100644 src/runtime/vendor/github.com/containerd/cgroups/go.sum delete mode 100644 src/runtime/vendor/github.com/containerd/console/go.mod delete mode 100644 src/runtime/vendor/github.com/containerd/console/go.sum delete mode 100644 src/runtime/vendor/github.com/containerd/fifo/go.mod delete mode 100644 src/runtime/vendor/github.com/containerd/fifo/go.sum delete mode 100644 src/runtime/vendor/github.com/containerd/go-runc/go.mod delete mode 100644 src/runtime/vendor/github.com/containerd/go-runc/go.sum delete mode 100644 src/runtime/vendor/github.com/containerd/ttrpc/go.mod delete mode 100644 src/runtime/vendor/github.com/containerd/ttrpc/go.sum delete mode 100644 src/runtime/vendor/github.com/containerd/typeurl/go.mod delete mode 100644 src/runtime/vendor/github.com/containerd/typeurl/go.sum delete mode 100644 src/runtime/vendor/github.com/cyphar/filepath-securejoin/go.mod delete mode 100644 src/runtime/vendor/github.com/fsnotify/fsnotify/go.mod delete mode 100644 src/runtime/vendor/github.com/fsnotify/fsnotify/go.sum delete mode 100644 src/runtime/vendor/github.com/go-logr/logr/go.mod delete mode 100644 src/runtime/vendor/github.com/go-logr/stdr/go.mod delete mode 100644 src/runtime/vendor/github.com/go-logr/stdr/go.sum delete mode 100644 src/runtime/vendor/github.com/go-openapi/analysis/go.mod delete mode 100644 src/runtime/vendor/github.com/go-openapi/analysis/go.sum delete mode 100644 src/runtime/vendor/github.com/go-openapi/errors/go.mod delete mode 100644 src/runtime/vendor/github.com/go-openapi/errors/go.sum delete mode 100644 src/runtime/vendor/github.com/go-openapi/jsonpointer/go.mod delete mode 100644 src/runtime/vendor/github.com/go-openapi/jsonpointer/go.sum delete mode 100644 src/runtime/vendor/github.com/go-openapi/jsonreference/go.mod delete mode 100644 src/runtime/vendor/github.com/go-openapi/jsonreference/go.sum delete mode 100644 src/runtime/vendor/github.com/go-openapi/loads/go.mod delete mode 100644 src/runtime/vendor/github.com/go-openapi/loads/go.sum delete mode 100644 src/runtime/vendor/github.com/go-openapi/runtime/go.mod delete mode 100644 src/runtime/vendor/github.com/go-openapi/runtime/go.sum delete mode 100644 src/runtime/vendor/github.com/go-openapi/spec/go.mod delete mode 100644 src/runtime/vendor/github.com/go-openapi/spec/go.sum delete mode 100644 src/runtime/vendor/github.com/go-openapi/strfmt/go.mod delete mode 100644 src/runtime/vendor/github.com/go-openapi/strfmt/go.sum delete mode 100644 src/runtime/vendor/github.com/go-openapi/swag/go.mod delete mode 100644 src/runtime/vendor/github.com/go-openapi/swag/go.sum delete mode 100644 src/runtime/vendor/github.com/go-openapi/validate/go.mod delete mode 100644 src/runtime/vendor/github.com/go-openapi/validate/go.sum delete mode 100644 src/runtime/vendor/github.com/go-stack/stack/go.mod delete mode 100644 src/runtime/vendor/github.com/godbus/dbus/v5/go.mod delete mode 100644 src/runtime/vendor/github.com/godbus/dbus/v5/go.sum delete mode 100644 src/runtime/vendor/github.com/hashicorp/errwrap/go.mod delete mode 100644 src/runtime/vendor/github.com/hashicorp/go-multierror/go.mod delete mode 100644 src/runtime/vendor/github.com/hashicorp/go-multierror/go.sum delete mode 100644 src/runtime/vendor/github.com/josharian/intern/go.mod delete mode 100644 src/runtime/vendor/github.com/mdlayher/socket/go.mod delete mode 100644 src/runtime/vendor/github.com/mdlayher/socket/go.sum delete mode 100644 src/runtime/vendor/github.com/mdlayher/vsock/go.mod delete mode 100644 src/runtime/vendor/github.com/mdlayher/vsock/go.sum delete mode 100644 src/runtime/vendor/github.com/mitchellh/mapstructure/go.mod delete mode 100644 src/runtime/vendor/github.com/moby/sys/mountinfo/go.mod delete mode 100644 src/runtime/vendor/github.com/moby/sys/mountinfo/go.sum delete mode 100644 src/runtime/vendor/github.com/opencontainers/go-digest/go.mod delete mode 100644 src/runtime/vendor/github.com/pbnjay/memory/go.mod delete mode 100644 src/runtime/vendor/github.com/prometheus/procfs/go.mod delete mode 100644 src/runtime/vendor/github.com/prometheus/procfs/go.sum delete mode 100644 src/runtime/vendor/github.com/russross/blackfriday/v2/go.mod delete mode 100644 src/runtime/vendor/github.com/sirupsen/logrus/go.mod delete mode 100644 src/runtime/vendor/github.com/sirupsen/logrus/go.sum delete mode 100644 src/runtime/vendor/github.com/urfave/cli/go.mod delete mode 100644 src/runtime/vendor/github.com/urfave/cli/go.sum delete mode 100644 src/runtime/vendor/github.com/vishvananda/netlink/go.mod delete mode 100644 src/runtime/vendor/github.com/vishvananda/netlink/go.sum delete mode 100644 src/runtime/vendor/github.com/vishvananda/netns/go.mod delete mode 100644 src/runtime/vendor/github.com/vishvananda/netns/go.sum delete mode 100644 src/runtime/vendor/go.opencensus.io/go.mod delete mode 100644 src/runtime/vendor/go.opencensus.io/go.sum delete mode 100644 src/runtime/vendor/go.opentelemetry.io/otel/exporters/jaeger/go.mod delete mode 100644 src/runtime/vendor/go.opentelemetry.io/otel/exporters/jaeger/go.sum delete mode 100644 src/runtime/vendor/go.opentelemetry.io/otel/go.mod delete mode 100644 src/runtime/vendor/go.opentelemetry.io/otel/go.sum delete mode 100644 src/runtime/vendor/go.opentelemetry.io/otel/trace/go.mod delete mode 100644 src/runtime/vendor/go.opentelemetry.io/otel/trace/go.sum delete mode 100644 src/runtime/vendor/golang.org/x/oauth2/go.mod delete mode 100644 src/runtime/vendor/golang.org/x/oauth2/go.sum delete mode 100644 src/runtime/vendor/google.golang.org/grpc/go.mod delete mode 100644 src/runtime/vendor/google.golang.org/grpc/go.sum delete mode 100644 src/runtime/vendor/gopkg.in/yaml.v2/go.mod delete mode 100644 src/runtime/vendor/gopkg.in/yaml.v3/go.mod delete mode 100644 src/tools/log-parser/vendor/github.com/BurntSushi/toml/go.mod delete mode 100644 src/tools/log-parser/vendor/github.com/go-logfmt/logfmt/go.mod delete mode 100644 src/tools/log-parser/vendor/github.com/russross/blackfriday/v2/go.mod delete mode 100644 src/tools/log-parser/vendor/github.com/shurcooL/sanitized_anchor_name/go.mod delete mode 100644 src/tools/log-parser/vendor/github.com/sirupsen/logrus/go.mod delete mode 100644 src/tools/log-parser/vendor/github.com/sirupsen/logrus/go.sum delete mode 100644 src/tools/log-parser/vendor/github.com/urfave/cli/go.mod delete mode 100644 src/tools/log-parser/vendor/github.com/urfave/cli/go.sum delete mode 100644 src/tools/log-parser/vendor/gopkg.in/yaml.v2/go.mod delete mode 100644 src/tools/log-parser/vendor/gopkg.in/yaml.v3/go.mod diff --git a/.github/workflows/darwin-tests.yaml b/.github/workflows/darwin-tests.yaml index 5a83add32..278d2e287 100644 --- a/.github/workflows/darwin-tests.yaml +++ b/.github/workflows/darwin-tests.yaml @@ -9,16 +9,12 @@ on: name: Darwin tests jobs: test: - strategy: - matrix: - go-version: [1.16.x, 1.17.x] - os: [macos-latest] - runs-on: ${{ matrix.os }} + runs-on: macos-latest steps: - name: Install Go uses: actions/setup-go@v2 with: - go-version: ${{ matrix.go-version }} + go-version: 1.19.2 - name: Checkout code uses: actions/checkout@v2 - name: Build utils diff --git a/.github/workflows/docs-url-alive-check.yaml b/.github/workflows/docs-url-alive-check.yaml index 0ef3e47d1..f8ca138ff 100644 --- a/.github/workflows/docs-url-alive-check.yaml +++ b/.github/workflows/docs-url-alive-check.yaml @@ -5,11 +5,7 @@ on: name: Docs URL Alive Check jobs: test: - strategy: - matrix: - go-version: [1.17.x] - os: [ubuntu-20.04] - runs-on: ${{ matrix.os }} + runs-on: ubuntu-20.04 # don't run this action on forks if: github.repository_owner == 'kata-containers' env: @@ -18,7 +14,7 @@ jobs: - name: Install Go uses: actions/setup-go@v2 with: - go-version: ${{ matrix.go-version }} + go-version: 1.19.2 env: GOPATH: ${{ runner.workspace }}/kata-containers - name: Set env diff --git a/.github/workflows/static-checks.yaml b/.github/workflows/static-checks.yaml index d0159adf0..477e7c157 100644 --- a/.github/workflows/static-checks.yaml +++ b/.github/workflows/static-checks.yaml @@ -9,11 +9,7 @@ on: name: Static checks jobs: check-vendored-code: - strategy: - matrix: - go-version: [1.16.x, 1.17.x] - os: [ubuntu-20.04] - runs-on: ${{ matrix.os }} + runs-on: ubuntu-20.04 env: TRAVIS: "true" TRAVIS_BRANCH: ${{ github.base_ref }} @@ -26,7 +22,7 @@ jobs: if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }} uses: actions/setup-go@v3 with: - go-version: ${{ matrix.go-version }} + go-version: 1.19.2 env: GOPATH: ${{ runner.workspace }}/kata-containers - name: Setup GOPATH @@ -65,11 +61,7 @@ jobs: cd ${GOPATH}/src/github.com/${{ github.repository }} && make vendor static-checks: - strategy: - matrix: - go-version: [1.16.x, 1.17.x] - os: [ubuntu-20.04] - runs-on: ${{ matrix.os }} + runs-on: ubuntu-20.04 env: TRAVIS: "true" TRAVIS_BRANCH: ${{ github.base_ref }} @@ -82,7 +74,7 @@ jobs: if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }} uses: actions/setup-go@v3 with: - go-version: ${{ matrix.go-version }} + go-version: 1.19.2 env: GOPATH: ${{ runner.workspace }}/kata-containers - name: Setup GOPATH @@ -136,11 +128,7 @@ jobs: compiler-checks: - strategy: - matrix: - go-version: [1.16.x, 1.17.x] - os: [ubuntu-20.04] - runs-on: ${{ matrix.os }} + runs-on: ubuntu-20.04 env: TRAVIS: "true" TRAVIS_BRANCH: ${{ github.base_ref }} @@ -153,7 +141,7 @@ jobs: if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }} uses: actions/setup-go@v3 with: - go-version: ${{ matrix.go-version }} + go-version: 1.19.2 env: GOPATH: ${{ runner.workspace }}/kata-containers - name: Setup GOPATH @@ -219,7 +207,7 @@ jobs: if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }} uses: actions/setup-go@v3 with: - go-version: 1.17.x + go-version: 1.19.2 env: GOPATH: ${{ runner.workspace }}/kata-containers - name: Setup GOPATH @@ -285,7 +273,7 @@ jobs: if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }} uses: actions/setup-go@v3 with: - go-version: 1.17.x + go-version: 1.19.2 env: GOPATH: ${{ runner.workspace }}/kata-containers - name: Setup GOPATH diff --git a/src/runtime/go.mod b/src/runtime/go.mod index 611903f33..1008186a7 100644 --- a/src/runtime/go.mod +++ b/src/runtime/go.mod @@ -1,6 +1,6 @@ module github.com/kata-containers/kata-containers/src/runtime -go 1.14 +go 1.19 require ( code.cloudfoundry.org/bytefmt v0.0.0-20211005130812-5bb3c17173e5 @@ -18,7 +18,6 @@ require ( github.com/containers/podman/v4 v4.2.0 github.com/coreos/go-systemd/v22 v22.3.2 github.com/docker/go-units v0.4.0 - github.com/frankban/quicktest v1.13.1 // indirect github.com/fsnotify/fsnotify v1.5.4 github.com/go-ini/ini v1.28.2 github.com/go-openapi/errors v0.20.2 @@ -40,7 +39,6 @@ require ( github.com/prometheus/client_model v0.2.0 github.com/prometheus/common v0.32.1 github.com/prometheus/procfs v0.7.3 - github.com/rogpeppe/go-internal v1.8.1-0.20210923151022-86f73c517451 // indirect github.com/safchain/ethtool v0.0.0-20210803160452-9aa261dae9b1 github.com/sirupsen/logrus v1.9.0 github.com/stretchr/testify v1.8.0 @@ -60,6 +58,57 @@ require ( k8s.io/cri-api v0.23.1 ) +require ( + github.com/Microsoft/go-winio v0.5.2 // indirect + github.com/Microsoft/hcsshim v0.9.3 // indirect + github.com/PuerkitoBio/purell v1.1.1 // indirect + github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 // indirect + github.com/asaskevich/govalidator v0.0.0-20200907205600-7a23bdc65eef // indirect + github.com/beorn7/perks v1.0.1 // indirect + github.com/cespare/xxhash/v2 v2.1.2 // indirect + github.com/cilium/ebpf v0.7.0 // indirect + github.com/containerd/go-runc v1.0.0 // indirect + github.com/containernetworking/cni v1.1.2 // indirect + github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect + github.com/cyphar/filepath-securejoin v0.2.3 // indirect + github.com/davecgh/go-spew v1.1.1 // indirect + github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c // indirect + github.com/frankban/quicktest v1.13.1 // indirect + github.com/go-logr/logr v1.2.2 // indirect + github.com/go-logr/stdr v1.2.2 // indirect + github.com/go-openapi/analysis v0.21.2 // indirect + github.com/go-openapi/jsonpointer v0.19.5 // indirect + github.com/go-openapi/jsonreference v0.19.6 // indirect + github.com/go-openapi/loads v0.21.1 // indirect + github.com/go-openapi/spec v0.20.4 // indirect + github.com/go-stack/stack v1.8.0 // indirect + github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect + github.com/golang/protobuf v1.5.2 // indirect + github.com/hashicorp/errwrap v1.1.0 // indirect + github.com/josharian/intern v1.0.0 // indirect + github.com/mailru/easyjson v0.7.6 // indirect + github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 // indirect + github.com/mdlayher/socket v0.2.0 // indirect + github.com/mitchellh/mapstructure v1.5.0 // indirect + github.com/moby/sys/mountinfo v0.6.2 // indirect + github.com/oklog/ulid v1.3.1 // indirect + github.com/opencontainers/go-digest v1.0.0 // indirect + github.com/opencontainers/image-spec v1.0.3-0.20220114050600-8b9d41f48198 // indirect + github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/rogpeppe/go-internal v1.8.1-0.20210923151022-86f73c517451 // indirect + github.com/russross/blackfriday/v2 v2.1.0 // indirect + go.mongodb.org/mongo-driver v1.7.5 // indirect + go.opencensus.io v0.23.0 // indirect + golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f // indirect + golang.org/x/text v0.3.7 // indirect + google.golang.org/appengine v1.6.7 // indirect + google.golang.org/genproto v0.0.0-20220624142145-8cd45d7dbd1f // indirect + google.golang.org/protobuf v1.28.1 // indirect + gopkg.in/inf.v0 v0.9.1 // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect +) + replace ( github.com/opencontainers/image-spec => github.com/opencontainers/image-spec v1.0.2 github.com/opencontainers/runc => github.com/opencontainers/runc v1.1.3 diff --git a/src/runtime/go.sum b/src/runtime/go.sum index 2c9b856f4..e7bef7b83 100644 --- a/src/runtime/go.sum +++ b/src/runtime/go.sum @@ -212,7 +212,6 @@ github.com/cenkalti/backoff/v4 v4.1.2/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInq github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/certifi/gocertifi v0.0.0-20191021191039-0944d244cd40/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA= github.com/certifi/gocertifi v0.0.0-20200922220541-2c3bb06c6054/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA= -github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE= @@ -394,7 +393,6 @@ github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3Ee 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 v0.0.0-20190719114852-fd7a80b32e1f h1:JOrtw2xFKzlg+cbHpyrpLDmnN1HqhBfnX7WDiW7eG2c= github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f/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= @@ -687,7 +685,6 @@ github.com/gobuffalo/validate/v3 v3.0.0/go.mod h1:HFpjq+AIiA2RHoQnQVTFKF/ZpUPXwy github.com/gobuffalo/validate/v3 v3.1.0/go.mod h1:HFpjq+AIiA2RHoQnQVTFKF/ZpUPXwyw82LgyDPxQ9r0= 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 h1:BWhy2j3IXJhjCbC68FptL43tDKIq8FladmaTs3Xs7Z8= 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= @@ -1617,7 +1614,6 @@ golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRu golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20210508222113-6edffad5e616 h1:VLliZ0d+/avPrXXH+OakdXhpJuEoBZuwh1m2j7U6Iug= golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= @@ -1630,7 +1626,6 @@ 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.6.0-dev.0.20220106191415-9b9b3d81d5e3 h1:kQgndtyPBW/JIYERgdxfwMYh3AVStj88WQTlNDi2a+o= golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY= golang.org/x/net v0.0.0-20180530234432-1e491301e022/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1999,7 +1994,6 @@ golang.org/x/tools v0.1.2/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.6-0.20210726203631-07bc1bf47fb2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.10 h1:QjFRCZxdOhBJ/UNgnBZLbNV13DlbnK0quyivTnXJM20= golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E= golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -2009,7 +2003,6 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= -golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f h1:uF6paiQQebLeSXkrTqHqz0MXhXXS1KgF41eUdBNvxK0= golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= google.golang.org/api v0.0.0-20160322025152-9bf6e6e569ff/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= diff --git a/src/runtime/vendor/code.cloudfoundry.org/bytefmt/go.mod b/src/runtime/vendor/code.cloudfoundry.org/bytefmt/go.mod deleted file mode 100644 index dfc6cce21..000000000 --- a/src/runtime/vendor/code.cloudfoundry.org/bytefmt/go.mod +++ /dev/null @@ -1,8 +0,0 @@ -module code.cloudfoundry.org/bytefmt - -go 1.16 - -require ( - github.com/onsi/ginkgo v1.16.4 - github.com/onsi/gomega v1.16.0 -) diff --git a/src/runtime/vendor/code.cloudfoundry.org/bytefmt/go.sum b/src/runtime/vendor/code.cloudfoundry.org/bytefmt/go.sum deleted file mode 100644 index a881b8539..000000000 --- a/src/runtime/vendor/code.cloudfoundry.org/bytefmt/go.sum +++ /dev/null @@ -1,93 +0,0 @@ -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4= -github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= -github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= -github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= -github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= -github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= -github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= -github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= -github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= -github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= -github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= -github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= -github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= -github.com/onsi/ginkgo v1.16.4 h1:29JGrr5oVBm5ulCWet69zQkzWipVXIol6ygQUe/EzNc= -github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= -github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= -github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= -github.com/onsi/gomega v1.16.0 h1:6gjqkI8iiRHMvdccRJM8rVKjCWk6ZIm6FTm3ddIe4/c= -github.com/onsi/gomega v1.16.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= -github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20210428140749-89ef3d95e781 h1:DzZ89McO9/gWPsQXS/FVKAlG02ZjaQ6AlZRBimEYOd0= -golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= -golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210423082822-04245dca01da h1:b3NXsE2LusjYGGjL5bxEVZZORm/YEFFrWFjR8eFrw/c= -golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M= -golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -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= -google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= -google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= -google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= -google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= -google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= -google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0 h1:bxAC2xTBsZGibn2RTntX0oH50xLsqy1OxA9tTL3p/lk= -google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= -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/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.4/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= -gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= diff --git a/src/runtime/vendor/github.com/BurntSushi/toml/go.mod b/src/runtime/vendor/github.com/BurntSushi/toml/go.mod deleted file mode 100644 index 82989481d..000000000 --- a/src/runtime/vendor/github.com/BurntSushi/toml/go.mod +++ /dev/null @@ -1,3 +0,0 @@ -module github.com/BurntSushi/toml - -go 1.16 diff --git a/src/runtime/vendor/github.com/Microsoft/go-winio/go.mod b/src/runtime/vendor/github.com/Microsoft/go-winio/go.mod deleted file mode 100644 index f39a608da..000000000 --- a/src/runtime/vendor/github.com/Microsoft/go-winio/go.mod +++ /dev/null @@ -1,8 +0,0 @@ -module github.com/Microsoft/go-winio - -go 1.13 - -require ( - github.com/sirupsen/logrus v1.7.0 - golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c -) diff --git a/src/runtime/vendor/github.com/Microsoft/go-winio/go.sum b/src/runtime/vendor/github.com/Microsoft/go-winio/go.sum deleted file mode 100644 index 9bdcd9cfd..000000000 --- a/src/runtime/vendor/github.com/Microsoft/go-winio/go.sum +++ /dev/null @@ -1,11 +0,0 @@ -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/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/sirupsen/logrus v1.7.0 h1:ShrD1U9pZB12TX0cVy0DtePoCH97K8EtX+mg7ZARUtM= -github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w= -github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c h1:VwygUrnw9jn88c4u8GD3rZQbqrP/tgas88tPUbBxQrk= -golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= diff --git a/src/runtime/vendor/github.com/Microsoft/hcsshim/go.mod b/src/runtime/vendor/github.com/Microsoft/hcsshim/go.mod deleted file mode 100644 index 9c60dd302..000000000 --- a/src/runtime/vendor/github.com/Microsoft/hcsshim/go.mod +++ /dev/null @@ -1,39 +0,0 @@ -module github.com/Microsoft/hcsshim - -go 1.13 - -require ( - github.com/BurntSushi/toml v0.3.1 - github.com/Microsoft/go-winio v0.4.17 - github.com/cenkalti/backoff/v4 v4.1.1 - github.com/containerd/cgroups v1.0.1 - github.com/containerd/console v1.0.2 - github.com/containerd/containerd v1.5.7 - github.com/containerd/go-runc v1.0.0 - github.com/containerd/ttrpc v1.1.0 - github.com/containerd/typeurl v1.0.2 - github.com/gogo/protobuf v1.3.2 - github.com/golang/mock v1.6.0 - github.com/google/go-cmp v0.5.6 - github.com/google/go-containerregistry v0.5.1 - github.com/linuxkit/virtsock v0.0.0-20201010232012-f8cee7dfc7a3 - github.com/mattn/go-shellwords v1.0.6 - github.com/opencontainers/runc v1.0.2 - github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417 - github.com/pkg/errors v0.9.1 - github.com/sirupsen/logrus v1.8.1 - github.com/urfave/cli v1.22.2 - github.com/vishvananda/netlink v1.1.1-0.20201029203352-d40f9887b852 - github.com/vishvananda/netns v0.0.0-20200728191858-db3c7e526aae - go.etcd.io/bbolt v1.3.6 - go.opencensus.io v0.22.3 - golang.org/x/net v0.0.0-20210825183410-e898025ed96a // indirect - golang.org/x/sync v0.0.0-20210220032951-036812b2e83c - golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e - google.golang.org/grpc v1.40.0 -) - -replace ( - google.golang.org/genproto => google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63 - google.golang.org/grpc => google.golang.org/grpc v1.27.1 -) diff --git a/src/runtime/vendor/github.com/Microsoft/hcsshim/go.sum b/src/runtime/vendor/github.com/Microsoft/hcsshim/go.sum deleted file mode 100644 index 93c37657f..000000000 --- a/src/runtime/vendor/github.com/Microsoft/hcsshim/go.sum +++ /dev/null @@ -1,993 +0,0 @@ -bazil.org/fuse v0.0.0-20160811212531-371fbbdaa898/go.mod h1:Xbm+BRKSBEpa4q4hTSxohYNQpsxXPbPry4JJWOB3LB8= -cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= -cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= -cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= -cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= -cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= -cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= -cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= -cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= -cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= -cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= -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= -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/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= -cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= -cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= -cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= -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-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/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/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 h1:iT12IBVClFevaf8PuVyi3UmZOVh4OqnaLxDTW2O6j3w= -github.com/Microsoft/go-winio v0.4.17/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= -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/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/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/go.mod h1:HI8ITrYtUY+O+ZhtlqUnD8+KwNPOyugEhfP9fdUIaEQ= -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/alexflint/go-filemutex v0.0.0-20171022225611-72bdc8eae2ae/go.mod h1:CgnQgUtFrFz9mxFNtED3jI5tLDjKlOM+oUF/sTk6ps0= -github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= -github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= -github.com/aws/aws-sdk-go v1.15.11/go.mod h1:mFuSZ37Z9YOHbQEwBWztmVzqXrEkub65tZoCYDt7FT0= -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/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= -github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= -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/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/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/buger/jsonparser v0.0.0-20180808090653-f4dd9f5a6b44/go.mod h1:bbYlZJ7hK1yFx9hf58LP0zeX7UjIGs20ufpu3evjr+s= -github.com/bugsnag/bugsnag-go v0.0.0-20141110184014-b1d153021fcd/go.mod h1:2oa8nejYd4cQ/b0hMIopN0lCRxU0bueqREvZLWFrtK8= -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/cenkalti/backoff/v4 v4.1.1 h1:G2HAfAmvm/GcKan2oOQpBXOd2tT2G57ZnZGWa1PxPBQ= -github.com/cenkalti/backoff/v4 v4.1.1/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= -github.com/census-instrumentation/opencensus-proto v0.2.1/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/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/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 h1:iJnMvco9XGvKUvNQkv88bE4uJXxRQH18efbKo9w5vHQ= -github.com/containerd/cgroups v1.0.1/go.mod h1:0SJrPIenamHDcZhEcJMNBB85rHcUsw4f25ZfBiPYRkU= -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 h1:Pi6D+aZXM+oUw1czuKgH5IJ+y0jhYcwBJfx5/Ghn9dE= -github.com/containerd/console v1.0.2/go.mod h1:ytZPjGgY2oeTkAONYafi2kSj0aYggsf8acV1PGKCbzQ= -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.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 h1:rQyoYtj4KddB3bxG6SAqd4+08gePNyJjRqvOIfV3rkM= -github.com/containerd/containerd v1.5.7/go.mod h1:gyvv6+ugqY25TiXxcZC3L5yOeYgEw0QMhscqVp1AR9c= -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 h1:UFRRY5JemiAhPZrr/uE0n8fMTLcZsUvySPr1+D7pgr8= -github.com/containerd/continuity v0.1.0/go.mod h1:ICJu0PwR54nI0yPEnJ6jcS+J7CZAUXrLh8lPo2knzsM= -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 h1:6PirWBr9/L7GDamKr+XM0IeUFXu5mf3M/BPpH9gaLBU= -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 h1:oU+lLv1ULm5taqgV/CJivypVODI4SUz1znWjv3nNYS0= -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 h1:5e7heayhB7CcgdTkqfZqrNaNv15gABwr3Q2jBTbLlt4= -github.com/containerd/stargz-snapshotter/estargz v0.4.1/go.mod h1:x7Q9dg9QYb4+ELgxmo4gBUeJB0tl5dqH1Sdz0nJU1QM= -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/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 h1:Wf6HqHfScWJN9/ZjdUKyjop4mf3Qdd+1TvvltAvM3m8= -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 h1:D9/bQk5vlXQFZ6Kwuu6zaiXJ9oTPe68++AzAJc1DzSI= -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 h1:EoUDS0afbrsXAZ9YQ9jdu/mZ2sXgT1/2yyNng4PGlyM= -github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= -github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4= -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/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/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/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E= -github.com/docker/cli v0.0.0-20191017083524-a8ff7f821017 h1:2HQmlpI3yI9deH18Q6xiSOIjXD4sLI55Y/gfpa8/558= -github.com/docker/cli v0.0.0-20191017083524-a8ff7f821017/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.1-0.20190205005809-0d3efadf0154+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/distribution v2.7.1+incompatible h1:a5mlkVzth6W5A4fOsS3D2EO5BUmsJpcB+cRlLU7cSug= -github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/docker v1.4.2-0.20190924003213-a8608b5b67c7 h1:Cvj7S8I4Xpx78KAl6TwTmMHuHlZ/0SM60NUneGJQ7IE= -github.com/docker/docker v1.4.2-0.20190924003213-a8608b5b67c7/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/docker-credential-helpers v0.6.3 h1:zI2p9+1NQYdnG6sMU26EX4aVGlqbInSQxQXLvzJ4RPQ= -github.com/docker/docker-credential-helpers v0.6.3/go.mod h1:WRaJzqw3CTB9bk10avuGsjVBZsD05qeibJ1/TYlvc0Y= -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/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/go.mod h1:cG1hvH2utMXtqgqqYE9plW6lDxS3/5ayHzueweSI3Vw= -github.com/docker/go-units v0.4.0 h1:3uh0PgVws3nIA0Q+MwDC8yjEPf9zjRfZZWXZYDct3Tw= -github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/docker/libtrust v0.0.0-20150114040149-fa567046d9b1/go.mod h1:cyGadeNEkKy96OOhEzfZl+yxihPEzKnqJwvfuSUqbZE= -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/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/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -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/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/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/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -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-ini/ini v1.25.4/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= -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-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-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-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-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/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-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -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 h1:BWhy2j3IXJhjCbC68FptL43tDKIq8FladmaTs3Xs7Z8= -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 h1:9349emZab16e7zQvpmsbtjc18ykshndd8y2PG3sgJbA= -github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -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.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/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -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= -github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e h1:1r7pUrabqp18hOBcwBwiTsbnFeTZHV9eER/QT5JVZxY= -github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= -github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -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= -github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= -github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= -github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= -github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= -github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= -github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= -github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= -github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.5.0 h1:LUVKkCeviFUMKqHa4tXIIij/lbhnMbP7Fn5wKdKkRh4= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -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/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= -github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -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 h1:BKbKCqvP6I+rmFHt06ZmyQtvB8xAkWdhFyr0ZUNZcxQ= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-containerregistry v0.5.1 h1:/+mFTs4AlwsJ/mJe8NDtKb7BxLtbZFpcn8vDsneEkwQ= -github.com/google/go-containerregistry v0.5.1/go.mod h1:Ct15B4yir3PLOP5jsy0GNeYVaIZs/MK/Jz5any1wFW0= -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/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= -github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -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/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= -github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg= -github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gorilla/handlers v0.0.0-20150720190736-60c7bfde3e33/go.mod h1:Qkdc/uu4tH4g6mTK6auzZ766c4CA0Ng8+o/OAirnOIQ= -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/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/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/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/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-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/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/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= -github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/imdario/mergo v0.3.5/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/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/j-keck/arping v0.0.0-20160618110441-2cf9dc699c56/go.mod h1:ymszkNOg6tORTn+6F6j+Jc8TOr5osrynvN6ivFWZ2GA= -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/joefitzgerald/rainbow-reporter v0.1.0/go.mod h1:481CNgqmVHQZzdIbN52CupLJyoVwB10FQ/IQlF1pdL8= -github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= -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.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= -github.com/jstemmer/go-junit-report v0.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/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/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/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/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/linuxkit/virtsock v0.0.0-20201010232012-f8cee7dfc7a3 h1:jUp75lepDg0phMUJBCmvaeFDldD2N3S1lBuPwUTszio= -github.com/linuxkit/virtsock v0.0.0-20201010232012-f8cee7dfc7a3/go.mod h1:3r6x7q95whyfWQpmGZTu3gk3v2YkMi05HEzl7Tf7YEo= -github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -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/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-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= -github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= -github.com/mattn/go-shellwords v1.0.3/go.mod h1:3xCvwCdWdlDJUrvuMn7Wuy9eWs4pE8vqg+NOMyg4B2o= -github.com/mattn/go-shellwords v1.0.6 h1:9Jok5pILi5S1MnDirGVTufYGtksUs/V2BWUP3ZkeUUI= -github.com/mattn/go-shellwords v1.0.6/go.mod h1:3xCvwCdWdlDJUrvuMn7Wuy9eWs4pE8vqg+NOMyg4B2o= -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/maxbrunsfeld/counterfeiter/v6 v6.2.2/go.mod h1:eD9eIE7cdwcMi9rYluz88Jz2VyhSmden33/aXg4oVIY= -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/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/mitchellh/osext v0.0.0-20151018003038-5e2d6d41470f/go.mod h1:OkQIRizQZAeMln+1tSwduZz7+Af5oFlKirV/MSYes2A= -github.com/moby/locker v1.0.1/go.mod h1:S7SDdo5zpBK84bzzVlKr2V0hz+7x9hWbYC/kq7oQppc= -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 h1:1O+1cHA1aujwEwwVMa2Xm2l+gIpUHyd3+D+d7LZh1kM= -github.com/moby/sys/mountinfo v0.4.1/go.mod h1:rEr8tzG/lsIZHBtN/JjGG+LMYx9eXgW2JI+6q0qou+A= -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/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -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/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= -github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= -github.com/ncw/swift v1.0.47/go.mod h1:23YIA4yWVnGwv2dQlN4bB7egfYX6YLn0Yo/S6zZO/ZM= -github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= -github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= -github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= -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/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.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/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.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/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/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 h1:JMemWkRwHx4Zj+fVxWoMCFm/8sYGGrUVojFA6h/TRcI= -github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= -github.com/opencontainers/runc v0.0.0-20190115041553-12f6a991201f/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= -github.com/opencontainers/runc 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 h1:opHZMaswlyxz1OuGpBE53Dwe4/xF7EZTY0A2L/FpCOg= -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/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/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= -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= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/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/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= -github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= -github.com/prometheus/client_golang v1.1.0/go.mod h1:I1FGZT9+L76gKKOs5djB6ezCbFQP1xR9D75/vuwEF3g= -github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= -github.com/prometheus/client_model v0.0.0-20171117100541-99fa1f4be8e5/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= -github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= -github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/common v0.0.0-20180110214958-89604d197083/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= -github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= -github.com/prometheus/procfs v0.0.0-20180125133057-cb4147076ac7/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-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 h1:mxy4L2jP6qMonqmq+aTtOx1ifVWUgG/TAmntgbh3xv4= -github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= -github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= -github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/russross/blackfriday/v2 v2.0.1 h1:lPqVAte+HuHNfhJ/0LC98ESWRz8afy9tM/0RK8m9o+Q= -github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/safchain/ethtool v0.0.0-20190326074333-42ed695e3de8/go.mod h1:Z0q5wiBQGYcxhMZ6gUqHn6pYNLypFAvaL3UvgZLR0U4= -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/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo= -github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo= -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 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE= -github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -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/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/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -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/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= -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/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= -github.com/stefanberger/go-pkcs11uri v0.0.0-20201008174630-78d3cae3a980/go.mod h1:AO3tvPzVZ/ayst6UlUKUv6rcPQInYe3IknH3jYhAKu8= -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/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= -github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0= -github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/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/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/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 h1:gsqYFH8bb9ekPA12kRo0hfjngWQjkJPlN9R0N78BoUo= -github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -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 h1:cPXZWzzG0NllBLdjWoD1nDfaqu98YMv+OneaKc8sPOA= -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 h1:4hwBBUfQCFe3Cym0ZtKyq7L16eZUtYKs+BaHDN6mAns= -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/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= -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/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= -github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= -github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -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/yvasiyarov/go-metrics v0.0.0-20140926110328-57bccd1ccd43/go.mod h1:aX5oPXxHm3bOH+xeAttToC8pqch2ScQN/JoXYupl6xs= -github.com/yvasiyarov/gorelic v0.0.0-20141212073537-a9bba5b9ab50/go.mod h1:NUSPSUX/bi6SeDMUh6brw0nXpxHnc96TguQh0+r/ssA= -github.com/yvasiyarov/newrelic_platform_go v0.0.0-20140908184405-b21fdbd4370f/go.mod h1:GlGEuHIJweS1mbCqG+7vt2nvWLzLLnRHbXz5JKd/Qbg= -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.mozilla.org/pkcs7 v0.0.0-20200128120323-432b2356ecb1/go.mod h1:SNgMg+EgDFwmvSmLRTNKC5fegJjB7v23qTQ0XLGUNHk= -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 h1:8sGtKOrtQqkN1bp2AtX+misvLIlOmsEsNd+9NIcPEm8= -go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -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/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= -go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= -golang.org/x/crypto v0.0.0-20171113213409-9f005a07e0d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -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-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -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-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/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/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= -golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= -golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= -golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -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/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-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= -golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= -golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= -golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= -golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-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-20181114220301-adae6a3d119a/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-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-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-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= -golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -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-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.0.0-20210825183410-e898025ed96a h1:bRuuGXV8wwSdGTB+CtJf+FjgO1APK1CoO39T4BN/XBw= -golang.org/x/net v0.0.0-20210825183410-e898025ed96a/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-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= -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= -golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ= -golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -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-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-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-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-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-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-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= -golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/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-20200728102440-3e129f6d46b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200817155316-9781c653f443/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-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210324051608-47abb6519492/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210426230700-d19ff857e887/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-20211216021012-1d35b9e2eb4e h1:fLOSk5Q00efkSvAm+4xcoXD+RRmLmmulPn5I3Y9F2EM= -golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -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= -golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= -golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M= -golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/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/tools v0.0.0-20180221164845-07fd8470d635/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-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -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-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-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-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/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-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-20200616133436-c1934b75d054/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-20200916195026-c9a70fc28ce3/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= -golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -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 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/api v0.0.0-20160322025152-9bf6e6e569ff/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= -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= -google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -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= -google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.6/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-20200224152610-e50cd9704f63 h1:YzfoEYWbODU5Fbt37+h7X16BWQbad7Q4S6gclTKFXM8= -google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/grpc v1.27.1 h1:zvIju4sqAGvwKspUQOhwnpcqSbzi7/H6QomNNjTL4sk= -google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= -google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= -google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= -google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= -google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= -google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= -google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.27.1 h1:SnqbnDw1V7RiZcXPx5MEeqPv2s79L9i7BJUlG/+RurQ= -google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -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 h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= -gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -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/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= -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/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= -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.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/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -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= -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= -honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -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= -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/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/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/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/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/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/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/kubernetes v1.13.0/go.mod h1:ocZa8+6APFNC2tX1DZASIbocyYT5jHzqFVsY5aoB7Jk= -k8s.io/utils v0.0.0-20201110183641-67b214c5f920/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= -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/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/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= -sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= diff --git a/src/runtime/vendor/github.com/asaskevich/govalidator/go.mod b/src/runtime/vendor/github.com/asaskevich/govalidator/go.mod deleted file mode 100644 index 42d5b1f63..000000000 --- a/src/runtime/vendor/github.com/asaskevich/govalidator/go.mod +++ /dev/null @@ -1,3 +0,0 @@ -module github.com/asaskevich/govalidator - -go 1.13 diff --git a/src/runtime/vendor/github.com/blang/semver/v4/go.mod b/src/runtime/vendor/github.com/blang/semver/v4/go.mod deleted file mode 100644 index 06d262218..000000000 --- a/src/runtime/vendor/github.com/blang/semver/v4/go.mod +++ /dev/null @@ -1,3 +0,0 @@ -module github.com/blang/semver/v4 - -go 1.14 diff --git a/src/runtime/vendor/github.com/cespare/xxhash/v2/go.mod b/src/runtime/vendor/github.com/cespare/xxhash/v2/go.mod deleted file mode 100644 index 49f67608b..000000000 --- a/src/runtime/vendor/github.com/cespare/xxhash/v2/go.mod +++ /dev/null @@ -1,3 +0,0 @@ -module github.com/cespare/xxhash/v2 - -go 1.11 diff --git a/src/runtime/vendor/github.com/cespare/xxhash/v2/go.sum b/src/runtime/vendor/github.com/cespare/xxhash/v2/go.sum deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/runtime/vendor/github.com/cilium/ebpf/go.mod b/src/runtime/vendor/github.com/cilium/ebpf/go.mod deleted file mode 100644 index f5edf690a..000000000 --- a/src/runtime/vendor/github.com/cilium/ebpf/go.mod +++ /dev/null @@ -1,9 +0,0 @@ -module github.com/cilium/ebpf - -go 1.16 - -require ( - github.com/frankban/quicktest v1.11.3 - github.com/google/go-cmp v0.5.4 - golang.org/x/sys v0.0.0-20210906170528-6f6e22806c34 -) diff --git a/src/runtime/vendor/github.com/cilium/ebpf/go.sum b/src/runtime/vendor/github.com/cilium/ebpf/go.sum deleted file mode 100644 index 1ef5a4767..000000000 --- a/src/runtime/vendor/github.com/cilium/ebpf/go.sum +++ /dev/null @@ -1,13 +0,0 @@ -github.com/frankban/quicktest v1.11.3 h1:8sXhOn0uLys67V8EsXLc6eszDs8VXWxL3iRvebPhedY= -github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k= -github.com/google/go-cmp v0.5.4 h1:L8R9j+yAqZuZjsqh/z+F1NCffTKKLShY6zXTItVIZ8M= -github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI= -github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= -github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -golang.org/x/sys v0.0.0-20210906170528-6f6e22806c34 h1:GkvMjFtXUmahfDtashnc1mnrCtuBVcwse5QV2lUk/tI= -golang.org/x/sys v0.0.0-20210906170528-6f6e22806c34/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/src/runtime/vendor/github.com/containerd/cgroups/go.mod b/src/runtime/vendor/github.com/containerd/cgroups/go.mod deleted file mode 100644 index cb2e021c7..000000000 --- a/src/runtime/vendor/github.com/containerd/cgroups/go.mod +++ /dev/null @@ -1,22 +0,0 @@ -module github.com/containerd/cgroups - -go 1.17 - -require ( - github.com/cilium/ebpf v0.4.0 - github.com/coreos/go-systemd/v22 v22.3.2 - github.com/docker/go-units v0.4.0 - github.com/godbus/dbus/v5 v5.0.4 - github.com/gogo/protobuf v1.3.2 - github.com/opencontainers/runtime-spec v1.0.2 - github.com/sirupsen/logrus v1.8.1 - github.com/stretchr/testify v1.7.0 - go.uber.org/goleak v1.1.12 - golang.org/x/sys v0.0.0-20210510120138-977fb7262007 -) - -require ( - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect - gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c // indirect -) diff --git a/src/runtime/vendor/github.com/containerd/cgroups/go.sum b/src/runtime/vendor/github.com/containerd/cgroups/go.sum deleted file mode 100644 index 64c9c6a7d..000000000 --- a/src/runtime/vendor/github.com/containerd/cgroups/go.sum +++ /dev/null @@ -1,87 +0,0 @@ -github.com/cilium/ebpf v0.4.0 h1:QlHdikaxALkqWasW8hAC1mfR0jdmvbfaBdBPFmRSglA= -github.com/cilium/ebpf v0.4.0/go.mod h1:4tRaxcgiL706VnOzHOdBlY8IEAIdxINsQBcU4xJJXRs= -github.com/coreos/go-systemd/v22 v22.3.2 h1:D9/bQk5vlXQFZ6Kwuu6zaiXJ9oTPe68++AzAJc1DzSI= -github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= -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/docker/go-units v0.4.0 h1:3uh0PgVws3nIA0Q+MwDC8yjEPf9zjRfZZWXZYDct3Tw= -github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/frankban/quicktest v1.11.3 h1:8sXhOn0uLys67V8EsXLc6eszDs8VXWxL3iRvebPhedY= -github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k= -github.com/godbus/dbus/v5 v5.0.4 h1:9349emZab16e7zQvpmsbtjc18ykshndd8y2PG3sgJbA= -github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= -github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= -github.com/google/go-cmp v0.5.4 h1:L8R9j+yAqZuZjsqh/z+F1NCffTKKLShY6zXTItVIZ8M= -github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -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/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI= -github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= -github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/opencontainers/runtime-spec v1.0.2 h1:UfAcuLBJB9Coz72x1hgl8O5RVzTdNiaglX6v2DM6FI0= -github.com/opencontainers/runtime-spec v1.0.2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE= -github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= -github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -go.uber.org/goleak v1.1.12 h1:gZAh5/EyT/HQwlpkCy6wTpqfH9H8Lz8zbm3dZh+OyzA= -go.uber.org/goleak v1.1.12/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/lint v0.0.0-20190930215403-16217165b5de h1:5hukYrvBGR8/eNkX5mdUezrA6JiaEZDtJb9Ei+1LlBs= -golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -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-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210510120138-977fb7262007 h1:gG67DSER+11cZvqIMb8S8bt0vZtiN6xWYARwirrOSfE= -golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.1.5 h1:ouewzE6p+/VEB31YYnTbEJdi8pFqKp4P4n85vwo3DHA= -golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -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 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/src/runtime/vendor/github.com/containerd/console/go.mod b/src/runtime/vendor/github.com/containerd/console/go.mod deleted file mode 100644 index 1fe5b7fec..000000000 --- a/src/runtime/vendor/github.com/containerd/console/go.mod +++ /dev/null @@ -1,5 +0,0 @@ -module github.com/containerd/console - -go 1.13 - -require golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c diff --git a/src/runtime/vendor/github.com/containerd/console/go.sum b/src/runtime/vendor/github.com/containerd/console/go.sum deleted file mode 100644 index 1225630b7..000000000 --- a/src/runtime/vendor/github.com/containerd/console/go.sum +++ /dev/null @@ -1,2 +0,0 @@ -golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c h1:VwygUrnw9jn88c4u8GD3rZQbqrP/tgas88tPUbBxQrk= -golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= diff --git a/src/runtime/vendor/github.com/containerd/fifo/go.mod b/src/runtime/vendor/github.com/containerd/fifo/go.mod deleted file mode 100644 index 0c1c48fab..000000000 --- a/src/runtime/vendor/github.com/containerd/fifo/go.mod +++ /dev/null @@ -1,9 +0,0 @@ -module github.com/containerd/fifo - -go 1.13 - -require ( - github.com/pkg/errors v0.9.1 - github.com/stretchr/testify v1.6.1 - golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c -) diff --git a/src/runtime/vendor/github.com/containerd/fifo/go.sum b/src/runtime/vendor/github.com/containerd/fifo/go.sum deleted file mode 100644 index 48477d385..000000000 --- a/src/runtime/vendor/github.com/containerd/fifo/go.sum +++ /dev/null @@ -1,15 +0,0 @@ -github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= -github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0= -github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c h1:VwygUrnw9jn88c4u8GD3rZQbqrP/tgas88tPUbBxQrk= -golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/src/runtime/vendor/github.com/containerd/go-runc/go.mod b/src/runtime/vendor/github.com/containerd/go-runc/go.mod deleted file mode 100644 index f69c26fd6..000000000 --- a/src/runtime/vendor/github.com/containerd/go-runc/go.mod +++ /dev/null @@ -1,11 +0,0 @@ -module github.com/containerd/go-runc - -go 1.13 - -require ( - github.com/containerd/console v1.0.1 - github.com/opencontainers/runtime-spec v1.0.2 - github.com/pkg/errors v0.9.1 - github.com/sirupsen/logrus v1.7.0 - golang.org/x/sys v0.0.0-20200916030750-2334cc1a136f -) diff --git a/src/runtime/vendor/github.com/containerd/go-runc/go.sum b/src/runtime/vendor/github.com/containerd/go-runc/go.sum deleted file mode 100644 index afc9198e0..000000000 --- a/src/runtime/vendor/github.com/containerd/go-runc/go.sum +++ /dev/null @@ -1,17 +0,0 @@ -github.com/containerd/console v1.0.1 h1:u7SFAJyRqWcG6ogaMAx3KjSTy1e3hT9QxqX7Jco7dRc= -github.com/containerd/console v1.0.1/go.mod h1:XUsP6YE/mKtz6bxc+I8UiKKTP04qjQL4qcS3XoQ5xkw= -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/opencontainers/runtime-spec v1.0.2 h1:UfAcuLBJB9Coz72x1hgl8O5RVzTdNiaglX6v2DM6FI0= -github.com/opencontainers/runtime-spec v1.0.2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= -github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/sirupsen/logrus v1.7.0 h1:ShrD1U9pZB12TX0cVy0DtePoCH97K8EtX+mg7ZARUtM= -github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w= -github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200916030750-2334cc1a136f h1:6Sc1XOXTulBN6imkqo6XoAXDEzoQ4/ro6xy7Vn8+rOM= -golang.org/x/sys v0.0.0-20200916030750-2334cc1a136f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= diff --git a/src/runtime/vendor/github.com/containerd/ttrpc/go.mod b/src/runtime/vendor/github.com/containerd/ttrpc/go.mod deleted file mode 100644 index efc00860c..000000000 --- a/src/runtime/vendor/github.com/containerd/ttrpc/go.mod +++ /dev/null @@ -1,13 +0,0 @@ -module github.com/containerd/ttrpc - -go 1.13 - -require ( - github.com/gogo/protobuf v1.3.2 - github.com/prometheus/procfs v0.6.0 - github.com/sirupsen/logrus v1.8.1 - golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c - google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63 - google.golang.org/grpc v1.27.1 - google.golang.org/protobuf v1.27.1 -) diff --git a/src/runtime/vendor/github.com/containerd/ttrpc/go.sum b/src/runtime/vendor/github.com/containerd/ttrpc/go.sum deleted file mode 100644 index cb91432e3..000000000 --- a/src/runtime/vendor/github.com/containerd/ttrpc/go.sum +++ /dev/null @@ -1,99 +0,0 @@ -cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -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/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= -github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.5.0 h1:LUVKkCeviFUMKqHa4tXIIij/lbhnMbP7Fn5wKdKkRh4= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= -github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/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/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/procfs v0.6.0 h1:mxy4L2jP6qMonqmq+aTtOx1ifVWUgG/TAmntgbh3xv4= -github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE= -github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w= -github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= -golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20201021035429-f5854403a974 h1:IX6qOQeG5uLjB/hjjwjedwfjND0hgjPMMyO1RoIXQNI= -golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c h1:VwygUrnw9jn88c4u8GD3rZQbqrP/tgas88tPUbBxQrk= -golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k= -golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/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 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= -google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63 h1:YzfoEYWbODU5Fbt37+h7X16BWQbad7Q4S6gclTKFXM8= -google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.27.1 h1:zvIju4sqAGvwKspUQOhwnpcqSbzi7/H6QomNNjTL4sk= -google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.27.1 h1:SnqbnDw1V7RiZcXPx5MEeqPv2s79L9i7BJUlG/+RurQ= -google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/src/runtime/vendor/github.com/containerd/typeurl/go.mod b/src/runtime/vendor/github.com/containerd/typeurl/go.mod deleted file mode 100644 index 77e171e57..000000000 --- a/src/runtime/vendor/github.com/containerd/typeurl/go.mod +++ /dev/null @@ -1,8 +0,0 @@ -module github.com/containerd/typeurl - -go 1.13 - -require ( - github.com/gogo/protobuf v1.3.2 - github.com/pkg/errors v0.9.1 -) diff --git a/src/runtime/vendor/github.com/containerd/typeurl/go.sum b/src/runtime/vendor/github.com/containerd/typeurl/go.sum deleted file mode 100644 index cf5608882..000000000 --- a/src/runtime/vendor/github.com/containerd/typeurl/go.sum +++ /dev/null @@ -1,33 +0,0 @@ -github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= -github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= -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/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= -github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/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= diff --git a/src/runtime/vendor/github.com/cyphar/filepath-securejoin/go.mod b/src/runtime/vendor/github.com/cyphar/filepath-securejoin/go.mod deleted file mode 100644 index 0607c1fa0..000000000 --- a/src/runtime/vendor/github.com/cyphar/filepath-securejoin/go.mod +++ /dev/null @@ -1,3 +0,0 @@ -module github.com/cyphar/filepath-securejoin - -go 1.13 diff --git a/src/runtime/vendor/github.com/fsnotify/fsnotify/go.mod b/src/runtime/vendor/github.com/fsnotify/fsnotify/go.mod deleted file mode 100644 index 48cfd07fe..000000000 --- a/src/runtime/vendor/github.com/fsnotify/fsnotify/go.mod +++ /dev/null @@ -1,10 +0,0 @@ -module github.com/fsnotify/fsnotify - -go 1.16 - -require golang.org/x/sys v0.0.0-20220412211240-33da011f77ad - -retract ( - v1.5.3 // Published an incorrect branch accidentally https://github.com/fsnotify/fsnotify/issues/445 - v1.5.0 // Contains symlink regression https://github.com/fsnotify/fsnotify/pull/394 -) diff --git a/src/runtime/vendor/github.com/fsnotify/fsnotify/go.sum b/src/runtime/vendor/github.com/fsnotify/fsnotify/go.sum deleted file mode 100644 index 7f2d82d5c..000000000 --- a/src/runtime/vendor/github.com/fsnotify/fsnotify/go.sum +++ /dev/null @@ -1,2 +0,0 @@ -golang.org/x/sys v0.0.0-20220412211240-33da011f77ad h1:ntjMns5wyP/fN65tdBD4g8J5w8n015+iIIs9rtjXkY0= -golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= diff --git a/src/runtime/vendor/github.com/go-logr/logr/go.mod b/src/runtime/vendor/github.com/go-logr/logr/go.mod deleted file mode 100644 index 7baec9b57..000000000 --- a/src/runtime/vendor/github.com/go-logr/logr/go.mod +++ /dev/null @@ -1,3 +0,0 @@ -module github.com/go-logr/logr - -go 1.16 diff --git a/src/runtime/vendor/github.com/go-logr/stdr/go.mod b/src/runtime/vendor/github.com/go-logr/stdr/go.mod deleted file mode 100644 index a59b113ef..000000000 --- a/src/runtime/vendor/github.com/go-logr/stdr/go.mod +++ /dev/null @@ -1,5 +0,0 @@ -module github.com/go-logr/stdr - -go 1.16 - -require github.com/go-logr/logr v1.2.2 diff --git a/src/runtime/vendor/github.com/go-logr/stdr/go.sum b/src/runtime/vendor/github.com/go-logr/stdr/go.sum deleted file mode 100644 index f985ced20..000000000 --- a/src/runtime/vendor/github.com/go-logr/stdr/go.sum +++ /dev/null @@ -1,2 +0,0 @@ -github.com/go-logr/logr v1.2.2 h1:ahHml/yUpnlb96Rp8HCvtYVPY8ZYpxq3g7UYchIYwbs= -github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= diff --git a/src/runtime/vendor/github.com/go-openapi/analysis/go.mod b/src/runtime/vendor/github.com/go-openapi/analysis/go.mod deleted file mode 100644 index 66b39b3a2..000000000 --- a/src/runtime/vendor/github.com/go-openapi/analysis/go.mod +++ /dev/null @@ -1,14 +0,0 @@ -module github.com/go-openapi/analysis - -require ( - github.com/go-openapi/errors v0.19.9 // indirect - github.com/go-openapi/jsonpointer v0.19.5 - github.com/go-openapi/spec v0.20.4 - github.com/go-openapi/strfmt v0.21.0 - github.com/go-openapi/swag v0.19.15 - github.com/mitchellh/mapstructure v1.4.1 // indirect - github.com/stretchr/testify v1.7.0 - gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect -) - -go 1.13 diff --git a/src/runtime/vendor/github.com/go-openapi/analysis/go.sum b/src/runtime/vendor/github.com/go-openapi/analysis/go.sum deleted file mode 100644 index 539ad6fe3..000000000 --- a/src/runtime/vendor/github.com/go-openapi/analysis/go.sum +++ /dev/null @@ -1,162 +0,0 @@ -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI= -github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M= -github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= -github.com/asaskevich/govalidator v0.0.0-20200907205600-7a23bdc65eef h1:46PFijGLmAjMPwCCCo7Jf0W6f9slllCkkv7vyc1yOSg= -github.com/asaskevich/govalidator v0.0.0-20200907205600-7a23bdc65eef/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= -github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/go-openapi/errors v0.19.8/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M= -github.com/go-openapi/errors v0.19.9 h1:9SnKdGhiPZHF3ttwFMiCBEb8jQ4IDdrK+5+a0oTygA4= -github.com/go-openapi/errors v0.19.9/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M= -github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= -github.com/go-openapi/jsonpointer v0.19.5 h1:gZr+CIYByUqjcgeLXnQu2gHYQC9o73G2XUeOFYEICuY= -github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= -github.com/go-openapi/jsonreference v0.19.6 h1:UBIxjkht+AWIgYzCDSv2GN+E/togfwXUJFRTWhl2Jjs= -github.com/go-openapi/jsonreference v0.19.6/go.mod h1:diGHMEHg2IqXZGKxqyvWdfWU/aim5Dprw5bqpKkTvns= -github.com/go-openapi/spec v0.20.4 h1:O8hJrt0UMnhHcluhIdUgCLRWyM2x7QkBXRvOs7m+O1M= -github.com/go-openapi/spec v0.20.4/go.mod h1:faYFR1CvsJZ0mNsmsphTMSoRrNV3TEDoAM7FOEWeq8I= -github.com/go-openapi/strfmt v0.21.0 h1:hX2qEZKmYks+t0hKeb4VTJpUm2UYsdL3+DCid5swxIs= -github.com/go-openapi/strfmt v0.21.0/go.mod h1:ZRQ409bWMj+SOgXofQAGTIo2Ebu72Gs+WaRADcS5iNg= -github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-openapi/swag v0.19.15 h1:D2NRCBzS9/pEY3gP9Nl8aDqGUcPFrwG2p+CNFrLyrCM= -github.com/go-openapi/swag v0.19.15/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= -github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk= -github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/gobuffalo/attrs v0.0.0-20190224210810-a9411de4debd/go.mod h1:4duuawTqi2wkkpB4ePgWMaai6/Kc6WEz83bhFwpHzj0= -github.com/gobuffalo/depgen v0.0.0-20190329151759-d478694a28d3/go.mod h1:3STtPUQYuzV0gBVOY3vy6CfMm/ljR4pABfrTeHNLHUY= -github.com/gobuffalo/depgen v0.1.0/go.mod h1:+ifsuy7fhi15RWncXQQKjWS9JPkdah5sZvtHc2RXGlg= -github.com/gobuffalo/envy v1.6.15/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI= -github.com/gobuffalo/envy v1.7.0/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI= -github.com/gobuffalo/flect v0.1.0/go.mod h1:d2ehjJqGOH/Kjqcoz+F7jHTBbmDb38yXA598Hb50EGs= -github.com/gobuffalo/flect v0.1.1/go.mod h1:8JCgGVbRjJhVgD6399mQr4fx5rRfGKVzFjbj6RE/9UI= -github.com/gobuffalo/flect v0.1.3/go.mod h1:8JCgGVbRjJhVgD6399mQr4fx5rRfGKVzFjbj6RE/9UI= -github.com/gobuffalo/genny v0.0.0-20190329151137-27723ad26ef9/go.mod h1:rWs4Z12d1Zbf19rlsn0nurr75KqhYp52EAGGxTbBhNk= -github.com/gobuffalo/genny v0.0.0-20190403191548-3ca520ef0d9e/go.mod h1:80lIj3kVJWwOrXWWMRzzdhW3DsrdjILVil/SFKBzF28= -github.com/gobuffalo/genny v0.1.0/go.mod h1:XidbUqzak3lHdS//TPu2OgiFB+51Ur5f7CSnXZ/JDvo= -github.com/gobuffalo/genny v0.1.1/go.mod h1:5TExbEyY48pfunL4QSXxlDOmdsD44RRq4mVZ0Ex28Xk= -github.com/gobuffalo/gitgen v0.0.0-20190315122116-cc086187d211/go.mod h1:vEHJk/E9DmhejeLeNt7UVvlSGv3ziL+djtTr3yyzcOw= -github.com/gobuffalo/gogen v0.0.0-20190315121717-8f38393713f5/go.mod h1:V9QVDIxsgKNZs6L2IYiGR8datgMhB577vzTDqypH360= -github.com/gobuffalo/gogen v0.1.0/go.mod h1:8NTelM5qd8RZ15VjQTFkAW6qOMx5wBbW4dSCS3BY8gg= -github.com/gobuffalo/gogen v0.1.1/go.mod h1:y8iBtmHmGc4qa3urIyo1shvOD8JftTtfcKi+71xfDNE= -github.com/gobuffalo/logger v0.0.0-20190315122211-86e12af44bc2/go.mod h1:QdxcLw541hSGtBnhUc4gaNIXRjiDppFGaDqzbrBd3v8= -github.com/gobuffalo/mapi v1.0.1/go.mod h1:4VAGh89y6rVOvm5A8fKFxYG+wIW6LO1FMTG9hnKStFc= -github.com/gobuffalo/mapi v1.0.2/go.mod h1:4VAGh89y6rVOvm5A8fKFxYG+wIW6LO1FMTG9hnKStFc= -github.com/gobuffalo/packd v0.0.0-20190315124812-a385830c7fc0/go.mod h1:M2Juc+hhDXf/PnmBANFCqx4DM3wRbgDvnVWeG2RIxq4= -github.com/gobuffalo/packd v0.1.0/go.mod h1:M2Juc+hhDXf/PnmBANFCqx4DM3wRbgDvnVWeG2RIxq4= -github.com/gobuffalo/packr/v2 v2.0.9/go.mod h1:emmyGweYTm6Kdper+iywB6YK5YzuKchGtJQZ0Odn4pQ= -github.com/gobuffalo/packr/v2 v2.2.0/go.mod h1:CaAwI0GPIAv+5wKLtv8Afwl+Cm78K/I/VCm/3ptBN+0= -github.com/gobuffalo/syncx v0.0.0-20190224160051-33c29581e754/go.mod h1:HhnNqWY95UYwwW3uSASeV7vtgYkT2t16hJgV3AEPUpw= -github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/google/go-cmp v0.5.2 h1:X2ev0eStA3AbceY54o37/0PQ/UWqKEiiO2dKL5OPaFM= -github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= -github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= -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/karrick/godirwalk v1.8.0/go.mod h1:H5KPZjojv4lE+QYImBI8xVtrBRgYrIVsaRPx4tDPEn4= -github.com/karrick/godirwalk v1.10.3/go.mod h1:RoGL9dQei4vP9ilrpETWE8CLOZ1kiN0LhBygSwrAsHA= -github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= -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/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -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/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.6 h1:8yTIVnZgCoiM1TgqoeTl+LfU5Jg6/xL3QhGQnimLYnA= -github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= -github.com/markbates/oncer v0.0.0-20181203154359-bf2de49a0be2/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE= -github.com/markbates/safe v1.0.1/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0= -github.com/mitchellh/mapstructure v1.3.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -github.com/mitchellh/mapstructure v1.4.1 h1:CpVNEelQCZBooIPDn+AR3NpivK/TIKU8bDxdASFVQag= -github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= -github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= -github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= -github.com/oklog/ulid v1.3.1 h1:EGfNDEx6MqHz8B3uNV6QAib1UR2Lm97sHi3ocA6ESJ4= -github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= -github.com/pelletier/go-toml v1.7.0/go.mod h1:vwGMzjaWMwyfHwgIBhI2YUM4fB6nL6lVAvS1LBMMhTE= -github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.2.2/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/sirupsen/logrus v1.4.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/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= -github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -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/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.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= -github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/tidwall/pretty v1.0.0 h1:HsD+QiTn7sK6flMKIvNmpqz1qrpP3Ps6jOKIKMooyg4= -github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= -github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= -github.com/xdg-go/scram v1.0.2/go.mod h1:1WAq6h33pAW+iRreB34OORO2Nf7qel3VV3fjBj+hCSs= -github.com/xdg-go/stringprep v1.0.2/go.mod h1:8F9zXuvzgwmyT5DUm4GUfZGDdT3W+LCvS6+da4O5kxM= -github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA= -go.mongodb.org/mongo-driver v1.7.3 h1:G4l/eYY9VrQAK/AUgkV0koQKzQnyddnWxrd/Etf0jIs= -go.mongodb.org/mongo-driver v1.7.3/go.mod h1:NqaYOwnXWr5Pm7AOpO5QFxKJ503nbMse/R79oO62zWg= -golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/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-20190422162423-af44ce270edf/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= -golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -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-20210421230115-4e50805a0758 h1:aEpZnXcAmXkd6AvLb2OPt+EN1Zu/8Ne3pCqPjja5PXY= -golang.org/x/net v0.0.0-20210421230115-4e50805a0758/go.mod h1:72T/g9IO56b78aLF+1Kcs5dz7/ng1VjMUvfKvpfy+jM= -golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190412183630-56d357773e84/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190419153524-e8e3143a4f4a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190531175056-4c3a928424d2/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210420072515-93ed5bcd2bfe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.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 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= -golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190329151228-23e29df326fe/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190416151739-9c9e1878f421/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190420181800-aa740d480789/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190531172133-b3315ee88b7d/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/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-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= -gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= -gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20200605160147-a5ece683394c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo= -gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/src/runtime/vendor/github.com/go-openapi/errors/go.mod b/src/runtime/vendor/github.com/go-openapi/errors/go.mod deleted file mode 100644 index d7a9030ab..000000000 --- a/src/runtime/vendor/github.com/go-openapi/errors/go.mod +++ /dev/null @@ -1,12 +0,0 @@ -module github.com/go-openapi/errors - -go 1.14 - -require ( - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/kr/text v0.2.0 // indirect - github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e // indirect - github.com/stretchr/testify v1.6.1 - gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f // indirect - gopkg.in/yaml.v3 v3.0.0-20200605160147-a5ece683394c // indirect -) diff --git a/src/runtime/vendor/github.com/go-openapi/errors/go.sum b/src/runtime/vendor/github.com/go-openapi/errors/go.sum deleted file mode 100644 index ecd91c75b..000000000 --- a/src/runtime/vendor/github.com/go-openapi/errors/go.sum +++ /dev/null @@ -1,26 +0,0 @@ -github.com/creack/pty v1.1.9 h1:uDmaGzcdjhF4i/plgjmEsriH11Y0o7RKapEf/LDaM3w= -github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/kr/pty v1.1.1 h1:VkoXIwSboBpnk99O/KFauAEILuNHv5DVFKZMBN/gUgw= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= -github.com/kr/text v0.1.0/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/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= -github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0= -github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= -gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20200605160147-a5ece683394c h1:grhR+C34yXImVGp7EzNk+DTIk+323eIUWOmEevy6bDo= -gopkg.in/yaml.v3 v3.0.0-20200605160147-a5ece683394c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/src/runtime/vendor/github.com/go-openapi/jsonpointer/go.mod b/src/runtime/vendor/github.com/go-openapi/jsonpointer/go.mod deleted file mode 100644 index 3e45e225b..000000000 --- a/src/runtime/vendor/github.com/go-openapi/jsonpointer/go.mod +++ /dev/null @@ -1,9 +0,0 @@ -module github.com/go-openapi/jsonpointer - -require ( - github.com/go-openapi/swag v0.19.5 - github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e // indirect - github.com/stretchr/testify v1.3.0 -) - -go 1.13 diff --git a/src/runtime/vendor/github.com/go-openapi/jsonpointer/go.sum b/src/runtime/vendor/github.com/go-openapi/jsonpointer/go.sum deleted file mode 100644 index 953d4f354..000000000 --- a/src/runtime/vendor/github.com/go-openapi/jsonpointer/go.sum +++ /dev/null @@ -1,24 +0,0 @@ -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/go-openapi/swag v0.19.5 h1:lTz6Ys4CmqqCQmZPBlbQENR1/GucA2bzYTE12Pw4tFY= -github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= -github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= -github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63 h1:nTT4s92Dgz2HlrB2NaMgvlfqHH39OgMhA7z3PK7PGD4= -github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e h1:hB2xlXdHp/pmPZq0y3QnmWAArdw9PqbmotexnWx/FU8= -github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= -github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/src/runtime/vendor/github.com/go-openapi/jsonreference/go.mod b/src/runtime/vendor/github.com/go-openapi/jsonreference/go.mod deleted file mode 100644 index 94727ab3e..000000000 --- a/src/runtime/vendor/github.com/go-openapi/jsonreference/go.mod +++ /dev/null @@ -1,11 +0,0 @@ -module github.com/go-openapi/jsonreference - -require ( - github.com/PuerkitoBio/purell v1.1.1 - github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 // indirect - github.com/go-openapi/jsonpointer v0.19.3 - github.com/stretchr/testify v1.3.0 - golang.org/x/net v0.0.0-20210421230115-4e50805a0758 // indirect -) - -go 1.13 diff --git a/src/runtime/vendor/github.com/go-openapi/jsonreference/go.sum b/src/runtime/vendor/github.com/go-openapi/jsonreference/go.sum deleted file mode 100644 index 61714872d..000000000 --- a/src/runtime/vendor/github.com/go-openapi/jsonreference/go.sum +++ /dev/null @@ -1,37 +0,0 @@ -github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI= -github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M= -github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= -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/go-openapi/jsonpointer v0.19.3 h1:gihV7YNZK1iK6Tgwwsxo2rJbD1GTbdm72325Bq8FI3w= -github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= -github.com/go-openapi/swag v0.19.5 h1:lTz6Ys4CmqqCQmZPBlbQENR1/GucA2bzYTE12Pw4tFY= -github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= -github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= -github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e h1:hB2xlXdHp/pmPZq0y3QnmWAArdw9PqbmotexnWx/FU8= -github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= -github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -golang.org/x/net v0.0.0-20210421230115-4e50805a0758 h1:aEpZnXcAmXkd6AvLb2OPt+EN1Zu/8Ne3pCqPjja5PXY= -golang.org/x/net v0.0.0-20210421230115-4e50805a0758/go.mod h1:72T/g9IO56b78aLF+1Kcs5dz7/ng1VjMUvfKvpfy+jM= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210420072515-93ed5bcd2bfe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M= -golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/src/runtime/vendor/github.com/go-openapi/loads/go.mod b/src/runtime/vendor/github.com/go-openapi/loads/go.mod deleted file mode 100644 index 5a7be3f36..000000000 --- a/src/runtime/vendor/github.com/go-openapi/loads/go.mod +++ /dev/null @@ -1,11 +0,0 @@ -module github.com/go-openapi/loads - -require ( - github.com/go-openapi/analysis v0.21.2 - github.com/go-openapi/spec v0.20.4 - github.com/go-openapi/swag v0.19.15 - github.com/stretchr/testify v1.7.0 - gopkg.in/yaml.v2 v2.4.0 -) - -go 1.13 diff --git a/src/runtime/vendor/github.com/go-openapi/loads/go.sum b/src/runtime/vendor/github.com/go-openapi/loads/go.sum deleted file mode 100644 index d11e3f5c5..000000000 --- a/src/runtime/vendor/github.com/go-openapi/loads/go.sum +++ /dev/null @@ -1,164 +0,0 @@ -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI= -github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M= -github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= -github.com/asaskevich/govalidator v0.0.0-20200907205600-7a23bdc65eef h1:46PFijGLmAjMPwCCCo7Jf0W6f9slllCkkv7vyc1yOSg= -github.com/asaskevich/govalidator v0.0.0-20200907205600-7a23bdc65eef/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= -github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/go-openapi/analysis v0.21.2 h1:hXFrOYFHUAMQdu6zwAiKKJHJQ8kqZs1ux/ru1P1wLJU= -github.com/go-openapi/analysis v0.21.2/go.mod h1:HZwRk4RRisyG8vx2Oe6aqeSQcoxRp47Xkp3+K6q+LdY= -github.com/go-openapi/errors v0.19.8/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M= -github.com/go-openapi/errors v0.19.9 h1:9SnKdGhiPZHF3ttwFMiCBEb8jQ4IDdrK+5+a0oTygA4= -github.com/go-openapi/errors v0.19.9/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M= -github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= -github.com/go-openapi/jsonpointer v0.19.5 h1:gZr+CIYByUqjcgeLXnQu2gHYQC9o73G2XUeOFYEICuY= -github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= -github.com/go-openapi/jsonreference v0.19.6 h1:UBIxjkht+AWIgYzCDSv2GN+E/togfwXUJFRTWhl2Jjs= -github.com/go-openapi/jsonreference v0.19.6/go.mod h1:diGHMEHg2IqXZGKxqyvWdfWU/aim5Dprw5bqpKkTvns= -github.com/go-openapi/spec v0.20.4 h1:O8hJrt0UMnhHcluhIdUgCLRWyM2x7QkBXRvOs7m+O1M= -github.com/go-openapi/spec v0.20.4/go.mod h1:faYFR1CvsJZ0mNsmsphTMSoRrNV3TEDoAM7FOEWeq8I= -github.com/go-openapi/strfmt v0.21.0 h1:hX2qEZKmYks+t0hKeb4VTJpUm2UYsdL3+DCid5swxIs= -github.com/go-openapi/strfmt v0.21.0/go.mod h1:ZRQ409bWMj+SOgXofQAGTIo2Ebu72Gs+WaRADcS5iNg= -github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-openapi/swag v0.19.15 h1:D2NRCBzS9/pEY3gP9Nl8aDqGUcPFrwG2p+CNFrLyrCM= -github.com/go-openapi/swag v0.19.15/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= -github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk= -github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/gobuffalo/attrs v0.0.0-20190224210810-a9411de4debd/go.mod h1:4duuawTqi2wkkpB4ePgWMaai6/Kc6WEz83bhFwpHzj0= -github.com/gobuffalo/depgen v0.0.0-20190329151759-d478694a28d3/go.mod h1:3STtPUQYuzV0gBVOY3vy6CfMm/ljR4pABfrTeHNLHUY= -github.com/gobuffalo/depgen v0.1.0/go.mod h1:+ifsuy7fhi15RWncXQQKjWS9JPkdah5sZvtHc2RXGlg= -github.com/gobuffalo/envy v1.6.15/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI= -github.com/gobuffalo/envy v1.7.0/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI= -github.com/gobuffalo/flect v0.1.0/go.mod h1:d2ehjJqGOH/Kjqcoz+F7jHTBbmDb38yXA598Hb50EGs= -github.com/gobuffalo/flect v0.1.1/go.mod h1:8JCgGVbRjJhVgD6399mQr4fx5rRfGKVzFjbj6RE/9UI= -github.com/gobuffalo/flect v0.1.3/go.mod h1:8JCgGVbRjJhVgD6399mQr4fx5rRfGKVzFjbj6RE/9UI= -github.com/gobuffalo/genny v0.0.0-20190329151137-27723ad26ef9/go.mod h1:rWs4Z12d1Zbf19rlsn0nurr75KqhYp52EAGGxTbBhNk= -github.com/gobuffalo/genny v0.0.0-20190403191548-3ca520ef0d9e/go.mod h1:80lIj3kVJWwOrXWWMRzzdhW3DsrdjILVil/SFKBzF28= -github.com/gobuffalo/genny v0.1.0/go.mod h1:XidbUqzak3lHdS//TPu2OgiFB+51Ur5f7CSnXZ/JDvo= -github.com/gobuffalo/genny v0.1.1/go.mod h1:5TExbEyY48pfunL4QSXxlDOmdsD44RRq4mVZ0Ex28Xk= -github.com/gobuffalo/gitgen v0.0.0-20190315122116-cc086187d211/go.mod h1:vEHJk/E9DmhejeLeNt7UVvlSGv3ziL+djtTr3yyzcOw= -github.com/gobuffalo/gogen v0.0.0-20190315121717-8f38393713f5/go.mod h1:V9QVDIxsgKNZs6L2IYiGR8datgMhB577vzTDqypH360= -github.com/gobuffalo/gogen v0.1.0/go.mod h1:8NTelM5qd8RZ15VjQTFkAW6qOMx5wBbW4dSCS3BY8gg= -github.com/gobuffalo/gogen v0.1.1/go.mod h1:y8iBtmHmGc4qa3urIyo1shvOD8JftTtfcKi+71xfDNE= -github.com/gobuffalo/logger v0.0.0-20190315122211-86e12af44bc2/go.mod h1:QdxcLw541hSGtBnhUc4gaNIXRjiDppFGaDqzbrBd3v8= -github.com/gobuffalo/mapi v1.0.1/go.mod h1:4VAGh89y6rVOvm5A8fKFxYG+wIW6LO1FMTG9hnKStFc= -github.com/gobuffalo/mapi v1.0.2/go.mod h1:4VAGh89y6rVOvm5A8fKFxYG+wIW6LO1FMTG9hnKStFc= -github.com/gobuffalo/packd v0.0.0-20190315124812-a385830c7fc0/go.mod h1:M2Juc+hhDXf/PnmBANFCqx4DM3wRbgDvnVWeG2RIxq4= -github.com/gobuffalo/packd v0.1.0/go.mod h1:M2Juc+hhDXf/PnmBANFCqx4DM3wRbgDvnVWeG2RIxq4= -github.com/gobuffalo/packr/v2 v2.0.9/go.mod h1:emmyGweYTm6Kdper+iywB6YK5YzuKchGtJQZ0Odn4pQ= -github.com/gobuffalo/packr/v2 v2.2.0/go.mod h1:CaAwI0GPIAv+5wKLtv8Afwl+Cm78K/I/VCm/3ptBN+0= -github.com/gobuffalo/syncx v0.0.0-20190224160051-33c29581e754/go.mod h1:HhnNqWY95UYwwW3uSASeV7vtgYkT2t16hJgV3AEPUpw= -github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/google/go-cmp v0.5.2 h1:X2ev0eStA3AbceY54o37/0PQ/UWqKEiiO2dKL5OPaFM= -github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= -github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= -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/karrick/godirwalk v1.8.0/go.mod h1:H5KPZjojv4lE+QYImBI8xVtrBRgYrIVsaRPx4tDPEn4= -github.com/karrick/godirwalk v1.10.3/go.mod h1:RoGL9dQei4vP9ilrpETWE8CLOZ1kiN0LhBygSwrAsHA= -github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= -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/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -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/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.6 h1:8yTIVnZgCoiM1TgqoeTl+LfU5Jg6/xL3QhGQnimLYnA= -github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= -github.com/markbates/oncer v0.0.0-20181203154359-bf2de49a0be2/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE= -github.com/markbates/safe v1.0.1/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0= -github.com/mitchellh/mapstructure v1.3.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -github.com/mitchellh/mapstructure v1.4.1 h1:CpVNEelQCZBooIPDn+AR3NpivK/TIKU8bDxdASFVQag= -github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= -github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= -github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= -github.com/oklog/ulid v1.3.1 h1:EGfNDEx6MqHz8B3uNV6QAib1UR2Lm97sHi3ocA6ESJ4= -github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= -github.com/pelletier/go-toml v1.7.0/go.mod h1:vwGMzjaWMwyfHwgIBhI2YUM4fB6nL6lVAvS1LBMMhTE= -github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.2.2/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/sirupsen/logrus v1.4.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/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= -github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -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/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.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= -github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/tidwall/pretty v1.0.0 h1:HsD+QiTn7sK6flMKIvNmpqz1qrpP3Ps6jOKIKMooyg4= -github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= -github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= -github.com/xdg-go/scram v1.0.2/go.mod h1:1WAq6h33pAW+iRreB34OORO2Nf7qel3VV3fjBj+hCSs= -github.com/xdg-go/stringprep v1.0.2/go.mod h1:8F9zXuvzgwmyT5DUm4GUfZGDdT3W+LCvS6+da4O5kxM= -github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA= -go.mongodb.org/mongo-driver v1.7.3 h1:G4l/eYY9VrQAK/AUgkV0koQKzQnyddnWxrd/Etf0jIs= -go.mongodb.org/mongo-driver v1.7.3/go.mod h1:NqaYOwnXWr5Pm7AOpO5QFxKJ503nbMse/R79oO62zWg= -golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/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-20190422162423-af44ce270edf/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= -golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -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-20210421230115-4e50805a0758 h1:aEpZnXcAmXkd6AvLb2OPt+EN1Zu/8Ne3pCqPjja5PXY= -golang.org/x/net v0.0.0-20210421230115-4e50805a0758/go.mod h1:72T/g9IO56b78aLF+1Kcs5dz7/ng1VjMUvfKvpfy+jM= -golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190412183630-56d357773e84/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190419153524-e8e3143a4f4a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190531175056-4c3a928424d2/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210420072515-93ed5bcd2bfe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.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 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= -golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190329151228-23e29df326fe/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190416151739-9c9e1878f421/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190420181800-aa740d480789/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190531172133-b3315ee88b7d/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/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-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= -gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= -gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20200605160147-a5ece683394c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo= -gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/src/runtime/vendor/github.com/go-openapi/runtime/go.mod b/src/runtime/vendor/github.com/go-openapi/runtime/go.mod deleted file mode 100644 index 3effc2817..000000000 --- a/src/runtime/vendor/github.com/go-openapi/runtime/go.mod +++ /dev/null @@ -1,17 +0,0 @@ -module github.com/go-openapi/runtime - -require ( - github.com/docker/go-units v0.4.0 - github.com/go-openapi/analysis v0.19.10 - github.com/go-openapi/errors v0.19.6 - github.com/go-openapi/loads v0.19.5 - github.com/go-openapi/spec v0.19.8 - github.com/go-openapi/strfmt v0.19.5 - github.com/go-openapi/swag v0.19.9 - github.com/go-openapi/validate v0.19.10 - github.com/stretchr/testify v1.6.1 - gopkg.in/yaml.v2 v2.3.0 - gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 // indirect -) - -go 1.13 diff --git a/src/runtime/vendor/github.com/go-openapi/runtime/go.sum b/src/runtime/vendor/github.com/go-openapi/runtime/go.sum deleted file mode 100644 index 5cadebb49..000000000 --- a/src/runtime/vendor/github.com/go-openapi/runtime/go.sum +++ /dev/null @@ -1,268 +0,0 @@ -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/PuerkitoBio/purell v1.1.0 h1:rmGxhojJlM0tuKtfdvliR84CFHljx9ag64t2xmVkjK4= -github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI= -github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M= -github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= -github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf h1:eg0MeVzsP1G42dRafH3vf+al2vQIJU0YHX+1Tw87oco= -github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= -github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a h1:idn718Q4B6AGu/h5Sxe66HYVdqdGu2l9Iebqhi/AEoA= -github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= -github.com/asaskevich/govalidator v0.0.0-20200108200545-475eaeb16496/go.mod h1:oGkLhpf+kjZl6xBf758TQhh5XrAeiJv/7FRz/2spLIg= -github.com/asaskevich/govalidator v0.0.0-20200428143746-21a406dcc535 h1:4daAzAu0S6Vi7/lbWECcX0j45yZReDZ56BQsrVBOEEY= -github.com/asaskevich/govalidator v0.0.0-20200428143746-21a406dcc535/go.mod h1:oGkLhpf+kjZl6xBf758TQhh5XrAeiJv/7FRz/2spLIg= -github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/docker/go-units v0.3.3 h1:Xk8S3Xj5sLGlG5g67hJmYMmUgXv5N4PhkjJHHqrwnTk= -github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/docker/go-units v0.4.0 h1:3uh0PgVws3nIA0Q+MwDC8yjEPf9zjRfZZWXZYDct3Tw= -github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= -github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8 h1:DujepqpGd1hyOd7aW59XpK7Qymp8iy83xq74fLr21is= -github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= -github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70tL6pCuVxPJOHXQ+wIac1FUrvNkHolPie/cLEU6hI= -github.com/go-openapi/analysis v0.17.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= -github.com/go-openapi/analysis v0.18.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= -github.com/go-openapi/analysis v0.19.2 h1:ophLETFestFZHk3ji7niPEL4d466QjW+0Tdg5VyDq7E= -github.com/go-openapi/analysis v0.19.2/go.mod h1:3P1osvZa9jKjb8ed2TPng3f0i/UY9snX6gxi44djMjk= -github.com/go-openapi/analysis v0.19.4/go.mod h1:3P1osvZa9jKjb8ed2TPng3f0i/UY9snX6gxi44djMjk= -github.com/go-openapi/analysis v0.19.5 h1:8b2ZgKfKIUTVQpTb77MoRDIMEIwvDVw40o3aOXdfYzI= -github.com/go-openapi/analysis v0.19.5/go.mod h1:hkEAkxagaIvIP7VTn8ygJNkd4kAYON2rCu0v0ObL0AU= -github.com/go-openapi/analysis v0.19.10 h1:5BHISBAXOc/aJK25irLZnx2D3s6WyYaY9D4gmuz9fdE= -github.com/go-openapi/analysis v0.19.10/go.mod h1:qmhS3VNFxBlquFJ0RGoDtylO9y4pgTAUNE9AEEMdlJQ= -github.com/go-openapi/errors v0.17.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= -github.com/go-openapi/errors v0.18.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= -github.com/go-openapi/errors v0.19.2 h1:a2kIyV3w+OS3S97zxUndRVD46+FhGOUBDFY7nmu4CsY= -github.com/go-openapi/errors v0.19.2/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94= -github.com/go-openapi/errors v0.19.3/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94= -github.com/go-openapi/errors v0.19.6 h1:xZMThgv5SQ7SMbWtKFkCf9bBdvR2iEyw9k3zGZONuys= -github.com/go-openapi/errors v0.19.6/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M= -github.com/go-openapi/jsonpointer v0.17.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= -github.com/go-openapi/jsonpointer v0.18.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= -github.com/go-openapi/jsonpointer v0.19.2 h1:A9+F4Dc/MCNB5jibxf6rRvOvR/iFgQdyNx9eIhnGqq0= -github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg= -github.com/go-openapi/jsonpointer v0.19.3 h1:gihV7YNZK1iK6Tgwwsxo2rJbD1GTbdm72325Bq8FI3w= -github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= -github.com/go-openapi/jsonreference v0.17.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= -github.com/go-openapi/jsonreference v0.18.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= -github.com/go-openapi/jsonreference v0.19.2 h1:o20suLFB4Ri0tuzpWtyHlh7E7HnkqTNLq6aR6WVNS1w= -github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc= -github.com/go-openapi/jsonreference v0.19.3 h1:5cxNfTy0UVC3X8JL5ymxzyoUZmo8iZb+jeTWn7tUa8o= -github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8= -github.com/go-openapi/loads v0.17.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.18.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.19.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.19.2 h1:rf5ArTHmIJxyV5Oiks+Su0mUens1+AjpkPoWr5xFRcI= -github.com/go-openapi/loads v0.19.2/go.mod h1:QAskZPMX5V0C2gvfkGZzJlINuP7Hx/4+ix5jWFxsNPs= -github.com/go-openapi/loads v0.19.3 h1:jwIoahqCmaA5OBoc/B+1+Mu2L0Gr8xYQnbeyQEo/7b0= -github.com/go-openapi/loads v0.19.3/go.mod h1:YVfqhUCdahYwR3f3iiwQLhicVRvLlU/WO5WPaZvcvSI= -github.com/go-openapi/loads v0.19.5 h1:jZVYWawIQiA1NBnHla28ktg6hrcfTHsCE+3QLVRBIls= -github.com/go-openapi/loads v0.19.5/go.mod h1:dswLCAdonkRufe/gSUC3gN8nTSaB9uaS2es0x5/IbjY= -github.com/go-openapi/runtime v0.0.0-20180920151709-4f900dc2ade9/go.mod h1:6v9a6LTXWQCdL8k1AO3cvqx5OtZY/Y9wKTgaoP6YRfA= -github.com/go-openapi/runtime v0.19.0/go.mod h1:OwNfisksmmaZse4+gpV3Ne9AyMOlP1lt4sK4FXt0O64= -github.com/go-openapi/runtime v0.19.4/go.mod h1:X277bwSUBxVlCYR3r7xgZZGKVvBd/29gLDlFGtJ8NL4= -github.com/go-openapi/runtime v0.19.15/go.mod h1:dhGWCTKRXlAfGnQG0ONViOZpjfg0m2gUt9nTQPQZuoo= -github.com/go-openapi/spec v0.17.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= -github.com/go-openapi/spec v0.18.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= -github.com/go-openapi/spec v0.19.2 h1:SStNd1jRcYtfKCN7R0laGNs80WYYvn5CbBjM2sOmCrE= -github.com/go-openapi/spec v0.19.2/go.mod h1:sCxk3jxKgioEJikev4fgkNmwS+3kuYdJtcsZsD5zxMY= -github.com/go-openapi/spec v0.19.3 h1:0XRyw8kguri6Yw4SxhsQA/atC88yqrk0+G4YhI2wabc= -github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo= -github.com/go-openapi/spec v0.19.6/go.mod h1:Hm2Jr4jv8G1ciIAo+frC/Ft+rR2kQDh8JHKHb3gWUSk= -github.com/go-openapi/spec v0.19.8 h1:qAdZLh1r6QF/hI/gTq+TJTvsQUodZsM7KLqkAJdiJNg= -github.com/go-openapi/spec v0.19.8/go.mod h1:Hm2Jr4jv8G1ciIAo+frC/Ft+rR2kQDh8JHKHb3gWUSk= -github.com/go-openapi/strfmt v0.17.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= -github.com/go-openapi/strfmt v0.18.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= -github.com/go-openapi/strfmt v0.19.0 h1:0Dn9qy1G9+UJfRU7TR8bmdGxb4uifB7HNrJjOnV0yPk= -github.com/go-openapi/strfmt v0.19.0/go.mod h1:+uW+93UVvGGq2qGaZxdDeJqSAqBqBdl+ZPMF/cC8nDY= -github.com/go-openapi/strfmt v0.19.2/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6+bY1AVL9LU= -github.com/go-openapi/strfmt v0.19.3 h1:eRfyY5SkaNJCAwmmMcADjY31ow9+N7MCLW7oRkbsINA= -github.com/go-openapi/strfmt v0.19.3/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6+bY1AVL9LU= -github.com/go-openapi/strfmt v0.19.4/go.mod h1:eftuHTlB/dI8Uq8JJOyRlieZf+WkkxUuk0dgdHXr2Qk= -github.com/go-openapi/strfmt v0.19.5 h1:0utjKrw+BAh8s57XE9Xz8DUBsVvPmRUB6styvl9wWIM= -github.com/go-openapi/strfmt v0.19.5/go.mod h1:eftuHTlB/dI8Uq8JJOyRlieZf+WkkxUuk0dgdHXr2Qk= -github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= -github.com/go-openapi/swag v0.18.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= -github.com/go-openapi/swag v0.19.2 h1:jvO6bCMBEilGwMfHhrd61zIID4oIFdwb76V17SM88dE= -github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-openapi/swag v0.19.5 h1:lTz6Ys4CmqqCQmZPBlbQENR1/GucA2bzYTE12Pw4tFY= -github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-openapi/swag v0.19.7/go.mod h1:ao+8BpOPyKdpQz3AOJfbeEVpLmWAvlT1IfTe5McPyhY= -github.com/go-openapi/swag v0.19.9 h1:1IxuqvBUU3S2Bi4YC7tlP9SJF1gVpCvqN0T2Qof4azE= -github.com/go-openapi/swag v0.19.9/go.mod h1:ao+8BpOPyKdpQz3AOJfbeEVpLmWAvlT1IfTe5McPyhY= -github.com/go-openapi/validate v0.18.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+MYsct2VUrAJ4= -github.com/go-openapi/validate v0.19.2 h1:ky5l57HjyVRrsJfd2+Ro5Z9PjGuKbsmftwyMtk8H7js= -github.com/go-openapi/validate v0.19.2/go.mod h1:1tRCw7m3jtI8eNWEEliiAqUIcBztB2KDnRCRMUi7GTA= -github.com/go-openapi/validate v0.19.3 h1:PAH/2DylwWcIU1s0Y7k3yNmeAgWOcKrNE2Q7Ww/kCg4= -github.com/go-openapi/validate v0.19.3/go.mod h1:90Vh6jjkTn+OT1Eefm0ZixWNFjhtOH7vS9k0lo6zwJo= -github.com/go-openapi/validate v0.19.10 h1:tG3SZ5DC5KF4cyt7nqLVcQXGj5A7mpaYkAcNPlDK+Yk= -github.com/go-openapi/validate v0.19.10/go.mod h1:RKEZTUWDkxKQxN2jDT7ZnZi2bhZlbNMAuKvKB+IaGx8= -github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk= -github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/gobuffalo/attrs v0.0.0-20190224210810-a9411de4debd/go.mod h1:4duuawTqi2wkkpB4ePgWMaai6/Kc6WEz83bhFwpHzj0= -github.com/gobuffalo/depgen v0.0.0-20190329151759-d478694a28d3/go.mod h1:3STtPUQYuzV0gBVOY3vy6CfMm/ljR4pABfrTeHNLHUY= -github.com/gobuffalo/depgen v0.1.0/go.mod h1:+ifsuy7fhi15RWncXQQKjWS9JPkdah5sZvtHc2RXGlg= -github.com/gobuffalo/envy v1.6.15/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI= -github.com/gobuffalo/envy v1.7.0/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI= -github.com/gobuffalo/flect v0.1.0/go.mod h1:d2ehjJqGOH/Kjqcoz+F7jHTBbmDb38yXA598Hb50EGs= -github.com/gobuffalo/flect v0.1.1/go.mod h1:8JCgGVbRjJhVgD6399mQr4fx5rRfGKVzFjbj6RE/9UI= -github.com/gobuffalo/flect v0.1.3/go.mod h1:8JCgGVbRjJhVgD6399mQr4fx5rRfGKVzFjbj6RE/9UI= -github.com/gobuffalo/genny v0.0.0-20190329151137-27723ad26ef9/go.mod h1:rWs4Z12d1Zbf19rlsn0nurr75KqhYp52EAGGxTbBhNk= -github.com/gobuffalo/genny v0.0.0-20190403191548-3ca520ef0d9e/go.mod h1:80lIj3kVJWwOrXWWMRzzdhW3DsrdjILVil/SFKBzF28= -github.com/gobuffalo/genny v0.1.0/go.mod h1:XidbUqzak3lHdS//TPu2OgiFB+51Ur5f7CSnXZ/JDvo= -github.com/gobuffalo/genny v0.1.1/go.mod h1:5TExbEyY48pfunL4QSXxlDOmdsD44RRq4mVZ0Ex28Xk= -github.com/gobuffalo/gitgen v0.0.0-20190315122116-cc086187d211/go.mod h1:vEHJk/E9DmhejeLeNt7UVvlSGv3ziL+djtTr3yyzcOw= -github.com/gobuffalo/gogen v0.0.0-20190315121717-8f38393713f5/go.mod h1:V9QVDIxsgKNZs6L2IYiGR8datgMhB577vzTDqypH360= -github.com/gobuffalo/gogen v0.1.0/go.mod h1:8NTelM5qd8RZ15VjQTFkAW6qOMx5wBbW4dSCS3BY8gg= -github.com/gobuffalo/gogen v0.1.1/go.mod h1:y8iBtmHmGc4qa3urIyo1shvOD8JftTtfcKi+71xfDNE= -github.com/gobuffalo/logger v0.0.0-20190315122211-86e12af44bc2/go.mod h1:QdxcLw541hSGtBnhUc4gaNIXRjiDppFGaDqzbrBd3v8= -github.com/gobuffalo/mapi v1.0.1/go.mod h1:4VAGh89y6rVOvm5A8fKFxYG+wIW6LO1FMTG9hnKStFc= -github.com/gobuffalo/mapi v1.0.2/go.mod h1:4VAGh89y6rVOvm5A8fKFxYG+wIW6LO1FMTG9hnKStFc= -github.com/gobuffalo/packd v0.0.0-20190315124812-a385830c7fc0/go.mod h1:M2Juc+hhDXf/PnmBANFCqx4DM3wRbgDvnVWeG2RIxq4= -github.com/gobuffalo/packd v0.1.0/go.mod h1:M2Juc+hhDXf/PnmBANFCqx4DM3wRbgDvnVWeG2RIxq4= -github.com/gobuffalo/packr/v2 v2.0.9/go.mod h1:emmyGweYTm6Kdper+iywB6YK5YzuKchGtJQZ0Odn4pQ= -github.com/gobuffalo/packr/v2 v2.2.0/go.mod h1:CaAwI0GPIAv+5wKLtv8Afwl+Cm78K/I/VCm/3ptBN+0= -github.com/gobuffalo/syncx v0.0.0-20190224160051-33c29581e754/go.mod h1:HhnNqWY95UYwwW3uSASeV7vtgYkT2t16hJgV3AEPUpw= -github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= -github.com/google/go-cmp v0.3.0 h1:crn/baboCvb5fXaQ0IJ1SGTsTVrWpDsCWC8EGETZijY= -github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= -github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= -github.com/karrick/godirwalk v1.8.0/go.mod h1:H5KPZjojv4lE+QYImBI8xVtrBRgYrIVsaRPx4tDPEn4= -github.com/karrick/godirwalk v1.10.3/go.mod h1:RoGL9dQei4vP9ilrpETWE8CLOZ1kiN0LhBygSwrAsHA= -github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= -github.com/klauspost/compress v1.9.5/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= -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/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= -github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= -github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= -github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= -github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329 h1:2gxZ0XQIU/5z3Z3bUBu+FXuk2pFbkN6tcwi/pjyaDic= -github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe h1:W/GaMY0y69G4cFlmsC6B9sbuo2fP8OFP1ABjt4kPz+w= -github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63 h1:nTT4s92Dgz2HlrB2NaMgvlfqHH39OgMhA7z3PK7PGD4= -github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e h1:hB2xlXdHp/pmPZq0y3QnmWAArdw9PqbmotexnWx/FU8= -github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.7.1 h1:mdxE1MF9o53iCb2Ghj1VfWvh7ZOwHpnVG/xwXrV90U8= -github.com/mailru/easyjson v0.7.1/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= -github.com/markbates/oncer v0.0.0-20181203154359-bf2de49a0be2/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE= -github.com/markbates/safe v1.0.1/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0= -github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= -github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/mitchellh/mapstructure v1.3.2 h1:mRS76wmkOn3KkKAyXDu42V+6ebnXWIztFSYGN7GeoRg= -github.com/mitchellh/mapstructure v1.3.2/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= -github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= -github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= -github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= -github.com/pelletier/go-toml v1.4.0/go.mod h1:PN7xzY2wHTK0K9p34ErDQMlFxa51Fk0OUruD3k1mMwo= -github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.2.2/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/sirupsen/logrus v1.4.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/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= -github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -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/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w= -github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= -github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= -github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0= -github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/tidwall/pretty v1.0.0 h1:HsD+QiTn7sK6flMKIvNmpqz1qrpP3Ps6jOKIKMooyg4= -github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= -github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I= -github.com/xdg/stringprep v0.0.0-20180714160509-73f8eece6fdc/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y= -go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= -go.mongodb.org/mongo-driver v1.1.1 h1:Sq1fR+0c58RME5EoqKdjkiQAmPjmfHlZOoRI6fTUOcs= -go.mongodb.org/mongo-driver v1.1.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= -go.mongodb.org/mongo-driver v1.3.0/go.mod h1:MSWZXKOynuguX+JSvwP8i+58jYCXxbia8HS3gZBapIE= -go.mongodb.org/mongo-driver v1.3.4 h1:zs/dKNwX0gYUtzwrN9lLiR15hCO0nDwQj5xXx+vjCdE= -go.mongodb.org/mongo-driver v1.3.4/go.mod h1:MSWZXKOynuguX+JSvwP8i+58jYCXxbia8HS3gZBapIE= -golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/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-20190320223903-b7391e95e576/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190422162423-af44ce270edf/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= -golang.org/x/crypto v0.0.0-20190530122614-20be4c3c3ed5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190617133340-57b3e21c3d56/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/net v0.0.0-20181005035420-146acd28ed58/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-20190320064053-1272bf9dcd53 h1:kcXqo9vE6fsZY5X5Rd7R1l7fTgnWaDCVmln65REefiE= -golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190613194153-d28f0bde5980 h1:dfGZHvZk057jK2MCeWus/TowKpJ8y4AmooUzdBSR9GU= -golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297 h1:k7pJ2yAPLPgbskkFdhRCsA77k2fySZ1zf2zCjvQCiIM= -golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200602114024-627f9648deb9 h1:pNX+40auqi2JqRfOP1akLGtYcn15TUbkhwuCO3foqqM= -golang.org/x/net v0.0.0-20200602114024-627f9648deb9/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190412183630-56d357773e84/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190321052220-f7bb7a8bee54/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190419153524-e8e3143a4f4a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190531175056-4c3a928424d2/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= -golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/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-20190329151228-23e29df326fe/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190416151739-9c9e1878f421/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190420181800-aa740d480789/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190531172133-b3315ee88b7d/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190617190820-da514acc4774/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= -gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= -gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.4 h1:/eiJrUcujPVeJ3xlSWaiNi3uSVmDGBK1pDHUHAnao1I= -gopkg.in/yaml.v2 v2.2.4/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 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU= -gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20200605160147-a5ece683394c h1:grhR+C34yXImVGp7EzNk+DTIk+323eIUWOmEevy6bDo= -gopkg.in/yaml.v3 v3.0.0-20200605160147-a5ece683394c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 h1:tQIYjPdBoyREyB9XMu+nnTclpTYkz2zFM+lzLJFO4gQ= -gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/src/runtime/vendor/github.com/go-openapi/spec/go.mod b/src/runtime/vendor/github.com/go-openapi/spec/go.mod deleted file mode 100644 index 39aab5f7e..000000000 --- a/src/runtime/vendor/github.com/go-openapi/spec/go.mod +++ /dev/null @@ -1,12 +0,0 @@ -module github.com/go-openapi/spec - -require ( - github.com/go-openapi/jsonpointer v0.19.5 - github.com/go-openapi/jsonreference v0.19.6 - github.com/go-openapi/swag v0.19.15 - github.com/stretchr/testify v1.6.1 - golang.org/x/text v0.3.7 // indirect - gopkg.in/yaml.v2 v2.4.0 -) - -go 1.13 diff --git a/src/runtime/vendor/github.com/go-openapi/spec/go.sum b/src/runtime/vendor/github.com/go-openapi/spec/go.sum deleted file mode 100644 index 3a2f52263..000000000 --- a/src/runtime/vendor/github.com/go-openapi/spec/go.sum +++ /dev/null @@ -1,59 +0,0 @@ -github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI= -github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M= -github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= -github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/go-openapi/jsonpointer v0.19.3 h1:gihV7YNZK1iK6Tgwwsxo2rJbD1GTbdm72325Bq8FI3w= -github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= -github.com/go-openapi/jsonpointer v0.19.5 h1:gZr+CIYByUqjcgeLXnQu2gHYQC9o73G2XUeOFYEICuY= -github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= -github.com/go-openapi/jsonreference v0.19.6 h1:UBIxjkht+AWIgYzCDSv2GN+E/togfwXUJFRTWhl2Jjs= -github.com/go-openapi/jsonreference v0.19.6/go.mod h1:diGHMEHg2IqXZGKxqyvWdfWU/aim5Dprw5bqpKkTvns= -github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-openapi/swag v0.19.15 h1:D2NRCBzS9/pEY3gP9Nl8aDqGUcPFrwG2p+CNFrLyrCM= -github.com/go-openapi/swag v0.19.15/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= -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/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= -github.com/kr/text v0.1.0/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/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e h1:hB2xlXdHp/pmPZq0y3QnmWAArdw9PqbmotexnWx/FU8= -github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.7.6 h1:8yTIVnZgCoiM1TgqoeTl+LfU5Jg6/xL3QhGQnimLYnA= -github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= -github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= -github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= -github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0= -github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -golang.org/x/net v0.0.0-20210421230115-4e50805a0758 h1:aEpZnXcAmXkd6AvLb2OPt+EN1Zu/8Ne3pCqPjja5PXY= -golang.org/x/net v0.0.0-20210421230115-4e50805a0758/go.mod h1:72T/g9IO56b78aLF+1Kcs5dz7/ng1VjMUvfKvpfy+jM= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210420072515-93ed5bcd2bfe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= -golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/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-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= -gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= -gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 h1:tQIYjPdBoyREyB9XMu+nnTclpTYkz2zFM+lzLJFO4gQ= -gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/src/runtime/vendor/github.com/go-openapi/strfmt/go.mod b/src/runtime/vendor/github.com/go-openapi/strfmt/go.mod deleted file mode 100644 index 0c31ea8cf..000000000 --- a/src/runtime/vendor/github.com/go-openapi/strfmt/go.mod +++ /dev/null @@ -1,13 +0,0 @@ -module github.com/go-openapi/strfmt - -require ( - github.com/asaskevich/govalidator v0.0.0-20200907205600-7a23bdc65eef - github.com/go-openapi/errors v0.19.8 - github.com/google/uuid v1.1.1 - github.com/mitchellh/mapstructure v1.3.3 - github.com/oklog/ulid v1.3.1 - github.com/stretchr/testify v1.6.1 - go.mongodb.org/mongo-driver v1.7.5 -) - -go 1.13 diff --git a/src/runtime/vendor/github.com/go-openapi/strfmt/go.sum b/src/runtime/vendor/github.com/go-openapi/strfmt/go.sum deleted file mode 100644 index 6978f85d1..000000000 --- a/src/runtime/vendor/github.com/go-openapi/strfmt/go.sum +++ /dev/null @@ -1,63 +0,0 @@ -github.com/asaskevich/govalidator v0.0.0-20200907205600-7a23bdc65eef h1:46PFijGLmAjMPwCCCo7Jf0W6f9slllCkkv7vyc1yOSg= -github.com/asaskevich/govalidator v0.0.0-20200907205600-7a23bdc65eef/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= -github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/go-openapi/errors v0.19.8 h1:doM+tQdZbUm9gydV9yR+iQNmztbjj7I3sW4sIcAwIzc= -github.com/go-openapi/errors v0.19.8/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M= -github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk= -github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/google/go-cmp v0.5.2 h1:X2ev0eStA3AbceY54o37/0PQ/UWqKEiiO2dKL5OPaFM= -github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= -github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= -github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/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/mitchellh/mapstructure v1.3.3 h1:SzB1nHZ2Xi+17FP0zVQBHIZqvwRN9408fJO8h+eeNA8= -github.com/mitchellh/mapstructure v1.3.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= -github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= -github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= -github.com/oklog/ulid v1.3.1 h1:EGfNDEx6MqHz8B3uNV6QAib1UR2Lm97sHi3ocA6ESJ4= -github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= -github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0= -github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/tidwall/pretty v1.0.0 h1:HsD+QiTn7sK6flMKIvNmpqz1qrpP3Ps6jOKIKMooyg4= -github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= -github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= -github.com/xdg-go/scram v1.0.2/go.mod h1:1WAq6h33pAW+iRreB34OORO2Nf7qel3VV3fjBj+hCSs= -github.com/xdg-go/stringprep v1.0.2/go.mod h1:8F9zXuvzgwmyT5DUm4GUfZGDdT3W+LCvS6+da4O5kxM= -github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA= -go.mongodb.org/mongo-driver v1.7.5 h1:ny3p0reEpgsR2cfA5cjgwFZg3Cv/ofFh/8jbhGtz9VI= -go.mongodb.org/mongo-driver v1.7.5/go.mod h1:VXEWRZ6URJIkUq2SCAyapmhH0ZLRBP+FT4xhp5Zvxng= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -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/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190531172133-b3315ee88b7d/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/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-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= -gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20200605160147-a5ece683394c h1:grhR+C34yXImVGp7EzNk+DTIk+323eIUWOmEevy6bDo= -gopkg.in/yaml.v3 v3.0.0-20200605160147-a5ece683394c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/src/runtime/vendor/github.com/go-openapi/swag/go.mod b/src/runtime/vendor/github.com/go-openapi/swag/go.mod deleted file mode 100644 index fb29b65b2..000000000 --- a/src/runtime/vendor/github.com/go-openapi/swag/go.mod +++ /dev/null @@ -1,18 +0,0 @@ -module github.com/go-openapi/swag - -require ( - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/kr/text v0.2.0 // indirect - github.com/mailru/easyjson v0.7.6 - github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e // indirect - github.com/stretchr/testify v1.6.1 - gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f // indirect - gopkg.in/yaml.v2 v2.4.0 - gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 // indirect -) - -replace github.com/golang/lint => golang.org/x/lint v0.0.0-20190409202823-959b441ac422 - -replace sourcegraph.com/sourcegraph/go-diff => github.com/sourcegraph/go-diff v0.5.1 - -go 1.11 diff --git a/src/runtime/vendor/github.com/go-openapi/swag/go.sum b/src/runtime/vendor/github.com/go-openapi/swag/go.sum deleted file mode 100644 index a45da809a..000000000 --- a/src/runtime/vendor/github.com/go-openapi/swag/go.sum +++ /dev/null @@ -1,29 +0,0 @@ -github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -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/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= -github.com/kr/text v0.1.0/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/mailru/easyjson v0.7.6 h1:8yTIVnZgCoiM1TgqoeTl+LfU5Jg6/xL3QhGQnimLYnA= -github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= -github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= -github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/objx v0.1.0 h1:4G4v2dO3VZwixGIRoQ5Lfboy6nUhCyYzaqnIAPPhYs4= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0= -github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= -gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= -gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 h1:tQIYjPdBoyREyB9XMu+nnTclpTYkz2zFM+lzLJFO4gQ= -gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/src/runtime/vendor/github.com/go-openapi/validate/go.mod b/src/runtime/vendor/github.com/go-openapi/validate/go.mod deleted file mode 100644 index df9fa94f8..000000000 --- a/src/runtime/vendor/github.com/go-openapi/validate/go.mod +++ /dev/null @@ -1,15 +0,0 @@ -module github.com/go-openapi/validate - -go 1.14 - -require ( - github.com/go-openapi/analysis v0.21.2 - github.com/go-openapi/errors v0.19.9 - github.com/go-openapi/jsonpointer v0.19.5 - github.com/go-openapi/loads v0.21.1 - github.com/go-openapi/spec v0.20.4 - github.com/go-openapi/strfmt v0.21.1 - github.com/go-openapi/swag v0.21.1 - github.com/stretchr/testify v1.7.0 - gopkg.in/yaml.v2 v2.4.0 -) diff --git a/src/runtime/vendor/github.com/go-openapi/validate/go.sum b/src/runtime/vendor/github.com/go-openapi/validate/go.sum deleted file mode 100644 index b351057c1..000000000 --- a/src/runtime/vendor/github.com/go-openapi/validate/go.sum +++ /dev/null @@ -1,169 +0,0 @@ -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI= -github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M= -github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= -github.com/asaskevich/govalidator v0.0.0-20200907205600-7a23bdc65eef h1:46PFijGLmAjMPwCCCo7Jf0W6f9slllCkkv7vyc1yOSg= -github.com/asaskevich/govalidator v0.0.0-20200907205600-7a23bdc65eef/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= -github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/go-openapi/analysis v0.21.2 h1:hXFrOYFHUAMQdu6zwAiKKJHJQ8kqZs1ux/ru1P1wLJU= -github.com/go-openapi/analysis v0.21.2/go.mod h1:HZwRk4RRisyG8vx2Oe6aqeSQcoxRp47Xkp3+K6q+LdY= -github.com/go-openapi/errors v0.19.8/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M= -github.com/go-openapi/errors v0.19.9 h1:9SnKdGhiPZHF3ttwFMiCBEb8jQ4IDdrK+5+a0oTygA4= -github.com/go-openapi/errors v0.19.9/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M= -github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= -github.com/go-openapi/jsonpointer v0.19.5 h1:gZr+CIYByUqjcgeLXnQu2gHYQC9o73G2XUeOFYEICuY= -github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= -github.com/go-openapi/jsonreference v0.19.6 h1:UBIxjkht+AWIgYzCDSv2GN+E/togfwXUJFRTWhl2Jjs= -github.com/go-openapi/jsonreference v0.19.6/go.mod h1:diGHMEHg2IqXZGKxqyvWdfWU/aim5Dprw5bqpKkTvns= -github.com/go-openapi/loads v0.21.1 h1:Wb3nVZpdEzDTcly8S4HMkey6fjARRzb7iEaySimlDW0= -github.com/go-openapi/loads v0.21.1/go.mod h1:/DtAMXXneXFjbQMGEtbamCZb+4x7eGwkvZCvBmwUG+g= -github.com/go-openapi/spec v0.20.4 h1:O8hJrt0UMnhHcluhIdUgCLRWyM2x7QkBXRvOs7m+O1M= -github.com/go-openapi/spec v0.20.4/go.mod h1:faYFR1CvsJZ0mNsmsphTMSoRrNV3TEDoAM7FOEWeq8I= -github.com/go-openapi/strfmt v0.21.0/go.mod h1:ZRQ409bWMj+SOgXofQAGTIo2Ebu72Gs+WaRADcS5iNg= -github.com/go-openapi/strfmt v0.21.1 h1:G6s2t5V5kGCHLVbSdZ/6lI8Wm4OzoPFkc3/cjAsKQrM= -github.com/go-openapi/strfmt v0.21.1/go.mod h1:I/XVKeLc5+MM5oPNN7P6urMOpuLXEcNrCX/rPGuWb0k= -github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-openapi/swag v0.19.15/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= -github.com/go-openapi/swag v0.21.1 h1:wm0rhTb5z7qpJRHBdPOMuY4QjVUMbF6/kwoYeRAOrKU= -github.com/go-openapi/swag v0.21.1/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= -github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk= -github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/gobuffalo/attrs v0.0.0-20190224210810-a9411de4debd/go.mod h1:4duuawTqi2wkkpB4ePgWMaai6/Kc6WEz83bhFwpHzj0= -github.com/gobuffalo/depgen v0.0.0-20190329151759-d478694a28d3/go.mod h1:3STtPUQYuzV0gBVOY3vy6CfMm/ljR4pABfrTeHNLHUY= -github.com/gobuffalo/depgen v0.1.0/go.mod h1:+ifsuy7fhi15RWncXQQKjWS9JPkdah5sZvtHc2RXGlg= -github.com/gobuffalo/envy v1.6.15/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI= -github.com/gobuffalo/envy v1.7.0/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI= -github.com/gobuffalo/flect v0.1.0/go.mod h1:d2ehjJqGOH/Kjqcoz+F7jHTBbmDb38yXA598Hb50EGs= -github.com/gobuffalo/flect v0.1.1/go.mod h1:8JCgGVbRjJhVgD6399mQr4fx5rRfGKVzFjbj6RE/9UI= -github.com/gobuffalo/flect v0.1.3/go.mod h1:8JCgGVbRjJhVgD6399mQr4fx5rRfGKVzFjbj6RE/9UI= -github.com/gobuffalo/genny v0.0.0-20190329151137-27723ad26ef9/go.mod h1:rWs4Z12d1Zbf19rlsn0nurr75KqhYp52EAGGxTbBhNk= -github.com/gobuffalo/genny v0.0.0-20190403191548-3ca520ef0d9e/go.mod h1:80lIj3kVJWwOrXWWMRzzdhW3DsrdjILVil/SFKBzF28= -github.com/gobuffalo/genny v0.1.0/go.mod h1:XidbUqzak3lHdS//TPu2OgiFB+51Ur5f7CSnXZ/JDvo= -github.com/gobuffalo/genny v0.1.1/go.mod h1:5TExbEyY48pfunL4QSXxlDOmdsD44RRq4mVZ0Ex28Xk= -github.com/gobuffalo/gitgen v0.0.0-20190315122116-cc086187d211/go.mod h1:vEHJk/E9DmhejeLeNt7UVvlSGv3ziL+djtTr3yyzcOw= -github.com/gobuffalo/gogen v0.0.0-20190315121717-8f38393713f5/go.mod h1:V9QVDIxsgKNZs6L2IYiGR8datgMhB577vzTDqypH360= -github.com/gobuffalo/gogen v0.1.0/go.mod h1:8NTelM5qd8RZ15VjQTFkAW6qOMx5wBbW4dSCS3BY8gg= -github.com/gobuffalo/gogen v0.1.1/go.mod h1:y8iBtmHmGc4qa3urIyo1shvOD8JftTtfcKi+71xfDNE= -github.com/gobuffalo/logger v0.0.0-20190315122211-86e12af44bc2/go.mod h1:QdxcLw541hSGtBnhUc4gaNIXRjiDppFGaDqzbrBd3v8= -github.com/gobuffalo/mapi v1.0.1/go.mod h1:4VAGh89y6rVOvm5A8fKFxYG+wIW6LO1FMTG9hnKStFc= -github.com/gobuffalo/mapi v1.0.2/go.mod h1:4VAGh89y6rVOvm5A8fKFxYG+wIW6LO1FMTG9hnKStFc= -github.com/gobuffalo/packd v0.0.0-20190315124812-a385830c7fc0/go.mod h1:M2Juc+hhDXf/PnmBANFCqx4DM3wRbgDvnVWeG2RIxq4= -github.com/gobuffalo/packd v0.1.0/go.mod h1:M2Juc+hhDXf/PnmBANFCqx4DM3wRbgDvnVWeG2RIxq4= -github.com/gobuffalo/packr/v2 v2.0.9/go.mod h1:emmyGweYTm6Kdper+iywB6YK5YzuKchGtJQZ0Odn4pQ= -github.com/gobuffalo/packr/v2 v2.2.0/go.mod h1:CaAwI0GPIAv+5wKLtv8Afwl+Cm78K/I/VCm/3ptBN+0= -github.com/gobuffalo/syncx v0.0.0-20190224160051-33c29581e754/go.mod h1:HhnNqWY95UYwwW3uSASeV7vtgYkT2t16hJgV3AEPUpw= -github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/google/go-cmp v0.5.2 h1:X2ev0eStA3AbceY54o37/0PQ/UWqKEiiO2dKL5OPaFM= -github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= -github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= -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/karrick/godirwalk v1.8.0/go.mod h1:H5KPZjojv4lE+QYImBI8xVtrBRgYrIVsaRPx4tDPEn4= -github.com/karrick/godirwalk v1.10.3/go.mod h1:RoGL9dQei4vP9ilrpETWE8CLOZ1kiN0LhBygSwrAsHA= -github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= -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/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -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/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.6 h1:8yTIVnZgCoiM1TgqoeTl+LfU5Jg6/xL3QhGQnimLYnA= -github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= -github.com/markbates/oncer v0.0.0-20181203154359-bf2de49a0be2/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE= -github.com/markbates/safe v1.0.1/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0= -github.com/mitchellh/mapstructure v1.3.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -github.com/mitchellh/mapstructure v1.4.1 h1:CpVNEelQCZBooIPDn+AR3NpivK/TIKU8bDxdASFVQag= -github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= -github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= -github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= -github.com/oklog/ulid v1.3.1 h1:EGfNDEx6MqHz8B3uNV6QAib1UR2Lm97sHi3ocA6ESJ4= -github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= -github.com/pelletier/go-toml v1.7.0/go.mod h1:vwGMzjaWMwyfHwgIBhI2YUM4fB6nL6lVAvS1LBMMhTE= -github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.2.2/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/sirupsen/logrus v1.4.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/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= -github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -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/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.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= -github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/tidwall/pretty v1.0.0 h1:HsD+QiTn7sK6flMKIvNmpqz1qrpP3Ps6jOKIKMooyg4= -github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= -github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= -github.com/xdg-go/scram v1.0.2/go.mod h1:1WAq6h33pAW+iRreB34OORO2Nf7qel3VV3fjBj+hCSs= -github.com/xdg-go/stringprep v1.0.2/go.mod h1:8F9zXuvzgwmyT5DUm4GUfZGDdT3W+LCvS6+da4O5kxM= -github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA= -go.mongodb.org/mongo-driver v1.7.3/go.mod h1:NqaYOwnXWr5Pm7AOpO5QFxKJ503nbMse/R79oO62zWg= -go.mongodb.org/mongo-driver v1.7.5 h1:ny3p0reEpgsR2cfA5cjgwFZg3Cv/ofFh/8jbhGtz9VI= -go.mongodb.org/mongo-driver v1.7.5/go.mod h1:VXEWRZ6URJIkUq2SCAyapmhH0ZLRBP+FT4xhp5Zvxng= -golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/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-20190422162423-af44ce270edf/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= -golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -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-20210421230115-4e50805a0758 h1:aEpZnXcAmXkd6AvLb2OPt+EN1Zu/8Ne3pCqPjja5PXY= -golang.org/x/net v0.0.0-20210421230115-4e50805a0758/go.mod h1:72T/g9IO56b78aLF+1Kcs5dz7/ng1VjMUvfKvpfy+jM= -golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190412183630-56d357773e84/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190419153524-e8e3143a4f4a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190531175056-4c3a928424d2/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210420072515-93ed5bcd2bfe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.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 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= -golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190329151228-23e29df326fe/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190416151739-9c9e1878f421/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190420181800-aa740d480789/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190531172133-b3315ee88b7d/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/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-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= -gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= -gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20200605160147-a5ece683394c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo= -gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/src/runtime/vendor/github.com/go-stack/stack/go.mod b/src/runtime/vendor/github.com/go-stack/stack/go.mod deleted file mode 100644 index 96a53a109..000000000 --- a/src/runtime/vendor/github.com/go-stack/stack/go.mod +++ /dev/null @@ -1 +0,0 @@ -module github.com/go-stack/stack diff --git a/src/runtime/vendor/github.com/godbus/dbus/v5/go.mod b/src/runtime/vendor/github.com/godbus/dbus/v5/go.mod deleted file mode 100644 index 15b920203..000000000 --- a/src/runtime/vendor/github.com/godbus/dbus/v5/go.mod +++ /dev/null @@ -1,3 +0,0 @@ -module github.com/godbus/dbus/v5 - -go 1.12 diff --git a/src/runtime/vendor/github.com/godbus/dbus/v5/go.sum b/src/runtime/vendor/github.com/godbus/dbus/v5/go.sum deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/runtime/vendor/github.com/hashicorp/errwrap/go.mod b/src/runtime/vendor/github.com/hashicorp/errwrap/go.mod deleted file mode 100644 index c9b84022c..000000000 --- a/src/runtime/vendor/github.com/hashicorp/errwrap/go.mod +++ /dev/null @@ -1 +0,0 @@ -module github.com/hashicorp/errwrap diff --git a/src/runtime/vendor/github.com/hashicorp/go-multierror/go.mod b/src/runtime/vendor/github.com/hashicorp/go-multierror/go.mod deleted file mode 100644 index 141cc4ccb..000000000 --- a/src/runtime/vendor/github.com/hashicorp/go-multierror/go.mod +++ /dev/null @@ -1,5 +0,0 @@ -module github.com/hashicorp/go-multierror - -go 1.13 - -require github.com/hashicorp/errwrap v1.0.0 diff --git a/src/runtime/vendor/github.com/hashicorp/go-multierror/go.sum b/src/runtime/vendor/github.com/hashicorp/go-multierror/go.sum deleted file mode 100644 index e8238e9ec..000000000 --- a/src/runtime/vendor/github.com/hashicorp/go-multierror/go.sum +++ /dev/null @@ -1,2 +0,0 @@ -github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA= -github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= diff --git a/src/runtime/vendor/github.com/josharian/intern/go.mod b/src/runtime/vendor/github.com/josharian/intern/go.mod deleted file mode 100644 index f2262ff0d..000000000 --- a/src/runtime/vendor/github.com/josharian/intern/go.mod +++ /dev/null @@ -1,3 +0,0 @@ -module github.com/josharian/intern - -go 1.5 diff --git a/src/runtime/vendor/github.com/mdlayher/socket/go.mod b/src/runtime/vendor/github.com/mdlayher/socket/go.mod deleted file mode 100644 index ead5e027b..000000000 --- a/src/runtime/vendor/github.com/mdlayher/socket/go.mod +++ /dev/null @@ -1,10 +0,0 @@ -module github.com/mdlayher/socket - -go 1.17 - -require ( - github.com/google/go-cmp v0.5.6 - golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c - golang.org/x/sync v0.0.0-20210220032951-036812b2e83c - golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6 -) diff --git a/src/runtime/vendor/github.com/mdlayher/socket/go.sum b/src/runtime/vendor/github.com/mdlayher/socket/go.sum deleted file mode 100644 index 8a92791e8..000000000 --- a/src/runtime/vendor/github.com/mdlayher/socket/go.sum +++ /dev/null @@ -1,13 +0,0 @@ -github.com/google/go-cmp v0.5.6 h1:BKbKCqvP6I+rmFHt06ZmyQtvB8xAkWdhFyr0ZUNZcxQ= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c h1:uOCk1iQW6Vc18bnC13MfzScl+wdKBmM9Y9kU7Z83/lw= -golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/sync v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ= -golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6 h1:foEbQz/B0Oz6YIqu/69kfXPYeFQAuuMYFkjaqXzl5Wo= -golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/src/runtime/vendor/github.com/mdlayher/vsock/go.mod b/src/runtime/vendor/github.com/mdlayher/vsock/go.mod deleted file mode 100644 index 0beb9b692..000000000 --- a/src/runtime/vendor/github.com/mdlayher/vsock/go.mod +++ /dev/null @@ -1,10 +0,0 @@ -module github.com/mdlayher/vsock - -go 1.13 - -require ( - github.com/google/go-cmp v0.5.7 - github.com/mdlayher/socket v0.2.0 - golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c - golang.org/x/sys v0.0.0-20220204135822-1c1b9b1eba6a -) diff --git a/src/runtime/vendor/github.com/mdlayher/vsock/go.sum b/src/runtime/vendor/github.com/mdlayher/vsock/go.sum deleted file mode 100644 index 54e861d3c..000000000 --- a/src/runtime/vendor/github.com/mdlayher/vsock/go.sum +++ /dev/null @@ -1,17 +0,0 @@ -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.7 h1:81/ik6ipDQS2aGcBfIN5dHDB36BwrStyeAQquSYCV4o= -github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= -github.com/mdlayher/socket v0.2.0 h1:EY4YQd6hTAg2tcXF84p5DTHazShE50u5HeBzBaNgjkA= -github.com/mdlayher/socket v0.2.0/go.mod h1:QLlNPkFR88mRUNQIzRBMfXxwKal8H7u1h3bL1CV+f0E= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c h1:uOCk1iQW6Vc18bnC13MfzScl+wdKBmM9Y9kU7Z83/lw= -golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/sync v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ= -golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220204135822-1c1b9b1eba6a h1:ppl5mZgokTT8uPkmYOyEUmPTr3ypaKkg5eFOGrAmxxE= -golang.org/x/sys v0.0.0-20220204135822-1c1b9b1eba6a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/src/runtime/vendor/github.com/mitchellh/mapstructure/go.mod b/src/runtime/vendor/github.com/mitchellh/mapstructure/go.mod deleted file mode 100644 index a03ae9730..000000000 --- a/src/runtime/vendor/github.com/mitchellh/mapstructure/go.mod +++ /dev/null @@ -1,3 +0,0 @@ -module github.com/mitchellh/mapstructure - -go 1.14 diff --git a/src/runtime/vendor/github.com/moby/sys/mountinfo/go.mod b/src/runtime/vendor/github.com/moby/sys/mountinfo/go.mod deleted file mode 100644 index e1bcdfe79..000000000 --- a/src/runtime/vendor/github.com/moby/sys/mountinfo/go.mod +++ /dev/null @@ -1,5 +0,0 @@ -module github.com/moby/sys/mountinfo - -go 1.16 - -require golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a diff --git a/src/runtime/vendor/github.com/moby/sys/mountinfo/go.sum b/src/runtime/vendor/github.com/moby/sys/mountinfo/go.sum deleted file mode 100644 index af14a66ec..000000000 --- a/src/runtime/vendor/github.com/moby/sys/mountinfo/go.sum +++ /dev/null @@ -1,2 +0,0 @@ -golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a h1:dGzPydgVsqGcTRVwiLJ1jVbufYwmzD3LfVPLKsKg+0k= -golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= diff --git a/src/runtime/vendor/github.com/opencontainers/go-digest/go.mod b/src/runtime/vendor/github.com/opencontainers/go-digest/go.mod deleted file mode 100644 index cf5d7b1d2..000000000 --- a/src/runtime/vendor/github.com/opencontainers/go-digest/go.mod +++ /dev/null @@ -1,3 +0,0 @@ -module github.com/opencontainers/go-digest - -go 1.13 diff --git a/src/runtime/vendor/github.com/pbnjay/memory/go.mod b/src/runtime/vendor/github.com/pbnjay/memory/go.mod deleted file mode 100644 index 596576591..000000000 --- a/src/runtime/vendor/github.com/pbnjay/memory/go.mod +++ /dev/null @@ -1,3 +0,0 @@ -module github.com/pbnjay/memory - -go 1.16 diff --git a/src/runtime/vendor/github.com/prometheus/procfs/go.mod b/src/runtime/vendor/github.com/prometheus/procfs/go.mod deleted file mode 100644 index ba6681f52..000000000 --- a/src/runtime/vendor/github.com/prometheus/procfs/go.mod +++ /dev/null @@ -1,9 +0,0 @@ -module github.com/prometheus/procfs - -go 1.13 - -require ( - github.com/google/go-cmp v0.5.4 - golang.org/x/sync v0.0.0-20201207232520-09787c993a3a - golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c -) diff --git a/src/runtime/vendor/github.com/prometheus/procfs/go.sum b/src/runtime/vendor/github.com/prometheus/procfs/go.sum deleted file mode 100644 index 7ceaf56b7..000000000 --- a/src/runtime/vendor/github.com/prometheus/procfs/go.sum +++ /dev/null @@ -1,8 +0,0 @@ -github.com/google/go-cmp v0.5.4 h1:L8R9j+yAqZuZjsqh/z+F1NCffTKKLShY6zXTItVIZ8M= -github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -golang.org/x/sync v0.0.0-20201207232520-09787c993a3a h1:DcqTD9SDLc+1P/r1EmRBwnVsrOwW+kk2vWf9n+1sGhs= -golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c h1:VwygUrnw9jn88c4u8GD3rZQbqrP/tgas88tPUbBxQrk= -golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/src/runtime/vendor/github.com/russross/blackfriday/v2/go.mod b/src/runtime/vendor/github.com/russross/blackfriday/v2/go.mod deleted file mode 100644 index 620b74e0a..000000000 --- a/src/runtime/vendor/github.com/russross/blackfriday/v2/go.mod +++ /dev/null @@ -1 +0,0 @@ -module github.com/russross/blackfriday/v2 diff --git a/src/runtime/vendor/github.com/sirupsen/logrus/go.mod b/src/runtime/vendor/github.com/sirupsen/logrus/go.mod deleted file mode 100644 index 8b3f6d373..000000000 --- a/src/runtime/vendor/github.com/sirupsen/logrus/go.mod +++ /dev/null @@ -1,9 +0,0 @@ -module github.com/sirupsen/logrus - -require ( - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/stretchr/testify v1.7.0 - golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8 -) - -go 1.13 diff --git a/src/runtime/vendor/github.com/sirupsen/logrus/go.sum b/src/runtime/vendor/github.com/sirupsen/logrus/go.sum deleted file mode 100644 index e5fdc85bf..000000000 --- a/src/runtime/vendor/github.com/sirupsen/logrus/go.sum +++ /dev/null @@ -1,14 +0,0 @@ -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/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= -github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8 h1:0A+M6Uqn+Eje4kHMK80dtF3JCXC4ykBgQG4Fe06QRhQ= -golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/src/runtime/vendor/github.com/urfave/cli/go.mod b/src/runtime/vendor/github.com/urfave/cli/go.mod deleted file mode 100644 index 7d04d2016..000000000 --- a/src/runtime/vendor/github.com/urfave/cli/go.mod +++ /dev/null @@ -1,9 +0,0 @@ -module github.com/urfave/cli - -go 1.11 - -require ( - github.com/BurntSushi/toml v0.3.1 - github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d - gopkg.in/yaml.v2 v2.2.2 -) diff --git a/src/runtime/vendor/github.com/urfave/cli/go.sum b/src/runtime/vendor/github.com/urfave/cli/go.sum deleted file mode 100644 index ef121ff5d..000000000 --- a/src/runtime/vendor/github.com/urfave/cli/go.sum +++ /dev/null @@ -1,14 +0,0 @@ -github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d h1:U+s90UTSYgptZMwQh2aRr3LuazLJIa+Pg3Kc1ylSYVY= -github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/russross/blackfriday/v2 v2.0.1 h1:lPqVAte+HuHNfhJ/0LC98ESWRz8afy9tM/0RK8m9o+Q= -github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo= -github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/src/runtime/vendor/github.com/vishvananda/netlink/go.mod b/src/runtime/vendor/github.com/vishvananda/netlink/go.mod deleted file mode 100644 index 9d8455ee7..000000000 --- a/src/runtime/vendor/github.com/vishvananda/netlink/go.mod +++ /dev/null @@ -1,8 +0,0 @@ -module github.com/vishvananda/netlink - -go 1.12 - -require ( - github.com/vishvananda/netns v0.0.0-20200728191858-db3c7e526aae - golang.org/x/sys v0.0.0-20200728102440-3e129f6d46b1 -) diff --git a/src/runtime/vendor/github.com/vishvananda/netlink/go.sum b/src/runtime/vendor/github.com/vishvananda/netlink/go.sum deleted file mode 100644 index ed5d30891..000000000 --- a/src/runtime/vendor/github.com/vishvananda/netlink/go.sum +++ /dev/null @@ -1,6 +0,0 @@ -github.com/vishvananda/netns v0.0.0-20200728191858-db3c7e526aae h1:4hwBBUfQCFe3Cym0ZtKyq7L16eZUtYKs+BaHDN6mAns= -github.com/vishvananda/netns v0.0.0-20200728191858-db3c7e526aae/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0= -golang.org/x/sys v0.0.0-20200217220822-9197077df867 h1:JoRuNIf+rpHl+VhScRQQvzbHed86tKkqwPMV34T8myw= -golang.org/x/sys v0.0.0-20200217220822-9197077df867/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200728102440-3e129f6d46b1 h1:sIky/MyNRSHTrdxfsiUSS4WIAMvInbeXljJz+jDjeYE= -golang.org/x/sys v0.0.0-20200728102440-3e129f6d46b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= diff --git a/src/runtime/vendor/github.com/vishvananda/netns/go.mod b/src/runtime/vendor/github.com/vishvananda/netns/go.mod deleted file mode 100644 index 9cdf577ad..000000000 --- a/src/runtime/vendor/github.com/vishvananda/netns/go.mod +++ /dev/null @@ -1,5 +0,0 @@ -module github.com/vishvananda/netns - -go 1.12 - -require golang.org/x/sys v0.0.0-20200217220822-9197077df867 diff --git a/src/runtime/vendor/github.com/vishvananda/netns/go.sum b/src/runtime/vendor/github.com/vishvananda/netns/go.sum deleted file mode 100644 index 1d4adf451..000000000 --- a/src/runtime/vendor/github.com/vishvananda/netns/go.sum +++ /dev/null @@ -1,2 +0,0 @@ -golang.org/x/sys v0.0.0-20200217220822-9197077df867 h1:JoRuNIf+rpHl+VhScRQQvzbHed86tKkqwPMV34T8myw= -golang.org/x/sys v0.0.0-20200217220822-9197077df867/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= diff --git a/src/runtime/vendor/go.opencensus.io/go.mod b/src/runtime/vendor/go.opencensus.io/go.mod deleted file mode 100644 index 95b2522a7..000000000 --- a/src/runtime/vendor/go.opencensus.io/go.mod +++ /dev/null @@ -1,12 +0,0 @@ -module go.opencensus.io - -require ( - github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e - github.com/golang/protobuf v1.4.3 - github.com/google/go-cmp v0.5.3 - github.com/stretchr/testify v1.6.1 - golang.org/x/net v0.0.0-20201110031124-69a78807bb2b - google.golang.org/grpc v1.33.2 -) - -go 1.13 diff --git a/src/runtime/vendor/go.opencensus.io/go.sum b/src/runtime/vendor/go.opencensus.io/go.sum deleted file mode 100644 index c97cd1b55..000000000 --- a/src/runtime/vendor/go.opencensus.io/go.sum +++ /dev/null @@ -1,116 +0,0 @@ -cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -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/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= -github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e h1:1r7pUrabqp18hOBcwBwiTsbnFeTZHV9eER/QT5JVZxY= -github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/protobuf v1.2.0 h1:P3YflyNX/ehuJFLhxviNdFxQPkGK5cDcApsge1SqnvM= -github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= -github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= -github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= -github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= -github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= -github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= -github.com/golang/protobuf v1.4.3 h1:JjCZWpVbqXDqFVmTfYWEVTMIYrL/NPdPSCHPJ0T/raM= -github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= -github.com/google/go-cmp v0.3.0 h1:crn/baboCvb5fXaQ0IJ1SGTsTVrWpDsCWC8EGETZijY= -github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.3 h1:x95R7cp+rSeeqAMI2knLtQ0DKlaBhv2NrtrOvafPHRo= -github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0= -github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= -golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3 h1:XQyxROzUlZH+WIQwySDgnISgOivlhjIEwaQaJEJrrN0= -golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190311183353-d8887717615a h1:oWX7TPOiFAMXLq8o0ikBYfCJVlRHBcsciT5bXOrH628= -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-20201110031124-69a78807bb2b h1:uwuIcX0g4Yl1NC5XAz37xsr2lTtcqevgzYNVt49waME= -golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f h1:wMNYb4v58l5UBM7MYRLPG6ZhfOqbKu7X5eyFl8ZhKvA= -golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181108010431-42b317875d0f h1:Bl/8QSvNqXvPGPGXa2z5xUTmV7VDcZyvRZ+QQXkXTZQ= -golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a h1:1BGLXjeY4akVXGgbC9HugT3Jv3hCI0z56oJR5vAMgBU= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f h1:+Nyd8tzPX9R7BWHguqsrbFdRx3WQ/1ib8I44HXV5yTA= -golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k= -golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-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-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd h1:/e+gpKk9r3dJobndpTytxS2gOy6m5uvpg+ISQoEcusQ= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= -google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8 h1:Nw54tB0rB7hY/N0NQvRW8DG4Yk3Q6T9cu9RcFQDu1tc= -google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013 h1:+kGHl1aib/qcwaRi1CbqBZ1rk19r85MNUf8HaBghugY= -google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/grpc v1.19.0 h1:cfg4PD8YEdSFnm7qLV4++93WcmhH2nIUhMjhdCvl3j8= -google.golang.org/grpc v1.19.0 h1:cfg4PD8YEdSFnm7qLV4++93WcmhH2nIUhMjhdCvl3j8= -google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= -google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.33.2 h1:EQyQC3sa8M+p6Ulc8yy9SWSS2GVwyRc83gAbG8lrl4o= -google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= -google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= -google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= -google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= -google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= -google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= -google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.0 h1:4MY060fB1DLGMB/7MBTLnwQUY6+F09GEiz6SsrNqyzM= -google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.25.0 h1:Ejskq+SyPohKW+1uil0JJMtmHCgJPJ/qWTxr8qp+R4c= -google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/src/runtime/vendor/go.opentelemetry.io/otel/exporters/jaeger/go.mod b/src/runtime/vendor/go.opentelemetry.io/otel/exporters/jaeger/go.mod deleted file mode 100644 index 42d337d54..000000000 --- a/src/runtime/vendor/go.opentelemetry.io/otel/exporters/jaeger/go.mod +++ /dev/null @@ -1,75 +0,0 @@ -module go.opentelemetry.io/otel/exporters/jaeger - -go 1.15 - -require ( - github.com/google/go-cmp v0.5.6 - github.com/stretchr/testify v1.7.0 - go.opentelemetry.io/otel v1.0.0 - go.opentelemetry.io/otel/sdk v1.0.0 - go.opentelemetry.io/otel/trace v1.0.0 -) - -replace go.opentelemetry.io/otel/bridge/opencensus => ../../bridge/opencensus - -replace go.opentelemetry.io/otel/bridge/opentracing => ../../bridge/opentracing - -replace go.opentelemetry.io/otel/example/jaeger => ../../example/jaeger - -replace go.opentelemetry.io/otel/example/namedtracer => ../../example/namedtracer - -replace go.opentelemetry.io/otel/example/opencensus => ../../example/opencensus - -replace go.opentelemetry.io/otel/example/otel-collector => ../../example/otel-collector - -replace go.opentelemetry.io/otel/example/prom-collector => ../../example/prom-collector - -replace go.opentelemetry.io/otel/example/prometheus => ../../example/prometheus - -replace go.opentelemetry.io/otel/example/zipkin => ../../example/zipkin - -replace go.opentelemetry.io/otel/exporters/prometheus => ../prometheus - -replace go.opentelemetry.io/otel/exporters/otlp => ../otlp - -replace go.opentelemetry.io/otel/exporters/jaeger => ./ - -replace go.opentelemetry.io/otel/internal/tools => ../../internal/tools - -replace go.opentelemetry.io/otel/metric => ../../metric - -replace go.opentelemetry.io/otel/sdk/export/metric => ../../sdk/export/metric - -replace go.opentelemetry.io/otel/sdk/metric => ../../sdk/metric - -replace go.opentelemetry.io/otel/trace => ../../trace - -replace go.opentelemetry.io/otel/example/passthrough => ../../example/passthrough - -replace go.opentelemetry.io/otel/exporters/otlp/otlptrace => ../otlp/otlptrace - -replace go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc => ../otlp/otlptrace/otlptracegrpc - -replace go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp => ../otlp/otlptrace/otlptracehttp - -replace go.opentelemetry.io/otel/internal/metric => ../../internal/metric - -replace go.opentelemetry.io/otel => ../.. - -replace go.opentelemetry.io/otel/exporters/zipkin => ../zipkin - -replace go.opentelemetry.io/otel/sdk => ../../sdk - -replace go.opentelemetry.io/otel/exporters/otlp/otlpmetric => ../otlp/otlpmetric - -replace go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc => ../otlp/otlpmetric/otlpmetricgrpc - -replace go.opentelemetry.io/otel/exporters/stdout/stdoutmetric => ../stdout/stdoutmetric - -replace go.opentelemetry.io/otel/exporters/stdout/stdouttrace => ../stdout/stdouttrace - -replace go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp => ../otlp/otlpmetric/otlpmetrichttp - -replace go.opentelemetry.io/otel/bridge/opencensus/test => ../../bridge/opencensus/test - -replace go.opentelemetry.io/otel/example/fib => ../../example/fib diff --git a/src/runtime/vendor/go.opentelemetry.io/otel/exporters/jaeger/go.sum b/src/runtime/vendor/go.opentelemetry.io/otel/exporters/jaeger/go.sum deleted file mode 100644 index f0e2991c1..000000000 --- a/src/runtime/vendor/go.opentelemetry.io/otel/exporters/jaeger/go.sum +++ /dev/null @@ -1,18 +0,0 @@ -github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/google/go-cmp v0.5.6 h1:BKbKCqvP6I+rmFHt06ZmyQtvB8xAkWdhFyr0ZUNZcxQ= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/objx v0.1.0 h1:4G4v2dO3VZwixGIRoQ5Lfboy6nUhCyYzaqnIAPPhYs4= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= -github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7 h1:iGu644GcxtEcrInvDsQRCwJjtCIOlT2V7IRt6ah2Whw= -golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/src/runtime/vendor/go.opentelemetry.io/otel/go.mod b/src/runtime/vendor/go.opentelemetry.io/otel/go.mod deleted file mode 100644 index ee17695df..000000000 --- a/src/runtime/vendor/go.opentelemetry.io/otel/go.mod +++ /dev/null @@ -1,77 +0,0 @@ -module go.opentelemetry.io/otel - -go 1.16 - -require ( - github.com/go-logr/logr v1.2.1 - github.com/go-logr/stdr v1.2.0 - github.com/google/go-cmp v0.5.6 - github.com/stretchr/testify v1.7.0 - go.opentelemetry.io/otel/trace v1.3.0 -) - -replace go.opentelemetry.io/otel => ./ - -replace go.opentelemetry.io/otel/bridge/opencensus => ./bridge/opencensus - -replace go.opentelemetry.io/otel/bridge/opentracing => ./bridge/opentracing - -replace go.opentelemetry.io/otel/example/jaeger => ./example/jaeger - -replace go.opentelemetry.io/otel/example/namedtracer => ./example/namedtracer - -replace go.opentelemetry.io/otel/example/opencensus => ./example/opencensus - -replace go.opentelemetry.io/otel/example/otel-collector => ./example/otel-collector - -replace go.opentelemetry.io/otel/example/prom-collector => ./example/prom-collector - -replace go.opentelemetry.io/otel/example/prometheus => ./example/prometheus - -replace go.opentelemetry.io/otel/example/zipkin => ./example/zipkin - -replace go.opentelemetry.io/otel/exporters/prometheus => ./exporters/prometheus - -replace go.opentelemetry.io/otel/exporters/jaeger => ./exporters/jaeger - -replace go.opentelemetry.io/otel/exporters/zipkin => ./exporters/zipkin - -replace go.opentelemetry.io/otel/internal/tools => ./internal/tools - -replace go.opentelemetry.io/otel/sdk => ./sdk - -replace go.opentelemetry.io/otel/internal/metric => ./internal/metric - -replace go.opentelemetry.io/otel/metric => ./metric - -replace go.opentelemetry.io/otel/sdk/export/metric => ./sdk/export/metric - -replace go.opentelemetry.io/otel/sdk/metric => ./sdk/metric - -replace go.opentelemetry.io/otel/trace => ./trace - -replace go.opentelemetry.io/otel/example/passthrough => ./example/passthrough - -replace go.opentelemetry.io/otel/exporters/otlp/otlptrace => ./exporters/otlp/otlptrace - -replace go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc => ./exporters/otlp/otlptrace/otlptracegrpc - -replace go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp => ./exporters/otlp/otlptrace/otlptracehttp - -replace go.opentelemetry.io/otel/exporters/otlp/otlpmetric => ./exporters/otlp/otlpmetric - -replace go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc => ./exporters/otlp/otlpmetric/otlpmetricgrpc - -replace go.opentelemetry.io/otel/exporters/stdout/stdoutmetric => ./exporters/stdout/stdoutmetric - -replace go.opentelemetry.io/otel/exporters/stdout/stdouttrace => ./exporters/stdout/stdouttrace - -replace go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp => ./exporters/otlp/otlpmetric/otlpmetrichttp - -replace go.opentelemetry.io/otel/bridge/opencensus/test => ./bridge/opencensus/test - -replace go.opentelemetry.io/otel/example/fib => ./example/fib - -replace go.opentelemetry.io/otel/schema => ./schema - -replace go.opentelemetry.io/otel/exporters/otlp/internal/retry => ./exporters/otlp/internal/retry diff --git a/src/runtime/vendor/go.opentelemetry.io/otel/go.sum b/src/runtime/vendor/go.opentelemetry.io/otel/go.sum deleted file mode 100644 index eebdae0c2..000000000 --- a/src/runtime/vendor/go.opentelemetry.io/otel/go.sum +++ /dev/null @@ -1,20 +0,0 @@ -github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.2.1 h1:DX7uPQ4WgAWfoh+NGGlbJQswnYIVvz0SRlLS3rPZQDA= -github.com/go-logr/logr v1.2.1/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/stdr v1.2.0 h1:j4LrlVXgrbIWO83mmQUnK0Hi+YnbD+vzrE1z/EphbFE= -github.com/go-logr/stdr v1.2.0/go.mod h1:YkVgnZu1ZjjL7xTxrfm/LLZBfkhTqSR1ydtm6jTKKwI= -github.com/google/go-cmp v0.5.6 h1:BKbKCqvP6I+rmFHt06ZmyQtvB8xAkWdhFyr0ZUNZcxQ= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= -github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/src/runtime/vendor/go.opentelemetry.io/otel/trace/go.mod b/src/runtime/vendor/go.opentelemetry.io/otel/trace/go.mod deleted file mode 100644 index 32bc66158..000000000 --- a/src/runtime/vendor/go.opentelemetry.io/otel/trace/go.mod +++ /dev/null @@ -1,75 +0,0 @@ -module go.opentelemetry.io/otel/trace - -go 1.16 - -replace go.opentelemetry.io/otel => ../ - -replace go.opentelemetry.io/otel/bridge/opencensus => ../bridge/opencensus - -replace go.opentelemetry.io/otel/bridge/opentracing => ../bridge/opentracing - -replace go.opentelemetry.io/otel/example/jaeger => ../example/jaeger - -replace go.opentelemetry.io/otel/example/namedtracer => ../example/namedtracer - -replace go.opentelemetry.io/otel/example/opencensus => ../example/opencensus - -replace go.opentelemetry.io/otel/example/otel-collector => ../example/otel-collector - -replace go.opentelemetry.io/otel/example/prom-collector => ../example/prom-collector - -replace go.opentelemetry.io/otel/example/prometheus => ../example/prometheus - -replace go.opentelemetry.io/otel/example/zipkin => ../example/zipkin - -replace go.opentelemetry.io/otel/exporters/prometheus => ../exporters/prometheus - -replace go.opentelemetry.io/otel/exporters/jaeger => ../exporters/jaeger - -replace go.opentelemetry.io/otel/exporters/zipkin => ../exporters/zipkin - -replace go.opentelemetry.io/otel/internal/tools => ../internal/tools - -replace go.opentelemetry.io/otel/metric => ../metric - -replace go.opentelemetry.io/otel/sdk => ../sdk - -replace go.opentelemetry.io/otel/sdk/export/metric => ../sdk/export/metric - -replace go.opentelemetry.io/otel/sdk/metric => ../sdk/metric - -replace go.opentelemetry.io/otel/trace => ./ - -require ( - github.com/google/go-cmp v0.5.6 - github.com/stretchr/testify v1.7.0 - go.opentelemetry.io/otel v1.3.0 -) - -replace go.opentelemetry.io/otel/example/passthrough => ../example/passthrough - -replace go.opentelemetry.io/otel/exporters/otlp/otlptrace => ../exporters/otlp/otlptrace - -replace go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc => ../exporters/otlp/otlptrace/otlptracegrpc - -replace go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp => ../exporters/otlp/otlptrace/otlptracehttp - -replace go.opentelemetry.io/otel/internal/metric => ../internal/metric - -replace go.opentelemetry.io/otel/exporters/otlp/otlpmetric => ../exporters/otlp/otlpmetric - -replace go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc => ../exporters/otlp/otlpmetric/otlpmetricgrpc - -replace go.opentelemetry.io/otel/exporters/stdout/stdoutmetric => ../exporters/stdout/stdoutmetric - -replace go.opentelemetry.io/otel/exporters/stdout/stdouttrace => ../exporters/stdout/stdouttrace - -replace go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp => ../exporters/otlp/otlpmetric/otlpmetrichttp - -replace go.opentelemetry.io/otel/bridge/opencensus/test => ../bridge/opencensus/test - -replace go.opentelemetry.io/otel/example/fib => ../example/fib - -replace go.opentelemetry.io/otel/schema => ../schema - -replace go.opentelemetry.io/otel/exporters/otlp/internal/retry => ../exporters/otlp/internal/retry diff --git a/src/runtime/vendor/go.opentelemetry.io/otel/trace/go.sum b/src/runtime/vendor/go.opentelemetry.io/otel/trace/go.sum deleted file mode 100644 index 5615ed1b5..000000000 --- a/src/runtime/vendor/go.opentelemetry.io/otel/trace/go.sum +++ /dev/null @@ -1,18 +0,0 @@ -github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.2.1/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/stdr v1.2.0/go.mod h1:YkVgnZu1ZjjL7xTxrfm/LLZBfkhTqSR1ydtm6jTKKwI= -github.com/google/go-cmp v0.5.6 h1:BKbKCqvP6I+rmFHt06ZmyQtvB8xAkWdhFyr0ZUNZcxQ= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= -github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/src/runtime/vendor/golang.org/x/oauth2/go.mod b/src/runtime/vendor/golang.org/x/oauth2/go.mod deleted file mode 100644 index c95f33f98..000000000 --- a/src/runtime/vendor/golang.org/x/oauth2/go.mod +++ /dev/null @@ -1,9 +0,0 @@ -module golang.org/x/oauth2 - -go 1.15 - -require ( - cloud.google.com/go v0.65.0 - golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd - google.golang.org/appengine v1.6.6 -) diff --git a/src/runtime/vendor/golang.org/x/oauth2/go.sum b/src/runtime/vendor/golang.org/x/oauth2/go.sum deleted file mode 100644 index bdceef99e..000000000 --- a/src/runtime/vendor/golang.org/x/oauth2/go.sum +++ /dev/null @@ -1,366 +0,0 @@ -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.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= -cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= -cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= -cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= -cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= -cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= -cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= -cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= -cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= -cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= -cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= -cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= -cloud.google.com/go v0.65.0 h1:Dg9iHVQfrhq82rUNu9ZxUDrJLaxFUe/HlCVaLyRruq8= -cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= -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= -cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= -cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= -cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= -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/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= -cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= -cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= -cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= -cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= -cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= -cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= -dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -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/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/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= -github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -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/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -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= -github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= -github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= -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= -github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= -github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= -github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= -github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= -github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= -github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= -github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= -github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0= -github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -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/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= -github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.1 h1:JFrFEBb2xKufg6XkJsJr+WbKb4FQlURi5RUcBveYu9k= -github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -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/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -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/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/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= -github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= -github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -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= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -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-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= -golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= -golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= -golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -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/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= -golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= -golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= -golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= -golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= -golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= -golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/net v0.0.0-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-20190108225652-1e06a53dbb7e/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-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-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= -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-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= -golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -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-20220127200216-cd36cc0744dd h1:O7DYs+zxREGLKzKoMQrtrEacpb0ZVXA5rIwylE2Xchk= -golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-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= -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= -golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/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-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/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-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= -golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -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-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -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= -golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= -golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -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/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190425150028-36563e24a262/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-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-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-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -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-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-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-20200618134242-20370b0cb4b2/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/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 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -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= -google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= -google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= -google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= -google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= -google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= -google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= -google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.6 h1:lMO5rYAqUxkmaj76jAkRUvt5JZgFymx/+Q5Mzfivuhc= -google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -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-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-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= -google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -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-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= -google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/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-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/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.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= -google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -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= -google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= -google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= -google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= -google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= -google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= -google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= -google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= -google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= -google.golang.org/protobuf v1.25.0 h1:Ejskq+SyPohKW+1uil0JJMtmHCgJPJ/qWTxr8qp+R4c= -google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -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= -honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -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= -rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= -rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= -rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= diff --git a/src/runtime/vendor/google.golang.org/grpc/go.mod b/src/runtime/vendor/google.golang.org/grpc/go.mod deleted file mode 100644 index 6a760ed74..000000000 --- a/src/runtime/vendor/google.golang.org/grpc/go.mod +++ /dev/null @@ -1,19 +0,0 @@ -module google.golang.org/grpc - -go 1.14 - -require ( - github.com/cespare/xxhash/v2 v2.1.1 - github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4 - github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1 - github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1 - github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b - github.com/golang/protobuf v1.5.2 - github.com/google/go-cmp v0.5.6 - github.com/google/uuid v1.1.2 - golang.org/x/net v0.0.0-20201021035429-f5854403a974 - golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d - golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4 - google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013 - google.golang.org/protobuf v1.27.1 -) diff --git a/src/runtime/vendor/google.golang.org/grpc/go.sum b/src/runtime/vendor/google.golang.org/grpc/go.sum deleted file mode 100644 index 5f418dba1..000000000 --- a/src/runtime/vendor/google.golang.org/grpc/go.sum +++ /dev/null @@ -1,141 +0,0 @@ -cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.34.0 h1:eOI3/cP2VTU6uZLDYAoic+eyzzB9YyGmJ7eIjl8rOPg= -cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= -github.com/census-instrumentation/opencensus-proto v0.2.1 h1:glEXhBS5PSLLv4IXzLA5yPRVX4bilULVyxxbrfOtDAk= -github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY= -github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/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-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= -github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4 h1:hzAQntlaYRkVSFEfj9OTWlVV1H155FMD8BTKktLv0QI= -github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= -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 h1:zH8ljVhhq7yC0MIeUL/IviMtY8hx2mK8cN9wEYb8ggw= -github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= -github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= -github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1 h1:xvqufLtNVwAhN8NMyWklVgxnWohi+wtMGQMhtxexlm0= -github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE= -github.com/envoyproxy/protoc-gen-validate v0.1.0 h1:EQciDnbrYxy13PgWoY8AqoxGiPrpgBZ1R8UNe3ddc+A= -github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= -github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= -github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= -github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= -github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= -github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= -github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= -github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= -github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6 h1:BKbKCqvP6I+rmFHt06ZmyQtvB8xAkWdhFyr0ZUNZcxQ= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/uuid v1.1.2 h1:EVhdT+1Kseyi1/pUmXKaFxYsDNy9RQYkMWRH68J/W7Y= -github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= -github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= -github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= -golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/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-20190108225652-1e06a53dbb7e/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-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20201021035429-f5854403a974 h1:IX6qOQeG5uLjB/hjjwjedwfjND0hgjPMMyO1RoIXQNI= -golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d h1:TzXSXBo42m9gQenoE3b9BGiEpg5IG2JkU5FkPIawgtw= -golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -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= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4 h1:myAQVi0cGEoqQVR5POX+8RR2mrocKqNN1hmeMqhX27k= -golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k= -golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= -google.golang.org/appengine v1.4.0 h1:/wp5JvzpHIxhs/dumFmF7BXTf3Z+dd4uXta4kVyO508= -google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013 h1:+kGHl1aib/qcwaRi1CbqBZ1rk19r85MNUf8HaBghugY= -google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= -google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= -google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= -google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= -google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= -google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= -google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= -google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= -google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.27.1 h1:SnqbnDw1V7RiZcXPx5MEeqPv2s79L9i7BJUlG/+RurQ= -google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/src/runtime/vendor/gopkg.in/yaml.v2/go.mod b/src/runtime/vendor/gopkg.in/yaml.v2/go.mod deleted file mode 100644 index 2cbb85aea..000000000 --- a/src/runtime/vendor/gopkg.in/yaml.v2/go.mod +++ /dev/null @@ -1,5 +0,0 @@ -module gopkg.in/yaml.v2 - -go 1.15 - -require gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 diff --git a/src/runtime/vendor/gopkg.in/yaml.v3/go.mod b/src/runtime/vendor/gopkg.in/yaml.v3/go.mod deleted file mode 100644 index f407ea321..000000000 --- a/src/runtime/vendor/gopkg.in/yaml.v3/go.mod +++ /dev/null @@ -1,5 +0,0 @@ -module "gopkg.in/yaml.v3" - -require ( - "gopkg.in/check.v1" v0.0.0-20161208181325-20d25e280405 -) diff --git a/src/runtime/vendor/modules.txt b/src/runtime/vendor/modules.txt index 14f8b58d5..667aadbb4 100644 --- a/src/runtime/vendor/modules.txt +++ b/src/runtime/vendor/modules.txt @@ -1,16 +1,18 @@ # code.cloudfoundry.org/bytefmt v0.0.0-20211005130812-5bb3c17173e5 -## explicit +## explicit; go 1.16 code.cloudfoundry.org/bytefmt # github.com/BurntSushi/toml v1.2.0 -## explicit +## explicit; go 1.16 github.com/BurntSushi/toml github.com/BurntSushi/toml/internal # github.com/Microsoft/go-winio v0.5.2 +## explicit; go 1.13 github.com/Microsoft/go-winio github.com/Microsoft/go-winio/pkg/guid github.com/Microsoft/go-winio/pkg/security github.com/Microsoft/go-winio/vhd # github.com/Microsoft/hcsshim v0.9.3 +## explicit; go 1.13 github.com/Microsoft/hcsshim github.com/Microsoft/hcsshim/computestorage github.com/Microsoft/hcsshim/internal/cow @@ -34,22 +36,28 @@ github.com/Microsoft/hcsshim/internal/wclayer github.com/Microsoft/hcsshim/internal/winapi github.com/Microsoft/hcsshim/osversion # github.com/PuerkitoBio/purell v1.1.1 +## explicit github.com/PuerkitoBio/purell # github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 +## explicit github.com/PuerkitoBio/urlesc # github.com/asaskevich/govalidator v0.0.0-20200907205600-7a23bdc65eef +## explicit; go 1.13 github.com/asaskevich/govalidator # github.com/beorn7/perks v1.0.1 +## explicit; go 1.11 github.com/beorn7/perks/quantile # github.com/blang/semver v3.5.1+incompatible ## explicit github.com/blang/semver # github.com/blang/semver/v4 v4.0.0 -## explicit +## explicit; go 1.14 github.com/blang/semver/v4 # github.com/cespare/xxhash/v2 v2.1.2 +## explicit; go 1.11 github.com/cespare/xxhash/v2 # github.com/cilium/ebpf v0.7.0 +## explicit; go 1.16 github.com/cilium/ebpf github.com/cilium/ebpf/asm github.com/cilium/ebpf/internal @@ -57,16 +65,16 @@ github.com/cilium/ebpf/internal/btf github.com/cilium/ebpf/internal/unix github.com/cilium/ebpf/link # github.com/containerd/cgroups v1.0.5-0.20220625035431-cf7417bca682 -## explicit +## explicit; go 1.17 github.com/containerd/cgroups github.com/containerd/cgroups/stats/v1 github.com/containerd/cgroups/v2 github.com/containerd/cgroups/v2/stats # github.com/containerd/console v1.0.3 -## explicit +## explicit; go 1.13 github.com/containerd/console # github.com/containerd/containerd v1.6.6 -## explicit +## explicit; go 1.17 github.com/containerd/containerd/api/events github.com/containerd/containerd/api/services/ttrpc/events/v1 github.com/containerd/containerd/api/types @@ -100,17 +108,19 @@ github.com/containerd/containerd/version ## explicit github.com/containerd/cri-containerd/pkg/api/runtimeoptions/v1 # github.com/containerd/fifo v1.0.0 -## explicit +## explicit; go 1.13 github.com/containerd/fifo # github.com/containerd/go-runc v1.0.0 +## explicit; go 1.13 github.com/containerd/go-runc # github.com/containerd/ttrpc v1.1.0 -## explicit +## explicit; go 1.13 github.com/containerd/ttrpc # github.com/containerd/typeurl v1.0.2 -## explicit +## explicit; go 1.13 github.com/containerd/typeurl # github.com/containernetworking/cni v1.1.2 +## explicit; go 1.14 github.com/containernetworking/cni/pkg/skel github.com/containernetworking/cni/pkg/types github.com/containernetworking/cni/pkg/types/020 @@ -121,40 +131,47 @@ github.com/containernetworking/cni/pkg/types/internal github.com/containernetworking/cni/pkg/utils github.com/containernetworking/cni/pkg/version # github.com/containernetworking/plugins v1.1.1 -## explicit +## explicit; go 1.17 github.com/containernetworking/plugins/pkg/ns github.com/containernetworking/plugins/pkg/testutils # github.com/containers/podman/v4 v4.2.0 -## explicit +## explicit; go 1.16 github.com/containers/podman/v4/pkg/annotations # github.com/coreos/go-systemd/v22 v22.3.2 -## explicit +## explicit; go 1.12 github.com/coreos/go-systemd/v22/dbus # github.com/cpuguy83/go-md2man/v2 v2.0.2 +## explicit; go 1.11 github.com/cpuguy83/go-md2man/v2/md2man # github.com/cyphar/filepath-securejoin v0.2.3 +## explicit; go 1.13 github.com/cyphar/filepath-securejoin # github.com/davecgh/go-spew v1.1.1 +## explicit github.com/davecgh/go-spew/spew # github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c +## explicit github.com/docker/go-events # github.com/docker/go-units v0.4.0 ## explicit github.com/docker/go-units # github.com/frankban/quicktest v1.13.1 -## explicit +## explicit; go 1.13 # github.com/fsnotify/fsnotify v1.5.4 -## explicit +## explicit; go 1.16 github.com/fsnotify/fsnotify # github.com/go-ini/ini v1.28.2 ## explicit github.com/go-ini/ini # github.com/go-logr/logr v1.2.2 +## explicit; go 1.16 github.com/go-logr/logr github.com/go-logr/logr/funcr # github.com/go-logr/stdr v1.2.2 +## explicit; go 1.16 github.com/go-logr/stdr # github.com/go-openapi/analysis v0.21.2 +## explicit; go 1.13 github.com/go-openapi/analysis github.com/go-openapi/analysis/internal/debug github.com/go-openapi/analysis/internal/flatten/normalize @@ -163,16 +180,19 @@ github.com/go-openapi/analysis/internal/flatten/replace github.com/go-openapi/analysis/internal/flatten/schutils github.com/go-openapi/analysis/internal/flatten/sortref # github.com/go-openapi/errors v0.20.2 -## explicit +## explicit; go 1.14 github.com/go-openapi/errors # github.com/go-openapi/jsonpointer v0.19.5 +## explicit; go 1.13 github.com/go-openapi/jsonpointer # github.com/go-openapi/jsonreference v0.19.6 +## explicit; go 1.13 github.com/go-openapi/jsonreference # github.com/go-openapi/loads v0.21.1 +## explicit; go 1.13 github.com/go-openapi/loads # github.com/go-openapi/runtime v0.19.21 -## explicit +## explicit; go 1.13 github.com/go-openapi/runtime github.com/go-openapi/runtime/client github.com/go-openapi/runtime/logger @@ -182,23 +202,25 @@ github.com/go-openapi/runtime/middleware/header github.com/go-openapi/runtime/middleware/untyped github.com/go-openapi/runtime/security # github.com/go-openapi/spec v0.20.4 +## explicit; go 1.13 github.com/go-openapi/spec # github.com/go-openapi/strfmt v0.21.1 -## explicit +## explicit; go 1.13 github.com/go-openapi/strfmt # github.com/go-openapi/swag v0.21.1 -## explicit +## explicit; go 1.11 github.com/go-openapi/swag # github.com/go-openapi/validate v0.22.0 -## explicit +## explicit; go 1.14 github.com/go-openapi/validate # github.com/go-stack/stack v1.8.0 +## explicit github.com/go-stack/stack # github.com/godbus/dbus/v5 v5.1.0 -## explicit +## explicit; go 1.12 github.com/godbus/dbus/v5 # github.com/gogo/protobuf v1.3.2 -## explicit +## explicit; go 1.15 github.com/gogo/protobuf/gogoproto github.com/gogo/protobuf/jsonpb github.com/gogo/protobuf/proto @@ -206,8 +228,10 @@ github.com/gogo/protobuf/protoc-gen-gogo/descriptor github.com/gogo/protobuf/sortkeys github.com/gogo/protobuf/types # github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da +## explicit github.com/golang/groupcache/lru # github.com/golang/protobuf v1.5.2 +## explicit; go 1.9 github.com/golang/protobuf/jsonpb github.com/golang/protobuf/proto github.com/golang/protobuf/ptypes @@ -215,39 +239,49 @@ github.com/golang/protobuf/ptypes/any github.com/golang/protobuf/ptypes/duration github.com/golang/protobuf/ptypes/timestamp # github.com/hashicorp/errwrap v1.1.0 +## explicit github.com/hashicorp/errwrap # github.com/hashicorp/go-multierror v1.1.1 -## explicit +## explicit; go 1.13 github.com/hashicorp/go-multierror # github.com/intel-go/cpuid v0.0.0-20210602155658-5747e5cec0d9 ## explicit github.com/intel-go/cpuid # github.com/josharian/intern v1.0.0 +## explicit; go 1.5 github.com/josharian/intern # github.com/mailru/easyjson v0.7.6 +## explicit; go 1.12 github.com/mailru/easyjson/buffer github.com/mailru/easyjson/jlexer github.com/mailru/easyjson/jwriter # github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 +## explicit; go 1.9 github.com/matttproud/golang_protobuf_extensions/pbutil # github.com/mdlayher/socket v0.2.0 +## explicit; go 1.17 github.com/mdlayher/socket # github.com/mdlayher/vsock v1.1.0 -## explicit +## explicit; go 1.13 github.com/mdlayher/vsock # github.com/mitchellh/mapstructure v1.5.0 +## explicit; go 1.14 github.com/mitchellh/mapstructure # github.com/moby/sys/mountinfo v0.6.2 +## explicit; go 1.16 github.com/moby/sys/mountinfo # github.com/oklog/ulid v1.3.1 +## explicit github.com/oklog/ulid # github.com/opencontainers/go-digest v1.0.0 +## explicit; go 1.13 github.com/opencontainers/go-digest # github.com/opencontainers/image-spec v1.0.3-0.20220114050600-8b9d41f48198 => github.com/opencontainers/image-spec v1.0.2 +## explicit github.com/opencontainers/image-spec/specs-go github.com/opencontainers/image-spec/specs-go/v1 # github.com/opencontainers/runc v1.1.3 => github.com/opencontainers/runc v1.1.3 -## explicit +## explicit; go 1.16 github.com/opencontainers/runc/libcontainer/cgroups github.com/opencontainers/runc/libcontainer/cgroups/devices github.com/opencontainers/runc/libcontainer/cgroups/ebpf @@ -265,66 +299,69 @@ github.com/opencontainers/runc/libcontainer/utils ## explicit github.com/opencontainers/runtime-spec/specs-go # github.com/opencontainers/selinux v1.10.1 -## explicit +## explicit; go 1.13 github.com/opencontainers/selinux/go-selinux github.com/opencontainers/selinux/go-selinux/label github.com/opencontainers/selinux/pkg/pwalk github.com/opencontainers/selinux/pkg/pwalkdir # github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 -## explicit +## explicit; go 1.16 github.com/pbnjay/memory # github.com/pkg/errors v0.9.1 ## explicit github.com/pkg/errors # github.com/pmezard/go-difflib v1.0.0 +## explicit github.com/pmezard/go-difflib/difflib # github.com/prometheus/client_golang v1.12.1 -## explicit +## explicit; go 1.13 github.com/prometheus/client_golang/prometheus github.com/prometheus/client_golang/prometheus/internal # github.com/prometheus/client_model v0.2.0 -## explicit +## explicit; go 1.9 github.com/prometheus/client_model/go # github.com/prometheus/common v0.32.1 -## explicit +## explicit; go 1.13 github.com/prometheus/common/expfmt github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg github.com/prometheus/common/model # github.com/prometheus/procfs v0.7.3 -## explicit +## explicit; go 1.13 github.com/prometheus/procfs github.com/prometheus/procfs/internal/fs github.com/prometheus/procfs/internal/util # github.com/rogpeppe/go-internal v1.8.1-0.20210923151022-86f73c517451 -## explicit +## explicit; go 1.16 # github.com/russross/blackfriday/v2 v2.1.0 +## explicit github.com/russross/blackfriday/v2 # github.com/safchain/ethtool v0.0.0-20210803160452-9aa261dae9b1 ## explicit github.com/safchain/ethtool # github.com/sirupsen/logrus v1.9.0 -## explicit +## explicit; go 1.13 github.com/sirupsen/logrus github.com/sirupsen/logrus/hooks/syslog # github.com/stretchr/testify v1.8.0 -## explicit +## explicit; go 1.13 github.com/stretchr/testify/assert # github.com/urfave/cli v1.22.4 -## explicit +## explicit; go 1.11 github.com/urfave/cli # github.com/vishvananda/netlink v1.1.1-0.20220115184804-dd687eb2f2d4 -## explicit +## explicit; go 1.12 github.com/vishvananda/netlink github.com/vishvananda/netlink/nl # github.com/vishvananda/netns v0.0.0-20210104183010-2eb08e3e575f -## explicit +## explicit; go 1.12 github.com/vishvananda/netns # gitlab.com/nvidia/cloud-native/go-nvlib v0.0.0-20220601114329-47893b162965 -## explicit +## explicit; go 1.16 gitlab.com/nvidia/cloud-native/go-nvlib/pkg/nvpci gitlab.com/nvidia/cloud-native/go-nvlib/pkg/nvpci/bytes gitlab.com/nvidia/cloud-native/go-nvlib/pkg/nvpci/mmio # go.mongodb.org/mongo-driver v1.7.5 +## explicit; go 1.10 go.mongodb.org/mongo-driver/bson go.mongodb.org/mongo-driver/bson/bsoncodec go.mongodb.org/mongo-driver/bson/bsonoptions @@ -333,13 +370,14 @@ go.mongodb.org/mongo-driver/bson/bsontype go.mongodb.org/mongo-driver/bson/primitive go.mongodb.org/mongo-driver/x/bsonx/bsoncore # go.opencensus.io v0.23.0 +## explicit; go 1.13 go.opencensus.io go.opencensus.io/internal go.opencensus.io/trace go.opencensus.io/trace/internal go.opencensus.io/trace/tracestate # go.opentelemetry.io/otel v1.3.0 -## explicit +## explicit; go 1.16 go.opentelemetry.io/otel go.opentelemetry.io/otel/attribute go.opentelemetry.io/otel/baggage @@ -351,23 +389,23 @@ go.opentelemetry.io/otel/propagation go.opentelemetry.io/otel/semconv/v1.4.0 go.opentelemetry.io/otel/semconv/v1.7.0 # go.opentelemetry.io/otel/exporters/jaeger v1.0.0 -## explicit +## explicit; go 1.15 go.opentelemetry.io/otel/exporters/jaeger go.opentelemetry.io/otel/exporters/jaeger/internal/gen-go/agent go.opentelemetry.io/otel/exporters/jaeger/internal/gen-go/jaeger go.opentelemetry.io/otel/exporters/jaeger/internal/gen-go/zipkincore go.opentelemetry.io/otel/exporters/jaeger/internal/third_party/thrift/lib/go/thrift # go.opentelemetry.io/otel/sdk v1.3.0 -## explicit +## explicit; go 1.16 go.opentelemetry.io/otel/sdk/instrumentation go.opentelemetry.io/otel/sdk/internal go.opentelemetry.io/otel/sdk/resource go.opentelemetry.io/otel/sdk/trace # go.opentelemetry.io/otel/trace v1.3.0 -## explicit +## explicit; go 1.16 go.opentelemetry.io/otel/trace # golang.org/x/net v0.0.0-20220722155237-a158d28d115b -## explicit +## explicit; go 1.17 golang.org/x/net/bpf golang.org/x/net/context golang.org/x/net/context/ctxhttp @@ -378,25 +416,28 @@ golang.org/x/net/idna golang.org/x/net/internal/timeseries golang.org/x/net/trace # golang.org/x/oauth2 v0.0.0-20220622183110-fd043fe589d2 -## explicit +## explicit; go 1.15 golang.org/x/oauth2 golang.org/x/oauth2/internal # golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f +## explicit golang.org/x/sync/errgroup # golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f -## explicit +## explicit; go 1.17 golang.org/x/sys/execabs golang.org/x/sys/internal/unsafeheader golang.org/x/sys/unix golang.org/x/sys/windows golang.org/x/sys/windows/registry # golang.org/x/text v0.3.7 +## explicit; go 1.17 golang.org/x/text/secure/bidirule golang.org/x/text/transform golang.org/x/text/unicode/bidi golang.org/x/text/unicode/norm golang.org/x/text/width # google.golang.org/appengine v1.6.7 +## explicit; go 1.11 google.golang.org/appengine/internal google.golang.org/appengine/internal/base google.golang.org/appengine/internal/datastore @@ -405,9 +446,10 @@ google.golang.org/appengine/internal/remote_api google.golang.org/appengine/internal/urlfetch google.golang.org/appengine/urlfetch # google.golang.org/genproto v0.0.0-20220624142145-8cd45d7dbd1f => google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8 +## explicit google.golang.org/genproto/googleapis/rpc/status # google.golang.org/grpc v1.47.0 -## explicit +## explicit; go 1.14 google.golang.org/grpc google.golang.org/grpc/attributes google.golang.org/grpc/backoff @@ -457,6 +499,7 @@ google.golang.org/grpc/stats google.golang.org/grpc/status google.golang.org/grpc/tap # google.golang.org/protobuf v1.28.1 +## explicit; go 1.11 google.golang.org/protobuf/encoding/protojson google.golang.org/protobuf/encoding/prototext google.golang.org/protobuf/encoding/protowire @@ -490,16 +533,19 @@ google.golang.org/protobuf/types/known/anypb google.golang.org/protobuf/types/known/durationpb google.golang.org/protobuf/types/known/timestamppb # gopkg.in/inf.v0 v0.9.1 +## explicit gopkg.in/inf.v0 # gopkg.in/yaml.v2 v2.4.0 +## explicit; go 1.15 gopkg.in/yaml.v2 # gopkg.in/yaml.v3 v3.0.1 +## explicit gopkg.in/yaml.v3 # k8s.io/apimachinery v0.22.5 -## explicit +## explicit; go 1.16 k8s.io/apimachinery/pkg/api/resource # k8s.io/cri-api v0.23.1 -## explicit +## explicit; go 1.16 k8s.io/cri-api/pkg/apis/runtime/v1alpha2 # github.com/opencontainers/image-spec => github.com/opencontainers/image-spec v1.0.2 # github.com/opencontainers/runc => github.com/opencontainers/runc v1.1.3 diff --git a/src/tools/log-parser/go.mod b/src/tools/log-parser/go.mod index 65b94e626..2faaf4a2e 100644 --- a/src/tools/log-parser/go.mod +++ b/src/tools/log-parser/go.mod @@ -1,6 +1,6 @@ module github.com/kata-containers/kata-containers/src/tools/log-parser -go 1.16 +go 1.19 require ( github.com/BurntSushi/toml v1.1.0 @@ -10,3 +10,13 @@ require ( github.com/urfave/cli v1.22.7 gopkg.in/yaml.v2 v2.4.0 ) + +require ( + github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d // indirect + github.com/davecgh/go-spew v1.1.1 // indirect + github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/russross/blackfriday/v2 v2.0.1 // indirect + github.com/shurcooL/sanitized_anchor_name v1.0.0 // indirect + golang.org/x/sys v0.0.0-20191026070338-33540a1f6037 // indirect + gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c // indirect +) diff --git a/src/tools/log-parser/vendor/github.com/BurntSushi/toml/go.mod b/src/tools/log-parser/vendor/github.com/BurntSushi/toml/go.mod deleted file mode 100644 index 82989481d..000000000 --- a/src/tools/log-parser/vendor/github.com/BurntSushi/toml/go.mod +++ /dev/null @@ -1,3 +0,0 @@ -module github.com/BurntSushi/toml - -go 1.16 diff --git a/src/tools/log-parser/vendor/github.com/go-logfmt/logfmt/go.mod b/src/tools/log-parser/vendor/github.com/go-logfmt/logfmt/go.mod deleted file mode 100644 index c6fe10b9b..000000000 --- a/src/tools/log-parser/vendor/github.com/go-logfmt/logfmt/go.mod +++ /dev/null @@ -1,3 +0,0 @@ -module github.com/go-logfmt/logfmt - -go 1.17 diff --git a/src/tools/log-parser/vendor/github.com/russross/blackfriday/v2/go.mod b/src/tools/log-parser/vendor/github.com/russross/blackfriday/v2/go.mod deleted file mode 100644 index 620b74e0a..000000000 --- a/src/tools/log-parser/vendor/github.com/russross/blackfriday/v2/go.mod +++ /dev/null @@ -1 +0,0 @@ -module github.com/russross/blackfriday/v2 diff --git a/src/tools/log-parser/vendor/github.com/shurcooL/sanitized_anchor_name/go.mod b/src/tools/log-parser/vendor/github.com/shurcooL/sanitized_anchor_name/go.mod deleted file mode 100644 index 1e2553475..000000000 --- a/src/tools/log-parser/vendor/github.com/shurcooL/sanitized_anchor_name/go.mod +++ /dev/null @@ -1 +0,0 @@ -module github.com/shurcooL/sanitized_anchor_name diff --git a/src/tools/log-parser/vendor/github.com/sirupsen/logrus/go.mod b/src/tools/log-parser/vendor/github.com/sirupsen/logrus/go.mod deleted file mode 100644 index b3919d5ea..000000000 --- a/src/tools/log-parser/vendor/github.com/sirupsen/logrus/go.mod +++ /dev/null @@ -1,10 +0,0 @@ -module github.com/sirupsen/logrus - -require ( - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/stretchr/testify v1.2.2 - golang.org/x/sys v0.0.0-20191026070338-33540a1f6037 -) - -go 1.13 diff --git a/src/tools/log-parser/vendor/github.com/sirupsen/logrus/go.sum b/src/tools/log-parser/vendor/github.com/sirupsen/logrus/go.sum deleted file mode 100644 index 694c18b84..000000000 --- a/src/tools/log-parser/vendor/github.com/sirupsen/logrus/go.sum +++ /dev/null @@ -1,8 +0,0 @@ -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/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w= -github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -golang.org/x/sys v0.0.0-20191026070338-33540a1f6037 h1:YyJpGZS1sBuBCzLAR1VEpK193GlqGZbnPFnPV/5Rsb4= -golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= diff --git a/src/tools/log-parser/vendor/github.com/urfave/cli/go.mod b/src/tools/log-parser/vendor/github.com/urfave/cli/go.mod deleted file mode 100644 index 7d04d2016..000000000 --- a/src/tools/log-parser/vendor/github.com/urfave/cli/go.mod +++ /dev/null @@ -1,9 +0,0 @@ -module github.com/urfave/cli - -go 1.11 - -require ( - github.com/BurntSushi/toml v0.3.1 - github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d - gopkg.in/yaml.v2 v2.2.2 -) diff --git a/src/tools/log-parser/vendor/github.com/urfave/cli/go.sum b/src/tools/log-parser/vendor/github.com/urfave/cli/go.sum deleted file mode 100644 index ef121ff5d..000000000 --- a/src/tools/log-parser/vendor/github.com/urfave/cli/go.sum +++ /dev/null @@ -1,14 +0,0 @@ -github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d h1:U+s90UTSYgptZMwQh2aRr3LuazLJIa+Pg3Kc1ylSYVY= -github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/russross/blackfriday/v2 v2.0.1 h1:lPqVAte+HuHNfhJ/0LC98ESWRz8afy9tM/0RK8m9o+Q= -github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo= -github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/src/tools/log-parser/vendor/gopkg.in/yaml.v2/go.mod b/src/tools/log-parser/vendor/gopkg.in/yaml.v2/go.mod deleted file mode 100644 index 2cbb85aea..000000000 --- a/src/tools/log-parser/vendor/gopkg.in/yaml.v2/go.mod +++ /dev/null @@ -1,5 +0,0 @@ -module gopkg.in/yaml.v2 - -go 1.15 - -require gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 diff --git a/src/tools/log-parser/vendor/gopkg.in/yaml.v3/go.mod b/src/tools/log-parser/vendor/gopkg.in/yaml.v3/go.mod deleted file mode 100644 index f407ea321..000000000 --- a/src/tools/log-parser/vendor/gopkg.in/yaml.v3/go.mod +++ /dev/null @@ -1,5 +0,0 @@ -module "gopkg.in/yaml.v3" - -require ( - "gopkg.in/check.v1" v0.0.0-20161208181325-20d25e280405 -) diff --git a/src/tools/log-parser/vendor/modules.txt b/src/tools/log-parser/vendor/modules.txt index d549545f3..df0f6bb03 100644 --- a/src/tools/log-parser/vendor/modules.txt +++ b/src/tools/log-parser/vendor/modules.txt @@ -1,34 +1,41 @@ # github.com/BurntSushi/toml v1.1.0 -## explicit +## explicit; go 1.16 github.com/BurntSushi/toml github.com/BurntSushi/toml/internal # github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d +## explicit; go 1.12 github.com/cpuguy83/go-md2man/v2/md2man # github.com/davecgh/go-spew v1.1.1 +## explicit github.com/davecgh/go-spew/spew # github.com/go-logfmt/logfmt v0.5.1 -## explicit +## explicit; go 1.17 github.com/go-logfmt/logfmt # github.com/pmezard/go-difflib v1.0.0 +## explicit github.com/pmezard/go-difflib/difflib # github.com/russross/blackfriday/v2 v2.0.1 +## explicit github.com/russross/blackfriday/v2 # github.com/shurcooL/sanitized_anchor_name v1.0.0 +## explicit github.com/shurcooL/sanitized_anchor_name # github.com/sirupsen/logrus v1.8.1 -## explicit +## explicit; go 1.13 github.com/sirupsen/logrus # github.com/stretchr/testify v1.7.1 -## explicit +## explicit; go 1.13 github.com/stretchr/testify/assert # github.com/urfave/cli v1.22.7 -## explicit +## explicit; go 1.11 github.com/urfave/cli # golang.org/x/sys v0.0.0-20191026070338-33540a1f6037 +## explicit; go 1.12 golang.org/x/sys/unix golang.org/x/sys/windows # gopkg.in/yaml.v2 v2.4.0 -## explicit +## explicit; go 1.15 gopkg.in/yaml.v2 # gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c +## explicit gopkg.in/yaml.v3 diff --git a/versions.yaml b/versions.yaml index cf9c82300..2349e940d 100644 --- a/versions.yaml +++ b/versions.yaml @@ -301,15 +301,12 @@ languages: golang: description: "Google's 'go' language" notes: "'version' is the default minimum version used by this project." - issue: "https://github.com/golang/go/issues/20676" - uscan-url: >- - https://github.com/golang/go/tags .*/go?([\d\.]+)\.tar\.gz - version: "1.16.10" + version: "1.19.2" meta: description: | 'newest-version' is the latest version known to work when building Kata - newest-version: "1.17.3" + newest-version: "1.19.2" rust: description: "Rust language" From b3a4a162949a8da26ba34833f59a7dcb56f384e8 Mon Sep 17 00:00:00 2001 From: Peng Tao Date: Wed, 26 Oct 2022 18:08:09 +0800 Subject: [PATCH 30/37] versions: bump containerd version v1.5.2 cannot be built from source by newer golang. Let's bump containerd version to 1.6.8. The GO runtime dependency has been moved to v1.6.6 for some time already. Signed-off-by: Peng Tao --- versions.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/versions.yaml b/versions.yaml index 2349e940d..137385b85 100644 --- a/versions.yaml +++ b/versions.yaml @@ -209,7 +209,7 @@ externals: # containerd from v1.5.0 used the path unix socket # instead of abstract socket, thus kata wouldn's support the containerd's # version older than them. - version: "v1.5.2" + version: "v1.6.8" critools: description: "CLI tool for Container Runtime Interface (CRI)" From 66aa330d0df2a9a0dab52de5f193a1a057a168e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabiano=20Fid=C3=AAncio?= Date: Wed, 16 Nov 2022 17:10:23 +0100 Subject: [PATCH 31/37] versions: Update golangci-lint MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Let's bump the golangci-lint in order to fix issues that popped up after updating Golang to its 1.19.2 version. Depends-on: github.com/kata-containers/tests#5257 Signed-off-by: Fabiano FidĂȘncio --- versions.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/versions.yaml b/versions.yaml index 137385b85..ba6c91a15 100644 --- a/versions.yaml +++ b/versions.yaml @@ -321,12 +321,12 @@ languages: golangci-lint: description: "golangci-lint" notes: "'version' is the default minimum version used by this project." - version: "1.46.2" + version: "1.50.1" meta: description: | 'newest-version' is the latest version known to work when building Kata - newest-version: "1.46.2" + newest-version: "1.50.1" specs: description: "Details of important specifications" From 16b8375095f27de81a159702aa0bd534f586c002 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabiano=20Fid=C3=AAncio?= Date: Thu, 17 Nov 2022 13:11:05 +0100 Subject: [PATCH 32/37] golang: Stop using io/ioutils MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The package has been deprecated as part of 1.16 and the same functionality is now provided by either the io or the os package. Signed-off-by: Fabiano FidĂȘncio --- src/runtime/cmd/kata-runtime/kata-iptables.go | 4 ++-- src/runtime/pkg/containerd-shim-v2/shim_management.go | 5 ++--- src/runtime/pkg/direct-volume/utils.go | 9 ++++----- src/runtime/pkg/govmm/qemu/image.go | 5 ++--- src/runtime/pkg/govmm/qemu/qemu_test.go | 5 ++--- src/runtime/pkg/katautils/config.go | 3 +-- .../pkg/utils/shimclient/shim_management_client.go | 5 ++--- src/runtime/virtcontainers/clh.go | 6 +++--- src/runtime/virtcontainers/clh_test.go | 7 +++---- src/runtime/virtcontainers/kata_agent_test.go | 3 +-- src/runtime/virtcontainers/nydusd.go | 5 ++--- src/tools/log-parser/hexbytes.go | 3 +-- src/tools/log-parser/hexbytes_test.go | 6 +++--- src/tools/log-parser/main_test.go | 6 +++--- src/tools/log-parser/parse_test.go | 5 ++--- src/tools/log-parser/utils_test.go | 5 ++--- 16 files changed, 35 insertions(+), 47 deletions(-) diff --git a/src/runtime/cmd/kata-runtime/kata-iptables.go b/src/runtime/cmd/kata-runtime/kata-iptables.go index 8e2bd93c6..a9953bfad 100644 --- a/src/runtime/cmd/kata-runtime/kata-iptables.go +++ b/src/runtime/cmd/kata-runtime/kata-iptables.go @@ -7,7 +7,7 @@ package main import ( "fmt" - "io/ioutil" + "os" containerdshim "github.com/kata-containers/kata-containers/src/runtime/pkg/containerd-shim-v2" "github.com/kata-containers/kata-containers/src/runtime/pkg/katautils" @@ -103,7 +103,7 @@ var setIPTablesCommand = cli.Command{ } // Read file into buffer, and make request to the appropriate shim - buf, err := ioutil.ReadFile(iptablesFile) + buf, err := os.ReadFile(iptablesFile) if err != nil { return err } diff --git a/src/runtime/pkg/containerd-shim-v2/shim_management.go b/src/runtime/pkg/containerd-shim-v2/shim_management.go index a6b9bdba3..cfb300460 100644 --- a/src/runtime/pkg/containerd-shim-v2/shim_management.go +++ b/src/runtime/pkg/containerd-shim-v2/shim_management.go @@ -11,7 +11,6 @@ import ( "expvar" "fmt" "io" - "io/ioutil" "net/http" "net/http/pprof" "net/url" @@ -173,7 +172,7 @@ func (s *service) serveVolumeStats(w http.ResponseWriter, r *http.Request) { } func (s *service) serveVolumeResize(w http.ResponseWriter, r *http.Request) { - body, err := ioutil.ReadAll(r.Body) + body, err := io.ReadAll(r.Body) if err != nil { shimMgtLog.WithError(err).Error("failed to read request body") w.WriteHeader(http.StatusInternalServerError) @@ -212,7 +211,7 @@ func (s *service) genericIPTablesHandler(w http.ResponseWriter, r *http.Request, switch r.Method { case http.MethodPut: - body, err := ioutil.ReadAll(r.Body) + body, err := io.ReadAll(r.Body) if err != nil { logger.WithError(err).Error("failed to read request body") w.WriteHeader(http.StatusInternalServerError) diff --git a/src/runtime/pkg/direct-volume/utils.go b/src/runtime/pkg/direct-volume/utils.go index 8520ddd35..9e13a4d22 100644 --- a/src/runtime/pkg/direct-volume/utils.go +++ b/src/runtime/pkg/direct-volume/utils.go @@ -10,7 +10,6 @@ import ( "encoding/json" "errors" "fmt" - "io/ioutil" "os" "path/filepath" ) @@ -75,7 +74,7 @@ func Add(volumePath string, mountInfo string) error { return err } - return ioutil.WriteFile(filepath.Join(volumeDir, mountInfoFileName), []byte(mountInfo), 0600) + return os.WriteFile(filepath.Join(volumeDir, mountInfoFileName), []byte(mountInfo), 0600) } // Remove deletes the direct volume path including all the files inside it. @@ -89,7 +88,7 @@ func VolumeMountInfo(volumePath string) (*MountInfo, error) { if _, err := os.Stat(mountInfoFilePath); err != nil { return nil, err } - buf, err := ioutil.ReadFile(mountInfoFilePath) + buf, err := os.ReadFile(mountInfoFilePath) if err != nil { return nil, err } @@ -108,11 +107,11 @@ func RecordSandboxId(sandboxId string, volumePath string) error { return err } - return ioutil.WriteFile(filepath.Join(kataDirectVolumeRootPath, encodedPath, sandboxId), []byte(""), 0600) + return os.WriteFile(filepath.Join(kataDirectVolumeRootPath, encodedPath, sandboxId), []byte(""), 0600) } func GetSandboxIdForVolume(volumePath string) (string, error) { - files, err := ioutil.ReadDir(filepath.Join(kataDirectVolumeRootPath, b64.URLEncoding.EncodeToString([]byte(volumePath)))) + files, err := os.ReadDir(filepath.Join(kataDirectVolumeRootPath, b64.URLEncoding.EncodeToString([]byte(volumePath)))) if err != nil { return "", err } diff --git a/src/runtime/pkg/govmm/qemu/image.go b/src/runtime/pkg/govmm/qemu/image.go index b17efdd16..405ea5a00 100644 --- a/src/runtime/pkg/govmm/qemu/image.go +++ b/src/runtime/pkg/govmm/qemu/image.go @@ -8,7 +8,6 @@ package qemu import ( "context" "fmt" - "io/ioutil" "os" "os/exec" "path" @@ -44,12 +43,12 @@ func CreateCloudInitISO(ctx context.Context, scratchDir, isoPath string, dataDirPath, err) } - err = ioutil.WriteFile(metaDataPath, metaData, 0644) + err = os.WriteFile(metaDataPath, metaData, 0644) if err != nil { return fmt.Errorf("unable to create %s : %v", metaDataPath, err) } - err = ioutil.WriteFile(userDataPath, userData, 0644) + err = os.WriteFile(userDataPath, userData, 0644) if err != nil { return fmt.Errorf("unable to create %s : %v", userDataPath, err) } diff --git a/src/runtime/pkg/govmm/qemu/qemu_test.go b/src/runtime/pkg/govmm/qemu/qemu_test.go index ae4030fb7..501c07fdf 100644 --- a/src/runtime/pkg/govmm/qemu/qemu_test.go +++ b/src/runtime/pkg/govmm/qemu/qemu_test.go @@ -7,7 +7,6 @@ package qemu import ( "fmt" - "io/ioutil" "os" "reflect" "strings" @@ -186,8 +185,8 @@ func TestAppendDeviceNetwork(t *testing.T) { } func TestAppendDeviceNetworkMq(t *testing.T) { - foo, _ := ioutil.TempFile(os.TempDir(), "govmm-qemu-test") - bar, _ := ioutil.TempFile(os.TempDir(), "govmm-qemu-test") + foo, _ := os.CreateTemp(os.TempDir(), "govmm-qemu-test") + bar, _ := os.CreateTemp(os.TempDir(), "govmm-qemu-test") defer func() { _ = foo.Close() diff --git a/src/runtime/pkg/katautils/config.go b/src/runtime/pkg/katautils/config.go index d334c6171..b67c0c2dd 100644 --- a/src/runtime/pkg/katautils/config.go +++ b/src/runtime/pkg/katautils/config.go @@ -10,7 +10,6 @@ package katautils import ( "errors" "fmt" - "io/ioutil" "os" "path/filepath" "reflect" @@ -1410,7 +1409,7 @@ func decodeDropIns(mainConfigPath string, tomlConf *tomlConfig) error { configDir := filepath.Dir(mainConfigPath) dropInDir := filepath.Join(configDir, "config.d") - files, err := ioutil.ReadDir(dropInDir) + files, err := os.ReadDir(dropInDir) if err != nil { if !os.IsNotExist(err) { return fmt.Errorf("error reading %q directory: %s", dropInDir, err) diff --git a/src/runtime/pkg/utils/shimclient/shim_management_client.go b/src/runtime/pkg/utils/shimclient/shim_management_client.go index 3f9e68650..1b9635c17 100644 --- a/src/runtime/pkg/utils/shimclient/shim_management_client.go +++ b/src/runtime/pkg/utils/shimclient/shim_management_client.go @@ -9,7 +9,6 @@ import ( "bytes" "fmt" "io" - "io/ioutil" "net" "net/http" "time" @@ -91,7 +90,7 @@ func DoPut(sandboxID string, timeoutInSeconds time.Duration, urlPath, contentTyp }() if resp.StatusCode != http.StatusOK { - data, _ := ioutil.ReadAll(resp.Body) + data, _ := io.ReadAll(resp.Body) return fmt.Errorf("error sending put: url: %s, status code: %d, response data: %s", urlPath, resp.StatusCode, string(data)) } @@ -117,7 +116,7 @@ func DoPost(sandboxID string, timeoutInSeconds time.Duration, urlPath, contentTy }() if resp.StatusCode != http.StatusOK { - data, _ := ioutil.ReadAll(resp.Body) + data, _ := io.ReadAll(resp.Body) return fmt.Errorf("error sending post: url: %s, status code: %d, response data: %s", urlPath, resp.StatusCode, string(data)) } diff --git a/src/runtime/virtcontainers/clh.go b/src/runtime/virtcontainers/clh.go index 090e07475..698923725 100644 --- a/src/runtime/virtcontainers/clh.go +++ b/src/runtime/virtcontainers/clh.go @@ -14,7 +14,7 @@ import ( "context" "encoding/json" "fmt" - "io/ioutil" + "io" "net" "net/http" "net/http/httputil" @@ -213,13 +213,13 @@ var vmAddNetPutRequest = func(clh *cloudHypervisor) error { return err } - respBody, err := ioutil.ReadAll(resp.Body) + respBody, err := io.ReadAll(resp.Body) if err != nil { return err } resp.Body.Close() - resp.Body = ioutil.NopCloser(bytes.NewBuffer(respBody)) + resp.Body = io.NopCloser(bytes.NewBuffer(respBody)) if resp.StatusCode != 204 { clh.Logger().Errorf("vmAddNetPut failed with error '%d'. Response: %+v", resp.StatusCode, resp) diff --git a/src/runtime/virtcontainers/clh_test.go b/src/runtime/virtcontainers/clh_test.go index d36ace88f..e8f02101e 100644 --- a/src/runtime/virtcontainers/clh_test.go +++ b/src/runtime/virtcontainers/clh_test.go @@ -10,7 +10,6 @@ package virtcontainers import ( "context" - "io/ioutil" "net/http" "os" "path/filepath" @@ -134,7 +133,7 @@ func TestCloudHypervisorAddNetCheckNetConfigListValues(t *testing.T) { macTest := "00:00:00:00:00" - file, err := ioutil.TempFile("", "netFd") + file, err := os.CreateTemp("", "netFd") assert.Nil(err) defer os.Remove(file.Name()) @@ -172,7 +171,7 @@ func TestCloudHypervisorAddNetCheckEnpointTypes(t *testing.T) { macTest := "00:00:00:00:00" - file, err := ioutil.TempFile("", "netFd") + file, err := os.CreateTemp("", "netFd") assert.Nil(err) defer os.Remove(file.Name()) @@ -214,7 +213,7 @@ func TestCloudHypervisorAddNetCheckEnpointTypes(t *testing.T) { func TestCloudHypervisorNetRateLimiter(t *testing.T) { assert := assert.New(t) - file, err := ioutil.TempFile("", "netFd") + file, err := os.CreateTemp("", "netFd") assert.Nil(err) defer os.Remove(file.Name()) diff --git a/src/runtime/virtcontainers/kata_agent_test.go b/src/runtime/virtcontainers/kata_agent_test.go index 27a6837e9..ba2e4e947 100644 --- a/src/runtime/virtcontainers/kata_agent_test.go +++ b/src/runtime/virtcontainers/kata_agent_test.go @@ -9,7 +9,6 @@ import ( "bufio" "context" "fmt" - "io/ioutil" "os" "path" "path/filepath" @@ -1168,7 +1167,7 @@ func TestHandleHugepages(t *testing.T) { // are present (default is 1M, can only be changed on LPAR). See // https://www.ibm.com/docs/en/linuxonibm/pdf/lku5dd05.pdf, p. 345 for more information. if runtime.GOARCH == "s390x" { - dirs, err := ioutil.ReadDir(sysHugepagesDir) + dirs, err := os.ReadDir(sysHugepagesDir) assert.Nil(err) for _, dir := range dirs { formattedSizes = append(formattedSizes, strings.TrimPrefix(dir.Name(), "hugepages-")) diff --git a/src/runtime/virtcontainers/nydusd.go b/src/runtime/virtcontainers/nydusd.go index 38d9738d3..177e3044d 100644 --- a/src/runtime/virtcontainers/nydusd.go +++ b/src/runtime/virtcontainers/nydusd.go @@ -13,7 +13,6 @@ import ( "encoding/json" "fmt" "io" - "io/ioutil" "net" "net/http" "os" @@ -398,7 +397,7 @@ func (c *NydusClient) CheckStatus() (DaemonInfo, error) { return DaemonInfo{}, err } defer resp.Body.Close() - b, err := ioutil.ReadAll(resp.Body) + b, err := io.ReadAll(resp.Body) if err != nil { return DaemonInfo{}, err } @@ -470,7 +469,7 @@ func (c *NydusClient) Umount(mountPoint string) error { } func handleMountError(r io.Reader) error { - b, err := ioutil.ReadAll(r) + b, err := io.ReadAll(r) if err != nil { return err } diff --git a/src/tools/log-parser/hexbytes.go b/src/tools/log-parser/hexbytes.go index b919d92bb..f075b37a0 100644 --- a/src/tools/log-parser/hexbytes.go +++ b/src/tools/log-parser/hexbytes.go @@ -9,7 +9,6 @@ package main import ( "errors" "io" - "io/ioutil" "os" "strings" ) @@ -56,7 +55,7 @@ func (r *HexByteReader) Read(p []byte) (n int, err error) { } // read the entire file - bytes, err := ioutil.ReadAll(r.f) + bytes, err := io.ReadAll(r.f) if err != nil { return 0, err } diff --git a/src/tools/log-parser/hexbytes_test.go b/src/tools/log-parser/hexbytes_test.go index f8c07350c..53b5d2e51 100644 --- a/src/tools/log-parser/hexbytes_test.go +++ b/src/tools/log-parser/hexbytes_test.go @@ -7,7 +7,7 @@ package main import ( - "io/ioutil" + "io" "os" "path/filepath" "testing" @@ -36,7 +36,7 @@ func TestNewHexByteReaderStdin(t *testing.T) { func TestHexByteReaderRead(t *testing.T) { assert := assert.New(t) - dir, err := ioutil.TempDir("", "") + dir, err := os.MkdirTemp("", "") if err != nil { t.Fatal(err) } @@ -68,7 +68,7 @@ func TestHexByteReaderRead(t *testing.T) { assert.NoError(err) reader := NewHexByteReader(file) - bytes, err := ioutil.ReadAll(reader) + bytes, err := io.ReadAll(reader) if d.expectError { assert.Errorf(err, "test[%d]: %+v", i, d) diff --git a/src/tools/log-parser/main_test.go b/src/tools/log-parser/main_test.go index 669a2bc4c..2fd032cb7 100644 --- a/src/tools/log-parser/main_test.go +++ b/src/tools/log-parser/main_test.go @@ -6,12 +6,12 @@ package main -import "io/ioutil" +import "os" func createEmptyFile(path string) (err error) { - return ioutil.WriteFile(path, []byte(""), testFileMode) + return os.WriteFile(path, []byte(""), testFileMode) } func createFile(file, contents string) error { - return ioutil.WriteFile(file, []byte(contents), testFileMode) + return os.WriteFile(file, []byte(contents), testFileMode) } diff --git a/src/tools/log-parser/parse_test.go b/src/tools/log-parser/parse_test.go index 57e36780d..ef82510e2 100644 --- a/src/tools/log-parser/parse_test.go +++ b/src/tools/log-parser/parse_test.go @@ -9,7 +9,6 @@ package main import ( "fmt" "io" - "io/ioutil" "os" "path/filepath" "regexp" @@ -52,7 +51,7 @@ func (r *TestReaderData) Read(p []byte) (n int, err error) { func TestParseLogFile(t *testing.T) { assert := assert.New(t) - dir, err := ioutil.TempDir("", "") + dir, err := os.MkdirTemp("", "") if err != nil { t.Fatal(err) } @@ -201,7 +200,7 @@ func TestParseLogFiles(t *testing.T) { }, } - dir, err := ioutil.TempDir("", "") + dir, err := os.MkdirTemp("", "") if err != nil { t.Fatal(err) } diff --git a/src/tools/log-parser/utils_test.go b/src/tools/log-parser/utils_test.go index 58be2db9b..8f0cf58af 100644 --- a/src/tools/log-parser/utils_test.go +++ b/src/tools/log-parser/utils_test.go @@ -7,7 +7,6 @@ package main import ( - "io/ioutil" "os" "path" "path/filepath" @@ -32,7 +31,7 @@ func TestUtilsResolvePathEmptyPath(t *testing.T) { func TestUtilsResolvePathValidPath(t *testing.T) { assert := assert.New(t) - dir, err := ioutil.TempDir("", "") + dir, err := os.MkdirTemp("", "") if err != nil { t.Fatal(err) } @@ -70,7 +69,7 @@ func TestUtilsResolvePathValidPath(t *testing.T) { func TestUtilsResolvePathENOENT(t *testing.T) { assert := assert.New(t) - dir, err := ioutil.TempDir("", "") + dir, err := os.MkdirTemp("", "") if err != nil { t.Fatal(err) } From d94718fb301f7e226dd9ed60003a57d3ca1d125e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabiano=20Fid=C3=AAncio?= Date: Thu, 17 Nov 2022 13:52:54 +0100 Subject: [PATCH 33/37] runtime: Fix gofmt issues MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It seems that bumping the version of golang and golangci-lint new format changes are required. Signed-off-by: Fabiano FidĂȘncio --- src/runtime/cmd/kata-runtime/kata-check.go | 5 +-- .../cmd/kata-runtime/kata-check_amd64.go | 2 +- src/runtime/pkg/govmm/vmm_arm64.go | 10 +++--- src/runtime/pkg/katatestutils/constraints.go | 9 ++--- .../pkg/katatestutils/constraints_api.go | 12 +++---- src/runtime/pkg/katautils/config.go | 4 +-- src/runtime/pkg/types/types_test.go | 1 - src/runtime/virtcontainers/clh.go | 6 ++-- src/runtime/virtcontainers/fc.go | 8 ++--- src/runtime/virtcontainers/fc_metrics.go | 36 +++++++++---------- src/runtime/virtcontainers/fs_share_linux.go | 2 +- .../virtcontainers/hypervisor_ppc64le.go | 2 +- src/runtime/virtcontainers/network.go | 4 +-- src/runtime/virtcontainers/network_linux.go | 23 ++++++------ .../pkg/agent/protocols/grpc/agent.pb.go | 4 +-- .../pkg/agent/protocols/grpc/oci.pb.go | 4 +-- src/runtime/virtcontainers/utils/utils.go | 10 +++--- .../virtcontainers/utils/utils_linux.go | 5 ++- .../virtcontainers/vhostuser_endpoint.go | 3 +- src/tools/log-parser/check.go | 6 ++-- src/tools/log-parser/logentry.go | 7 ++-- 21 files changed, 81 insertions(+), 82 deletions(-) diff --git a/src/runtime/cmd/kata-runtime/kata-check.go b/src/runtime/cmd/kata-runtime/kata-check.go index 6637c389c..73fe61075 100644 --- a/src/runtime/cmd/kata-runtime/kata-check.go +++ b/src/runtime/cmd/kata-runtime/kata-check.go @@ -202,7 +202,8 @@ func checkCPUAttribs(cpuinfo string, attribs map[string]string) uint32 { // onVMM - `true` if the host is running under a VMM environment // fields - A set of fields showing the expected and actual module parameter values. // msg - The message that would be logged showing the incorrect kernel module -// parameter. +// +// parameter. // // The function must return `true` if the kernel module parameter error should // be ignored, or `false` if it is a real error. @@ -274,7 +275,7 @@ func checkKernelModules(modules map[string]kernelModule, handler kernelParamHand // genericHostIsVMContainerCapable checks to see if the host is theoretically capable // of creating a VM container. -//nolint: unused,deadcode +// nolint: unused,deadcode func genericHostIsVMContainerCapable(details vmContainerCapableDetails) error { cpuinfo, err := getCPUInfo(details.cpuInfoFile) if err != nil { diff --git a/src/runtime/cmd/kata-runtime/kata-check_amd64.go b/src/runtime/cmd/kata-runtime/kata-check_amd64.go index 32ea643c0..0192fbbeb 100644 --- a/src/runtime/cmd/kata-runtime/kata-check_amd64.go +++ b/src/runtime/cmd/kata-runtime/kata-check_amd64.go @@ -52,7 +52,7 @@ const acrnDevice = "/dev/acrn_hsm" // Due to this several macros are not defined in Linux headers. // Until the support is available, directly use the value instead // of macros. -//https://github.com/kata-containers/runtime/issues/1784 +// https://github.com/kata-containers/runtime/issues/1784 const ioctl_ACRN_CREATE_VM = 0xC030A210 //nolint const ioctl_ACRN_PAUSE_VM = 0xA213 //nolint const ioctl_ACRN_DESTROY_VM = 0xA211 //nolint diff --git a/src/runtime/pkg/govmm/vmm_arm64.go b/src/runtime/pkg/govmm/vmm_arm64.go index a01cd683f..216851d54 100644 --- a/src/runtime/pkg/govmm/vmm_arm64.go +++ b/src/runtime/pkg/govmm/vmm_arm64.go @@ -6,11 +6,11 @@ package govmm -//In qemu, maximum number of vCPUs depends on the GIC version, or on how -//many redistributors we can fit into the memory map. -//related codes are under github.com/qemu/qemu/hw/arm/virt.c(Line 135 and 1306 in stable-2.11) -//for now, qemu only supports v2 and v3, we treat v4 as v3 based on -//backward compatibility. +// In qemu, maximum number of vCPUs depends on the GIC version, or on how +// many redistributors we can fit into the memory map. +// related codes are under github.com/qemu/qemu/hw/arm/virt.c(Line 135 and 1306 in stable-2.11) +// for now, qemu only supports v2 and v3, we treat v4 as v3 based on +// backward compatibility. var gicList = map[uint32]uint32{ uint32(2): uint32(8), uint32(3): uint32(123), diff --git a/src/runtime/pkg/katatestutils/constraints.go b/src/runtime/pkg/katatestutils/constraints.go index 48b3e5d3b..93bb67064 100644 --- a/src/runtime/pkg/katatestutils/constraints.go +++ b/src/runtime/pkg/katatestutils/constraints.go @@ -87,15 +87,16 @@ func getKernelVersion() (string, error) { // Examples of actual kernel versions which can be made into valid semver // format by calling this function: // -// centos: 3.10.0-957.12.1.el7.x86_64 -// fedora: 5.0.9-200.fc29.x86_64 +// centos: 3.10.0-957.12.1.el7.x86_64 +// fedora: 5.0.9-200.fc29.x86_64 // // For some self compiled kernel, the kernel version will be with "+" as its suffix // For example: -// 5.12.0-rc4+ +// +// 5.12.0-rc4+ +// // These kernel version can't be parsed by the current lib and lead to panic // therefore the '+' should be removed. -// func fixKernelVersion(version string) string { version = strings.Replace(version, "_", "-", -1) return strings.Replace(version, "+", "", -1) diff --git a/src/runtime/pkg/katatestutils/constraints_api.go b/src/runtime/pkg/katatestutils/constraints_api.go index ce27ee424..4a8e5ab19 100644 --- a/src/runtime/pkg/katatestutils/constraints_api.go +++ b/src/runtime/pkg/katatestutils/constraints_api.go @@ -84,12 +84,12 @@ func NewTestConstraint(debug bool) TestConstraint { // // Notes: // -// - Constraints are applied in the order specified. -// - A constraint type (user, kernel) can only be specified once. -// - If the function fails to determine whether it can check the constraints, -// it will panic. Since this is facility is used for testing, this seems like -// the best approach as it unburdens the caller from checking for an error -// (which should never be ignored). +// - Constraints are applied in the order specified. +// - A constraint type (user, kernel) can only be specified once. +// - If the function fails to determine whether it can check the constraints, +// it will panic. Since this is facility is used for testing, this seems like +// the best approach as it unburdens the caller from checking for an error +// (which should never be ignored). func (tc *TestConstraint) NotValid(constraints ...Constraint) bool { if len(constraints) == 0 { panic("need atleast one constraint") diff --git a/src/runtime/pkg/katautils/config.go b/src/runtime/pkg/katautils/config.go index b67c0c2dd..87f17d564 100644 --- a/src/runtime/pkg/katautils/config.go +++ b/src/runtime/pkg/katautils/config.go @@ -37,11 +37,11 @@ const ( // tables). The names of these tables are in dotted ("nested table") // form: // -// [.] +// [.] // // The components are hypervisor, and agent. For example, // -// [agent.kata] +// [agent.kata] // // The currently supported types are listed below: const ( diff --git a/src/runtime/pkg/types/types_test.go b/src/runtime/pkg/types/types_test.go index 6da2c9bce..5b8b489e6 100644 --- a/src/runtime/pkg/types/types_test.go +++ b/src/runtime/pkg/types/types_test.go @@ -1,7 +1,6 @@ // Copyright (c) 2020 Ant Group // // SPDX-License-Identifier: Apache-2.0 -// package types import ( diff --git a/src/runtime/virtcontainers/clh.go b/src/runtime/virtcontainers/clh.go index 698923725..14086ed94 100644 --- a/src/runtime/virtcontainers/clh.go +++ b/src/runtime/virtcontainers/clh.go @@ -230,9 +230,7 @@ var vmAddNetPutRequest = func(clh *cloudHypervisor) error { return nil } -// // Cloud hypervisor state -// type CloudHypervisorState struct { apiSocket string PID int @@ -1394,9 +1392,9 @@ func kernelParamsToString(params []Param) string { return strings.TrimSpace(paramBuilder.String()) } -//**************************************** +// **************************************** // API calls -//**************************************** +// **************************************** func (clh *cloudHypervisor) isClhRunning(timeout uint) (bool, error) { pid := clh.state.PID diff --git a/src/runtime/virtcontainers/fc.go b/src/runtime/virtcontainers/fc.go index f81cc319c..dc86f6b40 100644 --- a/src/runtime/virtcontainers/fc.go +++ b/src/runtime/virtcontainers/fc.go @@ -175,10 +175,10 @@ func (fc *firecracker) Logger() *logrus.Entry { return virtLog.WithField("subsystem", "firecracker") } -//At some cases, when sandbox id is too long, it will incur error of overlong -//firecracker API unix socket(fc.socketPath). -//In Linux, sun_path could maximumly contains 108 bytes in size. -//(http://man7.org/linux/man-pages/man7/unix.7.html) +// At some cases, when sandbox id is too long, it will incur error of overlong +// firecracker API unix socket(fc.socketPath). +// In Linux, sun_path could maximumly contains 108 bytes in size. +// (http://man7.org/linux/man-pages/man7/unix.7.html) func (fc *firecracker) truncateID(id string) string { if len(id) > 32 { //truncate the id to only leave the size of UUID(128bit). diff --git a/src/runtime/virtcontainers/fc_metrics.go b/src/runtime/virtcontainers/fc_metrics.go index 0462542fd..32cbd5c1d 100644 --- a/src/runtime/virtcontainers/fc_metrics.go +++ b/src/runtime/virtcontainers/fc_metrics.go @@ -355,7 +355,7 @@ func updateFirecrackerMetrics(fm *FirecrackerMetrics) { } -// Structure storing all metrics while enforcing serialization support on them. +// Structure storing all metrics while enforcing serialization support on them. type FirecrackerMetrics struct { // API Server related metrics. APIServer APIServerMetrics `json:"api_server"` @@ -393,7 +393,7 @@ type FirecrackerMetrics struct { Vsock VsockDeviceMetrics `json:"vsock"` } -// API Server related metrics. +// API Server related metrics. type APIServerMetrics struct { // Measures the process's startup time in microseconds. ProcessStartupTimeUs uint64 `json:"process_startup_time_us"` @@ -405,7 +405,7 @@ type APIServerMetrics struct { SyncVmmSendTimeoutCount uint64 `json:"sync_vmm_send_timeout_count"` } -// A block device's related metrics. +// A block device's related metrics. type BlockDeviceMetrics struct { // Number of times when activate failed on a block device. ActivateFails uint64 `json:"activate_fails"` @@ -441,7 +441,7 @@ type BlockDeviceMetrics struct { RateLimiterThrottledEvents uint64 `json:"rate_limiter_throttled_events"` } -// Metrics related to API GET requests. +// Metrics related to API GET requests. type GetRequestsMetrics struct { // Number of GETs for getting information on the instance. InstanceInfoCount uint64 `json:"instance_info_count"` @@ -453,7 +453,7 @@ type GetRequestsMetrics struct { MachineCfgFails uint64 `json:"machine_cfg_fails"` } -// Metrics related to the i8042 device. +// Metrics related to the i8042 device. type I8042DeviceMetrics struct { // Errors triggered while using the i8042 device. ErrorCount uint64 `json:"error_count"` @@ -469,7 +469,7 @@ type I8042DeviceMetrics struct { WriteCount uint64 `json:"write_count"` } -// Metrics related to performance measurements. +// Metrics related to performance measurements. type PerformanceMetrics struct { // Measures the snapshot full create time, at the API (user) level, in microseconds. FullCreateSnapshot uint64 `json:"full_create_snapshot"` @@ -493,7 +493,7 @@ type PerformanceMetrics struct { VmmResumeVM uint64 `json:"vmm_resume_vm"` } -// Logging related metrics. +// Logging related metrics. type LoggerSystemMetrics struct { // Number of misses on flushing metrics. MissedMetricsCount uint64 `json:"missed_metrics_count"` @@ -505,7 +505,7 @@ type LoggerSystemMetrics struct { LogFails uint64 `json:"log_fails"` } -// Metrics specific to MMDS functionality. +// Metrics specific to MMDS functionality. type MmdsMetrics struct { // Number of frames rerouted to MMDS. RxAccepted uint64 `json:"rx_accepted"` @@ -531,7 +531,7 @@ type MmdsMetrics struct { ConnectionsDestroyed uint64 `json:"connections_destroyed"` } -// A network device's related metrics. +// A network device's related metrics. type NetDeviceMetrics struct { // Number of times when activate failed on a network device. ActivateFails uint64 `json:"activate_fails"` @@ -588,7 +588,7 @@ type NetDeviceMetrics struct { TxSpoofedMacCount uint64 `json:"tx_spoofed_mac_count"` } -// Metrics related to API PATCH requests. +// Metrics related to API PATCH requests. type PatchRequestsMetrics struct { // Number of tries to PATCH a block device. DriveCount uint64 `json:"drive_count"` @@ -604,7 +604,7 @@ type PatchRequestsMetrics struct { MachineCfgFails uint64 `json:"machine_cfg_fails"` } -// Metrics related to API PUT requests. +// Metrics related to API PUT requests. type PutRequestsMetrics struct { // Number of PUTs triggering an action on the VM. ActionsCount uint64 `json:"actions_count"` @@ -636,7 +636,7 @@ type PutRequestsMetrics struct { NetworkFails uint64 `json:"network_fails"` } -// Metrics related to the RTC device. +// Metrics related to the RTC device. type RTCDeviceMetrics struct { // Errors triggered while using the RTC device. ErrorCount uint64 `json:"error_count"` @@ -646,13 +646,13 @@ type RTCDeviceMetrics struct { MissedWriteCount uint64 `json:"missed_write_count"` } -// Metrics related to seccomp filtering. +// Metrics related to seccomp filtering. type SeccompMetrics struct { // Number of errors inside the seccomp filtering. NumFaults uint64 `json:"num_faults"` } -// Metrics related to a vcpu's functioning. +// Metrics related to a vcpu's functioning. type VcpuMetrics struct { // Number of KVM exits for handling input IO. ExitIoIn uint64 `json:"exit_io_in"` @@ -668,7 +668,7 @@ type VcpuMetrics struct { FilterCPUid uint64 `json:"filter_cpuid"` } -// Metrics related to the virtual machine manager. +// Metrics related to the virtual machine manager. type VmmMetrics struct { // Number of device related events received for a VM. DeviceEvents uint64 `json:"device_events"` @@ -676,7 +676,7 @@ type VmmMetrics struct { PanicCount uint64 `json:"panic_count"` } -// Metrics related to the UART device. +// Metrics related to the UART device. type SerialDeviceMetrics struct { // Errors triggered while using the UART device. ErrorCount uint64 `json:"error_count"` @@ -692,7 +692,7 @@ type SerialDeviceMetrics struct { WriteCount uint64 `json:"write_count"` } -// Metrics related to signals. +// Metrics related to signals. type SignalMetrics struct { // Number of times that SIGBUS was handled. Sigbus uint64 `json:"sigbus"` @@ -700,7 +700,7 @@ type SignalMetrics struct { Sigsegv uint64 `json:"sigsegv"` } -// Metrics related to virtio-vsockets. +// Metrics related to virtio-vsockets. type VsockDeviceMetrics struct { // Number of times when activate failed on a vsock device. ActivateFails uint64 `json:"activate_fails"` diff --git a/src/runtime/virtcontainers/fs_share_linux.go b/src/runtime/virtcontainers/fs_share_linux.go index cc5e8aa1d..d4d68a42f 100644 --- a/src/runtime/virtcontainers/fs_share_linux.go +++ b/src/runtime/virtcontainers/fs_share_linux.go @@ -369,7 +369,7 @@ func (f *FilesystemShare) shareRootFilesystemWithNydus(ctx context.Context, c *C }, nil } -//func (c *Container) shareRootfs(ctx context.Context) (*grpc.Storage, string, error) { +// func (c *Container) shareRootfs(ctx context.Context) (*grpc.Storage, string, error) { func (f *FilesystemShare) ShareRootFilesystem(ctx context.Context, c *Container) (*SharedFile, error) { if c.rootFs.Type == NydusRootFSType { return f.shareRootFilesystemWithNydus(ctx, c) diff --git a/src/runtime/virtcontainers/hypervisor_ppc64le.go b/src/runtime/virtcontainers/hypervisor_ppc64le.go index 60a8a168b..38d51369a 100644 --- a/src/runtime/virtcontainers/hypervisor_ppc64le.go +++ b/src/runtime/virtcontainers/hypervisor_ppc64le.go @@ -6,7 +6,7 @@ package virtcontainers import "os" -//Returns pefProtection if the firmware directory exists +// Returns pefProtection if the firmware directory exists func availableGuestProtection() (guestProtection, error) { if d, err := os.Stat(pefSysFirmwareDir); err == nil && d.IsDir() { diff --git a/src/runtime/virtcontainers/network.go b/src/runtime/virtcontainers/network.go index 2b4fa4177..cf2c031de 100644 --- a/src/runtime/virtcontainers/network.go +++ b/src/runtime/virtcontainers/network.go @@ -142,7 +142,7 @@ const ( noneNetModelStr = "none" ) -//GetModel returns the string value of a NetInterworkingModel +// GetModel returns the string value of a NetInterworkingModel func (n *NetInterworkingModel) GetModel() string { switch *n { case DefaultNetInterworkingModel: @@ -157,7 +157,7 @@ func (n *NetInterworkingModel) GetModel() string { return "unknown" } -//SetModel change the model string value +// SetModel change the model string value func (n *NetInterworkingModel) SetModel(modelName string) error { switch modelName { case defaultNetModelStr: diff --git a/src/runtime/virtcontainers/network_linux.go b/src/runtime/virtcontainers/network_linux.go index 667cdaf04..3d9f7b7d2 100644 --- a/src/runtime/virtcontainers/network_linux.go +++ b/src/runtime/virtcontainers/network_linux.go @@ -1136,17 +1136,18 @@ func addRxRateLimiter(endpoint Endpoint, maxRate uint64) error { // from their parents once they have exceeded rate. A child class will continue to attempt to borrow until // it reaches ceil. See more details in https://tldp.org/HOWTO/Traffic-Control-HOWTO/classful-qdiscs.html. // -// * +-----+ +---------+ +-----------+ +-----------+ -// * | | | qdisc | | class 1:1 | | class 1:2 | -// * | NIC | | htb | | rate | | rate | -// * | | --> | def 1:2 | --> | ceil | -+-> | ceil | -// * +-----+ +---------+ +-----------+ | +-----------+ -// * | -// * | +-----------+ -// * | | class 1:n | -// * | | rate | -// * +-> | ceil | -// * | +-----------+ +// - +-----+ +---------+ +-----------+ +-----------+ +// - | | | qdisc | | class 1:1 | | class 1:2 | +// - | NIC | | htb | | rate | | rate | +// - | | --> | def 1:2 | --> | ceil | -+-> | ceil | +// - +-----+ +---------+ +-----------+ | +-----------+ +// - | +// - | +-----------+ +// - | | class 1:n | +// - | | rate | +// - +-> | ceil | +// - | +-----------+ +// // Seeing from pic, after the routing decision, all packets will be sent to the interface root htb qdisc. // This root qdisc has only one direct child class (with id 1:1) which shapes the overall maximum rate // that will be sent through interface. Then, this class has at least one default child (1:2) meant to control all diff --git a/src/runtime/virtcontainers/pkg/agent/protocols/grpc/agent.pb.go b/src/runtime/virtcontainers/pkg/agent/protocols/grpc/agent.pb.go index 64b19aa3b..747eca792 100644 --- a/src/runtime/virtcontainers/pkg/agent/protocols/grpc/agent.pb.go +++ b/src/runtime/virtcontainers/pkg/agent/protocols/grpc/agent.pb.go @@ -7664,7 +7664,7 @@ func (this *MemoryStats) String() string { return "nil" } keysForStats := make([]string, 0, len(this.Stats)) - for k, _ := range this.Stats { + for k := range this.Stats { keysForStats = append(keysForStats, k) } github_com_gogo_protobuf_sortkeys.Strings(keysForStats) @@ -7775,7 +7775,7 @@ func (this *CgroupStats) String() string { return "nil" } keysForHugetlbStats := make([]string, 0, len(this.HugetlbStats)) - for k, _ := range this.HugetlbStats { + for k := range this.HugetlbStats { keysForHugetlbStats = append(keysForHugetlbStats, k) } github_com_gogo_protobuf_sortkeys.Strings(keysForHugetlbStats) diff --git a/src/runtime/virtcontainers/pkg/agent/protocols/grpc/oci.pb.go b/src/runtime/virtcontainers/pkg/agent/protocols/grpc/oci.pb.go index 7e71aadea..f06524697 100644 --- a/src/runtime/virtcontainers/pkg/agent/protocols/grpc/oci.pb.go +++ b/src/runtime/virtcontainers/pkg/agent/protocols/grpc/oci.pb.go @@ -6797,7 +6797,7 @@ func (this *Spec) String() string { } repeatedStringForMounts += "}" keysForAnnotations := make([]string, 0, len(this.Annotations)) - for k, _ := range this.Annotations { + for k := range this.Annotations { keysForAnnotations = append(keysForAnnotations, k) } github_com_gogo_protobuf_sortkeys.Strings(keysForAnnotations) @@ -6996,7 +6996,7 @@ func (this *Linux) String() string { } repeatedStringForDevices += "}" keysForSysctl := make([]string, 0, len(this.Sysctl)) - for k, _ := range this.Sysctl { + for k := range this.Sysctl { keysForSysctl = append(keysForSysctl, k) } github_com_gogo_protobuf_sortkeys.Strings(keysForSysctl) diff --git a/src/runtime/virtcontainers/utils/utils.go b/src/runtime/virtcontainers/utils/utils.go index 5a6bb7150..86f1ad874 100644 --- a/src/runtime/virtcontainers/utils/utils.go +++ b/src/runtime/virtcontainers/utils/utils.go @@ -310,11 +310,11 @@ func ConvertAddressFamily(family int32) pbTypes.IPFamily { // // Notes: // -// - If the initial signal is zero, the specified process is assumed to be -// attempting to stop itself. -// - If the initial signal is not zero, it will be sent to the process before -// checking if it is running. -// - If the process has not ended after the timeout value, it will be forcibly killed. +// - If the initial signal is zero, the specified process is assumed to be +// attempting to stop itself. +// - If the initial signal is not zero, it will be sent to the process before +// checking if it is running. +// - If the process has not ended after the timeout value, it will be forcibly killed. func WaitLocalProcess(pid int, timeoutSecs uint, initialSignal syscall.Signal, logger *logrus.Entry) error { var err error diff --git a/src/runtime/virtcontainers/utils/utils_linux.go b/src/runtime/virtcontainers/utils/utils_linux.go index 265f10d11..c223fb93b 100644 --- a/src/runtime/virtcontainers/utils/utils_linux.go +++ b/src/runtime/virtcontainers/utils/utils_linux.go @@ -45,9 +45,8 @@ func Ioctl(fd uintptr, request, data uintptr) error { // close vhost file descriptor. // // Benefits of using random context IDs: -// - Reduce the probability of a *DoS attack*, since other processes don't know whatis the initial context ID -// used by findContextID to find a context ID available -// +// - Reduce the probability of a *DoS attack*, since other processes don't know whatis the initial context ID +// used by findContextID to find a context ID available func FindContextID() (*os.File, uint64, error) { // context IDs 0x0, 0x1 and 0x2 are reserved, 0x3 is the first context ID usable. var firstContextID uint64 = 0x3 diff --git a/src/runtime/virtcontainers/vhostuser_endpoint.go b/src/runtime/virtcontainers/vhostuser_endpoint.go index c27f1159d..55f37f189 100644 --- a/src/runtime/virtcontainers/vhostuser_endpoint.go +++ b/src/runtime/virtcontainers/vhostuser_endpoint.go @@ -149,7 +149,8 @@ func findVhostUserNetSocketPath(netInfo NetworkInfo) (string, error) { // vhostUserSocketPath returns the path of the socket discovered. This discovery // will vary depending on the type of vhost-user socket. -// Today only VhostUserNetDevice is supported. +// +// Today only VhostUserNetDevice is supported. func vhostUserSocketPath(info interface{}) (string, error) { switch v := info.(type) { diff --git a/src/tools/log-parser/check.go b/src/tools/log-parser/check.go index 2207baa9b..cac86272e 100644 --- a/src/tools/log-parser/check.go +++ b/src/tools/log-parser/check.go @@ -15,9 +15,9 @@ import ( // checkValid determines if the specified string is valid or not. // It looks for: // -// - Invalid (unprintable) characters. -// - Standard golang error strings added by the formatting functions into the -// resulting strings when issues are detected. +// - Invalid (unprintable) characters. +// - Standard golang error strings added by the formatting functions into the +// resulting strings when issues are detected. func checkValid(value string) error { if value == "" { return nil diff --git a/src/tools/log-parser/logentry.go b/src/tools/log-parser/logentry.go index e88ff1cfa..4c3f0e95d 100644 --- a/src/tools/log-parser/logentry.go +++ b/src/tools/log-parser/logentry.go @@ -45,12 +45,11 @@ const logEntryFormatVersion = "0.0.2" // // Notes: // -// - An anonymous field is not used to distinguish between the two -// categories of fields because that extra layer becomes visible when the -// struct is converted to various formats (specifically CSV, text and YAML). +// - An anonymous field is not used to distinguish between the two +// categories of fields because that extra layer becomes visible when the +// struct is converted to various formats (specifically CSV, text and YAML). // // - XXX: If you change this struct, update logEntryFormatVersion! -// type LogEntry struct { // Used to store additional (non-standard) fields Data MapSS From 2f5f575a43b5d7a5fbbd582d5c015e8ac92895cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabiano=20Fid=C3=AAncio?= Date: Thu, 17 Nov 2022 14:17:29 +0100 Subject: [PATCH 34/37] log-parser: Simplify check MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ``` 14:13:15 parse.go:306:5: S1009: should omit nil check; len() for github.com/kata-containers/kata-containers/src/tools/log-parser.kvPairs is defined as zero (gosimple) 14:13:15 if pairs == nil || len(pairs) == 0 { 14:13:15 ^ ``` Signed-off-by: Fabiano FidĂȘncio --- src/tools/log-parser/parse.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tools/log-parser/parse.go b/src/tools/log-parser/parse.go index 9529727e4..654cfd623 100644 --- a/src/tools/log-parser/parse.go +++ b/src/tools/log-parser/parse.go @@ -303,7 +303,7 @@ func createLogEntry(filename string, line uint64, pairs kvPairs) (LogEntry, erro return LogEntry{}, fmt.Errorf("need line number for file %v", filename) } - if pairs == nil || len(pairs) == 0 { + if len(pairs) == 0 { return LogEntry{}, fmt.Errorf("need key/value pairs for line %v:%d", filename, line) } From e4a6fbadf80e77a55233de493389680b31e39881 Mon Sep 17 00:00:00 2001 From: Bin Liu Date: Thu, 17 Nov 2022 22:57:22 +0800 Subject: [PATCH 35/37] docs: update doc "Setup swap device in guest kernel" `crictl runp` command needs `--runtime kata` option to start a Kata Containers pod. Fixes: #5678 Signed-off-by: Bin Liu --- docs/how-to/how-to-setup-swap-devices-in-guest-kernel.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/how-to/how-to-setup-swap-devices-in-guest-kernel.md b/docs/how-to/how-to-setup-swap-devices-in-guest-kernel.md index 8ab9e89e5..1ec90d760 100644 --- a/docs/how-to/how-to-setup-swap-devices-in-guest-kernel.md +++ b/docs/how-to/how-to-setup-swap-devices-in-guest-kernel.md @@ -17,9 +17,9 @@ Enable setup swap device in guest kernel as follows: $ sudo sed -i -e 's/^#enable_guest_swap.*$/enable_guest_swap = true/g' /etc/kata-containers/configuration.toml ``` -## Run a Kata Container utilizing swap device +## Run a Kata Containers utilizing swap device -Use following command to start a Kata Container with swappiness 60 and 1GB swap device (swap_in_bytes - memory_limit_in_bytes). +Use following command to start a Kata Containers with swappiness 60 and 1GB swap device (swap_in_bytes - memory_limit_in_bytes). ``` $ pod_yaml=pod.yaml $ container_yaml=container.yaml @@ -43,12 +43,12 @@ command: - top EOF $ sudo crictl pull $image -$ podid=$(sudo crictl runp $pod_yaml) +$ podid=$(sudo crictl runp --runtime kata $pod_yaml) $ cid=$(sudo crictl create $podid $container_yaml $pod_yaml) $ sudo crictl start $cid ``` -Kata Container setups swap device for this container only when `io.katacontainers.container.resource.swappiness` is set. +Kata Containers setups swap device for this container only when `io.katacontainers.container.resource.swappiness` is set. The following table shows the swap size how to decide if `io.katacontainers.container.resource.swappiness` is set. |`io.katacontainers.container.resource.swap_in_bytes`|`memory_limit_in_bytes`|swap size| From f4b02c224420f16122b30f76f1d6479a676a9a06 Mon Sep 17 00:00:00 2001 From: Bo Chen Date: Thu, 17 Nov 2022 09:09:09 -0800 Subject: [PATCH 36/37] versions: Upgrade to Cloud Hypervisor v28.0 Details of this release can be found in our new roadmap project as iteration v28.0: https://github.com/orgs/cloud-hypervisor/projects/6. Fixes: #5683 Signed-off-by: Bo Chen --- versions.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/versions.yaml b/versions.yaml index ba6c91a15..e59530455 100644 --- a/versions.yaml +++ b/versions.yaml @@ -75,7 +75,7 @@ assets: url: "https://github.com/cloud-hypervisor/cloud-hypervisor" uscan-url: >- https://github.com/cloud-hypervisor/cloud-hypervisor/tags.*/v?(\d\S+)\.tar\.gz - version: "b4e39427080293c674b8db627ee6daf1f1b56806" + version: "v28.0" firecracker: description: "Firecracker micro-VMM" From 36545aa81ae988cef8824dcf2042d75dd1a86dbb Mon Sep 17 00:00:00 2001 From: Bo Chen Date: Thu, 17 Nov 2022 09:21:40 -0800 Subject: [PATCH 37/37] runtime: clh: Re-generate the client code This patch re-generates the client code for Cloud Hypervisor v28.0. Note: The client code of cloud-hypervisor's OpenAPI is automatically generated by openapi-generator. Fixes: #5683 Signed-off-by: Bo Chen --- .../client/.openapi-generator/FILES | 2 + .../pkg/cloud-hypervisor/client/README.md | 1 + .../cloud-hypervisor/client/api/openapi.yaml | 21 +++ .../cloud-hypervisor/client/api_default.go | 138 ++++++++++-------- .../client/docs/MemoryConfig.md | 26 ++++ .../cloud-hypervisor/client/docs/TpmConfig.md | 51 +++++++ .../cloud-hypervisor/client/docs/VmConfig.md | 26 ++++ .../client/model_memory_config.go | 40 +++++ .../client/model_tpm_config.go | 106 ++++++++++++++ .../client/model_vm_config.go | 36 +++++ .../cloud-hypervisor/cloud-hypervisor.yaml | 13 ++ 11 files changed, 396 insertions(+), 64 deletions(-) create mode 100644 src/runtime/virtcontainers/pkg/cloud-hypervisor/client/docs/TpmConfig.md create mode 100644 src/runtime/virtcontainers/pkg/cloud-hypervisor/client/model_tpm_config.go diff --git a/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/.openapi-generator/FILES b/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/.openapi-generator/FILES index 6369a3a41..3cd6cf37e 100644 --- a/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/.openapi-generator/FILES +++ b/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/.openapi-generator/FILES @@ -33,6 +33,7 @@ docs/RngConfig.md docs/SendMigrationData.md docs/SgxEpcConfig.md docs/TokenBucket.md +docs/TpmConfig.md docs/VdpaConfig.md docs/VmConfig.md docs/VmCoredumpData.md @@ -72,6 +73,7 @@ model_rng_config.go model_send_migration_data.go model_sgx_epc_config.go model_token_bucket.go +model_tpm_config.go model_vdpa_config.go model_vm_config.go model_vm_coredump_data.go diff --git a/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/README.md b/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/README.md index a33f74c7e..cb42aa49b 100644 --- a/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/README.md +++ b/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/README.md @@ -135,6 +135,7 @@ Class | Method | HTTP request | Description - [SendMigrationData](docs/SendMigrationData.md) - [SgxEpcConfig](docs/SgxEpcConfig.md) - [TokenBucket](docs/TokenBucket.md) + - [TpmConfig](docs/TpmConfig.md) - [VdpaConfig](docs/VdpaConfig.md) - [VmConfig](docs/VmConfig.md) - [VmCoredumpData](docs/VmCoredumpData.md) diff --git a/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/api/openapi.yaml b/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/api/openapi.yaml index 61e57e372..750c1e725 100644 --- a/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/api/openapi.yaml +++ b/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/api/openapi.yaml @@ -469,6 +469,7 @@ components: hotplug_size: 7 hotplug_size: 4 hotplug_method: Acpi + thp: true disks: - pci_segment: 8 path: path @@ -620,6 +621,8 @@ components: tdx: false serial_number: serial_number uuid: uuid + tpm: + socket: socket pmem: - pci_segment: 6 file: file @@ -828,6 +831,7 @@ components: hotplug_size: 7 hotplug_size: 4 hotplug_method: Acpi + thp: true disks: - pci_segment: 8 path: path @@ -979,6 +983,8 @@ components: tdx: false serial_number: serial_number uuid: uuid + tpm: + socket: socket pmem: - pci_segment: 6 file: file @@ -1107,6 +1113,8 @@ components: type: boolean platform: $ref: '#/components/schemas/PlatformConfig' + tpm: + $ref: '#/components/schemas/TpmConfig' required: - payload type: object @@ -1311,6 +1319,7 @@ components: hotplug_size: 7 hotplug_size: 4 hotplug_method: Acpi + thp: true properties: size: format: int64 @@ -1339,6 +1348,9 @@ components: prefault: default: false type: boolean + thp: + default: true + type: boolean zones: items: $ref: '#/components/schemas/MemoryZoneConfig' @@ -1651,6 +1663,15 @@ components: required: - path type: object + TpmConfig: + example: + socket: socket + properties: + socket: + type: string + required: + - socket + type: object VdpaConfig: example: pci_segment: 7 diff --git a/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/api_default.go b/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/api_default.go index cb9b99d66..5c59d43d4 100644 --- a/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/api_default.go +++ b/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/api_default.go @@ -38,8 +38,8 @@ func (r ApiBootVMRequest) Execute() (*_nethttp.Response, error) { /* BootVM Boot the previously created VM instance. - @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - @return ApiBootVMRequest + @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + @return ApiBootVMRequest */ func (a *DefaultApiService) BootVM(ctx _context.Context) ApiBootVMRequest { return ApiBootVMRequest{ @@ -133,8 +133,8 @@ func (r ApiCreateVMRequest) Execute() (*_nethttp.Response, error) { /* CreateVM Create the cloud-hypervisor Virtual Machine (VM) instance. The instance is not booted, only created. - @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - @return ApiCreateVMRequest + @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + @return ApiCreateVMRequest */ func (a *DefaultApiService) CreateVM(ctx _context.Context) ApiCreateVMRequest { return ApiCreateVMRequest{ @@ -226,8 +226,8 @@ func (r ApiDeleteVMRequest) Execute() (*_nethttp.Response, error) { /* DeleteVM Delete the cloud-hypervisor Virtual Machine (VM) instance. - @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - @return ApiDeleteVMRequest + @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + @return ApiDeleteVMRequest */ func (a *DefaultApiService) DeleteVM(ctx _context.Context) ApiDeleteVMRequest { return ApiDeleteVMRequest{ @@ -314,8 +314,8 @@ func (r ApiPauseVMRequest) Execute() (*_nethttp.Response, error) { /* PauseVM Pause a previously booted VM instance. - @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - @return ApiPauseVMRequest + @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + @return ApiPauseVMRequest */ func (a *DefaultApiService) PauseVM(ctx _context.Context) ApiPauseVMRequest { return ApiPauseVMRequest{ @@ -402,8 +402,8 @@ func (r ApiPowerButtonVMRequest) Execute() (*_nethttp.Response, error) { /* PowerButtonVM Trigger a power button in the VM - @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - @return ApiPowerButtonVMRequest + @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + @return ApiPowerButtonVMRequest */ func (a *DefaultApiService) PowerButtonVM(ctx _context.Context) ApiPowerButtonVMRequest { return ApiPowerButtonVMRequest{ @@ -490,8 +490,8 @@ func (r ApiRebootVMRequest) Execute() (*_nethttp.Response, error) { /* RebootVM Reboot the VM instance. - @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - @return ApiRebootVMRequest + @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + @return ApiRebootVMRequest */ func (a *DefaultApiService) RebootVM(ctx _context.Context) ApiRebootVMRequest { return ApiRebootVMRequest{ @@ -578,8 +578,8 @@ func (r ApiResumeVMRequest) Execute() (*_nethttp.Response, error) { /* ResumeVM Resume a previously paused VM instance. - @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - @return ApiResumeVMRequest + @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + @return ApiResumeVMRequest */ func (a *DefaultApiService) ResumeVM(ctx _context.Context) ApiResumeVMRequest { return ApiResumeVMRequest{ @@ -666,8 +666,8 @@ func (r ApiShutdownVMRequest) Execute() (*_nethttp.Response, error) { /* ShutdownVM Shut the VM instance down. - @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - @return ApiShutdownVMRequest + @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + @return ApiShutdownVMRequest */ func (a *DefaultApiService) ShutdownVM(ctx _context.Context) ApiShutdownVMRequest { return ApiShutdownVMRequest{ @@ -754,8 +754,8 @@ func (r ApiShutdownVMMRequest) Execute() (*_nethttp.Response, error) { /* ShutdownVMM Shuts the cloud-hypervisor VMM. - @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - @return ApiShutdownVMMRequest + @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + @return ApiShutdownVMMRequest */ func (a *DefaultApiService) ShutdownVMM(ctx _context.Context) ApiShutdownVMMRequest { return ApiShutdownVMMRequest{ @@ -849,8 +849,8 @@ func (r ApiVmAddDevicePutRequest) Execute() (PciDeviceInfo, *_nethttp.Response, /* VmAddDevicePut Add a new device to the VM - @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - @return ApiVmAddDevicePutRequest + @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + @return ApiVmAddDevicePutRequest */ func (a *DefaultApiService) VmAddDevicePut(ctx _context.Context) ApiVmAddDevicePutRequest { return ApiVmAddDevicePutRequest{ @@ -860,7 +860,8 @@ func (a *DefaultApiService) VmAddDevicePut(ctx _context.Context) ApiVmAddDeviceP } // Execute executes the request -// @return PciDeviceInfo +// +// @return PciDeviceInfo func (a *DefaultApiService) VmAddDevicePutExecute(r ApiVmAddDevicePutRequest) (PciDeviceInfo, *_nethttp.Response, error) { var ( localVarHTTPMethod = _nethttp.MethodPut @@ -960,8 +961,8 @@ func (r ApiVmAddDiskPutRequest) Execute() (PciDeviceInfo, *_nethttp.Response, er /* VmAddDiskPut Add a new disk to the VM - @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - @return ApiVmAddDiskPutRequest + @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + @return ApiVmAddDiskPutRequest */ func (a *DefaultApiService) VmAddDiskPut(ctx _context.Context) ApiVmAddDiskPutRequest { return ApiVmAddDiskPutRequest{ @@ -971,7 +972,8 @@ func (a *DefaultApiService) VmAddDiskPut(ctx _context.Context) ApiVmAddDiskPutRe } // Execute executes the request -// @return PciDeviceInfo +// +// @return PciDeviceInfo func (a *DefaultApiService) VmAddDiskPutExecute(r ApiVmAddDiskPutRequest) (PciDeviceInfo, *_nethttp.Response, error) { var ( localVarHTTPMethod = _nethttp.MethodPut @@ -1071,8 +1073,8 @@ func (r ApiVmAddFsPutRequest) Execute() (PciDeviceInfo, *_nethttp.Response, erro /* VmAddFsPut Add a new virtio-fs device to the VM - @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - @return ApiVmAddFsPutRequest + @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + @return ApiVmAddFsPutRequest */ func (a *DefaultApiService) VmAddFsPut(ctx _context.Context) ApiVmAddFsPutRequest { return ApiVmAddFsPutRequest{ @@ -1082,7 +1084,8 @@ func (a *DefaultApiService) VmAddFsPut(ctx _context.Context) ApiVmAddFsPutReques } // Execute executes the request -// @return PciDeviceInfo +// +// @return PciDeviceInfo func (a *DefaultApiService) VmAddFsPutExecute(r ApiVmAddFsPutRequest) (PciDeviceInfo, *_nethttp.Response, error) { var ( localVarHTTPMethod = _nethttp.MethodPut @@ -1182,8 +1185,8 @@ func (r ApiVmAddNetPutRequest) Execute() (PciDeviceInfo, *_nethttp.Response, err /* VmAddNetPut Add a new network device to the VM - @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - @return ApiVmAddNetPutRequest + @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + @return ApiVmAddNetPutRequest */ func (a *DefaultApiService) VmAddNetPut(ctx _context.Context) ApiVmAddNetPutRequest { return ApiVmAddNetPutRequest{ @@ -1193,7 +1196,8 @@ func (a *DefaultApiService) VmAddNetPut(ctx _context.Context) ApiVmAddNetPutRequ } // Execute executes the request -// @return PciDeviceInfo +// +// @return PciDeviceInfo func (a *DefaultApiService) VmAddNetPutExecute(r ApiVmAddNetPutRequest) (PciDeviceInfo, *_nethttp.Response, error) { var ( localVarHTTPMethod = _nethttp.MethodPut @@ -1293,8 +1297,8 @@ func (r ApiVmAddPmemPutRequest) Execute() (PciDeviceInfo, *_nethttp.Response, er /* VmAddPmemPut Add a new pmem device to the VM - @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - @return ApiVmAddPmemPutRequest + @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + @return ApiVmAddPmemPutRequest */ func (a *DefaultApiService) VmAddPmemPut(ctx _context.Context) ApiVmAddPmemPutRequest { return ApiVmAddPmemPutRequest{ @@ -1304,7 +1308,8 @@ func (a *DefaultApiService) VmAddPmemPut(ctx _context.Context) ApiVmAddPmemPutRe } // Execute executes the request -// @return PciDeviceInfo +// +// @return PciDeviceInfo func (a *DefaultApiService) VmAddPmemPutExecute(r ApiVmAddPmemPutRequest) (PciDeviceInfo, *_nethttp.Response, error) { var ( localVarHTTPMethod = _nethttp.MethodPut @@ -1404,8 +1409,8 @@ func (r ApiVmAddVdpaPutRequest) Execute() (PciDeviceInfo, *_nethttp.Response, er /* VmAddVdpaPut Add a new vDPA device to the VM - @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - @return ApiVmAddVdpaPutRequest + @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + @return ApiVmAddVdpaPutRequest */ func (a *DefaultApiService) VmAddVdpaPut(ctx _context.Context) ApiVmAddVdpaPutRequest { return ApiVmAddVdpaPutRequest{ @@ -1415,7 +1420,8 @@ func (a *DefaultApiService) VmAddVdpaPut(ctx _context.Context) ApiVmAddVdpaPutRe } // Execute executes the request -// @return PciDeviceInfo +// +// @return PciDeviceInfo func (a *DefaultApiService) VmAddVdpaPutExecute(r ApiVmAddVdpaPutRequest) (PciDeviceInfo, *_nethttp.Response, error) { var ( localVarHTTPMethod = _nethttp.MethodPut @@ -1515,8 +1521,8 @@ func (r ApiVmAddVsockPutRequest) Execute() (PciDeviceInfo, *_nethttp.Response, e /* VmAddVsockPut Add a new vsock device to the VM - @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - @return ApiVmAddVsockPutRequest + @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + @return ApiVmAddVsockPutRequest */ func (a *DefaultApiService) VmAddVsockPut(ctx _context.Context) ApiVmAddVsockPutRequest { return ApiVmAddVsockPutRequest{ @@ -1526,7 +1532,8 @@ func (a *DefaultApiService) VmAddVsockPut(ctx _context.Context) ApiVmAddVsockPut } // Execute executes the request -// @return PciDeviceInfo +// +// @return PciDeviceInfo func (a *DefaultApiService) VmAddVsockPutExecute(r ApiVmAddVsockPutRequest) (PciDeviceInfo, *_nethttp.Response, error) { var ( localVarHTTPMethod = _nethttp.MethodPut @@ -1626,8 +1633,8 @@ func (r ApiVmCoredumpPutRequest) Execute() (*_nethttp.Response, error) { /* VmCoredumpPut Takes a VM coredump. - @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - @return ApiVmCoredumpPutRequest + @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + @return ApiVmCoredumpPutRequest */ func (a *DefaultApiService) VmCoredumpPut(ctx _context.Context) ApiVmCoredumpPutRequest { return ApiVmCoredumpPutRequest{ @@ -1719,8 +1726,8 @@ func (r ApiVmCountersGetRequest) Execute() (map[string]map[string]int64, *_netht /* VmCountersGet Get counters from the VM - @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - @return ApiVmCountersGetRequest + @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + @return ApiVmCountersGetRequest */ func (a *DefaultApiService) VmCountersGet(ctx _context.Context) ApiVmCountersGetRequest { return ApiVmCountersGetRequest{ @@ -1730,7 +1737,8 @@ func (a *DefaultApiService) VmCountersGet(ctx _context.Context) ApiVmCountersGet } // Execute executes the request -// @return map[string]map[string]int64 +// +// @return map[string]map[string]int64 func (a *DefaultApiService) VmCountersGetExecute(r ApiVmCountersGetRequest) (map[string]map[string]int64, *_nethttp.Response, error) { var ( localVarHTTPMethod = _nethttp.MethodGet @@ -1818,8 +1826,8 @@ func (r ApiVmInfoGetRequest) Execute() (VmInfo, *_nethttp.Response, error) { /* VmInfoGet Returns general information about the cloud-hypervisor Virtual Machine (VM) instance. - @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - @return ApiVmInfoGetRequest + @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + @return ApiVmInfoGetRequest */ func (a *DefaultApiService) VmInfoGet(ctx _context.Context) ApiVmInfoGetRequest { return ApiVmInfoGetRequest{ @@ -1829,7 +1837,8 @@ func (a *DefaultApiService) VmInfoGet(ctx _context.Context) ApiVmInfoGetRequest } // Execute executes the request -// @return VmInfo +// +// @return VmInfo func (a *DefaultApiService) VmInfoGetExecute(r ApiVmInfoGetRequest) (VmInfo, *_nethttp.Response, error) { var ( localVarHTTPMethod = _nethttp.MethodGet @@ -1924,8 +1933,8 @@ func (r ApiVmReceiveMigrationPutRequest) Execute() (*_nethttp.Response, error) { /* VmReceiveMigrationPut Receive a VM migration from URL - @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - @return ApiVmReceiveMigrationPutRequest + @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + @return ApiVmReceiveMigrationPutRequest */ func (a *DefaultApiService) VmReceiveMigrationPut(ctx _context.Context) ApiVmReceiveMigrationPutRequest { return ApiVmReceiveMigrationPutRequest{ @@ -2024,8 +2033,8 @@ func (r ApiVmRemoveDevicePutRequest) Execute() (*_nethttp.Response, error) { /* VmRemoveDevicePut Remove a device from the VM - @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - @return ApiVmRemoveDevicePutRequest + @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + @return ApiVmRemoveDevicePutRequest */ func (a *DefaultApiService) VmRemoveDevicePut(ctx _context.Context) ApiVmRemoveDevicePutRequest { return ApiVmRemoveDevicePutRequest{ @@ -2124,8 +2133,8 @@ func (r ApiVmResizePutRequest) Execute() (*_nethttp.Response, error) { /* VmResizePut Resize the VM - @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - @return ApiVmResizePutRequest + @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + @return ApiVmResizePutRequest */ func (a *DefaultApiService) VmResizePut(ctx _context.Context) ApiVmResizePutRequest { return ApiVmResizePutRequest{ @@ -2224,8 +2233,8 @@ func (r ApiVmResizeZonePutRequest) Execute() (*_nethttp.Response, error) { /* VmResizeZonePut Resize a memory zone - @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - @return ApiVmResizeZonePutRequest + @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + @return ApiVmResizeZonePutRequest */ func (a *DefaultApiService) VmResizeZonePut(ctx _context.Context) ApiVmResizeZonePutRequest { return ApiVmResizeZonePutRequest{ @@ -2324,8 +2333,8 @@ func (r ApiVmRestorePutRequest) Execute() (*_nethttp.Response, error) { /* VmRestorePut Restore a VM from a snapshot. - @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - @return ApiVmRestorePutRequest + @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + @return ApiVmRestorePutRequest */ func (a *DefaultApiService) VmRestorePut(ctx _context.Context) ApiVmRestorePutRequest { return ApiVmRestorePutRequest{ @@ -2424,8 +2433,8 @@ func (r ApiVmSendMigrationPutRequest) Execute() (*_nethttp.Response, error) { /* VmSendMigrationPut Send a VM migration to URL - @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - @return ApiVmSendMigrationPutRequest + @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + @return ApiVmSendMigrationPutRequest */ func (a *DefaultApiService) VmSendMigrationPut(ctx _context.Context) ApiVmSendMigrationPutRequest { return ApiVmSendMigrationPutRequest{ @@ -2524,8 +2533,8 @@ func (r ApiVmSnapshotPutRequest) Execute() (*_nethttp.Response, error) { /* VmSnapshotPut Returns a VM snapshot. - @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - @return ApiVmSnapshotPutRequest + @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + @return ApiVmSnapshotPutRequest */ func (a *DefaultApiService) VmSnapshotPut(ctx _context.Context) ApiVmSnapshotPutRequest { return ApiVmSnapshotPutRequest{ @@ -2617,8 +2626,8 @@ func (r ApiVmmPingGetRequest) Execute() (VmmPingResponse, *_nethttp.Response, er /* VmmPingGet Ping the VMM to check for API server availability - @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - @return ApiVmmPingGetRequest + @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + @return ApiVmmPingGetRequest */ func (a *DefaultApiService) VmmPingGet(ctx _context.Context) ApiVmmPingGetRequest { return ApiVmmPingGetRequest{ @@ -2628,7 +2637,8 @@ func (a *DefaultApiService) VmmPingGet(ctx _context.Context) ApiVmmPingGetReques } // Execute executes the request -// @return VmmPingResponse +// +// @return VmmPingResponse func (a *DefaultApiService) VmmPingGetExecute(r ApiVmmPingGetRequest) (VmmPingResponse, *_nethttp.Response, error) { var ( localVarHTTPMethod = _nethttp.MethodGet diff --git a/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/docs/MemoryConfig.md b/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/docs/MemoryConfig.md index 669bcc518..e6127fc17 100644 --- a/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/docs/MemoryConfig.md +++ b/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/docs/MemoryConfig.md @@ -13,6 +13,7 @@ Name | Type | Description | Notes **Hugepages** | Pointer to **bool** | | [optional] [default to false] **HugepageSize** | Pointer to **int64** | | [optional] **Prefault** | Pointer to **bool** | | [optional] [default to false] +**Thp** | Pointer to **bool** | | [optional] [default to true] **Zones** | Pointer to [**[]MemoryZoneConfig**](MemoryZoneConfig.md) | | [optional] ## Methods @@ -254,6 +255,31 @@ SetPrefault sets Prefault field to given value. HasPrefault returns a boolean if a field has been set. +### GetThp + +`func (o *MemoryConfig) GetThp() bool` + +GetThp returns the Thp field if non-nil, zero value otherwise. + +### GetThpOk + +`func (o *MemoryConfig) GetThpOk() (*bool, bool)` + +GetThpOk returns a tuple with the Thp field if it's non-nil, zero value otherwise +and a boolean to check if the value has been set. + +### SetThp + +`func (o *MemoryConfig) SetThp(v bool)` + +SetThp sets Thp field to given value. + +### HasThp + +`func (o *MemoryConfig) HasThp() bool` + +HasThp returns a boolean if a field has been set. + ### GetZones `func (o *MemoryConfig) GetZones() []MemoryZoneConfig` diff --git a/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/docs/TpmConfig.md b/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/docs/TpmConfig.md new file mode 100644 index 000000000..f659490e3 --- /dev/null +++ b/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/docs/TpmConfig.md @@ -0,0 +1,51 @@ +# TpmConfig + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**Socket** | **string** | | + +## Methods + +### NewTpmConfig + +`func NewTpmConfig(socket string, ) *TpmConfig` + +NewTpmConfig instantiates a new TpmConfig object +This constructor will assign default values to properties that have it defined, +and makes sure properties required by API are set, but the set of arguments +will change when the set of required properties is changed + +### NewTpmConfigWithDefaults + +`func NewTpmConfigWithDefaults() *TpmConfig` + +NewTpmConfigWithDefaults instantiates a new TpmConfig object +This constructor will only assign default values to properties that have it defined, +but it doesn't guarantee that properties required by API are set + +### GetSocket + +`func (o *TpmConfig) GetSocket() string` + +GetSocket returns the Socket field if non-nil, zero value otherwise. + +### GetSocketOk + +`func (o *TpmConfig) GetSocketOk() (*string, bool)` + +GetSocketOk returns a tuple with the Socket field if it's non-nil, zero value otherwise +and a boolean to check if the value has been set. + +### SetSocket + +`func (o *TpmConfig) SetSocket(v string)` + +SetSocket sets Socket field to given value. + + + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/docs/VmConfig.md b/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/docs/VmConfig.md index 9e0363df9..175df7ff3 100644 --- a/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/docs/VmConfig.md +++ b/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/docs/VmConfig.md @@ -23,6 +23,7 @@ Name | Type | Description | Notes **Iommu** | Pointer to **bool** | | [optional] [default to false] **Watchdog** | Pointer to **bool** | | [optional] [default to false] **Platform** | Pointer to [**PlatformConfig**](PlatformConfig.md) | | [optional] +**Tpm** | Pointer to [**TpmConfig**](TpmConfig.md) | | [optional] ## Methods @@ -513,6 +514,31 @@ SetPlatform sets Platform field to given value. HasPlatform returns a boolean if a field has been set. +### GetTpm + +`func (o *VmConfig) GetTpm() TpmConfig` + +GetTpm returns the Tpm field if non-nil, zero value otherwise. + +### GetTpmOk + +`func (o *VmConfig) GetTpmOk() (*TpmConfig, bool)` + +GetTpmOk returns a tuple with the Tpm field if it's non-nil, zero value otherwise +and a boolean to check if the value has been set. + +### SetTpm + +`func (o *VmConfig) SetTpm(v TpmConfig)` + +SetTpm sets Tpm field to given value. + +### HasTpm + +`func (o *VmConfig) HasTpm() bool` + +HasTpm returns a boolean if a field has been set. + [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/model_memory_config.go b/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/model_memory_config.go index f7b4bb09a..bc80adaba 100644 --- a/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/model_memory_config.go +++ b/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/model_memory_config.go @@ -25,6 +25,7 @@ type MemoryConfig struct { Hugepages *bool `json:"hugepages,omitempty"` HugepageSize *int64 `json:"hugepage_size,omitempty"` Prefault *bool `json:"prefault,omitempty"` + Thp *bool `json:"thp,omitempty"` Zones *[]MemoryZoneConfig `json:"zones,omitempty"` } @@ -45,6 +46,8 @@ func NewMemoryConfig(size int64) *MemoryConfig { this.Hugepages = &hugepages var prefault bool = false this.Prefault = &prefault + var thp bool = true + this.Thp = &thp return &this } @@ -63,6 +66,8 @@ func NewMemoryConfigWithDefaults() *MemoryConfig { this.Hugepages = &hugepages var prefault bool = false this.Prefault = &prefault + var thp bool = true + this.Thp = &thp return &this } @@ -346,6 +351,38 @@ func (o *MemoryConfig) SetPrefault(v bool) { o.Prefault = &v } +// GetThp returns the Thp field value if set, zero value otherwise. +func (o *MemoryConfig) GetThp() bool { + if o == nil || o.Thp == nil { + var ret bool + return ret + } + return *o.Thp +} + +// GetThpOk returns a tuple with the Thp field value if set, nil otherwise +// and a boolean to check if the value has been set. +func (o *MemoryConfig) GetThpOk() (*bool, bool) { + if o == nil || o.Thp == nil { + return nil, false + } + return o.Thp, true +} + +// HasThp returns a boolean if a field has been set. +func (o *MemoryConfig) HasThp() bool { + if o != nil && o.Thp != nil { + return true + } + + return false +} + +// SetThp gets a reference to the given bool and assigns it to the Thp field. +func (o *MemoryConfig) SetThp(v bool) { + o.Thp = &v +} + // GetZones returns the Zones field value if set, zero value otherwise. func (o *MemoryConfig) GetZones() []MemoryZoneConfig { if o == nil || o.Zones == nil { @@ -407,6 +444,9 @@ func (o MemoryConfig) MarshalJSON() ([]byte, error) { if o.Prefault != nil { toSerialize["prefault"] = o.Prefault } + if o.Thp != nil { + toSerialize["thp"] = o.Thp + } if o.Zones != nil { toSerialize["zones"] = o.Zones } diff --git a/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/model_tpm_config.go b/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/model_tpm_config.go new file mode 100644 index 000000000..7dc4ad4be --- /dev/null +++ b/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/model_tpm_config.go @@ -0,0 +1,106 @@ +/* +Cloud Hypervisor API + +Local HTTP based API for managing and inspecting a cloud-hypervisor virtual machine. + +API version: 0.3.0 +*/ + +// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT. + +package openapi + +import ( + "encoding/json" +) + +// TpmConfig struct for TpmConfig +type TpmConfig struct { + Socket string `json:"socket"` +} + +// NewTpmConfig instantiates a new TpmConfig object +// This constructor will assign default values to properties that have it defined, +// and makes sure properties required by API are set, but the set of arguments +// will change when the set of required properties is changed +func NewTpmConfig(socket string) *TpmConfig { + this := TpmConfig{} + this.Socket = socket + return &this +} + +// NewTpmConfigWithDefaults instantiates a new TpmConfig object +// This constructor will only assign default values to properties that have it defined, +// but it doesn't guarantee that properties required by API are set +func NewTpmConfigWithDefaults() *TpmConfig { + this := TpmConfig{} + return &this +} + +// GetSocket returns the Socket field value +func (o *TpmConfig) GetSocket() string { + if o == nil { + var ret string + return ret + } + + return o.Socket +} + +// GetSocketOk returns a tuple with the Socket field value +// and a boolean to check if the value has been set. +func (o *TpmConfig) GetSocketOk() (*string, bool) { + if o == nil { + return nil, false + } + return &o.Socket, true +} + +// SetSocket sets field value +func (o *TpmConfig) SetSocket(v string) { + o.Socket = v +} + +func (o TpmConfig) MarshalJSON() ([]byte, error) { + toSerialize := map[string]interface{}{} + if true { + toSerialize["socket"] = o.Socket + } + return json.Marshal(toSerialize) +} + +type NullableTpmConfig struct { + value *TpmConfig + isSet bool +} + +func (v NullableTpmConfig) Get() *TpmConfig { + return v.value +} + +func (v *NullableTpmConfig) Set(val *TpmConfig) { + v.value = val + v.isSet = true +} + +func (v NullableTpmConfig) IsSet() bool { + return v.isSet +} + +func (v *NullableTpmConfig) Unset() { + v.value = nil + v.isSet = false +} + +func NewNullableTpmConfig(val *TpmConfig) *NullableTpmConfig { + return &NullableTpmConfig{value: val, isSet: true} +} + +func (v NullableTpmConfig) MarshalJSON() ([]byte, error) { + return json.Marshal(v.value) +} + +func (v *NullableTpmConfig) UnmarshalJSON(src []byte) error { + v.isSet = true + return json.Unmarshal(src, &v.value) +} diff --git a/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/model_vm_config.go b/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/model_vm_config.go index c8fafc6a4..cd243bce9 100644 --- a/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/model_vm_config.go +++ b/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/model_vm_config.go @@ -35,6 +35,7 @@ type VmConfig struct { Iommu *bool `json:"iommu,omitempty"` Watchdog *bool `json:"watchdog,omitempty"` Platform *PlatformConfig `json:"platform,omitempty"` + Tpm *TpmConfig `json:"tpm,omitempty"` } // NewVmConfig instantiates a new VmConfig object @@ -663,6 +664,38 @@ func (o *VmConfig) SetPlatform(v PlatformConfig) { o.Platform = &v } +// GetTpm returns the Tpm field value if set, zero value otherwise. +func (o *VmConfig) GetTpm() TpmConfig { + if o == nil || o.Tpm == nil { + var ret TpmConfig + return ret + } + return *o.Tpm +} + +// GetTpmOk returns a tuple with the Tpm field value if set, nil otherwise +// and a boolean to check if the value has been set. +func (o *VmConfig) GetTpmOk() (*TpmConfig, bool) { + if o == nil || o.Tpm == nil { + return nil, false + } + return o.Tpm, true +} + +// HasTpm returns a boolean if a field has been set. +func (o *VmConfig) HasTpm() bool { + if o != nil && o.Tpm != nil { + return true + } + + return false +} + +// SetTpm gets a reference to the given TpmConfig and assigns it to the Tpm field. +func (o *VmConfig) SetTpm(v TpmConfig) { + o.Tpm = &v +} + func (o VmConfig) MarshalJSON() ([]byte, error) { toSerialize := map[string]interface{}{} if o.Cpus != nil { @@ -722,6 +755,9 @@ func (o VmConfig) MarshalJSON() ([]byte, error) { if o.Platform != nil { toSerialize["platform"] = o.Platform } + if o.Tpm != nil { + toSerialize["tpm"] = o.Tpm + } return json.Marshal(toSerialize) } diff --git a/src/runtime/virtcontainers/pkg/cloud-hypervisor/cloud-hypervisor.yaml b/src/runtime/virtcontainers/pkg/cloud-hypervisor/cloud-hypervisor.yaml index 46d9aac83..dee8bdbf0 100644 --- a/src/runtime/virtcontainers/pkg/cloud-hypervisor/cloud-hypervisor.yaml +++ b/src/runtime/virtcontainers/pkg/cloud-hypervisor/cloud-hypervisor.yaml @@ -573,6 +573,8 @@ components: default: false platform: $ref: "#/components/schemas/PlatformConfig" + tpm: + $ref: "#/components/schemas/TpmConfig" description: Virtual machine configuration CpuAffinity: @@ -726,6 +728,9 @@ components: prefault: type: boolean default: false + thp: + type: boolean + default: true zones: type: array items: @@ -955,6 +960,14 @@ components: id: type: string + TpmConfig: + required: + - socket + type: object + properties: + socket: + type: string + VdpaConfig: required: - path