From 687d5e1b7a86cd5e069e500a06342f84cc099b75 Mon Sep 17 00:00:00 2001 From: Natalie Date: Fri, 30 Aug 2024 11:23:12 -0700 Subject: [PATCH 01/19] Adding config file --- Samples/static-vxlan/vmx-config.xml | 124 ++++++++++++++++++++++++++++ generateFiles.sh | 3 +- 2 files changed, 126 insertions(+), 1 deletion(-) create mode 100644 Samples/static-vxlan/vmx-config.xml diff --git a/Samples/static-vxlan/vmx-config.xml b/Samples/static-vxlan/vmx-config.xml new file mode 100644 index 00000000..3ac8ce06 --- /dev/null +++ b/Samples/static-vxlan/vmx-config.xml @@ -0,0 +1,124 @@ + + + 22.3R1.11 + + vMX-addr-0 + + $6$Ko4jDdWi$3T6N1wqgxkrEQUSuk1t/lgdMj1r7PK1dsAhAcdF63SUiqj5E/jVkzcSF25uJ2oRuNavm.MQoEclS2dyqVzo1L1 + + + python3 + + + + jcluser + 2000 + super-user + + $6$qaVklik0$XJOuOb8U/kj9XWcjadFLrUde/ezOTY8d.QN4cRwnk7ZcNNfdJIF8B.2dOVOwUzTDFjuulNqrmThZrMzismmAE. + + + + + + allow + + + + + + + + 3000 + + + + + + + * + + any + + + + + interactive-commands + + interactive-commands + + + + + messages + + any + + + + authorization + + + + + + + + + dhcp_logfile + 10m + + all + + packet + + + + + + + + 0 + + 0 + 8 + + + + + + + fxp0 + + 0 + + +
+ 100.123.1.0/16 +
+
+
+
+
+
+ + + + 0.0.0.0/0 + 100.123.0.1 + + + + + + + fxp0.0 + + + + +
+ + + +
\ No newline at end of file diff --git a/generateFiles.sh b/generateFiles.sh index 0caaf43f..ccd3c635 100755 --- a/generateFiles.sh +++ b/generateFiles.sh @@ -296,7 +296,8 @@ EOF go build ./processProviders -config $home_dir/config.toml cd $home_dir/terraform_providers - go mod tidy -go=1.16 && go mod tidy -go=1.17 + # go mod tidy -go=1.16 && go mod tidy -go=1.17 + go mod tidy -go=1.23 go build else echo "No XML xpath file found. Try renaming the xpath file to include 'xpath' in the name." From 1037d5b4dcf09606c73319426ce4195d64caf191 Mon Sep 17 00:00:00 2001 From: Natalie Date: Fri, 30 Aug 2024 11:59:11 -0700 Subject: [PATCH 02/19] fixing versions in generate files --- Samples/{static-vxlan => static_vxlan}/vmx-config.xml | 0 generateFiles.sh | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename Samples/{static-vxlan => static_vxlan}/vmx-config.xml (100%) diff --git a/Samples/static-vxlan/vmx-config.xml b/Samples/static_vxlan/vmx-config.xml similarity index 100% rename from Samples/static-vxlan/vmx-config.xml rename to Samples/static_vxlan/vmx-config.xml diff --git a/generateFiles.sh b/generateFiles.sh index ccd3c635..98490654 100755 --- a/generateFiles.sh +++ b/generateFiles.sh @@ -195,7 +195,7 @@ EOF # # Output the supported devices # echo "Supported devices for $selected_device: $supported_devices" - common_path="yang/$junos_version/$junos_version_combined/common/junos-common-types@2023-01-01.yang" + common_path="yang/$junos_version/$junos_version_combined/common/junos-common-types@2022-01-01.yang" path_to="yang/$junos_version/$junos_version_combined/$supported_devices/conf/" # Define the target directory in the home directory From 1fe8fdb3a01df85c37c0112f59d738998f94af99 Mon Sep 17 00:00:00 2001 From: Natalie Date: Thu, 5 Sep 2024 11:35:00 -0700 Subject: [PATCH 03/19] Adding config file --- Internal/processProviders/processProviders.go | 8 +- Samples/static_vxlan/short-config.xml | 75 +++++++++++++++++++ 2 files changed, 79 insertions(+), 4 deletions(-) create mode 100644 Samples/static_vxlan/short-config.xml diff --git a/Internal/processProviders/processProviders.go b/Internal/processProviders/processProviders.go index 6735550b..2c8b3a63 100644 --- a/Internal/processProviders/processProviders.go +++ b/Internal/processProviders/processProviders.go @@ -167,7 +167,7 @@ func CreateProviders(jcfg cfg.Config) error { // Read data from xpath file datIn, err := ioutil.ReadFile(xpathFilePath) if err != nil { - return err + return fmt.Errorf("failed to read file %s - %w", xpathFilePath, err) } // XML decoding @@ -178,7 +178,7 @@ func CreateProviders(jcfg cfg.Config) error { var inNode Node err = decIn.Decode(&inNode) if err != nil { - return err + return fmt.Errorf("failed to decode - %w", err) } // parse the xpaths provided to generate terraform based modules @@ -225,7 +225,7 @@ func CreateProviders(jcfg cfg.Config) error { // Parse data from Yin file dat, err := ioutil.ReadFile(inputYinFile) if err != nil { - return err + return fmt.Errorf("failed to read file %s - %w", inputYinFile, err) } // XML decoding buf := bytes.NewBuffer(dat) @@ -234,7 +234,7 @@ func CreateProviders(jcfg cfg.Config) error { var n Node err = dec.Decode(&n) if err != nil { - return err + return fmt.Errorf("failed to decode - %w", err) } // Process all the groups in yin file and store them create_group_nodes([]Node{n}) diff --git a/Samples/static_vxlan/short-config.xml b/Samples/static_vxlan/short-config.xml new file mode 100644 index 00000000..f7223255 --- /dev/null +++ b/Samples/static_vxlan/short-config.xml @@ -0,0 +1,75 @@ + + vMX-addr-0 + + $6$Ko4jDdWi$3T6N1wqgxkrEQUSuk1t/lgdMj1r7PK1dsAhAcdF63SUiqj5E/jVkzcSF25uJ2oRuNavm.MQoEclS2dyqVzo1L1 + + + python3 + + + + jcluser + 2000 + super-user + + $6$qaVklik0$XJOuOb8U/kj9XWcjadFLrUde/ezOTY8d.QN4cRwnk7ZcNNfdJIF8B.2dOVOwUzTDFjuulNqrmThZrMzismmAE. + + + + + + allow + + + + + + + + 3000 + + + + + + + * + + any + + + + + interactive-commands + + interactive-commands + + + + + messages + + any + + + + authorization + + + + + + + + + dhcp_logfile + 10m + + all + + packet + + + + + \ No newline at end of file From 7dc77b2b8c239fbd900bfcefa73d5e7d36900432 Mon Sep 17 00:00:00 2001 From: Natalie Date: Thu, 5 Sep 2024 14:02:23 -0700 Subject: [PATCH 04/19] Adding medium config --- Samples/static_vxlan/medium-config.xml | 117 +++++++++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 Samples/static_vxlan/medium-config.xml diff --git a/Samples/static_vxlan/medium-config.xml b/Samples/static_vxlan/medium-config.xml new file mode 100644 index 00000000..e325447b --- /dev/null +++ b/Samples/static_vxlan/medium-config.xml @@ -0,0 +1,117 @@ + + vMX-addr-0 + + $6$Ko4jDdWi$3T6N1wqgxkrEQUSuk1t/lgdMj1r7PK1dsAhAcdF63SUiqj5E/jVkzcSF25uJ2oRuNavm.MQoEclS2dyqVzo1L1 + + + python3 + + + + jcluser + 2000 + super-user + + $6$qaVklik0$XJOuOb8U/kj9XWcjadFLrUde/ezOTY8d.QN4cRwnk7ZcNNfdJIF8B.2dOVOwUzTDFjuulNqrmThZrMzismmAE. + + + + + + allow + + + + + + + + 3000 + + + + + + + * + + any + + + + + interactive-commands + + interactive-commands + + + + + messages + + any + + + + authorization + + + + + + + + + dhcp_logfile + 10m + + all + + packet + + + + + + + + 0 + + 0 + 8 + + + + + + + fxp0 + + 0 + + +
+ 100.123.1.0/16 +
+
+
+
+
+
+ + + + 0.0.0.0/0 + 100.123.0.1 + + + + + + + fxp0.0 + + + + + \ No newline at end of file From 1524f8bedffbaac80973d0caa48467005ea8d737 Mon Sep 17 00:00:00 2001 From: Natalie Date: Fri, 6 Sep 2024 10:39:37 -0700 Subject: [PATCH 05/19] Adding README documentation --- Samples/static_vxlan/README.md | 76 ++++ Samples/static_vxlan/generateFiles.sh | 342 ++++++++++++++++++ Samples/static_vxlan/medium-config.xml | 117 ------ Samples/static_vxlan/short-config.xml | 75 ---- Samples/static_vxlan/testbed/main.tf | 34 ++ Samples/static_vxlan/testbed/vmx_1/test.tf | 327 +++++++++++++++++ Samples/static_vxlan/vmx-config.xml | 124 ------- Samples/static_vxlan/vmx_config.xml | 116 ++++++ .../xpath/updated_xpath_inputs.xml | 66 ++++ generateFiles.sh | 5 +- 10 files changed, 963 insertions(+), 319 deletions(-) create mode 100644 Samples/static_vxlan/README.md create mode 100644 Samples/static_vxlan/generateFiles.sh delete mode 100644 Samples/static_vxlan/medium-config.xml delete mode 100644 Samples/static_vxlan/short-config.xml create mode 100644 Samples/static_vxlan/testbed/main.tf create mode 100644 Samples/static_vxlan/testbed/vmx_1/test.tf delete mode 100644 Samples/static_vxlan/vmx-config.xml create mode 100644 Samples/static_vxlan/vmx_config.xml create mode 100644 Samples/static_vxlan/xpath/updated_xpath_inputs.xml diff --git a/Samples/static_vxlan/README.md b/Samples/static_vxlan/README.md new file mode 100644 index 00000000..7fe27fe1 --- /dev/null +++ b/Samples/static_vxlan/README.md @@ -0,0 +1,76 @@ +# VMX - Static VXLAN with IPSEC + +This is an example that demonstrates how to use JTAF on the Static VXLAN Sandbox available in JCL. + +# Setup +* Create a JCL sandbox of the 'VMX - Static VXLAN with IPSEC' blueprint. Select 22.3 for the device version. +* Install Go on the Helper VM by running the following commands: +```bash + wget https://go.dev/dl/go1.23.0.linux-amd64.tar.gz + sudo rm -rf /usr/local/go + sudo tar -C /usr/local -xzf go1.23.0.linux-amd64.tar.gz + echo "export PATH=\$PATH:/usr/local/go/bin" >> ~/.bashrc + source ~/.bashrc +``` +* Install Terraform on the Helper VM by running the following commands: +```bash + wget https://releases.hashicorp.com/terraform/1.5.0/terraform_1.5.0_linux_amd64.zip + unzip terraform_1.5.0_linux_amd64.zip + sudo mv terraform /usr/local/bin/ +``` +* Clone the JTAF repository and move into the JTAF directory. +```bash + git clone https://github.com/Juniper/junos-terraform.git + cd junos-terraform +``` +* Remove the current generateFiles.sh and replace it with Samples/static_vxlan/generateFiles.sh +```bash + rm generateFiles.sh + mv Samples/static_vxlan/generateFiles.sh junos-terraform +``` + This updates the two lines below. You could also use vim to update these lines. + Line 198: # common_path="yang/$junos_version/$junos_version_combined/common/junos-common-types@2023-01-01.yang" + common_path="yang/$junos_version/$junos_version_combined/common/junos-common-types@2022-01-01.yang" + Line 299: # go mod tidy -go=1.16 && go mod tidy -go=1.17 + go mod tidy -go=1.23 +* Move the vMX-A1 configuration file into to a directory titled user_config_files. +```bash + mkdir user_config_files + mv Samples/static_vxlan/vmx_config.xml user_config_files +``` +**OR** if you feel adventurous, you can retrieve the configuration from the vmx device itself. +```bash +show configuration | display xml | no-more +``` +**Note:** you must remove the rpc-reply and configuration level of the file. + +# Run Option 2 +Junos-Terraform Developer Guide (Build from pre-existing junos config): https://github.com/Juniper/junos-terraform?tab=readme-ov-file#guide + +As a brief summary, run generateFiles.sh. +```bash +./generateFiles.sh +Do you want to: +1. Build a provider from scratch +2. Provide a configuration +Enter your choice (1/2): 2 +You chose to provide a configuration. + +Enter the configuration file name: vmx_config.xml +Enter a valid device option (vsrx, vmx, vqfx, vptx): vmx +Enter the Junos version: 22.3 +``` +This takes a LONG time, so don't worry if it is taking a while! That just means it is working. + +# Using the Provider +Yay! The provider has now been created and can be found in terraform_providers/terraform-provider-junos-vmx. + +Enable terraform to find the provider locally. +```bash +mkdir -p ~/.terraform.d/plugins/juniper/providers/junos-vmx/22.3/linux_amd64 +mv terraform_providers/terraform-provider-junos-vmx ~/.terraform.d/plugins/juniper/providers/junos-vmx/22.3/linux_amd64 +``` +# Testing +Testing with Terraform: https://github.com/Juniper/junos-terraform?tab=readme-ov-file#testing + +For this portion, you can find the main.tf and vmx_1/main.tf files located in Samples/static_vxlan/testbed. \ No newline at end of file diff --git a/Samples/static_vxlan/generateFiles.sh b/Samples/static_vxlan/generateFiles.sh new file mode 100644 index 00000000..086924bd --- /dev/null +++ b/Samples/static_vxlan/generateFiles.sh @@ -0,0 +1,342 @@ +#!/bin/bash +set -e + +# Function to check if a command is available +command_exists() { + command -v "$1" >/dev/null 2>&1 +} + +retry_script() { + while true; do + ./generateFiles.sh + + # Check the exit status of the script + if [ $? -eq 0 ]; then + # Script ran successfully, exit the loop + break + else + # Script failed, display an error message + echo "Script failed. Retrying in 5 seconds..." + sleep 5 + fi + done +} + +# caputres the user's home directory +home_dir="$PWD" + +# Check if Python is installed +if ! command_exists python3; then + echo "Python is not installed. Please Install 'Python' before running the script" +fi + +# Check if Python is installed +if ! command_exists go; then + echo "Go is not installed. Please Install 'Go' before running the script." +fi + +# Prompt the user for their choice +echo "Do you want to:" +echo "1. Build a provider from scratch" +echo "2. Provide a configuration" +read -p "Enter your choice (1/2): " choice + +# Check the user's choice +if [ "$choice" == "1" ]; then + echo "You chose to build a provider from scratch." + # Create config.toml file + if [ ! -f "config.toml" ]; then + echo "Creating config.toml file..." + cat << EOF > config.toml + yangDir = "$(pwd)/yang_files" + providerDir = "$(pwd)/terraform_providers" + xpathPath = "$(pwd)/xpath_inputs.xml" + providerName = "vsrx" + fileType = "both" +EOF + fi + + # Check if yang_files folder exists + if [ -d "yang_files" ]; then + # Find at least one .yang file in yang_files folder + yang_files=$(find yang_files -name "*.yang") + # If YANG files are found, generate YIN and Xpath Files + if [ -n "$yang_files" ]; then + echo "Found .yang files in yang_files folder." + # Change directory to /cmd/processYang + cd $home_dir/cmd/processYang || exit 1 + # Activate venv + python3 -m venv venv + source venv/bin/activate + # Check and install pyang if needed + if ! command_exists pyang; then + echo "pyang is not installed. Installing pyang..." + pip install pyang + pyang -v + fi + # Run go build command and generate YIN and Xpath Files + go build + ./processYang -config $home_dir/config.toml + deactivate + else + echo "No .yang files found in yang_files folder. Add files and re-run script" + fi + else + echo "yang_files folder does not exist. Create and add necessary files" + fi + +elif [ "$choice" == "2" ]; then + echo "You chose to provide a configuration." + + script_directory="$home_dir/user_config_files" + + # Create the directory if it doesn't exist + mkdir -p "$script_directory" + + # Initialize the config_file variable + config_file="" + + echo "" + echo "" + + # Prompt the user for the configuration file name and validate it + while [ ! -f "$config_file" ]; do + read -p "Enter the configuration file name: " config_file + full_path="$script_directory/$config_file" + + if [ -f "$full_path" ]; then + config_file="$full_path" + else + echo "The provided file does not exist in your script's directory." + config_file="" + fi + done + + # Ask user what device they are working on + valid_options=("vsrx" "vmx" "vqfx" "vptx") + user_input="" + + while [[ ! " ${valid_options[*]} " =~ " $user_input " ]]; do + read -p "Enter a valid device option (vsrx, vmx, vqfx, vptx): " user_input + + if [[ ! " ${valid_options[*]} " =~ " $user_input " ]]; then + echo "Invalid input. Please enter one of the following options: vsrx, vmx, vqfx, vptx." + fi + done + + # Prompt the user for the Junos version + read -p "Enter the Junos version: " junos_version + + echo "" + echo "" + # Display the user's selections + echo "Configuration file path: $config_file" + echo "Device name: $user_input" + echo "Junos version: $junos_version" + + + # Ask for confirmation + while true; do + read -p "Are these selections correct? (yes/no): " confirmation + case "$confirmation" in + [Yy]* ) break;; + [Nn]* ) + # If the user says no, allow them to start over + exec "$0";; + * ) echo "Please answer 'yes' or 'no'.";; + esac + done + + echo "" + echo "" + # Create or overwrite config.toml file + echo "Creating or overwriting config.toml file..." + cat > config.toml << EOF + yangDir = "$(pwd)/yang_files" + providerDir = "$(pwd)/terraform_providers" + xpathPath = "$(pwd)/xpath_inputs.xml" + providerName = "$user_input" + fileType = "both" +EOF + + echo "" + echo "" + + junos_version_combined="${junos_version}R1" + + device_names=("vmx" "vptx" "vsrx" "vqfx") + device_mappings=("junos" "junos" "junos-es" "junos-qfx") + + # Find the index of the input device name in the device_names array + index=-1 + for ((i=0; i<${#device_names[@]}; i++)); do + if [ "${device_names[$i]}" = "$user_input" ]; then + index=$i + break + fi + done + + # Output the corresponding mapping if found + if [ $index -ne -1 ]; then + supported_devices="${device_mappings[$index]}" + else + echo "Device mapping not found." + fi + + # Use the user's input to look up the supported devices + supported_devices="${device_mappings[${user_input}]}" + + # Check if the device name exists in the mapping + if [ -z "$supported_devices" ]; then + echo "Device name not recognized." + exit 1 + fi + + # # Output the supported devices + # echo "Supported devices for $selected_device: $supported_devices" + + # common_path="yang/$junos_version/$junos_version_combined/common/junos-common-types@2023-01-01.yang" + common_path="yang/$junos_version/$junos_version_combined/common/junos-common-types@2022-01-01.yang" + path_to="yang/$junos_version/$junos_version_combined/$supported_devices/conf/" + + # Define the target directory in the home directory + target_dir="$home_dir/yang_files" + + # Check if the target directory already exists, and create it if not + if [ ! -d "$target_dir" ]; then + echo "yang_files folder does not exist. Creating and adding necessary files" + mkdir -p "$target_dir" + target_dir="$home_dir/yang" + + # Check if the target directory already exists, and create it if not + if [ ! -d "$target_dir" ]; then + mkdir -p "$target_dir" + # Git clone the Juniper YANG repository into the target directory + echo "Cloning the Juniper YANG repository for Junos $junos_version into $target_dir..." + git clone https://github.com/Juniper/yang.git "$target_dir" + fi + + # Check if the git clone was successful + if [ $? -eq 0 ]; then + echo "Cloning successful. YANG files are in $target_dir." + else + echo "Folder already created or clone failed. If clone failed, please check your internet connection or repository URL." + fi + + target_dir="$home_dir/yang_files" + + # Copy all files from the source directory to the target directory + cp -r "$path_to"* "$target_dir" + + # Copy the common file to the target directory + cp "$common_path" "$target_dir" + + # Check if the copy operation was successful + if [ $? -eq 0 ]; then + echo "Files copied successfully to $target_dir." + else + echo "Copy operation failed." + fi + + target_dir="$home_dir/yang" + + rm -rf $target_dir + fi + + # Find at least one .yang file in yang_files folder + yang_files=$(find yang_files -name "*.yang") + # If YANG files are found, generate YIN and Xpath Files + if [ -n "$yang_files" ]; then + echo "Found .yang files in yang_files folder." + # Change directory to /cmd/processYang + cd $home_dir/cmd/processYang || exit 1 + # Activate venv + python3 -m venv venv + source venv/bin/activate + # Check and install pyang if needed + if ! command_exists pyang; then + echo "pyang is not installed. Installing pyang..." + pip install pyang + pyang -v + fi + # Run go build command and generate YIN and Xpath Files + go build + ./processYang -config $home_dir/config.toml + deactivate + # go run $home_dir/Internal/processYang/createXpathInputs.go + else + echo "No .yang files found in yang_files folder. Add files and re-run script" + fi + + cd "$home_dir" + + go run createXpathInputs.go + + echo "" + echo "" + + # Search for XML files containing "xpath" in their filenames in the home directory + xml_files=$(find "$PWD" -type f -name '*xpath*.xml') + + # Define the folder name + folderName="TFtemplates" + + # Check if the folder already exists + if [ ! -d "$folderName" ]; then + # Create the folder if it doesn't exist + mkdir "$folderName" + echo "Folder '$folderName' created successfully. Folder stores tf templates for testing" + else + echo "Folder '$folderName' already exists to store .tf templates" + fi + + # Check if any matching XML files were found + if [ -n "$xml_files" ]; then + # Now Build the provider + cd $home_dir/cmd/processProviders + go build + ./processProviders -config $home_dir/config.toml + cd $home_dir/terraform_providers + # go mod tidy -go=1.16 && go mod tidy -go=1.17 + go mod tidy -go=1.23 + go build + else + echo "No XML xpath file found. Try renaming the xpath file to include 'xpath' in the name." + fi + + # Define the target directory in the home directory + target_dir="$home_dir/testbed" + + # Check if the target directory already exists + if [ ! -d "$target_dir" ]; then + # If it doesn't exist, create the directory + mkdir -p "$target_dir" + echo "Created target directory: $target_dir" + fi + + # Check if main.tf does not exist in the testbed directory + if [ ! -f "$target_dir/main.tf" ]; then + # Create main.tf + touch "$target_dir/main.tf" + echo "Created main.tf in the testbed directory" + fi + + # Create a folder named after device_name appended with "_1" + device_folder="$target_dir/${user_input}_1" + if [ ! -d "$device_folder" ]; then + # If it doesn't exist, create the folder + mkdir -p "$device_folder" + echo "Created folder: $device_folder" + fi + + # Check if main.tf does not exist in the device folder + if [ ! -f "$device_folder/main.tf" ]; then + # Create main.tf in the device folder + touch "$device_folder/main.tf" + echo "Created main.tf in the device folder: $device_folder" + fi + +else + echo "Invalid choice. Please enter 1 or 2." +fi + diff --git a/Samples/static_vxlan/medium-config.xml b/Samples/static_vxlan/medium-config.xml deleted file mode 100644 index e325447b..00000000 --- a/Samples/static_vxlan/medium-config.xml +++ /dev/null @@ -1,117 +0,0 @@ - - vMX-addr-0 - - $6$Ko4jDdWi$3T6N1wqgxkrEQUSuk1t/lgdMj1r7PK1dsAhAcdF63SUiqj5E/jVkzcSF25uJ2oRuNavm.MQoEclS2dyqVzo1L1 - - - python3 - - - - jcluser - 2000 - super-user - - $6$qaVklik0$XJOuOb8U/kj9XWcjadFLrUde/ezOTY8d.QN4cRwnk7ZcNNfdJIF8B.2dOVOwUzTDFjuulNqrmThZrMzismmAE. - - - - - - allow - - - - - - - - 3000 - - - - - - - * - - any - - - - - interactive-commands - - interactive-commands - - - - - messages - - any - - - - authorization - - - - - - - - - dhcp_logfile - 10m - - all - - packet - - - - - - - - 0 - - 0 - 8 - - - - - - - fxp0 - - 0 - - -
- 100.123.1.0/16 -
-
-
-
-
-
- - - - 0.0.0.0/0 - 100.123.0.1 - - - - - - - fxp0.0 - - - - - \ No newline at end of file diff --git a/Samples/static_vxlan/short-config.xml b/Samples/static_vxlan/short-config.xml deleted file mode 100644 index f7223255..00000000 --- a/Samples/static_vxlan/short-config.xml +++ /dev/null @@ -1,75 +0,0 @@ - - vMX-addr-0 - - $6$Ko4jDdWi$3T6N1wqgxkrEQUSuk1t/lgdMj1r7PK1dsAhAcdF63SUiqj5E/jVkzcSF25uJ2oRuNavm.MQoEclS2dyqVzo1L1 - - - python3 - - - - jcluser - 2000 - super-user - - $6$qaVklik0$XJOuOb8U/kj9XWcjadFLrUde/ezOTY8d.QN4cRwnk7ZcNNfdJIF8B.2dOVOwUzTDFjuulNqrmThZrMzismmAE. - - - - - - allow - - - - - - - - 3000 - - - - - - - * - - any - - - - - interactive-commands - - interactive-commands - - - - - messages - - any - - - - authorization - - - - - - - - - dhcp_logfile - 10m - - all - - packet - - - - - \ No newline at end of file diff --git a/Samples/static_vxlan/testbed/main.tf b/Samples/static_vxlan/testbed/main.tf new file mode 100644 index 00000000..70057b2b --- /dev/null +++ b/Samples/static_vxlan/testbed/main.tf @@ -0,0 +1,34 @@ +terraform { +required_providers { +junos-vmx = { +source = "juniper/providers/junos-vmx" +version = "22.3" +} +} +} + +provider "junos-vmx" { +host = "100.123.1.0" +port = 22 +username = "jcluser" +password = "Juniper!1" +sshkey = "" +} + +module "vmx_1" { +source = "./vmx_1" + +providers = {junos-vmx = junos-vmx} + +depends_on = [junos-vmx_destroycommit.commit-main] +} + + +resource "junos-vmx_commit" "commit-main" { +resource_name = "commit" +depends_on = [module.vmx_1] +} + +resource "junos-vmx_destroycommit" "commit-main" { +resource_name = "destroycommit" +} \ No newline at end of file diff --git a/Samples/static_vxlan/testbed/vmx_1/test.tf b/Samples/static_vxlan/testbed/vmx_1/test.tf new file mode 100644 index 00000000..0073e67e --- /dev/null +++ b/Samples/static_vxlan/testbed/vmx_1/test.tf @@ -0,0 +1,327 @@ +terraform { + required_providers { + junos-vmx = { + source = "juniper/providers/junos-vmx" + version = "22.3" + } + } +} + +resource "junos-vmx_SystemSyslogUser" "vmx_1" { +resource_name = "vmx_1" +} + +resource "junos-vmx_SystemSyslogFileContentsInfo" "vmx_2" { +resource_name = "vmx_2" +name = "/system/syslog/file/name" +name__1 = "/system/syslog/file/contents/name" +info = "/system/syslog/file/contents/info" +} + +resource "junos-vmx_SystemProcessesDhcp__ServiceTraceoptionsLevel" "vmx_3" { +resource_name = "vmx_3" +level = "/system/processes/dhcp-service/traceoptions/level" +} + +resource "junos-vmx_InterfacesInterfaceUnitFamilyInetAddressName" "vmx_4" { +resource_name = "vmx_4" +name = "/interfaces/interface/name" +name__1 = "/interfaces/interface/unit/name" +name__2 = "/interfaces/interface/unit/family/inet/address/name" +} + +resource "junos-vmx_ChassisFpcLite__Mode" "vmx_5" { +resource_name = "vmx_5" +name = "/chassis/fpc/name" +lite__mode = "/chassis/fpc/lite-mode" +} + +resource "junos-vmx_ProtocolsRouter__AdvertisementInterface" "vmx_6" { +resource_name = "vmx_6" +} +resource "junos-vmx_SystemRoot__Authentication" "vmx_7" { +resource_name = "vmx_7" +} + +resource "junos-vmx_SystemLoginUserUid" "vmx_8" { +resource_name = "vmx_8" +name = "/system/login/user/name" +uid = "/system/login/user/uid" +} + +resource "junos-vmx_SystemServices" "vmx_9" { +resource_name = "vmx_9" +} + +resource "junos-vmx_SystemSyslogFileName" "vmx_10" { +resource_name = "vmx_10" +name = "/system/syslog/file/name" +} + +resource "junos-vmx_SystemProcessesDhcp__ServiceTraceoptionsFileSize" "vmx_11" { +resource_name = "vmx_11" +size = "/system/processes/dhcp-service/traceoptions/file/size" +} + +resource "junos-vmx_SystemRoot__AuthenticationEncrypted__Password" "vmx_12" { +resource_name = "vmx_12" +encrypted__password = "/system/root-authentication/encrypted-password" +} + +resource "junos-vmx_SystemLoginUserAuthentication" "vmx_13" { +resource_name = "vmx_13" +name = "/system/login/user/name" +} + +resource "junos-vmx_SystemSyslogUserContentsName" "vmx_14" { +resource_name = "vmx_14" +name = "/system/syslog/user/name" +name__1 = "/system/syslog/user/contents/name" +} + +resource "junos-vmx_SystemSyslogFile" "vmx_15" { +resource_name = "vmx_15" +} + +resource "junos-vmx_SystemSyslogFileContents" "vmx_16" { +resource_name = "vmx_16" +name = "/system/syslog/file/name" +} + +resource "junos-vmx_SystemServicesRestHttpPort" "vmx_17" { +resource_name = "vmx_17" +port = "/system/services/rest/http/port" +} + +resource "junos-vmx_SystemProcessesDhcp__ServiceTraceoptionsFlagName" "vmx_18" { +resource_name = "vmx_18" +name = "/system/processes/dhcp-service/traceoptions/flag/name" +} + +resource "junos-vmx_SystemLogin" "vmx_19" { +resource_name = "vmx_19" +} + +resource "junos-vmx_SystemLoginUser" "vmx_20" { +resource_name = "vmx_20" +} + +resource "junos-vmx_SystemSyslogUserContents" "vmx_21" { +resource_name = "vmx_21" +name = "/system/syslog/user/name" +} + +resource "junos-vmx_InterfacesInterfaceUnitFamilyInetAddress" "vmx_22" { +resource_name = "vmx_22" +name = "/interfaces/interface/name" +name__1 = "/interfaces/interface/unit/name" +} + +resource "junos-vmx_Routing__OptionsStaticRouteNext__Hop" "vmx_23" { +resource_name = "vmx_23" +name = "/routing-options/static/route/name" +next__hop = "/routing-options/static/route/next-hop" +} + +resource "junos-vmx_SystemScriptsLanguage" "vmx_24" { +resource_name = "vmx_24" +language = "/system/scripts/language" +} + +resource "junos-vmx_SystemLoginUserAuthenticationEncrypted__Password" "vmx_25" { +resource_name = "vmx_25" +name = "/system/login/user/name" +encrypted__password = "/system/login/user/authentication/encrypted-password" +} + +resource "junos-vmx_SystemProcessesDhcp__ServiceTraceoptions" "vmx_26" { +resource_name = "vmx_26" +} + +resource "junos-vmx_InterfacesInterfaceUnitName" "vmx_27" { +resource_name = "vmx_27" +name = "/interfaces/interface/name" +name__1 = "/interfaces/interface/unit/name" +} + +resource "junos-vmx_InterfacesInterfaceUnitFamily" "vmx_28" { +resource_name = "vmx_28" +name = "/interfaces/interface/name" +name__1 = "/interfaces/interface/unit/name" +} + +resource "junos-vmx_SystemScripts" "vmx_29" { +resource_name = "vmx_29" +} + +resource "junos-vmx_SystemLoginUserClass" "vmx_30" { +resource_name = "vmx_30" +name = "/system/login/user/name" +class = "/system/login/user/class" +} + +resource "junos-vmx_SystemServicesRestEnable__Explorer" "vmx_31" { +resource_name = "vmx_31" +enable__explorer = "/system/services/rest/enable-explorer" +} + +resource "junos-vmx_SystemSyslog" "vmx_32" { +resource_name = "vmx_32" +} + +resource "junos-vmx_SystemProcesses" "vmx_33" { +resource_name = "vmx_33" +} + +resource "junos-vmx_ProtocolsRouter__Advertisement" "vmx_34" { +resource_name = "vmx_34" +} + +resource "junos-vmx_ProtocolsRouter__AdvertisementInterfaceName" "vmx_35" { +resource_name = "vmx_35" +name = "/protocols/router-advertisement/interface/name" +} + +resource "junos-vmx_SystemLoginUserName" "vmx_36" { +resource_name = "vmx_36" +name = "/system/login/user/name" +} + +resource "junos-vmx_ChassisFpc" "vmx_37" { +resource_name = "vmx_37" +} + +resource "junos-vmx_ChassisFpcPicNumber__Of__Ports" "vmx_38" { +resource_name = "vmx_38" +name = "/chassis/fpc/name" +name__1 = "/chassis/fpc/pic/name" +number__of__ports = "/chassis/fpc/pic/number-of-ports" +} + +resource "junos-vmx_SystemProcessesDhcp__ServiceTraceoptionsFileFilename" "vmx_39" { +resource_name = "vmx_39" +filename = "/system/processes/dhcp-service/traceoptions/file/filename" +} + +resource "junos-vmx_Routing__OptionsStaticRoute" "vmx_40" { +resource_name = "vmx_40" +} + +resource "junos-vmx_SystemServicesSshRoot__Login" "vmx_41" { +resource_name = "vmx_41" +root__login = "/system/services/ssh/root-login" +} + +resource "junos-vmx_ChassisFpcPic" "vmx_42" { +resource_name = "vmx_42" +name = "/chassis/fpc/name" +} + +resource "junos-vmx_ChassisFpcPicName" "vmx_43" { +resource_name = "vmx_43" +name = "/chassis/fpc/name" +name__1 = "/chassis/fpc/pic/name" +} + +resource "junos-vmx_InterfacesInterface" "vmx_44" { +resource_name = "vmx_44" +} + +resource "junos-vmx_InterfacesInterfaceUnitFamilyInet" "vmx_45" { +resource_name = "vmx_45" +name = "/interfaces/interface/name" +name__1 = "/interfaces/interface/unit/name" +} + +resource "junos-vmx_Routing__OptionsStaticRouteName" "vmx_46" { +resource_name = "vmx_46" +name = "/routing-options/static/route/name" +} + +resource "junos-vmx_SystemServicesNetconfSsh" "vmx_47" { +resource_name = "vmx_47" +} + +resource "junos-vmx_SystemServicesRestHttp" "vmx_48" { +resource_name = "vmx_48" +} + +resource "junos-vmx_SystemSyslogFileContentsName" "vmx_49" { +resource_name = "vmx_49" +name = "/system/syslog/file/name" +name__1 = "/system/syslog/file/contents/name" +} + +resource "junos-vmx_SystemProcessesDhcp__ServiceTraceoptionsFlag" "vmx_50" { +resource_name = "vmx_50" +} + +resource "junos-vmx_SystemHost__Name" "vmx_51" { +resource_name = "vmx_51" +host__name = "/host-name" +} + +resource "junos-vmx_SystemSyslogFileContentsNotice" "vmx_52" { +resource_name = "vmx_52" +name = "/system/syslog/file/name" +name__1 = "/system/syslog/file/contents/name" +notice = "/system/syslog/file/contents/notice" +} + +resource "junos-vmx_Routing__OptionsStatic" "vmx_53" { +resource_name = "vmx_53" +} + +resource "junos-vmx_SystemServicesSsh" "vmx_54" { +resource_name = "vmx_54" +} + +resource "junos-vmx_SystemServicesNetconf" "vmx_55" { +resource_name = "vmx_55" +} + +resource "junos-vmx_SystemServicesRest" "vmx_56" { +resource_name = "vmx_56" +} + +resource "junos-vmx_SystemSyslogUserContentsEmergency" "vmx_57" { +resource_name = "vmx_57" +name = "/system/syslog/user/name" +name__1 = "/system/syslog/user/contents/name" +emergency = "/system/syslog/user/contents/emergency" +} + +resource "junos-vmx_ChassisFpcName" "vmx_58" { +resource_name = "vmx_58" +name = "/chassis/fpc/name" +} + +resource "junos-vmx_SystemSyslogUserName" "vmx_59" { +resource_name = "vmx_59" +name = "/system/syslog/user/name" +} + +resource "junos-vmx_SystemProcessesDhcp__Service" "vmx_60" { +resource_name = "vmx_60" +} + +resource "junos-vmx_InterfacesInterfaceName" "vmx_61" { +resource_name = "vmx_61" +name = "/interfaces/interface/name" +} + +resource "junos-vmx_SystemSyslogFileContentsAny" "vmx_62" { +resource_name = "vmx_62" +name = "/system/syslog/file/name" +name__1 = "/system/syslog/file/contents/name" +any = "/system/syslog/file/contents/any" +} + +resource "junos-vmx_SystemProcessesDhcp__ServiceTraceoptionsFile" "vmx_63" { +resource_name = "vmx_63" +} + +resource "junos-vmx_InterfacesInterfaceUnit" "vmx_64" { +resource_name = "vmx_64" +name = "/interfaces/interface/name" +} \ No newline at end of file diff --git a/Samples/static_vxlan/vmx-config.xml b/Samples/static_vxlan/vmx-config.xml deleted file mode 100644 index 3ac8ce06..00000000 --- a/Samples/static_vxlan/vmx-config.xml +++ /dev/null @@ -1,124 +0,0 @@ - - - 22.3R1.11 - - vMX-addr-0 - - $6$Ko4jDdWi$3T6N1wqgxkrEQUSuk1t/lgdMj1r7PK1dsAhAcdF63SUiqj5E/jVkzcSF25uJ2oRuNavm.MQoEclS2dyqVzo1L1 - - - python3 - - - - jcluser - 2000 - super-user - - $6$qaVklik0$XJOuOb8U/kj9XWcjadFLrUde/ezOTY8d.QN4cRwnk7ZcNNfdJIF8B.2dOVOwUzTDFjuulNqrmThZrMzismmAE. - - - - - - allow - - - - - - - - 3000 - - - - - - - * - - any - - - - - interactive-commands - - interactive-commands - - - - - messages - - any - - - - authorization - - - - - - - - - dhcp_logfile - 10m - - all - - packet - - - - - - - - 0 - - 0 - 8 - - - - - - - fxp0 - - 0 - - -
- 100.123.1.0/16 -
-
-
-
-
-
- - - - 0.0.0.0/0 - 100.123.0.1 - - - - - - - fxp0.0 - - - - -
- - - -
\ No newline at end of file diff --git a/Samples/static_vxlan/vmx_config.xml b/Samples/static_vxlan/vmx_config.xml new file mode 100644 index 00000000..d6f076b9 --- /dev/null +++ b/Samples/static_vxlan/vmx_config.xml @@ -0,0 +1,116 @@ + +vMX-addr-0 + +$6$Ko4jDdWi$3T6N1wqgxkrEQUSuk1t/lgdMj1r7PK1dsAhAcdF63SUiqj5E/jVkzcSF25uJ2oRuNavm.MQoEclS2dyqVzo1L1 + + +python3 + + + + jcluser + 2000 + super-user + + $6$qaVklik0$XJOuOb8U/kj9XWcjadFLrUde/ezOTY8d.QN4cRwnk7ZcNNfdJIF8B.2dOVOwUzTDFjuulNqrmThZrMzismmAE. + + + + + + allow + + + + + + + + 3000 + + + + + + + * + + any + + + + + interactive-commands + + interactive-commands + + + + + messages + + any + + + + authorization + + + + + + + + + dhcp_logfile + 10m + + all + + packet + + + + + + + +0 + + 0 + 8 + + + + + + +fxp0 + + 0 + + +
+ 100.123.1.0/16 +
+
+
+
+
+
+ + + + 0.0.0.0/0 + 100.123.0.1 + + + + + + + fxp0.0 + + + + diff --git a/Samples/static_vxlan/xpath/updated_xpath_inputs.xml b/Samples/static_vxlan/xpath/updated_xpath_inputs.xml new file mode 100644 index 00000000..2e59dcaf --- /dev/null +++ b/Samples/static_vxlan/xpath/updated_xpath_inputs.xml @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/generateFiles.sh b/generateFiles.sh index 98490654..0caaf43f 100755 --- a/generateFiles.sh +++ b/generateFiles.sh @@ -195,7 +195,7 @@ EOF # # Output the supported devices # echo "Supported devices for $selected_device: $supported_devices" - common_path="yang/$junos_version/$junos_version_combined/common/junos-common-types@2022-01-01.yang" + common_path="yang/$junos_version/$junos_version_combined/common/junos-common-types@2023-01-01.yang" path_to="yang/$junos_version/$junos_version_combined/$supported_devices/conf/" # Define the target directory in the home directory @@ -296,8 +296,7 @@ EOF go build ./processProviders -config $home_dir/config.toml cd $home_dir/terraform_providers - # go mod tidy -go=1.16 && go mod tidy -go=1.17 - go mod tidy -go=1.23 + go mod tidy -go=1.16 && go mod tidy -go=1.17 go build else echo "No XML xpath file found. Try renaming the xpath file to include 'xpath' in the name." From 285fd873bd1bbc153a7f374690dfaba9d82caaee Mon Sep 17 00:00:00 2001 From: Natalie Date: Fri, 6 Sep 2024 10:41:06 -0700 Subject: [PATCH 06/19] format fix --- Samples/static_vxlan/README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Samples/static_vxlan/README.md b/Samples/static_vxlan/README.md index 7fe27fe1..5cc88d1c 100644 --- a/Samples/static_vxlan/README.md +++ b/Samples/static_vxlan/README.md @@ -28,11 +28,11 @@ This is an example that demonstrates how to use JTAF on the Static VXLAN Sandbox rm generateFiles.sh mv Samples/static_vxlan/generateFiles.sh junos-terraform ``` - This updates the two lines below. You could also use vim to update these lines. - Line 198: # common_path="yang/$junos_version/$junos_version_combined/common/junos-common-types@2023-01-01.yang" - common_path="yang/$junos_version/$junos_version_combined/common/junos-common-types@2022-01-01.yang" - Line 299: # go mod tidy -go=1.16 && go mod tidy -go=1.17 - go mod tidy -go=1.23 +This updates the two lines below. You could also use vim to update these lines. + Line 198: # common_path="yang/$junos_version/$junos_version_combined/common/junos-common-types@2023-01-01.yang" + common_path="yang/$junos_version/$junos_version_combined/common/junos-common-types@2022-01-01.yang" + Line 299: # go mod tidy -go=1.16 && go mod tidy -go=1.17 + go mod tidy -go=1.23 * Move the vMX-A1 configuration file into to a directory titled user_config_files. ```bash mkdir user_config_files From 6936eb99deae0729a062fc8aa00ac39133a7254d Mon Sep 17 00:00:00 2001 From: Natalie Date: Fri, 6 Sep 2024 10:41:35 -0700 Subject: [PATCH 07/19] another format fix --- Samples/static_vxlan/README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Samples/static_vxlan/README.md b/Samples/static_vxlan/README.md index 5cc88d1c..ef9541b9 100644 --- a/Samples/static_vxlan/README.md +++ b/Samples/static_vxlan/README.md @@ -29,10 +29,10 @@ This is an example that demonstrates how to use JTAF on the Static VXLAN Sandbox mv Samples/static_vxlan/generateFiles.sh junos-terraform ``` This updates the two lines below. You could also use vim to update these lines. - Line 198: # common_path="yang/$junos_version/$junos_version_combined/common/junos-common-types@2023-01-01.yang" - common_path="yang/$junos_version/$junos_version_combined/common/junos-common-types@2022-01-01.yang" - Line 299: # go mod tidy -go=1.16 && go mod tidy -go=1.17 - go mod tidy -go=1.23 +Line 198: # common_path="yang/$junos_version/$junos_version_combined/common/junos-common-types@2023-01-01.yang" + common_path="yang/$junos_version/$junos_version_combined/common/junos-common-types@2022-01-01.yang" +Line 299: # go mod tidy -go=1.16 && go mod tidy -go=1.17 + go mod tidy -go=1.23 * Move the vMX-A1 configuration file into to a directory titled user_config_files. ```bash mkdir user_config_files From 623aece15dacc871be713027af72cf222746f5a5 Mon Sep 17 00:00:00 2001 From: Natalie Date: Fri, 6 Sep 2024 11:11:00 -0700 Subject: [PATCH 08/19] format --- Samples/static_vxlan/README.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/Samples/static_vxlan/README.md b/Samples/static_vxlan/README.md index ef9541b9..fec56042 100644 --- a/Samples/static_vxlan/README.md +++ b/Samples/static_vxlan/README.md @@ -29,10 +29,12 @@ This is an example that demonstrates how to use JTAF on the Static VXLAN Sandbox mv Samples/static_vxlan/generateFiles.sh junos-terraform ``` This updates the two lines below. You could also use vim to update these lines. -Line 198: # common_path="yang/$junos_version/$junos_version_combined/common/junos-common-types@2023-01-01.yang" - common_path="yang/$junos_version/$junos_version_combined/common/junos-common-types@2022-01-01.yang" -Line 299: # go mod tidy -go=1.16 && go mod tidy -go=1.17 - go mod tidy -go=1.23 +**Line 198** +old: common_path="yang/$junos_version/$junos_version_combined/common/junos-common-types@2023-01-01.yang" +new: common_path="yang/$junos_version/$junos_version_combined/common/junos-common-types@2022-01-01.yang" +**Line 299** +old: go mod tidy -go=1.16 && go mod tidy -go=1.17 +new: go mod tidy -go=1.23 * Move the vMX-A1 configuration file into to a directory titled user_config_files. ```bash mkdir user_config_files From 0012e133d6b520d0c31ef77e3bc1118995765387 Mon Sep 17 00:00:00 2001 From: Natalie Date: Fri, 6 Sep 2024 11:11:47 -0700 Subject: [PATCH 09/19] format --- Samples/static_vxlan/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Samples/static_vxlan/README.md b/Samples/static_vxlan/README.md index fec56042..eba9a6d7 100644 --- a/Samples/static_vxlan/README.md +++ b/Samples/static_vxlan/README.md @@ -29,10 +29,10 @@ This is an example that demonstrates how to use JTAF on the Static VXLAN Sandbox mv Samples/static_vxlan/generateFiles.sh junos-terraform ``` This updates the two lines below. You could also use vim to update these lines. -**Line 198** +* Line 198 old: common_path="yang/$junos_version/$junos_version_combined/common/junos-common-types@2023-01-01.yang" new: common_path="yang/$junos_version/$junos_version_combined/common/junos-common-types@2022-01-01.yang" -**Line 299** +* Line 299 old: go mod tidy -go=1.16 && go mod tidy -go=1.17 new: go mod tidy -go=1.23 * Move the vMX-A1 configuration file into to a directory titled user_config_files. From 79190d070259a7b3163780c101d22b82406003cb Mon Sep 17 00:00:00 2001 From: Natalie Date: Fri, 6 Sep 2024 11:12:51 -0700 Subject: [PATCH 10/19] format struggle --- Samples/static_vxlan/README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Samples/static_vxlan/README.md b/Samples/static_vxlan/README.md index eba9a6d7..4a0b12dd 100644 --- a/Samples/static_vxlan/README.md +++ b/Samples/static_vxlan/README.md @@ -29,12 +29,14 @@ This is an example that demonstrates how to use JTAF on the Static VXLAN Sandbox mv Samples/static_vxlan/generateFiles.sh junos-terraform ``` This updates the two lines below. You could also use vim to update these lines. -* Line 198 +```bash +Line 198 old: common_path="yang/$junos_version/$junos_version_combined/common/junos-common-types@2023-01-01.yang" new: common_path="yang/$junos_version/$junos_version_combined/common/junos-common-types@2022-01-01.yang" -* Line 299 +Line 299 old: go mod tidy -go=1.16 && go mod tidy -go=1.17 new: go mod tidy -go=1.23 +``` * Move the vMX-A1 configuration file into to a directory titled user_config_files. ```bash mkdir user_config_files From 1bcb758c80c1e3757d736e6598db331cc46e57dc Mon Sep 17 00:00:00 2001 From: Natalie Date: Fri, 6 Sep 2024 11:14:02 -0700 Subject: [PATCH 11/19] format struggle --- Samples/static_vxlan/README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Samples/static_vxlan/README.md b/Samples/static_vxlan/README.md index 4a0b12dd..f90401fd 100644 --- a/Samples/static_vxlan/README.md +++ b/Samples/static_vxlan/README.md @@ -31,11 +31,11 @@ This is an example that demonstrates how to use JTAF on the Static VXLAN Sandbox This updates the two lines below. You could also use vim to update these lines. ```bash Line 198 -old: common_path="yang/$junos_version/$junos_version_combined/common/junos-common-types@2023-01-01.yang" -new: common_path="yang/$junos_version/$junos_version_combined/common/junos-common-types@2022-01-01.yang" +# common_path="yang/$junos_version/$junos_version_combined/common/junos-common-types@2023-01-01.yang" +common_path="yang/$junos_version/$junos_version_combined/common/junos-common-types@2022-01-01.yang" Line 299 -old: go mod tidy -go=1.16 && go mod tidy -go=1.17 -new: go mod tidy -go=1.23 +# go mod tidy -go=1.16 && go mod tidy -go=1.17 +go mod tidy -go=1.23 ``` * Move the vMX-A1 configuration file into to a directory titled user_config_files. ```bash From c45a96a87af017b4abfe3452d064acb4f1b905a9 Mon Sep 17 00:00:00 2001 From: Natalie Date: Wed, 23 Oct 2024 12:51:06 -0700 Subject: [PATCH 12/19] two spine two leaf sample --- Samples/static_vxlan/generateFiles.sh | 342 ------- Samples/static_vxlan/testbed/main.tf | 34 - Samples/static_vxlan/testbed/vmx_1/test.tf | 327 ------- Samples/static_vxlan/vmx_config.xml | 116 --- .../xpath/updated_xpath_inputs.xml | 66 -- .../README.md | 42 +- .../config_files/leaf1-config.xml | 872 ++++++++++++++++++ .../config_files/leaf2-config.xml | 872 ++++++++++++++++++ .../config_files/spine1-config.xml | 755 +++++++++++++++ .../config_files/spine2-config.xml | 765 +++++++++++++++ Samples/two_spine_two_leaf/testbed/main.tf | 36 + .../two_spine_two_leaf/testbed/vmx_1/main.tf | 69 ++ 12 files changed, 3395 insertions(+), 901 deletions(-) delete mode 100644 Samples/static_vxlan/generateFiles.sh delete mode 100644 Samples/static_vxlan/testbed/main.tf delete mode 100644 Samples/static_vxlan/testbed/vmx_1/test.tf delete mode 100644 Samples/static_vxlan/vmx_config.xml delete mode 100644 Samples/static_vxlan/xpath/updated_xpath_inputs.xml rename Samples/{static_vxlan => two_spine_two_leaf}/README.md (66%) create mode 100644 Samples/two_spine_two_leaf/config_files/leaf1-config.xml create mode 100644 Samples/two_spine_two_leaf/config_files/leaf2-config.xml create mode 100644 Samples/two_spine_two_leaf/config_files/spine1-config.xml create mode 100644 Samples/two_spine_two_leaf/config_files/spine2-config.xml create mode 100644 Samples/two_spine_two_leaf/testbed/main.tf create mode 100644 Samples/two_spine_two_leaf/testbed/vmx_1/main.tf diff --git a/Samples/static_vxlan/generateFiles.sh b/Samples/static_vxlan/generateFiles.sh deleted file mode 100644 index 086924bd..00000000 --- a/Samples/static_vxlan/generateFiles.sh +++ /dev/null @@ -1,342 +0,0 @@ -#!/bin/bash -set -e - -# Function to check if a command is available -command_exists() { - command -v "$1" >/dev/null 2>&1 -} - -retry_script() { - while true; do - ./generateFiles.sh - - # Check the exit status of the script - if [ $? -eq 0 ]; then - # Script ran successfully, exit the loop - break - else - # Script failed, display an error message - echo "Script failed. Retrying in 5 seconds..." - sleep 5 - fi - done -} - -# caputres the user's home directory -home_dir="$PWD" - -# Check if Python is installed -if ! command_exists python3; then - echo "Python is not installed. Please Install 'Python' before running the script" -fi - -# Check if Python is installed -if ! command_exists go; then - echo "Go is not installed. Please Install 'Go' before running the script." -fi - -# Prompt the user for their choice -echo "Do you want to:" -echo "1. Build a provider from scratch" -echo "2. Provide a configuration" -read -p "Enter your choice (1/2): " choice - -# Check the user's choice -if [ "$choice" == "1" ]; then - echo "You chose to build a provider from scratch." - # Create config.toml file - if [ ! -f "config.toml" ]; then - echo "Creating config.toml file..." - cat << EOF > config.toml - yangDir = "$(pwd)/yang_files" - providerDir = "$(pwd)/terraform_providers" - xpathPath = "$(pwd)/xpath_inputs.xml" - providerName = "vsrx" - fileType = "both" -EOF - fi - - # Check if yang_files folder exists - if [ -d "yang_files" ]; then - # Find at least one .yang file in yang_files folder - yang_files=$(find yang_files -name "*.yang") - # If YANG files are found, generate YIN and Xpath Files - if [ -n "$yang_files" ]; then - echo "Found .yang files in yang_files folder." - # Change directory to /cmd/processYang - cd $home_dir/cmd/processYang || exit 1 - # Activate venv - python3 -m venv venv - source venv/bin/activate - # Check and install pyang if needed - if ! command_exists pyang; then - echo "pyang is not installed. Installing pyang..." - pip install pyang - pyang -v - fi - # Run go build command and generate YIN and Xpath Files - go build - ./processYang -config $home_dir/config.toml - deactivate - else - echo "No .yang files found in yang_files folder. Add files and re-run script" - fi - else - echo "yang_files folder does not exist. Create and add necessary files" - fi - -elif [ "$choice" == "2" ]; then - echo "You chose to provide a configuration." - - script_directory="$home_dir/user_config_files" - - # Create the directory if it doesn't exist - mkdir -p "$script_directory" - - # Initialize the config_file variable - config_file="" - - echo "" - echo "" - - # Prompt the user for the configuration file name and validate it - while [ ! -f "$config_file" ]; do - read -p "Enter the configuration file name: " config_file - full_path="$script_directory/$config_file" - - if [ -f "$full_path" ]; then - config_file="$full_path" - else - echo "The provided file does not exist in your script's directory." - config_file="" - fi - done - - # Ask user what device they are working on - valid_options=("vsrx" "vmx" "vqfx" "vptx") - user_input="" - - while [[ ! " ${valid_options[*]} " =~ " $user_input " ]]; do - read -p "Enter a valid device option (vsrx, vmx, vqfx, vptx): " user_input - - if [[ ! " ${valid_options[*]} " =~ " $user_input " ]]; then - echo "Invalid input. Please enter one of the following options: vsrx, vmx, vqfx, vptx." - fi - done - - # Prompt the user for the Junos version - read -p "Enter the Junos version: " junos_version - - echo "" - echo "" - # Display the user's selections - echo "Configuration file path: $config_file" - echo "Device name: $user_input" - echo "Junos version: $junos_version" - - - # Ask for confirmation - while true; do - read -p "Are these selections correct? (yes/no): " confirmation - case "$confirmation" in - [Yy]* ) break;; - [Nn]* ) - # If the user says no, allow them to start over - exec "$0";; - * ) echo "Please answer 'yes' or 'no'.";; - esac - done - - echo "" - echo "" - # Create or overwrite config.toml file - echo "Creating or overwriting config.toml file..." - cat > config.toml << EOF - yangDir = "$(pwd)/yang_files" - providerDir = "$(pwd)/terraform_providers" - xpathPath = "$(pwd)/xpath_inputs.xml" - providerName = "$user_input" - fileType = "both" -EOF - - echo "" - echo "" - - junos_version_combined="${junos_version}R1" - - device_names=("vmx" "vptx" "vsrx" "vqfx") - device_mappings=("junos" "junos" "junos-es" "junos-qfx") - - # Find the index of the input device name in the device_names array - index=-1 - for ((i=0; i<${#device_names[@]}; i++)); do - if [ "${device_names[$i]}" = "$user_input" ]; then - index=$i - break - fi - done - - # Output the corresponding mapping if found - if [ $index -ne -1 ]; then - supported_devices="${device_mappings[$index]}" - else - echo "Device mapping not found." - fi - - # Use the user's input to look up the supported devices - supported_devices="${device_mappings[${user_input}]}" - - # Check if the device name exists in the mapping - if [ -z "$supported_devices" ]; then - echo "Device name not recognized." - exit 1 - fi - - # # Output the supported devices - # echo "Supported devices for $selected_device: $supported_devices" - - # common_path="yang/$junos_version/$junos_version_combined/common/junos-common-types@2023-01-01.yang" - common_path="yang/$junos_version/$junos_version_combined/common/junos-common-types@2022-01-01.yang" - path_to="yang/$junos_version/$junos_version_combined/$supported_devices/conf/" - - # Define the target directory in the home directory - target_dir="$home_dir/yang_files" - - # Check if the target directory already exists, and create it if not - if [ ! -d "$target_dir" ]; then - echo "yang_files folder does not exist. Creating and adding necessary files" - mkdir -p "$target_dir" - target_dir="$home_dir/yang" - - # Check if the target directory already exists, and create it if not - if [ ! -d "$target_dir" ]; then - mkdir -p "$target_dir" - # Git clone the Juniper YANG repository into the target directory - echo "Cloning the Juniper YANG repository for Junos $junos_version into $target_dir..." - git clone https://github.com/Juniper/yang.git "$target_dir" - fi - - # Check if the git clone was successful - if [ $? -eq 0 ]; then - echo "Cloning successful. YANG files are in $target_dir." - else - echo "Folder already created or clone failed. If clone failed, please check your internet connection or repository URL." - fi - - target_dir="$home_dir/yang_files" - - # Copy all files from the source directory to the target directory - cp -r "$path_to"* "$target_dir" - - # Copy the common file to the target directory - cp "$common_path" "$target_dir" - - # Check if the copy operation was successful - if [ $? -eq 0 ]; then - echo "Files copied successfully to $target_dir." - else - echo "Copy operation failed." - fi - - target_dir="$home_dir/yang" - - rm -rf $target_dir - fi - - # Find at least one .yang file in yang_files folder - yang_files=$(find yang_files -name "*.yang") - # If YANG files are found, generate YIN and Xpath Files - if [ -n "$yang_files" ]; then - echo "Found .yang files in yang_files folder." - # Change directory to /cmd/processYang - cd $home_dir/cmd/processYang || exit 1 - # Activate venv - python3 -m venv venv - source venv/bin/activate - # Check and install pyang if needed - if ! command_exists pyang; then - echo "pyang is not installed. Installing pyang..." - pip install pyang - pyang -v - fi - # Run go build command and generate YIN and Xpath Files - go build - ./processYang -config $home_dir/config.toml - deactivate - # go run $home_dir/Internal/processYang/createXpathInputs.go - else - echo "No .yang files found in yang_files folder. Add files and re-run script" - fi - - cd "$home_dir" - - go run createXpathInputs.go - - echo "" - echo "" - - # Search for XML files containing "xpath" in their filenames in the home directory - xml_files=$(find "$PWD" -type f -name '*xpath*.xml') - - # Define the folder name - folderName="TFtemplates" - - # Check if the folder already exists - if [ ! -d "$folderName" ]; then - # Create the folder if it doesn't exist - mkdir "$folderName" - echo "Folder '$folderName' created successfully. Folder stores tf templates for testing" - else - echo "Folder '$folderName' already exists to store .tf templates" - fi - - # Check if any matching XML files were found - if [ -n "$xml_files" ]; then - # Now Build the provider - cd $home_dir/cmd/processProviders - go build - ./processProviders -config $home_dir/config.toml - cd $home_dir/terraform_providers - # go mod tidy -go=1.16 && go mod tidy -go=1.17 - go mod tidy -go=1.23 - go build - else - echo "No XML xpath file found. Try renaming the xpath file to include 'xpath' in the name." - fi - - # Define the target directory in the home directory - target_dir="$home_dir/testbed" - - # Check if the target directory already exists - if [ ! -d "$target_dir" ]; then - # If it doesn't exist, create the directory - mkdir -p "$target_dir" - echo "Created target directory: $target_dir" - fi - - # Check if main.tf does not exist in the testbed directory - if [ ! -f "$target_dir/main.tf" ]; then - # Create main.tf - touch "$target_dir/main.tf" - echo "Created main.tf in the testbed directory" - fi - - # Create a folder named after device_name appended with "_1" - device_folder="$target_dir/${user_input}_1" - if [ ! -d "$device_folder" ]; then - # If it doesn't exist, create the folder - mkdir -p "$device_folder" - echo "Created folder: $device_folder" - fi - - # Check if main.tf does not exist in the device folder - if [ ! -f "$device_folder/main.tf" ]; then - # Create main.tf in the device folder - touch "$device_folder/main.tf" - echo "Created main.tf in the device folder: $device_folder" - fi - -else - echo "Invalid choice. Please enter 1 or 2." -fi - diff --git a/Samples/static_vxlan/testbed/main.tf b/Samples/static_vxlan/testbed/main.tf deleted file mode 100644 index 70057b2b..00000000 --- a/Samples/static_vxlan/testbed/main.tf +++ /dev/null @@ -1,34 +0,0 @@ -terraform { -required_providers { -junos-vmx = { -source = "juniper/providers/junos-vmx" -version = "22.3" -} -} -} - -provider "junos-vmx" { -host = "100.123.1.0" -port = 22 -username = "jcluser" -password = "Juniper!1" -sshkey = "" -} - -module "vmx_1" { -source = "./vmx_1" - -providers = {junos-vmx = junos-vmx} - -depends_on = [junos-vmx_destroycommit.commit-main] -} - - -resource "junos-vmx_commit" "commit-main" { -resource_name = "commit" -depends_on = [module.vmx_1] -} - -resource "junos-vmx_destroycommit" "commit-main" { -resource_name = "destroycommit" -} \ No newline at end of file diff --git a/Samples/static_vxlan/testbed/vmx_1/test.tf b/Samples/static_vxlan/testbed/vmx_1/test.tf deleted file mode 100644 index 0073e67e..00000000 --- a/Samples/static_vxlan/testbed/vmx_1/test.tf +++ /dev/null @@ -1,327 +0,0 @@ -terraform { - required_providers { - junos-vmx = { - source = "juniper/providers/junos-vmx" - version = "22.3" - } - } -} - -resource "junos-vmx_SystemSyslogUser" "vmx_1" { -resource_name = "vmx_1" -} - -resource "junos-vmx_SystemSyslogFileContentsInfo" "vmx_2" { -resource_name = "vmx_2" -name = "/system/syslog/file/name" -name__1 = "/system/syslog/file/contents/name" -info = "/system/syslog/file/contents/info" -} - -resource "junos-vmx_SystemProcessesDhcp__ServiceTraceoptionsLevel" "vmx_3" { -resource_name = "vmx_3" -level = "/system/processes/dhcp-service/traceoptions/level" -} - -resource "junos-vmx_InterfacesInterfaceUnitFamilyInetAddressName" "vmx_4" { -resource_name = "vmx_4" -name = "/interfaces/interface/name" -name__1 = "/interfaces/interface/unit/name" -name__2 = "/interfaces/interface/unit/family/inet/address/name" -} - -resource "junos-vmx_ChassisFpcLite__Mode" "vmx_5" { -resource_name = "vmx_5" -name = "/chassis/fpc/name" -lite__mode = "/chassis/fpc/lite-mode" -} - -resource "junos-vmx_ProtocolsRouter__AdvertisementInterface" "vmx_6" { -resource_name = "vmx_6" -} -resource "junos-vmx_SystemRoot__Authentication" "vmx_7" { -resource_name = "vmx_7" -} - -resource "junos-vmx_SystemLoginUserUid" "vmx_8" { -resource_name = "vmx_8" -name = "/system/login/user/name" -uid = "/system/login/user/uid" -} - -resource "junos-vmx_SystemServices" "vmx_9" { -resource_name = "vmx_9" -} - -resource "junos-vmx_SystemSyslogFileName" "vmx_10" { -resource_name = "vmx_10" -name = "/system/syslog/file/name" -} - -resource "junos-vmx_SystemProcessesDhcp__ServiceTraceoptionsFileSize" "vmx_11" { -resource_name = "vmx_11" -size = "/system/processes/dhcp-service/traceoptions/file/size" -} - -resource "junos-vmx_SystemRoot__AuthenticationEncrypted__Password" "vmx_12" { -resource_name = "vmx_12" -encrypted__password = "/system/root-authentication/encrypted-password" -} - -resource "junos-vmx_SystemLoginUserAuthentication" "vmx_13" { -resource_name = "vmx_13" -name = "/system/login/user/name" -} - -resource "junos-vmx_SystemSyslogUserContentsName" "vmx_14" { -resource_name = "vmx_14" -name = "/system/syslog/user/name" -name__1 = "/system/syslog/user/contents/name" -} - -resource "junos-vmx_SystemSyslogFile" "vmx_15" { -resource_name = "vmx_15" -} - -resource "junos-vmx_SystemSyslogFileContents" "vmx_16" { -resource_name = "vmx_16" -name = "/system/syslog/file/name" -} - -resource "junos-vmx_SystemServicesRestHttpPort" "vmx_17" { -resource_name = "vmx_17" -port = "/system/services/rest/http/port" -} - -resource "junos-vmx_SystemProcessesDhcp__ServiceTraceoptionsFlagName" "vmx_18" { -resource_name = "vmx_18" -name = "/system/processes/dhcp-service/traceoptions/flag/name" -} - -resource "junos-vmx_SystemLogin" "vmx_19" { -resource_name = "vmx_19" -} - -resource "junos-vmx_SystemLoginUser" "vmx_20" { -resource_name = "vmx_20" -} - -resource "junos-vmx_SystemSyslogUserContents" "vmx_21" { -resource_name = "vmx_21" -name = "/system/syslog/user/name" -} - -resource "junos-vmx_InterfacesInterfaceUnitFamilyInetAddress" "vmx_22" { -resource_name = "vmx_22" -name = "/interfaces/interface/name" -name__1 = "/interfaces/interface/unit/name" -} - -resource "junos-vmx_Routing__OptionsStaticRouteNext__Hop" "vmx_23" { -resource_name = "vmx_23" -name = "/routing-options/static/route/name" -next__hop = "/routing-options/static/route/next-hop" -} - -resource "junos-vmx_SystemScriptsLanguage" "vmx_24" { -resource_name = "vmx_24" -language = "/system/scripts/language" -} - -resource "junos-vmx_SystemLoginUserAuthenticationEncrypted__Password" "vmx_25" { -resource_name = "vmx_25" -name = "/system/login/user/name" -encrypted__password = "/system/login/user/authentication/encrypted-password" -} - -resource "junos-vmx_SystemProcessesDhcp__ServiceTraceoptions" "vmx_26" { -resource_name = "vmx_26" -} - -resource "junos-vmx_InterfacesInterfaceUnitName" "vmx_27" { -resource_name = "vmx_27" -name = "/interfaces/interface/name" -name__1 = "/interfaces/interface/unit/name" -} - -resource "junos-vmx_InterfacesInterfaceUnitFamily" "vmx_28" { -resource_name = "vmx_28" -name = "/interfaces/interface/name" -name__1 = "/interfaces/interface/unit/name" -} - -resource "junos-vmx_SystemScripts" "vmx_29" { -resource_name = "vmx_29" -} - -resource "junos-vmx_SystemLoginUserClass" "vmx_30" { -resource_name = "vmx_30" -name = "/system/login/user/name" -class = "/system/login/user/class" -} - -resource "junos-vmx_SystemServicesRestEnable__Explorer" "vmx_31" { -resource_name = "vmx_31" -enable__explorer = "/system/services/rest/enable-explorer" -} - -resource "junos-vmx_SystemSyslog" "vmx_32" { -resource_name = "vmx_32" -} - -resource "junos-vmx_SystemProcesses" "vmx_33" { -resource_name = "vmx_33" -} - -resource "junos-vmx_ProtocolsRouter__Advertisement" "vmx_34" { -resource_name = "vmx_34" -} - -resource "junos-vmx_ProtocolsRouter__AdvertisementInterfaceName" "vmx_35" { -resource_name = "vmx_35" -name = "/protocols/router-advertisement/interface/name" -} - -resource "junos-vmx_SystemLoginUserName" "vmx_36" { -resource_name = "vmx_36" -name = "/system/login/user/name" -} - -resource "junos-vmx_ChassisFpc" "vmx_37" { -resource_name = "vmx_37" -} - -resource "junos-vmx_ChassisFpcPicNumber__Of__Ports" "vmx_38" { -resource_name = "vmx_38" -name = "/chassis/fpc/name" -name__1 = "/chassis/fpc/pic/name" -number__of__ports = "/chassis/fpc/pic/number-of-ports" -} - -resource "junos-vmx_SystemProcessesDhcp__ServiceTraceoptionsFileFilename" "vmx_39" { -resource_name = "vmx_39" -filename = "/system/processes/dhcp-service/traceoptions/file/filename" -} - -resource "junos-vmx_Routing__OptionsStaticRoute" "vmx_40" { -resource_name = "vmx_40" -} - -resource "junos-vmx_SystemServicesSshRoot__Login" "vmx_41" { -resource_name = "vmx_41" -root__login = "/system/services/ssh/root-login" -} - -resource "junos-vmx_ChassisFpcPic" "vmx_42" { -resource_name = "vmx_42" -name = "/chassis/fpc/name" -} - -resource "junos-vmx_ChassisFpcPicName" "vmx_43" { -resource_name = "vmx_43" -name = "/chassis/fpc/name" -name__1 = "/chassis/fpc/pic/name" -} - -resource "junos-vmx_InterfacesInterface" "vmx_44" { -resource_name = "vmx_44" -} - -resource "junos-vmx_InterfacesInterfaceUnitFamilyInet" "vmx_45" { -resource_name = "vmx_45" -name = "/interfaces/interface/name" -name__1 = "/interfaces/interface/unit/name" -} - -resource "junos-vmx_Routing__OptionsStaticRouteName" "vmx_46" { -resource_name = "vmx_46" -name = "/routing-options/static/route/name" -} - -resource "junos-vmx_SystemServicesNetconfSsh" "vmx_47" { -resource_name = "vmx_47" -} - -resource "junos-vmx_SystemServicesRestHttp" "vmx_48" { -resource_name = "vmx_48" -} - -resource "junos-vmx_SystemSyslogFileContentsName" "vmx_49" { -resource_name = "vmx_49" -name = "/system/syslog/file/name" -name__1 = "/system/syslog/file/contents/name" -} - -resource "junos-vmx_SystemProcessesDhcp__ServiceTraceoptionsFlag" "vmx_50" { -resource_name = "vmx_50" -} - -resource "junos-vmx_SystemHost__Name" "vmx_51" { -resource_name = "vmx_51" -host__name = "/host-name" -} - -resource "junos-vmx_SystemSyslogFileContentsNotice" "vmx_52" { -resource_name = "vmx_52" -name = "/system/syslog/file/name" -name__1 = "/system/syslog/file/contents/name" -notice = "/system/syslog/file/contents/notice" -} - -resource "junos-vmx_Routing__OptionsStatic" "vmx_53" { -resource_name = "vmx_53" -} - -resource "junos-vmx_SystemServicesSsh" "vmx_54" { -resource_name = "vmx_54" -} - -resource "junos-vmx_SystemServicesNetconf" "vmx_55" { -resource_name = "vmx_55" -} - -resource "junos-vmx_SystemServicesRest" "vmx_56" { -resource_name = "vmx_56" -} - -resource "junos-vmx_SystemSyslogUserContentsEmergency" "vmx_57" { -resource_name = "vmx_57" -name = "/system/syslog/user/name" -name__1 = "/system/syslog/user/contents/name" -emergency = "/system/syslog/user/contents/emergency" -} - -resource "junos-vmx_ChassisFpcName" "vmx_58" { -resource_name = "vmx_58" -name = "/chassis/fpc/name" -} - -resource "junos-vmx_SystemSyslogUserName" "vmx_59" { -resource_name = "vmx_59" -name = "/system/syslog/user/name" -} - -resource "junos-vmx_SystemProcessesDhcp__Service" "vmx_60" { -resource_name = "vmx_60" -} - -resource "junos-vmx_InterfacesInterfaceName" "vmx_61" { -resource_name = "vmx_61" -name = "/interfaces/interface/name" -} - -resource "junos-vmx_SystemSyslogFileContentsAny" "vmx_62" { -resource_name = "vmx_62" -name = "/system/syslog/file/name" -name__1 = "/system/syslog/file/contents/name" -any = "/system/syslog/file/contents/any" -} - -resource "junos-vmx_SystemProcessesDhcp__ServiceTraceoptionsFile" "vmx_63" { -resource_name = "vmx_63" -} - -resource "junos-vmx_InterfacesInterfaceUnit" "vmx_64" { -resource_name = "vmx_64" -name = "/interfaces/interface/name" -} \ No newline at end of file diff --git a/Samples/static_vxlan/vmx_config.xml b/Samples/static_vxlan/vmx_config.xml deleted file mode 100644 index d6f076b9..00000000 --- a/Samples/static_vxlan/vmx_config.xml +++ /dev/null @@ -1,116 +0,0 @@ - -vMX-addr-0 - -$6$Ko4jDdWi$3T6N1wqgxkrEQUSuk1t/lgdMj1r7PK1dsAhAcdF63SUiqj5E/jVkzcSF25uJ2oRuNavm.MQoEclS2dyqVzo1L1 - - -python3 - - - - jcluser - 2000 - super-user - - $6$qaVklik0$XJOuOb8U/kj9XWcjadFLrUde/ezOTY8d.QN4cRwnk7ZcNNfdJIF8B.2dOVOwUzTDFjuulNqrmThZrMzismmAE. - - - - - - allow - - - - - - - - 3000 - - - - - - - * - - any - - - - - interactive-commands - - interactive-commands - - - - - messages - - any - - - - authorization - - - - - - - - - dhcp_logfile - 10m - - all - - packet - - - - - - - -0 - - 0 - 8 - - - - - - -fxp0 - - 0 - - -
- 100.123.1.0/16 -
-
-
-
-
-
- - - - 0.0.0.0/0 - 100.123.0.1 - - - - - - - fxp0.0 - - - - diff --git a/Samples/static_vxlan/xpath/updated_xpath_inputs.xml b/Samples/static_vxlan/xpath/updated_xpath_inputs.xml deleted file mode 100644 index 2e59dcaf..00000000 --- a/Samples/static_vxlan/xpath/updated_xpath_inputs.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Samples/static_vxlan/README.md b/Samples/two_spine_two_leaf/README.md similarity index 66% rename from Samples/static_vxlan/README.md rename to Samples/two_spine_two_leaf/README.md index f90401fd..6b4bade5 100644 --- a/Samples/static_vxlan/README.md +++ b/Samples/two_spine_two_leaf/README.md @@ -1,10 +1,18 @@ -# VMX - Static VXLAN with IPSEC +# VMX - Two Spine Two Leaf + +This is an example that demonstrates how to use JTAF on a two spine two leaf VMX setup. +Here are the details of this example: +* Spine1: 10.56.16.246 +* Spine2: 10.56.12.9 +* Leaf1: 10.56.17.17 +* Leaf2: 10.56.16.194 +Credentials: +* Username: regress +* Password: MaRtInI -This is an example that demonstrates how to use JTAF on the Static VXLAN Sandbox available in JCL. # Setup -* Create a JCL sandbox of the 'VMX - Static VXLAN with IPSEC' blueprint. Select 22.3 for the device version. -* Install Go on the Helper VM by running the following commands: +* Install Go on your machine by running the following commands. Commands may vary by machine. ```bash wget https://go.dev/dl/go1.23.0.linux-amd64.tar.gz sudo rm -rf /usr/local/go @@ -12,7 +20,7 @@ This is an example that demonstrates how to use JTAF on the Static VXLAN Sandbox echo "export PATH=\$PATH:/usr/local/go/bin" >> ~/.bashrc source ~/.bashrc ``` -* Install Terraform on the Helper VM by running the following commands: +* Install Terraform on your machine by running the following commands. Commands may vary by machine. ```bash wget https://releases.hashicorp.com/terraform/1.5.0/terraform_1.5.0_linux_amd64.zip unzip terraform_1.5.0_linux_amd64.zip @@ -23,24 +31,24 @@ This is an example that demonstrates how to use JTAF on the Static VXLAN Sandbox git clone https://github.com/Juniper/junos-terraform.git cd junos-terraform ``` -* Remove the current generateFiles.sh and replace it with Samples/static_vxlan/generateFiles.sh +* Remove the current generateFiles.sh and replace it with Samples/two_spine_two_leaf/generateFiles.sh ```bash rm generateFiles.sh - mv Samples/static_vxlan/generateFiles.sh junos-terraform + mv Samples/two_spine_two_leaf/generateFiles.sh . ``` This updates the two lines below. You could also use vim to update these lines. ```bash -Line 198 +# Line 198 # common_path="yang/$junos_version/$junos_version_combined/common/junos-common-types@2023-01-01.yang" -common_path="yang/$junos_version/$junos_version_combined/common/junos-common-types@2022-01-01.yang" -Line 299 +common_path="yang/22.3/22.3R1/common/junos-common-types@2022-01-01.yang" +# Line 299 # go mod tidy -go=1.16 && go mod tidy -go=1.17 go mod tidy -go=1.23 ``` -* Move the vMX-A1 configuration file into to a directory titled user_config_files. +* Move the VMX configuration file into to a directory titled user_config_files. ```bash mkdir user_config_files - mv Samples/static_vxlan/vmx_config.xml user_config_files + mv Samples/two_spine_two_leaf/config_files/spine1-config.xml user_config_files ``` **OR** if you feel adventurous, you can retrieve the configuration from the vmx device itself. ```bash @@ -60,7 +68,7 @@ Do you want to: Enter your choice (1/2): 2 You chose to provide a configuration. -Enter the configuration file name: vmx_config.xml +Enter the configuration file name: spine1-config.xml Enter a valid device option (vsrx, vmx, vqfx, vptx): vmx Enter the Junos version: 22.3 ``` @@ -69,12 +77,14 @@ This takes a LONG time, so don't worry if it is taking a while! That just means # Using the Provider Yay! The provider has now been created and can be found in terraform_providers/terraform-provider-junos-vmx. -Enable terraform to find the provider locally. +Enable terraform to find the provider locally. ```bash mkdir -p ~/.terraform.d/plugins/juniper/providers/junos-vmx/22.3/linux_amd64 -mv terraform_providers/terraform-provider-junos-vmx ~/.terraform.d/plugins/juniper/providers/junos-vmx/22.3/linux_amd64 +mv terraform_providers/terraform-provider-junos-vmx ~/.terraform.d/plugins/juniper/providers/junos-vmx/22.3/darwin_arm64 ``` # Testing Testing with Terraform: https://github.com/Juniper/junos-terraform?tab=readme-ov-file#testing -For this portion, you can find the main.tf and vmx_1/main.tf files located in Samples/static_vxlan/testbed. \ No newline at end of file +For this portion, you can find the main.tf and vmx_1/main.tf files located in Samples/static_vxlan/testbed. + +An example change is changing a device name in vmx_1/main.tf \ No newline at end of file diff --git a/Samples/two_spine_two_leaf/config_files/leaf1-config.xml b/Samples/two_spine_two_leaf/config_files/leaf1-config.xml new file mode 100644 index 00000000..a1c8483d --- /dev/null +++ b/Samples/two_spine_two_leaf/config_files/leaf1-config.xml @@ -0,0 +1,872 @@ + + + 23.4R2.13 + + member0 + + Leaf1 + +
10.56.31.254
+
+
+ + + fxp0 + + 0 + + +
+ 10.56.17.17/19 +
+
+
+
+
+
+
+ + global + + + $1$ZUlES4dp$OUwWo1g7cLoV/aMWpHUnC/ + + + + wheel + snmp + + + regress + 928 + superuser + csh + + $1$kPU..$w.4FGRAGanJ8U4Yq6sbj7. + + + + remote + 2000 + super-user + + + + + + + + + allow + + + + + + + + + + + + + englab.juniper.net + englab.juniper.net + juniper.net + jnpr.net + America/Los_Angeles + + + + password + radius + + 10.49.32.95 + + + 10.49.32.97 + + + 10.48.144.16 + $9$TQ/t1IcSrKAt0IRheK8X7VYgaZDm5zNdiqmTn6 + + + 10.48.144.17 + $9$GqUqf3nCApOPfQn690ORhSeWL7-boZDylsgoGHk + + + + log + + kernel + + + + any + + + + pfe + + + + interactive-commands + + + + + messages + + kernel + + + + any + + + + authorization + + + + pfe + + + + + + + + security + + interactive-commands + + + + + + + + + + + + + + + + + + + + + + snmp + + + + inet-process + + + + mib-process + + + + + 66.129.255.75 + + 66.129.255.75 + + + 172.29.131.60 + + + 172.29.135.60 + + + + + + + + Systest lab + Jay Lloyd + fxp0.0 + + public + read-only + + + private + read-write + + + + + /* corperate and alpha net */ + + 172.16.0.0/12 + 10.56.31.254 + + + + /* eng lab nets */ + + 192.168.0.0/16 + 10.56.31.254 + + + + /* IT Networks */ + + 10.0.0.0/8 + 10.56.31.254 + + + + /* Sacramento */ + + 66.129.0.0/16 + 10.56.31.254 + + + + + + + global + member0 + + mayank-rack-001-leaf1 + + + + + + + + + + + + + 32767 + aos_grpc + + mgmt_junos + + + + + + + + + + + + + + 0 + + 0 + 96 + + + + + + + aos_grpc + -----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCEiKxPFvweOUD1\nfZnlaUkt4xyRlNaJykSA0V6t68j/TD1N6ROuOlk3bFCBJ32lUNdk9U05+Iloeg9C\nj/dSZ55q22b04cnBZ8TxZZHHJ14r2NOleuLyCjUrRz1N09irDjL7CfLf+T2rJuAy\nUIR5ZlkA273acGTvJUXC5UFpTRV1WmFtV34aZuNEIEzBvcfQmmEZrN08uRxKzLCD\niBUjY9V1iF6UQKNM+dbGZtI1fINk+CHncJsVLwDdHGJ8W//2Dne6vrrJCUMk8hlH\n5+rYbXnAALxiXmZaKlN5g9AW7PwCIXg94r6CzsMzGjpDeWqE3tWXbFJZ832hTw6a\niMMKXyIVAgMBAAECggEAH3w9nSNrfT2iSD/Qu/61dxyFeLNofT8LY6P5r208qKPi\ny3vD5Gfxsng9rtUkJQ4twYsCD/PSpvqaXfiIK7A4ow+g56utK9B8adG0nmCkn1uJ\nOj6VpCUXKQMpVfAuQMLkix17sMhMJXkcmW9l7VZKbikF8xsw61xKNKkUj1DT+HcK\n+eCUZ28Mrx4urhZHImRX97oTzK7uA4+BgCs/JYdWH74iUH8aGKqefLh4FO0qDC+r\n4flGaS0uW5HbZ5/MKaYAUbbAQHSSzEinWO2ASjv7m+mV+/HBzSzeJbHmR2iWZpHx\nBpJL8eVahxD8XNiLKqoTrw2va1oO8BrD3u59xSQBsQKBgQC4iOR2ttwF9QEGdy0T\nxiyv+WU47uyzuarEAzZo6PzD0VWrv6eSGnH8cF8cS1V61V4VltixwYyMxI2eHzJ+\nCS3aTrtrVbBB95tmSvNCC7foEzx/LMljhhcV8uhkEwHA8hyjixxxWQuNxGBWiHFt\nEeC9YSCa9w8bI1k6TCl0og2s5QKBgQC33FJWEiXb/rlM6+Sm2/D6AMEgxlPic9TT\nx+suMMivv6lJR1pIjz5D6sRghGv4QaKfL8JIL2wV03QvDGFOG2yElOzc0S9LKcmw\nVdwNrxIrItFN85kJE+cejhVqJN0r16CR8vlMTx6WA5K6eX8TatMj/sd9Lbu84PmE\nWbY2/KJ9cQKBgBDoki6CgNSW53olL18xeGTDcE/wLIYnTAtb0/924bo7kyMCk6Mi\ngzFDRqO8D2AK7u0BfmeDOZKoa+WCLEk6JBZtwmSKXHUe8AFGetWhZz9/i7qHawiQ\nf8sGD98jkrSQOqmNlJSaOSHLTZyAMgxxZ+tSW/93Bc5Rxdo+oknKk4A1AoGAX4c+\n1G+bciF4H6pU5AlUvGCV97R0My2hv+OYoyg/rWj0yRkkpJygamNZYxiKjLN1jiYf\nWKgjDXgPXr6c9Bs1l/FU3Cpn2zK8Ez2ZFxcGZpkxjMHrmpbXt711DPBYZgYj7JEE\nzIwzRRhYLUEhMHKJf6NJ/RU8/RcbLZP7I7jBqFECgYEAohRQi6ZWATte/5qp+fKd\ncbk8XSueOrWQCLiqE8ewnEBnDw3+HgP0E1gAQ2OKU3LnBBhjKsUy86fMmQgvKnZc\n5U/saRPZnB/Qpf82q2juJ1UPedaIjodjbGGxr0eW/fb74ctiG5B7tgSxlzhdV5mO\nRwCKTcPsdZH5LAJtCCCpTvo=\n-----END PRIVATE KEY-----\n-----BEGIN CERTIFICATE-----\nMIIDUjCCAjqgAwIBAgICA+gwDQYJKoZIhvcNAQELBQAwVjELMAkGA1UEBhMCVVMx\nCzAJBgNVBAgMAkNBMRMwEQYDVQQHDApNZW5sbyBQYXJrMRMwEQYDVQQKDApBcHN0\ncmEgSW5jMRAwDgYDVQQDDAdBT1NfVExTMB4XDTI0MDkyNDA4MzYzN1oXDTM0MDky\nMjA4MzYzN1owVjELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMRMwEQYDVQQHDApN\nZW5sbyBQYXJrMRMwEQYDVQQKDApBcHN0cmEgSW5jMRAwDgYDVQQDDAdBT1NfVExT\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAhIisTxb8HjlA9X2Z5WlJ\nLeMckZTWicpEgNFerevI/0w9TekTrjpZN2xQgSd9pVDXZPVNOfiJaHoPQo/3Umee\nattm9OHJwWfE8WWRxydeK9jTpXri8go1K0c9TdPYqw4y+wny3/k9qybgMlCEeWZZ\nANu92nBk7yVFwuVBaU0VdVphbVd+GmbjRCBMwb3H0JphGazdPLkcSsywg4gVI2PV\ndYhelECjTPnWxmbSNXyDZPgh53CbFS8A3RxifFv/9g53ur66yQlDJPIZR+fq2G15\nwAC8Yl5mWipTeYPQFuz8AiF4PeK+gs7DMxo6Q3lqhN7Vl2xSWfN9oU8OmojDCl8i\nFQIDAQABoyowKDAPBgNVHRMECDAGAQH/AgEAMBUGA1UdEQQOMAyCCmFwc3RyYS5j\nb20wDQYJKoZIhvcNAQELBQADggEBAHdtVZj2ftOgXO3Llz0R3nNTf+7GZ8h0Qprp\n7IsxVuU4UZPh+dpFiREeNnYsgN8mg+t++NeOJ+4rQOWWWxsao6cEwM6/1KN977ar\noeNp4JsD5T2p3wRzIaUvFb9fYJDsoYMF1nUG9xBanmbOG2oRkmcukEQi81wpe4Zm\n5uEQzjFjVF/J2kV/jQuTP3BwOMLGtQA8w96pen0g0z3C31M0m/LC7bGanQrcLwE1\n184tEhFc1K1/6SoeNS1BMMsvZ/OGUKIRLPmKuGvYF3g/VPdrmxHmNYtviZYFkxSS\nRkV3ujNHxoM810oHKqsFA0Uq2IbpKP4K80lpor9EW91fKect2BA=\n-----END CERTIFICATE-----\n + + + + + + ge-0/0/0 + facing_spine1:ge-0/0/2 + 9192 + + 0 + + + 9170 +
+ 10.10.10.1/31 +
+
+
+
+
+ + ge-0/0/1 + facing_spine2:ge-0/0/2 + 9192 + + 0 + + + 9170 +
+ 10.10.10.9/31 +
+
+
+
+
+ + ge-0/0/2 + + 0 + + + + + + + + ge-0/0/3 + + 0 + + + + + + + + ge-0/0/4 + + 0 + + + + + + + + ge-0/0/5 + + 0 + + + + + + + + ge-0/0/6 + + 0 + + + + + + + + ge-0/0/7 + + 0 + + + + + + + + ge-0/0/8 + + 0 + + + + + + + + ge-0/0/9 + + 0 + + + + + + + + ge-0/0/10 + + 0 + + + + + + + + ge-0/0/11 + + 0 + + + + + + + + ge-0/0/12 + + 0 + + + + + + + + ge-0/0/13 + + 0 + + + + + + + + ge-0/0/14 + + 0 + + + + + + + + irb + + 100 + + + 9000 +
+ 192.168.1.1/24 +
+
+
+ 00:1c:73:00:00:01 +
+
+ + lo0 + + 0 + + +
+ 10.10.11.2/32 +
+
+
+
+ + 2 + + +
+ 10.10.13.0/32 +
+
+
+
+
+
+ + + AllPodNetworks + + AllPodNetworks-10 + + inet + direct + + + + + DEFAULT_DIRECT_V4 + + + + + + AllPodNetworks-100 + + + + + + + AllPodNetworks-Infra + + AllPodNetworks-Infra-10 + + inet + direct + + + + + INFRA_COMMUNITY_V4 + + + + + + AllPodNetworks-Infra-100 + + + + + + + BGP-AOS-Policy + + BGP-AOS-Policy-10 + + AllPodNetworks + + + + + + + BGP-AOS-Policy-100 + + + + + + + BGP-AOS-Policy-Infra + + BGP-AOS-Policy-Infra-10 + + AllPodNetworks-Infra + + + + + + + BGP-AOS-Policy-Infra-100 + + + + + + + EVPN_EXPORT + + EVPN_EXPORT-4095 + + + + + + + LEAF_TO_SPINE_EVPN_OUT + + LEAF_TO_SPINE_EVPN_OUT-10 + + bgp + FROM_SPINE_EVPN_TIER + + + + + + + LEAF_TO_SPINE_EVPN_OUT-20 + + + + + + + LEAF_TO_SPINE_FABRIC_OUT + + LEAF_TO_SPINE_FABRIC_OUT-10 + + bgp + FROM_SPINE_FABRIC_TIER + + + + + + + LEAF_TO_SPINE_FABRIC_OUT-20 + + + + + + + PFE-LB + + + + + + + + DEFAULT_DIRECT_V4 + 3:20007 + 21001:26000 + + + FROM_SPINE_EVPN_TIER + 0:14 + + + FROM_SPINE_FABRIC_TIER + 0:15 + + + INFRA_COMMUNITY_V4 + 3:20007 + 21002:26000 + + + + + Infra + vrf + + + + + + + + + + + + direct-nexthop + vxlan + 30000 + BGP-AOS-Policy-Infra + + + + + irb.100 + + + lo0.2 + + + 10.10.11.2:2 + + + target:30000:1 + + + + evpn-1 + mac-vrf + + + vxlan + do-not-advertise + + 9 + + all + + + 11100 + + target:11100:1 + + + + + + + lo0.0 + + vlan-aware + + 10.10.11.2:65534 + + + target:100:100 + + + + vn100 + Infra + 100 + irb.100 + + 11100 + + + + + + mgmt_junos + + + + 0.0.0.0/0 + 10.56.31.254 + + + + + + + 10.10.11.2 + + 65003 + + + + + PFE-LB + + + + + + + + + + + + l3clos-l + external + + + + + 1000 + 3 + + + 10.10.10.0 + facing_spine1 + 10.10.10.1 + + + + + + + ( LEAF_TO_SPINE_FABRIC_OUT && BGP-AOS-Policy ) + 65001 + + + 10.10.10.8 + facing_spine2 + 10.10.10.9 + + + + + + + ( LEAF_TO_SPINE_FABRIC_OUT && BGP-AOS-Policy ) + 65002 + + + + + l3clos-l-evpn + external + + 1 + + + + + + + 2 + + + + + + + + + 3000 + 3 + + + 10.10.11.0 + facing_spine1-evpn-overlay + 10.10.11.2 + + + + + + + ( LEAF_TO_SPINE_EVPN_OUT && EVPN_EXPORT ) + 65001 + + + 10.10.11.1 + facing_spine2-evpn-overlay + 10.10.11.2 + + + + + + + ( LEAF_TO_SPINE_EVPN_OUT && EVPN_EXPORT ) + 65002 + + + + + + + + + + + + + + + + + interface-name + interface-description + port-id + + all + + + + 0 + + + +
+ + + +
\ No newline at end of file diff --git a/Samples/two_spine_two_leaf/config_files/leaf2-config.xml b/Samples/two_spine_two_leaf/config_files/leaf2-config.xml new file mode 100644 index 00000000..54a71469 --- /dev/null +++ b/Samples/two_spine_two_leaf/config_files/leaf2-config.xml @@ -0,0 +1,872 @@ + + + 23.4R2.13 + + member0 + + Leaf2 + +
10.56.31.254
+
+
+ + + fxp0 + + 0 + + +
+ 10.56.16.194/19 +
+
+
+
+
+
+
+ + global + + + $1$ZUlES4dp$OUwWo1g7cLoV/aMWpHUnC/ + + + + wheel + snmp + + + regress + 928 + superuser + csh + + $1$kPU..$w.4FGRAGanJ8U4Yq6sbj7. + + + + remote + 2000 + super-user + + + + + + + + + allow + + + + + + + + + + + + + englab.juniper.net + englab.juniper.net + juniper.net + jnpr.net + America/Los_Angeles + + + + password + radius + + 10.49.32.95 + + + 10.49.32.97 + + + 10.48.144.16 + $9$TQ/t1IcSrKAt0IRheK8X7VYgaZDm5zNdiqmTn6 + + + 10.48.144.17 + $9$GqUqf3nCApOPfQn690ORhSeWL7-boZDylsgoGHk + + + + log + + kernel + + + + any + + + + pfe + + + + interactive-commands + + + + + messages + + kernel + + + + any + + + + authorization + + + + pfe + + + + + + + + security + + interactive-commands + + + + + + + + + + + + + + + + + + + + + + snmp + + + + inet-process + + + + mib-process + + + + + 66.129.255.75 + + 66.129.255.75 + + + 172.29.131.60 + + + 172.29.135.60 + + + + + + + + Systest lab + Jay Lloyd + fxp0.0 + + public + read-only + + + private + read-write + + + + + /* corperate and alpha net */ + + 172.16.0.0/12 + 10.56.31.254 + + + + /* eng lab nets */ + + 192.168.0.0/16 + 10.56.31.254 + + + + /* IT Networks */ + + 10.0.0.0/8 + 10.56.31.254 + + + + /* Sacramento */ + + 66.129.0.0/16 + 10.56.31.254 + + + + + + + global + member0 + + mayank-rack-001-leaf2 + + + + + + + + + + + + + 32767 + aos_grpc + + mgmt_junos + + + + + + + + + + + + + + 0 + + 0 + 96 + + + + + + + aos_grpc + -----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC4LA4YgUX9rk+v\nBCkRROo25KJiBsYzw8ljEbIZM0BIKIPF2e96+gz1NdV3h95sFhcNZOypkdqjVb4t\nNe/759FkzjKYFFXnLFiVrYMV0B0T8DKwhcak7anAvloMZ4n3fO12Tgg4h+gI2R7J\nrQgYFXUlGOJ28jT2+9NdaEfgpGL4J7BKnBphdWUoP9V9sA05mzgXpYNfTkf914P4\nD7F70pYw5Fro+GvNKy+fo2FZD0p9lHRvovOll+9K44bPsiBCcz+fSTiCG03zVVYZ\nfJoQdjZBvNrGJNPix3LKPtQSKtbJHofREkOw3FzKgVN1TQplU3o0mNkmFLH/6hPs\nIqKg5IRVAgMBAAECggEABUeIr+h6Gnzgs+JT+wwVWrV7Iiw835xWguHYT830Tcfm\nNHRm37OYo37Y5lryuU54zV198JkfF1zh3Wc/wIzd/RxxaYKhDnDAU/9r/o1qB/me\nul4GBRGlssIXeruNF5cb3NmnyqxlWRDq8lpkx6v1y7ZxkiSnTV0yqz7OBgEwWm9c\nVA3fnyJcRK/VBmiRAcp/Hk8PJ7LvXCrHQxSJ3iaNgIsIdMWeI7KY1mJl2sYhK2b+\nkmzlxM0teLgMoc9uQcAiohFtsTkLbeJiYRph+a7jdCIuIu7g9Xv30vopHakAFy9Y\nGjCViDFArM6c2uYZfZnm5ZiOnq7llexxlb6v+uMUkQKBgQDsR+NS5bozIiDDy9qo\nX9iuGSPdlAlBAFUAvvTUsd6NFvAi0gjYgooHQ5ay/igFrRlrcpevfwDDb910GFAi\nMEp2BUuhwZJumM3dUuyXW4kNt5gPTPJsTgWf/fhmqtUSBg5iqll4QTpb2ALY28I5\nmjnY4klhg1n0HEcCjNo8SFD2LwKBgQDHit7L42MoV6+kYDhP/55wz7KBFJGli6mn\nTsDMEgbL/s8zNeddsheLyp7ohIMqcUDOp4psEpEMKjbx8Mm6UlU/wznCuRNplVS+\nnTcbxVenrHEohzr1bktdkgu6pV20v4Gdw/ibAD3GWCfEtGSbmWZqs5ao+hjR8eVF\nCX0JSc5QuwKBgDL5s26AB3Leqwjy4wKuYvX0kItOU8zFQJF/oRx+H1B7IWWxwJzN\nVPAKQent8T6AQNqwh08ibEy9xp40XJ1zo6zgqZeFRo07xDY6nLZu1huyf0jVxftd\nvdLtnPixZHSV/+aDb/gEwo1sBfk5OCbrQg2rjD9Qcki7DQrcznxw8Z6bAoGBAL9c\nfGHHxZYw0W6wIBEIMWg6pxOHKE48bAzZR6ftObt0uDyCW0nNuysCu/Z87lVLmz0U\nC3mtLJEgAuVvZ+ZZgwvNK52EZAuDfGv41Zq6XF+ezj5xwacRiRFJOBpc8EqgxasI\n/2eWiaenbywDW+Ck8kUtyTRv9FGSy66zdMftkgB1AoGBALn57b76rBq/m1gdx6s+\nGWHFyvf3THwgrwVCdcntfT48JIHITsy5B3Hl/o0IC8hB3gQxMvphBVoFzBiVPLaC\nQCg6II1T6tlbBhByEv2zZo8yQ3RxBDmSrrrkIaHoPNZ0a8gnxPdr6s9QzYDWipwD\nCBulkmvdSTRr9JCpe0cmFl8n\n-----END PRIVATE KEY-----\n-----BEGIN CERTIFICATE-----\nMIIDUjCCAjqgAwIBAgICA+gwDQYJKoZIhvcNAQELBQAwVjELMAkGA1UEBhMCVVMx\nCzAJBgNVBAgMAkNBMRMwEQYDVQQHDApNZW5sbyBQYXJrMRMwEQYDVQQKDApBcHN0\ncmEgSW5jMRAwDgYDVQQDDAdBT1NfVExTMB4XDTI0MDkyNDA4MzYzN1oXDTM0MDky\nMjA4MzYzN1owVjELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMRMwEQYDVQQHDApN\nZW5sbyBQYXJrMRMwEQYDVQQKDApBcHN0cmEgSW5jMRAwDgYDVQQDDAdBT1NfVExT\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuCwOGIFF/a5PrwQpEUTq\nNuSiYgbGM8PJYxGyGTNASCiDxdnvevoM9TXVd4febBYXDWTsqZHao1W+LTXv++fR\nZM4ymBRV5yxYla2DFdAdE/AysIXGpO2pwL5aDGeJ93ztdk4IOIfoCNkeya0IGBV1\nJRjidvI09vvTXWhH4KRi+CewSpwaYXVlKD/VfbANOZs4F6WDX05H/deD+A+xe9KW\nMORa6PhrzSsvn6NhWQ9KfZR0b6LzpZfvSuOGz7IgQnM/n0k4ghtN81VWGXyaEHY2\nQbzaxiTT4sdyyj7UEirWyR6H0RJDsNxcyoFTdU0KZVN6NJjZJhSx/+oT7CKioOSE\nVQIDAQABoyowKDAPBgNVHRMECDAGAQH/AgEAMBUGA1UdEQQOMAyCCmFwc3RyYS5j\nb20wDQYJKoZIhvcNAQELBQADggEBAC/iRKQqRh1raiXT1eY/DosIteENt+I9emft\n2WYbUZxCJsXrygBNoHcSDhw7tAEXdqglV5ssp0XQidqdx+h0+AHAzHGwzJzYOVwe\nTKIWQ+LKMFQwmhIi+YUpUh6340rcV3iFiTjyT1hTz4cAj39DdGRvKP4pUvyb1ptW\nxxKg5LgitUEn52bErpvCxZPL3VDFDxT+FbaAg6C4tL25S7pOPtLAF3jOKikvKngH\nG0Iod1slgksX+KrzR9Du078s7b1lUmxqetQxsxmIaoCHeGrT24WZEIkuLBFfcFR3\nRs9XIWpWGK3R/DriM/Jr6ru9gfHd+LDTAQrzA7DSRvrWwj27rwo=\n-----END CERTIFICATE-----\n + + + + + + ge-0/0/0 + facing_spine1:ge-0/0/3 + 9192 + + 0 + + + 9170 +
+ 10.10.10.3/31 +
+
+
+
+
+ + ge-0/0/1 + facing_spine2:ge-0/0/3 + 9192 + + 0 + + + 9170 +
+ 10.10.10.11/31 +
+
+
+
+
+ + ge-0/0/2 + + 0 + + + + + + + + ge-0/0/3 + + 0 + + + + + + + + ge-0/0/4 + + 0 + + + + + + + + ge-0/0/5 + + 0 + + + + + + + + ge-0/0/6 + + 0 + + + + + + + + ge-0/0/7 + + 0 + + + + + + + + ge-0/0/8 + + 0 + + + + + + + + ge-0/0/9 + + 0 + + + + + + + + ge-0/0/10 + + 0 + + + + + + + + ge-0/0/11 + + 0 + + + + + + + + ge-0/0/12 + + 0 + + + + + + + + ge-0/0/13 + + 0 + + + + + + + + ge-0/0/14 + + 0 + + + + + + + + irb + + 100 + + + 9000 +
+ 192.168.1.1/24 +
+
+
+ 00:1c:73:00:00:01 +
+
+ + lo0 + + 0 + + +
+ 10.10.11.3/32 +
+
+
+
+ + 2 + + +
+ 10.10.13.1/32 +
+
+
+
+
+
+ + + AllPodNetworks + + AllPodNetworks-10 + + inet + direct + + + + + DEFAULT_DIRECT_V4 + + + + + + AllPodNetworks-100 + + + + + + + AllPodNetworks-Infra + + AllPodNetworks-Infra-10 + + inet + direct + + + + + INFRA_COMMUNITY_V4 + + + + + + AllPodNetworks-Infra-100 + + + + + + + BGP-AOS-Policy + + BGP-AOS-Policy-10 + + AllPodNetworks + + + + + + + BGP-AOS-Policy-100 + + + + + + + BGP-AOS-Policy-Infra + + BGP-AOS-Policy-Infra-10 + + AllPodNetworks-Infra + + + + + + + BGP-AOS-Policy-Infra-100 + + + + + + + EVPN_EXPORT + + EVPN_EXPORT-4095 + + + + + + + LEAF_TO_SPINE_EVPN_OUT + + LEAF_TO_SPINE_EVPN_OUT-10 + + bgp + FROM_SPINE_EVPN_TIER + + + + + + + LEAF_TO_SPINE_EVPN_OUT-20 + + + + + + + LEAF_TO_SPINE_FABRIC_OUT + + LEAF_TO_SPINE_FABRIC_OUT-10 + + bgp + FROM_SPINE_FABRIC_TIER + + + + + + + LEAF_TO_SPINE_FABRIC_OUT-20 + + + + + + + PFE-LB + + + + + + + + DEFAULT_DIRECT_V4 + 4:20007 + 21001:26000 + + + FROM_SPINE_EVPN_TIER + 0:14 + + + FROM_SPINE_FABRIC_TIER + 0:15 + + + INFRA_COMMUNITY_V4 + 4:20007 + 21002:26000 + + + + + Infra + vrf + + + + + + + + + + + + direct-nexthop + vxlan + 30000 + BGP-AOS-Policy-Infra + + + + + irb.100 + + + lo0.2 + + + 10.10.11.3:2 + + + target:30000:1 + + + + evpn-1 + mac-vrf + + + vxlan + do-not-advertise + + 9 + + all + + + 11100 + + target:11100:1 + + + + + + + lo0.0 + + vlan-aware + + 10.10.11.3:65534 + + + target:100:100 + + + + vn100 + Infra + 100 + irb.100 + + 11100 + + + + + + mgmt_junos + + + + 0.0.0.0/0 + 10.56.31.254 + + + + + + + 10.10.11.3 + + 65004 + + + + + PFE-LB + + + + + + + + + + + + l3clos-l + external + + + + + 1000 + 3 + + + 10.10.10.2 + facing_spine1 + 10.10.10.3 + + + + + + + ( LEAF_TO_SPINE_FABRIC_OUT && BGP-AOS-Policy ) + 65001 + + + 10.10.10.10 + facing_spine2 + 10.10.10.11 + + + + + + + ( LEAF_TO_SPINE_FABRIC_OUT && BGP-AOS-Policy ) + 65002 + + + + + l3clos-l-evpn + external + + 1 + + + + + + + 2 + + + + + + + + + 3000 + 3 + + + 10.10.11.0 + facing_spine1-evpn-overlay + 10.10.11.3 + + + + + + + ( LEAF_TO_SPINE_EVPN_OUT && EVPN_EXPORT ) + 65001 + + + 10.10.11.1 + facing_spine2-evpn-overlay + 10.10.11.3 + + + + + + + ( LEAF_TO_SPINE_EVPN_OUT && EVPN_EXPORT ) + 65002 + + + + + + + + + + + + + + + + + interface-name + interface-description + port-id + + all + + + + 0 + + + +
+ + + +
\ No newline at end of file diff --git a/Samples/two_spine_two_leaf/config_files/spine1-config.xml b/Samples/two_spine_two_leaf/config_files/spine1-config.xml new file mode 100644 index 00000000..32387de6 --- /dev/null +++ b/Samples/two_spine_two_leaf/config_files/spine1-config.xml @@ -0,0 +1,755 @@ + + Spine1 + +
10.56.31.254
+
+
+ + + fxp0 + + 0 + + +
+ 10.56.16.246/19 +
+
+
+
+
+
+ + + global + + + $1$ZUlES4dp$OUwWo1g7cLoV/aMWpHUnC/ + + + + wheel + snmp + + + regress + 928 + superuser + csh + + $1$kPU..$w.4FGRAGanJ8U4Yq6sbj7. + + + + remote + 2000 + super-user + + + + + + + + + allow + + + + + + + + + + + + + englab.juniper.net + englab.juniper.net + juniper.net + jnpr.net + America/Los_Angeles + + + + password + radius + + 10.49.32.95 + + + 10.49.32.97 + + + 10.48.144.16 + $9$TQ/t1IcSrKAt0IRheK8X7VYgaZDm5zNdiqmTn6 + + + 10.48.144.17 + $9$GqUqf3nCApOPfQn690ORhSeWL7-boZDylsgoGHk + + + + log + + kernel + + + + any + + + + pfe + + + + interactive-commands + + + + + messages + + kernel + + + + any + + + + authorization + + + + pfe + + + + + + + + security + + interactive-commands + + + + + + + + + + + + + + + + + + + + + + snmp + + + + inet-process + + + + mib-process + + + + + 66.129.255.75 + + 66.129.255.75 + + + 172.29.131.60 + + + 172.29.135.60 + + + + + + + + Systest lab + Jay Lloyd + fxp0.0 + + public + read-only + + + private + read-write + + + + + /* corperate and alpha net */ + + 172.16.0.0/12 + 10.56.31.254 + + + + /* eng lab nets */ + + 192.168.0.0/16 + 10.56.31.254 + + + + /* IT Networks */ + + 10.0.0.0/8 + 10.56.31.254 + + + + /* Sacramento */ + + 66.129.0.0/16 + 10.56.31.254 + + + + + + +global +member0 + + spine1 + + + + + + + + + + + + + 32767 + aos_grpc + + mgmt_junos + + + + + + + + + + + + + + 0 + + 0 + 96 + + + + + + + aos_grpc + -----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDS8UeT5MDK8uMl\nVP8JjNmsMqJ6u3loR/5ct5hhfqATxVVoSXhQf/AtIBpd6GQySo74tzqjFzhje3sP\nGZ99R1/xqiPX/VYFAbq1LjSSFKVNQgc87zFEO0LoHuP/3jHWmIL5Z8LR4971vKyM\ntCEQtfEoDDzJFP+Tx/UrHGRms/jkI7f395F47C+0Ync4+6NNoE/4HUZRSimhad8U\nSdPr2phLJZTtW2JnAh7WJFcRDgBzMKPqIWikSs1ruF4RerWLVmV4t8hswD6IR5XK\noEhgZoHVFjUyBik86BClqr3c56ZeZ0b6PKo8o9W14LM5sHabd8FKxO4pC4cPVw58\nvW0R0kz1AgMBAAECggEAG+zdMPMDotpsv7B04urGlklNwTm4ZNnDDrsvbRi6UGO7\nXsb7Ko0FWrP5SZ1ORmoga0S2eojEakcaj3Ew8ADW7sM7Y4iiLp9//CRVyVD6YTPw\niVyRBRtjTB9qx6C+sE4YaLQX0nl8NsP3g9kE15V+i3KzSVuCSioahs6HbCE/PdRP\nJl0IqLReehnjtoXmffaHbyyh47B3HVKQcUQB5T3WVnijerhMAQ23FCi/bIy+f/sV\nOp9eWDeWZ34t6IxX8mrB5ANc1gYd/Pa2MqY6YicDaFGpxBDQCmPnpjZV7GIsP1F2\nby3vnimcwM4pRyWaIJPv/oWuBrZiGRfRP+BgClOLMQKBgQDuUbTpjbt7CJTK2ENQ\nRvQaQBEGWuaDPLoAjAOUbwtrBeZZp8oc1huSMOLFCxjlJ5yeeCcN1WFf0r+5RcV1\n0BvYAmKGoE0LigkRtVJNNge7ZzO5xtZo4aqnXi+LXFZSY0HIDSKtY7FQypfLVMug\ni8DqLe7b5YXQnSVRa47BYUEMDwKBgQDil56gqvQQbEtRfCwyVjFNgpRr2+G84jfI\ns9Agw4PjYGxg0rvqw3u7NfZIGam3L+nKf+MxZKF49Ir0no4q4JA7Hahw2bMrWTjg\nGppulZ2E8bBgk1uJQu2Qoz9ajRNf+cw3Q9caHXwNZ5lWrsCusbQ6EIMVFbdCjywf\nRj8ULoOiuwKBgQCzXaGIypiZX/sEtEHtcImWHDP0EYQ+r/zaHocvN2hjk1wsjEFs\n9KRpogt6/AAvsGGLT6ktGzUfdrG/0shsBEaAjEL1Sj7SeYCb6FlaLVkibekbYJDM\n/VOAhj3IaKW7emLvGxvHXin9QY1/hoF/gs+eMRX+QMA3I58LqaUW3IildwKBgHTn\nbLvP92ORu7oqqlK+DWnD+Pc81lYxED7IJpUAykbBNKkvkCwq9uc7i/je5KTSX3hO\nStTs6jIRWK+kLg0JFuCpCIJQjxPKUIGuuAZdwosYdrscy5khopeA4erB5kEaC7Zn\nlc6vb5Uq4f3K4zY+EJH0euyh6463dzgbcefjp56JAoGBAI7KjnGOyvlNEy6eUYC0\nPyCT4mfrqrND5vdHDA2dj8N/iYfL7Y+CKU7UuP/YTh9iI6FeQDLV0LwV0TVKOV+1\nPpyNf7UoBAMFs8i/vB/+S8eybXcThBr24MVJTAJJ111d+nveCv3qSc4MxFyJNvuG\nFPdib3rZ5vnSAjZjf6HNf3C1\n-----END PRIVATE KEY-----\n-----BEGIN CERTIFICATE-----\nMIIDUjCCAjqgAwIBAgICA+gwDQYJKoZIhvcNAQELBQAwVjELMAkGA1UEBhMCVVMx\nCzAJBgNVBAgMAkNBMRMwEQYDVQQHDApNZW5sbyBQYXJrMRMwEQYDVQQKDApBcHN0\ncmEgSW5jMRAwDgYDVQQDDAdBT1NfVExTMB4XDTI0MDkyNDA4MzYzNloXDTM0MDky\nMjA4MzYzNlowVjELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMRMwEQYDVQQHDApN\nZW5sbyBQYXJrMRMwEQYDVQQKDApBcHN0cmEgSW5jMRAwDgYDVQQDDAdBT1NfVExT\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0vFHk+TAyvLjJVT/CYzZ\nrDKiert5aEf+XLeYYX6gE8VVaEl4UH/wLSAaXehkMkqO+Lc6oxc4Y3t7DxmffUdf\n8aoj1/1WBQG6tS40khSlTUIHPO8xRDtC6B7j/94x1piC+WfC0ePe9bysjLQhELXx\nKAw8yRT/k8f1KxxkZrP45CO39/eReOwvtGJ3OPujTaBP+B1GUUopoWnfFEnT69qY\nSyWU7VtiZwIe1iRXEQ4AczCj6iFopErNa7heEXq1i1ZleLfIbMA+iEeVyqBIYGaB\n1RY1MgYpPOgQpaq93OemXmdG+jyqPKPVteCzObB2m3fBSsTuKQuHD1cOfL1tEdJM\n9QIDAQABoyowKDAPBgNVHRMECDAGAQH/AgEAMBUGA1UdEQQOMAyCCmFwc3RyYS5j\nb20wDQYJKoZIhvcNAQELBQADggEBAKmUGAQgU97CHFDlAGLVVF9nxKmfGJwoCjAz\n+J4q9cvZE8F0S5yEHQ/iLOu6lIJy68TTEuvSQZDxGo6XGJnD86UEO6tAGKxkrvWx\nyyLoZEPdL6Ob2vPaq9jDNbXjcTCwzXvG6y4pX9384mPHN99RV9igiO1LQQzVov1v\nZ5TREif2m80JDvOxAb4aktEYr9nELPHJaPxeUHB9Nv4MGW3buwXe/LPF2hplw3FX\nDQMI123sD5gLx8U0xSwyatKJ9YbK7Ia0Iwh/EFAnIv/pu5DbH1j83yUcy4/vSsE2\nY61lFTJtIVaBUPH8p1zEvAr7qxmfwMTboe1rQ0Bkv3aPfMtDzJI=\n-----END CERTIFICATE-----\n + + + + + + ge-0/0/0 + facing_mayank-rack-001-leaf3:ge-0/0/0 + 9192 + + 0 + + + 9170 +
+ 10.10.10.4/31 +
+
+
+
+
+ + ge-0/0/1 + facing_mayank-rack-001-leaf4:ge-0/0/0 + 9192 + + 0 + + + 9170 +
+ 10.10.10.6/31 +
+
+
+
+
+ + ge-0/0/2 + facing_mayank-rack-001-leaf1:ge-0/0/0 + 9192 + + 0 + + + 9170 +
+ 10.10.10.0/31 +
+
+
+
+
+ + ge-0/0/3 + facing_mayank-rack-001-leaf2:ge-0/0/0 + 9192 + + 0 + + + 9170 +
+ 10.10.10.2/31 +
+
+
+
+
+ + ge-0/0/4 + + 0 + + + + + + + + ge-0/0/5 + + 0 + + + + + + + + ge-0/0/6 + + 0 + + + + + + + + ge-0/0/7 + + 0 + + + + + + + + ge-0/0/8 + + 0 + + + + + + + + ge-0/0/9 + + 0 + + + + + + + + ge-0/0/10 + + 0 + + + + + + + + ge-0/0/11 + + 0 + + + + + + + + ge-0/0/12 + + 0 + + + + + + + + ge-0/0/13 + + 0 + + + + + + + + ge-0/0/14 + + 0 + + + + + + + + lo0 + + 0 + + +
+ 10.10.11.0/32 +
+
+
+
+
+
+ + + AllPodNetworks + + AllPodNetworks-10 + + inet + direct + + + + + DEFAULT_DIRECT_V4 + + + + + + AllPodNetworks-100 + + + + + + + BGP-AOS-Policy + + BGP-AOS-Policy-10 + + AllPodNetworks + + + + + + + BGP-AOS-Policy-20 + + bgp + + + + + + + BGP-AOS-Policy-100 + + + + + + + PFE-LB + + + + + + + + SPINE_TO_LEAF_EVPN_OUT + + SPINE_TO_LEAF_EVPN_OUT-10 + + + + FROM_SPINE_EVPN_TIER + + + + + + + SPINE_TO_LEAF_FABRIC_OUT + + SPINE_TO_LEAF_FABRIC_OUT-10 + + + + FROM_SPINE_FABRIC_TIER + + + + + + + DEFAULT_DIRECT_V4 + 1:20007 + 21001:26000 + + + FROM_SPINE_EVPN_TIER + 0:14 + + + FROM_SPINE_FABRIC_TIER + 0:15 + + + + + mgmt_junos + + + + 0.0.0.0/0 + 10.56.31.254 + + + + + + + 10.10.11.0 + + 65001 + + + + + PFE-LB + + + + + + + l3clos-s + external + + + + + 1000 + 3 + + + 10.10.10.1 + facing_mayank-rack-001-leaf1 + 10.10.10.0 + + + + + + + ( SPINE_TO_LEAF_FABRIC_OUT && BGP-AOS-Policy ) + 65003 + + + 10.10.10.3 + facing_mayank-rack-001-leaf2 + 10.10.10.2 + + + + + + + ( SPINE_TO_LEAF_FABRIC_OUT && BGP-AOS-Policy ) + 65004 + + + 10.10.10.5 + facing_mayank-rack-001-leaf3 + 10.10.10.4 + + + + + + + ( SPINE_TO_LEAF_FABRIC_OUT && BGP-AOS-Policy ) + 65005 + + + 10.10.10.7 + facing_mayank-rack-001-leaf4 + 10.10.10.6 + + + + + + + ( SPINE_TO_LEAF_FABRIC_OUT && BGP-AOS-Policy ) + 65006 + + + + + l3clos-s-evpn + external + + 1 + + + + + + + 2 + + + + + + + + + 3000 + 3 + + + 10.10.11.2 + facing_mayank-rack-001-leaf1-evpn-overlay + 10.10.11.0 + + + + + + + ( SPINE_TO_LEAF_EVPN_OUT ) + 65003 + + + 10.10.11.3 + facing_mayank-rack-001-leaf2-evpn-overlay + 10.10.11.0 + + + + + + + ( SPINE_TO_LEAF_EVPN_OUT ) + 65004 + + + 10.10.11.4 + facing_mayank-rack-001-leaf3-evpn-overlay + 10.10.11.0 + + + + + + + ( SPINE_TO_LEAF_EVPN_OUT ) + 65005 + + + 10.10.11.5 + facing_mayank-rack-001-leaf4-evpn-overlay + 10.10.11.0 + + + + + + + ( SPINE_TO_LEAF_EVPN_OUT ) + 65006 + + + + + + + + + + + + interface-name + interface-description + port-id + + all + + + + + + diff --git a/Samples/two_spine_two_leaf/config_files/spine2-config.xml b/Samples/two_spine_two_leaf/config_files/spine2-config.xml new file mode 100644 index 00000000..d7773f6d --- /dev/null +++ b/Samples/two_spine_two_leaf/config_files/spine2-config.xml @@ -0,0 +1,765 @@ + + + 23.4R2.13 + + member0 + + Spine2 + +
10.56.31.254
+
+
+ + + fxp0 + + 0 + + +
+ 10.56.12.9/19 +
+
+
+
+
+
+
+ + global + + + $1$ZUlES4dp$OUwWo1g7cLoV/aMWpHUnC/ + + + + wheel + snmp + + + regress + 928 + superuser + csh + + $1$kPU..$w.4FGRAGanJ8U4Yq6sbj7. + + + + remote + 2000 + super-user + + + + + + + + + allow + + + + + + + + + + + + + englab.juniper.net + englab.juniper.net + juniper.net + jnpr.net + America/Los_Angeles + + + + password + radius + + 10.49.32.95 + + + 10.49.32.97 + + + 10.48.144.16 + $9$TQ/t1IcSrKAt0IRheK8X7VYgaZDm5zNdiqmTn6 + + + 10.48.144.17 + $9$GqUqf3nCApOPfQn690ORhSeWL7-boZDylsgoGHk + + + + log + + kernel + + + + any + + + + pfe + + + + interactive-commands + + + + + messages + + kernel + + + + any + + + + authorization + + + + pfe + + + + + + + + security + + interactive-commands + + + + + + + + + + + + + + + + + + + + + + snmp + + + + inet-process + + + + mib-process + + + + + 66.129.255.75 + + 66.129.255.75 + + + 172.29.131.60 + + + 172.29.135.60 + + + + + + + + Systest lab + Jay Lloyd + fxp0.0 + + public + read-only + + + private + read-write + + + + + /* corperate and alpha net */ + + 172.16.0.0/12 + 10.56.31.254 + + + + /* eng lab nets */ + + 192.168.0.0/16 + 10.56.31.254 + + + + /* IT Networks */ + + 10.0.0.0/8 + 10.56.31.254 + + + + /* Sacramento */ + + 66.129.0.0/16 + 10.56.31.254 + + + + + + + global + member0 + + spine2 + + + + + + + + + + + + + 32767 + aos_grpc + + mgmt_junos + + + + + + + + + + + + + + 0 + + 0 + 96 + + + + + + + aos_grpc + -----BEGIN PRIVATE KEY-----\nMIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCcR7azsPS9ztHe\n8H/CLXarZsKgPS6qRx9TKNPCYv2nMWEHDw9ZcLSGANoFDgQq3mH5kME6kAEefeUK\nc8RpvGy5HBdLUDTgZ2CSMAEsqtPGMXpJ0YWySALkgTxB4fz7aJEtSHmDjARBMppD\nGM4T0NCFkwcgDL2T8DfNdbNPgPJ6lttc4OqEiKl3EOdKuxOodRTd99j7CsSXBuWj\nh+Seyg20RFPmm2Z+tn2soI0DkxCO1cP4ubWjDX5hUejCBtSXS7U9wEygC03OBazZ\nfOIS0E4sduH/31PII3L9fVyLUu5QYDrG86SO3YmKYT0Ca9pMY+s0iIFUQsPqleNP\nbktx9M+NAgMBAAECggEABBvflMW3iEEGjr0V2CoKrMgoyv6TekR18UwJa0WKg+mT\nXT87CP/irdjvt9fN6hRK5lKfvfWDeK+DL4fqggQt+0ee4NWfmkcliG/CLCWOqASX\ngZbZvshQE9LGXeNo8Rw8oECU+fgwXsgg5a2NMi4DOYErhrRxtztxitGde17kIS8e\nfEV9FkVgcg82aNOs2th2/tqHxkoUPv/V/QQyL56bUxZqYdC5m8NI4A3b16ptrvPI\noQtp/5kEjo45wCtLg0JXCpK1qi/GQG6kCLHq4AHaJ8glY7GR4QqyetkUEM2Jx1fI\n3pfDCUj6zzxe737jXdaZMutJQ0Mrk4Tub+4sp0GccQKBgQDYZ9akWcCjz8e2I65w\nw0jX1Bu4TmVP9G80Al8sNNJ8AVGnSpjacsxcXyWEEpcKAuMqjB4WYqWdethYr59l\ni7I+U5vgrRzHeK85QJxKE0YhwDd59frWgdD7BKIStuDIMIPpQ9BJGwR5o+/Z6RmH\nlorZwlyj5fvZqzhMesFUYD7fcQKBgQC436yu3vp6r/EB5rF2CT2LuKynDwv22IlP\nH8z8I99V6342KgPx7kpiLYP27GmuUDPI+uUu2yCnKD/yMZ81HpBrQJkWuMmjiLKC\nNM9GW3iq4uLiGd61hFbS0QTApG4AZ7XB6XWMGj6x/wEtoht1gRLFIKIGrT5u7ih4\nHAj0h20b3QKBgAlWkcCNzu5CrQ+DAqgDBUWq9XdCisSke5f28jxqGxsWw3tAkM/8\nXC0wPeIxGytnbH4Nhc7ZeuQMxQEusuYi3RIrcXKEhdVls8n4q8XWhxQ1wy8UGjrf\nZzEtxgCgu5pn3YlXT8mXzN2i4Vq54EwlhuBWrsCzz+ZYqRlDwsvtS0lBAoGAIcH+\nJ0RiGosMCBvW5cXULjI/nJW7yoxJrmARLy1ht6+zsTJE3CV2Aa1r/me2+HR+sEFY\nHhE3Si6oVpJHDw0Qs/Tsv2BouWrZpbr86k0DoLijU0QEDcMnk4FFS+P6jiph3xHB\nPB8Cub/luC50syUph0NpMqzpzJnCXARKglREUSUCgYA07EttRnUrfK2z65wUnEiK\nwmfrK6Rf8nv0r+FKVCX76Y80qP06hUrkA3rJv1SMHus04cl6dDPR89U/2i1ArjVV\nRt2XNDtRZrSx3ZbXoE/CGY6ptSayrobNGd5SRD8UOBDNy0Yqavy7oElSkgm8yhRA\nb+VnTsUAivkmddm0Ccmf8A==\n-----END PRIVATE KEY-----\n-----BEGIN CERTIFICATE-----\nMIIDUjCCAjqgAwIBAgICA+gwDQYJKoZIhvcNAQELBQAwVjELMAkGA1UEBhMCVVMx\nCzAJBgNVBAgMAkNBMRMwEQYDVQQHDApNZW5sbyBQYXJrMRMwEQYDVQQKDApBcHN0\ncmEgSW5jMRAwDgYDVQQDDAdBT1NfVExTMB4XDTI0MDkyNDA4MzYzNloXDTM0MDky\nMjA4MzYzNlowVjELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMRMwEQYDVQQHDApN\nZW5sbyBQYXJrMRMwEQYDVQQKDApBcHN0cmEgSW5jMRAwDgYDVQQDDAdBT1NfVExT\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnEe2s7D0vc7R3vB/wi12\nq2bCoD0uqkcfUyjTwmL9pzFhBw8PWXC0hgDaBQ4EKt5h+ZDBOpABHn3lCnPEabxs\nuRwXS1A04GdgkjABLKrTxjF6SdGFskgC5IE8QeH8+2iRLUh5g4wEQTKaQxjOE9DQ\nhZMHIAy9k/A3zXWzT4DyepbbXODqhIipdxDnSrsTqHUU3ffY+wrElwblo4fknsoN\ntERT5ptmfrZ9rKCNA5MQjtXD+Lm1ow1+YVHowgbUl0u1PcBMoAtNzgWs2XziEtBO\nLHbh/99TyCNy/X1ci1LuUGA6xvOkjt2JimE9AmvaTGPrNIiBVELD6pXjT25LcfTP\njQIDAQABoyowKDAPBgNVHRMECDAGAQH/AgEAMBUGA1UdEQQOMAyCCmFwc3RyYS5j\nb20wDQYJKoZIhvcNAQELBQADggEBAEWPE2tFm2ng+71IDHpDC5Q1pPSZ/juSdycH\nAbbZSDaok2o594RRWj/CjAABpY02SxEiJmk/w4aKQD8w3qJ8+GBljS2l8nL/CRGC\nnmPTaxHTMW11ZBraLE6tdU7ouO2iyDkcHydb3u20SiFKHEV0B2fpnsl9LtTiu2cg\nN3S0GWeHs6VjFkqt0dsMvNtJhtaWxLMfJVBk/6i3Y7y4FeJ4+feUUPoxJVDc8tzW\nNNWR2dLcTQ1CJUZXkNvsGpzsHWESD9bikhw34sSVklCmdSLXhUmsnGNjZZd8JpPG\n12Wgev/U/ON0fsaO6QbOPSDHmREoTYTM2i0VXNEZxv96daYvzzo=\n-----END CERTIFICATE-----\n + + + + + + ge-0/0/0 + facing_mayank-rack-001-leaf3:ge-0/0/1 + 9192 + + 0 + + + 9170 +
+ 10.10.10.12/31 +
+
+
+
+
+ + ge-0/0/1 + facing_mayank-rack-001-leaf4:ge-0/0/1 + 9192 + + 0 + + + 9170 +
+ 10.10.10.14/31 +
+
+
+
+
+ + ge-0/0/2 + facing_mayank-rack-001-leaf1:ge-0/0/1 + 9192 + + 0 + + + 9170 +
+ 10.10.10.8/31 +
+
+
+
+
+ + ge-0/0/3 + facing_mayank-rack-001-leaf2:ge-0/0/1 + 9192 + + 0 + + + 9170 +
+ 10.10.10.10/31 +
+
+
+
+
+ + ge-0/0/4 + + 0 + + + + + + + + ge-0/0/5 + + 0 + + + + + + + + ge-0/0/6 + + 0 + + + + + + + + ge-0/0/7 + + 0 + + + + + + + + ge-0/0/8 + + 0 + + + + + + + + ge-0/0/9 + + 0 + + + + + + + + ge-0/0/10 + + 0 + + + + + + + + ge-0/0/11 + + 0 + + + + + + + + ge-0/0/12 + + 0 + + + + + + + + ge-0/0/13 + + 0 + + + + + + + + ge-0/0/14 + + 0 + + + + + + + + lo0 + + 0 + + +
+ 10.10.11.1/32 +
+
+
+
+
+
+ + + AllPodNetworks + + AllPodNetworks-10 + + inet + direct + + + + + DEFAULT_DIRECT_V4 + + + + + + AllPodNetworks-100 + + + + + + + BGP-AOS-Policy + + BGP-AOS-Policy-10 + + AllPodNetworks + + + + + + + BGP-AOS-Policy-20 + + bgp + + + + + + + BGP-AOS-Policy-100 + + + + + + + PFE-LB + + + + + + + + SPINE_TO_LEAF_EVPN_OUT + + SPINE_TO_LEAF_EVPN_OUT-10 + + + + FROM_SPINE_EVPN_TIER + + + + + + + SPINE_TO_LEAF_FABRIC_OUT + + SPINE_TO_LEAF_FABRIC_OUT-10 + + + + FROM_SPINE_FABRIC_TIER + + + + + + + DEFAULT_DIRECT_V4 + 2:20007 + 21001:26000 + + + FROM_SPINE_EVPN_TIER + 0:14 + + + FROM_SPINE_FABRIC_TIER + 0:15 + + + + + mgmt_junos + + + + 0.0.0.0/0 + 10.56.31.254 + + + + + + + 10.10.11.1 + + 65002 + + + + + PFE-LB + + + + + + + l3clos-s + external + + + + + 1000 + 3 + + + 10.10.10.9 + facing_mayank-rack-001-leaf1 + 10.10.10.8 + + + + + + + ( SPINE_TO_LEAF_FABRIC_OUT && BGP-AOS-Policy ) + 65003 + + + 10.10.10.11 + facing_mayank-rack-001-leaf2 + 10.10.10.10 + + + + + + + ( SPINE_TO_LEAF_FABRIC_OUT && BGP-AOS-Policy ) + 65004 + + + 10.10.10.13 + facing_mayank-rack-001-leaf3 + 10.10.10.12 + + + + + + + ( SPINE_TO_LEAF_FABRIC_OUT && BGP-AOS-Policy ) + 65005 + + + 10.10.10.15 + facing_mayank-rack-001-leaf4 + 10.10.10.14 + + + + + + + ( SPINE_TO_LEAF_FABRIC_OUT && BGP-AOS-Policy ) + 65006 + + + + + l3clos-s-evpn + external + + 1 + + + + + + + 2 + + + + + + + + + 3000 + 3 + + + 10.10.11.2 + facing_mayank-rack-001-leaf1-evpn-overlay + 10.10.11.1 + + + + + + + ( SPINE_TO_LEAF_EVPN_OUT ) + 65003 + + + 10.10.11.3 + facing_mayank-rack-001-leaf2-evpn-overlay + 10.10.11.1 + + + + + + + ( SPINE_TO_LEAF_EVPN_OUT ) + 65004 + + + 10.10.11.4 + facing_mayank-rack-001-leaf3-evpn-overlay + 10.10.11.1 + + + + + + + ( SPINE_TO_LEAF_EVPN_OUT ) + 65005 + + + 10.10.11.5 + facing_mayank-rack-001-leaf4-evpn-overlay + 10.10.11.1 + + + + + + + ( SPINE_TO_LEAF_EVPN_OUT ) + 65006 + + + + + + + + + + + + interface-name + interface-description + port-id + + all + + + + + + +
+ + + +
diff --git a/Samples/two_spine_two_leaf/testbed/main.tf b/Samples/two_spine_two_leaf/testbed/main.tf new file mode 100644 index 00000000..3c624a96 --- /dev/null +++ b/Samples/two_spine_two_leaf/testbed/main.tf @@ -0,0 +1,36 @@ + +terraform { + required_providers { + junos-vmx = { + source = "juniper/providers/junos-vmx" + version = "22.3" + } + } +} + +provider "junos-vmx" { + host = "10.56.16.246" + port = 22 + username = "regress" + password = "MaRtInI" + sshkey = "" +} + +module "vmx_1" { + source = "./vmx_1" + + providers = {junos-vmx = junos-vmx} + + depends_on = [junos-vmx_destroycommit.commit-main] +} + + +resource "junos-vmx_commit" "commit-main" { + resource_name = "commit" + depends_on = [module.vmx_1] +} + +resource "junos-vmx_destroycommit" "commit-main" { + resource_name = "destroycommit" +} + \ No newline at end of file diff --git a/Samples/two_spine_two_leaf/testbed/vmx_1/main.tf b/Samples/two_spine_two_leaf/testbed/vmx_1/main.tf new file mode 100644 index 00000000..7d269698 --- /dev/null +++ b/Samples/two_spine_two_leaf/testbed/vmx_1/main.tf @@ -0,0 +1,69 @@ + +terraform { + required_providers { + junos-vmx = { + source = "juniper/providers/junos-vmx" + version = "22.3" + } + } +} + +resource "junos-vmx_InterfacesInterfaceName" "vmx_1" { + resource_name = "vmx_1" + name = "/interfaces/interface/vmx_1" +} + +resource "junos-vmx_InterfacesInterfaceUnit" "vmx_2" { + resource_name = "vmx_2" + name = "/interfaces/interface/name" +} + +resource "junos-vmx_InterfacesInterfaceUnitFamilyInetAddress" "vmx_3" { + resource_name = "vmx_3" + name = "/interfaces/interface/name" + name__1 = "/interfaces/interface/unit/name" +} + +resource "junos-vmx_SystemBackup__Router" "vmx_4" { + resource_name = "vmx_4" +} + +resource "junos-vmx_SystemBackup__RouterAddress" "vmx_5" { + resource_name = "vmx_5" + address = "/system/backup-router/address" +} + +resource "junos-vmx_InterfacesInterfaceUnitName" "vmx_6" { + resource_name = "vmx_6" + name = "/interfaces/interface/name" + name__1 = "/interfaces/interface/unit/name" +} + +resource "junos-vmx_InterfacesInterfaceUnitFamily" "vmx_7" { + resource_name = "vmx_7" + name = "/interfaces/interface/name" + name__1 = "/interfaces/interface/unit/name" +} + +resource "junos-vmx_InterfacesInterfaceUnitFamilyInet" "vmx_8" { + resource_name = "vmx_8" + name = "/interfaces/interface/name" + name__1 = "/interfaces/interface/unit/name" +} + +resource "junos-vmx_InterfacesInterfaceUnitFamilyInetAddressName" "vmx_9" { + resource_name = "vmx_9" + name = "/interfaces/interface/name" + name__1 = "/interfaces/interface/unit/name" + name__2 = "/interfaces/interface/unit/family/inet/address/name" +} + +resource "junos-vmx_SystemHost__Name" "vmx_10" { + resource_name = "vmx_10" + host__name = "/host-name" +} + +resource "junos-vmx_InterfacesInterface" "vmx_11" { + resource_name = "vmx_11" +} + From c92890721336d3d3ae2c9f1210b6b356b652a244 Mon Sep 17 00:00:00 2001 From: Natalie Date: Wed, 23 Oct 2024 12:56:02 -0700 Subject: [PATCH 13/19] adding generate files --- Samples/two_spine_two_leaf/README.md | 1 + Samples/two_spine_two_leaf/generateFiles.sh | 340 ++++++++++++++++++++ 2 files changed, 341 insertions(+) create mode 100755 Samples/two_spine_two_leaf/generateFiles.sh diff --git a/Samples/two_spine_two_leaf/README.md b/Samples/two_spine_two_leaf/README.md index 6b4bade5..db5f481a 100644 --- a/Samples/two_spine_two_leaf/README.md +++ b/Samples/two_spine_two_leaf/README.md @@ -6,6 +6,7 @@ Here are the details of this example: * Spine2: 10.56.12.9 * Leaf1: 10.56.17.17 * Leaf2: 10.56.16.194 + Credentials: * Username: regress * Password: MaRtInI diff --git a/Samples/two_spine_two_leaf/generateFiles.sh b/Samples/two_spine_two_leaf/generateFiles.sh new file mode 100755 index 00000000..49a95ed6 --- /dev/null +++ b/Samples/two_spine_two_leaf/generateFiles.sh @@ -0,0 +1,340 @@ +#!/bin/bash +set -e + +# Function to check if a command is available +command_exists() { + command -v "$1" >/dev/null 2>&1 +} + +retry_script() { + while true; do + ./generateFiles.sh + + # Check the exit status of the script + if [ $? -eq 0 ]; then + # Script ran successfully, exit the loop + break + else + # Script failed, display an error message + echo "Script failed. Retrying in 5 seconds..." + sleep 5 + fi + done +} + +# caputres the user's home directory +home_dir="$PWD" + +# Check if Python is installed +if ! command_exists python3; then + echo "Python is not installed. Please Install 'Python' before running the script" +fi + +# Check if Python is installed +if ! command_exists go; then + echo "Go is not installed. Please Install 'Go' before running the script." +fi + +# Prompt the user for their choice +echo "Do you want to:" +echo "1. Build a provider from scratch" +echo "2. Provide a configuration" +read -p "Enter your choice (1/2): " choice + +# Check the user's choice +if [ "$choice" == "1" ]; then + echo "You chose to build a provider from scratch." + # Create config.toml file + if [ ! -f "config.toml" ]; then + echo "Creating config.toml file..." + cat << EOF > config.toml + yangDir = "$(pwd)/yang_files" + providerDir = "$(pwd)/terraform_providers" + xpathPath = "$(pwd)/xpath_inputs.xml" + providerName = "vsrx" + fileType = "both" +EOF + fi + + # Check if yang_files folder exists + if [ -d "yang_files" ]; then + # Find at least one .yang file in yang_files folder + yang_files=$(find yang_files -name "*.yang") + # If YANG files are found, generate YIN and Xpath Files + if [ -n "$yang_files" ]; then + echo "Found .yang files in yang_files folder." + # Change directory to /cmd/processYang + cd $home_dir/cmd/processYang || exit 1 + # Activate venv + python3 -m venv venv + source venv/bin/activate + # Check and install pyang if needed + if ! command_exists pyang; then + echo "pyang is not installed. Installing pyang..." + pip install pyang + pyang -v + fi + # Run go build command and generate YIN and Xpath Files + go build + ./processYang -config $home_dir/config.toml + deactivate + else + echo "No .yang files found in yang_files folder. Add files and re-run script" + fi + else + echo "yang_files folder does not exist. Create and add necessary files" + fi + +elif [ "$choice" == "2" ]; then + echo "You chose to provide a configuration." + + script_directory="$home_dir/user_config_files" + + # Create the directory if it doesn't exist + mkdir -p "$script_directory" + + # Initialize the config_file variable + config_file="" + + echo "" + echo "" + + # Prompt the user for the configuration file name and validate it + while [ ! -f "$config_file" ]; do + read -p "Enter the configuration file name: " config_file + full_path="$script_directory/$config_file" + + if [ -f "$full_path" ]; then + config_file="$full_path" + else + echo "The provided file does not exist in your script's directory." + config_file="" + fi + done + + # Ask user what device they are working on + valid_options=("vsrx" "vmx" "vqfx" "vptx") + user_input="" + + while [[ ! " ${valid_options[*]} " =~ " $user_input " ]]; do + read -p "Enter a valid device option (vsrx, vmx, vqfx, vptx): " user_input + + if [[ ! " ${valid_options[*]} " =~ " $user_input " ]]; then + echo "Invalid input. Please enter one of the following options: vsrx, vmx, vqfx, vptx." + fi + done + + # Prompt the user for the Junos version + read -p "Enter the Junos version: " junos_version + + echo "" + echo "" + # Display the user's selections + echo "Configuration file path: $config_file" + echo "Device name: $user_input" + echo "Junos version: $junos_version" + + + # Ask for confirmation + while true; do + read -p "Are these selections correct? (yes/no): " confirmation + case "$confirmation" in + [Yy]* ) break;; + [Nn]* ) + # If the user says no, allow them to start over + exec "$0";; + * ) echo "Please answer 'yes' or 'no'.";; + esac + done + + echo "" + echo "" + # Create or overwrite config.toml file + echo "Creating or overwriting config.toml file..." + cat > config.toml << EOF + yangDir = "$(pwd)/yang_files" + providerDir = "$(pwd)/terraform_providers" + xpathPath = "$(pwd)/xpath_inputs.xml" + providerName = "$user_input" + fileType = "both" +EOF + + echo "" + echo "" + + junos_version_combined="${junos_version}R1" + + device_names=("vmx" "vptx" "vsrx" "vqfx") + device_mappings=("junos" "junos" "junos-es" "junos-qfx") + + # Find the index of the input device name in the device_names array + index=-1 + for ((i=0; i<${#device_names[@]}; i++)); do + if [ "${device_names[$i]}" = "$user_input" ]; then + index=$i + break + fi + done + + # Output the corresponding mapping if found + if [ $index -ne -1 ]; then + supported_devices="${device_mappings[$index]}" + else + echo "Device mapping not found." + fi + + # Use the user's input to look up the supported devices + supported_devices="${device_mappings[${user_input}]}" + + # Check if the device name exists in the mapping + if [ -z "$supported_devices" ]; then + echo "Device name not recognized." + exit 1 + fi + + # # Output the supported devices + # echo "Supported devices for $selected_device: $supported_devices" + + common_path="yang/$junos_version/$junos_version_combined/common/junos-common-types@2022-01-01.yang" + path_to="yang/$junos_version/$junos_version_combined/$supported_devices/conf/" + + # Define the target directory in the home directory + target_dir="$home_dir/yang_files" + + # Check if the target directory already exists, and create it if not + if [ ! -d "$target_dir" ]; then + echo "yang_files folder does not exist. Creating and adding necessary files" + mkdir -p "$target_dir" + target_dir="$home_dir/yang" + + # Check if the target directory already exists, and create it if not + if [ ! -d "$target_dir" ]; then + mkdir -p "$target_dir" + # Git clone the Juniper YANG repository into the target directory + echo "Cloning the Juniper YANG repository for Junos $junos_version into $target_dir..." + git clone https://github.com/Juniper/yang.git "$target_dir" + fi + + # Check if the git clone was successful + if [ $? -eq 0 ]; then + echo "Cloning successful. YANG files are in $target_dir." + else + echo "Folder already created or clone failed. If clone failed, please check your internet connection or repository URL." + fi + + target_dir="$home_dir/yang_files" + + # Copy all files from the source directory to the target directory + cp -r "$path_to"* "$target_dir" + + # Copy the common file to the target directory + cp "$common_path" "$target_dir" + + # Check if the copy operation was successful + if [ $? -eq 0 ]; then + echo "Files copied successfully to $target_dir." + else + echo "Copy operation failed." + fi + + target_dir="$home_dir/yang" + + rm -rf $target_dir + fi + + # Find at least one .yang file in yang_files folder + yang_files=$(find yang_files -name "*.yang") + # If YANG files are found, generate YIN and Xpath Files + if [ -n "$yang_files" ]; then + echo "Found .yang files in yang_files folder." + # Change directory to /cmd/processYang + cd $home_dir/cmd/processYang || exit 1 + # Activate venv + python3 -m venv venv + source venv/bin/activate + # Check and install pyang if needed + if ! command_exists pyang; then + echo "pyang is not installed. Installing pyang..." + pip install pyang + pyang -v + fi + # Run go build command and generate YIN and Xpath Files + go build + ./processYang -config $home_dir/config.toml + deactivate + # go run $home_dir/Internal/processYang/createXpathInputs.go + else + echo "No .yang files found in yang_files folder. Add files and re-run script" + fi + + cd "$home_dir" + + go run createXpathInputs.go + + echo "" + echo "" + + # Search for XML files containing "xpath" in their filenames in the home directory + xml_files=$(find "$PWD" -type f -name '*xpath*.xml') + + # Define the folder name + folderName="TFtemplates" + + # Check if the folder already exists + if [ ! -d "$folderName" ]; then + # Create the folder if it doesn't exist + mkdir "$folderName" + echo "Folder '$folderName' created successfully. Folder stores tf templates for testing" + else + echo "Folder '$folderName' already exists to store .tf templates" + fi + + # Check if any matching XML files were found + if [ -n "$xml_files" ]; then + # Now Build the provider + cd $home_dir/cmd/processProviders + go build + ./processProviders -config $home_dir/config.toml + cd $home_dir/terraform_providers + go mod tidy -go=1.23 + go build + else + echo "No XML xpath file found. Try renaming the xpath file to include 'xpath' in the name." + fi + + # Define the target directory in the home directory + target_dir="$home_dir/testbed" + + # Check if the target directory already exists + if [ ! -d "$target_dir" ]; then + # If it doesn't exist, create the directory + mkdir -p "$target_dir" + echo "Created target directory: $target_dir" + fi + + # Check if main.tf does not exist in the testbed directory + if [ ! -f "$target_dir/main.tf" ]; then + # Create main.tf + touch "$target_dir/main.tf" + echo "Created main.tf in the testbed directory" + fi + + # Create a folder named after device_name appended with "_1" + device_folder="$target_dir/${user_input}_1" + if [ ! -d "$device_folder" ]; then + # If it doesn't exist, create the folder + mkdir -p "$device_folder" + echo "Created folder: $device_folder" + fi + + # Check if main.tf does not exist in the device folder + if [ ! -f "$device_folder/main.tf" ]; then + # Create main.tf in the device folder + touch "$device_folder/main.tf" + echo "Created main.tf in the device folder: $device_folder" + fi + +else + echo "Invalid choice. Please enter 1 or 2." +fi + From 771eac4cb5953b52c8003de11c8394001d921a48 Mon Sep 17 00:00:00 2001 From: Natalie Date: Sun, 27 Oct 2024 12:40:14 -0700 Subject: [PATCH 14/19] adding to readme --- Samples/two_spine_two_leaf/README.md | 10 +- go.mod | 334 ++++++- go.sum | 931 +++++++++++++++--- testbed/.terraform.lock.hcl | 10 + testbed/.terraform/modules/modules.json | 1 + .../providers/junos-vmx/22.3.0/darwin_arm64 | 1 + testbed/jtaf_logging.log | 19 + testbed/main.tf | 36 + testbed/terraform.tfstate | 304 ++++++ testbed/terraform.tfstate.backup | 306 ++++++ 10 files changed, 1793 insertions(+), 159 deletions(-) create mode 100644 testbed/.terraform.lock.hcl create mode 100644 testbed/.terraform/modules/modules.json create mode 120000 testbed/.terraform/providers/juniper/providers/junos-vmx/22.3.0/darwin_arm64 create mode 100644 testbed/jtaf_logging.log create mode 100644 testbed/main.tf create mode 100644 testbed/terraform.tfstate create mode 100644 testbed/terraform.tfstate.backup diff --git a/Samples/two_spine_two_leaf/README.md b/Samples/two_spine_two_leaf/README.md index db5f481a..d2aed647 100644 --- a/Samples/two_spine_two_leaf/README.md +++ b/Samples/two_spine_two_leaf/README.md @@ -1,6 +1,6 @@ # VMX - Two Spine Two Leaf -This is an example that demonstrates how to use JTAF on a two spine two leaf VMX setup. +This is an example that demonstrates how to use JTAF on a two spine two leaf VMX setup. This topology was built using Apstra, which is an automation that builds data center fabrics from the ground up. Currently, this topology is two spine two leaf only, but it can be easily scaled horizantally and vertically. Here are the details of this example: * Spine1: 10.56.16.246 * Spine2: 10.56.12.9 @@ -88,4 +88,10 @@ Testing with Terraform: https://github.com/Juniper/junos-terraform?tab=readme-ov For this portion, you can find the main.tf and vmx_1/main.tf files located in Samples/static_vxlan/testbed. -An example change is changing a device name in vmx_1/main.tf \ No newline at end of file +An example change is changing a device name in vmx_1/main.tf. You can see this change reflected in the configuration of the device. +```bash +resource "junos-vmx_InterfacesInterfaceName" "vmx_1_new_name" { + resource_name = "vmx_1_new_name" + name = "/interfaces/interface/vmx_1_new_name" +} +``` \ No newline at end of file diff --git a/go.mod b/go.mod index 009c51a0..1aece1ee 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/Juniper/junos-terraform -go 1.22.0 +go 1.22.5 require ( github.com/BurntSushi/toml v1.2.1 @@ -9,53 +9,229 @@ require ( require ( github.com/antchfx/xmlquery v1.3.18 + github.com/chrismarget/lambda-tf-registry v0.0.1 + github.com/goreleaser/goreleaser v1.26.2 github.com/hashicorp/terraform-plugin-sdk v1.17.2 + github.com/hashicorp/terraform-plugin-sdk/v2 v2.34.0 + golang.org/x/crypto v0.23.0 ) require ( - cloud.google.com/go v0.110.10 // indirect - cloud.google.com/go/compute v1.23.3 // indirect - cloud.google.com/go/compute/metadata v0.2.3 // indirect - cloud.google.com/go/iam v1.1.5 // indirect - cloud.google.com/go/storage v1.35.1 // indirect + cloud.google.com/go v0.112.1 // indirect + cloud.google.com/go/compute/metadata v0.3.0 // indirect + cloud.google.com/go/iam v1.1.6 // indirect + cloud.google.com/go/kms v1.15.8 // indirect + cloud.google.com/go/storage v1.39.1 // indirect + code.gitea.io/sdk/gitea v0.18.0 // indirect + dario.cat/mergo v1.0.0 // indirect + github.com/AlekSi/pointer v1.2.0 // indirect + github.com/Azure/azure-sdk-for-go v68.0.0+incompatible // indirect + github.com/Azure/azure-sdk-for-go/sdk/azcore v1.10.0 // indirect + github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.5.1 // indirect + github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.2 // indirect + github.com/Azure/azure-sdk-for-go/sdk/keyvault/azkeys v0.10.0 // indirect + github.com/Azure/azure-sdk-for-go/sdk/keyvault/internal v0.7.1 // indirect + github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.3.1 // indirect + github.com/Azure/go-autorest v14.2.0+incompatible // indirect + github.com/Azure/go-autorest/autorest v0.11.29 // indirect + github.com/Azure/go-autorest/autorest/adal v0.9.23 // indirect + github.com/Azure/go-autorest/autorest/azure/auth v0.5.12 // indirect + github.com/Azure/go-autorest/autorest/azure/cli v0.4.6 // indirect + github.com/Azure/go-autorest/autorest/date v0.3.0 // indirect + github.com/Azure/go-autorest/autorest/to v0.4.0 // indirect + github.com/Azure/go-autorest/logger v0.2.1 // indirect + github.com/Azure/go-autorest/tracing v0.6.0 // indirect + github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 // indirect github.com/Masterminds/goutils v1.1.1 // indirect github.com/Masterminds/semver v1.5.0 // indirect + github.com/Masterminds/semver/v3 v3.2.1 // indirect github.com/Masterminds/sprig v2.22.0+incompatible // indirect + github.com/Masterminds/sprig/v3 v3.2.3 // indirect + github.com/Microsoft/go-winio v0.6.1 // indirect + github.com/ProtonMail/go-crypto v1.1.0-alpha.2 // indirect github.com/agext/levenshtein v1.2.2 // indirect + github.com/alessio/shellescape v1.4.1 // indirect + github.com/anchore/bubbly v0.0.0-20230518153401-87b6af8ccf22 // indirect + github.com/anchore/go-logger v0.0.0-20230725134548-c21dafa1ec5a // indirect + github.com/anchore/go-macholibre v0.0.0-20220308212642-53e6d0aaf6fb // indirect + github.com/anchore/quill v0.4.1 // indirect github.com/antchfx/xpath v1.2.4 // indirect github.com/apparentlymart/go-cidr v1.1.0 // indirect - github.com/apparentlymart/go-textseg/v13 v13.0.0 // indirect + github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect github.com/armon/go-radix v1.0.0 // indirect - github.com/aws/aws-sdk-go v1.50.10 // indirect + github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect + github.com/atc0005/go-teams-notify/v2 v2.10.0 // indirect + github.com/aws/aws-sdk-go v1.53.0 // indirect + github.com/aws/aws-sdk-go-v2 v1.26.1 // indirect + github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.1 // indirect + github.com/aws/aws-sdk-go-v2/config v1.27.13 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.17.13 // indirect + github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue v1.13.11 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1 // indirect + github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.13 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.5 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.5 // indirect + github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 // indirect + github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.4 // indirect + github.com/aws/aws-sdk-go-v2/service/dynamodb v1.31.0 // indirect + github.com/aws/aws-sdk-go-v2/service/dynamodbstreams v1.20.3 // indirect + github.com/aws/aws-sdk-go-v2/service/ecr v1.28.0 // indirect + github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.23.5 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.6 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.9.5 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.4 // indirect + github.com/aws/aws-sdk-go-v2/service/kms v1.30.0 // indirect + github.com/aws/aws-sdk-go-v2/service/s3 v1.53.0 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.20.6 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.24.0 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.28.7 // indirect + github.com/aws/smithy-go v1.20.2 // indirect + github.com/awslabs/amazon-ecr-credential-helper/ecr-login v0.0.0-20240514230400-03fa26f5508f // indirect + github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect + github.com/bahlo/generic-list-go v0.2.0 // indirect github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d // indirect github.com/bgentry/speakeasy v0.1.0 // indirect - github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect - github.com/fatih/color v1.15.0 // indirect - github.com/go-test/deep v1.1.0 // indirect + github.com/blacktop/go-dwarf v1.0.9 // indirect + github.com/blacktop/go-macho v1.1.162 // indirect + github.com/blakesmith/ar v0.0.0-20190502131153-809d4375e1fb // indirect + github.com/bluesky-social/indigo v0.0.0-20240411170459-440932307e0d // indirect + github.com/buger/jsonparser v1.1.1 // indirect + github.com/caarlos0/ctrlc v1.2.0 // indirect + github.com/caarlos0/env/v11 v11.0.1 // indirect + github.com/caarlos0/go-reddit/v3 v3.0.1 // indirect + github.com/caarlos0/go-shellwords v1.0.12 // indirect + github.com/caarlos0/go-version v0.1.1 // indirect + github.com/caarlos0/log v0.4.4 // indirect + github.com/carlmjohnson/versioninfo v0.22.5 // indirect + github.com/cavaliergopher/cpio v1.0.1 // indirect + github.com/cenkalti/backoff/v4 v4.2.1 // indirect + github.com/charmbracelet/bubbletea v0.22.1 // indirect + github.com/charmbracelet/lipgloss v0.10.0 // indirect + github.com/charmbracelet/x/exp/ordered v0.0.0-20231010190216-1cb11efc897d // indirect + github.com/chrismellard/docker-credential-acr-env v0.0.0-20230304212654-82a0ddb27589 // indirect + github.com/cloudflare/circl v1.3.8 // indirect + github.com/containerd/console v1.0.4 // indirect + github.com/containerd/stargz-snapshotter/estargz v0.14.3 // indirect + github.com/cpuguy83/go-md2man/v2 v2.0.3 // indirect + github.com/cyphar/filepath-securejoin v0.2.4 // indirect + github.com/davidmz/go-pageant v1.0.2 // indirect + github.com/dghubble/go-twitter v0.0.0-20211115160449-93a8679adecb // indirect + github.com/dghubble/oauth1 v0.7.3 // indirect + github.com/dghubble/sling v1.4.0 // indirect + github.com/dimchansky/utfbom v1.1.1 // indirect + github.com/distribution/reference v0.5.0 // indirect + github.com/docker/cli v25.0.4+incompatible // indirect + github.com/docker/distribution v2.8.3+incompatible // indirect + github.com/docker/docker v26.1.3+incompatible // indirect + github.com/docker/docker-credential-helpers v0.8.1 // indirect + github.com/docker/go-connections v0.4.0 // indirect + github.com/docker/go-units v0.5.0 // indirect + github.com/dustin/go-humanize v1.0.1 // indirect + github.com/elliotchance/orderedmap/v2 v2.2.0 // indirect + github.com/emirpasic/gods v1.18.1 // indirect + github.com/evanphx/json-patch/v5 v5.6.0 // indirect + github.com/fatih/color v1.16.0 // indirect + github.com/felixge/httpsnoop v1.0.4 // indirect + github.com/fsnotify/fsnotify v1.7.0 // indirect + github.com/gabriel-vasile/mimetype v1.4.2 // indirect + github.com/github/smimesign v0.2.0 // indirect + github.com/go-fed/httpsig v1.1.0 // indirect + github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect + github.com/go-git/go-billy/v5 v5.5.0 // indirect + github.com/go-git/go-git/v5 v5.12.0 // indirect + github.com/go-logr/logr v1.4.1 // indirect + github.com/go-logr/stdr v1.2.2 // indirect + github.com/go-openapi/analysis v0.23.0 // indirect + github.com/go-openapi/errors v0.22.0 // indirect + github.com/go-openapi/jsonpointer v0.21.0 // indirect + github.com/go-openapi/jsonreference v0.21.0 // indirect + github.com/go-openapi/loads v0.22.0 // indirect + github.com/go-openapi/runtime v0.28.0 // indirect + github.com/go-openapi/spec v0.21.0 // indirect + github.com/go-openapi/strfmt v0.23.0 // indirect + github.com/go-openapi/swag v0.23.0 // indirect + github.com/go-openapi/validate v0.24.0 // indirect + github.com/go-restruct/restruct v1.2.0-alpha // indirect + github.com/go-telegram-bot-api/telegram-bot-api/v5 v5.5.1 // indirect + github.com/gobwas/glob v0.2.3 // indirect + github.com/gogo/protobuf v1.3.2 // indirect + github.com/golang-jwt/jwt/v4 v4.5.0 // indirect + github.com/golang-jwt/jwt/v5 v5.2.1 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect - github.com/golang/protobuf v1.5.3 // indirect + github.com/golang/protobuf v1.5.4 // indirect github.com/google/go-cmp v0.6.0 // indirect + github.com/google/go-containerregistry v0.19.1 // indirect + github.com/google/go-github/v62 v62.0.0 // indirect + github.com/google/go-querystring v1.1.0 // indirect + github.com/google/ko v0.15.4 // indirect + github.com/google/rpmpack v0.6.1-0.20240329070804-c2247cbb881a // indirect github.com/google/s2a-go v0.1.7 // indirect + github.com/google/safetext v0.0.0-20220905092116-b49f7bc46da2 // indirect github.com/google/uuid v1.6.0 // indirect + github.com/google/wire v0.6.0 // indirect github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect - github.com/googleapis/gax-go/v2 v2.12.0 // indirect + github.com/googleapis/gax-go/v2 v2.12.3 // indirect + github.com/goreleaser/chglog v0.6.1 // indirect + github.com/goreleaser/fileglob v1.3.0 // indirect + github.com/goreleaser/nfpm/v2 v2.37.1 // indirect + github.com/gorilla/websocket v1.5.1 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-cleanhttp v0.5.2 // indirect + github.com/hashicorp/go-cty v1.4.1-0.20200414143053-d3edf31b6320 // indirect github.com/hashicorp/go-getter v1.5.3 // indirect + github.com/hashicorp/go-hclog v1.5.0 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect + github.com/hashicorp/go-plugin v1.6.0 // indirect + github.com/hashicorp/go-retryablehttp v0.7.5 // indirect github.com/hashicorp/go-safetemp v1.0.0 // indirect github.com/hashicorp/go-uuid v1.0.3 // indirect github.com/hashicorp/go-version v1.6.0 // indirect + github.com/hashicorp/golang-lru v1.0.2 // indirect github.com/hashicorp/hcl v1.0.1-vault-5 // indirect - github.com/hashicorp/hcl/v2 v2.12.0 // indirect - github.com/hashicorp/terraform-svchost v0.0.0-20200729002733-f050f53b9734 // indirect + github.com/hashicorp/hcl/v2 v2.20.1 // indirect + github.com/hashicorp/logutils v1.0.0 // indirect + github.com/hashicorp/terraform-plugin-go v0.23.0 // indirect + github.com/hashicorp/terraform-plugin-log v0.9.0 // indirect + github.com/hashicorp/terraform-registry-address v0.2.3 // indirect + github.com/hashicorp/terraform-svchost v0.1.1 // indirect + github.com/hashicorp/yamux v0.1.1 // indirect github.com/huandu/xstrings v1.3.3 // indirect github.com/imdario/mergo v0.3.16 // indirect + github.com/inconshreveable/mousetrap v1.1.0 // indirect + github.com/invopop/jsonschema v0.12.0 // indirect + github.com/ipfs/bbloom v0.0.4 // indirect + github.com/ipfs/go-block-format v0.2.0 // indirect + github.com/ipfs/go-cid v0.4.1 // indirect + github.com/ipfs/go-datastore v0.6.0 // indirect + github.com/ipfs/go-ipfs-blockstore v1.3.1 // indirect + github.com/ipfs/go-ipfs-ds-help v1.1.1 // indirect + github.com/ipfs/go-ipfs-util v0.0.3 // indirect + github.com/ipfs/go-ipld-cbor v0.1.0 // indirect + github.com/ipfs/go-ipld-format v0.6.0 // indirect + github.com/ipfs/go-log v1.0.5 // indirect + github.com/ipfs/go-log/v2 v2.5.1 // indirect + github.com/ipfs/go-metrics-interface v0.0.1 // indirect + github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect + github.com/jbenet/goprocess v0.1.4 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect - github.com/klauspost/compress v1.17.5 // indirect - github.com/kr/pretty v0.3.1 // indirect + github.com/josharian/intern v1.0.0 // indirect + github.com/kevinburke/ssh_config v1.2.0 // indirect + github.com/klauspost/compress v1.17.8 // indirect + github.com/klauspost/cpuid/v2 v2.2.7 // indirect + github.com/klauspost/pgzip v1.2.6 // indirect + github.com/kylelemons/godebug v1.1.0 // indirect + github.com/letsencrypt/boulder v0.0.0-20231026200631-000cd05d5491 // indirect + github.com/lucasb-eyer/go-colorful v1.2.0 // indirect + github.com/magiconair/properties v1.8.7 // indirect + github.com/mailru/easyjson v0.7.7 // indirect github.com/mattn/go-colorable v0.1.13 // indirect - github.com/mattn/go-isatty v0.0.18 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect + github.com/mattn/go-localereader v0.0.1 // indirect + github.com/mattn/go-mastodon v0.0.8 // indirect + github.com/mattn/go-runewidth v0.0.15 // indirect + github.com/minio/sha256-simd v1.0.1 // indirect github.com/mitchellh/cli v1.1.2 // indirect github.com/mitchellh/copystructure v1.2.0 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect @@ -63,31 +239,109 @@ require ( github.com/mitchellh/go-wordwrap v1.0.1 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect github.com/mitchellh/reflectwalk v1.0.2 // indirect - github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/moby/docker-image-spec v1.3.1 // indirect + github.com/mr-tron/base58 v1.2.0 // indirect + github.com/muesli/ansi v0.0.0-20211031195517-c9f0611b6c70 // indirect + github.com/muesli/cancelreader v0.2.2 // indirect + github.com/muesli/mango v0.1.0 // indirect + github.com/muesli/mango-cobra v1.2.0 // indirect + github.com/muesli/mango-pflag v0.1.0 // indirect + github.com/muesli/reflow v0.3.0 // indirect + github.com/muesli/roff v0.1.0 // indirect + github.com/muesli/termenv v0.15.2 // indirect + github.com/multiformats/go-base32 v0.1.0 // indirect + github.com/multiformats/go-base36 v0.2.0 // indirect + github.com/multiformats/go-multibase v0.2.0 // indirect + github.com/multiformats/go-multihash v0.2.3 // indirect + github.com/multiformats/go-varint v0.0.7 // indirect + github.com/oklog/run v1.0.0 // indirect + github.com/oklog/ulid v1.3.1 // indirect + github.com/opencontainers/go-digest v1.0.0 // indirect + github.com/opencontainers/image-spec v1.1.0 // indirect + github.com/opentracing/opentracing-go v1.2.0 // indirect + github.com/pelletier/go-toml v1.9.5 // indirect + github.com/pelletier/go-toml/v2 v2.1.0 // indirect + github.com/pjbgf/sha1cd v0.3.0 // indirect + github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect + github.com/pkg/errors v0.9.1 // indirect + github.com/polydawn/refmt v0.89.1-0.20221221234430-40501e09de1f // indirect github.com/posener/complete v1.2.1 // indirect - github.com/rogpeppe/go-internal v1.11.0 // indirect - github.com/spf13/afero v1.10.0 // indirect - github.com/stretchr/testify v1.8.4 // indirect - github.com/ulikunitz/xz v0.5.11 // indirect - github.com/vmihailenco/msgpack/v4 v4.3.12 // indirect - github.com/vmihailenco/tagparser v0.1.1 // indirect - github.com/zclconf/go-cty v1.10.0 // indirect + github.com/rivo/uniseg v0.4.7 // indirect + github.com/russross/blackfriday/v2 v2.1.0 // indirect + github.com/sagikazarmark/locafero v0.4.0 // indirect + github.com/sagikazarmark/slog-shim v0.1.0 // indirect + github.com/scylladb/go-set v1.0.3-0.20200225121959-cc7b2070d91e // indirect + github.com/secure-systems-lab/go-securesystemslib v0.8.0 // indirect + github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 // indirect + github.com/shopspring/decimal v1.2.0 // indirect + github.com/sigstore/cosign/v2 v2.2.4 // indirect + github.com/sigstore/rekor v1.3.6 // indirect + github.com/sigstore/sigstore v1.8.3 // indirect + github.com/sirupsen/logrus v1.9.3 // indirect + github.com/skeema/knownhosts v1.2.2 // indirect + github.com/slack-go/slack v0.13.0 // indirect + github.com/sourcegraph/conc v0.3.0 // indirect + github.com/spaolacci/murmur3 v1.1.0 // indirect + github.com/spf13/afero v1.11.0 // indirect + github.com/spf13/cast v1.6.0 // indirect + github.com/spf13/cobra v1.8.0 // indirect + github.com/spf13/pflag v1.0.5 // indirect + github.com/spf13/viper v1.18.2 // indirect + github.com/subosito/gotenv v1.6.0 // indirect + github.com/titanous/rocacheck v0.0.0-20171023193734-afe73141d399 // indirect + github.com/tomnomnom/linkheader v0.0.0-20180905144013-02ca5825eb80 // indirect + github.com/ulikunitz/xz v0.5.12 // indirect + github.com/vbatts/tar-split v0.11.5 // indirect + github.com/vmihailenco/msgpack v4.0.4+incompatible // indirect + github.com/vmihailenco/msgpack/v5 v5.4.1 // indirect + github.com/vmihailenco/tagparser/v2 v2.0.0 // indirect + github.com/wagoodman/go-partybus v0.0.0-20230516145632-8ccac152c651 // indirect + github.com/wagoodman/go-progress v0.0.0-20220614130704-4b1c25a33c7c // indirect + github.com/whyrusleeping/cbor-gen v0.1.1-0.20240311221002-68b9f235c302 // indirect + github.com/wk8/go-ordered-map/v2 v2.1.8 // indirect + github.com/xanzy/go-gitlab v0.105.0 // indirect + github.com/xanzy/ssh-agent v0.3.3 // indirect + github.com/zclconf/go-cty v1.14.4 // indirect github.com/zclconf/go-cty-yaml v1.0.2 // indirect + gitlab.com/digitalxero/go-conventional-commit v1.0.7 // indirect + go.mongodb.org/mongo-driver v1.14.0 // indirect go.opencensus.io v0.24.0 // indirect - golang.org/x/crypto v0.18.0 // indirect - golang.org/x/net v0.20.0 // indirect - golang.org/x/oauth2 v0.16.0 // indirect - golang.org/x/sync v0.6.0 // indirect - golang.org/x/sys v0.16.0 // indirect - golang.org/x/text v0.14.0 // indirect - golang.org/x/time v0.4.0 // indirect + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 // indirect + go.opentelemetry.io/otel v1.24.0 // indirect + go.opentelemetry.io/otel/metric v1.24.0 // indirect + go.opentelemetry.io/otel/trace v1.24.0 // indirect + go.uber.org/atomic v1.11.0 // indirect + go.uber.org/automaxprocs v1.5.3 // indirect + go.uber.org/multierr v1.11.0 // indirect + go.uber.org/zap v1.27.0 // indirect + gocloud.dev v0.37.0 // indirect + golang.org/x/exp v0.0.0-20231206192017-f3f8817b8deb // indirect + golang.org/x/mod v0.17.0 // indirect + golang.org/x/net v0.25.0 // indirect + golang.org/x/oauth2 v0.20.0 // indirect + golang.org/x/sync v0.7.0 // indirect + golang.org/x/sys v0.20.0 // indirect + golang.org/x/term v0.20.0 // indirect + golang.org/x/text v0.15.0 // indirect + golang.org/x/time v0.5.0 // indirect + golang.org/x/tools v0.21.0 // indirect golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect - google.golang.org/api v0.151.0 // indirect + google.golang.org/api v0.172.0 // indirect google.golang.org/appengine v1.6.8 // indirect - google.golang.org/genproto v0.0.0-20231120223509-83a465c0220f // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20231120223509-83a465c0220f // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20231120223509-83a465c0220f // indirect - google.golang.org/grpc v1.59.0 // indirect - google.golang.org/protobuf v1.31.0 // indirect - gopkg.in/yaml.v2 v2.4.0 // indirect + google.golang.org/genproto v0.0.0-20240311173647-c811ad7063a7 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20240311173647-c811ad7063a7 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240318140521-94a12d6c2237 // indirect + google.golang.org/grpc v1.63.2 // indirect + google.golang.org/protobuf v1.34.0 // indirect + gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc // indirect + gopkg.in/go-jose/go-jose.v2 v2.6.3 // indirect + gopkg.in/ini.v1 v1.67.0 // indirect + gopkg.in/mail.v2 v2.3.1 // indirect + gopkg.in/warnings.v0 v0.1.2 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect + lukechampine.com/blake3 v1.2.1 // indirect + sigs.k8s.io/kind v0.23.0 // indirect + sigs.k8s.io/yaml v1.4.0 // indirect + software.sslmate.com/src/go-pkcs12 v0.4.0 // indirect ) diff --git a/go.sum b/go.sum index 42e2080c..09765fde 100644 --- a/go.sum +++ b/go.sum @@ -3,7 +3,6 @@ cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMT 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.44.3/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= @@ -14,25 +13,22 @@ cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKV 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/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= -cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= -cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= -cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY= -cloud.google.com/go v0.110.10 h1:LXy9GEO+timppncPIAZoOj3l58LIU9k+kn48AN7IO3Y= -cloud.google.com/go v0.110.10/go.mod h1:v1OoFqYxiBkUrruItNM3eT4lLByNjxmJSV/xDKJNnic= +cloud.google.com/go v0.112.1 h1:uJSeirPke5UNZHIb4SxfZklVSiWWVqW4oXlETwZziwM= +cloud.google.com/go v0.112.1/go.mod h1:+Vbu+Y1UU+I1rjmzeMOb/8RfkKJK2Gyxi1X6jJCZLo4= 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/compute v1.23.3 h1:6sVlXXBmbd7jNX0Ipq0trII3e4n1/MsADLK6a+aiVlk= -cloud.google.com/go/compute v1.23.3/go.mod h1:VCgBUoMnIVIR0CscqQiPJLAG25E3ZRZMzcFZeQ+h8CI= -cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY= -cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= +cloud.google.com/go/compute/metadata v0.3.0 h1:Tz+eQXMEqDIKRsmY3cHTL6FVaynIjX2QxYC4trgAKZc= +cloud.google.com/go/compute/metadata v0.3.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= 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/iam v1.1.5 h1:1jTsCu4bcsNsE4iiqNT5SHwrDRCfRmIaaaVFhRveTJI= -cloud.google.com/go/iam v1.1.5/go.mod h1:rB6P/Ic3mykPbFio+vo7403drjlgvoWfYpJhMXEbzv8= +cloud.google.com/go/iam v1.1.6 h1:bEa06k05IO4f4uJonbB5iAgKTPpABy1ayxaIZV/GHVc= +cloud.google.com/go/iam v1.1.6/go.mod h1:O0zxdPeGBoFdWW3HWmBxJsk0pfvNM/p/qa82rWOGTwI= +cloud.google.com/go/kms v1.15.8 h1:szIeDCowID8th2i8XE4uRev5PMxQFqW+JjwYxL9h6xs= +cloud.google.com/go/kms v1.15.8/go.mod h1:WoUHcDjD9pluCg7pNds131awnH429QGvRM3N/4MyoVs= 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= @@ -42,30 +38,113 @@ cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0Zeo 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= -cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= -cloud.google.com/go/storage v1.35.1 h1:B59ahL//eDfx2IIKFBeT5Atm9wnNmj3+8xG/W4WB//w= -cloud.google.com/go/storage v1.35.1/go.mod h1:M6M/3V/D3KpzMTJyPOR/HU6n2Si5QdaXYEsng2xgOs8= +cloud.google.com/go/storage v1.39.1 h1:MvraqHKhogCOTXTlct/9C3K3+Uy2jBmFYb3/Sp6dVtY= +cloud.google.com/go/storage v1.39.1/go.mod h1:xK6xZmxZmo+fyP7+DEF6FhNc24/JAe95OLyOHCXFH1o= +code.gitea.io/sdk/gitea v0.18.0 h1:+zZrwVmujIrgobt6wVBWCqITz6bn1aBjnCUHmpZrerI= +code.gitea.io/sdk/gitea v0.18.0/go.mod h1:IG9xZJoltDNeDSW0qiF2Vqx5orMWa7OhVWrjvrd5NpI= +dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= +dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= +github.com/AlekSi/pointer v1.2.0 h1:glcy/gc4h8HnG2Z3ZECSzZ1IX1x2JxRVuDzaJwQE0+w= +github.com/AlekSi/pointer v1.2.0/go.mod h1:gZGfd3dpW4vEc/UlyfKKi1roIqcCgwOIvb0tSNSBle0= +github.com/Azure/azure-sdk-for-go v68.0.0+incompatible h1:fcYLmCpyNYRnvJbPerq7U0hS+6+I79yEDJBqVNcqUzU= +github.com/Azure/azure-sdk-for-go v68.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.10.0 h1:n1DH8TPV4qqPTje2RcUBYwtrTWlabVp4n46+74X2pn4= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.10.0/go.mod h1:HDcZnuGbiyppErN6lB+idp4CKhjbc8gwjto6OPpyggM= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.5.1 h1:sO0/P7g68FrryJzljemN+6GTssUXdANk6aJ7T1ZxnsQ= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.5.1/go.mod h1:h8hyGFDsU5HMivxiS2iYFZsgDbU9OnnJ163x5UGVKYo= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.2 h1:LqbJ/WzJUwBf8UiaSzgX7aMclParm9/5Vgp+TY51uBQ= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.2/go.mod h1:yInRyqWXAuaPrgI7p70+lDDgh3mlBohis29jGMISnmc= +github.com/Azure/azure-sdk-for-go/sdk/keyvault/azkeys v0.10.0 h1:m/sWOGCREuSBqg2htVQTBY8nOZpyajYztF0vUvSZTuM= +github.com/Azure/azure-sdk-for-go/sdk/keyvault/azkeys v0.10.0/go.mod h1:Pu5Zksi2KrU7LPbZbNINx6fuVrUp/ffvpxdDj+i8LeE= +github.com/Azure/azure-sdk-for-go/sdk/keyvault/internal v0.7.1 h1:FbH3BbSb4bvGluTesZZ+ttN/MDsnMmQP36OSnDuSXqw= +github.com/Azure/azure-sdk-for-go/sdk/keyvault/internal v0.7.1/go.mod h1:9V2j0jn9jDEkCkv8w/bKTNppX/d0FVA1ud77xCIP4KA= +github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/storage/armstorage v1.5.0 h1:AifHbc4mg0x9zW52WOpKbsHaDKuRhlI7TVl47thgQ70= +github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/storage/armstorage v1.5.0/go.mod h1:T5RfihdXtBDxt1Ch2wobif3TvzTdumDy29kahv6AV9A= +github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.3.1 h1:fXPMAmuh0gDuRDey0atC8cXBuKIlqCzCkL8sm1n9Ov0= +github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.3.1/go.mod h1:SUZc9YRRHfx2+FAQKNDGrssXehqLpxmwRv2mC/5ntj4= +github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25UVaW/CKtUDjefjrs0SPonmDGUVOYP0= +github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= +github.com/Azure/go-autorest v14.2.0+incompatible h1:V5VMDjClD3GiElqLWO7mz2MxNAK/vTfRHdAubSIPRgs= +github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= +github.com/Azure/go-autorest/autorest v0.11.24/go.mod h1:G6kyRlFnTuSbEYkQGawPfsCswgme4iYf6rfSKUDzbCc= +github.com/Azure/go-autorest/autorest v0.11.29 h1:I4+HL/JDvErx2LjyzaVxllw2lRDB5/BT2Bm4g20iqYw= +github.com/Azure/go-autorest/autorest v0.11.29/go.mod h1:ZtEzC4Jy2JDrZLxvWs8LrBWEBycl1hbT1eknI8MtfAs= +github.com/Azure/go-autorest/autorest/adal v0.9.18/go.mod h1:XVVeme+LZwABT8K5Lc3hA4nAe8LDBVle26gTrguhhPQ= +github.com/Azure/go-autorest/autorest/adal v0.9.22/go.mod h1:XuAbAEUv2Tta//+voMI038TrJBqjKam0me7qR+L8Cmk= +github.com/Azure/go-autorest/autorest/adal v0.9.23 h1:Yepx8CvFxwNKpH6ja7RZ+sKX+DWYNldbLiALMC3BTz8= +github.com/Azure/go-autorest/autorest/adal v0.9.23/go.mod h1:5pcMqFkdPhviJdlEy3kC/v1ZLnQl0MH6XA5YCcMhy4c= +github.com/Azure/go-autorest/autorest/azure/auth v0.5.12 h1:wkAZRgT/pn8HhFyzfe9UnqOjJYqlembgCTi72Bm/xKk= +github.com/Azure/go-autorest/autorest/azure/auth v0.5.12/go.mod h1:84w/uV8E37feW2NCJ08uT9VBfjfUHpgLVnG2InYD6cg= +github.com/Azure/go-autorest/autorest/azure/cli v0.4.5/go.mod h1:ADQAXrkgm7acgWVUNamOgh8YNrv4p27l3Wc55oVfpzg= +github.com/Azure/go-autorest/autorest/azure/cli v0.4.6 h1:w77/uPk80ZET2F+AfQExZyEWtn+0Rk/uw17m9fv5Ajc= +github.com/Azure/go-autorest/autorest/azure/cli v0.4.6/go.mod h1:piCfgPho7BiIDdEQ1+g4VmKyD5y+p/XtSNqE6Hc4QD0= +github.com/Azure/go-autorest/autorest/date v0.3.0 h1:7gUk1U5M/CQbp9WoqinNzJar+8KY+LPI6wiWrP/myHw= +github.com/Azure/go-autorest/autorest/date v0.3.0/go.mod h1:BI0uouVdmngYNUzGWeSYnokU+TrmwEsOqdt8Y6sso74= +github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k= +github.com/Azure/go-autorest/autorest/mocks v0.4.2 h1:PGN4EDXnuQbojHbU0UWoNvmu9AGVwYHG9/fkDYhtAfw= +github.com/Azure/go-autorest/autorest/mocks v0.4.2/go.mod h1:Vy7OitM9Kei0i1Oj+LvyAWMXJHeKH1MVlzFugfVrmyU= +github.com/Azure/go-autorest/autorest/to v0.4.0 h1:oXVqrxakqqV1UZdSazDOPOLvOIz+XA683u8EctwboHk= +github.com/Azure/go-autorest/autorest/to v0.4.0/go.mod h1:fE8iZBn7LQR7zH/9XU2NcPR4o9jEImooCeWJcYV/zLE= +github.com/Azure/go-autorest/logger v0.2.1 h1:IG7i4p/mDa2Ce4TRyAO8IHnVhAVF3RFU+ZtXWSmf4Tg= +github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= +github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUMfuitfgcfuo= +github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= +github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 h1:XHOnouVk1mxXfQidrMEnLlPk9UMeRtyBTnEFtxkV0kU= +github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/toml v1.2.1 h1:9F2/+DoOYIOksmaJFPw1tGFy1eDnIJXg+UHjuD8lTak= github.com/BurntSushi/toml v1.2.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= +github.com/DataDog/zstd v1.5.5 h1:oWf5W7GtOLgp6bciQYDmhHHjdhYkALu6S/5Ni9ZgSvQ= +github.com/DataDog/zstd v1.5.5/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= github.com/Masterminds/goutils v1.1.0/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= github.com/Masterminds/goutils v1.1.1 h1:5nUrii3FMTL5diU80unEVvNevw1nH4+ZV4DSLVJLSYI= github.com/Masterminds/goutils v1.1.1/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww= github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= +github.com/Masterminds/semver/v3 v3.2.0/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ= +github.com/Masterminds/semver/v3 v3.2.1 h1:RN9w6+7QoMeJVGyfmbcgs28Br8cvmnucEXnY0rYXWg0= +github.com/Masterminds/semver/v3 v3.2.1/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ= github.com/Masterminds/sprig v2.22.0+incompatible h1:z4yfnGrZ7netVz+0EDJ0Wi+5VZCSYp4Z0m2dk6cEM60= github.com/Masterminds/sprig v2.22.0+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuNhlNS5hqE0NB0E6fgfo2Br3o= +github.com/Masterminds/sprig/v3 v3.2.3 h1:eL2fZNezLomi0uOLqjQoN6BfsDD+fyLtgbJMAj9n6YA= +github.com/Masterminds/sprig/v3 v3.2.3/go.mod h1:rXcFaZ2zZbLRJv/xSysmlgIM1u11eBaRMhvYXJNkGuM= github.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA= github.com/Microsoft/go-winio v0.4.16/go.mod h1:XB6nPKklQyQ7GC9LdcBEcBl8PF76WugXOPRXwdLnMv0= +github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY= +github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= +github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5 h1:TngWCqHvy9oXAN6lEVMRuU21PR1EtLVZJmdB18Gu3Rw= +github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5/go.mod h1:lmUJ/7eu/Q8D7ML55dXQrVaamCz2vxCfdQBasLZfHKk= +github.com/ProtonMail/go-crypto v1.1.0-alpha.2 h1:bkyFVUP+ROOARdgCiJzNQo2V2kiB97LyUpzH9P6Hrlg= +github.com/ProtonMail/go-crypto v1.1.0-alpha.2/go.mod h1:rA3QumHc/FZ8pAHreoekgiAbzpNsfQAosU5td4SnOrE= +github.com/ProtonMail/go-mime v0.0.0-20230322103455-7d82a3887f2f h1:tCbYj7/299ekTTXpdwKYF8eBlsYsDVoggDAuAjoK66k= +github.com/ProtonMail/go-mime v0.0.0-20230322103455-7d82a3887f2f/go.mod h1:gcr0kNtGBqin9zDW9GOHcVntrwnjrK+qdJ06mWYBybw= +github.com/ProtonMail/gopenpgp/v2 v2.7.1 h1:Awsg7MPc2gD3I7IFac2qE3Gdls0lZW8SzrFZ3k1oz0s= +github.com/ProtonMail/gopenpgp/v2 v2.7.1/go.mod h1:/BU5gfAVwqyd8EfC3Eu7zmuhwYQpKs+cGD8M//iiaxs= +github.com/acarl005/stripansi v0.0.0-20180116102854-5a71ef0e047d h1:licZJFw2RwpHMqeKTCYkitsPqHNxTmd4SNR5r94FGM8= +github.com/acarl005/stripansi v0.0.0-20180116102854-5a71ef0e047d/go.mod h1:asat636LX7Bqt5lYEZ27JNDcqxfjdBQuJ/MM4CN/Lzo= github.com/agext/levenshtein v1.2.1/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558= github.com/agext/levenshtein v1.2.2 h1:0S/Yg6LYmFJ5stwQeRp6EeOcCbj7xiqQSdNelsXvaqE= github.com/agext/levenshtein v1.2.2/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558= github.com/agl/ed25519 v0.0.0-20170116200512-5312a6153412/go.mod h1:WPjqKcmVOxf0XSf3YxCJs6N6AOSrOx3obionmG7T0y0= github.com/alcortesm/tgz v0.0.0-20161220082320-9c5fe88206d7/go.mod h1:6zEj6s6u/ghQa61ZWa/C2Aw3RkjiTBOix7dkqa1VLIs= +github.com/alessio/shellescape v1.4.1 h1:V7yhSDDn8LP4lc4jS8pFkt0zCnzVJlG5JXy9BVKJUX0= +github.com/alessio/shellescape v1.4.1/go.mod h1:PZAiSCk0LJaZkiCSkPv8qIobYglO3FPpyFjDCtHLS30= +github.com/anchore/bubbly v0.0.0-20230518153401-87b6af8ccf22 h1:5NFK6VGgqBUOAX2SYyzFYvNdOiYDxzim8jga386FlZY= +github.com/anchore/bubbly v0.0.0-20230518153401-87b6af8ccf22/go.mod h1:Kv+Mm9CdtnV8iem48iEPIwy7/N4Wmk0hpxYNH5gTwKQ= +github.com/anchore/go-logger v0.0.0-20230725134548-c21dafa1ec5a h1:nJ2G8zWKASyVClGVgG7sfM5mwoZlZ2zYpIzN2OhjWkw= +github.com/anchore/go-logger v0.0.0-20230725134548-c21dafa1ec5a/go.mod h1:ubLFmlsv8/DFUQrZwY5syT5/8Er3ugSr4rDFwHsE3hg= +github.com/anchore/go-macholibre v0.0.0-20220308212642-53e6d0aaf6fb h1:iDMnx6LIjtjZ46C0akqveX83WFzhpTD3eqOthawb5vU= +github.com/anchore/go-macholibre v0.0.0-20220308212642-53e6d0aaf6fb/go.mod h1:DmTY2Mfcv38hsHbG78xMiTDdxFtkHpgYNVDPsF2TgHk= +github.com/anchore/quill v0.4.1 h1:mffDnvnER3ZgPjN5hexc3nr/4Y1dtKdDB6td5K8uInk= +github.com/anchore/quill v0.4.1/go.mod h1:t6hOPYDohN8wn2SRWQdNkJBkhmK8s3gzuHzzgcEvzQU= +github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= github.com/andybalholm/crlf v0.0.0-20171020200849-670099aa064f/go.mod h1:k8feO4+kXDxro6ErPXBRTJ/ro2mf0SsFG8s7doP9kJE= github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c= +github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8= +github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be/go.mod h1:ySMOLuWl6zY27l47sB3qLNK6tF2fkHG55UZxx8oIVo4= github.com/antchfx/xmlquery v1.3.18 h1:FSQ3wMuphnPPGJOFhvc+cRQ2CT/rUj4cyQXkJcjOwz0= github.com/antchfx/xmlquery v1.3.18/go.mod h1:Afkq4JIeXut75taLSuI31ISJ/zeq+3jG7TunF7noreA= github.com/antchfx/xpath v1.2.4 h1:dW1HB/JxKvGtJ9WyVGJ0sIoEcqftV3SqIstujI+B9XY= @@ -77,57 +156,290 @@ github.com/apparentlymart/go-dump v0.0.0-20190214190832-042adf3cf4a0 h1:MzVXffFU github.com/apparentlymart/go-dump v0.0.0-20190214190832-042adf3cf4a0/go.mod h1:oL81AME2rN47vu18xqj1S1jPIPuN7afo62yKTNn3XMM= github.com/apparentlymart/go-textseg v1.0.0/go.mod h1:z96Txxhf3xSFMPmb5X/1W05FF/Nj9VFpLOpjS5yuumk= github.com/apparentlymart/go-textseg/v12 v12.0.0/go.mod h1:S/4uRK2UtaQttw1GenVJEynmyUenKwP++x/+DdGV/Ec= -github.com/apparentlymart/go-textseg/v13 v13.0.0 h1:Y+KvPE1NYz0xl601PVImeQfFyEy6iT90AvPUL1NNfNw= github.com/apparentlymart/go-textseg/v13 v13.0.0/go.mod h1:ZK2fH7c4NqDTLtiYLvIkEghdlcqw7yxLeM89kiTRPUo= +github.com/apparentlymart/go-textseg/v15 v15.0.0 h1:uYvfpb3DyLSCGWnctWKGj857c6ew1u1fNQOlOtuGxQY= +github.com/apparentlymart/go-textseg/v15 v15.0.0/go.mod h1:K8XmNZdhEBkdlyDdvbmmsvpAG721bKi0joRfFdHIWJ4= github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/armon/go-radix v1.0.0 h1:F4z6KzEeeQIMeLFa97iZU6vupzoecKdU5TX24SNppXI= github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= +github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= +github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 h1:DklsrG3dyBCFEj5IhUbnKptjxatkF07cF2ak3yi77so= +github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= +github.com/atc0005/go-teams-notify/v2 v2.10.0 h1:eQvRIkyESQgBvlUdQ/iPol/lj3QcRyrdEQM3+c/nXhM= +github.com/atc0005/go-teams-notify/v2 v2.10.0/go.mod h1:SIeE1UfCcVRYMqP5b+r1ZteHyA/2UAjzWF5COnZ8q0w= github.com/aws/aws-sdk-go v1.15.78/go.mod h1:E3/ieXAlvM0XWO57iftYVDLLvQ824smPP3ATZkfNZeM= github.com/aws/aws-sdk-go v1.37.0/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro= -github.com/aws/aws-sdk-go v1.50.10 h1:H3NQvqRUKG+9oysCKTIyylpkqfPA7MiBtzTnu/cIGqE= -github.com/aws/aws-sdk-go v1.50.10/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= +github.com/aws/aws-sdk-go v1.53.0 h1:MMo1x1ggPPxDfHMXJnQudTbGXYlD4UigUAud1DJxPVo= +github.com/aws/aws-sdk-go v1.53.0/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= +github.com/aws/aws-sdk-go-v2 v1.26.1 h1:5554eUqIYVWpU0YmeeYZ0wU64H2VLBs8TlhRB2L+EkA= +github.com/aws/aws-sdk-go-v2 v1.26.1/go.mod h1:ffIFB97e2yNsv4aTSGkqtHnppsIJzw7G7BReUZ3jCXM= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.1 h1:gTK2uhtAPtFcdRRJilZPx8uJLL2J85xK11nKtWL0wfU= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.1/go.mod h1:sxpLb+nZk7tIfCWChfd+h4QwHNUR57d8hA1cleTkjJo= +github.com/aws/aws-sdk-go-v2/config v1.27.13 h1:WbKW8hOzrWoOA/+35S5okqO/2Ap8hkkFUzoW8Hzq24A= +github.com/aws/aws-sdk-go-v2/config v1.27.13/go.mod h1:XLiyiTMnguytjRER7u5RIkhIqS8Nyz41SwAWb4xEjxs= +github.com/aws/aws-sdk-go-v2/credentials v1.17.13 h1:XDCJDzk/u5cN7Aple7D/MiAhx1Rjo/0nueJ0La8mRuE= +github.com/aws/aws-sdk-go-v2/credentials v1.17.13/go.mod h1:FMNcjQrmuBYvOTZDtOLCIu0esmxjF7RuA/89iSXWzQI= +github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue v1.13.11 h1:nyWawIVs7Y75DuNhh6vao/qmKKWS56zUuWt/+dOE5iI= +github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue v1.13.11/go.mod h1:5WPGXfp9+ss7gYsZ5QjJeY16qTpCLaIcQItE7Yw7ld4= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1 h1:FVJ0r5XTHSmIHJV6KuDmdYhEpvlHpiSd38RQWhut5J4= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1/go.mod h1:zusuAeqezXzAB24LGuzuekqMAEgWkVYukBec3kr3jUg= +github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.13 h1:F+PUZee9mlfpEJVZdgyewRumKekS9O3fftj8fEMt0rQ= +github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.13/go.mod h1:Rl7i2dEWGHGsBIJCpUxlRt7VwK/HyXxICxdvIRssQHE= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.5 h1:aw39xVGeRWlWx9EzGVnhOR4yOjQDHPQ6o6NmBlscyQg= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.5/go.mod h1:FSaRudD0dXiMPK2UjknVwwTYyZMRsHv3TtkabsZih5I= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.5 h1:PG1F3OD1szkuQPzDw3CIQsRIrtTlUC3lP84taWzHlq0= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.5/go.mod h1:jU1li6RFryMz+so64PpKtudI+QzbKoIEivqdf6LNpOc= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 h1:hT8rVHwugYE2lEfdFE0QWVo81lF7jMrYJVDWI+f+VxU= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0/go.mod h1:8tu/lYfQfFe6IGnaOdrpVgEL2IrrDOf6/m9RQum4NkY= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.4 h1:SIkD6T4zGQ+1YIit22wi37CGNkrE7mXV1vNA5VpI3TI= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.4/go.mod h1:XfeqbsG0HNedNs0GT+ju4Bs+pFAwsrlzcRdMvdNVf5s= +github.com/aws/aws-sdk-go-v2/service/dynamodb v1.31.0 h1:LtsNRZ6+ZYIbJcPiLHcefXeWkw2DZT9iJyXJJQvhvXw= +github.com/aws/aws-sdk-go-v2/service/dynamodb v1.31.0/go.mod h1:ua1eYOCxAAT0PUY3LAi9bUFuKJHC/iAksBLqR1Et7aU= +github.com/aws/aws-sdk-go-v2/service/dynamodbstreams v1.20.3 h1:KOjg2W7v3tAU8ASDWw26os1OywstODoZdIh9b/Wwlm4= +github.com/aws/aws-sdk-go-v2/service/dynamodbstreams v1.20.3/go.mod h1:fw1lVv+e9z9UIaVsVjBXoC8QxZ+ibOtRtzfELRJZWs8= +github.com/aws/aws-sdk-go-v2/service/ecr v1.28.0 h1:rdPrcOZmqT2F+yzmKEImrx5XUs7Hpf4V9Rp6E8mhsxQ= +github.com/aws/aws-sdk-go-v2/service/ecr v1.28.0/go.mod h1:if7ybzzjOmDB8pat9FE35AHTY6ZxlYSy3YviSmFZv8c= +github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.23.5 h1:452e/nFuqPvwPg+1OD2CG/v29R9MH8egJSJKh2Qduv8= +github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.23.5/go.mod h1:8pvvNAklmq+hKmqyvFoMRg0bwg9sdGOvdwximmKiKP0= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2 h1:Ji0DY1xUsUr3I8cHps0G+XM3WWU16lP6yG8qu1GAZAs= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2/go.mod h1:5CsjAbs3NlGQyZNFACh+zztPDI7fU6eW9QsxjfnuBKg= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.6 h1:NkHCgg0Ck86c5PTOzBZ0JRccI51suJDg5lgFtxBu1ek= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.6/go.mod h1:mjTpxjC8v4SeINTngrnKFgm2QUi+Jm+etTbCxh8W4uU= +github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.9.5 h1:4vkDuYdXXD2xLgWmNalqH3q4u/d1XnaBMBXdVdZXVp0= +github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.9.5/go.mod h1:Ko/RW/qUJyM1rdTzZa74uhE2I0t0VXH0ob/MLcc+q+w= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7 h1:ogRAwT1/gxJBcSWDMZlgyFUM962F51A5CRhDLbxLdmo= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7/go.mod h1:YCsIZhXfRPLFFCl5xxY+1T9RKzOKjCut+28JSX2DnAk= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.4 h1:uDj2K47EM1reAYU9jVlQ1M5YENI1u6a/TxJpf6AeOLA= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.4/go.mod h1:XKCODf4RKHppc96c2EZBGV/oCUC7OClxAo2MEyg4pIk= +github.com/aws/aws-sdk-go-v2/service/kms v1.30.0 h1:yS0JkEdV6h9JOo8sy2JSpjX+i7vsKifU8SIeHrqiDhU= +github.com/aws/aws-sdk-go-v2/service/kms v1.30.0/go.mod h1:+I8VUUSVD4p5ISQtzpgSva4I8cJ4SQ4b1dcBcof7O+g= +github.com/aws/aws-sdk-go-v2/service/s3 v1.53.0 h1:r3o2YsgW9zRcIP3Q0WCmttFVhTuugeKIvT5z9xDspc0= +github.com/aws/aws-sdk-go-v2/service/s3 v1.53.0/go.mod h1:w2E4f8PUfNtyjfL6Iu+mWI96FGttE03z3UdNcUEC4tA= +github.com/aws/aws-sdk-go-v2/service/sso v1.20.6 h1:o5cTaeunSpfXiLTIBx5xo2enQmiChtu1IBbzXnfU9Hs= +github.com/aws/aws-sdk-go-v2/service/sso v1.20.6/go.mod h1:qGzynb/msuZIE8I75DVRCUXw3o3ZyBmUvMwQ2t/BrGM= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.24.0 h1:Qe0r0lVURDDeBQJ4yP+BOrJkvkiCo/3FH/t+wY11dmw= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.24.0/go.mod h1:mUYPBhaF2lGiukDEjJX2BLRRKTmoUSitGDUgM4tRxak= +github.com/aws/aws-sdk-go-v2/service/sts v1.28.7 h1:et3Ta53gotFR4ERLXXHIHl/Uuk1qYpP5uU7cvNql8ns= +github.com/aws/aws-sdk-go-v2/service/sts v1.28.7/go.mod h1:FZf1/nKNEkHdGGJP/cI2MoIMquumuRK6ol3QQJNDxmw= +github.com/aws/smithy-go v1.20.2 h1:tbp628ireGtzcHDDmLT/6ADHidqnwgF57XOXZe6tp4Q= +github.com/aws/smithy-go v1.20.2/go.mod h1:krry+ya/rV9RDcV/Q16kpu6ypI4K2czasz0NC3qS14E= +github.com/awslabs/amazon-ecr-credential-helper/ecr-login v0.0.0-20240514230400-03fa26f5508f h1:Z0kS9pJDQgCg3u2lH6+CdYaFbyQtyukVTiUCG6re0E4= +github.com/awslabs/amazon-ecr-credential-helper/ecr-login v0.0.0-20240514230400-03fa26f5508f/go.mod h1:rAE739ssmE5O5fLuQ2y8uHdmOJaelE5I0Es3SxV0y1A= +github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k= +github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8= +github.com/bahlo/generic-list-go v0.2.0 h1:5sz/EEAK+ls5wF+NeqDpk5+iNdMDXrh3z3nPnH1Wvgk= +github.com/bahlo/generic-list-go v0.2.0/go.mod h1:2KvAjgMlE5NNynlg/5iLrrCCZ2+5xWbdbCW3pNTGyYg= +github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= +github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= +github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d h1:xDfNPAt8lFiC1UJrqV3uuy861HCTo708pDMbjHHdCas= github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d/go.mod h1:6QX/PXZ00z/TKoufEY6K/a0k6AhaJrQKdFe6OfVXsa4= github.com/bgentry/speakeasy v0.1.0 h1:ByYyxL9InA1OWqxJqqp2A5pYHUrCiAL6K3J+LKSsQkY= github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= +github.com/blacktop/go-dwarf v1.0.9 h1:eT/L7gt0gllvvgnRXY0MFKjNB6+jtOY5DTm2ynVX2dY= +github.com/blacktop/go-dwarf v1.0.9/go.mod h1:4W2FKgSFYcZLDwnR7k+apv5i3nrau4NGl9N6VQ9DSTo= +github.com/blacktop/go-macho v1.1.162 h1:FjM3XAsJTAOGZ1eppRSX9ZBX3Bk11JMTC1amsZAOA5I= +github.com/blacktop/go-macho v1.1.162/go.mod h1:f2X4noFBob4G5bWUrzvPBKDVcFWZgDCM7rIn7ygTID0= +github.com/blakesmith/ar v0.0.0-20190502131153-809d4375e1fb h1:m935MPodAbYS46DG4pJSv7WO+VECIWUQ7OJYSoTrMh4= +github.com/blakesmith/ar v0.0.0-20190502131153-809d4375e1fb/go.mod h1:PkYb9DJNAwrSvRx5DYA+gUcOIgTGVMNkfSCbZM8cWpI= +github.com/bluesky-social/indigo v0.0.0-20240411170459-440932307e0d h1:xxPhzCOpmOntzVe8S6tqsMdFgaB8B4NXSV54lG4B1qk= +github.com/bluesky-social/indigo v0.0.0-20240411170459-440932307e0d/go.mod h1:ysMQ0a4RYWjgyvKrl5ME352oHA6QgK900g5sB9XXgPE= +github.com/bufbuild/protocompile v0.4.0 h1:LbFKd2XowZvQ/kajzguUp2DC9UEIQhIq77fZZlaQsNA= +github.com/bufbuild/protocompile v0.4.0/go.mod h1:3v93+mbWn/v3xzN+31nwkJfrEpAUwp+BagBSZWx+TP8= +github.com/buger/jsonparser v1.1.1 h1:2PnMjfWD7wBILjqQbt530v576A/cAbQvEW9gGIpYMUs= +github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0= +github.com/caarlos0/ctrlc v1.2.0 h1:AtbThhmbeYx1WW3WXdWrd94EHKi+0NPRGS4/4pzrjwk= +github.com/caarlos0/ctrlc v1.2.0/go.mod h1:n3gDlSjsXZ7rbD9/RprIR040b7oaLfNStikPd4gFago= +github.com/caarlos0/env/v11 v11.0.1 h1:A8dDt9Ub9ybqRSUF3fQc/TA/gTam2bKT4Pit+cwrsPs= +github.com/caarlos0/env/v11 v11.0.1/go.mod h1:2RC3HQu8BQqtEK3V4iHPxj0jOdWdbPpWJ6pOueeU1xM= +github.com/caarlos0/go-reddit/v3 v3.0.1 h1:w8ugvsrHhaE/m4ez0BO/sTBOBWI9WZTjG7VTecHnql4= +github.com/caarlos0/go-reddit/v3 v3.0.1/go.mod h1:QlwgmG5SAqxMeQvg/A2dD1x9cIZCO56BMnMdjXLoisI= +github.com/caarlos0/go-shellwords v1.0.12 h1:HWrUnu6lGbWfrDcFiHcZiwOLzHWjjrPVehULaTFgPp8= +github.com/caarlos0/go-shellwords v1.0.12/go.mod h1:bYeeX1GrTLPl5cAMYEzdm272qdsQAZiaHgeF0KTk1Gw= +github.com/caarlos0/go-version v0.1.1 h1:1bikKHkGGVIIxqCmufhSSs3hpBScgHGacrvsi8FuIfc= +github.com/caarlos0/go-version v0.1.1/go.mod h1:Ze5Qx4TsBBi5FyrSKVg1Ibc44KGV/llAaKGp86oTwZ0= +github.com/caarlos0/log v0.4.4 h1:LnvgBz/ofsJ00AupP/cEfksJSZglb1L69g4Obk/sdAc= +github.com/caarlos0/log v0.4.4/go.mod h1:+AmCI9Liv5LKXmzFmFI1htuHdTTj/0R3KuoP9DMY7Mo= +github.com/caarlos0/testfs v0.4.4 h1:3PHvzHi5Lt+g332CiShwS8ogTgS3HjrmzZxCm6JCDr8= +github.com/caarlos0/testfs v0.4.4/go.mod h1:bRN55zgG4XCUVVHZCeU+/Tz1Q6AxEJOEJTliBy+1DMk= +github.com/carlmjohnson/versioninfo v0.22.5 h1:O00sjOLUAFxYQjlN/bzYTuZiS0y6fWDQjMRvwtKgwwc= +github.com/carlmjohnson/versioninfo v0.22.5/go.mod h1:QT9mph3wcVfISUKd0i9sZfVrPviHuSF+cUtLjm2WSf8= +github.com/cavaliergopher/cpio v1.0.1 h1:KQFSeKmZhv0cr+kawA3a0xTQCU4QxXF1vhU7P7av2KM= +github.com/cavaliergopher/cpio v1.0.1/go.mod h1:pBdaqQjnvXxdS/6CvNDwIANIFSP0xRKI16PX4xejRQc= +github.com/cenkalti/backoff/v4 v4.1.2/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= +github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM= +github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/certifi/gocertifi v0.0.0-20180118203423-deb3ae2ef261/go.mod h1:GJKEexRPVJrBSOjoqN5VNOIKJ5Q3RViH6eu3puDRwx4= +github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= +github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/charmbracelet/bubbletea v0.22.1 h1:z66q0LWdJNOWEH9zadiAIXp2GN1AWrwNXU8obVY9X24= +github.com/charmbracelet/bubbletea v0.22.1/go.mod h1:8/7hVvbPN6ZZPkczLiB8YpLkLJ0n7DMho5Wvfd2X1C0= +github.com/charmbracelet/keygen v0.5.0 h1:XY0fsoYiCSM9axkrU+2ziE6u6YjJulo/b9Dghnw6MZc= +github.com/charmbracelet/keygen v0.5.0/go.mod h1:DfvCgLHxZ9rJxdK0DGw3C/LkV4SgdGbnliHcObV3L+8= +github.com/charmbracelet/lipgloss v0.10.0 h1:KWeXFSexGcfahHX+54URiZGkBFazf70JNMtwg/AFW3s= +github.com/charmbracelet/lipgloss v0.10.0/go.mod h1:Wig9DSfvANsxqkRsqj6x87irdy123SR4dOXlKa91ciE= +github.com/charmbracelet/x/exp/ordered v0.0.0-20231010190216-1cb11efc897d h1:+o+e/8hf7cG0SbAzEAm/usJ8qoZPgFXhudLjop+TM0g= +github.com/charmbracelet/x/exp/ordered v0.0.0-20231010190216-1cb11efc897d/go.mod h1:aoG4bThKYIOnyB55r202eHqo6TkN7ZXV+cu4Do3eoBQ= github.com/cheggaaa/pb v1.0.27/go.mod h1:pQciLPpbU0oxA0h+VJYYLxO+XeDQb5pZijXscXHm81s= +github.com/chrismarget/lambda-tf-registry v0.0.1 h1:45YfQhxordnWQhKThUDO0oEoV2TaRmvzVDk4J8mbKHc= +github.com/chrismarget/lambda-tf-registry v0.0.1/go.mod h1:9Jd4YJVoHMFY0zlXNAarSI7jyuJWwMsYLtU6XFjoQdI= +github.com/chrismellard/docker-credential-acr-env v0.0.0-20230304212654-82a0ddb27589 h1:krfRl01rzPzxSxyLyrChD+U+MzsBXbm0OwYYB67uF+4= +github.com/chrismellard/docker-credential-acr-env v0.0.0-20230304212654-82a0ddb27589/go.mod h1:OuDyvmLnMCwa2ep4Jkm6nyA0ocJuZlGyk2gGseVzERM= 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/cloudflare/circl v1.3.8 h1:j+V8jJt09PoeMFIu2uh5JUyEaIHTXVOHslFoLNAKqwI= +github.com/cloudflare/circl v1.3.8/go.mod h1:PDRU+oXvdD7KCtgKxW95M5Z8BpSCJXQORiZFnBQS5QU= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= -github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= -github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= +github.com/containerd/console v1.0.3/go.mod h1:7LqA/THxQ86k76b8c/EMSiaJ3h1eZkMkXar0TQ1gf3U= +github.com/containerd/console v1.0.4 h1:F2g4+oChYvBTsASRTz8NP6iIAi97J3TtSAsLbIFn4ro= +github.com/containerd/console v1.0.4/go.mod h1:YynlIjWYF8myEu6sdkwKIvGQq+cOckRm6So2avqoYAk= +github.com/containerd/continuity v0.3.0 h1:nisirsYROK15TAMVukJOUyGJjz4BNQJBVsNvAXZJ/eg= +github.com/containerd/continuity v0.3.0/go.mod h1:wJEAIwKOm/pBZuBd0JmeTvnLquTB1Ag8espWhkykbPM= +github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= +github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo= +github.com/containerd/stargz-snapshotter/estargz v0.14.3 h1:OqlDCK3ZVUO6C3B/5FSkDwbkEETK84kQgEeFwDC+62k= +github.com/containerd/stargz-snapshotter/estargz v0.14.3/go.mod h1:KY//uOCIkSuNAHhJogcZtrNHdKrA99/FCCRjE3HD36o= +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.3 h1:qMCsGGgs+MAzDFyp9LpAe1Lqy/fY/qCovCm0qnXZOBM= +github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/cyphar/filepath-securejoin v0.2.4 h1:Ugdm7cg7i6ZK6x3xDF1oEu1nfkyfH53EtKeQYTC3kyg= +github.com/cyphar/filepath-securejoin v0.2.4/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= 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/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davidmz/go-pageant v1.0.2 h1:bPblRCh5jGU+Uptpz6LgMZGD5hJoOt7otgT454WvHn0= +github.com/davidmz/go-pageant v1.0.2/go.mod h1:P2EDDnMqIwG5Rrp05dTRITj9z2zpGcD9efWSkTNKLIE= +github.com/dghubble/go-twitter v0.0.0-20211115160449-93a8679adecb h1:7ENzkH+O3juL+yj2undESLTaAeRllHwCs/b8z6aWSfc= +github.com/dghubble/go-twitter v0.0.0-20211115160449-93a8679adecb/go.mod h1:qhZBgV9e4WyB1JNjHpcXVkUe3knWUwYuAPB1hITdm50= +github.com/dghubble/oauth1 v0.7.3 h1:EkEM/zMDMp3zOsX2DC/ZQ2vnEX3ELK0/l9kb+vs4ptE= +github.com/dghubble/oauth1 v0.7.3/go.mod h1:oxTe+az9NSMIucDPDCCtzJGsPhciJV33xocHfcR2sVY= +github.com/dghubble/sling v1.4.0 h1:/n8MRosVTthvMbwlNZgLx579OGVjUOy3GNEv5BIqAWY= +github.com/dghubble/sling v1.4.0/go.mod h1:0r40aNsU9EdDUVBNhfCstAtFgutjgJGYbO1oNzkMoM8= +github.com/dimchansky/utfbom v1.1.1 h1:vV6w1AhK4VMnhBno/TPVCoK9U/LP0PkLCS9tbxHdi/U= +github.com/dimchansky/utfbom v1.1.1/go.mod h1:SxdoEBH5qIqFocHMyGOXVAybYJdr71b1Q/j0mACtrfE= +github.com/distribution/distribution/v3 v3.0.0-alpha.1 h1:jn7I1gvjOvmLztH1+1cLiUFud7aeJCIQcgzugtwjyJo= +github.com/distribution/distribution/v3 v3.0.0-alpha.1/go.mod h1:LCp4JZp1ZalYg0W/TN05jarCQu+h4w7xc7ZfQF4Y/cY= +github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= +github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= +github.com/dnaeon/go-vcr v1.2.0 h1:zHCHvJYTMh1N7xnV7zf1m1GPBF9Ad0Jk/whtQ1663qI= +github.com/dnaeon/go-vcr v1.2.0/go.mod h1:R4UdLID7HZT3taECzJs4YgbbH6PIGXB6W/sc5OLb6RQ= +github.com/docker/cli v25.0.4+incompatible h1:DatRkJ+nrFoYL2HZUzjM5Z5sAmcA5XGp+AW0oEw2+cA= +github.com/docker/cli v25.0.4+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= +github.com/docker/distribution v2.8.3+incompatible h1:AtKxIZ36LoNK51+Z6RpzLpddBirtxJnzDrHLEKxTAYk= +github.com/docker/distribution v2.8.3+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= +github.com/docker/docker v26.1.3+incompatible h1:lLCzRbrVZrljpVNobJu1J2FHk8V0s4BawoZippkc+xo= +github.com/docker/docker v26.1.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker-credential-helpers v0.8.1 h1:j/eKUktUltBtMzKqmfLB0PAgqYyMHOp5vfsD1807oKo= +github.com/docker/docker-credential-helpers v0.8.1/go.mod h1:P3ci7E3lwkZg6XiHdRKft1KckHiO9a2rNtyFbZ/ry9M= +github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= +github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= +github.com/docker/go-metrics v0.0.1 h1:AgB/0SvBxihN0X8OR4SjsblXkbMvalQ8cjmtKQ2rQV8= +github.com/docker/go-metrics v0.0.1/go.mod h1:cG1hvH2utMXtqgqqYE9plW6lDxS3/5ayHzueweSI3Vw= +github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= +github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= +github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= +github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= +github.com/elazarl/goproxy v0.0.0-20230808193330-2592e75ae04a h1:mATvB/9r/3gvcejNsXKSkQ6lcIaNec2nyfOdlTBR2lU= +github.com/elazarl/goproxy v0.0.0-20230808193330-2592e75ae04a/go.mod h1:Ro8st/ElPeALwNFlcTpWmkr6IoMFfkjXAvTHpevnDsM= +github.com/elliotchance/orderedmap/v2 v2.2.0 h1:7/2iwO98kYT4XkOjA9mBEIwvi4KpGB4cyHeOFOnj4Vk= +github.com/elliotchance/orderedmap/v2 v2.2.0/go.mod h1:85lZyVbpGaGvHvnKa7Qhx7zncAdBIBq6u56Hb1PRU5Q= github.com/emirpasic/gods v1.12.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o= +github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc= +github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ= 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.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= -github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/evanphx/json-patch/v5 v5.6.0 h1:b91NhWfaz02IuVxO9faSllyAtNXHMPkC5J8sJCLunww= +github.com/evanphx/json-patch/v5 v5.6.0/go.mod h1:G79N1coSVB93tBe7j6PhzjmR3/2VvlbKOFpnXhI9Bw4= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/fatih/color v1.15.0 h1:kOqh6YHBtK8aywxGerMG2Eq3H6Qgoqeo13Bk2Mv/nBs= -github.com/fatih/color v1.15.0/go.mod h1:0h5ZqXfHYED7Bhv2ZJamyIOUej9KtShiJESRwBDUSsw= +github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= +github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM= +github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE= +github.com/fatih/set v0.2.1 h1:nn2CaJyknWE/6txyUDGwysr3G5QC6xWB/PtVjPBbeaA= +github.com/fatih/set v0.2.1/go.mod h1:+RKtMCH+favT2+3YecHGxcc0b4KyVWA1QWWJUs4E0CI= +github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= +github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= +github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= +github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/gabriel-vasile/mimetype v1.4.2 h1:w5qFW6JKBz9Y393Y4q372O9A7cUSequkh1Q7OhCmWKU= +github.com/gabriel-vasile/mimetype v1.4.2/go.mod h1:zApsH/mKG4w07erKIaJPFiX0Tsq9BFQgN3qGY5GnNgA= +github.com/github/smimesign v0.2.0 h1:Hho4YcX5N1I9XNqhq0fNx0Sts8MhLonHd+HRXVGNjvk= +github.com/github/smimesign v0.2.0/go.mod h1:iZiiwNT4HbtGRVqCQu7uJPEZCuEE5sfSSttcnePkDl4= github.com/gliderlabs/ssh v0.2.2/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= +github.com/gliderlabs/ssh v0.3.7 h1:iV3Bqi942d9huXnzEF2Mt+CY9gLu8DNM4Obd+8bODRE= +github.com/gliderlabs/ssh v0.3.7/go.mod h1:zpHEXBstFnQYtGnB8k8kQLol82umzn/2/snG7alWVD8= +github.com/go-fed/httpsig v1.1.0 h1:9M+hb0jkEICD8/cAiNqEB66R87tTINszBRTjwjQzWcI= +github.com/go-fed/httpsig v1.1.0/go.mod h1:RCMrTZvN1bJYtofsG4rd5NaO5obxQ5xBkdiS7xsT7bM= github.com/go-git/gcfg v1.5.0/go.mod h1:5m20vg6GwYabIxaOonVkTdrILxQMpEShl1xiMF4ua+E= +github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 h1:+zs/tPmkDkHx3U66DAb0lQFJrpS6731Oaa12ikc+DiI= +github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376/go.mod h1:an3vInlBmSxCcxctByoQdvwPiA7DTK7jaaFDBTtu0ic= github.com/go-git/go-billy/v5 v5.0.0/go.mod h1:pmpqyWchKfYfrkb/UVH4otLvyi/5gJlGI4Hb3ZqZ3W0= github.com/go-git/go-billy/v5 v5.1.0/go.mod h1:pmpqyWchKfYfrkb/UVH4otLvyi/5gJlGI4Hb3ZqZ3W0= +github.com/go-git/go-billy/v5 v5.5.0 h1:yEY4yhzCDuMGSv83oGxiBotRzhwhNr8VZyphhiu+mTU= +github.com/go-git/go-billy/v5 v5.5.0/go.mod h1:hmexnoNsr2SJU1Ju67OaNz5ASJY3+sHgFRpCtpDCKow= github.com/go-git/go-git-fixtures/v4 v4.0.2-0.20200613231340-f56387b50c12/go.mod h1:m+ICp2rF3jDhFgEZ/8yziagdT1C+ZpZcrJjappBCDSw= +github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399 h1:eMje31YglSBqCdIqdhKBW8lokaMrL3uTkpGYlE2OOT4= +github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399/go.mod h1:1OCfN199q1Jm3HZlxleg+Dw/mwps2Wbk9frAWm+4FII= github.com/go-git/go-git/v5 v5.3.0/go.mod h1:xdX4bWJ48aOrdhnl2XqHYstHbbp6+LFS4r4X+lNVprw= +github.com/go-git/go-git/v5 v5.12.0 h1:7Md+ndsjrzZxbddRDZjF14qK+NN56sy6wkqaVrjZtys= +github.com/go-git/go-git/v5 v5.12.0/go.mod h1:FTM9VKtnI2m65hNI/TenDDDnUf2Q9FHnXYjuz9i5OEY= 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-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= +github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= +github.com/go-openapi/analysis v0.23.0 h1:aGday7OWupfMs+LbmLZG4k0MYXIANxcuBTYUC03zFCU= +github.com/go-openapi/analysis v0.23.0/go.mod h1:9mz9ZWaSlV8TvjQHLl2mUW2PbZtemkE8yA5v22ohupo= +github.com/go-openapi/errors v0.22.0 h1:c4xY/OLxUBSTiepAg3j/MHuAv5mJhnf53LLMWFB+u/w= +github.com/go-openapi/errors v0.22.0/go.mod h1:J3DmZScxCDufmIMsdOuDHxJbdOGC0xtUynjIx092vXE= +github.com/go-openapi/jsonpointer v0.21.0 h1:YgdVicSA9vH5RiHs9TZW5oyafXZFc6+2Vc1rr/O9oNQ= +github.com/go-openapi/jsonpointer v0.21.0/go.mod h1:IUyH9l/+uyhIYQ/PXVA41Rexl+kOkAPDdXEYns6fzUY= +github.com/go-openapi/jsonreference v0.21.0 h1:Rs+Y7hSXT83Jacb7kFyjn4ijOuVGSvOdF2+tg1TRrwQ= +github.com/go-openapi/jsonreference v0.21.0/go.mod h1:LmZmgsrTkVg9LG4EaHeY8cBDslNPMo06cago5JNLkm4= +github.com/go-openapi/loads v0.22.0 h1:ECPGd4jX1U6NApCGG1We+uEozOAvXvJSF4nnwHZ8Aco= +github.com/go-openapi/loads v0.22.0/go.mod h1:yLsaTCS92mnSAZX5WWoxszLj0u+Ojl+Zs5Stn1oF+rs= +github.com/go-openapi/runtime v0.28.0 h1:gpPPmWSNGo214l6n8hzdXYhPuJcGtziTOgUpvsFWGIQ= +github.com/go-openapi/runtime v0.28.0/go.mod h1:QN7OzcS+XuYmkQLw05akXk0jRH/eZ3kb18+1KwW9gyc= +github.com/go-openapi/spec v0.21.0 h1:LTVzPc3p/RzRnkQqLRndbAzjY0d0BCL72A6j3CdL9ZY= +github.com/go-openapi/spec v0.21.0/go.mod h1:78u6VdPw81XU44qEWGhtr982gJ5BWg2c0I5XwVMotYk= +github.com/go-openapi/strfmt v0.23.0 h1:nlUS6BCqcnAk0pyhi9Y+kdDVZdZMHfEKQiS4HaMgO/c= +github.com/go-openapi/strfmt v0.23.0/go.mod h1:NrtIpfKtWIygRkKVsxh7XQMDQW5HKQl6S5ik2elW+K4= +github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+GrE= +github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ= +github.com/go-openapi/validate v0.24.0 h1:LdfDKwNbpB6Vn40xhTdNZAnfLECL81w+VX3BumrGD58= +github.com/go-openapi/validate v0.24.0/go.mod h1:iyeX1sEufmv3nPbBdX3ieNviWnOZaJ1+zquzJEf2BAQ= +github.com/go-restruct/restruct v1.2.0-alpha h1:2Lp474S/9660+SJjpVxoKuWX09JsXHSrdV7Nv3/gkvc= +github.com/go-restruct/restruct v1.2.0-alpha/go.mod h1:KqrpKpn4M8OLznErihXTGLlsXFGeLxHUrLRRI/1YjGk= +github.com/go-telegram-bot-api/telegram-bot-api/v5 v5.5.1 h1:wG8n/XJQ07TmjbITcGiUaOtXxdrINDz1b0J1w0SzqDc= +github.com/go-telegram-bot-api/telegram-bot-api/v5 v5.5.1/go.mod h1:A2S0CWkNylc2phvKXWBBdD3K0iGnDBGbzRpISP2zBl8= github.com/go-test/deep v1.0.3/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA= +github.com/go-test/deep v1.0.4/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA= github.com/go-test/deep v1.1.0 h1:WOcxcdHcvdgThNXjw0t76K42FXTU7HpNQWHpA2HHNlg= github.com/go-test/deep v1.1.0/go.mod h1:5C2ZWiW0ErCdrYzpqxLbTX7MG14M9iiw8DgHncVwcsE= +github.com/go-yaml/yaml v2.1.0+incompatible/go.mod h1:w2MrLa16VYP0jy6N7M5kHaCkaLENm+P+Tv+MfurjSw0= +github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= +github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/golang-jwt/jwt/v4 v4.0.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= +github.com/golang-jwt/jwt/v4 v4.2.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= +github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= +github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= +github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk= +github.com/golang-jwt/jwt/v5 v5.2.1/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= 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= @@ -158,8 +470,8 @@ github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw 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/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= 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= @@ -172,14 +484,26 @@ github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ 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.3/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.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= +github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-containerregistry v0.19.1 h1:yMQ62Al6/V0Z7CqIrrS1iYoA5/oQCm88DeNujc7C1KY= +github.com/google/go-containerregistry v0.19.1/go.mod h1:YCMFNQeeXeLF+dnhhWkqDItx/JSkH01j1Kis4PsjzFI= +github.com/google/go-github/v62 v62.0.0 h1:/6mGCaRywZz9MuHyw9gD1CwsbmBX8GWsbFkwMmHdhl4= +github.com/google/go-github/v62 v62.0.0/go.mod h1:EMxeUqGJq2xRu9DYBMwel/mr7kZrzUOfQmmpYrZn2a4= +github.com/google/go-querystring v1.1.0 h1:AnCroh3fv4ZBgVIf1Iwtovgjaw/GiKJo8M8yD/fhyJ8= +github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17icRSOU623lUBU= +github.com/google/go-replayers/grpcreplay v1.1.0 h1:S5+I3zYyZ+GQz68OfbURDdt/+cSMqCK1wrvNx7WBzTE= +github.com/google/go-replayers/grpcreplay v1.1.0/go.mod h1:qzAvJ8/wi57zq7gWqaE6AwLM6miiXUQwP1S+I9icmhk= +github.com/google/go-replayers/httpreplay v1.2.0 h1:VM1wEyyjaoU53BwrOnaf9VhAyQQEEioJvFYxYcLRKzk= +github.com/google/go-replayers/httpreplay v1.2.0/go.mod h1:WahEFFZZ7a1P4VM1qEeHy+tME4bwyqPcwWbNlUI1Mcg= +github.com/google/ko v0.15.4 h1:0blRbIdPmSy6v4LvedGxbI/8krdJYQgbSih3v6Y8V1c= +github.com/google/ko v0.15.4/go.mod h1:ZkcmfV91Xt6ZzOBHc/cXXGYnqWdNWDVy/gHoUU9sjag= github.com/google/martian v2.1.0+incompatible h1:/CP5g8u/VJHijgedC/Legn3BAbAaWPgecwXBIDzw5no= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= -github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= github.com/google/martian/v3 v3.3.2 h1:IqNFLAmvJOgVlpdEBiQbDc2EwKW77amAycfTuWKdfvw= github.com/google/martian/v3 v3.3.2/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= @@ -189,22 +513,47 @@ github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hf 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/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/rpmpack v0.6.1-0.20240329070804-c2247cbb881a h1:JJBdjSfqSy3mnDT0940ASQFghwcZ4y4cb6ttjAoXqwE= +github.com/google/rpmpack v0.6.1-0.20240329070804-c2247cbb881a/go.mod h1:uqVAUVQLq8UY2hCDfmJ/+rtO3aw7qyhc90rCVEabEfI= github.com/google/s2a-go v0.1.7 h1:60BLSyTrOV4/haCDW4zb1guZItoSq8foHCXrAnjBo/o= github.com/google/s2a-go v0.1.7/go.mod h1:50CgR4k1jNlWBu4UfS4AcfhVe1r6pdZPygJ3R8F0Qdw= +github.com/google/safetext v0.0.0-20220905092116-b49f7bc46da2 h1:SJ+NtwL6QaZ21U+IrK7d0gGgpjGGvd2kz+FzTHVzdqI= +github.com/google/safetext v0.0.0-20220905092116-b49f7bc46da2/go.mod h1:Tv1PlzqC9t8wNnpPdctvtSUOPUUg4SHeE6vR1Ir2hmg= +github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4= +github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ= +github.com/google/subcommands v1.2.0/go.mod h1:ZjhPrFU+Olkh9WazFPsl27BQ4UPiG37m3yTrtFlrHVk= +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.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/wire v0.6.0 h1:HBkoIh4BdSxoyo9PveV8giw7ZsaBOvzWKfcg/6MrVwI= +github.com/google/wire v0.6.0/go.mod h1:F4QhpQ9EDIdJ1Mbop/NZBRB+5yrR6qg3BnctaoUk6NA= github.com/googleapis/enterprise-certificate-proxy v0.3.2 h1:Vie5ybvEvT75RniqhfFxPRy3Bf7vr3h0cechB90XaQs= github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/gax-go/v2 v2.12.0 h1:A+gCJKdRfqXkr+BIRGtZLibNXf0m1f9E4HG56etFpas= -github.com/googleapis/gax-go/v2 v2.12.0/go.mod h1:y+aIqrI5eb1YGMVJfuV3185Ts/D7qKpsEkdD5+I6QGU= -github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= +github.com/googleapis/gax-go/v2 v2.12.3 h1:5/zPPDvw8Q1SuXjrqrZslrqT7dL/uJT2CQii/cLCKqA= +github.com/googleapis/gax-go/v2 v2.12.3/go.mod h1:AKloxT6GtNbaLm8QTNSidHUVsHYcBHwWRvkNFJUQcS4= +github.com/gookit/color v1.2.5/go.mod h1:AhIE+pS6D4Ql0SQWbBeXPHw7gY0/sjHoA4s/n1KB7xg= +github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= +github.com/gopherjs/gopherjs v1.17.2 h1:fQnZVsXk8uxXIStYb0N4bGk7jeyTalG/wsZjQ25dO0g= +github.com/gopherjs/gopherjs v1.17.2/go.mod h1:pRRIvn/QzFLrKfvEz3qUuEhtE/zLCWfreZ6J5gM2i+k= +github.com/goreleaser/chglog v0.6.1 h1:NZKiX8l0FTQPRzBgKST7knvNZmZ04f7PEGkN2wInfhE= +github.com/goreleaser/chglog v0.6.1/go.mod h1:Bnnfo07jMZkaAb0uRNASMZyOsX6ROW6X1qbXqN3guUo= +github.com/goreleaser/fileglob v1.3.0 h1:/X6J7U8lbDpQtBvGcwwPS6OpzkNVlVEsFUVRx9+k+7I= +github.com/goreleaser/fileglob v1.3.0/go.mod h1:Jx6BoXv3mbYkEzwm9THo7xbr5egkAraxkGorbJb4RxU= +github.com/goreleaser/goreleaser v1.26.2 h1:1iY1HaXtRiMTrwy6KE1sNjkRjsjMi+9l0k6WUX8GpWw= +github.com/goreleaser/goreleaser v1.26.2/go.mod h1:mHi6zr6fuuOh5eHdWWgyo/N8BWED5WEVtb/4GETc9jQ= +github.com/goreleaser/nfpm/v2 v2.37.1 h1:RUmeEt8OlEVeSzKRrO5Vl5qVWCtUwx4j9uivGuRo5fw= +github.com/goreleaser/nfpm/v2 v2.37.1/go.mod h1:q8+sZXFqn106/eGw+9V+I8+izFxZ/sJjrhwmEUxXhUg= +github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY= +github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ= +github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/gorilla/websocket v1.5.1 h1:gmztn0JnHVt9JZquRuzLw3g4wouNVzKL15iLr/zn/QY= +github.com/gorilla/websocket v1.5.1/go.mod h1:x3kM2JMyaluk02fnUJpQuwD2dCS5NDG2ZHL0uE0tcaY= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.18.1 h1:6UKoz5ujsI55KNpsJH3UwCq3T8kKbZwNZBNPuTTje8U= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.18.1/go.mod h1:YvJ2f6MplWDhfxiUC3KpyTy76kYUZA4W3pTv/wdKQ9Y= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= @@ -213,14 +562,23 @@ github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtng github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ= github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48= +github.com/hashicorp/go-cty v1.4.1-0.20200414143053-d3edf31b6320 h1:1/D3zfFHttUKaCaGKZ/dR2roBXv0vKbSCnssIldfQdI= +github.com/hashicorp/go-cty v1.4.1-0.20200414143053-d3edf31b6320/go.mod h1:EiZBMaudVLy8fmjf9Npq1dq9RalhveqZG5w/yz3mHWs= github.com/hashicorp/go-getter v1.5.3 h1:NF5+zOlQegim+w/EUhSLh6QhXHmZMEeHLQzllkQ3ROU= github.com/hashicorp/go-getter v1.5.3/go.mod h1:BrrV/1clo8cCYu6mxvboYg+KutTiFnXjMEgDD8+i7ZI= github.com/hashicorp/go-hclog v0.0.0-20180709165350-ff2cf002a8dd/go.mod h1:9bjs9uLqI8l75knNv3lV1kA55veR+WUPSiKIWcQHudI= github.com/hashicorp/go-hclog v0.9.2/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ= +github.com/hashicorp/go-hclog v1.5.0 h1:bI2ocEMgcVlz55Oj1xZNBsVi900c7II+fWDyV9o+13c= +github.com/hashicorp/go-hclog v1.5.0/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M= github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= +github.com/hashicorp/go-multierror v1.1.0/go.mod h1:spPvp8C1qA32ftKqdAHm4hHTbPw+vmowP0z+KUhOZdA= github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= github.com/hashicorp/go-plugin v1.3.0/go.mod h1:F9eH4LrE/ZsRdbwhfjs9k9HoDUwAHnYtXdgmf1AVNs0= +github.com/hashicorp/go-plugin v1.6.0 h1:wgd4KxHJTVGGqWBq4QPB1i5BZNEx9BR8+OFmHDmTk8A= +github.com/hashicorp/go-plugin v1.6.0/go.mod h1:lBS5MtSSBZk0SHc66KACcjjlU6WzEVP/8pwz68aMkCI= +github.com/hashicorp/go-retryablehttp v0.7.5 h1:bJj+Pj19UZMIweq/iie+1u5YCdGrnxCT9yvm0e+Nd5M= +github.com/hashicorp/go-retryablehttp v0.7.5/go.mod h1:Jy/gPYAdjqffZ/yFGCFV2doI5wjtH1ewM9u8iYVjtX8= github.com/hashicorp/go-safetemp v1.0.0 h1:2HR189eFNrjHQyENnQMMpCiBAsRxzbTMIgBhEyExpmo= github.com/hashicorp/go-safetemp v1.0.0/go.mod h1:oaerMy3BhqiTbVye6QuFhFtIceqFoDHxNAB65b+Rj1I= github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= @@ -234,53 +592,117 @@ github.com/hashicorp/go-version v1.6.0 h1:feTTfFNnjP967rlCxM/I9g701jU+RN74YKx2mO github.com/hashicorp/go-version v1.6.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru v1.0.2 h1:dV3g9Z/unq5DpblPpw+Oqcv4dU/1omnb4Ok8iPY6p1c= +github.com/hashicorp/golang-lru v1.0.2/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/hashicorp/hcl v0.0.0-20170504190234-a4b07c25de5f/go.mod h1:oZtUIOe8dh44I2q6ScRibXws4Ajl+d+nod3AaR9vL5w= github.com/hashicorp/hcl v1.0.1-vault-5 h1:kI3hhbbyzr4dldA8UdTb7ZlVVlI2DACdCfz31RPDgJM= github.com/hashicorp/hcl v1.0.1-vault-5/go.mod h1:XYhtn6ijBSAj6n4YqAaf7RBPS4I06AItNorpy+MoQNM= github.com/hashicorp/hcl/v2 v2.0.0/go.mod h1:oVVDG71tEinNGYCxinCYadcmKU9bglqW9pV3txagJ90= github.com/hashicorp/hcl/v2 v2.8.2/go.mod h1:bQTN5mpo+jewjJgh8jr0JUguIi7qPHUF6yIfAEN3jqY= -github.com/hashicorp/hcl/v2 v2.12.0 h1:PsYxySWpMD4KPaoJLnsHwtK5Qptvj/4Q6s0t4sUxZf4= -github.com/hashicorp/hcl/v2 v2.12.0/go.mod h1:FwWsfWEjyV/CMj8s/gqAuiviY72rJ1/oayI9WftqcKg= +github.com/hashicorp/hcl/v2 v2.20.1 h1:M6hgdyz7HYt1UN9e61j+qKJBqR3orTWbI1HKBJEdxtc= +github.com/hashicorp/hcl/v2 v2.20.1/go.mod h1:TZDqQ4kNKCbh1iJp99FdPiUaVDDUPivbqxZulxDYqL4= github.com/hashicorp/logutils v1.0.0 h1:dLEQVugN8vlakKOUE3ihGLTZJRB4j+M2cdTm/ORI65Y= github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= github.com/hashicorp/terraform-config-inspect v0.0.0-20191212124732-c6ae6269b9d7 h1:Pc5TCv9mbxFN6UVX0LH6CpQrdTM5YjbVI2w15237Pjk= github.com/hashicorp/terraform-config-inspect v0.0.0-20191212124732-c6ae6269b9d7/go.mod h1:p+ivJws3dpqbp1iP84+npOyAmTTOLMgCzrXd3GSdn/A= github.com/hashicorp/terraform-exec v0.13.3/go.mod h1:SSg6lbUsVB3DmFyCPjBPklqf6EYGX0TlQ6QTxOlikDU= github.com/hashicorp/terraform-json v0.10.0/go.mod h1:3defM4kkMfttwiE7VakJDwCd4R+umhSQnvJwORXbprE= +github.com/hashicorp/terraform-plugin-go v0.23.0 h1:AALVuU1gD1kPb48aPQUjug9Ir/125t+AAurhqphJ2Co= +github.com/hashicorp/terraform-plugin-go v0.23.0/go.mod h1:1E3Cr9h2vMlahWMbsSEcNrOCxovCZhOOIXjFHbjc/lQ= +github.com/hashicorp/terraform-plugin-log v0.9.0 h1:i7hOA+vdAItN1/7UrfBqBwvYPQ9TFvymaRGZED3FCV0= +github.com/hashicorp/terraform-plugin-log v0.9.0/go.mod h1:rKL8egZQ/eXSyDqzLUuwUYLVdlYeamldAHSxjUFADow= github.com/hashicorp/terraform-plugin-sdk v1.17.2 h1:V7DUR3yBWFrVB9z3ddpY7kiYVSsq4NYR67NiTs93NQo= github.com/hashicorp/terraform-plugin-sdk v1.17.2/go.mod h1:wkvldbraEMkz23NxkkAsFS88A1R9eUiooiaUZyS6TLw= +github.com/hashicorp/terraform-plugin-sdk/v2 v2.34.0 h1:kJiWGx2kiQVo97Y5IOGR4EMcZ8DtMswHhUuFibsCQQE= +github.com/hashicorp/terraform-plugin-sdk/v2 v2.34.0/go.mod h1:sl/UoabMc37HA6ICVMmGO+/0wofkVIRxf+BMb/dnoIg= github.com/hashicorp/terraform-plugin-test/v2 v2.2.1/go.mod h1:eZ9JL3O69Cb71Skn6OhHyj17sLmHRb+H6VrDcJjKrYU= -github.com/hashicorp/terraform-svchost v0.0.0-20200729002733-f050f53b9734 h1:HKLsbzeOsfXmKNpr3GiT18XAblV0BjCbzL8KQAMZGa0= +github.com/hashicorp/terraform-registry-address v0.2.3 h1:2TAiKJ1A3MAkZlH1YI/aTVcLZRu7JseiXNRHbOAyoTI= +github.com/hashicorp/terraform-registry-address v0.2.3/go.mod h1:lFHA76T8jfQteVfT7caREqguFrW3c4MFSPhZB7HHgUM= github.com/hashicorp/terraform-svchost v0.0.0-20200729002733-f050f53b9734/go.mod h1:kNDNcF7sN4DocDLBkQYz73HGKwN1ANB1blq4lIYLYvg= +github.com/hashicorp/terraform-svchost v0.1.1 h1:EZZimZ1GxdqFRinZ1tpJwVxxt49xc/S52uzrw4x0jKQ= +github.com/hashicorp/terraform-svchost v0.1.1/go.mod h1:mNsjQfZyf/Jhz35v6/0LWcv26+X7JPS+buii2c9/ctc= github.com/hashicorp/yamux v0.0.0-20180604194846-3520598351bb/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM= github.com/hashicorp/yamux v0.0.0-20181012175058-2f1d1f20f75d/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM= +github.com/hashicorp/yamux v0.1.1 h1:yrQxtgseBDrq9Y652vSRDvsKCJKOUD+GzTS4Y0Y8pvE= +github.com/hashicorp/yamux v0.1.1/go.mod h1:CtWFDAQgb7dxtzFs4tWbplKIe2jSi3+5vKbgIO0SLnQ= github.com/huandu/xstrings v1.3.2/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= github.com/huandu/xstrings v1.3.3 h1:/Gcsuc1x8JVbJ9/rlye4xZnVAbEkGauT8lbebqcQws4= github.com/huandu/xstrings v1.3.3/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= github.com/imdario/mergo v0.3.16 h1:wwQJbIsHYGMUyLSPrEq1CT16AhnhNJQ51+4fdHUnCl4= github.com/imdario/mergo v0.3.16/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY= +github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= +github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= +github.com/invopop/jsonschema v0.12.0 h1:6ovsNSuvn9wEQVOyc72aycBMVQFKz7cPdMJn10CvzRI= +github.com/invopop/jsonschema v0.12.0/go.mod h1:ffZ5Km5SWWRAIN6wbDXItl95euhFz2uON45H2qjYt+0= +github.com/ipfs/bbloom v0.0.4 h1:Gi+8EGJ2y5qiD5FbsbpX/TMNcJw8gSqr7eyjHa4Fhvs= +github.com/ipfs/bbloom v0.0.4/go.mod h1:cS9YprKXpoZ9lT0n/Mw/a6/aFV6DTjTLYHeA+gyqMG0= +github.com/ipfs/go-block-format v0.2.0 h1:ZqrkxBA2ICbDRbK8KJs/u0O3dlp6gmAuuXUJNiW1Ycs= +github.com/ipfs/go-block-format v0.2.0/go.mod h1:+jpL11nFx5A/SPpsoBn6Bzkra/zaArfSmsknbPMYgzM= +github.com/ipfs/go-cid v0.4.1 h1:A/T3qGvxi4kpKWWcPC/PgbvDA2bjVLO7n4UeVwnbs/s= +github.com/ipfs/go-cid v0.4.1/go.mod h1:uQHwDeX4c6CtyrFwdqyhpNcxVewur1M7l7fNU7LKwZk= +github.com/ipfs/go-datastore v0.6.0 h1:JKyz+Gvz1QEZw0LsX1IBn+JFCJQH4SJVFtM4uWU0Myk= +github.com/ipfs/go-datastore v0.6.0/go.mod h1:rt5M3nNbSO/8q1t4LNkLyUwRs8HupMeN/8O4Vn9YAT8= +github.com/ipfs/go-detect-race v0.0.1 h1:qX/xay2W3E4Q1U7d9lNs1sU9nvguX0a7319XbyQ6cOk= +github.com/ipfs/go-detect-race v0.0.1/go.mod h1:8BNT7shDZPo99Q74BpGMK+4D8Mn4j46UU0LZ723meps= +github.com/ipfs/go-ipfs-blockstore v1.3.1 h1:cEI9ci7V0sRNivqaOr0elDsamxXFxJMMMy7PTTDQNsQ= +github.com/ipfs/go-ipfs-blockstore v1.3.1/go.mod h1:KgtZyc9fq+P2xJUiCAzbRdhhqJHvsw8u2Dlqy2MyRTE= +github.com/ipfs/go-ipfs-ds-help v1.1.1 h1:B5UJOH52IbcfS56+Ul+sv8jnIV10lbjLF5eOO0C66Nw= +github.com/ipfs/go-ipfs-ds-help v1.1.1/go.mod h1:75vrVCkSdSFidJscs8n4W+77AtTpCIAdDGAwjitJMIo= +github.com/ipfs/go-ipfs-util v0.0.3 h1:2RFdGez6bu2ZlZdI+rWfIdbQb1KudQp3VGwPtdNCmE0= +github.com/ipfs/go-ipfs-util v0.0.3/go.mod h1:LHzG1a0Ig4G+iZ26UUOMjHd+lfM84LZCrn17xAKWBvs= +github.com/ipfs/go-ipld-cbor v0.1.0 h1:dx0nS0kILVivGhfWuB6dUpMa/LAwElHPw1yOGYopoYs= +github.com/ipfs/go-ipld-cbor v0.1.0/go.mod h1:U2aYlmVrJr2wsUBU67K4KgepApSZddGRDWBYR0H4sCk= +github.com/ipfs/go-ipld-format v0.6.0 h1:VEJlA2kQ3LqFSIm5Vu6eIlSxD/Ze90xtc4Meten1F5U= +github.com/ipfs/go-ipld-format v0.6.0/go.mod h1:g4QVMTn3marU3qXchwjpKPKgJv+zF+OlaKMyhJ4LHPg= +github.com/ipfs/go-log v1.0.5 h1:2dOuUCB1Z7uoczMWgAyDck5JLb72zHzrMnGnCNNbvY8= +github.com/ipfs/go-log v1.0.5/go.mod h1:j0b8ZoR+7+R99LD9jZ6+AJsrzkPbSXbZfGakb5JPtIo= +github.com/ipfs/go-log/v2 v2.1.3/go.mod h1:/8d0SH3Su5Ooc31QlL1WysJhvyOTDCjcCZ9Axpmri6g= +github.com/ipfs/go-log/v2 v2.5.1 h1:1XdUzF7048prq4aBjDQQ4SL5RxftpRGdXhNRwKSAlcY= +github.com/ipfs/go-log/v2 v2.5.1/go.mod h1:prSpmC1Gpllc9UYWxDiZDreBYw7zp4Iqp1kOLU9U5UI= +github.com/ipfs/go-metrics-interface v0.0.1 h1:j+cpbjYvu4R8zbleSs36gvB7jR+wsL2fGD6n0jO4kdg= +github.com/ipfs/go-metrics-interface v0.0.1/go.mod h1:6s6euYU4zowdslK0GKHmqaIZ3j/b/tL7HTWtJ4VPgWY= +github.com/jarcoal/httpmock v1.3.1 h1:iUx3whfZWVf3jT01hQTO/Eo5sAYtB2/rqaUuOtpInww= +github.com/jarcoal/httpmock v1.3.1/go.mod h1:3yb8rc4BI7TCBhFY8ng0gjuLKJNquuDNiPaZjnENuYg= +github.com/jbenet/go-cienv v0.1.0/go.mod h1:TqNnHUmJgXau0nCzC7kXWeotg3J9W34CUv5Djy1+FlA= +github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= +github.com/jbenet/goprocess v0.1.4 h1:DRGOFReOMqqDNXwW70QkacFW0YN9QnwLV0Vqk+3oU0o= +github.com/jbenet/goprocess v0.1.4/go.mod h1:5yspPrukOVuOLORacaBi858NqyClJPQxYZlqdZVfqY4= +github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jessevdk/go-flags v1.5.0/go.mod h1:Fw0T6WPc1dYxT4mKEZRfG5kJhaTDP9pj1c2EWnYs/m4= github.com/jhump/protoreflect v1.6.0/go.mod h1:eaTn3RZAmMBcV0fifFvlm6VHNz3wSkYyXYWUh7ymB74= +github.com/jhump/protoreflect v1.15.1 h1:HUMERORf3I3ZdX05WaQ6MIpd/NJ434hTp5YiKgfCL6c= +github.com/jhump/protoreflect v1.15.1/go.mod h1:jD/2GMKKE6OqX8qTjhADU1e6DShO+gavG9e0Q693nKo= github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= +github.com/jmhodges/clock v1.2.0 h1:eq4kys+NI0PLngzaHEe7AmPT90XMGIEySD1JfV1PDIs= +github.com/jmhodges/clock v1.2.0/go.mod h1:qKjhA7x7u/lQpPB1XAqX1b1lCI/w3/fNuYpI/ZjLynI= +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/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 h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= +github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/kevinburke/ssh_config v0.0.0-20201106050909-4977a11b4351/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= +github.com/kevinburke/ssh_config v1.2.0 h1:x584FjTGwHzMwvHx18PXxbBVzfnxogHaAReU4gf13a4= +github.com/kevinburke/ssh_config v1.2.0/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= github.com/keybase/go-crypto v0.0.0-20161004153544-93f5b35093ba/go.mod h1:ghbZscTyKdM07+Fw3KSi0hcJm+AlEUWj8QLlPtijN/M= +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.2/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= -github.com/klauspost/compress v1.17.5 h1:d4vBd+7CHydUqpFBgUEKkSdtSugf9YFmSkvUYPquI5E= -github.com/klauspost/compress v1.17.5/go.mod h1:/dCuZOvVtNoHsyb+cuJD3itjs3NbnF6KH9zAO4BDxPM= +github.com/klauspost/compress v1.17.8 h1:YcnTYrq7MikUT7k0Yb5eceMmALQPYBW/Xltxn0NAMnU= +github.com/klauspost/compress v1.17.8/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= +github.com/klauspost/cpuid/v2 v2.2.7 h1:ZWSB3igEs+d0qvnxR/ZBzXVmxkgt8DdzP6m9pfuVLDM= +github.com/klauspost/cpuid/v2 v2.2.7/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= +github.com/klauspost/pgzip v1.2.6 h1:8RXeL5crjEUFnR2/Sn6GJNWtSQ3Dk8pq4CL3jvdDyjU= +github.com/klauspost/pgzip v1.2.6/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= @@ -292,17 +714,43 @@ github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348/go.mod h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k= github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= +github.com/letsencrypt/boulder v0.0.0-20231026200631-000cd05d5491 h1:WGrKdjHtWC67RX96eTkYD2f53NDHhrq/7robWTAfk4s= +github.com/letsencrypt/boulder v0.0.0-20231026200631-000cd05d5491/go.mod h1:o158RFmdEbYyIZmXAbrvmJWesbyxlLKee6X64VPVuOc= +github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY= +github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= +github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= +github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= +github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= +github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= +github.com/matryer/is v1.4.0 h1:sosSmIWwkYITGrxZ25ULNDeKiMNzFSr4V/eqBQP0PeE= +github.com/matryer/is v1.4.0/go.mod h1:8I/i5uYgLzgsgEloJE1U6xx5HkBQpAZvepWuujKwMRU= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= +github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= +github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= +github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-isatty v0.0.18 h1:DOKFKCQ7FNG2L1rbrmstDN4QVRdS89Nkh85u68Uwp98= -github.com/mattn/go-isatty v0.0.18/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-localereader v0.0.1 h1:ygSAOl7ZXTx4RdPYinUpg6W99U8jWvWi9Ye2JC/oIi4= +github.com/mattn/go-localereader v0.0.1/go.mod h1:8fBrzywKY7BI3czFoHkuzRoWE9C+EiG4R1k4Cjx5p88= +github.com/mattn/go-mastodon v0.0.8 h1:UgKs4SmQ5JeawxMIPP7NQ9xncmOXA+5q6jYk4erR7vk= +github.com/mattn/go-mastodon v0.0.8/go.mod h1:8YkqetHoAVEktRkK15qeiv/aaIMfJ/Gc89etisPZtHU= github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= +github.com/mattn/go-runewidth v0.0.12/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk= +github.com/mattn/go-runewidth v0.0.13/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U= +github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d h1:5PJl274Y63IEHC+7izoQE9x6ikvDFZS2mDVS3drnohI= +github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE= +github.com/minio/sha256-simd v1.0.1 h1:6kaan5IFmwTNynnKKpDHe6FWHohJOHhCPchzK49dzMM= +github.com/minio/sha256-simd v1.0.1/go.mod h1:Pz6AKMiUdngCLpeTL/RJY1M9rUuPMYujV5xJjtbRSN8= github.com/mitchellh/cli v1.1.2 h1:PvH+lL2B7IQ101xQL63Of8yFS2y+aDlsFcsqNc+u/Kw= github.com/mitchellh/cli v1.1.2/go.mod h1:6iaV0fGdElS6dPBx0EApTxHrcWvmJphyh2n8YBLPPZ4= github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db/go.mod h1:l0dey0ia/Uv7NcFFVbCLtqEBQbrT4OCwCSKTEv6enCw= @@ -328,34 +776,159 @@ github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx github.com/mitchellh/reflectwalk v1.0.1/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zxSIeXaQ= github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= +github.com/moby/docker-image-spec v1.3.1 h1:jMKff3w6PgbfSa69GfNg+zN/XLhfXJGnEx3Nl2EsFP0= +github.com/moby/docker-image-spec v1.3.1/go.mod h1:eKmb5VW8vQEh/BAr2yvVNvuiJuY6UIocYsFu/DxxRpo= +github.com/moby/sys/user v0.1.0 h1:WmZ93f5Ux6het5iituh9x2zAG7NFY9Aqi49jjE1PaQg= +github.com/moby/sys/user v0.1.0/go.mod h1:fKJhFOnsCN6xZ5gSfbM6zaHGgDJMrqt9/reuj4T7MmU= +github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0= +github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y= +github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= +github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= +github.com/mr-tron/base58 v1.2.0 h1:T/HDJBh4ZCPbU39/+c3rRvE0uKBQlU27+QI8LJ4t64o= +github.com/mr-tron/base58 v1.2.0/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc= +github.com/muesli/ansi v0.0.0-20211018074035-2e021307bc4b/go.mod h1:fQuZ0gauxyBcmsdE3ZT4NasjaRdxmbCS0jRHsrWu3Ho= +github.com/muesli/ansi v0.0.0-20211031195517-c9f0611b6c70 h1:kMlmsLSbjkikxQJ1IPwaM+7LJ9ltFu/fi8CRzvSnQmA= +github.com/muesli/ansi v0.0.0-20211031195517-c9f0611b6c70/go.mod h1:fQuZ0gauxyBcmsdE3ZT4NasjaRdxmbCS0jRHsrWu3Ho= +github.com/muesli/cancelreader v0.2.2 h1:3I4Kt4BQjOR54NavqnDogx/MIoWBFa0StPA8ELUXHmA= +github.com/muesli/cancelreader v0.2.2/go.mod h1:3XuTXfFS2VjM+HTLZY9Ak0l6eUKfijIfMUZ4EgX0QYo= +github.com/muesli/mango v0.1.0 h1:DZQK45d2gGbql1arsYA4vfg4d7I9Hfx5rX/GCmzsAvI= +github.com/muesli/mango v0.1.0/go.mod h1:5XFpbC8jY5UUv89YQciiXNlbi+iJgt29VDC5xbzrLL4= +github.com/muesli/mango-cobra v1.2.0 h1:DQvjzAM0PMZr85Iv9LIMaYISpTOliMEg+uMFtNbYvWg= +github.com/muesli/mango-cobra v1.2.0/go.mod h1:vMJL54QytZAJhCT13LPVDfkvCUJ5/4jNUKF/8NC2UjA= +github.com/muesli/mango-pflag v0.1.0 h1:UADqbYgpUyRoBja3g6LUL+3LErjpsOwaC9ywvBWe7Sg= +github.com/muesli/mango-pflag v0.1.0/go.mod h1:YEQomTxaCUp8PrbhFh10UfbhbQrM/xJ4i2PB8VTLLW0= +github.com/muesli/reflow v0.3.0 h1:IFsN6K9NfGtjeggFP+68I4chLZV2yIKsXJFNZ+eWh6s= +github.com/muesli/reflow v0.3.0/go.mod h1:pbwTDkVPibjO2kyvBQRBxTWEEGDGq0FlB1BIKtnHY/8= +github.com/muesli/roff v0.1.0 h1:YD0lalCotmYuF5HhZliKWlIx7IEhiXeSfq7hNjFqGF8= +github.com/muesli/roff v0.1.0/go.mod h1:pjAHQM9hdUUwm/krAfrLGgJkXJ+YuhtsfZ42kieB2Ig= +github.com/muesli/termenv v0.11.1-0.20220212125758-44cd13922739/go.mod h1:Bd5NYQ7pd+SrtBSrSNoBBmXlcY8+Xj4BMJgh8qcZrvs= +github.com/muesli/termenv v0.15.2 h1:GohcuySI0QmI3wN8Ok9PtKGkgkFIk7y6Vpb5PvrY+Wo= +github.com/muesli/termenv v0.15.2/go.mod h1:Epx+iuz8sNs7mNKhxzH4fWXGNpZwUaJKRS1noLXviQ8= +github.com/multiformats/go-base32 v0.1.0 h1:pVx9xoSPqEIQG8o+UbAe7DNi51oej1NtK+aGkbLYxPE= +github.com/multiformats/go-base32 v0.1.0/go.mod h1:Kj3tFY6zNr+ABYMqeUNeGvkIC/UYgtWibDcT0rExnbI= +github.com/multiformats/go-base36 v0.2.0 h1:lFsAbNOGeKtuKozrtBsAkSVhv1p9D0/qedU9rQyccr0= +github.com/multiformats/go-base36 v0.2.0/go.mod h1:qvnKE++v+2MWCfePClUEjE78Z7P2a1UV0xHgWc0hkp4= +github.com/multiformats/go-multibase v0.2.0 h1:isdYCVLvksgWlMW9OZRYJEa9pZETFivncJHmHnnd87g= +github.com/multiformats/go-multibase v0.2.0/go.mod h1:bFBZX4lKCA/2lyOFSAoKH5SS6oPyjtnzK/XTFDPkNuk= +github.com/multiformats/go-multihash v0.2.3 h1:7Lyc8XfX/IY2jWb/gI7JP+o7JEq9hOa7BFvVU9RSh+U= +github.com/multiformats/go-multihash v0.2.3/go.mod h1:dXgKXCXjBzdscBLk9JkjINiEsCKRVch90MdaGiKsvSM= +github.com/multiformats/go-varint v0.0.7 h1:sWSGR+f/eu5ABZA2ZpYKBILXTTs9JWpdEM/nEGOHFS8= +github.com/multiformats/go-varint v0.0.7/go.mod h1:r8PUYw/fD/SjBCiKOoDlGF6QawOELpZAu9eioSos/OU= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= +github.com/oklog/run v1.0.0 h1:Ru7dDtJNOyC66gQ5dQmaCa0qIsAUFY3sFpK1Xk8igrw= github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA= +github.com/oklog/ulid v1.3.1 h1:EGfNDEx6MqHz8B3uNV6QAib1UR2Lm97sHi3ocA6ESJ4= +github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= +github.com/onsi/gomega v1.29.0 h1:KIA/t2t5UBzoirT4H9tsML45GEbo3ouUnBHsCfD2tVg= +github.com/onsi/gomega v1.29.0/go.mod h1:9sxs+SwGrKI0+PWe4Fxa9tFQQBG5xSsSbMXOI8PPpoQ= +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.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= +github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= +github.com/opencontainers/runc v1.2.0-rc.1 h1:SMjop2pxxYRTfKdsigna/8xRoaoCfIQfD2cVuOb64/o= +github.com/opencontainers/runc v1.2.0-rc.1/go.mod h1:m9JwxfHzXz5YTTXBQr7EY9KTuazFAGPyMQx2nRR3vTw= +github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs= +github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= +github.com/ory/dockertest/v3 v3.10.0 h1:4K3z2VMe8Woe++invjaTB7VRyQXQy5UY+loujO4aNE4= +github.com/ory/dockertest/v3 v3.10.0/go.mod h1:nr57ZbRWMqfsdGdFNLHz5jjNdDb7VVFnzAeW1n5N1Lg= +github.com/pborman/getopt v0.0.0-20180811024354-2b5b3bfb099b/go.mod h1:85jBQOZwpVEaDAr341tbn15RS4fCAsIst0qp7i8ex1o= +github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= +github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= +github.com/pelletier/go-toml/v2 v2.1.0 h1:FnwAJ4oYMvbT/34k9zzHuZNrhlz48GB3/s6at6/MHO4= +github.com/pelletier/go-toml/v2 v2.1.0/go.mod h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdUvyaeZurnPPDc= github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= -github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= +github.com/pjbgf/sha1cd v0.3.0 h1:4D5XXmUUBUl/xQ6IjCkEAbqXskkq/4O7LmGn0AqMDs4= +github.com/pjbgf/sha1cd v0.3.0/go.mod h1:nZ1rrWOcGJ5uZgEEVL1VUM9iRQiZvWdbZjkKyFzPPsI= +github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ= +github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c/go.mod h1:7rwL4CYBLnjLxUqIJNnCWiEdr3bn6IUYi15bNlnbCCU= 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/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/polydawn/refmt v0.89.1-0.20221221234430-40501e09de1f h1:VXTQfuJj9vKR4TCkEuWIckKvdHFeJH/huIFJ9/cXOB0= +github.com/polydawn/refmt v0.89.1-0.20221221234430-40501e09de1f/go.mod h1:/zvteZs/GwLtCgZ4BL6CBsk9IKIlexP43ObX9AxTqTw= github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= github.com/posener/complete v1.2.1 h1:LrvDIY//XNo65Lq84G/akBuMGlawHvGBABv8f/ZN6DI= github.com/posener/complete v1.2.1/go.mod h1:6gapUrK/U1TAN7ciCoNRIdVC5sbdBTUh1DKN0g6uH7E= +github.com/prashantv/gostub v1.1.0 h1:BTyx3RfQjRHnUWaGF9oQos79AlQ5k8WNktv7VGvVH4g= +github.com/prashantv/gostub v1.1.0/go.mod h1:A5zLQHz7ieHGG7is6LLXLz7I8+3LZzsrV0P1IAHhP5U= +github.com/prometheus/client_golang v1.19.0 h1:ygXvpU1AoN1MhdzckN+PyD9QJOSD4x7kmXYlnfbA6JU= +github.com/prometheus/client_golang v1.19.0/go.mod h1:ZRM9uEAypZakd+q/x7+gmsvXdURP+DABIEIjnmDdp+k= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.6.0 h1:k1v3CzpSRUTrKMppY35TLwPvxHqBu0bYgxZzqGIgaos= +github.com/prometheus/client_model v0.6.0/go.mod h1:NTQHnmxFpouOD0DpvP4XujX3CdOAGQPoaGhyTchlyt8= +github.com/prometheus/common v0.51.1 h1:eIjN50Bwglz6a/c3hAgSMcofL3nD+nFQkV6Dd4DsQCw= +github.com/prometheus/common v0.51.1/go.mod h1:lrWtQx+iDfn2mbH5GUzlH9TSHyfZpHkSiG1W7y3sF2Q= +github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo= +github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo= +github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= +github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= -github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= -github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= +github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= +github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= +github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= +github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/sagikazarmark/locafero v0.4.0 h1:HApY1R9zGo4DBgr7dqsTH/JJxLTTsOt7u6keLGt6kNQ= +github.com/sagikazarmark/locafero v0.4.0/go.mod h1:Pe1W6UlPYUk/+wc/6KFhbORCfqzgYEpgQ3O5fPuL3H4= +github.com/sagikazarmark/slog-shim v0.1.0 h1:diDBnUNK9N/354PgrxMywXnAwEr1QZcOr6gto+ugjYE= +github.com/sagikazarmark/slog-shim v0.1.0/go.mod h1:SrcSrq8aKtyuqEI1uvTDTK1arOWRIczQRv+GVI1AkeQ= +github.com/sassoftware/go-rpmutils v0.4.0 h1:ojND82NYBxgwrV+mX1CWsd5QJvvEZTKddtCdFLPWhpg= +github.com/sassoftware/go-rpmutils v0.4.0/go.mod h1:3goNWi7PGAT3/dlql2lv3+MSN5jNYPjT5mVcQcIsYzI= +github.com/scylladb/go-set v1.0.3-0.20200225121959-cc7b2070d91e h1:7q6NSFZDeGfvvtIRwBrU/aegEYJYmvev0cHAwo17zZQ= +github.com/scylladb/go-set v1.0.3-0.20200225121959-cc7b2070d91e/go.mod h1:DkpGd78rljTxKAnTDPFqXSGxvETQnJyuSOQwsHycqfs= +github.com/secure-systems-lab/go-securesystemslib v0.8.0 h1:mr5An6X45Kb2nddcFlbmfHkLguCE9laoZCUzEEpIZXA= +github.com/secure-systems-lab/go-securesystemslib v0.8.0/go.mod h1:UH2VZVuJfCYR8WgMlCU1uFsOUU+KeyrTWcSS73NBOzU= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= -github.com/sergi/go-diff v1.2.0 h1:XU+rvMAioB0UC3q1MFrIQy4Vo5/4VsRDQQXHsEya6xQ= github.com/sergi/go-diff v1.2.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= +github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 h1:n661drycOFuPLCN3Uc8sB6B/s6Z4t2xvBgU1htSHuq8= +github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3/go.mod h1:A0bzQcvG0E7Rwjx0REVgAGH58e96+X0MeOfepqsbeW4= +github.com/shopspring/decimal v1.2.0 h1:abSATXmQEYyShuxI4/vyW3tV1MrKAJzCZ/0zLUXYbsQ= +github.com/shopspring/decimal v1.2.0/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= +github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= +github.com/sigstore/cosign/v2 v2.2.4 h1:iY4vtEacmu2hkNj1Fh+8EBqBwKs2DHM27/lbNWDFJro= +github.com/sigstore/cosign/v2 v2.2.4/go.mod h1:JZlRD2uaEjVAvZ1XJ3QkkZJhTqSDVtLaet+C/TMR81Y= +github.com/sigstore/rekor v1.3.6 h1:QvpMMJVWAp69a3CHzdrLelqEqpTM3ByQRt5B5Kspbi8= +github.com/sigstore/rekor v1.3.6/go.mod h1:JDTSNNMdQ/PxdsS49DJkJ+pRJCO/83nbR5p3aZQteXc= +github.com/sigstore/sigstore v1.8.3 h1:G7LVXqL+ekgYtYdksBks9B38dPoIsbscjQJX/MGWkA4= +github.com/sigstore/sigstore v1.8.3/go.mod h1:mqbTEariiGA94cn6G3xnDiV6BD8eSLdL/eA7bvJ0fVs= github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= +github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= +github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= +github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/skeema/knownhosts v1.2.2 h1:Iug2P4fLmDw9f41PB6thxUkNUkJzB5i+1/exaj40L3A= +github.com/skeema/knownhosts v1.2.2/go.mod h1:xYbVRSPxqBZFrdmDyMmsOs+uX1UZC3nTN3ThzgDxUwo= +github.com/slack-go/slack v0.13.0 h1:7my/pR2ubZJ9912p9FtvALYpbt0cQPAqkRy2jaSI1PQ= +github.com/slack-go/slack v0.13.0/go.mod h1:hlGi5oXA+Gt+yWTPP0plCdRKmjsDxecdHxYQdlMQKOw= +github.com/smarty/assertions v1.15.0 h1:cR//PqUBUiQRakZWqBiFFQ9wb8emQGDb0HeGdqGByCY= +github.com/smarty/assertions v1.15.0/go.mod h1:yABtdzeQs6l1brC900WlRNwj6ZR55d7B+E8C6HtKdec= +github.com/smartystreets/assertions v1.2.0/go.mod h1:tcbTF8ujkAEcZ8TElKY+i30BzYlVhC/LOxJk7iOWnoo= +github.com/smartystreets/goconvey v1.7.2/go.mod h1:Vw0tHAZW6lzCRk3xgdin6fKYcG+G3Pg9vgXWeJpQFMM= +github.com/smartystreets/goconvey v1.8.1 h1:qGjIddxOk4grTu9JPOU31tVfq3cNdBlNa5sSznIX1xY= +github.com/smartystreets/goconvey v1.8.1/go.mod h1:+/u4qLyY6x1jReYOp7GOM2FSt8aP9CzCZL03bI28W60= +github.com/sourcegraph/conc v0.3.0 h1:OQTbbt6P72L20UqAkXXuLOj79LfEanQ+YQFNpLA9ySo= +github.com/sourcegraph/conc v0.3.0/go.mod h1:Sdozi7LEKbFPqYX2/J+iBAM6HpqSLTASQIKqDmF7Mt0= +github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI= +github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= -github.com/spf13/afero v1.10.0 h1:EaGW2JJh15aKOejeuJ+wpFSHnbd7GE6Wvp3TsNhb6LY= -github.com/spf13/afero v1.10.0/go.mod h1:UBogFpq8E9Hx+xc5CNTTEpTnuHVmXDwZcZcE1eb/UhQ= +github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= +github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= +github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +github.com/spf13/cast v1.6.0 h1:GEiTHELF+vaR5dhz3VqZfFSzZjYbgeKDpBxQVS4GYJ0= +github.com/spf13/cast v1.6.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= +github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0= +github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho= github.com/spf13/pflag v1.0.2/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= +github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/viper v1.18.2 h1:LUXCnvUvSM6FXAsj6nnfc8Q2tp1dIgUfY9Kc8GsSOiQ= +github.com/spf13/viper v1.18.2/go.mod h1:EKmWIqdnk5lOcmR72yw6hS+8OPYcwD0jteitLMVB+yk= 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.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= @@ -367,45 +940,125 @@ github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5 github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= +github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= +github.com/titanous/rocacheck v0.0.0-20171023193734-afe73141d399 h1:e/5i7d4oYZ+C1wj2THlRK+oAhjeS/TRQwMfkIuet3w0= +github.com/titanous/rocacheck v0.0.0-20171023193734-afe73141d399/go.mod h1:LdwHTNJT99C5fTAzDz0ud328OgXz+gierycbcIx2fRs= +github.com/tomnomnom/linkheader v0.0.0-20180905144013-02ca5825eb80 h1:nrZ3ySNYwJbSpD6ce9duiP+QkD3JuLCcWkdaehUS/3Y= +github.com/tomnomnom/linkheader v0.0.0-20180905144013-02ca5825eb80/go.mod h1:iFyPdL66DjUD96XmzVL3ZntbzcflLnznH0fr99w5VqE= github.com/ulikunitz/xz v0.5.8/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= -github.com/ulikunitz/xz v0.5.11 h1:kpFauv27b6ynzBNT/Xy+1k+fK4WswhN/6PN5WhFAGw8= -github.com/ulikunitz/xz v0.5.11/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= +github.com/ulikunitz/xz v0.5.12 h1:37Nm15o69RwBkXM0J6A5OlE67RZTfzUxTj8fB3dfcsc= +github.com/ulikunitz/xz v0.5.12/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= +github.com/urfave/cli v1.22.10/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= +github.com/vbatts/tar-split v0.11.5 h1:3bHCTIheBm1qFTcgh9oPu+nNBtX+XJIupG/vacinCts= +github.com/vbatts/tar-split v0.11.5/go.mod h1:yZbwRsSeGjusneWgA781EKej9HF8vme8okylkAeNKLk= github.com/vinpatel24/go-netconf v0.1.3 h1:OuN5Ul+GgbV8ujhtlfEBDhBo6+1J6RJ45xQuKMW2S6E= github.com/vinpatel24/go-netconf v0.1.3/go.mod h1:boOu1gdDSTrPkYFVT/DIf0YZV6Rqjewz7OnMG66OS/o= github.com/vmihailenco/msgpack v3.3.3+incompatible/go.mod h1:fy3FlTQTDXWkZ7Bh6AcGMlsjHatGryHQYUTf1ShIgkk= -github.com/vmihailenco/msgpack/v4 v4.3.12 h1:07s4sz9IReOgdikxLTKNbBdqDMLsjPKXwvCazn8G65U= +github.com/vmihailenco/msgpack v4.0.4+incompatible h1:dSLoQfGFAo3F6OoNhwUmLwVgaUXK79GlxNBwueZn0xI= +github.com/vmihailenco/msgpack v4.0.4+incompatible/go.mod h1:fy3FlTQTDXWkZ7Bh6AcGMlsjHatGryHQYUTf1ShIgkk= github.com/vmihailenco/msgpack/v4 v4.3.12/go.mod h1:gborTTJjAo/GWTqqRjrLCn9pgNN+NXzzngzBKDPIqw4= -github.com/vmihailenco/tagparser v0.1.1 h1:quXMXlA39OCbd2wAdTsGDlK9RkOk6Wuw+x37wVyIuWY= +github.com/vmihailenco/msgpack/v5 v5.4.1 h1:cQriyiUvjTwOHg8QZaPihLWeRAAVoCpE00IUPn0Bjt8= +github.com/vmihailenco/msgpack/v5 v5.4.1/go.mod h1:GaZTsDaehaPpQVyxrf5mtQlH+pc21PIudVV/E3rRQok= github.com/vmihailenco/tagparser v0.1.1/go.mod h1:OeAg3pn3UbLjkWt+rN9oFYB6u/cQgqMEUPoW2WPyhdI= +github.com/vmihailenco/tagparser/v2 v2.0.0 h1:y09buUbR+b5aycVFQs/g70pqKVZNBmxwAhO7/IwNM9g= +github.com/vmihailenco/tagparser/v2 v2.0.0/go.mod h1:Wri+At7QHww0WTrCBeu4J6bNtoV6mEfg5OIWRZA9qds= +github.com/wagoodman/go-partybus v0.0.0-20230516145632-8ccac152c651 h1:jIVmlAFIqV3d+DOxazTR9v+zgj8+VYuQBzPgBZvWBHA= +github.com/wagoodman/go-partybus v0.0.0-20230516145632-8ccac152c651/go.mod h1:b26F2tHLqaoRQf8DywqzVaV1MQ9yvjb0OMcNl7Nxu20= +github.com/wagoodman/go-progress v0.0.0-20220614130704-4b1c25a33c7c h1:gFwUKtkv6QzQsFdIjvPqd0Qdw42DHUEbbUdiUTI1uco= +github.com/wagoodman/go-progress v0.0.0-20220614130704-4b1c25a33c7c/go.mod h1:jLXFoL31zFaHKAAyZUh+sxiTDFe1L1ZHrcK2T1itVKA= +github.com/warpfork/go-wish v0.0.0-20220906213052-39a1cc7a02d0 h1:GDDkbFiaK8jsSDJfjId/PEGEShv6ugrt4kYsC5UIDaQ= +github.com/warpfork/go-wish v0.0.0-20220906213052-39a1cc7a02d0/go.mod h1:x6AKhvSSexNrVSrViXSHUEbICjmGXhtgABaHIySUSGw= +github.com/whyrusleeping/cbor-gen v0.1.1-0.20240311221002-68b9f235c302 h1:MhInbXe4SzcImAKktUvWBCWZgcw6MYf5NfumTj1BhAw= +github.com/whyrusleeping/cbor-gen v0.1.1-0.20240311221002-68b9f235c302/go.mod h1:pM99HXyEbSQHcosHc0iW7YFmwnscr+t9Te4ibko05so= +github.com/wk8/go-ordered-map/v2 v2.1.8 h1:5h/BUHu93oj4gIdvHHHGsScSTMijfx5PeYkE/fJgbpc= +github.com/wk8/go-ordered-map/v2 v2.1.8/go.mod h1:5nJHM5DyteebpVlHnWMV0rPz6Zp7+xBAnxjb1X5vnTw= +github.com/xanzy/go-gitlab v0.105.0 h1:3nyLq0ESez0crcaM19o5S//SvezOQguuIHZ3wgX64hM= +github.com/xanzy/go-gitlab v0.105.0/go.mod h1:ETg8tcj4OhrB84UEgeE8dSuV/0h4BBL1uOV/qK0vlyI= github.com/xanzy/ssh-agent v0.3.0/go.mod h1:3s9xbODqPuuhK9JV1R321M/FlMZSBvE5aY6eAcqrDh0= +github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM= +github.com/xanzy/ssh-agent v0.3.3/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI1Bc68Uw= +github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb h1:zGWFAtiMcyryUHoUjUJX0/lt1H2+i2Ka2n+D3DImSNo= +github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= +github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHovont7NscjpAxXsDA8S8BMYve8Y5+7cuRE7R0= +github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= +github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74= +github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= +github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8 h1:nIPpBwaJSVYIxUFsDv3M8ofmx9yWTog9BfvIu0q41lo= +github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8/go.mod h1:HUYIGzjTL3rfEspMxjDjgmT5uz5wzYJKVo23qUhYTos= 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= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/zclconf/go-cty v1.0.0/go.mod h1:xnAOWiHeOqg2nWS62VtQ7pbOu17FtxJNW8RLEih+O3s= github.com/zclconf/go-cty v1.1.0/go.mod h1:xnAOWiHeOqg2nWS62VtQ7pbOu17FtxJNW8RLEih+O3s= github.com/zclconf/go-cty v1.2.0/go.mod h1:hOPWgoHbaTUnI5k4D2ld+GRpFJSCe6bCM7m1q/N4PQ8= github.com/zclconf/go-cty v1.2.1/go.mod h1:hOPWgoHbaTUnI5k4D2ld+GRpFJSCe6bCM7m1q/N4PQ8= -github.com/zclconf/go-cty v1.8.0/go.mod h1:vVKLxnk3puL4qRAv72AO+W99LUD4da90g3uUAzyuvAk= github.com/zclconf/go-cty v1.8.2/go.mod h1:vVKLxnk3puL4qRAv72AO+W99LUD4da90g3uUAzyuvAk= -github.com/zclconf/go-cty v1.10.0 h1:mp9ZXQeIcN8kAwuqorjH+Q+njbJKjLrvB2yIh4q7U+0= -github.com/zclconf/go-cty v1.10.0/go.mod h1:vVKLxnk3puL4qRAv72AO+W99LUD4da90g3uUAzyuvAk= +github.com/zclconf/go-cty v1.14.4 h1:uXXczd9QDGsgu0i/QFR/hzI5NYCHLf6NQw/atrbnhq8= +github.com/zclconf/go-cty v1.14.4/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE= +github.com/zclconf/go-cty-debug v0.0.0-20191215020915-b22d67c1ba0b h1:FosyBZYxY34Wul7O/MSKey3txpPYyCqVO5ZyceuQJEI= github.com/zclconf/go-cty-debug v0.0.0-20191215020915-b22d67c1ba0b/go.mod h1:ZRKQfBXbGkpdV6QMzT3rU1kSTAnfu1dO8dPKjYprgj8= github.com/zclconf/go-cty-yaml v1.0.2 h1:dNyg4QLTrv2IfJpm7Wtxi55ed5gLGOlPrZ6kMd51hY0= github.com/zclconf/go-cty-yaml v1.0.2/go.mod h1:IP3Ylp0wQpYm50IHK8OZWKMu6sPJIUgKa8XhiVHura0= +gitlab.com/digitalxero/go-conventional-commit v1.0.7 h1:8/dO6WWG+98PMhlZowt/YjuiKhqhGlOCwlIV8SqqGh8= +gitlab.com/digitalxero/go-conventional-commit v1.0.7/go.mod h1:05Xc2BFsSyC5tKhK0y+P3bs0AwUtNuTp+mTpbCU/DZ0= +go.mongodb.org/mongo-driver v1.14.0 h1:P98w8egYRjYe3XDjxhYJagTokP/H6HzlsnojRgZRd80= +go.mongodb.org/mongo-driver v1.14.0/go.mod h1:Vzb0Mk/pa7e6cWw85R4F/endUC3u0U9jGcNU603k65c= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 h1:4Pp6oUg3+e/6M4C0A/3kJ2VYa++dsWVTtGgLVj5xtHg= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0/go.mod h1:Mjt1i1INqiaoZOMGR1RIUJN+i3ChKoFRqzrRQhlkbs0= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 h1:jq9TW8u3so/bN+JPT166wjOI6/vQPF6Xe7nMNIltagk= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0/go.mod h1:p8pYQP+m5XfbZm9fxtSKAbM6oIllS7s2AfxrChvc7iw= +go.opentelemetry.io/otel v1.24.0 h1:0LAOdjNmQeSTzGBzduGe/rU4tZhMwL5rWgtp9Ku5Jfo= +go.opentelemetry.io/otel v1.24.0/go.mod h1:W7b9Ozg4nkF5tWI5zsXkaKKDjdVjpD4oAt9Qi/MArHo= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.21.0 h1:cl5P5/GIfFh4t6xyruOgJP5QiA1pw4fYYdv6nc6CBWw= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.21.0/go.mod h1:zgBdWWAu7oEEMC06MMKc5NLbA/1YDXV1sMpSqEeLQLg= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.22.0 h1:FyjCyI9jVEfqhUh2MoSkmolPjfh5fp2hnV0b0irxH4Q= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.22.0/go.mod h1:hYwym2nDEeZfG/motx0p7L7J1N1vyzIThemQsb4g2qY= +go.opentelemetry.io/otel/metric v1.24.0 h1:6EhoGWWK28x1fbpA4tYTOWBkPefTDQnb8WSGXlc88kI= +go.opentelemetry.io/otel/metric v1.24.0/go.mod h1:VYhLe1rFfxuTXLgj4CBiyz+9WYBA8pNGJgDcSFRKBco= +go.opentelemetry.io/otel/sdk v1.24.0 h1:YMPPDNymmQN3ZgczicBY3B6sf9n62Dlj9pWD3ucgoDw= +go.opentelemetry.io/otel/sdk v1.24.0/go.mod h1:KVrIYw6tEubO9E96HQpcmpTKDVn9gdv35HoYiQWGDFg= +go.opentelemetry.io/otel/trace v1.24.0 h1:CsKnnL4dUAr/0llH9FKuc698G04IrpWV0MQA/Y1YELI= +go.opentelemetry.io/otel/trace v1.24.0/go.mod h1:HPc3Xr/cOApsBI154IU0OI0HJexz+aw5uPdbs3UCjNU= +go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= +go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= +go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= +go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= +go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= +go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= +go.uber.org/automaxprocs v1.5.3 h1:kWazyxZUrS3Gs4qUpbwo5kEIMGe/DAvi5Z4tl2NW4j8= +go.uber.org/automaxprocs v1.5.3/go.mod h1:eRbA25aqJrxAbsLO0xy5jVwPt7FQnRgjW+efnwa1WM0= +go.uber.org/goleak v1.1.11-0.20210813005559-691160354723/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= +go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= +go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= +go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU= +go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= +go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= +go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= +go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= +go.uber.org/zap v1.16.0/go.mod h1:MA8QOfq0BHJwdXa996Y4dYkAqRKB8/1K1QMMZVaNZjQ= +go.uber.org/zap v1.19.1/go.mod h1:j3DNczoxDZroyBnOT1L/Q79cfUMGZxlv/9dzN7SM1rI= +go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= +go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= +gocloud.dev v0.37.0 h1:XF1rN6R0qZI/9DYjN16Uy0durAmSlf58DHOcb28GPro= +gocloud.dev v0.37.0/go.mod h1:7/O4kqdInCNsc6LqgmuFnS0GRew4XNNYWpA44yQnwco= golang.org/x/crypto v0.0.0-20190219172222-a4c6cb3142f2/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190426145343-a29dc8fdc734/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= @@ -416,11 +1069,17 @@ golang.org/x/crypto v0.0.0-20200604202706-70a84ac30bf9/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= -golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= +golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.18.0 h1:PGVlW0xEltQnzFZ55hkuX5+KLyrMYhHld1YHO4AKcdc= +golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= +golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= +golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= +golang.org/x/crypto v0.23.0 h1:dIJU/v2J8Mdglj/8rJ6UUOM3Zc9zLZxVZwwxMooUSAI= +golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= 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= @@ -431,6 +1090,8 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= +golang.org/x/exp v0.0.0-20231206192017-f3f8817b8deb h1:c0vyKkb6yr3KR7jEfJaOSv4lG7xPkbN6r52aJz1d8a8= +golang.org/x/exp v0.0.0-20231206192017-f3f8817b8deb/go.mod h1:iRJReGqOEeBhDZGkGbynYwcHlctCvnjTYIamk7uXpHI= 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= @@ -443,7 +1104,6 @@ golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHl 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/lint v0.0.0-20201208152925-83fdc39ff7b5/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= @@ -452,9 +1112,13 @@ golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzB 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.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.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA= +golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= 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= golang.org/x/net v0.0.0-20180811021610-c39426892332/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -485,28 +1149,28 @@ golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81R 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-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -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-20210326060303-6b1517762897/go.mod h1:uSPa2vr4CLtc/ILN5odXGNXS6mhrKVzTaCXzk9m6W3k= +golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= +golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.20.0 h1:aCL9BSgETF1k+blQaYUBx9hJ9LOGP3gAVemcZlf1Kpo= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= +golang.org/x/net v0.25.0 h1:d/OCCoBEUq33pjydKrGQhw7IlUPI2Oylr+8qLx49kac= +golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= 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/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.16.0 h1:aDkGMBSYxElaoP81NpoUoz2oo2R2wHdZpGToUxfyQrQ= -golang.org/x/oauth2 v0.16.0/go.mod h1:hqZ+0LWXsiVoZpeld6jVt06P3adbS2Uu911W1SsJv2o= +golang.org/x/oauth2 v0.20.0 h1:4mQdhULixXKP1rwYBW0vAijoXnkTG0BLCDRzfe1idMo= +golang.org/x/oauth2 v0.20.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= 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= @@ -516,10 +1180,13 @@ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJ 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/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M= +golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -534,9 +1201,11 @@ golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/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-20191026070338-33540a1f6037/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-20200116001909-b77594299b42/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= @@ -552,51 +1221,67 @@ golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/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-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/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-20210423185535-09eb48e85fd7/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-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220204135822-1c1b9b1eba6a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y= +golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= -golang.org/x/term v0.16.0 h1:m+B6fahuftsE9qjo0VWp2FW0mB3MTJvR0BaMQrq0pmE= +golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= +golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY= +golang.org/x/term v0.20.0 h1:VnkxpohqXaOBYJtBmEppKUG6mXpi+4O6purfc2+sMhw= +golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= 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.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= +golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= +golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.15.0 h1:h1V/4gjBv8v9cjcR6+AR5+/cIYK5N/WAgiv4xlsEtAk= +golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= 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.4.0 h1:Z81tqI5ddIoXDPvVQ7/7CC9TnLM7ubaFG2qXYd5BbYY= -golang.org/x/time v0.4.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= +golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= 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-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= @@ -606,6 +1291,8 @@ golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgw 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-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/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= @@ -628,18 +1315,20 @@ golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roY 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-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= golang.org/x/tools v0.0.0-20201028111035-eafbe7b904eb/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= +golang.org/x/tools v0.17.0/go.mod h1:xsh6VxdV005rRVaS6SSAf9oiAqljS7UZUacMZ8Bnsps= +golang.org/x/tools v0.21.0 h1:qc0xYgIbsSDt9EyWz05J5wfa7LOVW0YTLOXrqdLAWIw= +golang.org/x/tools v0.21.0/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= 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= @@ -663,18 +1352,14 @@ google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0M 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/api v0.34.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= -google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= -google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= -google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= -google.golang.org/api v0.151.0 h1:FhfXLO/NFdJIzQtCqjpysWwqKk8AzGWBUhMIx67cVDU= -google.golang.org/api v0.151.0/go.mod h1:ccy+MJ6nrYFgE3WgRx/AMXOxOmU8Q4hSa+jjibzhxcg= +google.golang.org/api v0.172.0 h1:/1OcMZGPmW1rX2LCu2CmGUD1KXK1+pfzxotxyRUCCdk= +google.golang.org/api v0.172.0/go.mod h1:+fJZq6QXWfa9pXhnIzsjx4yI22d4aI9ZpLb58gvXjis= 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/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= google.golang.org/genproto v0.0.0-20170818010345-ee236bd376b0/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= @@ -708,18 +1393,12 @@ google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20231120223509-83a465c0220f h1:Vn+VyHU5guc9KjB5KrjI2q0wCOWEOIh0OEsleqakHJg= -google.golang.org/genproto v0.0.0-20231120223509-83a465c0220f/go.mod h1:nWSwAFPb+qfNJXsoeO3Io7zf4tMSfN8EA8RlDA04GhY= -google.golang.org/genproto/googleapis/api v0.0.0-20231120223509-83a465c0220f h1:2yNACc1O40tTnrsbk9Cv6oxiW8pxI/pXj0wRtdlYmgY= -google.golang.org/genproto/googleapis/api v0.0.0-20231120223509-83a465c0220f/go.mod h1:Uy9bTZJqmfrw2rIBxgGLnamc78euZULUBrLZ9XTITKI= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231120223509-83a465c0220f h1:ultW7fxlIvee4HYrtnaRPon9HpEgFk5zYpmfMgtKB5I= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231120223509-83a465c0220f/go.mod h1:L9KNLi232K1/xB6f7AlSX692koaRnKaWSR0stBki0Yc= +google.golang.org/genproto v0.0.0-20240311173647-c811ad7063a7 h1:ImUcDPHjTrAqNhlOkSocDLfG9rrNHH7w7uoKWPaWZ8s= +google.golang.org/genproto v0.0.0-20240311173647-c811ad7063a7/go.mod h1:/3XmxOjePkvmKrHuBy4zNFw7IzxJXtAgdpXi8Ll990U= +google.golang.org/genproto/googleapis/api v0.0.0-20240311173647-c811ad7063a7 h1:oqta3O3AnlWbmIE3bFnWbu4bRxZjfbWCp0cKSuZh01E= +google.golang.org/genproto/googleapis/api v0.0.0-20240311173647-c811ad7063a7/go.mod h1:VQW3tUculP/D4B+xVCo+VgSq8As6wA9ZjHl//pmk+6s= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240318140521-94a12d6c2237 h1:NnYq6UN9ReLM9/Y01KWNOWyI5xQ9kbIms5GGJVwS/Yc= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240318140521-94a12d6c2237/go.mod h1:WtryC6hu0hhx87FDGxWCDptyssuo68sk10vYjF+T9fY= google.golang.org/grpc v1.8.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= @@ -736,10 +1415,8 @@ google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= google.golang.org/grpc v1.32.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= -google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= -google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk= -google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= +google.golang.org/grpc v1.63.2 h1:MUeiw1B2maTVZthpU5xvASfTh3LDbxHd6IJ6QQVU+xM= +google.golang.org/grpc v1.63.2/go.mod h1:WAX/8DgncnokcFUldAxq7GeB5DXHDbMF+lLvDomNkRA= 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= @@ -752,8 +1429,10 @@ google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGj 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.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.34.0 h1:Qo/qEd2RZPCf2nKuorzksSknv0d3ERwp1vFG38gSmH4= +google.golang.org/protobuf v1.34.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc h1:2gGKlE2+asNV9m7xrywl36YYNnBG5ZQ0r/BOOxqPpmk= +gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc/go.mod h1:m7x9LTH6d71AHyAX77c9yqWCCa3UKHcVEj9y7hAtKDk= 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-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -762,6 +1441,13 @@ gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntN gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/cheggaaa/pb.v1 v1.0.27/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= +gopkg.in/go-jose/go-jose.v2 v2.6.3 h1:nt80fvSDlhKWQgSWyHyy5CfmlQr+asih51R8PTWNKKs= +gopkg.in/go-jose/go-jose.v2 v2.6.3/go.mod h1:zzZDPkNNw/c9IE7Z9jr11mBZQhKQTMzoEEIoEdZlFBI= +gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= +gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/mail.v2 v2.3.1 h1:WYFn/oANrAGP2C0dcV6/pbkPzv8yGzqTjPmTeO7qoXk= +gopkg.in/mail.v2 v2.3.1/go.mod h1:htwXN1Qh09vZJ1NVKxQqHPBaCBbzKhp5GzuJEA4VJWw= +gopkg.in/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME= gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= @@ -770,8 +1456,11 @@ 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= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gotest.tools/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= @@ -779,6 +1468,14 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +lukechampine.com/blake3 v1.2.1 h1:YuqqRuaqsGV71BV/nm9xlI0MKUv4QC54jQnBChWbGnI= +lukechampine.com/blake3 v1.2.1/go.mod h1:0OFRp7fBtAylGVCO40o87sbupkyIGgbpv1+M1k1LM6k= 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/kind v0.23.0 h1:8fyDGWbWTeCcCTwA04v4Nfr45KKxbSPH1WO9K+jVrBg= +sigs.k8s.io/kind v0.23.0/go.mod h1:ZQ1iZuJLh3T+O8fzhdi3VWcFTzsdXtNv2ppsHc8JQ7s= +sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= +sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= +software.sslmate.com/src/go-pkcs12 v0.4.0 h1:H2g08FrTvSFKUj+D309j1DPfk5APnIdAQAB8aEykJ5k= +software.sslmate.com/src/go-pkcs12 v0.4.0/go.mod h1:Qiz0EyvDRJjjxGyUQa2cCNZn/wMyzrRJ/qcDXOQazLI= diff --git a/testbed/.terraform.lock.hcl b/testbed/.terraform.lock.hcl new file mode 100644 index 00000000..0b504b37 --- /dev/null +++ b/testbed/.terraform.lock.hcl @@ -0,0 +1,10 @@ +# This file is maintained automatically by "terraform init". +# Manual edits may be lost in future updates. + +provider "juniper/providers/junos-vmx" { + version = "22.3.0" + constraints = "22.3.0" + hashes = [ + "h1:XcHrfiqNjkq7jL1CuQaFQ1MLFMCrEOEfKordXjwTw1Q=", + ] +} diff --git a/testbed/.terraform/modules/modules.json b/testbed/.terraform/modules/modules.json new file mode 100644 index 00000000..2e2f7f28 --- /dev/null +++ b/testbed/.terraform/modules/modules.json @@ -0,0 +1 @@ +{"Modules":[{"Key":"","Source":"","Dir":"."},{"Key":"vmx_1","Source":"./vmx_1","Dir":"vmx_1"}]} \ No newline at end of file diff --git a/testbed/.terraform/providers/juniper/providers/junos-vmx/22.3.0/darwin_arm64 b/testbed/.terraform/providers/juniper/providers/junos-vmx/22.3.0/darwin_arm64 new file mode 120000 index 00000000..f47c90c6 --- /dev/null +++ b/testbed/.terraform/providers/juniper/providers/junos-vmx/22.3.0/darwin_arm64 @@ -0,0 +1 @@ +/Users/nlord/.terraform.d/plugins/juniper/providers/junos-vmx/22.3.0/darwin_arm64 \ No newline at end of file diff --git a/testbed/jtaf_logging.log b/testbed/jtaf_logging.log new file mode 100644 index 00000000..3984e763 --- /dev/null +++ b/testbed/jtaf_logging.log @@ -0,0 +1,19 @@ +driver error: netconf rpc [error] 'statement not found: groups "vmx_1!"', driver close error: %!s() +driver error: netconf rpc [error] 'statement not found: groups "vmx_1!"', driver close error: %!s() +driver error: netconf rpc [error] 'statement not found: apply-groups best_vmx', driver close error: %!s() +driver error: netconf rpc [error] 'statement not found: apply-groups vmx_5', driver close error: %!s() +driver error: netconf rpc [error] 'statement not found: apply-groups vmx_2', driver close error: %!s() +driver error: netconf rpc [error] 'statement not found: apply-groups vmx_9', driver close error: %!s() +driver error: netconf rpc [error] 'statement not found: apply-groups vmx_3', driver close error: %!s() +driver error: netconf rpc [error] 'statement not found: apply-groups vmx_10', driver close error: %!s() +driver error: netconf rpc [error] 'statement not found: apply-groups vmx_8', driver close error: %!s() +driver error: netconf rpc [error] 'statement not found: apply-groups vmx_6', driver close error: %!s() +driver error: netconf rpc [error] 'statement not found: apply-groups vmx_7', driver close error: %!s() +driver error: netconf rpc [error] 'statement not found: groups vmx_3', driver close error: %!s() +driver error: netconf rpc [error] 'statement not found: groups vmx_10', driver close error: %!s() +driver error: netconf rpc [error] 'statement not found: groups vmx_6', driver close error: %!s() +driver error: netconf rpc [error] 'statement not found: groups vmx_5', driver close error: %!s() +driver error: netconf rpc [error] 'statement not found: groups vmx_2', driver close error: %!s() +driver error: netconf rpc [error] 'statement not found: groups vmx_9', driver close error: %!s() +driver error: netconf rpc [error] 'statement not found: groups vmx_7', driver close error: %!s() +driver error: netconf rpc [error] 'statement not found: groups vmx_8', driver close error: %!s() diff --git a/testbed/main.tf b/testbed/main.tf new file mode 100644 index 00000000..3c624a96 --- /dev/null +++ b/testbed/main.tf @@ -0,0 +1,36 @@ + +terraform { + required_providers { + junos-vmx = { + source = "juniper/providers/junos-vmx" + version = "22.3" + } + } +} + +provider "junos-vmx" { + host = "10.56.16.246" + port = 22 + username = "regress" + password = "MaRtInI" + sshkey = "" +} + +module "vmx_1" { + source = "./vmx_1" + + providers = {junos-vmx = junos-vmx} + + depends_on = [junos-vmx_destroycommit.commit-main] +} + + +resource "junos-vmx_commit" "commit-main" { + resource_name = "commit" + depends_on = [module.vmx_1] +} + +resource "junos-vmx_destroycommit" "commit-main" { + resource_name = "destroycommit" +} + \ No newline at end of file diff --git a/testbed/terraform.tfstate b/testbed/terraform.tfstate new file mode 100644 index 00000000..7b4db1a0 --- /dev/null +++ b/testbed/terraform.tfstate @@ -0,0 +1,304 @@ +{ + "version": 4, + "terraform_version": "1.9.0", + "serial": 63, + "lineage": "0e2b2eda-b9a0-0c2c-cb7f-3f1dd2588fea", + "outputs": {}, + "resources": [ + { + "mode": "managed", + "type": "junos-vmx_commit", + "name": "commit-main", + "provider": "provider[\"juniper/providers/junos-vmx\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "id": "10.56.16.246_commit", + "resource_name": "commit" + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "junos-vmx_destroycommit.commit-main", + "module.vmx_1.junos-vmx_InterfacesInterface.vmx_11", + "module.vmx_1.junos-vmx_InterfacesInterfaceName.best_vmx1", + "module.vmx_1.junos-vmx_InterfacesInterfaceUnit.vmx_2", + "module.vmx_1.junos-vmx_InterfacesInterfaceUnitFamily.vmx_7", + "module.vmx_1.junos-vmx_InterfacesInterfaceUnitFamilyInet.vmx_8", + "module.vmx_1.junos-vmx_InterfacesInterfaceUnitFamilyInetAddress.vmx_3", + "module.vmx_1.junos-vmx_InterfacesInterfaceUnitFamilyInetAddressName.vmx_9", + "module.vmx_1.junos-vmx_InterfacesInterfaceUnitName.vmx_6", + "module.vmx_1.junos-vmx_SystemBackup__Router.vmx_4", + "module.vmx_1.junos-vmx_SystemBackup__RouterAddress.vmx_5", + "module.vmx_1.junos-vmx_SystemHost__Name.vmx_10" + ] + } + ] + }, + { + "mode": "managed", + "type": "junos-vmx_destroycommit", + "name": "commit-main", + "provider": "provider[\"juniper/providers/junos-vmx\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "id": "10.56.16.246_destroycommit", + "resource_name": "destroycommit" + }, + "sensitive_attributes": [], + "private": "bnVsbA==" + } + ] + }, + { + "module": "module.vmx_1", + "mode": "managed", + "type": "junos-vmx_InterfacesInterface", + "name": "vmx_11", + "provider": "provider[\"juniper/providers/junos-vmx\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "id": "10.56.16.246_vmx_11", + "resource_name": "vmx_11" + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "junos-vmx_destroycommit.commit-main" + ] + } + ] + }, + { + "module": "module.vmx_1", + "mode": "managed", + "type": "junos-vmx_InterfacesInterfaceName", + "name": "best_vmx1", + "provider": "provider[\"juniper/providers/junos-vmx\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "id": "10.56.16.246_best_vmx1", + "name": "", + "resource_name": "best_vmx1" + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "junos-vmx_destroycommit.commit-main" + ] + } + ] + }, + { + "module": "module.vmx_1", + "mode": "managed", + "type": "junos-vmx_InterfacesInterfaceUnit", + "name": "vmx_2", + "provider": "provider[\"juniper/providers/junos-vmx\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "id": "10.56.16.246_vmx_2", + "name": "", + "resource_name": "vmx_2" + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "junos-vmx_destroycommit.commit-main" + ] + } + ] + }, + { + "module": "module.vmx_1", + "mode": "managed", + "type": "junos-vmx_InterfacesInterfaceUnitFamily", + "name": "vmx_7", + "provider": "provider[\"juniper/providers/junos-vmx\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "id": "10.56.16.246_vmx_7", + "name": "", + "name__1": "", + "resource_name": "vmx_7" + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "junos-vmx_destroycommit.commit-main" + ] + } + ] + }, + { + "module": "module.vmx_1", + "mode": "managed", + "type": "junos-vmx_InterfacesInterfaceUnitFamilyInet", + "name": "vmx_8", + "provider": "provider[\"juniper/providers/junos-vmx\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "id": "10.56.16.246_vmx_8", + "name": "", + "name__1": "", + "resource_name": "vmx_8" + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "junos-vmx_destroycommit.commit-main" + ] + } + ] + }, + { + "module": "module.vmx_1", + "mode": "managed", + "type": "junos-vmx_InterfacesInterfaceUnitFamilyInetAddress", + "name": "vmx_3", + "provider": "provider[\"juniper/providers/junos-vmx\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "id": "10.56.16.246_vmx_3", + "name": "", + "name__1": "", + "resource_name": "vmx_3" + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "junos-vmx_destroycommit.commit-main" + ] + } + ] + }, + { + "module": "module.vmx_1", + "mode": "managed", + "type": "junos-vmx_InterfacesInterfaceUnitFamilyInetAddressName", + "name": "vmx_9", + "provider": "provider[\"juniper/providers/junos-vmx\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "id": "10.56.16.246_vmx_9", + "name": "", + "name__1": "", + "name__2": "", + "resource_name": "vmx_9" + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "junos-vmx_destroycommit.commit-main" + ] + } + ] + }, + { + "module": "module.vmx_1", + "mode": "managed", + "type": "junos-vmx_InterfacesInterfaceUnitName", + "name": "vmx_6", + "provider": "provider[\"juniper/providers/junos-vmx\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "id": "10.56.16.246_vmx_6", + "name": "", + "name__1": "", + "resource_name": "vmx_6" + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "junos-vmx_destroycommit.commit-main" + ] + } + ] + }, + { + "module": "module.vmx_1", + "mode": "managed", + "type": "junos-vmx_SystemBackup__Router", + "name": "vmx_4", + "provider": "provider[\"juniper/providers/junos-vmx\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "id": "10.56.16.246_vmx_4", + "resource_name": "vmx_4" + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "junos-vmx_destroycommit.commit-main" + ] + } + ] + }, + { + "module": "module.vmx_1", + "mode": "managed", + "type": "junos-vmx_SystemBackup__RouterAddress", + "name": "vmx_5", + "provider": "provider[\"juniper/providers/junos-vmx\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "address": "", + "id": "10.56.16.246_vmx_5", + "resource_name": "vmx_5" + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "junos-vmx_destroycommit.commit-main" + ] + } + ] + }, + { + "module": "module.vmx_1", + "mode": "managed", + "type": "junos-vmx_SystemHost__Name", + "name": "vmx_10", + "provider": "provider[\"juniper/providers/junos-vmx\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "host__name": "", + "id": "10.56.16.246_vmx_10", + "resource_name": "vmx_10" + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "junos-vmx_destroycommit.commit-main" + ] + } + ] + } + ], + "check_results": null +} diff --git a/testbed/terraform.tfstate.backup b/testbed/terraform.tfstate.backup new file mode 100644 index 00000000..58d3065a --- /dev/null +++ b/testbed/terraform.tfstate.backup @@ -0,0 +1,306 @@ +{ + "version": 4, + "terraform_version": "1.9.0", + "serial": 50, + "lineage": "0e2b2eda-b9a0-0c2c-cb7f-3f1dd2588fea", + "outputs": {}, + "resources": [ + { + "mode": "managed", + "type": "junos-vmx_commit", + "name": "commit-main", + "provider": "provider[\"juniper/providers/junos-vmx\"]", + "instances": [ + { + "status": "tainted", + "schema_version": 0, + "attributes": { + "id": "10.56.16.246_commit", + "resource_name": "commit" + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "junos-vmx_destroycommit.commit-main", + "module.vmx_1.junos-vmx_InterfacesInterface.vmx_11", + "module.vmx_1.junos-vmx_InterfacesInterfaceName.best_vmx", + "module.vmx_1.junos-vmx_InterfacesInterfaceName.vmx_1", + "module.vmx_1.junos-vmx_InterfacesInterfaceUnit.vmx_2", + "module.vmx_1.junos-vmx_InterfacesInterfaceUnitFamily.vmx_7", + "module.vmx_1.junos-vmx_InterfacesInterfaceUnitFamilyInet.vmx_8", + "module.vmx_1.junos-vmx_InterfacesInterfaceUnitFamilyInetAddress.vmx_3", + "module.vmx_1.junos-vmx_InterfacesInterfaceUnitFamilyInetAddressName.vmx_9", + "module.vmx_1.junos-vmx_InterfacesInterfaceUnitName.vmx_6", + "module.vmx_1.junos-vmx_SystemBackup__Router.vmx_4", + "module.vmx_1.junos-vmx_SystemBackup__RouterAddress.vmx_5", + "module.vmx_1.junos-vmx_SystemHost__Name.vmx_10" + ] + } + ] + }, + { + "mode": "managed", + "type": "junos-vmx_destroycommit", + "name": "commit-main", + "provider": "provider[\"juniper/providers/junos-vmx\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "id": "10.56.16.246_destroycommit", + "resource_name": "destroycommit" + }, + "sensitive_attributes": [], + "private": "bnVsbA==" + } + ] + }, + { + "module": "module.vmx_1", + "mode": "managed", + "type": "junos-vmx_InterfacesInterface", + "name": "vmx_11", + "provider": "provider[\"juniper/providers/junos-vmx\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "id": "10.56.16.246_vmx_11", + "resource_name": "vmx_11" + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "junos-vmx_destroycommit.commit-main" + ] + } + ] + }, + { + "module": "module.vmx_1", + "mode": "managed", + "type": "junos-vmx_InterfacesInterfaceName", + "name": "best_vmx", + "provider": "provider[\"juniper/providers/junos-vmx\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "id": "10.56.16.246_best_vmx", + "name": "", + "resource_name": "best_vmx" + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "junos-vmx_destroycommit.commit-main" + ] + } + ] + }, + { + "module": "module.vmx_1", + "mode": "managed", + "type": "junos-vmx_InterfacesInterfaceUnit", + "name": "vmx_2", + "provider": "provider[\"juniper/providers/junos-vmx\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "id": "10.56.16.246_vmx_2", + "name": "", + "resource_name": "vmx_2" + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "junos-vmx_destroycommit.commit-main" + ] + } + ] + }, + { + "module": "module.vmx_1", + "mode": "managed", + "type": "junos-vmx_InterfacesInterfaceUnitFamily", + "name": "vmx_7", + "provider": "provider[\"juniper/providers/junos-vmx\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "id": "10.56.16.246_vmx_7", + "name": "", + "name__1": "", + "resource_name": "vmx_7" + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "junos-vmx_destroycommit.commit-main" + ] + } + ] + }, + { + "module": "module.vmx_1", + "mode": "managed", + "type": "junos-vmx_InterfacesInterfaceUnitFamilyInet", + "name": "vmx_8", + "provider": "provider[\"juniper/providers/junos-vmx\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "id": "10.56.16.246_vmx_8", + "name": "", + "name__1": "", + "resource_name": "vmx_8" + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "junos-vmx_destroycommit.commit-main" + ] + } + ] + }, + { + "module": "module.vmx_1", + "mode": "managed", + "type": "junos-vmx_InterfacesInterfaceUnitFamilyInetAddress", + "name": "vmx_3", + "provider": "provider[\"juniper/providers/junos-vmx\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "id": "10.56.16.246_vmx_3", + "name": "", + "name__1": "", + "resource_name": "vmx_3" + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "junos-vmx_destroycommit.commit-main" + ] + } + ] + }, + { + "module": "module.vmx_1", + "mode": "managed", + "type": "junos-vmx_InterfacesInterfaceUnitFamilyInetAddressName", + "name": "vmx_9", + "provider": "provider[\"juniper/providers/junos-vmx\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "id": "10.56.16.246_vmx_9", + "name": "", + "name__1": "", + "name__2": "", + "resource_name": "vmx_9" + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "junos-vmx_destroycommit.commit-main" + ] + } + ] + }, + { + "module": "module.vmx_1", + "mode": "managed", + "type": "junos-vmx_InterfacesInterfaceUnitName", + "name": "vmx_6", + "provider": "provider[\"juniper/providers/junos-vmx\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "id": "10.56.16.246_vmx_6", + "name": "", + "name__1": "", + "resource_name": "vmx_6" + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "junos-vmx_destroycommit.commit-main" + ] + } + ] + }, + { + "module": "module.vmx_1", + "mode": "managed", + "type": "junos-vmx_SystemBackup__Router", + "name": "vmx_4", + "provider": "provider[\"juniper/providers/junos-vmx\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "id": "10.56.16.246_vmx_4", + "resource_name": "vmx_4" + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "junos-vmx_destroycommit.commit-main" + ] + } + ] + }, + { + "module": "module.vmx_1", + "mode": "managed", + "type": "junos-vmx_SystemBackup__RouterAddress", + "name": "vmx_5", + "provider": "provider[\"juniper/providers/junos-vmx\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "address": "", + "id": "10.56.16.246_vmx_5", + "resource_name": "vmx_5" + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "junos-vmx_destroycommit.commit-main" + ] + } + ] + }, + { + "module": "module.vmx_1", + "mode": "managed", + "type": "junos-vmx_SystemHost__Name", + "name": "vmx_10", + "provider": "provider[\"juniper/providers/junos-vmx\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "host__name": "", + "id": "10.56.16.246_vmx_10", + "resource_name": "vmx_10" + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "junos-vmx_destroycommit.commit-main" + ] + } + ] + } + ], + "check_results": null +} From 3bc186d4e30528bd032840c7da655a28a074bc24 Mon Sep 17 00:00:00 2001 From: Natalie Date: Mon, 28 Oct 2024 10:41:48 -0700 Subject: [PATCH 15/19] deleting extra files --- testbed/.terraform.lock.hcl | 10 - testbed/.terraform/modules/modules.json | 1 - .../providers/junos-vmx/22.3.0/darwin_arm64 | 1 - testbed/jtaf_logging.log | 19 -- testbed/main.tf | 36 --- testbed/terraform.tfstate | 304 ----------------- testbed/terraform.tfstate.backup | 306 ------------------ 7 files changed, 677 deletions(-) delete mode 100644 testbed/.terraform.lock.hcl delete mode 100644 testbed/.terraform/modules/modules.json delete mode 120000 testbed/.terraform/providers/juniper/providers/junos-vmx/22.3.0/darwin_arm64 delete mode 100644 testbed/jtaf_logging.log delete mode 100644 testbed/main.tf delete mode 100644 testbed/terraform.tfstate delete mode 100644 testbed/terraform.tfstate.backup diff --git a/testbed/.terraform.lock.hcl b/testbed/.terraform.lock.hcl deleted file mode 100644 index 0b504b37..00000000 --- a/testbed/.terraform.lock.hcl +++ /dev/null @@ -1,10 +0,0 @@ -# This file is maintained automatically by "terraform init". -# Manual edits may be lost in future updates. - -provider "juniper/providers/junos-vmx" { - version = "22.3.0" - constraints = "22.3.0" - hashes = [ - "h1:XcHrfiqNjkq7jL1CuQaFQ1MLFMCrEOEfKordXjwTw1Q=", - ] -} diff --git a/testbed/.terraform/modules/modules.json b/testbed/.terraform/modules/modules.json deleted file mode 100644 index 2e2f7f28..00000000 --- a/testbed/.terraform/modules/modules.json +++ /dev/null @@ -1 +0,0 @@ -{"Modules":[{"Key":"","Source":"","Dir":"."},{"Key":"vmx_1","Source":"./vmx_1","Dir":"vmx_1"}]} \ No newline at end of file diff --git a/testbed/.terraform/providers/juniper/providers/junos-vmx/22.3.0/darwin_arm64 b/testbed/.terraform/providers/juniper/providers/junos-vmx/22.3.0/darwin_arm64 deleted file mode 120000 index f47c90c6..00000000 --- a/testbed/.terraform/providers/juniper/providers/junos-vmx/22.3.0/darwin_arm64 +++ /dev/null @@ -1 +0,0 @@ -/Users/nlord/.terraform.d/plugins/juniper/providers/junos-vmx/22.3.0/darwin_arm64 \ No newline at end of file diff --git a/testbed/jtaf_logging.log b/testbed/jtaf_logging.log deleted file mode 100644 index 3984e763..00000000 --- a/testbed/jtaf_logging.log +++ /dev/null @@ -1,19 +0,0 @@ -driver error: netconf rpc [error] 'statement not found: groups "vmx_1!"', driver close error: %!s() -driver error: netconf rpc [error] 'statement not found: groups "vmx_1!"', driver close error: %!s() -driver error: netconf rpc [error] 'statement not found: apply-groups best_vmx', driver close error: %!s() -driver error: netconf rpc [error] 'statement not found: apply-groups vmx_5', driver close error: %!s() -driver error: netconf rpc [error] 'statement not found: apply-groups vmx_2', driver close error: %!s() -driver error: netconf rpc [error] 'statement not found: apply-groups vmx_9', driver close error: %!s() -driver error: netconf rpc [error] 'statement not found: apply-groups vmx_3', driver close error: %!s() -driver error: netconf rpc [error] 'statement not found: apply-groups vmx_10', driver close error: %!s() -driver error: netconf rpc [error] 'statement not found: apply-groups vmx_8', driver close error: %!s() -driver error: netconf rpc [error] 'statement not found: apply-groups vmx_6', driver close error: %!s() -driver error: netconf rpc [error] 'statement not found: apply-groups vmx_7', driver close error: %!s() -driver error: netconf rpc [error] 'statement not found: groups vmx_3', driver close error: %!s() -driver error: netconf rpc [error] 'statement not found: groups vmx_10', driver close error: %!s() -driver error: netconf rpc [error] 'statement not found: groups vmx_6', driver close error: %!s() -driver error: netconf rpc [error] 'statement not found: groups vmx_5', driver close error: %!s() -driver error: netconf rpc [error] 'statement not found: groups vmx_2', driver close error: %!s() -driver error: netconf rpc [error] 'statement not found: groups vmx_9', driver close error: %!s() -driver error: netconf rpc [error] 'statement not found: groups vmx_7', driver close error: %!s() -driver error: netconf rpc [error] 'statement not found: groups vmx_8', driver close error: %!s() diff --git a/testbed/main.tf b/testbed/main.tf deleted file mode 100644 index 3c624a96..00000000 --- a/testbed/main.tf +++ /dev/null @@ -1,36 +0,0 @@ - -terraform { - required_providers { - junos-vmx = { - source = "juniper/providers/junos-vmx" - version = "22.3" - } - } -} - -provider "junos-vmx" { - host = "10.56.16.246" - port = 22 - username = "regress" - password = "MaRtInI" - sshkey = "" -} - -module "vmx_1" { - source = "./vmx_1" - - providers = {junos-vmx = junos-vmx} - - depends_on = [junos-vmx_destroycommit.commit-main] -} - - -resource "junos-vmx_commit" "commit-main" { - resource_name = "commit" - depends_on = [module.vmx_1] -} - -resource "junos-vmx_destroycommit" "commit-main" { - resource_name = "destroycommit" -} - \ No newline at end of file diff --git a/testbed/terraform.tfstate b/testbed/terraform.tfstate deleted file mode 100644 index 7b4db1a0..00000000 --- a/testbed/terraform.tfstate +++ /dev/null @@ -1,304 +0,0 @@ -{ - "version": 4, - "terraform_version": "1.9.0", - "serial": 63, - "lineage": "0e2b2eda-b9a0-0c2c-cb7f-3f1dd2588fea", - "outputs": {}, - "resources": [ - { - "mode": "managed", - "type": "junos-vmx_commit", - "name": "commit-main", - "provider": "provider[\"juniper/providers/junos-vmx\"]", - "instances": [ - { - "schema_version": 0, - "attributes": { - "id": "10.56.16.246_commit", - "resource_name": "commit" - }, - "sensitive_attributes": [], - "private": "bnVsbA==", - "dependencies": [ - "junos-vmx_destroycommit.commit-main", - "module.vmx_1.junos-vmx_InterfacesInterface.vmx_11", - "module.vmx_1.junos-vmx_InterfacesInterfaceName.best_vmx1", - "module.vmx_1.junos-vmx_InterfacesInterfaceUnit.vmx_2", - "module.vmx_1.junos-vmx_InterfacesInterfaceUnitFamily.vmx_7", - "module.vmx_1.junos-vmx_InterfacesInterfaceUnitFamilyInet.vmx_8", - "module.vmx_1.junos-vmx_InterfacesInterfaceUnitFamilyInetAddress.vmx_3", - "module.vmx_1.junos-vmx_InterfacesInterfaceUnitFamilyInetAddressName.vmx_9", - "module.vmx_1.junos-vmx_InterfacesInterfaceUnitName.vmx_6", - "module.vmx_1.junos-vmx_SystemBackup__Router.vmx_4", - "module.vmx_1.junos-vmx_SystemBackup__RouterAddress.vmx_5", - "module.vmx_1.junos-vmx_SystemHost__Name.vmx_10" - ] - } - ] - }, - { - "mode": "managed", - "type": "junos-vmx_destroycommit", - "name": "commit-main", - "provider": "provider[\"juniper/providers/junos-vmx\"]", - "instances": [ - { - "schema_version": 0, - "attributes": { - "id": "10.56.16.246_destroycommit", - "resource_name": "destroycommit" - }, - "sensitive_attributes": [], - "private": "bnVsbA==" - } - ] - }, - { - "module": "module.vmx_1", - "mode": "managed", - "type": "junos-vmx_InterfacesInterface", - "name": "vmx_11", - "provider": "provider[\"juniper/providers/junos-vmx\"]", - "instances": [ - { - "schema_version": 0, - "attributes": { - "id": "10.56.16.246_vmx_11", - "resource_name": "vmx_11" - }, - "sensitive_attributes": [], - "private": "bnVsbA==", - "dependencies": [ - "junos-vmx_destroycommit.commit-main" - ] - } - ] - }, - { - "module": "module.vmx_1", - "mode": "managed", - "type": "junos-vmx_InterfacesInterfaceName", - "name": "best_vmx1", - "provider": "provider[\"juniper/providers/junos-vmx\"]", - "instances": [ - { - "schema_version": 0, - "attributes": { - "id": "10.56.16.246_best_vmx1", - "name": "", - "resource_name": "best_vmx1" - }, - "sensitive_attributes": [], - "private": "bnVsbA==", - "dependencies": [ - "junos-vmx_destroycommit.commit-main" - ] - } - ] - }, - { - "module": "module.vmx_1", - "mode": "managed", - "type": "junos-vmx_InterfacesInterfaceUnit", - "name": "vmx_2", - "provider": "provider[\"juniper/providers/junos-vmx\"]", - "instances": [ - { - "schema_version": 0, - "attributes": { - "id": "10.56.16.246_vmx_2", - "name": "", - "resource_name": "vmx_2" - }, - "sensitive_attributes": [], - "private": "bnVsbA==", - "dependencies": [ - "junos-vmx_destroycommit.commit-main" - ] - } - ] - }, - { - "module": "module.vmx_1", - "mode": "managed", - "type": "junos-vmx_InterfacesInterfaceUnitFamily", - "name": "vmx_7", - "provider": "provider[\"juniper/providers/junos-vmx\"]", - "instances": [ - { - "schema_version": 0, - "attributes": { - "id": "10.56.16.246_vmx_7", - "name": "", - "name__1": "", - "resource_name": "vmx_7" - }, - "sensitive_attributes": [], - "private": "bnVsbA==", - "dependencies": [ - "junos-vmx_destroycommit.commit-main" - ] - } - ] - }, - { - "module": "module.vmx_1", - "mode": "managed", - "type": "junos-vmx_InterfacesInterfaceUnitFamilyInet", - "name": "vmx_8", - "provider": "provider[\"juniper/providers/junos-vmx\"]", - "instances": [ - { - "schema_version": 0, - "attributes": { - "id": "10.56.16.246_vmx_8", - "name": "", - "name__1": "", - "resource_name": "vmx_8" - }, - "sensitive_attributes": [], - "private": "bnVsbA==", - "dependencies": [ - "junos-vmx_destroycommit.commit-main" - ] - } - ] - }, - { - "module": "module.vmx_1", - "mode": "managed", - "type": "junos-vmx_InterfacesInterfaceUnitFamilyInetAddress", - "name": "vmx_3", - "provider": "provider[\"juniper/providers/junos-vmx\"]", - "instances": [ - { - "schema_version": 0, - "attributes": { - "id": "10.56.16.246_vmx_3", - "name": "", - "name__1": "", - "resource_name": "vmx_3" - }, - "sensitive_attributes": [], - "private": "bnVsbA==", - "dependencies": [ - "junos-vmx_destroycommit.commit-main" - ] - } - ] - }, - { - "module": "module.vmx_1", - "mode": "managed", - "type": "junos-vmx_InterfacesInterfaceUnitFamilyInetAddressName", - "name": "vmx_9", - "provider": "provider[\"juniper/providers/junos-vmx\"]", - "instances": [ - { - "schema_version": 0, - "attributes": { - "id": "10.56.16.246_vmx_9", - "name": "", - "name__1": "", - "name__2": "", - "resource_name": "vmx_9" - }, - "sensitive_attributes": [], - "private": "bnVsbA==", - "dependencies": [ - "junos-vmx_destroycommit.commit-main" - ] - } - ] - }, - { - "module": "module.vmx_1", - "mode": "managed", - "type": "junos-vmx_InterfacesInterfaceUnitName", - "name": "vmx_6", - "provider": "provider[\"juniper/providers/junos-vmx\"]", - "instances": [ - { - "schema_version": 0, - "attributes": { - "id": "10.56.16.246_vmx_6", - "name": "", - "name__1": "", - "resource_name": "vmx_6" - }, - "sensitive_attributes": [], - "private": "bnVsbA==", - "dependencies": [ - "junos-vmx_destroycommit.commit-main" - ] - } - ] - }, - { - "module": "module.vmx_1", - "mode": "managed", - "type": "junos-vmx_SystemBackup__Router", - "name": "vmx_4", - "provider": "provider[\"juniper/providers/junos-vmx\"]", - "instances": [ - { - "schema_version": 0, - "attributes": { - "id": "10.56.16.246_vmx_4", - "resource_name": "vmx_4" - }, - "sensitive_attributes": [], - "private": "bnVsbA==", - "dependencies": [ - "junos-vmx_destroycommit.commit-main" - ] - } - ] - }, - { - "module": "module.vmx_1", - "mode": "managed", - "type": "junos-vmx_SystemBackup__RouterAddress", - "name": "vmx_5", - "provider": "provider[\"juniper/providers/junos-vmx\"]", - "instances": [ - { - "schema_version": 0, - "attributes": { - "address": "", - "id": "10.56.16.246_vmx_5", - "resource_name": "vmx_5" - }, - "sensitive_attributes": [], - "private": "bnVsbA==", - "dependencies": [ - "junos-vmx_destroycommit.commit-main" - ] - } - ] - }, - { - "module": "module.vmx_1", - "mode": "managed", - "type": "junos-vmx_SystemHost__Name", - "name": "vmx_10", - "provider": "provider[\"juniper/providers/junos-vmx\"]", - "instances": [ - { - "schema_version": 0, - "attributes": { - "host__name": "", - "id": "10.56.16.246_vmx_10", - "resource_name": "vmx_10" - }, - "sensitive_attributes": [], - "private": "bnVsbA==", - "dependencies": [ - "junos-vmx_destroycommit.commit-main" - ] - } - ] - } - ], - "check_results": null -} diff --git a/testbed/terraform.tfstate.backup b/testbed/terraform.tfstate.backup deleted file mode 100644 index 58d3065a..00000000 --- a/testbed/terraform.tfstate.backup +++ /dev/null @@ -1,306 +0,0 @@ -{ - "version": 4, - "terraform_version": "1.9.0", - "serial": 50, - "lineage": "0e2b2eda-b9a0-0c2c-cb7f-3f1dd2588fea", - "outputs": {}, - "resources": [ - { - "mode": "managed", - "type": "junos-vmx_commit", - "name": "commit-main", - "provider": "provider[\"juniper/providers/junos-vmx\"]", - "instances": [ - { - "status": "tainted", - "schema_version": 0, - "attributes": { - "id": "10.56.16.246_commit", - "resource_name": "commit" - }, - "sensitive_attributes": [], - "private": "bnVsbA==", - "dependencies": [ - "junos-vmx_destroycommit.commit-main", - "module.vmx_1.junos-vmx_InterfacesInterface.vmx_11", - "module.vmx_1.junos-vmx_InterfacesInterfaceName.best_vmx", - "module.vmx_1.junos-vmx_InterfacesInterfaceName.vmx_1", - "module.vmx_1.junos-vmx_InterfacesInterfaceUnit.vmx_2", - "module.vmx_1.junos-vmx_InterfacesInterfaceUnitFamily.vmx_7", - "module.vmx_1.junos-vmx_InterfacesInterfaceUnitFamilyInet.vmx_8", - "module.vmx_1.junos-vmx_InterfacesInterfaceUnitFamilyInetAddress.vmx_3", - "module.vmx_1.junos-vmx_InterfacesInterfaceUnitFamilyInetAddressName.vmx_9", - "module.vmx_1.junos-vmx_InterfacesInterfaceUnitName.vmx_6", - "module.vmx_1.junos-vmx_SystemBackup__Router.vmx_4", - "module.vmx_1.junos-vmx_SystemBackup__RouterAddress.vmx_5", - "module.vmx_1.junos-vmx_SystemHost__Name.vmx_10" - ] - } - ] - }, - { - "mode": "managed", - "type": "junos-vmx_destroycommit", - "name": "commit-main", - "provider": "provider[\"juniper/providers/junos-vmx\"]", - "instances": [ - { - "schema_version": 0, - "attributes": { - "id": "10.56.16.246_destroycommit", - "resource_name": "destroycommit" - }, - "sensitive_attributes": [], - "private": "bnVsbA==" - } - ] - }, - { - "module": "module.vmx_1", - "mode": "managed", - "type": "junos-vmx_InterfacesInterface", - "name": "vmx_11", - "provider": "provider[\"juniper/providers/junos-vmx\"]", - "instances": [ - { - "schema_version": 0, - "attributes": { - "id": "10.56.16.246_vmx_11", - "resource_name": "vmx_11" - }, - "sensitive_attributes": [], - "private": "bnVsbA==", - "dependencies": [ - "junos-vmx_destroycommit.commit-main" - ] - } - ] - }, - { - "module": "module.vmx_1", - "mode": "managed", - "type": "junos-vmx_InterfacesInterfaceName", - "name": "best_vmx", - "provider": "provider[\"juniper/providers/junos-vmx\"]", - "instances": [ - { - "schema_version": 0, - "attributes": { - "id": "10.56.16.246_best_vmx", - "name": "", - "resource_name": "best_vmx" - }, - "sensitive_attributes": [], - "private": "bnVsbA==", - "dependencies": [ - "junos-vmx_destroycommit.commit-main" - ] - } - ] - }, - { - "module": "module.vmx_1", - "mode": "managed", - "type": "junos-vmx_InterfacesInterfaceUnit", - "name": "vmx_2", - "provider": "provider[\"juniper/providers/junos-vmx\"]", - "instances": [ - { - "schema_version": 0, - "attributes": { - "id": "10.56.16.246_vmx_2", - "name": "", - "resource_name": "vmx_2" - }, - "sensitive_attributes": [], - "private": "bnVsbA==", - "dependencies": [ - "junos-vmx_destroycommit.commit-main" - ] - } - ] - }, - { - "module": "module.vmx_1", - "mode": "managed", - "type": "junos-vmx_InterfacesInterfaceUnitFamily", - "name": "vmx_7", - "provider": "provider[\"juniper/providers/junos-vmx\"]", - "instances": [ - { - "schema_version": 0, - "attributes": { - "id": "10.56.16.246_vmx_7", - "name": "", - "name__1": "", - "resource_name": "vmx_7" - }, - "sensitive_attributes": [], - "private": "bnVsbA==", - "dependencies": [ - "junos-vmx_destroycommit.commit-main" - ] - } - ] - }, - { - "module": "module.vmx_1", - "mode": "managed", - "type": "junos-vmx_InterfacesInterfaceUnitFamilyInet", - "name": "vmx_8", - "provider": "provider[\"juniper/providers/junos-vmx\"]", - "instances": [ - { - "schema_version": 0, - "attributes": { - "id": "10.56.16.246_vmx_8", - "name": "", - "name__1": "", - "resource_name": "vmx_8" - }, - "sensitive_attributes": [], - "private": "bnVsbA==", - "dependencies": [ - "junos-vmx_destroycommit.commit-main" - ] - } - ] - }, - { - "module": "module.vmx_1", - "mode": "managed", - "type": "junos-vmx_InterfacesInterfaceUnitFamilyInetAddress", - "name": "vmx_3", - "provider": "provider[\"juniper/providers/junos-vmx\"]", - "instances": [ - { - "schema_version": 0, - "attributes": { - "id": "10.56.16.246_vmx_3", - "name": "", - "name__1": "", - "resource_name": "vmx_3" - }, - "sensitive_attributes": [], - "private": "bnVsbA==", - "dependencies": [ - "junos-vmx_destroycommit.commit-main" - ] - } - ] - }, - { - "module": "module.vmx_1", - "mode": "managed", - "type": "junos-vmx_InterfacesInterfaceUnitFamilyInetAddressName", - "name": "vmx_9", - "provider": "provider[\"juniper/providers/junos-vmx\"]", - "instances": [ - { - "schema_version": 0, - "attributes": { - "id": "10.56.16.246_vmx_9", - "name": "", - "name__1": "", - "name__2": "", - "resource_name": "vmx_9" - }, - "sensitive_attributes": [], - "private": "bnVsbA==", - "dependencies": [ - "junos-vmx_destroycommit.commit-main" - ] - } - ] - }, - { - "module": "module.vmx_1", - "mode": "managed", - "type": "junos-vmx_InterfacesInterfaceUnitName", - "name": "vmx_6", - "provider": "provider[\"juniper/providers/junos-vmx\"]", - "instances": [ - { - "schema_version": 0, - "attributes": { - "id": "10.56.16.246_vmx_6", - "name": "", - "name__1": "", - "resource_name": "vmx_6" - }, - "sensitive_attributes": [], - "private": "bnVsbA==", - "dependencies": [ - "junos-vmx_destroycommit.commit-main" - ] - } - ] - }, - { - "module": "module.vmx_1", - "mode": "managed", - "type": "junos-vmx_SystemBackup__Router", - "name": "vmx_4", - "provider": "provider[\"juniper/providers/junos-vmx\"]", - "instances": [ - { - "schema_version": 0, - "attributes": { - "id": "10.56.16.246_vmx_4", - "resource_name": "vmx_4" - }, - "sensitive_attributes": [], - "private": "bnVsbA==", - "dependencies": [ - "junos-vmx_destroycommit.commit-main" - ] - } - ] - }, - { - "module": "module.vmx_1", - "mode": "managed", - "type": "junos-vmx_SystemBackup__RouterAddress", - "name": "vmx_5", - "provider": "provider[\"juniper/providers/junos-vmx\"]", - "instances": [ - { - "schema_version": 0, - "attributes": { - "address": "", - "id": "10.56.16.246_vmx_5", - "resource_name": "vmx_5" - }, - "sensitive_attributes": [], - "private": "bnVsbA==", - "dependencies": [ - "junos-vmx_destroycommit.commit-main" - ] - } - ] - }, - { - "module": "module.vmx_1", - "mode": "managed", - "type": "junos-vmx_SystemHost__Name", - "name": "vmx_10", - "provider": "provider[\"juniper/providers/junos-vmx\"]", - "instances": [ - { - "schema_version": 0, - "attributes": { - "host__name": "", - "id": "10.56.16.246_vmx_10", - "resource_name": "vmx_10" - }, - "sensitive_attributes": [], - "private": "bnVsbA==", - "dependencies": [ - "junos-vmx_destroycommit.commit-main" - ] - } - ] - } - ], - "check_results": null -} From 8b143fcfedc451c805bb6e9c5f1902c47fc74a10 Mon Sep 17 00:00:00 2001 From: Natalie Date: Tue, 19 Nov 2024 09:23:21 -0800 Subject: [PATCH 16/19] changes to tf file --- .../two_spine_two_leaf/testbed/vmx_1/main.tf | 534 +++++++++++++++++- 1 file changed, 508 insertions(+), 26 deletions(-) diff --git a/Samples/two_spine_two_leaf/testbed/vmx_1/main.tf b/Samples/two_spine_two_leaf/testbed/vmx_1/main.tf index 7d269698..e00f101d 100644 --- a/Samples/two_spine_two_leaf/testbed/vmx_1/main.tf +++ b/Samples/two_spine_two_leaf/testbed/vmx_1/main.tf @@ -8,62 +8,544 @@ terraform { } } -resource "junos-vmx_InterfacesInterfaceName" "vmx_1" { +resource "junos-vmx_SystemBackup-RouterAddress" "vmx_1" { resource_name = "vmx_1" - name = "/interfaces/interface/vmx_1" + host-name = "Spine1" + address = "10.56.31.254" } -resource "junos-vmx_InterfacesInterfaceUnit" "vmx_2" { +resource "junos-vmx_InterfacesInterfaceUnitFamilyInetAddressName" "vmx_2" { resource_name = "vmx_2" - name = "/interfaces/interface/name" + name = "fxp0" + name__1 = "0" + name__2 = "10.56.16.246/19" } -resource "junos-vmx_InterfacesInterfaceUnitFamilyInetAddress" "vmx_3" { +resource "junos-vmx_GroupsSystemRoot-authentication" "vmx_3"{ resource_name = "vmx_3" - name = "/interfaces/interface/name" - name__1 = "/interfaces/interface/unit/name" + encrypted-password = "1$ZUlES4dp$OUwWo1g7cLoV/aMWpHUnC/" } -resource "junos-vmx_SystemBackup__Router" "vmx_4" { +resource "junos-vmx_GroupsSystemLoginClass" "vmx_4"{ resource_name = "vmx_4" + name = "wheel" + permissions = "snmp" } -resource "junos-vmx_SystemBackup__RouterAddress" "vmx_5" { +resource "junos-vmx_GroupsSystemLoginUserUndocumented" "vmx_5"{ resource_name = "vmx_5" - address = "/system/backup-router/address" + name = "regress" + uid = "928" + class = "superuser" + shell = "csh" } -resource "junos-vmx_InterfacesInterfaceUnitName" "vmx_6" { +resource "junos-vmx_GroupsSystemLoginUserAuthentication" "vmx_6"{ resource_name = "vmx_6" - name = "/interfaces/interface/name" - name__1 = "/interfaces/interface/unit/name" + encrypted-password = "$1$kPU..$w.4FGRAGanJ8U4Yq6sbj7." } -resource "junos-vmx_InterfacesInterfaceUnitFamily" "vmx_7" { +resource "junos-vmx_GroupsSystemLoginUser" "vmx_7"{ resource_name = "vmx_7" - name = "/interfaces/interface/name" - name__1 = "/interfaces/interface/unit/name" + name = "remote" + uid = "2000" + class = "super-user" } -resource "junos-vmx_InterfacesInterfaceUnitFamilyInet" "vmx_8" { +resource "junos-vmx_GroupsSystemServicesSsh" "vmx_8"{ resource_name = "vmx_8" - name = "/interfaces/interface/name" - name__1 = "/interfaces/interface/unit/name" + root-login = "allow" } -resource "junos-vmx_InterfacesInterfaceUnitFamilyInetAddressName" "vmx_9" { +resource "junos-vmx_GroupsSystem" "vmx_9"{ resource_name = "vmx_9" - name = "/interfaces/interface/name" - name__1 = "/interfaces/interface/unit/name" - name__2 = "/interfaces/interface/unit/family/inet/address/name" + domain-name = "englab.juniper.net" + domain-search = "englab.juniper.net" + domain-search__1 = "juniper.net" + domain-search__2 = "jnpr.net" + time-zone = "American/Los_Angeles" + authentication-order = "password + authentication_order__1 = "radius" } -resource "junos-vmx_SystemHost__Name" "vmx_10" { +resource "junos-vmx_GroupsSystemName-server" "vmx_10"{ resource_name = "vmx_10" - host__name = "/host-name" + name = "10.49.32.95" } -resource "junos-vmx_InterfacesInterface" "vmx_11" { +resource "junos-vmx_GroupsSystemName-server" "vmx_11"{ resource_name = "vmx_11" + name = "10.49.32.97" } +resource "junos-vmx_GroupsSystemRadius-server" "vmx_12"{ + resource_name = "vmx_12" + name = "10.48.144.16" + secret = "$9$TQ/t1IcSrKAt0IRheK8X7VYgaZDm5zNdiqmTn6" +} + +resource "junos-vmx_GroupsSystemRadius-server" "vmx_13"{ + resource_name = "vmx_13" + name = "10.48.144.17" + secret = "$9$GqUqf3nCApOPfQn690ORhSeWL7-boZDylsgoGHk" +} + +resource "junos-vmx_GroupsSystemSyslogHostContents "vmx_14"{ + resource_name = "vmx_14" + name = "log" + name__1 = "kernel" +} + +resource "junos-vmx_GroupsSystemSyslogHostContents "vmx_15"{ + resource_name = "vmx_15" + name = "any" +} + +resource "junos-vmx_GroupsSystemSyslogHostContents "vmx_16"{ + resource_name = "vmx_16" + name = "pfe" +} + +resource "junos-vmx_GroupsSystemSyslogHostContents "vmx_17"{ + resource_name = "vmx_17" + name = "interactive-commands" +} + +resource "junos-vmx_GroupsSystemSyslogFileContents "vmx_18"{ + resource_name = "vmx_18" + name = "messages" + name__1 = "kernel" +} + +resource "junos-vmx_GroupsSystemSyslogFileContents "vmx_19"{ + resource_name = "vmx_19" + name = "any" +} + +resource "junos-vmx_GroupsSystemSyslogFileContents "vmx_20"{ + resource_name = "vmx_20" + name = "authorization" +} + +resource "junos-vmx_GroupsSystemSyslogFileContents "vmx_21"{ + resource_name = "vmx_21" + name = "pfe" +} + +resource "junos-vmx_GroupsSystemSyslogFileContents "vmx_22"{ + resource_name = "vmx_22" + name = "security" + name__1 = "interactive-commands" +} + +resource "junos-vmx_GroupsSystemProcessDaemon-process" "vmx_23"{ + resource_name = "vmx_23" + name = "snmp" +} + +resource "junos-vmx_GroupsSystemProcessDaemon-process" "vmx_24"{ + resource_name = "vmx_24" + name = "inet-process" +} + +resource "junos-vmx_GroupsSystemProcessDaemon-process" "vmx_25"{ + resource_name = "vmx_25" + name = "mib-process" +} + +resource "junos-vmx_GroupsSystemNtpUndocumented" "vmx_26"{ + resource_name = "vmx_26" + boot-server = "66.129.255.75" +} + +resource "junos-vmx_GroupsSystemNtpServer" "vmx_27"{ + resource_name = "vmx_27" + name = "66.129.255.75" +} + +resource "junos-vmx_GroupsSystemNtpServer" "vmx_28"{ + resource_name = "vmx_28" + name = "172.29.131.60" +} + +resource "junos-vmx_GroupsSystemNtpServer" "vmx_29"{ + resource_name = "vmx_29" + name = "172.29.135.60" +} + +resource "junos-vmx_GroupsSnmpCommunity" "vmx_30"{ + resource_name = "vmx_30" + location = "Systest lab" + contact = "Jay Lloyd" + interface = "fxp0.0" + name = "public" + authorization = "read-only" +} + +resource "junos-vmx_GroupsSnmpCommunity" "vmx_31"{ + resource_name = "vmx_31" + name = "private" + authorization = "read-write" +} + +resource "junos-vmx_GroupsRouting-optionsStaticRoute" "vmx_32"{ + resource_name = "vmx_32" + name = "172.16.0.0/12" + next-hop = "10.56.31.254" +} + +resource "junos-vmx_GroupsRouting-optionsStaticRoute" "vmx_33"{ + resource_name = "vmx_33" + name = "192.168.0.0/16" + next-hop = "10.56.31.254" +} + +resource "junos-vmx_GroupsRouting-optionsStaticRoute" "vmx_34"{ + resource_name = "vmx_34" + name = "10.0.0.0/8" + next-hop = "10.56.31.254" +} + +resource "junos-vmx_GroupsRouting-optionsStaticRoute" "vmx_35"{ + resource_name = "vmx_35" + name = "66.129.0.0/16" + next-hop = "10.56.31.254" +} + +resource "junos-vmx_Groups" "vmx_36"{ + resource_name = "vmx_36" + apply-groups = "global" +} + +resource "junos-vmx_Groups" "vmx_37"{ + resource_name = "vmx_37" + apply-groups = "member0" +} + +resource "junos-vmx_SystemServicesExtension-serviceRequest-responseGrpcSsl" "vmx_38"{ + resource_name = "vmx_38" + host-name = "spine1" + port = "32767" + local-certificate = "aos_grpc" +} + +resource "junos-vmx_SystemServicesExtension-serviceRequest-responseGrpc" "vmx_39"{ + resource_name = "vmx_39" + routing-instance = "mgmt_junos" +} + +resource "junos-vmx_ChasisFpcPic" "vmx_40"{ + resource_name = "vmx_40" + name = "0" + name__1 = "0" + number-of-ports = "96" +} + +resource "junos-vmx_SecurityCertificateLocal" "vmx_41"{ + resource_name = "vmx_41" + name = "aos_grpc" + certificate = "-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDS8UeT5MDK8uMl\nVP8JjNmsMqJ6u3loR/5ct5hhfqATxVVoSXhQf/AtIBpd6GQySo74tzqjFzhje3sP\nGZ99R1/xqiPX/VYFAbq1LjSSFKVNQgc87zFEO0LoHuP/3jHWmIL5Z8LR4971vKyM\ntCEQtfEoDDzJFP+Tx/UrHGRms/jkI7f395F47C+0Ync4+6NNoE/4HUZRSimhad8U\nSdPr2phLJZTtW2JnAh7WJFcRDgBzMKPqIWikSs1ruF4RerWLVmV4t8hswD6IR5XK\noEhgZoHVFjUyBik86BClqr3c56ZeZ0b6PKo8o9W14LM5sHabd8FKxO4pC4cPVw58\nvW0R0kz1AgMBAAECggEAG+zdMPMDotpsv7B04urGlklNwTm4ZNnDDrsvbRi6UGO7\nXsb7Ko0FWrP5SZ1ORmoga0S2eojEakcaj3Ew8ADW7sM7Y4iiLp9//CRVyVD6YTPw\niVyRBRtjTB9qx6C+sE4YaLQX0nl8NsP3g9kE15V+i3KzSVuCSioahs6HbCE/PdRP\nJl0IqLReehnjtoXmffaHbyyh47B3HVKQcUQB5T3WVnijerhMAQ23FCi/bIy+f/sV\nOp9eWDeWZ34t6IxX8mrB5ANc1gYd/Pa2MqY6YicDaFGpxBDQCmPnpjZV7GIsP1F2\nby3vnimcwM4pRyWaIJPv/oWuBrZiGRfRP+BgClOLMQKBgQDuUbTpjbt7CJTK2ENQ\nRvQaQBEGWuaDPLoAjAOUbwtrBeZZp8oc1huSMOLFCxjlJ5yeeCcN1WFf0r+5RcV1\n0BvYAmKGoE0LigkRtVJNNge7ZzO5xtZo4aqnXi+LXFZSY0HIDSKtY7FQypfLVMug\ni8DqLe7b5YXQnSVRa47BYUEMDwKBgQDil56gqvQQbEtRfCwyVjFNgpRr2+G84jfI\ns9Agw4PjYGxg0rvqw3u7NfZIGam3L+nKf+MxZKF49Ir0no4q4JA7Hahw2bMrWTjg\nGppulZ2E8bBgk1uJQu2Qoz9ajRNf+cw3Q9caHXwNZ5lWrsCusbQ6EIMVFbdCjywf\nRj8ULoOiuwKBgQCzXaGIypiZX/sEtEHtcImWHDP0EYQ+r/zaHocvN2hjk1wsjEFs\n9KRpogt6/AAvsGGLT6ktGzUfdrG/0shsBEaAjEL1Sj7SeYCb6FlaLVkibekbYJDM\n/VOAhj3IaKW7emLvGxvHXin9QY1/hoF/gs+eMRX+QMA3I58LqaUW3IildwKBgHTn\nbLvP92ORu7oqqlK+DWnD+Pc81lYxED7IJpUAykbBNKkvkCwq9uc7i/je5KTSX3hO\nStTs6jIRWK+kLg0JFuCpCIJQjxPKUIGuuAZdwosYdrscy5khopeA4erB5kEaC7Zn\nlc6vb5Uq4f3K4zY+EJH0euyh6463dzgbcefjp56JAoGBAI7KjnGOyvlNEy6eUYC0\nPyCT4mfrqrND5vdHDA2dj8N/iYfL7Y+CKU7UuP/YTh9iI6FeQDLV0LwV0TVKOV+1\nPpyNf7UoBAMFs8i/vB/+S8eybXcThBr24MVJTAJJ111d+nveCv3qSc4MxFyJNvuG\nFPdib3rZ5vnSAjZjf6HNf3C1\n-----END PRIVATE KEY-----\n-----BEGIN CERTIFICATE-----\nMIIDUjCCAjqgAwIBAgICA+gwDQYJKoZIhvcNAQELBQAwVjELMAkGA1UEBhMCVVMx\nCzAJBgNVBAgMAkNBMRMwEQYDVQQHDApNZW5sbyBQYXJrMRMwEQYDVQQKDApBcHN0\ncmEgSW5jMRAwDgYDVQQDDAdBT1NfVExTMB4XDTI0MDkyNDA4MzYzNloXDTM0MDky\nMjA4MzYzNlowVjELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMRMwEQYDVQQHDApN\nZW5sbyBQYXJrMRMwEQYDVQQKDApBcHN0cmEgSW5jMRAwDgYDVQQDDAdBT1NfVExT\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0vFHk+TAyvLjJVT/CYzZ\nrDKiert5aEf+XLeYYX6gE8VVaEl4UH/wLSAaXehkMkqO+Lc6oxc4Y3t7DxmffUdf\n8aoj1/1WBQG6tS40khSlTUIHPO8xRDtC6B7j/94x1piC+WfC0ePe9bysjLQhELXx\nKAw8yRT/k8f1KxxkZrP45CO39/eReOwvtGJ3OPujTaBP+B1GUUopoWnfFEnT69qY\nSyWU7VtiZwIe1iRXEQ4AczCj6iFopErNa7heEXq1i1ZleLfIbMA+iEeVyqBIYGaB\n1RY1MgYpPOgQpaq93OemXmdG+jyqPKPVteCzObB2m3fBSsTuKQuHD1cOfL1tEdJM\n9QIDAQABoyowKDAPBgNVHRMECDAGAQH/AgEAMBUGA1UdEQQOMAyCCmFwc3RyYS5j\nb20wDQYJKoZIhvcNAQELBQADggEBAKmUGAQgU97CHFDlAGLVVF9nxKmfGJwoCjAz\n+J4q9cvZE8F0S5yEHQ/iLOu6lIJy68TTEuvSQZDxGo6XGJnD86UEO6tAGKxkrvWx\nyyLoZEPdL6Ob2vPaq9jDNbXjcTCwzXvG6y4pX9384mPHN99RV9igiO1LQQzVov1v\nZ5TREif2m80JDvOxAb4aktEYr9nELPHJaPxeUHB9Nv4MGW3buwXe/LPF2hplw3FX\nDQMI123sD5gLx8U0xSwyatKJ9YbK7Ia0Iwh/EFAnIv/pu5DbH1j83yUcy4/vSsE2\nY61lFTJtIVaBUPH8p1zEvAr7qxmfwMTboe1rQ0Bkv3aPfMtDzJI=\n-----END CERTIFICATE-----\n" +} + +resource "junos-vmx_InterfacesInterfaceUnitFamilyInetAddressName" "vmx_42" { + resource_name = "vmx_42" + name = "ge-0/0/0" + description = "facing_mayank-rack-001-leaf3:ge-0/0/0" + mtu = "9192" + name__1 = "0" + mtu__1 = "9170" + name__2 = "10.10.10.4/31" +} + +resource "junos-vmx_InterfacesInterfaceUnitFamilyInetAddressName" "vmx_43" { + resource_name = "vmx_43" + name = "ge-0/0/1" + description = "facing_mayank-rack-001-leaf4:ge-0/0/0" + mtu = "9192" + name__1 = "0" + mtu__1 = "9170" + name__2 = "10.10.10.6/31" +} + +resource "junos-vmx_InterfacesInterfaceUnitFamilyInetAddressName" "vmx_44" { + resource_name = "vmx_44" + name = "ge-0/0/2" + description = "facing_mayank-rack-001-leaf4:ge-0/0/0" + mtu = "9192" + name__1 = "0" + mtu__1 = "9170" + name__2 = "10.10.10.6/31" +} + +resource "junos-vmx_InterfacesInterfaceUnitFamilyInet" "vmx_45" { + resource_name = "vmx_45" + name = "ge-0/0/3" + description = "facing_mayank-rack-001-leaf2:ge-0/0/0" + mtu = "9192" + name__1 = "0" + mtu__1 = "9170" + name__2 = "10.10.10.2/31" +} + +resource "junos-vmx_InterfacesInterfaceUnitFamilyInet" "vmx_46" { + resource_name = "vmx_46" + name = "ge-0/0/4" + name__1 = "0" +} + +resource "junos-vmx_InterfacesInterfaceUnitFamilyInet" "vmx_47" { + resource_name = "vmx_47" + name = "ge-0/0/5" + name__1 = "0" +} + +resource "junos-vmx_InterfacesInterfaceUnitFamilyInet" "vmx_48" { + resource_name = "vmx_48" + name = "ge-0/0/6" + name__1 = "0" +} + +resource "junos-vmx_InterfacesInterfaceUnitFamilyInet" "vmx_49" { + resource_name = "vmx_49" + name = "ge-0/0/7" + name__1 = "0" +} + +resource "junos-vmx_InterfacesInterfaceUnitFamilyInet" "vmx_50" { + resource_name = "vmx_50" + name = "ge-0/0/8" + name__1 = "0" +} + +resource "junos-vmx_InterfacesInterfaceUnitFamilyInet" "vmx_51" { + resource_name = "vmx_51" + name = "ge-0/0/9" + name__1 = "0" +} + +resource "junos-vmx_InterfacesInterfaceUnitFamilyInet" "vmx_52" { + resource_name = "vmx_52" + name = "ge-0/0/10" + name__1 = "0" +} + +resource "junos-vmx_InterfacesInterfaceUnitFamilyInet" "vmx_53" { + resource_name = "vmx_53" + name = "ge-0/0/11" + name__1 = "0" +} + +resource "InterfacesInterfaceUnitFamilyInet" "vmx_54" { + resource_name = "vmx_54" + name = "ge-0/0/12" + name__1 = "0" +} + +resource "junos-vmx_InterfacesInterfaceUnitFamilyInet" "vmx_55" { + resource_name = "vmx_55" + name = "ge-0/0/13" + name__1 = "0" +} + +resource "junos-vmx_InterfacesInterfaceUnitFamilyInet" "vmx_56" { + resource_name = "vmx_56" + name = "ge-0/0/14" + name__1 = "0" +} + +resource "junos-vmx_InterfacesInterfaceUnitFamilyInetAddressName" "vmx_57" { + resource_name = "vmx_57" + name = "lo0" + name__1 = "0" + name__2 = "10.10.11.0/32" +} + +resource "junos-vmx_Policy-optionsPolicy-statementTermFrom" "vmx_58" { + resource_name = "vmx_58" + name = "AllPodNetworks" + name__1 = "AllPodNetworks-10" + family = "inet" + protocols = "direct" +} + +resource "junos-vmx_Policy-optionsPolicy-statementTermThenCommunity" "vmx_59" { + resource_name = "vmx_59" + community-name = "DEFAULT_DIRECT_V4" +} + +resource "junos-vmx_Policy-optionsPolicy-statementTerm" "vmx_60" { + resource_name = "vmx_60" + name = "AllPodNetworks-100" +} + +resource "junos-vmx_Policy-optionsPolicy-statementTermFrom" "vmx_61" { + resource_name = "vmx_61" + name = "BGP-AOS-Policy" + name__1 = "BGP-AOS-Policy-10" + policy = "AllPodNetworks" +} + +resource "junos-vmx_Policy-optionsPolicy-statementTermFrom" "vmx_62" { + resource_name = "vmx_62" + name = "BGP-AOS-Policy-20" + protocol = "bgp" +} + +resource "junos-vmx_Policy-optionsPolicy-statementTerm" "vmx_63" { + resource_name = "vmx_63" + name = "BGP-AOS-Policy-100" +} + +resource "junos-vmx_Policy-optionsPolicy-statement" "vmx_64" { + resource_name = "vmx_64" + name = "PFE-LB" +} + +resource "junos-vmx_Policy-optionsPolicy-statementTermThenCommunity" "vmx_65" { + resource_name = "vmx_65" + name = "SPINE_TO_LEAF_EVPN_OUT" + name__1 = "SPINE_TO_LEAF_EVPN_OUT-10" + community-name = "FROM_SPINE_EVPN_TIER" +} + +resource "junos-vmx_Policy-optionsPolicy-statementTermThenCommunity" "vmx_66" { + resource_name = "vmx_66" + name = "SPINE_TO_LEAF_FABRIC_OUT" + name__1 = "SPINE_TO_LEAF_FABRIC_OUT-10" + community-name = "FROM_SPINE_FABRIC_TIER" +} + +resource "junos-vmx_Policy-optionsCommunity" "vmx_67"{ + resource_name = "vmx_67" + name = "DEFAULT_DIRECT_V4" + members = "1:20007" + members__1 = "21001:26000" +} + +resource "junos-vmx_Policy-optionsCommunity" "vmx_68"{ + resource_name = "vmx_68" + name = "FROM_SPINE_EVPN_TIER" + members = "0:14" +} + +resource "junos-vmx_Policy-optionsCommunity" "vmx_69"{ + resource_name = "vmx_68" + name = "FROM_SPINE_FABRIC_TIER" + members = "0:15" +} + +resource "junos-vmx_Routing-instancesInstanceRouting-optionsStaticRoute" "vmx_70"{ + resource_name = "vmx_70" + name = "mgmt_junos" + name__1 = "0.0.0.0/0" + nexthop = "10.56.31.254" +} + +resource "junos-vmx_Routing-optionsAutonomous-system" "vmx_71"{ + resource_name = "vmx_71" + router-id = "10.10.11.0" + as-number = "65001" +} + +resource "junos-vmx_Routing-optionsForwarding-table" "vmx_72"{ + resource_name = "vmx_72" + export = "PFE-LB" +} + +resource "junos-vmx_ProtocolsBgpGroupNeighbor" "vmx_73"{ + resource_name = "vmx_73" + name = "l3clos-s" + type = "external" + name__1 = "10.10.10.1" + description = "facing_mayank-rack-001-leaf1" + local-address = "10.10.10.0" +} + +resource "junos-vmx_ProtocolsBgpGroupNeighbor" "vmx_74"{ + resource_name = "vmx_74" + name = "10.10.10.3" + description = "facing_mayank-rack-001-leaf2" + local-address = "10.10.10.2" + export = "( SPINE_TO_LEAF_FABRIC_OUT && BGP-AOS-Policy )" + peer-as = "65004" +} + +resource "junos-vmx_ProtocolsBgpGroupNeighbor" "vmx_75"{ + resource_name = "vmx_75" + name = "10.10.10.5" + description = "facing_mayank-rack-001-leaf3" + local-address = "10.10.10.4" + export = "( SPINE_TO_LEAF_FABRIC_OUT && BGP-AOS-Policy )" + peer-as = "65005" +} + +resource "junos-vmx_ProtocolsBgpGroupNeighbor" "vmx_76"{ + resource_name = "vmx_76" + name = "10.10.10.7" + description = "facing_mayank-rack-001-leaf4" + local-address = "10.10.10.6" + export = "( SPINE_TO_LEAF_FABRIC_OUT && BGP-AOS-Policy )" + peer-as = "65006" +} + +resource "junos-vmx_ProtocolsBgpGroupMultihop" "vmx_77"{ + resource_name = "vmx_77" + name = "l3clos-s-evpn" + type = "external" + ttl = "1" +} + +resource "junos-vmx_ProtocolsBgpGroupFamilyEvpnSignalingLoops" "vmx_78"{ + resource_name = "vmx_78" + loops = "2" +} + +resource "junos-vmx_ProtocolsBgpGroupBfd-liveness-detection" "vmx_79"{ + resource_name = "vmx_79" + minimum-interval = "3000" + multiplier = "3" +} + +resource "junos-vmx_ProtocolsBgpGroupNeighbor" "vmx_80"{ + resource_name = "vmx_80" + name = "10.10.11.2" + description = "facing_mayank-rack-001-leaf1-evpn-overlay" + local-address = "10.10.11.0" + export = "( SPINE_TO_LEAF_EVPN_OUT )" + peer-as = 65003 +} + +resource "junos-vmx_ProtocolsBgpGroupNeighbor" "vmx_81"{ + resource_name = "vmx_81" + name = "10.10.11.3" + description = "facing_mayank-rack-001-leaf2-evpn-overlay" + local-address = "10.10.11.0" + export = "( SPINE_TO_LEAF_EVPN_OUT )" + peer-as = 65004 +} + +resource "junos-vmx_ProtocolsBgpGroupNeighbor" "vmx_82"{ + resource_name = "vmx_82" + name = "10.10.11.4" + description = "facing_mayank-rack-001-leaf3-evpn-overlay" + local-address = "10.10.11.0" + export = "( SPINE_TO_LEAF_EVPN_OUT )" + peer-as = 65005 +} + +resource "junos-vmx_ProtocolsBgpGroupNeighbor" "vmx_83"{ + resource_name = "vmx_83" + name = "10.10.11.5" + description = "facing_mayank-rack-001-leaf4-evpn-overlay" + local-address = "10.10.11.0" + export = "( SPINE_TO_LEAF_EVPN_OUT )" + peer-as = 65006 +} + +resource "junos-vmx_ProtocolsLldpInterface" "vmx_84"{ + resource_name = "vmx_84" + port-id-subtype = "interface-name" + port-description-type = "interface-description" + neighbour-port-info-display = "port-id" + name = "all" +} \ No newline at end of file From c87f3652f2d2ecf36c5240676aecb271ef6fccc2 Mon Sep 17 00:00:00 2001 From: Natalie Date: Wed, 27 Nov 2024 09:50:47 -0800 Subject: [PATCH 17/19] main.tf progress --- .../two_spine_two_leaf/testbed/vmx_1/main.tf | 44 +++++++++---------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/Samples/two_spine_two_leaf/testbed/vmx_1/main.tf b/Samples/two_spine_two_leaf/testbed/vmx_1/main.tf index e00f101d..62a1bce3 100644 --- a/Samples/two_spine_two_leaf/testbed/vmx_1/main.tf +++ b/Samples/two_spine_two_leaf/testbed/vmx_1/main.tf @@ -64,7 +64,7 @@ resource "junos-vmx_GroupsSystem" "vmx_9"{ domain-search__1 = "juniper.net" domain-search__2 = "jnpr.net" time-zone = "American/Los_Angeles" - authentication-order = "password + authentication-order = "password" authentication_order__1 = "radius" } @@ -90,49 +90,49 @@ resource "junos-vmx_GroupsSystemRadius-server" "vmx_13"{ secret = "$9$GqUqf3nCApOPfQn690ORhSeWL7-boZDylsgoGHk" } -resource "junos-vmx_GroupsSystemSyslogHostContents "vmx_14"{ +resource "junos-vmx_GroupsSystemSyslogHostContents" "vmx_14"{ resource_name = "vmx_14" name = "log" name__1 = "kernel" } -resource "junos-vmx_GroupsSystemSyslogHostContents "vmx_15"{ +resource "junos-vmx_GroupsSystemSyslogHostContents" "vmx_15"{ resource_name = "vmx_15" name = "any" } -resource "junos-vmx_GroupsSystemSyslogHostContents "vmx_16"{ +resource "junos-vmx_GroupsSystemSyslogHostContents" "vmx_16"{ resource_name = "vmx_16" name = "pfe" } -resource "junos-vmx_GroupsSystemSyslogHostContents "vmx_17"{ +resource "junos-vmx_GroupsSystemSyslogHostContents" "vmx_17"{ resource_name = "vmx_17" name = "interactive-commands" } -resource "junos-vmx_GroupsSystemSyslogFileContents "vmx_18"{ +resource "junos-vmx_GroupsSystemSyslogFileContents" "vmx_18"{ resource_name = "vmx_18" name = "messages" name__1 = "kernel" } -resource "junos-vmx_GroupsSystemSyslogFileContents "vmx_19"{ +resource "junos-vmx_GroupsSystemSyslogFileContents" "vmx_19"{ resource_name = "vmx_19" name = "any" } -resource "junos-vmx_GroupsSystemSyslogFileContents "vmx_20"{ +resource "junos-vmx_GroupsSystemSyslogFileContents" "vmx_20"{ resource_name = "vmx_20" name = "authorization" } -resource "junos-vmx_GroupsSystemSyslogFileContents "vmx_21"{ +resource "junos-vmx_GroupsSystemSyslogFileContents" "vmx_21"{ resource_name = "vmx_21" name = "pfe" } -resource "junos-vmx_GroupsSystemSyslogFileContents "vmx_22"{ +resource "junos-vmx_GroupsSystemSyslogFileContents" "vmx_22"{ resource_name = "vmx_22" name = "security" name__1 = "interactive-commands" @@ -277,7 +277,7 @@ resource "junos-vmx_InterfacesInterfaceUnitFamilyInetAddressName" "vmx_44" { name__2 = "10.10.10.6/31" } -resource "junos-vmx_InterfacesInterfaceUnitFamilyInet" "vmx_45" { +resource "junos-vmx_InterfacesInterfaceUnit" "vmx_45" { resource_name = "vmx_45" name = "ge-0/0/3" description = "facing_mayank-rack-001-leaf2:ge-0/0/0" @@ -287,67 +287,67 @@ resource "junos-vmx_InterfacesInterfaceUnitFamilyInet" "vmx_45" { name__2 = "10.10.10.2/31" } -resource "junos-vmx_InterfacesInterfaceUnitFamilyInet" "vmx_46" { +resource "junos-vmx_InterfacesInterfaceUnit" "vmx_46" { resource_name = "vmx_46" name = "ge-0/0/4" name__1 = "0" } -resource "junos-vmx_InterfacesInterfaceUnitFamilyInet" "vmx_47" { +resource "junos-vmx_InterfacesInterfaceUnit" "vmx_47" { resource_name = "vmx_47" name = "ge-0/0/5" name__1 = "0" } -resource "junos-vmx_InterfacesInterfaceUnitFamilyInet" "vmx_48" { +resource "junos-vmx_InterfacesInterfaceUnit" "vmx_48" { resource_name = "vmx_48" name = "ge-0/0/6" name__1 = "0" } -resource "junos-vmx_InterfacesInterfaceUnitFamilyInet" "vmx_49" { +resource "junos-vmx_InterfacesInterfaceUnit" "vmx_49" { resource_name = "vmx_49" name = "ge-0/0/7" name__1 = "0" } -resource "junos-vmx_InterfacesInterfaceUnitFamilyInet" "vmx_50" { +resource "junos-vmx_InterfacesInterfaceUnit" "vmx_50" { resource_name = "vmx_50" name = "ge-0/0/8" name__1 = "0" } -resource "junos-vmx_InterfacesInterfaceUnitFamilyInet" "vmx_51" { +resource "junos-vmx_InterfacesInterfaceUnit" "vmx_51" { resource_name = "vmx_51" name = "ge-0/0/9" name__1 = "0" } -resource "junos-vmx_InterfacesInterfaceUnitFamilyInet" "vmx_52" { +resource "junos-vmx_InterfacesInterfaceUnit" "vmx_52" { resource_name = "vmx_52" name = "ge-0/0/10" name__1 = "0" } -resource "junos-vmx_InterfacesInterfaceUnitFamilyInet" "vmx_53" { +resource "junos-vmx_InterfacesInterfaceUnit" "vmx_53" { resource_name = "vmx_53" name = "ge-0/0/11" name__1 = "0" } -resource "InterfacesInterfaceUnitFamilyInet" "vmx_54" { +resource "InterfacesInterfaceUnit" "vmx_54" { resource_name = "vmx_54" name = "ge-0/0/12" name__1 = "0" } -resource "junos-vmx_InterfacesInterfaceUnitFamilyInet" "vmx_55" { +resource "junos-vmx_InterfacesInterfaceUnit" "vmx_55" { resource_name = "vmx_55" name = "ge-0/0/13" name__1 = "0" } -resource "junos-vmx_InterfacesInterfaceUnitFamilyInet" "vmx_56" { +resource "junos-vmx_InterfacesInterfaceUnit" "vmx_56" { resource_name = "vmx_56" name = "ge-0/0/14" name__1 = "0" From 4585ea1f60cdb5f56ce59c82655cf98da0ef68cb Mon Sep 17 00:00:00 2001 From: Natalie Date: Wed, 11 Dec 2024 21:08:08 -0800 Subject: [PATCH 18/19] tf file changes --- .../two_spine_two_leaf/testbed/vmx_1/main.tf | 939 +++++++++++++----- 1 file changed, 718 insertions(+), 221 deletions(-) diff --git a/Samples/two_spine_two_leaf/testbed/vmx_1/main.tf b/Samples/two_spine_two_leaf/testbed/vmx_1/main.tf index 62a1bce3..0dbdc020 100644 --- a/Samples/two_spine_two_leaf/testbed/vmx_1/main.tf +++ b/Samples/two_spine_two_leaf/testbed/vmx_1/main.tf @@ -21,531 +21,1028 @@ resource "junos-vmx_InterfacesInterfaceUnitFamilyInetAddressName" "vmx_2" { name__2 = "10.56.16.246/19" } -resource "junos-vmx_GroupsSystemRoot-authentication" "vmx_3"{ +resource "junos-vmx_GroupsSystemRoot-authenticationEncrypted-password" "vmx_3"{ resource_name = "vmx_3" encrypted-password = "1$ZUlES4dp$OUwWo1g7cLoV/aMWpHUnC/" } -resource "junos-vmx_GroupsSystemLoginClass" "vmx_4"{ +resource "junos-vmx_GroupsSystemLoginClassName" "vmx_4"{ resource_name = "vmx_4" name = "wheel" - permissions = "snmp" } -resource "junos-vmx_GroupsSystemLoginUserUndocumented" "vmx_5"{ +resource "junos-vmx_GroupsSystemLoginClassPermissions" "vmx_5"{ resource_name = "vmx_5" + permissions = "snmp" +} + + +resource "junos-vmx_GroupsSystemLoginUserName "vmx_6"{ + resource_name = "vmx_6" name = "regress" +} + +resource "junos-vmx_GroupsSystemLoginUserUid "vmx_7"{ + resource_name = "vmx_7" uid = "928" +} + +resource "junos-vmx_GroupsSystemLoginUserClass "vmx_8"{ + resource_name = "vmx_8" class = "superuser" +} + +resource "junos-vmx_GroupsSystemLoginUserUndocumentedShell "vmx_9"{ + resource_name = "vmx_9" shell = "csh" } -resource "junos-vmx_GroupsSystemLoginUserAuthentication" "vmx_6"{ - resource_name = "vmx_6" +resource "junos-vmx_GroupsSystemLoginUserAuthenticationEncrypted-password" "vmx_10"{ + resource_name = "vmx_10" encrypted-password = "$1$kPU..$w.4FGRAGanJ8U4Yq6sbj7." } -resource "junos-vmx_GroupsSystemLoginUser" "vmx_7"{ - resource_name = "vmx_7" +resource "junos-vmx_GroupsSystemLoginUserName" "vmx_11"{ + resource_name = "vmx_11" name = "remote" +} + +resource "junos-vmx_GroupsSystemLoginUserUid" "vmx_12"{ + resource_name = "vmx_12" uid = "2000" class = "super-user" } -resource "junos-vmx_GroupsSystemServicesSsh" "vmx_8"{ - resource_name = "vmx_8" +resource "junos-vmx_GroupsSystemLoginUserClass" "vmx_13"{ + resource_name = "vmx_13" + class = "super-user" +} + + +resource "junos-vmx_GroupsSystemServicesSshRoot-login" "vmx_14"{ + resource_name = "vmx_14" root-login = "allow" } -resource "junos-vmx_GroupsSystem" "vmx_9"{ - resource_name = "vmx_9" +resource "junos-vmx_GroupsSystemDomain-name" "vmx_15"{ + resource_name = "vmx_15" domain-name = "englab.juniper.net" +} + +resource "junos-vmx_GroupsSystemDomain-search" "vmx_16"{ + resource_name = "vmx_16" domain-search = "englab.juniper.net" - domain-search__1 = "juniper.net" - domain-search__2 = "jnpr.net" - time-zone = "American/Los_Angeles" - authentication-order = "password" - authentication_order__1 = "radius" } -resource "junos-vmx_GroupsSystemName-server" "vmx_10"{ - resource_name = "vmx_10" +resource "junos-vmx_GroupsSystemDomain-search" "vmx_17"{ + resource_name = "vmx_17" + domain-search = "juniper.net" +} + +resource "junos-vmx_GroupsSystemDomain-search" "vmx_18"{ + resource_name = "vmx_18" + domain-search = "jnpr.net" +} + +resource "junos-vmx_GroupsSystemTime-zone" "vmx_19"{ + resource_name = "vmx_19" + time-zone = "America/Los_Angeles" +} + +resource "junos-vmx_GroupsSystemAuthentication-order" "vmx_20"{ + resource_name = "vmx_20" + authentication-order = "password" +} + +resource "junos-vmx_GroupsSystemAuthentication-order" "vmx_21"{ + resource_name = "vmx_21" + authentication-order = "radius" +} + +resource "junos-vmx_GroupsSystemName-serverName" "vmx_22"{ + resource_name = "vmx_22" name = "10.49.32.95" } -resource "junos-vmx_GroupsSystemName-server" "vmx_11"{ - resource_name = "vmx_11" +resource "junos-vmx_GroupsSystemName-serverName" "vmx_23"{ + resource_name = "vmx_23" name = "10.49.32.97" } -resource "junos-vmx_GroupsSystemRadius-server" "vmx_12"{ - resource_name = "vmx_12" +resource "junos-vmx_GroupsSystemRadius-serverName" "vmx_24"{ + resource_name = "vmx_24" name = "10.48.144.16" +} + +resource "junos-vmx_GroupsSystemRadius-serverSecret" "vmx_25"{ + resource_name = "vmx_25" secret = "$9$TQ/t1IcSrKAt0IRheK8X7VYgaZDm5zNdiqmTn6" } -resource "junos-vmx_GroupsSystemRadius-server" "vmx_13"{ - resource_name = "vmx_13" +resource "junos-vmx_GroupsSystemRadius-serverName" "vmx_26"{ + resource_name = "vmx_26" name = "10.48.144.17" +} + +resource "junos-vmx_GroupsSystemRadius-serverSecret" "vmx_27"{ + resource_name = "vmx_27" secret = "$9$GqUqf3nCApOPfQn690ORhSeWL7-boZDylsgoGHk" } -resource "junos-vmx_GroupsSystemSyslogHostContents" "vmx_14"{ - resource_name = "vmx_14" +resource "junos-vmx_GroupsSystemSyslogHostName" "vmx_28"{ + resource_name = "vmx_28" name = "log" - name__1 = "kernel" } -resource "junos-vmx_GroupsSystemSyslogHostContents" "vmx_15"{ - resource_name = "vmx_15" +resource "junos-vmx_GroupsSystemSyslogHostContentsName" "vmx_29"{ + resource_name = "vmx_29" + name = "kernel" +} + + +resource "junos-vmx_GroupsSystemSyslogHostContentsName" "vmx_30"{ + resource_name = "vmx_30" name = "any" } -resource "junos-vmx_GroupsSystemSyslogHostContents" "vmx_16"{ - resource_name = "vmx_16" +resource "junos-vmx_GroupsSystemSyslogHostContentsName" "vmx_31"{ + resource_name = "vmx_31" name = "pfe" } -resource "junos-vmx_GroupsSystemSyslogHostContents" "vmx_17"{ - resource_name = "vmx_17" +resource "junos-vmx_GroupsSystemSyslogHostContentsName" "vmx_32"{ + resource_name = "vmx_32" name = "interactive-commands" } -resource "junos-vmx_GroupsSystemSyslogFileContents" "vmx_18"{ - resource_name = "vmx_18" +resource "junos-vmx_GroupsSystemSyslogFileName" "vmx_33"{ + resource_name = "vmx_33" name = "messages" - name__1 = "kernel" } -resource "junos-vmx_GroupsSystemSyslogFileContents" "vmx_19"{ - resource_name = "vmx_19" +resource "junos-vmx_GroupsSystemSyslogFileContentsName" "vmx_34"{ + resource_name = "vmx_34" + name = "kernel" +} + +resource "junos-vmx_GroupsSystemSyslogFileContentsName" "vmx_35"{ + resource_name = "vmx_35" name = "any" } -resource "junos-vmx_GroupsSystemSyslogFileContents" "vmx_20"{ - resource_name = "vmx_20" +resource "junos-vmx_GroupsSystemSyslogFileContentsNAme" "vmx_36"{ + resource_name = "vmx_36" name = "authorization" } -resource "junos-vmx_GroupsSystemSyslogFileContents" "vmx_21"{ - resource_name = "vmx_21" +resource "junos-vmx_GroupsSystemSyslogFileContentsName" "vmx_37"{ + resource_name = "vmx_37" name = "pfe" } -resource "junos-vmx_GroupsSystemSyslogFileContents" "vmx_22"{ - resource_name = "vmx_22" +resource "junos-vmx_GroupsSystemSyslogFileName" "vmx_38"{ + resource_name = "vmx_38" name = "security" - name__1 = "interactive-commands" } -resource "junos-vmx_GroupsSystemProcessDaemon-process" "vmx_23"{ - resource_name = "vmx_23" +resource "junos-vmx_GroupsSystemSyslogFileContentsName" "vmx_39"{ + resource_name = "vmx_39" + name = "interactive-commands" +} + +resource "junos-vmx_GroupsSystemProcessDaemon-processName" "vmx_40"{ + resource_name = "vmx_40" name = "snmp" } -resource "junos-vmx_GroupsSystemProcessDaemon-process" "vmx_24"{ - resource_name = "vmx_24" +resource "junos-vmx_GroupsSystemProcessDaemon-processName" "vmx_41"{ + resource_name = "vmx_41" name = "inet-process" } -resource "junos-vmx_GroupsSystemProcessDaemon-process" "vmx_25"{ - resource_name = "vmx_25" +resource "junos-vmx_GroupsSystemProcessDaemon-processName" "vmx_42"{ + resource_name = "vmx_42" name = "mib-process" } -resource "junos-vmx_GroupsSystemNtpUndocumented" "vmx_26"{ - resource_name = "vmx_26" +resource "junos-vmx_GroupsSystemNtpUndocumentedBoot-server" "vmx_43"{ + resource_name = "vmx_43" boot-server = "66.129.255.75" } -resource "junos-vmx_GroupsSystemNtpServer" "vmx_27"{ - resource_name = "vmx_27" +resource "junos-vmx_GroupsSystemNtpServerName" "vmx_44"{ + resource_name = "vmx_44" name = "66.129.255.75" } -resource "junos-vmx_GroupsSystemNtpServer" "vmx_28"{ - resource_name = "vmx_28" +resource "junos-vmx_GroupsSystemNtpServerNAme" "vmx_45"{ + resource_name = "vmx_45" name = "172.29.131.60" } -resource "junos-vmx_GroupsSystemNtpServer" "vmx_29"{ - resource_name = "vmx_29" +resource "junos-vmx_GroupsSystemNtpServerName" "vmx_46"{ + resource_name = "vmx_46" name = "172.29.135.60" } -resource "junos-vmx_GroupsSnmpCommunity" "vmx_30"{ - resource_name = "vmx_30" +resource "junos-vmx_GroupsSnmpLocation" "vmx_47"{ + resource_name = "vmx_47" location = "Systest lab" +} + +resource "junos-vmx_GroupsSnmpContact" "vmx_48"{ + resource_name = "vmx_48" contact = "Jay Lloyd" +} + +resource "junos-vmx_GroupsSnmpInterface" "vmx_49"{ + resource_name = "vmx_49" interface = "fxp0.0" +} + +resource "junos-vmx_GroupsSnmpCommunityName" "vmx_50"{ + resource_name = "vmx_50" name = "public" +} + +resource "junos-vmx_GroupsSnmpCommunityAuthorization" "vmx_51"{ + resource_name = "vmx_51" authorization = "read-only" } -resource "junos-vmx_GroupsSnmpCommunity" "vmx_31"{ - resource_name = "vmx_31" +resource "junos-vmx_GroupsSnmpCommunityName" "vmx_52"{ + resource_name = "vmx_52" name = "private" +} + +resource "junos-vmx_GroupsSnmpCommunityAuthorization" "vmx_53"{ + resource_name = "vmx_53" authorization = "read-write" } -resource "junos-vmx_GroupsRouting-optionsStaticRoute" "vmx_32"{ - resource_name = "vmx_32" +resource "junos-vmx_GroupsRouting-optionsStaticRouteName" "vmx_54"{ + resource_name = "vmx_54" name = "172.16.0.0/12" - next-hop = "10.56.31.254" } -resource "junos-vmx_GroupsRouting-optionsStaticRoute" "vmx_33"{ - resource_name = "vmx_33" +resource "junos-vmx_GroupsRouting-optionsStaticRouteNext-hop" "vmx_55"{ + resource_name = "vmx_55" + name = "10.56.31.254" +} + +resource "junos-vmx_GroupsRouting-optionsStaticRouteName" "vmx_56"{ + resource_name = "vmx_56" name = "192.168.0.0/16" - next-hop = "10.56.31.254" } -resource "junos-vmx_GroupsRouting-optionsStaticRoute" "vmx_34"{ - resource_name = "vmx_34" +resource "junos-vmx_GroupsRouting-optionsStaticRouteNext-hop" "vmx_57"{ + resource_name = "vmx_57" + name = "10.56.31.254" +} + +resource "junos-vmx_GroupsRouting-optionsStaticRouteName" "vmx_58"{ + resource_name = "vmx_58" name = "10.0.0.0/8" - next-hop = "10.56.31.254" } -resource "junos-vmx_GroupsRouting-optionsStaticRoute" "vmx_35"{ - resource_name = "vmx_35" +resource "junos-vmx_GroupsRouting-optionsStaticRouteNext-hop" "vmx_59"{ + resource_name = "vmx_59" + name = "10.56.31.254" +} + +resource "junos-vmx_GroupsRouting-optionsStaticRouteName" "vmx_60"{ + resource_name = "vmx_60" name = "66.129.0.0/16" - next-hop = "10.56.31.254" } -resource "junos-vmx_Groups" "vmx_36"{ - resource_name = "vmx_36" +resource "junos-vmx_GroupsRouting-optionsStaticRouteNext-hop" "vmx_61"{ + resource_name = "vmx_61" + name = "10.56.31.254" +} + +resource "junos-vmx_Apply-groups" "vmx_62"{ + resource_name = "vmx_62" apply-groups = "global" } -resource "junos-vmx_Groups" "vmx_37"{ - resource_name = "vmx_37" +resource "junos-vmx_Apply-groups" "vmx_63"{ + resource_name = "vmx_63" apply-groups = "member0" } -resource "junos-vmx_SystemServicesExtension-serviceRequest-responseGrpcSsl" "vmx_38"{ - resource_name = "vmx_38" +resource "junos-vmxSystemHost-name" "vmx_64"{ + resource_name = "vmx_64" host-name = "spine1" +} + +resource "junos-vmx_SystemServicesExtension-serviceRequest-responseGrpcSslPort" "vmx_65"{ + resource_name = "vmx_65" port = "32767" +} + +resource "junos-vmx_SystemServicesExtension-serviceRequest-responseGrpcSslLocal-certificate" "vmx_66"{ + resource_name = "vmx_66" local-certificate = "aos_grpc" } -resource "junos-vmx_SystemServicesExtension-serviceRequest-responseGrpc" "vmx_39"{ - resource_name = "vmx_39" +resource "junos-vmx_SystemServicesExtension-serviceRequest-responseGrpcRouting-instance" "vmx_67"{ + resource_name = "vmx_67" routing-instance = "mgmt_junos" } -resource "junos-vmx_ChasisFpcPic" "vmx_40"{ - resource_name = "vmx_40" +resource "junos-vmx_ChasisFpcName" "vmx_68"{ + resource_name = "vmx_68" name = "0" - name__1 = "0" +} + +resource "junos-vmx_ChasisFpcPicName" "vmx_69"{ + resource_name = "vmx_69" + name = "0" +} + +resource "junos-vmx_ChasisFpcPicNumber-of-ports" "vmx_70"{ + resource_name = "vmx_70" number-of-ports = "96" } -resource "junos-vmx_SecurityCertificateLocal" "vmx_41"{ - resource_name = "vmx_41" +resource "junos-vmx_SecurityCertificateLocalName" "vmx_71"{ + resource_name = "vmx_71" name = "aos_grpc" +} + +resource "junos-vmx_SecurityCertificateLocalCertificate" "vmx_72"{ + resource_name = "vmx_72" certificate = "-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDS8UeT5MDK8uMl\nVP8JjNmsMqJ6u3loR/5ct5hhfqATxVVoSXhQf/AtIBpd6GQySo74tzqjFzhje3sP\nGZ99R1/xqiPX/VYFAbq1LjSSFKVNQgc87zFEO0LoHuP/3jHWmIL5Z8LR4971vKyM\ntCEQtfEoDDzJFP+Tx/UrHGRms/jkI7f395F47C+0Ync4+6NNoE/4HUZRSimhad8U\nSdPr2phLJZTtW2JnAh7WJFcRDgBzMKPqIWikSs1ruF4RerWLVmV4t8hswD6IR5XK\noEhgZoHVFjUyBik86BClqr3c56ZeZ0b6PKo8o9W14LM5sHabd8FKxO4pC4cPVw58\nvW0R0kz1AgMBAAECggEAG+zdMPMDotpsv7B04urGlklNwTm4ZNnDDrsvbRi6UGO7\nXsb7Ko0FWrP5SZ1ORmoga0S2eojEakcaj3Ew8ADW7sM7Y4iiLp9//CRVyVD6YTPw\niVyRBRtjTB9qx6C+sE4YaLQX0nl8NsP3g9kE15V+i3KzSVuCSioahs6HbCE/PdRP\nJl0IqLReehnjtoXmffaHbyyh47B3HVKQcUQB5T3WVnijerhMAQ23FCi/bIy+f/sV\nOp9eWDeWZ34t6IxX8mrB5ANc1gYd/Pa2MqY6YicDaFGpxBDQCmPnpjZV7GIsP1F2\nby3vnimcwM4pRyWaIJPv/oWuBrZiGRfRP+BgClOLMQKBgQDuUbTpjbt7CJTK2ENQ\nRvQaQBEGWuaDPLoAjAOUbwtrBeZZp8oc1huSMOLFCxjlJ5yeeCcN1WFf0r+5RcV1\n0BvYAmKGoE0LigkRtVJNNge7ZzO5xtZo4aqnXi+LXFZSY0HIDSKtY7FQypfLVMug\ni8DqLe7b5YXQnSVRa47BYUEMDwKBgQDil56gqvQQbEtRfCwyVjFNgpRr2+G84jfI\ns9Agw4PjYGxg0rvqw3u7NfZIGam3L+nKf+MxZKF49Ir0no4q4JA7Hahw2bMrWTjg\nGppulZ2E8bBgk1uJQu2Qoz9ajRNf+cw3Q9caHXwNZ5lWrsCusbQ6EIMVFbdCjywf\nRj8ULoOiuwKBgQCzXaGIypiZX/sEtEHtcImWHDP0EYQ+r/zaHocvN2hjk1wsjEFs\n9KRpogt6/AAvsGGLT6ktGzUfdrG/0shsBEaAjEL1Sj7SeYCb6FlaLVkibekbYJDM\n/VOAhj3IaKW7emLvGxvHXin9QY1/hoF/gs+eMRX+QMA3I58LqaUW3IildwKBgHTn\nbLvP92ORu7oqqlK+DWnD+Pc81lYxED7IJpUAykbBNKkvkCwq9uc7i/je5KTSX3hO\nStTs6jIRWK+kLg0JFuCpCIJQjxPKUIGuuAZdwosYdrscy5khopeA4erB5kEaC7Zn\nlc6vb5Uq4f3K4zY+EJH0euyh6463dzgbcefjp56JAoGBAI7KjnGOyvlNEy6eUYC0\nPyCT4mfrqrND5vdHDA2dj8N/iYfL7Y+CKU7UuP/YTh9iI6FeQDLV0LwV0TVKOV+1\nPpyNf7UoBAMFs8i/vB/+S8eybXcThBr24MVJTAJJ111d+nveCv3qSc4MxFyJNvuG\nFPdib3rZ5vnSAjZjf6HNf3C1\n-----END PRIVATE KEY-----\n-----BEGIN CERTIFICATE-----\nMIIDUjCCAjqgAwIBAgICA+gwDQYJKoZIhvcNAQELBQAwVjELMAkGA1UEBhMCVVMx\nCzAJBgNVBAgMAkNBMRMwEQYDVQQHDApNZW5sbyBQYXJrMRMwEQYDVQQKDApBcHN0\ncmEgSW5jMRAwDgYDVQQDDAdBT1NfVExTMB4XDTI0MDkyNDA4MzYzNloXDTM0MDky\nMjA4MzYzNlowVjELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMRMwEQYDVQQHDApN\nZW5sbyBQYXJrMRMwEQYDVQQKDApBcHN0cmEgSW5jMRAwDgYDVQQDDAdBT1NfVExT\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0vFHk+TAyvLjJVT/CYzZ\nrDKiert5aEf+XLeYYX6gE8VVaEl4UH/wLSAaXehkMkqO+Lc6oxc4Y3t7DxmffUdf\n8aoj1/1WBQG6tS40khSlTUIHPO8xRDtC6B7j/94x1piC+WfC0ePe9bysjLQhELXx\nKAw8yRT/k8f1KxxkZrP45CO39/eReOwvtGJ3OPujTaBP+B1GUUopoWnfFEnT69qY\nSyWU7VtiZwIe1iRXEQ4AczCj6iFopErNa7heEXq1i1ZleLfIbMA+iEeVyqBIYGaB\n1RY1MgYpPOgQpaq93OemXmdG+jyqPKPVteCzObB2m3fBSsTuKQuHD1cOfL1tEdJM\n9QIDAQABoyowKDAPBgNVHRMECDAGAQH/AgEAMBUGA1UdEQQOMAyCCmFwc3RyYS5j\nb20wDQYJKoZIhvcNAQELBQADggEBAKmUGAQgU97CHFDlAGLVVF9nxKmfGJwoCjAz\n+J4q9cvZE8F0S5yEHQ/iLOu6lIJy68TTEuvSQZDxGo6XGJnD86UEO6tAGKxkrvWx\nyyLoZEPdL6Ob2vPaq9jDNbXjcTCwzXvG6y4pX9384mPHN99RV9igiO1LQQzVov1v\nZ5TREif2m80JDvOxAb4aktEYr9nELPHJaPxeUHB9Nv4MGW3buwXe/LPF2hplw3FX\nDQMI123sD5gLx8U0xSwyatKJ9YbK7Ia0Iwh/EFAnIv/pu5DbH1j83yUcy4/vSsE2\nY61lFTJtIVaBUPH8p1zEvAr7qxmfwMTboe1rQ0Bkv3aPfMtDzJI=\n-----END CERTIFICATE-----\n" } -resource "junos-vmx_InterfacesInterfaceUnitFamilyInetAddressName" "vmx_42" { - resource_name = "vmx_42" +resource "junos-vmx_InterfacesInterfaceName" "vmx_73" { + resource_name = "vmx_73" name = "ge-0/0/0" +} + +resource "junos-vmx_InterfacesInterfaceDescription" "vmx_74" { + resource_name = "vmx_74" description = "facing_mayank-rack-001-leaf3:ge-0/0/0" +} + +resource "junos-vmx_InterfacesInterfaceMtu" "vmx_75" { + resource_name = "vmx_75" mtu = "9192" - name__1 = "0" - mtu__1 = "9170" - name__2 = "10.10.10.4/31" } -resource "junos-vmx_InterfacesInterfaceUnitFamilyInetAddressName" "vmx_43" { - resource_name = "vmx_43" +resource "junos-vmx_InterfacesInterfaceUnitName" "vmx_76" { + resource_name = "vmx_76" + name = "0" +} + +resource "junos-vmx_InterfacesInterfaceUnitFamilyInetMtu" "vmx_77" { + resource_name = "vmx_77" + mtu = "9170" +} + +resource "junos-vmx_InterfacesInterfaceUnitFamilyInetAddressName" "vmx_78" { + resource_name = "vmx_78" + name = "10.10.10.4/31" +} + +resource "junos-vmx_InterfacesInterfaceName" "vmx_79" { + resource_name = "vmx_79" name = "ge-0/0/1" +} + +resource "junos-vmx_InterfacesInterfaceDescription" "vmx_80" { + resource_name = "vmx_80" description = "facing_mayank-rack-001-leaf4:ge-0/0/0" +} + +resource "junos-vmx_InterfacesInterfaceMtu" "vmx_81" { + resource_name = "vmx_81" mtu = "9192" - name__1 = "0" - mtu__1 = "9170" - name__2 = "10.10.10.6/31" } -resource "junos-vmx_InterfacesInterfaceUnitFamilyInetAddressName" "vmx_44" { - resource_name = "vmx_44" +resource "junos-vmx_InterfacesInterfaceUnitName" "vmx_82" { + resource_name = "vmx_82" + name = "0" +} + +resource "junos-vmx_InterfacesInterfaceUnitFamilyInetMtu" "vmx_83" { + resource_name = "vmx_83" + mtu = "9170" +} + +resource "junos-vmx_InterfacesInterfaceUnitFamilyInetAddressName" "vmx_84" { + resource_name = "vmx_84" + name = "10.10.10.4/31" +} + +resource "junos-vmx_InterfacesInterfaceName" "vmx_85" { + resource_name = "vmx_85" name = "ge-0/0/2" - description = "facing_mayank-rack-001-leaf4:ge-0/0/0" +} + +resource "junos-vmx_InterfacesInterfaceDescription" "vmx_86" { + resource_name = "vmx_86" + description = "facing_mayank-rack-001-leaf1:ge-0/0/0" +} + +resource "junos-vmx_InterfacesInterfaceMtu" "vmx_87" { + resource_name = "vmx_87" mtu = "9192" - name__1 = "0" - mtu__1 = "9170" - name__2 = "10.10.10.6/31" } -resource "junos-vmx_InterfacesInterfaceUnit" "vmx_45" { - resource_name = "vmx_45" +resource "junos-vmx_InterfacesInterfaceUnitName" "vmx_88" { + resource_name = "vmx_88" + name = "0" +} + +resource "junos-vmx_InterfacesInterfaceUnitFamilyInetMtu" "vmx_89" { + resource_name = "vmx_89" + mtu = "9170" +} + +resource "junos-vmx_InterfacesInterfaceUnitFamilyInetAddressName" "vmx_90" { + resource_name = "vmx_90" + name = "10.10.10.4/31" +} + +resource "junos-vmx_InterfacesInterfaceName" "vmx_91" { + resource_name = "vmx_91" name = "ge-0/0/3" +} + +resource "junos-vmx_InterfacesInterfaceDescription" "vmx_92" { + resource_name = "vmx_92" description = "facing_mayank-rack-001-leaf2:ge-0/0/0" +} + +resource "junos-vmx_InterfacesInterfaceMtu" "vmx_93" { + resource_name = "vmx_93" mtu = "9192" - name__1 = "0" - mtu__1 = "9170" - name__2 = "10.10.10.2/31" } -resource "junos-vmx_InterfacesInterfaceUnit" "vmx_46" { - resource_name = "vmx_46" +resource "junos-vmx_InterfacesInterfaceUnitName" "vmx_94" { + resource_name = "vmx_94" + name = "0" +} + +resource "junos-vmx_InterfacesInterfaceUnitFamilyInetMtu" "vmx_95" { + resource_name = "vmx_95" + mtu = "9170" +} + +resource "junos-vmx_InterfacesInterfaceUnitFamilyInetAddressName" "vmx_96" { + resource_name = "vmx_96" + name = "10.10.10.4/31" +} + +resource "junos-vmx_InterfacesInterfaceName" "vmx_97" { + resource_name = "vmx_97" name = "ge-0/0/4" - name__1 = "0" } -resource "junos-vmx_InterfacesInterfaceUnit" "vmx_47" { - resource_name = "vmx_47" +resource "junos-vmx_InterfacesInterfaceUnitName" "vmx_98" { + resource_name = "vmx_98" + name = "0" +} + +resource "junos-vmx_InterfacesInterfaceName" "vmx_99" { + resource_name = "vmx_99" name = "ge-0/0/5" - name__1 = "0" } -resource "junos-vmx_InterfacesInterfaceUnit" "vmx_48" { - resource_name = "vmx_48" +resource "junos-vmx_InterfacesInterfaceUnitName" "vmx_100" { + resource_name = "vmx_100" + name = "0" +} + +resource "junos-vmx_InterfacesInterfaceName" "vmx_101" { + resource_name = "vmx_101" name = "ge-0/0/6" - name__1 = "0" } -resource "junos-vmx_InterfacesInterfaceUnit" "vmx_49" { - resource_name = "vmx_49" +resource "junos-vmx_InterfacesInterfaceUnitName" "vmx_102" { + resource_name = "vmx_102" + name = "0" +} + +resource "junos-vmx_InterfacesInterfaceName" "vmx_103" { + resource_name = "vmx_103" name = "ge-0/0/7" - name__1 = "0" } -resource "junos-vmx_InterfacesInterfaceUnit" "vmx_50" { - resource_name = "vmx_50" +resource "junos-vmx_InterfacesInterfaceUnitName" "vmx_104" { + resource_name = "vmx_104" + name = "0" +} + +resource "junos-vmx_InterfacesInterfaceName" "vmx_105" { + resource_name = "vmx_105" name = "ge-0/0/8" - name__1 = "0" } -resource "junos-vmx_InterfacesInterfaceUnit" "vmx_51" { - resource_name = "vmx_51" +resource "junos-vmx_InterfacesInterfaceUnitName" "vmx_106" { + resource_name = "vmx_106" + name = "0" +} + + +resource "junos-vmx_InterfacesInterfaceName" "vmx_107" { + resource_name = "vmx_107" name = "ge-0/0/9" - name__1 = "0" } -resource "junos-vmx_InterfacesInterfaceUnit" "vmx_52" { - resource_name = "vmx_52" +resource "junos-vmx_InterfacesInterfaceUnitName" "vmx_108" { + resource_name = "vmx_108" + name = "0" +} + +resource "junos-vmx_InterfacesInterfaceName" "vmx_109" { + resource_name = "vmx_109" name = "ge-0/0/10" - name__1 = "0" } -resource "junos-vmx_InterfacesInterfaceUnit" "vmx_53" { - resource_name = "vmx_53" +resource "junos-vmx_InterfacesInterfaceUnitName" "vmx_110" { + resource_name = "vmx_110" + name = "0" +} + +resource "junos-vmx_InterfacesInterfaceName" "vmx_111" { + resource_name = "vmx_111" name = "ge-0/0/11" - name__1 = "0" } -resource "InterfacesInterfaceUnit" "vmx_54" { - resource_name = "vmx_54" +resource "junos-vmx_InterfacesInterfaceUnitName" "vmx_112" { + resource_name = "vmx_112" + name = "0" +} + +resource "junos-vmx_InterfacesInterfaceName" "vmx_113" { + resource_name = "vmx_113" name = "ge-0/0/12" - name__1 = "0" } -resource "junos-vmx_InterfacesInterfaceUnit" "vmx_55" { - resource_name = "vmx_55" +resource "junos-vmx_InterfacesInterfaceUnitName" "vmx_114" { + resource_name = "vmx_114" + name = "0" +} + +resource "junos-vmx_InterfacesInterfaceName" "vmx_115" { + resource_name = "vmx_115" name = "ge-0/0/13" - name__1 = "0" } -resource "junos-vmx_InterfacesInterfaceUnit" "vmx_56" { - resource_name = "vmx_56" +resource "junos-vmx_InterfacesInterfaceUnitName" "vmx_116" { + resource_name = "vmx_116" + name = "0" +} + +resource "junos-vmx_InterfacesInterfaceName" "vmx_117" { + resource_name = "vmx_117" name = "ge-0/0/14" - name__1 = "0" } -resource "junos-vmx_InterfacesInterfaceUnitFamilyInetAddressName" "vmx_57" { - resource_name = "vmx_57" +resource "junos-vmx_InterfacesInterfaceUnitName" "vmx_118" { + resource_name = "vmx_118" + name = "0" +} + +resource "junos-vmx_InterfacesInterfaceName" "vmx_119" { + resource_name = "vmx_119" name = "lo0" - name__1 = "0" - name__2 = "10.10.11.0/32" } -resource "junos-vmx_Policy-optionsPolicy-statementTermFrom" "vmx_58" { - resource_name = "vmx_58" +resource "junos-vmx_InterfacesInterfaceUnitName" "vmx_120" { + resource_name = "vmx_120" + name = "0" +} + +resource "junos-vmx_InterfacesInterfaceUnitFamilyInetAddressName" "vmx_121" { + resource_name = "vmx_121" + name = "10.10.11.0/32" +} + +resource "junos-vmx_Policy-optionsPolicy-statementName" "vmx_122" { + resource_name = "vmx_122" name = "AllPodNetworks" - name__1 = "AllPodNetworks-10" +} + +resource "junos-vmx_Policy-optionsPolicy-statementTermName" "vmx_123" { + resource_name = "vmx_123" + name = "AllPodNetworks-10" +} + +resource "junos-vmx_Policy-optionsPolicy-statementTermFromFamily" "vmx_124" { + resource_name = "vmx_124" family = "inet" - protocols = "direct" } -resource "junos-vmx_Policy-optionsPolicy-statementTermThenCommunity" "vmx_59" { - resource_name = "vmx_59" +resource "junos-vmx_Policy-optionsPolicy-statementTermFromProtocol" "vmx_125" { + resource_name = "vmx_125" + protocol = "direct" +} + +resource "junos-vmx_Policy-optionsPolicy-statementTermThenCommunityCommunity-name" "vmx_126" { + resource_name = "vmx_126" community-name = "DEFAULT_DIRECT_V4" } -resource "junos-vmx_Policy-optionsPolicy-statementTerm" "vmx_60" { - resource_name = "vmx_60" +resource "junos-vmx_Policy-optionsPolicy-statementTermName" "vmx_127" { + resource_name = "vmx_127" name = "AllPodNetworks-100" } -resource "junos-vmx_Policy-optionsPolicy-statementTermFrom" "vmx_61" { - resource_name = "vmx_61" +resource "junos-vmx_Policy-optionsPolicy-statementName" "vmx_128" { + resource_name = "vmx_128" name = "BGP-AOS-Policy" - name__1 = "BGP-AOS-Policy-10" +} + +resource "junos-vmx_Policy-optionsPolicy-statementTermName" "vmx_129" { + resource_name = "vmx_129" + name = "BGP-AOS-Policy-10" +} + +resource "junos-vmx_Policy-optionsPolicy-statementTermFromPolicy" "vmx_130" { + resource_name = "vmx_130" policy = "AllPodNetworks" } -resource "junos-vmx_Policy-optionsPolicy-statementTermFrom" "vmx_62" { - resource_name = "vmx_62" +resource "junos-vmx_Policy-optionsPolicy-statementTermName" "vmx_131" { + resource_name = "vmx_131" name = "BGP-AOS-Policy-20" +} + +resource "junos-vmx_Policy-optionsPolicy-statementTermFromProtocol" "vmx_132" { + resource_name = "vmx_132" protocol = "bgp" } -resource "junos-vmx_Policy-optionsPolicy-statementTerm" "vmx_63" { - resource_name = "vmx_63" +resource "junos-vmx_Policy-optionsPolicy-statementTermName" "vmx_133" { + resource_name = "vmx_133" name = "BGP-AOS-Policy-100" } -resource "junos-vmx_Policy-optionsPolicy-statement" "vmx_64" { - resource_name = "vmx_64" +resource "junos-vmx_Policy-optionsPolicy-statementName" "vmx_134" { + resource_name = "vmx_134" name = "PFE-LB" } -resource "junos-vmx_Policy-optionsPolicy-statementTermThenCommunity" "vmx_65" { - resource_name = "vmx_65" +resource "junos-vmx_Policy-optionsPolicy-statementName" "vmx_135" { + resource_name = "vmx_135" name = "SPINE_TO_LEAF_EVPN_OUT" - name__1 = "SPINE_TO_LEAF_EVPN_OUT-10" - community-name = "FROM_SPINE_EVPN_TIER" } -resource "junos-vmx_Policy-optionsPolicy-statementTermThenCommunity" "vmx_66" { - resource_name = "vmx_66" +resource "junos-vmx_Policy-optionsPolicy-statementTermName" "vmx_136" { + resource_name = "vmx_136" + name = "SPINE_TO_LEAF_EVPN_OUT-10" +} + +resource "junos-vmx_Policy-optionsPolicy-statementTermThenCommunity-name" "vmx_137" { + resource_name = "vmx_137" + name = "FROM_SPINE_EVPN_TIER" +} + +resource "junos-vmx_Policy-optionsPolicy-statementName" "vmx_138" { + resource_name = "vmx_138" name = "SPINE_TO_LEAF_FABRIC_OUT" - name__1 = "SPINE_TO_LEAF_FABRIC_OUT-10" - community-name = "FROM_SPINE_FABRIC_TIER" } -resource "junos-vmx_Policy-optionsCommunity" "vmx_67"{ - resource_name = "vmx_67" +resource "junos-vmx_Policy-optionsPolicy-statementTermName" "vmx_139" { + resource_name = "vmx_139" + name = "SPINE_TO_LEAF_FABRIC_OUT-10" +} + +resource "junos-vmx_Policy-optionsPolicy-statementTermThenCommunity-name" "vmx_140" { + resource_name = "vmx_140" + name = "FROM_SPINE_FABRIC_TIER" +} + +resource "junos-vmx_Policy-optionsCommunityName" "vmx_141"{ + resource_name = "vmx_141" name = "DEFAULT_DIRECT_V4" +} + +resource "junos-vmx_Policy-optionsCommunityMembers" "vmx_142"{ + resource_name = "vmx_142" members = "1:20007" members__1 = "21001:26000" } -resource "junos-vmx_Policy-optionsCommunity" "vmx_68"{ - resource_name = "vmx_68" +resource "junos-vmx_Policy-optionsCommunityName" "vmx_143"{ + resource_name = "vmx_143" name = "FROM_SPINE_EVPN_TIER" +} + +resource "junos-vmx_Policy-optionsCommunityMembers" "vmx_144"{ + resource_name = "vmx_144" members = "0:14" } -resource "junos-vmx_Policy-optionsCommunity" "vmx_69"{ - resource_name = "vmx_68" +resource "junos-vmx_Policy-optionsCommunityName" "vmx_145"{ + resource_name = "vmx_145" name = "FROM_SPINE_FABRIC_TIER" +} + +resource "junos-vmx_Policy-optionsCommunityMembers" "vmx_146"{ + resource_name = "vmx_146" members = "0:15" } -resource "junos-vmx_Routing-instancesInstanceRouting-optionsStaticRoute" "vmx_70"{ - resource_name = "vmx_70" +resource "junos-vmx_Routing-instancesInstanceName" "vmx_147"{ + resource_name = "vmx_147" name = "mgmt_junos" - name__1 = "0.0.0.0/0" - nexthop = "10.56.31.254" } -resource "junos-vmx_Routing-optionsAutonomous-system" "vmx_71"{ - resource_name = "vmx_71" +resource "junos-vmx_Routing-instancesInstanceRouting-optionsStaticRouteName "vmx_148"{ + resource_name = "vmx_148" + name = "0.0.0.0/0" +} + +resource "junos-vmx_Routing-instancesInstanceRouting-optionsStaticRouteNext-hop "vmx_149"{ + resource_name = "vmx_149" + next-hop = "10.56.31.254" +} + +resource "junos-vmx_Routing-optionsRouter-id" "vmx_150"{ + resource_name = "vmx_150" router-id = "10.10.11.0" +} + +resource "junos-vmx_Routing-optionsAutonomous-systemAs-number" "vmx_151"{ + resource_name = "vmx_151" as-number = "65001" } -resource "junos-vmx_Routing-optionsForwarding-table" "vmx_72"{ - resource_name = "vmx_72" +resource "junos-vmx_Routing-optionsForwarding-tableExport" "vmx_152"{ + resource_name = "vmx_152" export = "PFE-LB" } -resource "junos-vmx_ProtocolsBgpGroupNeighbor" "vmx_73"{ - resource_name = "vmx_73" +resource "junos-vmx_ProtocolsBgpGroupName" "vmx_153"{ + resource_name = "vmx_153" name = "l3clos-s" +} + +resource "junos-vmx_ProtocolsBgpGroupType" "vmx_154"{ + resource_name = "vmx_154" type = "external" - name__1 = "10.10.10.1" +} + +resource "junos-vmx_ProtocolsBgpGroupBfd-liveness-detectionMinimal-interval" "vmx_155"{ + resource_name = "vmx_155" + minimum-interval = "1000" +} + +resource "junos-vmx_ProtocolsBgpGroupBfd-liveness-detectionMultiplier" "vmx_156"{ + resource_name = "vmx_155" + multiplier = "3" +} + +resource "junos-vmx_ProtocolsBgpGroupNeighborName" "vmx_157"{ + resource_name = "vmx_157" + name = "10.10.10.1" +} + +resource "junos-vmx_ProtocolsBgpGroupNeighborDescription" "vmx_158"{ + resource_name = "vmx_158" description = "facing_mayank-rack-001-leaf1" +} + +resource "junos-vmx_ProtocolsBgpGroupNeighborLocal-address" "vmx_159"{ + resource_name = "vmx_159" local-address = "10.10.10.0" } -resource "junos-vmx_ProtocolsBgpGroupNeighbor" "vmx_74"{ - resource_name = "vmx_74" +resource "junos-vmx_ProtocolsBgpGroupNeighborExport" "vmx_160"{ + resource_name = "vmx_160" + export = "( SPINE_TO_LEAF_FABRIC_OUT && BGP-AOS-Policy )" +} + +resource "junos-vmx_ProtocolsBgpGroupNeighborPeer-as" "vmx_161"{ + resource_name = "vmx_161" + peer-as = "65003" +} + +resource "junos-vmx_ProtocolsBgpGroupNeighborName" "vmx_162"{ + resource_name = "vmx_162" name = "10.10.10.3" +} + +resource "junos-vmx_ProtocolsBgpGroupNeighborDescription" "vmx_163"{ + resource_name = "vmx_163" description = "facing_mayank-rack-001-leaf2" +} + +resource "junos-vmx_ProtocolsBgpGroupNeighborLocal-address" "vmx_164"{ + resource_name = "vmx_164" local-address = "10.10.10.2" +} + +resource "junos-vmx_ProtocolsBgpGroupNeighborExport" "vmx_165"{ + resource_name = "vmx_165" export = "( SPINE_TO_LEAF_FABRIC_OUT && BGP-AOS-Policy )" +} + +resource "junos-vmx_ProtocolsBgpGroupNeighborPeer-as" "vmx_166"{ + resource_name = "vmx_166" peer-as = "65004" } -resource "junos-vmx_ProtocolsBgpGroupNeighbor" "vmx_75"{ - resource_name = "vmx_75" +resource "junos-vmx_ProtocolsBgpGroupNeighborName" "vmx_167"{ + resource_name = "vmx_167" name = "10.10.10.5" +} + +resource "junos-vmx_ProtocolsBgpGroupNeighborDescription" "vmx_168"{ + resource_name = "vmx_168" description = "facing_mayank-rack-001-leaf3" +} + +resource "junos-vmx_ProtocolsBgpGroupNeighborLocal-address" "vmx_169"{ + resource_name = "vmx_169" local-address = "10.10.10.4" +} + +resource "junos-vmx_ProtocolsBgpGroupNeighborExport" "vmx_170"{ + resource_name = "vmx_170" export = "( SPINE_TO_LEAF_FABRIC_OUT && BGP-AOS-Policy )" +} + +resource "junos-vmx_ProtocolsBgpGroupNeighborPeer-as" "vmx_171"{ + resource_name = "vmx_171" peer-as = "65005" } -resource "junos-vmx_ProtocolsBgpGroupNeighbor" "vmx_76"{ - resource_name = "vmx_76" +resource "junos-vmx_ProtocolsBgpGroupNeighborName" "vmx_172"{ + resource_name = "vmx_172" name = "10.10.10.7" +} + +resource "junos-vmx_ProtocolsBgpGroupNeighborDescription" "vmx_173"{ + resource_name = "vmx_173" description = "facing_mayank-rack-001-leaf4" +} + +resource "junos-vmx_ProtocolsBgpGroupNeighborLocal-address" "vmx_174"{ + resource_name = "vmx_174" local-address = "10.10.10.6" +} + +resource "junos-vmx_ProtocolsBgpGroupNeighborExport" "vmx_175"{ + resource_name = "vmx_175" export = "( SPINE_TO_LEAF_FABRIC_OUT && BGP-AOS-Policy )" +} + +resource "junos-vmx_ProtocolsBgpGroupNeighborPeer-as" "vmx_176"{ + resource_name = "vmx_176" peer-as = "65006" } -resource "junos-vmx_ProtocolsBgpGroupMultihop" "vmx_77"{ - resource_name = "vmx_77" +resource "junos-vmx_ProtocolsBgpGroupName" "vmx_177"{ + resource_name = "vmx_177" name = "l3clos-s-evpn" +} + +resource "junos-vmx_ProtocolsBgpGroupType" "vmx_178"{ + resource_name = "vmx_178" type = "external" +} + +resource "junos-vmx_ProtocolsBgpGroupMultihopTtl" "vmx_179"{ + resource_name = "vmx_179" ttl = "1" } -resource "junos-vmx_ProtocolsBgpGroupFamilyEvpnSignalingLoops" "vmx_78"{ - resource_name = "vmx_78" +resource "junos-vmx_ProtocolsBgpGroupFamilyEvpnSignalingLoopsLoops" "vmx_180"{ + resource_name = "vmx_180" loops = "2" } -resource "junos-vmx_ProtocolsBgpGroupBfd-liveness-detection" "vmx_79"{ - resource_name = "vmx_79" +resource "junos-vmx_ProtocolsBgpGroupBfd-liveness-detectionMinimal-interval" "vmx_181"{ + resource_name = "vmx_181" minimum-interval = "3000" +} + +resource "junos-vmx_ProtocolsBgpGroupBfd-liveness-detectionMultiplier" "vmx_182"{ + resource_name = "vmx_182" multiplier = "3" } -resource "junos-vmx_ProtocolsBgpGroupNeighbor" "vmx_80"{ - resource_name = "vmx_80" +resource "junos-vmx_ProtocolsBgpGroupNeighborName" "vmx_183"{ + resource_name = "vmx_183" name = "10.10.11.2" +} + +resource "junos-vmx_ProtocolsBgpGroupNeighborDescription" "vmx_184"{ + resource_name = "vmx_184" description = "facing_mayank-rack-001-leaf1-evpn-overlay" +} + +resource "junos-vmx_ProtocolsBgpGroupNeighborLocal-address" "vmx_185"{ + resource_name = "vmx_185" local-address = "10.10.11.0" - export = "( SPINE_TO_LEAF_EVPN_OUT )" - peer-as = 65003 } -resource "junos-vmx_ProtocolsBgpGroupNeighbor" "vmx_81"{ - resource_name = "vmx_81" +resource "junos-vmx_ProtocolsBgpGroupNeighborExport" "vmx_186"{ + resource_name = "vmx_186" + export = "( SPINE_TO_LEAF_EVPN_OUT )" +} + +resource "junos-vmx_ProtocolsBgpGroupNeighborPeer-as" "vmx_187"{ + resource_name = "vmx_187" + peer-as = "65003" +} + +resource "junos-vmx_ProtocolsBgpGroupNeighborName" "vmx_188"{ + resource_name = "vmx_188" name = "10.10.11.3" +} + +resource "junos-vmx_ProtocolsBgpGroupNeighborDescription" "vmx_189"{ + resource_name = "vmx_189" description = "facing_mayank-rack-001-leaf2-evpn-overlay" +} + +resource "junos-vmx_ProtocolsBgpGroupNeighborLocal-address" "vmx_190"{ + resource_name = "vmx_190" local-address = "10.10.11.0" - export = "( SPINE_TO_LEAF_EVPN_OUT )" - peer-as = 65004 } -resource "junos-vmx_ProtocolsBgpGroupNeighbor" "vmx_82"{ - resource_name = "vmx_82" +resource "junos-vmx_ProtocolsBgpGroupNeighborExport" "vmx_191"{ + resource_name = "vmx_191" + export = "( SPINE_TO_LEAF_EVPN_OUT )" +} + +resource "junos-vmx_ProtocolsBgpGroupNeighborPeer-as" "vmx_192"{ + resource_name = "vmx_192" + peer-as = "65004" +} + +resource "junos-vmx_ProtocolsBgpGroupNeighborName" "vmx_193"{ + resource_name = "vmx_183" name = "10.10.11.4" +} + +resource "junos-vmx_ProtocolsBgpGroupNeighborDescription" "vmx_194"{ + resource_name = "vmx_194" description = "facing_mayank-rack-001-leaf3-evpn-overlay" +} + +resource "junos-vmx_ProtocolsBgpGroupNeighborLocal-address" "vmx_195"{ + resource_name = "vmx_195" local-address = "10.10.11.0" - export = "( SPINE_TO_LEAF_EVPN_OUT )" - peer-as = 65005 } -resource "junos-vmx_ProtocolsBgpGroupNeighbor" "vmx_83"{ - resource_name = "vmx_83" +resource "junos-vmx_ProtocolsBgpGroupNeighborExport" "vmx_196"{ + resource_name = "vmx_196" + export = "( SPINE_TO_LEAF_EVPN_OUT )" +} + +resource "junos-vmx_ProtocolsBgpGroupNeighborPeer-as" "vmx_197"{ + resource_name = "vmx_197" + peer-as = "65005" +} + +resource "junos-vmx_ProtocolsBgpGroupNeighborName" "vmx_198"{ + resource_name = "vmx_198" name = "10.10.11.5" - description = "facing_mayank-rack-001-leaf4-evpn-overlay" +} + +resource "junos-vmx_ProtocolsBgpGroupNeighborDescription" "vmx_199"{ + resource_name = "vmx_199" + description = "facing_mayank-rack-004-leaf1-evpn-overlay" +} + +resource "junos-vmx_ProtocolsBgpGroupNeighborLocal-address" "vmx_200"{ + resource_name = "vmx_200" local-address = "10.10.11.0" - export = "( SPINE_TO_LEAF_EVPN_OUT )" - peer-as = 65006 } -resource "junos-vmx_ProtocolsLldpInterface" "vmx_84"{ - resource_name = "vmx_84" +resource "junos-vmx_ProtocolsBgpGroupNeighborExport" "vmx_201"{ + resource_name = "vmx_201" + export = "( SPINE_TO_LEAF_EVPN_OUT )" +} + +resource "junos-vmx_ProtocolsBgpGroupNeighborPeer-as" "vmx_202"{ + resource_name = "vmx_202" + peer-as = "65006" +} + +resource "junos-vmx_ProtocolsLldpPort-id-subtype" "vmx_203"{ + resource_name = "vmx_203" port-id-subtype = "interface-name" +} + +resource "junos-vmx_ProtocolsLldpPort-description-type" "vmx_204"{ + resource_name = "vmx_204" port-description-type = "interface-description" - neighbour-port-info-display = "port-id" +} + +resource "junos-vmx_ProtocolsLldpNeighbor-port-info-display" "vmx_205"{ + resource_name = "vmx_205" + neighbor-port-info-display = "port-id" +} + +resource "junos-vmx_ProtocolsLldpInterfaceName" "vmx_206"{ + resource_name = "vmx_206" name = "all" } \ No newline at end of file From 510ec945a761306153fd00659f9738dd8db10fd1 Mon Sep 17 00:00:00 2001 From: Natalie Date: Wed, 11 Dec 2024 21:14:24 -0800 Subject: [PATCH 19/19] fixing typos --- Samples/two_spine_two_leaf/testbed/vmx_1/main.tf | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Samples/two_spine_two_leaf/testbed/vmx_1/main.tf b/Samples/two_spine_two_leaf/testbed/vmx_1/main.tf index 0dbdc020..4af0385f 100644 --- a/Samples/two_spine_two_leaf/testbed/vmx_1/main.tf +++ b/Samples/two_spine_two_leaf/testbed/vmx_1/main.tf @@ -37,22 +37,22 @@ resource "junos-vmx_GroupsSystemLoginClassPermissions" "vmx_5"{ } -resource "junos-vmx_GroupsSystemLoginUserName "vmx_6"{ +resource "junos-vmx_GroupsSystemLoginUserName" "vmx_6"{ resource_name = "vmx_6" name = "regress" } -resource "junos-vmx_GroupsSystemLoginUserUid "vmx_7"{ +resource "junos-vmx_GroupsSystemLoginUserUid" "vmx_7"{ resource_name = "vmx_7" uid = "928" } -resource "junos-vmx_GroupsSystemLoginUserClass "vmx_8"{ +resource "junos-vmx_GroupsSystemLoginUserClass" "vmx_8"{ resource_name = "vmx_8" class = "superuser" } -resource "junos-vmx_GroupsSystemLoginUserUndocumentedShell "vmx_9"{ +resource "junos-vmx_GroupsSystemLoginUserUndocumentedShell" "vmx_9"{ resource_name = "vmx_9" shell = "csh" } @@ -190,7 +190,7 @@ resource "junos-vmx_GroupsSystemSyslogFileContentsName" "vmx_35"{ name = "any" } -resource "junos-vmx_GroupsSystemSyslogFileContentsNAme" "vmx_36"{ +resource "junos-vmx_GroupsSystemSyslogFileContentsName" "vmx_36"{ resource_name = "vmx_36" name = "authorization" } @@ -330,7 +330,7 @@ resource "junos-vmx_Apply-groups" "vmx_63"{ apply-groups = "member0" } -resource "junos-vmxSystemHost-name" "vmx_64"{ +resource "junos-vmx_SystemHost-name" "vmx_64"{ resource_name = "vmx_64" host-name = "spine1" } @@ -752,12 +752,12 @@ resource "junos-vmx_Routing-instancesInstanceName" "vmx_147"{ name = "mgmt_junos" } -resource "junos-vmx_Routing-instancesInstanceRouting-optionsStaticRouteName "vmx_148"{ +resource "junos-vmx_Routing-instancesInstanceRouting-optionsStaticRouteName" "vmx_148"{ resource_name = "vmx_148" name = "0.0.0.0/0" } -resource "junos-vmx_Routing-instancesInstanceRouting-optionsStaticRouteNext-hop "vmx_149"{ +resource "junos-vmx_Routing-instancesInstanceRouting-optionsStaticRouteNext-hop" "vmx_149"{ resource_name = "vmx_149" next-hop = "10.56.31.254" }