diff --git a/acceptance/acceptance_test.go b/acceptance/acceptance_test.go index a70d324..b1d0b4d 100644 --- a/acceptance/acceptance_test.go +++ b/acceptance/acceptance_test.go @@ -254,7 +254,11 @@ func requireEqualOperationResponses(t *testing.T, expected *pb.OperationResponse got := &pb.OperationResponses{} require.NoErrorf(t, protojson.Unmarshal(out, got), string(out)) - require.Len(t, expected.GetResponses(), len(got.GetResponses())) + require.Lenf( + t, got.GetResponses(), len(expected.GetResponses()), + "expected %d operation responses, got %d, raw response %s", + len(expected.GetResponses()), len(got.GetResponses()), string(out), + ) expectedResponses := expected.GetResponses() gotResponses := got.GetResponses() sortResponses(expectedResponses) @@ -320,6 +324,8 @@ func requireEqualOperationResponses(t *testing.T, expected *pb.OperationResponse func requireEqualGenerateResponse(t *testing.T, expected, got *pb.Operation_Response_Generate) { t.Helper() + require.Len(t, expected.GetDiagnostics(), len(got.GetDiagnostics()), "expected equal generate diagnostics") + if expected.GetTerraformModule().GetModulePath() != "" { require.Equal( t, expected.GetTerraformModule().GetModulePath(), diff --git a/acceptance/invalid_scenarios/scenario_step_missing_module/enos.hcl b/acceptance/invalid_scenarios/scenario_step_missing_module/enos.hcl new file mode 100644 index 0000000..72efe2c --- /dev/null +++ b/acceptance/invalid_scenarios/scenario_step_missing_module/enos.hcl @@ -0,0 +1,23 @@ +# Copyright IBM Corp. 2021, 2026 +# SPDX-License-Identifier: MPL-2.0 + +module "foo" { + source = "./modules/foo" + + input = "fooinput" + anotherinput = ["anotherfoo"] +} + +module "bar" { + source = "./modules/does_not_exist" +} + +scenario "test" { + step "foo" { + module = module.foo + } + + step "bar" { + module = module.bar + } +} diff --git a/acceptance/invalid_scenarios/scenario_step_missing_module/modules/foo/main.tf b/acceptance/invalid_scenarios/scenario_step_missing_module/modules/foo/main.tf new file mode 100644 index 0000000..0f6b58f --- /dev/null +++ b/acceptance/invalid_scenarios/scenario_step_missing_module/modules/foo/main.tf @@ -0,0 +1,20 @@ +# Copyright IBM Corp. 2021, 2026 +# SPDX-License-Identifier: MPL-2.0 + +output "input" { + value = var.input +} + +output "anotherinput" { + value = var.input +} + +variable "input" { + type = string + default = "notset" +} + +variable "anotherinput" { + type = list(string) + default = ["one"] +} diff --git a/acceptance/scenario_check_test.go b/acceptance/scenario_check_test.go index 52b9444..c510a37 100644 --- a/acceptance/scenario_check_test.go +++ b/acceptance/scenario_check_test.go @@ -218,3 +218,68 @@ func TestAcc_Cmd_Scenario_Check_WithWarnings(t *testing.T) { }) } } + +func TestAcc_Cmd_Scenario_Check_InvalidScenario(t *testing.T) { + t.Parallel() + + for dir, test := range map[string]struct { + name string + uid string + }{ + "scenario_step_missing_module": { + "test", + fmt.Sprintf("%x", sha256.Sum256([]byte("test"))), + }, + } { + t.Run(fmt.Sprintf("%s %s", dir, test.name), func(t *testing.T) { + t.Parallel() + + enos := newAcceptanceRunner(t) + + tmpDir := t.TempDir() + outDir := filepath.Join(tmpDir, dir) + err := os.MkdirAll(outDir, 0o755) + require.NoError(t, err) + outDir, err = filepath.EvalSymlinks(outDir) + require.NoError(t, err) + path, err := filepath.Abs(filepath.Join("./invalid_scenarios", dir)) + require.NoError(t, err) + + filter := test.name + scenarioRef := &pb.Ref_Scenario{ + Id: &pb.Scenario_ID{ + Name: test.name, + Filter: filter, + Uid: test.uid, + }, + } + + cmd := fmt.Sprintf("scenario check --chdir %s --out %s %s --format json", path, outDir, filter) + out, _, err := enos.run(context.Background(), cmd) + require.Error(t, err) + expected := &pb.OperationResponses{ + Responses: []*pb.Operation_Response{ + { + Op: &pb.Ref_Operation{ + Scenario: scenarioRef, + }, + Status: pb.Operation_STATUS_FAILED, + Value: &pb.Operation_Response_Check_{ + Check: &pb.Operation_Response_Check{ + Generate: &pb.Operation_Response_Generate{ + Diagnostics: []*pb.Diagnostic{ + { + Summary: fmt.Sprintf("lstat %s/modules/does_not_exist: no such file or directory", path), + }, + }, + }, + }, + }, + }, + }, + } + + requireEqualOperationResponses(t, expected, out) + }) + } +} diff --git a/acceptance/scenario_destroy_test.go b/acceptance/scenario_destroy_test.go index 5ae98b0..90c8f8a 100644 --- a/acceptance/scenario_destroy_test.go +++ b/acceptance/scenario_destroy_test.go @@ -114,3 +114,68 @@ func TestAcc_Cmd_Scenario_Destroy(t *testing.T) { }) } } + +func TestAcc_Cmd_Scenario_Destroy_InvalidScenario(t *testing.T) { + t.Parallel() + + for dir, test := range map[string]struct { + name string + uid string + }{ + "scenario_step_missing_module": { + "test", + fmt.Sprintf("%x", sha256.Sum256([]byte("test"))), + }, + } { + t.Run(fmt.Sprintf("%s %s", dir, test.name), func(t *testing.T) { + t.Parallel() + + enos := newAcceptanceRunner(t) + + tmpDir := t.TempDir() + outDir := filepath.Join(tmpDir, dir) + err := os.MkdirAll(outDir, 0o755) + require.NoError(t, err) + outDir, err = filepath.EvalSymlinks(outDir) + require.NoError(t, err) + path, err := filepath.Abs(filepath.Join("./invalid_scenarios", dir)) + require.NoError(t, err) + + filter := test.name + scenarioRef := &pb.Ref_Scenario{ + Id: &pb.Scenario_ID{ + Name: test.name, + Filter: filter, + Uid: test.uid, + }, + } + + cmd := fmt.Sprintf("scenario destroy --chdir %s --out %s %s --format json", path, outDir, filter) + out, _, err := enos.run(context.Background(), cmd) + require.Error(t, err) + expected := &pb.OperationResponses{ + Responses: []*pb.Operation_Response{ + { + Op: &pb.Ref_Operation{ + Scenario: scenarioRef, + }, + Status: pb.Operation_STATUS_FAILED, + Value: &pb.Operation_Response_Destroy_{ + Destroy: &pb.Operation_Response_Destroy{ + Generate: &pb.Operation_Response_Generate{ + Diagnostics: []*pb.Diagnostic{ + { + Summary: fmt.Sprintf("lstat %s/modules/does_not_exist: no such file or directory", path), + }, + }, + }, + }, + }, + }, + }, + } + + requireEqualOperationResponses(t, expected, out) + }) + } +} diff --git a/acceptance/scenario_generate_test.go b/acceptance/scenario_generate_test.go index 454c95e..fba08cb 100644 --- a/acceptance/scenario_generate_test.go +++ b/acceptance/scenario_generate_test.go @@ -139,3 +139,66 @@ func TestAcc_Cmd_Scenario_Generate(t *testing.T) { }) } } + +func TestAcc_Cmd_Scenario_Generate_InvalidScenario(t *testing.T) { + t.Parallel() + + for dir, test := range map[string]struct { + name string + uid string + }{ + "scenario_step_missing_module": { + "test", + fmt.Sprintf("%x", sha256.Sum256([]byte("test"))), + }, + } { + t.Run(fmt.Sprintf("%s %s", dir, test.name), func(t *testing.T) { + t.Parallel() + + enos := newAcceptanceRunner(t) + + tmpDir := t.TempDir() + outDir := filepath.Join(tmpDir, dir) + err := os.MkdirAll(outDir, 0o755) + require.NoError(t, err) + outDir, err = filepath.EvalSymlinks(outDir) + require.NoError(t, err) + path, err := filepath.Abs(filepath.Join("./invalid_scenarios", dir)) + require.NoError(t, err) + + filter := test.name + scenarioRef := &pb.Ref_Scenario{ + Id: &pb.Scenario_ID{ + Name: test.name, + Filter: filter, + Uid: test.uid, + }, + } + + cmd := fmt.Sprintf("scenario generate --chdir %s --out %s %s --format json", path, outDir, filter) + out, _, err := enos.run(context.Background(), cmd) + require.Error(t, err) + expected := &pb.OperationResponses{ + Responses: []*pb.Operation_Response{ + { + Op: &pb.Ref_Operation{ + Scenario: scenarioRef, + }, + Status: pb.Operation_STATUS_FAILED, + Value: &pb.Operation_Response_Generate_{ + Generate: &pb.Operation_Response_Generate{ + Diagnostics: []*pb.Diagnostic{ + { + Summary: fmt.Sprintf("lstat %s/modules/does_not_exist: no such file or directory", path), + }, + }, + }, + }, + }, + }, + } + + requireEqualOperationResponses(t, expected, out) + }) + } +} diff --git a/acceptance/scenario_launch_test.go b/acceptance/scenario_launch_test.go index d563db7..e27da51 100644 --- a/acceptance/scenario_launch_test.go +++ b/acceptance/scenario_launch_test.go @@ -113,3 +113,68 @@ func TestAcc_Cmd_Scenario_Launch(t *testing.T) { }) } } + +func TestAcc_Cmd_Scenario_Launch_InvalidScenario(t *testing.T) { + t.Parallel() + + for dir, test := range map[string]struct { + name string + uid string + }{ + "scenario_step_missing_module": { + "test", + fmt.Sprintf("%x", sha256.Sum256([]byte("test"))), + }, + } { + t.Run(fmt.Sprintf("%s %s", dir, test.name), func(t *testing.T) { + t.Parallel() + + enos := newAcceptanceRunner(t) + + tmpDir := t.TempDir() + outDir := filepath.Join(tmpDir, dir) + err := os.MkdirAll(outDir, 0o755) + require.NoError(t, err) + outDir, err = filepath.EvalSymlinks(outDir) + require.NoError(t, err) + path, err := filepath.Abs(filepath.Join("./invalid_scenarios", dir)) + require.NoError(t, err) + + filter := test.name + scenarioRef := &pb.Ref_Scenario{ + Id: &pb.Scenario_ID{ + Name: test.name, + Filter: filter, + Uid: test.uid, + }, + } + + cmd := fmt.Sprintf("scenario launch --chdir %s --out %s %s --format json", path, outDir, filter) + out, _, err := enos.run(context.Background(), cmd) + require.Error(t, err) + expected := &pb.OperationResponses{ + Responses: []*pb.Operation_Response{ + { + Op: &pb.Ref_Operation{ + Scenario: scenarioRef, + }, + Status: pb.Operation_STATUS_FAILED, + Value: &pb.Operation_Response_Launch_{ + Launch: &pb.Operation_Response_Launch{ + Generate: &pb.Operation_Response_Generate{ + Diagnostics: []*pb.Diagnostic{ + { + Summary: fmt.Sprintf("lstat %s/modules/does_not_exist: no such file or directory", path), + }, + }, + }, + }, + }, + }, + }, + } + + requireEqualOperationResponses(t, expected, out) + }) + } +} diff --git a/acceptance/scenario_run_test.go b/acceptance/scenario_run_test.go index 18e6dbb..9a64815 100644 --- a/acceptance/scenario_run_test.go +++ b/acceptance/scenario_run_test.go @@ -149,3 +149,68 @@ func TestAcc_Cmd_Scenario_Run_Timeout(t *testing.T) { }) } } + +func TestAcc_Cmd_Scenario_Run_InvalidScenario(t *testing.T) { + t.Parallel() + + for dir, test := range map[string]struct { + name string + uid string + }{ + "scenario_step_missing_module": { + "test", + fmt.Sprintf("%x", sha256.Sum256([]byte("test"))), + }, + } { + t.Run(fmt.Sprintf("%s %s", dir, test.name), func(t *testing.T) { + t.Parallel() + + enos := newAcceptanceRunner(t) + + tmpDir := t.TempDir() + outDir := filepath.Join(tmpDir, dir) + err := os.MkdirAll(outDir, 0o755) + require.NoError(t, err) + outDir, err = filepath.EvalSymlinks(outDir) + require.NoError(t, err) + path, err := filepath.Abs(filepath.Join("./invalid_scenarios", dir)) + require.NoError(t, err) + + filter := test.name + scenarioRef := &pb.Ref_Scenario{ + Id: &pb.Scenario_ID{ + Name: test.name, + Filter: filter, + Uid: test.uid, + }, + } + + cmd := fmt.Sprintf("scenario run --chdir %s --out %s %s --format json", path, outDir, filter) + out, _, err := enos.run(context.Background(), cmd) + require.Error(t, err) + expected := &pb.OperationResponses{ + Responses: []*pb.Operation_Response{ + { + Op: &pb.Ref_Operation{ + Scenario: scenarioRef, + }, + Status: pb.Operation_STATUS_FAILED, + Value: &pb.Operation_Response_Run_{ + Run: &pb.Operation_Response_Run{ + Generate: &pb.Operation_Response_Generate{ + Diagnostics: []*pb.Diagnostic{ + { + Summary: fmt.Sprintf("lstat %s/modules/does_not_exist: no such file or directory", path), + }, + }, + }, + }, + }, + }, + }, + } + + requireEqualOperationResponses(t, expected, out) + }) + } +} diff --git a/acceptance/scenarios/scenario_e2e_aws/modules/target/module.tf b/acceptance/scenarios/scenario_e2e_aws/modules/target/module.tf index 9c5ca99..42cf4d4 100644 --- a/acceptance/scenarios/scenario_e2e_aws/modules/target/module.tf +++ b/acceptance/scenarios/scenario_e2e_aws/modules/target/module.tf @@ -4,8 +4,7 @@ terraform { required_providers { enos = { - source = "hashicorp-forge/enos" - version = "0.6.2" + source = "hashicorp-forge/enos" } aws = { @@ -19,7 +18,7 @@ data "aws_ami" "ubuntu" { filter { name = "name" - values = ["ubuntu/images/hvm-ssd-gp3/ubuntu-noble-24.04-*-server-*"] + values = ["ubuntu/images/hvm-ssd-gp3/ubuntu-resolute-26.04-*-server-*"] } filter { @@ -40,7 +39,7 @@ data "aws_ami" "rhel" { filter { name = "name" - values = ["RHEL-10.0*HVM-20*"] + values = ["RHEL-10.1*HVM_GA-20*"] } filter { @@ -166,7 +165,9 @@ module "target_sg" { vpc_id = aws_vpc.vpc.id tags = local.tags - ingress_cidr_blocks = ["${data.enos_environment.localhost.public_ipv4_addresses[0]}/32"] + ingress_cidr_ipv4 = { + target = "${data.enos_environment.localhost.public_ipv4_addresses[0]}/32", + } } resource "aws_instance" "target" { @@ -175,7 +176,7 @@ resource "aws_instance" "target" { key_name = "enos-ci-ssh-key" associate_public_ip_address = true tags = local.tags - vpc_security_group_ids = [module.target_sg.security_group_id] + vpc_security_group_ids = [module.target_sg.id] subnet_id = aws_subnet.subnet[0].id } diff --git a/go.mod b/go.mod index 0f963e4..5aaa2ea 100644 --- a/go.mod +++ b/go.mod @@ -5,28 +5,32 @@ go 1.26 // https://github.com/ryancragun/go-cty/commit/fe11e2e2dc2e25104c2915b2c8e5b463bbf412bd replace github.com/zclconf/go-cty => github.com/ryancragun/go-cty v0.0.0-20251030155132-fe11e2e2dc2e +// Pin to 0.0.5 because the interface changes +replace github.com/olekukonko/tablewriter => github.com/olekukonko/tablewriter v0.0.5 + require ( - github.com/Masterminds/semver/v3 v3.4.0 - github.com/aws/aws-sdk-go-v2/config v1.32.14 + github.com/Masterminds/semver/v3 v3.5.0 + github.com/aws/aws-sdk-go-v2/config v1.32.23 + github.com/davecgh/go-spew v1.1.1 github.com/google/uuid v1.6.0 github.com/hashicorp/cli v1.1.7 github.com/hashicorp/go-hclog v1.6.3 github.com/hashicorp/go-multierror v1.1.1 github.com/hashicorp/hcl/v2 v2.24.0 - github.com/hashicorp/terraform-exec v0.25.0 + github.com/hashicorp/terraform-exec v0.25.2 github.com/hashicorp/terraform-json v0.27.2 github.com/hexops/gotextdiff v1.0.3 github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db github.com/mitchellh/go-wordwrap v1.0.1 - github.com/olekukonko/tablewriter v0.0.5 + github.com/olekukonko/tablewriter v1.1.4 github.com/spf13/cobra v1.10.2 github.com/stretchr/testify v1.11.1 - github.com/zclconf/go-cty v1.18.0 + github.com/zclconf/go-cty v1.18.1 github.com/zclconf/go-cty-yaml v1.2.0 - golang.org/x/sys v0.42.0 - golang.org/x/term v0.41.0 - golang.org/x/text v0.35.0 - google.golang.org/grpc v1.80.0 + golang.org/x/sys v0.46.0 + golang.org/x/term v0.44.0 + golang.org/x/text v0.38.0 + google.golang.org/grpc v1.81.1 google.golang.org/protobuf v1.36.11 ) @@ -37,31 +41,30 @@ require ( github.com/agext/levenshtein v1.2.3 // 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-v2 v1.41.5 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.19.14 // indirect - github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.21 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.21 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.21 // indirect - github.com/aws/aws-sdk-go-v2/internal/ini v1.8.6 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.7 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.21 // indirect - github.com/aws/aws-sdk-go-v2/service/signin v1.0.9 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.30.15 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.19 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.41.10 // indirect - github.com/aws/smithy-go v1.24.3 // indirect + github.com/aws/aws-sdk-go-v2 v1.41.12 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.19.22 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.28 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.28 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.28 // indirect + github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.29 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.12 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.28 // indirect + github.com/aws/aws-sdk-go-v2/service/signin v1.1.4 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.31.2 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.36.5 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.43.2 // indirect + github.com/aws/smithy-go v1.27.2 // indirect github.com/bgentry/speakeasy v0.2.0 // indirect github.com/clipperhouse/uax29/v2 v2.7.0 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect github.com/fatih/color v1.19.0 // indirect github.com/google/go-cmp v0.7.0 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-version v1.9.0 // indirect github.com/huandu/xstrings v1.5.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect - github.com/mattn/go-colorable v0.1.14 // indirect - github.com/mattn/go-isatty v0.0.20 // indirect - github.com/mattn/go-runewidth v0.0.22 // indirect + github.com/mattn/go-colorable v0.1.15 // indirect + github.com/mattn/go-isatty v0.0.22 // indirect + github.com/mattn/go-runewidth v0.0.24 // indirect github.com/mitchellh/copystructure v1.2.0 // indirect github.com/mitchellh/reflectwalk v1.0.2 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect @@ -69,11 +72,11 @@ require ( github.com/shopspring/decimal v1.4.0 // indirect github.com/spf13/cast v1.10.0 // indirect github.com/spf13/pflag v1.0.10 // indirect - golang.org/x/crypto v0.49.0 // indirect - golang.org/x/mod v0.34.0 // indirect - golang.org/x/net v0.52.0 // indirect - golang.org/x/sync v0.20.0 // indirect - golang.org/x/tools v0.43.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20260406154035-8fb7ec149431 // indirect + golang.org/x/crypto v0.53.0 // indirect + golang.org/x/mod v0.37.0 // indirect + golang.org/x/net v0.55.0 // indirect + golang.org/x/sync v0.21.0 // indirect + golang.org/x/tools v0.45.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20260526163538-3dc84a4a5aaa // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index f7d22d7..9320115 100644 --- a/go.sum +++ b/go.sum @@ -2,56 +2,56 @@ dario.cat/mergo v1.0.2 h1:85+piFYR1tMbRrLcDwR18y4UKJ3aH1Tbzi24VRW1TK8= dario.cat/mergo v1.0.2/go.mod h1:E/hbnu0NxMFBjpMIE34DRGLWqDy0g5FuKDhCb31ngxA= github.com/Masterminds/goutils v1.1.1 h1:5nUrii3FMTL5diU80unEVvNevw1nH4+ZV4DSLVJLSYI= github.com/Masterminds/goutils v1.1.1/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= -github.com/Masterminds/semver/v3 v3.4.0 h1:Zog+i5UMtVoCU8oKka5P7i9q9HgrJeGzI9SA1Xbatp0= -github.com/Masterminds/semver/v3 v3.4.0/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM= +github.com/Masterminds/semver/v3 v3.5.0 h1:kQceYJfbupGfZOKZQg0kou0DgAKhzDg2NZPAwZ/2OOE= +github.com/Masterminds/semver/v3 v3.5.0/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM= github.com/Masterminds/sprig/v3 v3.3.0 h1:mQh0Yrg1XPo6vjYXgtf5OtijNAKJRNcTdOOGZe3tPhs= github.com/Masterminds/sprig/v3 v3.3.0/go.mod h1:Zy1iXRYNqNLUolqCpL4uhk6SHUMAOSCzdgBfDb35Lz0= github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= -github.com/ProtonMail/go-crypto v1.3.0 h1:ILq8+Sf5If5DCpHQp4PbZdS1J7HDFRXz/+xKBiRGFrw= -github.com/ProtonMail/go-crypto v1.3.0/go.mod h1:9whxjD8Rbs29b4XWbB8irEcE8KHMqaR2e7GWU1R+/PE= +github.com/ProtonMail/go-crypto v1.4.1 h1:9RfcZHqEQUvP8RzecWEUafnZVtEvrBVL9BiF67IQOfM= +github.com/ProtonMail/go-crypto v1.4.1/go.mod h1:e1OaTyu5SYVrO9gKOEhTc+5UcXtTUa+P3uLudwcgPqo= github.com/agext/levenshtein v1.2.3 h1:YB2fHEn0UJagG8T1rrWknE3ZQzWM06O8AMAatNn7lmo= github.com/agext/levenshtein v1.2.3/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558= 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 v1.0.0 h1:F4z6KzEeeQIMeLFa97iZU6vupzoecKdU5TX24SNppXI= github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= -github.com/aws/aws-sdk-go-v2 v1.41.5 h1:dj5kopbwUsVUVFgO4Fi5BIT3t4WyqIDjGKCangnV/yY= -github.com/aws/aws-sdk-go-v2 v1.41.5/go.mod h1:mwsPRE8ceUUpiTgF7QmQIJ7lgsKUPQOUl3o72QBrE1o= -github.com/aws/aws-sdk-go-v2/config v1.32.14 h1:opVIRo/ZbbI8OIqSOKmpFaY7IwfFUOCCXBsUpJOwDdI= -github.com/aws/aws-sdk-go-v2/config v1.32.14/go.mod h1:U4/V0uKxh0Tl5sxmCBZ3AecYny4UNlVmObYjKuuaiOo= -github.com/aws/aws-sdk-go-v2/credentials v1.19.14 h1:n+UcGWAIZHkXzYt87uMFBv/l8THYELoX6gVcUvgl6fI= -github.com/aws/aws-sdk-go-v2/credentials v1.19.14/go.mod h1:cJKuyWB59Mqi0jM3nFYQRmnHVQIcgoxjEMAbLkpr62w= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.21 h1:NUS3K4BTDArQqNu2ih7yeDLaS3bmHD0YndtA6UP884g= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.21/go.mod h1:YWNWJQNjKigKY1RHVJCuupeWDrrHjRqHm0N9rdrWzYI= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.21 h1:Rgg6wvjjtX8bNHcvi9OnXWwcE0a2vGpbwmtICOsvcf4= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.21/go.mod h1:A/kJFst/nm//cyqonihbdpQZwiUhhzpqTsdbhDdRF9c= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.21 h1:PEgGVtPoB6NTpPrBgqSE5hE/o47Ij9qk/SEZFbUOe9A= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.21/go.mod h1:p+hz+PRAYlY3zcpJhPwXlLC4C+kqn70WIHwnzAfs6ps= -github.com/aws/aws-sdk-go-v2/internal/ini v1.8.6 h1:qYQ4pzQ2Oz6WpQ8T3HvGHnZydA72MnLuFK9tJwmrbHw= -github.com/aws/aws-sdk-go-v2/internal/ini v1.8.6/go.mod h1:O3h0IK87yXci+kg6flUKzJnWeziQUKciKrLjcatSNcY= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.7 h1:5EniKhLZe4xzL7a+fU3C2tfUN4nWIqlLesfrjkuPFTY= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.7/go.mod h1:x0nZssQ3qZSnIcePWLvcoFisRXJzcTVvYpAAdYX8+GI= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.21 h1:c31//R3xgIJMSC8S6hEVq+38DcvUlgFY0FM6mSI5oto= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.21/go.mod h1:r6+pf23ouCB718FUxaqzZdbpYFyDtehyZcmP5KL9FkA= -github.com/aws/aws-sdk-go-v2/service/signin v1.0.9 h1:QKZH0S178gCmFEgst8hN0mCX1KxLgHBKKY/CLqwP8lg= -github.com/aws/aws-sdk-go-v2/service/signin v1.0.9/go.mod h1:7yuQJoT+OoH8aqIxw9vwF+8KpvLZ8AWmvmUWHsGQZvI= -github.com/aws/aws-sdk-go-v2/service/sso v1.30.15 h1:lFd1+ZSEYJZYvv9d6kXzhkZu07si3f+GQ1AaYwa2LUM= -github.com/aws/aws-sdk-go-v2/service/sso v1.30.15/go.mod h1:WSvS1NLr7JaPunCXqpJnWk1Bjo7IxzZXrZi1QQCkuqM= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.19 h1:dzztQ1YmfPrxdrOiuZRMF6fuOwWlWpD2StNLTceKpys= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.19/go.mod h1:YO8TrYtFdl5w/4vmjL8zaBSsiNp3w0L1FfKVKenZT7w= -github.com/aws/aws-sdk-go-v2/service/sts v1.41.10 h1:p8ogvvLugcR/zLBXTXrTkj0RYBUdErbMnAFFp12Lm/U= -github.com/aws/aws-sdk-go-v2/service/sts v1.41.10/go.mod h1:60dv0eZJfeVXfbT1tFJinbHrDfSJ2GZl4Q//OSSNAVw= -github.com/aws/smithy-go v1.24.3 h1:XgOAaUgx+HhVBoP4v8n6HCQoTRDhoMghKqw4LNHsDNg= -github.com/aws/smithy-go v1.24.3/go.mod h1:YE2RhdIuDbA5E5bTdciG9KrW3+TiEONeUWCqxX9i1Fc= +github.com/aws/aws-sdk-go-v2 v1.41.12 h1:DIKX2c31ekm9RA2D9FBj1EWXx++9AdAqRw+e78Tq2Ck= +github.com/aws/aws-sdk-go-v2 v1.41.12/go.mod h1:27+ACypSLljLAEKsCYOmrjKh83vuTRkuAe9Uv/3A4bg= +github.com/aws/aws-sdk-go-v2/config v1.32.23 h1:PYDobtcsJXK6bQe9I8RQk6s19Bz3xa3xRU08Hy1Em3Y= +github.com/aws/aws-sdk-go-v2/config v1.32.23/go.mod h1:QID4dqUQVgEOYPKsPWd1sNWCCR2c5g7o3jeEtIXPOZU= +github.com/aws/aws-sdk-go-v2/credentials v1.19.22 h1:SHfH6wyPsEgG7fVsi5rQxWEt7tuIcN2PGhb1mTFv6tE= +github.com/aws/aws-sdk-go-v2/credentials v1.19.22/go.mod h1:54nO8lKD4aQPOntM/VTWjnR+DYzTwx0YkSMZMhAgewQ= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.28 h1:b+kcDejJrXc30zU/w8Tc9klISwaO5wh+6T0sMBdDoHM= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.28/go.mod h1:LnI62O9GnSv6GcuLXxOYqlq0C8EmxMcgnF6m7LdYuOY= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.28 h1:Xf2j7NdVcUKomlZ4iihOP4AZ3Fzlr8h4yKpXeP+OFPg= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.28/go.mod h1:O8cDo1dW63jU7ki//kRe1z+tLGcpnD1jrouitsQddDw= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.28 h1:KqIfN9kpkKkcBqBbNpNGTIrXO6ExTUvFKvXkC+YAzVo= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.28/go.mod h1:uxtQiKvLtNS4iXVsH2McVD/ls8FKN/uUhe1hGxPjrw0= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.29 h1:VkE9FuzTQVjBBrnj4+oCdxCLFIz7aqLYKUCjtvxVcOs= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.29/go.mod h1:H32Z2Qth9b+9LqjyBsCnozMQ8H2N7YBUDVXwbs0iggg= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.12 h1:ZD2+BSw9vFsNlKYIasSNt3uDbjqqXIBcM13UJv/Lx2k= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.12/go.mod h1:Ms4zlcVBbXbiP7EVLhl+lgjvA/a7YphqQ3Ih3174EmI= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.28 h1:axj4mEDletwKmTm/9jR+DkIMmCfcn5vE4jBMAAN+3Vg= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.28/go.mod h1:3Aaz69M0jqfSHLKqxgolgUBFT4hpwSNc7DzC95orEi8= +github.com/aws/aws-sdk-go-v2/service/signin v1.1.4 h1:YcpVyIPLCbiypN6KSphijN5fC7DDjX114SqA7prnnxg= +github.com/aws/aws-sdk-go-v2/service/signin v1.1.4/go.mod h1:5ZICS++oFTRPfa1GsBqFDWX/8WamZ/QQOcCzIuU/zLw= +github.com/aws/aws-sdk-go-v2/service/sso v1.31.2 h1:ySNWu7TPmj5fKFIa1GYvX+Ddxd5ccruqC20aMNuyWDM= +github.com/aws/aws-sdk-go-v2/service/sso v1.31.2/go.mod h1:A+U9luAOwFeB1kseyWCITVg7/NntoPebCFR9pQ4ch9A= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.36.5 h1:KSzGGqfk39O+WU3OEyYbx6F7sLDQCqxlOJ+2IksfK6U= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.36.5/go.mod h1:ATs88lXDeQB6CZOgQ5BIl9JbYS+EsCWUSDyff6L/oVo= +github.com/aws/aws-sdk-go-v2/service/sts v1.43.2 h1:RTO7mmGyedgnNmcPh3yQizNfc6GKoV5iqfdJavuf9vw= +github.com/aws/aws-sdk-go-v2/service/sts v1.43.2/go.mod h1:fBhUZXDin9YYqhcpOMjIcpdik25rVwWyxLdPH1RZd9s= +github.com/aws/smithy-go v1.27.2 h1:y9NPmSE6am6LjEFPfqHqG/jJk7AauQvhCJONKh7kpzk= +github.com/aws/smithy-go v1.27.2/go.mod h1:YE2RhdIuDbA5E5bTdciG9KrW3+TiEONeUWCqxX9i1Fc= github.com/bgentry/speakeasy v0.2.0 h1:tgObeVOf8WAvtuAX6DhJ4xks4CFNwPDZiqzGqIHE51E= github.com/bgentry/speakeasy v0.2.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/clipperhouse/uax29/v2 v2.7.0 h1:+gs4oBZ2gPfVrKPthwbMzWZDaAFPGYK72F0NJv2v7Vk= github.com/clipperhouse/uax29/v2 v2.7.0/go.mod h1:EFJ2TJMRUaplDxHKj1qAEhCtQPW2tJSwu5BF98AuoVM= -github.com/cloudflare/circl v1.6.1 h1:zqIqSPIndyBh1bjLVVDHMPpVKqp8Su/V+6MeDzzQBQ0= -github.com/cloudflare/circl v1.6.1/go.mod h1:uddAzsPgqdMAYatqJ0lsjX1oECcQLIlRpzZh3pJrofs= +github.com/cloudflare/circl v1.6.3 h1:9GPOhQGF9MCYUeXyMYlqTR6a5gTrgR/fBLXvUgtVcg8= +github.com/cloudflare/circl v1.6.3/go.mod h1:2eXP6Qfat4O/Yhh8BznvKnJ+uzEoTQ6jVKJRn81BiS4= github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= github.com/cyphar/filepath-securejoin v0.4.1 h1:JyxxyPEaktOD+GAnqIqTf9A8tHyAG22rowi7HkoSU1s= github.com/cyphar/filepath-securejoin v0.4.1/go.mod h1:Sdj7gXlvMcPZsbhwhQ33GguGLDGQL7h7bg04C/+u9jI= @@ -67,10 +67,10 @@ github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHk github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= 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.6.2 h1:6Q86EsPXMa7c3YZ3aLAQsMA0VlWmy43r6FHqa/UNbRM= -github.com/go-git/go-billy/v5 v5.6.2/go.mod h1:rcFC2rAsp/erv7CMz9GczHcuD0D32fWzH+MJAU+jaUU= -github.com/go-git/go-git/v5 v5.16.5 h1:mdkuqblwr57kVfXri5TTH+nMFLNUxIj9Z7F5ykFbw5s= -github.com/go-git/go-git/v5 v5.16.5/go.mod h1:QOMLpNf1qxuSY4StA/ArOdfFR2TrKEjJiye2kel2m+M= +github.com/go-git/go-billy/v5 v5.8.0 h1:I8hjc3LbBlXTtVuFNJuwYuMiHvQJDq1AT6u4DwDzZG0= +github.com/go-git/go-billy/v5 v5.8.0/go.mod h1:RpvI/rw4Vr5QA+Z60c6d6LXH0rYJo0uD5SqfmrrheCY= +github.com/go-git/go-git/v5 v5.18.0 h1:O831KI+0PR51hM2kep6T8k+w0/LIAD490gvqMCvL5hM= +github.com/go-git/go-git/v5 v5.18.0/go.mod h1:pW/VmeqkanRFqR6AljLcs7EA7FbZaN5MQqO7oZADXpo= github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= @@ -101,12 +101,12 @@ github.com/hashicorp/go-retryablehttp v0.7.8 h1:ylXZWnqa7Lhqpk0L1P1LzDtGcCR0rPVU github.com/hashicorp/go-retryablehttp v0.7.8/go.mod h1:rjiScheydd+CxvumBsIrFKlx3iS0jrZ7LvzFGFmuKbw= github.com/hashicorp/go-version v1.9.0 h1:CeOIz6k+LoN3qX9Z0tyQrPtiB1DFYRPfCIBtaXPSCnA= github.com/hashicorp/go-version v1.9.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= -github.com/hashicorp/hc-install v0.9.3 h1:1H4dgmgzxEVwT6E/d/vIL5ORGVKz9twRwDw+qA5Hyho= -github.com/hashicorp/hc-install v0.9.3/go.mod h1:FQlQ5I3I/X409N/J1U4pPeQQz1R3BoV0IysB7aiaQE0= +github.com/hashicorp/hc-install v0.9.5 h1:XHCjcMn2563ysuaQ9v9ec2FNc7c2PJOIEEGobAFeIx4= +github.com/hashicorp/hc-install v0.9.5/go.mod h1:ihEW4LshrNkxq2bU/MpVbKyn+yt1is2hYqUTHDGhG84= github.com/hashicorp/hcl/v2 v2.24.0 h1:2QJdZ454DSsYGoaE6QheQZjtKZSUs9Nh2izTWiwQxvE= github.com/hashicorp/hcl/v2 v2.24.0/go.mod h1:oGoO1FIQYfn/AgyOhlg9qLC6/nOJPX3qGbkZpYAcqfM= -github.com/hashicorp/terraform-exec v0.25.0 h1:Bkt6m3VkJqYh+laFMrWIpy9KHYFITpOyzRMNI35rNaY= -github.com/hashicorp/terraform-exec v0.25.0/go.mod h1:dl9IwsCfklDU6I4wq9/StFDp7dNbH/h5AnfS1RmiUl8= +github.com/hashicorp/terraform-exec v0.25.2 h1:fFLAVEtAjKdGfawGUXDnKooCnqJi+TuohT3W99AGbhk= +github.com/hashicorp/terraform-exec v0.25.2/go.mod h1:uaQV2oqVLqM4cixJryk6qIWS1qji3GtuwPG5pjGXYfc= github.com/hashicorp/terraform-json v0.27.2 h1:BwGuzM6iUPqf9JYM/Z4AF1OJ5VVJEEzoKST/tRDBJKU= github.com/hashicorp/terraform-json v0.27.2/go.mod h1:GzPLJ1PLdUG5xL6xn1OXWIjteQRT2CNT9o/6A9mi9hE= github.com/hexops/gotextdiff v1.0.3 h1:gitA9+qJrrTCsiCl7+kh75nPqQt1cx4ZkudSTLoUqJM= @@ -125,15 +125,15 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= 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.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE= -github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8= +github.com/mattn/go-colorable v0.1.15 h1:+u9SLTRGnXv73cEsnsmoZBom+dMU88B2M0aDcWy0/jY= +github.com/mattn/go-colorable v0.1.15/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8= 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.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= -github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-isatty v0.0.22 h1:j8l17JJ9i6VGPUFUYoTUKPSgKe/83EYU2zBC7YNKMw4= +github.com/mattn/go-isatty v0.0.22/go.mod h1:ZXfXG4SQHsB/w3ZeOYbR0PrPwLy+n6xiMrJlRFqopa4= github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= -github.com/mattn/go-runewidth v0.0.22 h1:76lXsPn6FyHtTY+jt2fTTvsMUCZq1k0qwRsAMuxzKAk= -github.com/mattn/go-runewidth v0.0.22/go.mod h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs= +github.com/mattn/go-runewidth v0.0.24 h1:cpokDiIn0MGnhdHwuWnJBITySJ20QyNGnY2kR/ay2DU= +github.com/mattn/go-runewidth v0.0.24/go.mod h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs= github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db h1:62I3jR2EmQ4l5rM/4FEfDWcRD+abF5XlKShorW5LRoQ= github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db/go.mod h1:l0dey0ia/Uv7NcFFVbCLtqEBQbrT4OCwCSKTEv6enCw= github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw= @@ -181,45 +181,44 @@ github.com/zclconf/go-cty-yaml v1.2.0 h1:GDyL4+e/Qe/S0B7YaecMLbVvAR/Mp21CXMOSiCT github.com/zclconf/go-cty-yaml v1.2.0/go.mod h1:9YLUH4g7lOhVWqUbctnVlZ5KLpg7JAprQNgxSZ1Gyxs= go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64= go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y= -go.opentelemetry.io/otel v1.39.0 h1:8yPrr/S0ND9QEfTfdP9V+SiwT4E0G7Y5MO7p85nis48= -go.opentelemetry.io/otel v1.39.0/go.mod h1:kLlFTywNWrFyEdH0oj2xK0bFYZtHRYUdv1NklR/tgc8= -go.opentelemetry.io/otel/metric v1.39.0 h1:d1UzonvEZriVfpNKEVmHXbdf909uGTOQjA0HF0Ls5Q0= -go.opentelemetry.io/otel/metric v1.39.0/go.mod h1:jrZSWL33sD7bBxg1xjrqyDjnuzTUB0x1nBERXd7Ftcs= -go.opentelemetry.io/otel/sdk v1.39.0 h1:nMLYcjVsvdui1B/4FRkwjzoRVsMK8uL/cj0OyhKzt18= -go.opentelemetry.io/otel/sdk v1.39.0/go.mod h1:vDojkC4/jsTJsE+kh+LXYQlbL8CgrEcwmt1ENZszdJE= -go.opentelemetry.io/otel/sdk/metric v1.39.0 h1:cXMVVFVgsIf2YL6QkRF4Urbr/aMInf+2WKg+sEJTtB8= -go.opentelemetry.io/otel/sdk/metric v1.39.0/go.mod h1:xq9HEVH7qeX69/JnwEfp6fVq5wosJsY1mt4lLfYdVew= -go.opentelemetry.io/otel/trace v1.39.0 h1:2d2vfpEDmCJ5zVYz7ijaJdOF59xLomrvj7bjt6/qCJI= -go.opentelemetry.io/otel/trace v1.39.0/go.mod h1:88w4/PnZSazkGzz/w84VHpQafiU4EtqqlVdxWy+rNOA= +go.opentelemetry.io/otel v1.43.0 h1:mYIM03dnh5zfN7HautFE4ieIig9amkNANT+xcVxAj9I= +go.opentelemetry.io/otel v1.43.0/go.mod h1:JuG+u74mvjvcm8vj8pI5XiHy1zDeoCS2LB1spIq7Ay0= +go.opentelemetry.io/otel/metric v1.43.0 h1:d7638QeInOnuwOONPp4JAOGfbCEpYb+K6DVWvdxGzgM= +go.opentelemetry.io/otel/metric v1.43.0/go.mod h1:RDnPtIxvqlgO8GRW18W6Z/4P462ldprJtfxHxyKd2PY= +go.opentelemetry.io/otel/sdk v1.43.0 h1:pi5mE86i5rTeLXqoF/hhiBtUNcrAGHLKQdhg4h4V9Dg= +go.opentelemetry.io/otel/sdk v1.43.0/go.mod h1:P+IkVU3iWukmiit/Yf9AWvpyRDlUeBaRg6Y+C58QHzg= +go.opentelemetry.io/otel/sdk/metric v1.43.0 h1:S88dyqXjJkuBNLeMcVPRFXpRw2fuwdvfCGLEo89fDkw= +go.opentelemetry.io/otel/sdk/metric v1.43.0/go.mod h1:C/RJtwSEJ5hzTiUz5pXF1kILHStzb9zFlIEe85bhj6A= +go.opentelemetry.io/otel/trace v1.43.0 h1:BkNrHpup+4k4w+ZZ86CZoHHEkohws8AY+WTX09nk+3A= +go.opentelemetry.io/otel/trace v1.43.0/go.mod h1:/QJhyVBUUswCphDVxq+8mld+AvhXZLhe+8WVFxiFff0= go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= -golang.org/x/crypto v0.49.0 h1:+Ng2ULVvLHnJ/ZFEq4KdcDd/cfjrrjjNSXNzxg0Y4U4= -golang.org/x/crypto v0.49.0/go.mod h1:ErX4dUh2UM+CFYiXZRTcMpEcN8b/1gxEuv3nODoYtCA= -golang.org/x/mod v0.34.0 h1:xIHgNUUnW6sYkcM5Jleh05DvLOtwc6RitGHbDk4akRI= -golang.org/x/mod v0.34.0/go.mod h1:ykgH52iCZe79kzLLMhyCUzhMci+nQj+0XkbXpNYtVjY= -golang.org/x/net v0.52.0 h1:He/TN1l0e4mmR3QqHMT2Xab3Aj3L9qjbhRm78/6jrW0= -golang.org/x/net v0.52.0/go.mod h1:R1MAz7uMZxVMualyPXb+VaqGSa3LIaUqk0eEt3w36Sw= -golang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4= -golang.org/x/sync v0.20.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= +golang.org/x/crypto v0.53.0 h1:QZ4Muo8THX6CizN2vPPd5fBGHyogrdK9fG4wLPFUsto= +golang.org/x/crypto v0.53.0/go.mod h1:DNLU434OwVakk9PzuwV8w62mAJpRJL3vsgcfp4Qnsio= +golang.org/x/mod v0.37.0 h1:vF1DjpVEshcIqoEaauuHebaLk1O1forxjxBaVn884JQ= +golang.org/x/mod v0.37.0/go.mod h1:m8S8VeM9r4dzDwjrKO0a1sZP3YjeMamRRlD+fmR2Q/0= +golang.org/x/net v0.55.0 h1:bcvxaJn3e1U6InsFWt1JUq1aSjnRxLzT2rtD2KfkDF8= +golang.org/x/net v0.55.0/go.mod h1:L5U2KuzuOe1lY7Z+aWVIKK6qEeJXnXV9yzGA+WCHJww= +golang.org/x/sync v0.21.0 h1:HLII4xRRTtCRkxYp4HNFF0Js/Og6q2i++KXbg0gHCwM= +golang.org/x/sync v0.21.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 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-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.42.0 h1:omrd2nAlyT5ESRdCLYdm3+fMfNFE/+Rf4bDIQImRJeo= -golang.org/x/sys v0.42.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= -golang.org/x/term v0.41.0 h1:QCgPso/Q3RTJx2Th4bDLqML4W6iJiaXFq2/ftQF13YU= -golang.org/x/term v0.41.0/go.mod h1:3pfBgksrReYfZ5lvYM0kSO0LIkAl4Yl2bXOkKP7Ec2A= -golang.org/x/text v0.35.0 h1:JOVx6vVDFokkpaq1AEptVzLTpDe9KGpj5tR4/X+ybL8= -golang.org/x/text v0.35.0/go.mod h1:khi/HExzZJ2pGnjenulevKNX1W67CUy0AsXcNubPGCA= -golang.org/x/tools v0.43.0 h1:12BdW9CeB3Z+J/I/wj34VMl8X+fEXBxVR90JeMX5E7s= -golang.org/x/tools v0.43.0/go.mod h1:uHkMso649BX2cZK6+RpuIPXS3ho2hZo4FVwfoy1vIk0= +golang.org/x/sys v0.46.0 h1:noSf2Fq6F8DBgS+LysIkx7rIExoNHJsxOAtPp4rthXw= +golang.org/x/sys v0.46.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= +golang.org/x/term v0.44.0 h1:0rLvDRCtNj0gZkyIXhCyOb2OAzEhLVqc4B+hrsBhrmc= +golang.org/x/term v0.44.0/go.mod h1:7ze4MdzUzLXpSAoFP1H0bOI9aXDqveSvatT5vKcFh2Y= +golang.org/x/text v0.38.0 h1:sXmwo9DwP3OK9EZ7PqAdaooSGozfl/3a6/xJcbzPRhE= +golang.org/x/text v0.38.0/go.mod h1:YXZt3QhHUKYT53r2lLKFIVi6Ao1jdzrTR/KQ09qyxF4= +golang.org/x/tools v0.45.0 h1:18qN3FAooORvApf5XjCXgsuayZOEtXf6JK18I3+ONa8= +golang.org/x/tools v0.45.0/go.mod h1:LuUGqqaXcXMEFEruIVJVm5mgDD8vww/z/SR1gQ4uE/0= gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4= gonum.org/v1/gonum v0.17.0/go.mod h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260406154035-8fb7ec149431 h1:wQMYGlvOe8JeVtFx06GzMMMCG4q7iDa3Ijr5P6kk96U= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260406154035-8fb7ec149431/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= -google.golang.org/grpc v1.80.0 h1:Xr6m2WmWZLETvUNvIUmeD5OAagMw3FiKmMlTdViWsHM= -google.golang.org/grpc v1.80.0/go.mod h1:ho/dLnxwi3EDJA4Zghp7k2Ec1+c2jqup0bFkw07bwF4= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260526163538-3dc84a4a5aaa h1:mZHHdPZl0dbGHCflZgAq/Q468DWVFcU2whhB2KAo8fk= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260526163538-3dc84a4a5aaa/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= +google.golang.org/grpc v1.81.1 h1:VnnIIZ88UzOOKLukQi+ImGz8O1Wdp8nAGGnvOfEIWQQ= +google.golang.org/grpc v1.81.1/go.mod h1:xGH9GfzOyMTGIOXBJmXt+BX/V0kcdQbdcuwQ/zNw42I= google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE= google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= diff --git a/internal/diagnostics/operation.go b/internal/diagnostics/operation.go index a30efb1..51a75b5 100644 --- a/internal/diagnostics/operation.go +++ b/internal/diagnostics/operation.go @@ -59,15 +59,18 @@ func resDiags(res *pb.Operation_Response) []*pb.Diagnostic { return Concat( res.GetDiagnostics(), res.GetGenerate().GetDiagnostics(), + res.GetCheck().GetGenerate().GetDiagnostics(), res.GetCheck().GetInit().GetDiagnostics(), res.GetCheck().GetValidate().GetDiagnostics(), res.GetCheck().GetPlan().GetDiagnostics(), res.GetLaunch().GetDiagnostics(), + res.GetLaunch().GetGenerate().GetDiagnostics(), res.GetLaunch().GetInit().GetDiagnostics(), res.GetLaunch().GetValidate().GetDiagnostics(), res.GetLaunch().GetPlan().GetDiagnostics(), res.GetLaunch().GetApply().GetDiagnostics(), res.GetRun().GetDiagnostics(), + res.GetRun().GetGenerate().GetDiagnostics(), res.GetRun().GetInit().GetDiagnostics(), res.GetRun().GetValidate().GetDiagnostics(), res.GetRun().GetPlan().GetDiagnostics(), @@ -75,6 +78,7 @@ func resDiags(res *pb.Operation_Response) []*pb.Diagnostic { res.GetRun().GetPriorStateShow().GetDiagnostics(), res.GetRun().GetDestroy().GetDiagnostics(), res.GetDestroy().GetDiagnostics(), + res.GetDestroy().GetGenerate().GetDiagnostics(), res.GetDestroy().GetInit().GetDiagnostics(), res.GetDestroy().GetPriorStateShow().GetDiagnostics(), res.GetDestroy().GetDestroy().GetDiagnostics(),