Skip to content

Commit 0c0d590

Browse files
authored
Merge branch 'master' into feat-support-async-call
2 parents aa2917c + 513ca26 commit 0c0d590

15 files changed

+2105
-1584
lines changed

go.mod

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
module github.com/draios/terraform-provider-sysdig
22

3-
go 1.19
3+
go 1.23
4+
5+
toolchain go1.23.3
46

57
require (
68
github.com/Jeffail/gabs/v2 v2.7.0
79
github.com/aws/aws-sdk-go v1.44.284
810
github.com/hashicorp/go-cty v1.4.1-0.20200414143053-d3edf31b6320
9-
github.com/hashicorp/go-retryablehttp v0.7.4
11+
github.com/hashicorp/go-retryablehttp v0.7.7
1012
github.com/hashicorp/terraform-plugin-log v0.8.0
1113
github.com/hashicorp/terraform-plugin-sdk/v2 v2.26.1
1214
github.com/jmespath/go-jmespath v0.4.0
@@ -15,7 +17,7 @@ require (
1517
github.com/spf13/cast v1.5.1
1618
github.com/stretchr/testify v1.8.4
1719
github.com/sysdiglabs/agent-kilt/runtimes/cloudformation v0.0.0-20240201123620-2272de6dee9f
18-
google.golang.org/protobuf v1.30.0
20+
google.golang.org/protobuf v1.36.0
1921
)
2022

2123
require (
@@ -27,15 +29,15 @@ require (
2729
github.com/docker/distribution v2.8.2+incompatible // indirect
2830
github.com/docker/docker v24.0.2+incompatible // indirect
2931
github.com/docker/docker-credential-helpers v0.7.0 // indirect
30-
github.com/fatih/color v1.13.0 // indirect
32+
github.com/fatih/color v1.16.0 // indirect
3133
github.com/go-akka/configuration v0.0.0-20200606091224-a002c0330665 // indirect
32-
github.com/golang/protobuf v1.5.3 // indirect
33-
github.com/google/go-cmp v0.5.9 // indirect
34+
github.com/golang/protobuf v1.5.4 // indirect
35+
github.com/google/go-cmp v0.6.0 // indirect
3436
github.com/google/go-containerregistry v0.15.2 // indirect
3537
github.com/hashicorp/errwrap v1.0.0 // indirect
3638
github.com/hashicorp/go-checkpoint v0.5.0 // indirect
3739
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
38-
github.com/hashicorp/go-hclog v1.4.0 // indirect
40+
github.com/hashicorp/go-hclog v1.6.3 // indirect
3941
github.com/hashicorp/go-multierror v1.1.1 // indirect
4042
github.com/hashicorp/go-plugin v1.4.8 // indirect
4143
github.com/hashicorp/go-uuid v1.0.3 // indirect
@@ -51,7 +53,7 @@ require (
5153
github.com/hashicorp/yamux v0.0.0-20181012175058-2f1d1f20f75d // indirect
5254
github.com/klauspost/compress v1.16.6 // indirect
5355
github.com/mattn/go-colorable v0.1.13 // indirect
54-
github.com/mattn/go-isatty v0.0.19 // indirect
56+
github.com/mattn/go-isatty v0.0.20 // indirect
5557
github.com/mitchellh/copystructure v1.2.0 // indirect
5658
github.com/mitchellh/go-homedir v1.1.0 // indirect
5759
github.com/mitchellh/go-testing-interface v1.14.1 // indirect
@@ -69,14 +71,14 @@ require (
6971
github.com/vmihailenco/msgpack/v4 v4.3.12 // indirect
7072
github.com/vmihailenco/tagparser v0.1.1 // indirect
7173
github.com/zclconf/go-cty v1.13.2 // indirect
72-
golang.org/x/crypto v0.7.0 // indirect
73-
golang.org/x/mod v0.10.0 // indirect
74-
golang.org/x/net v0.9.0 // indirect
75-
golang.org/x/sync v0.3.0 // indirect
76-
golang.org/x/sys v0.14.0 // indirect
77-
golang.org/x/text v0.9.0 // indirect
74+
golang.org/x/crypto v0.31.0 // indirect
75+
golang.org/x/mod v0.17.0 // indirect
76+
golang.org/x/net v0.33.0 // indirect
77+
golang.org/x/sync v0.10.0 // indirect
78+
golang.org/x/sys v0.28.0 // indirect
79+
golang.org/x/text v0.21.0 // indirect
7880
google.golang.org/appengine v1.6.7 // indirect
79-
google.golang.org/genproto v0.0.0-20221207170731-23e4bf6bdc37 // indirect
80-
google.golang.org/grpc v1.51.0 // indirect
81+
google.golang.org/genproto/googleapis/rpc v0.0.0-20241216192217-9240e9c98484 // indirect
82+
google.golang.org/grpc v1.69.2 // indirect
8183
gopkg.in/yaml.v3 v3.0.1 // indirect
8284
)

go.sum

Lines changed: 61 additions & 36 deletions
Large diffs are not rendered by default.

sysdig/data_source_sysdig_secure_onboarding.go

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,11 @@ import (
88
"time"
99

1010
"github.com/aws/aws-sdk-go/aws/arn"
11-
v2 "github.com/draios/terraform-provider-sysdig/sysdig/internal/client/v2"
1211
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
1312
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
1413
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation"
14+
15+
v2 "github.com/draios/terraform-provider-sysdig/sysdig/internal/client/v2"
1516
)
1617

1718
func getSecureOnboardingClient(c SysdigClients) (v2.OnboardingSecureInterface, error) {
@@ -344,6 +345,15 @@ func dataSourceSysdigSecureCloudIngestionAssets() *schema.Resource {
344345
},
345346

346347
Schema: map[string]*schema.Schema{
348+
"cloud_provider": {
349+
Type: schema.TypeString,
350+
Optional: true,
351+
ValidateFunc: validation.StringInSlice([]string{"aws", "gcp", "azure"}, false),
352+
},
353+
"cloud_provider_id": {
354+
Type: schema.TypeString,
355+
Optional: true,
356+
},
347357
"aws": {
348358
Type: schema.TypeMap,
349359
Computed: true,
@@ -370,18 +380,25 @@ func dataSourceSysdigSecureCloudIngestionAssetsRead(ctx context.Context, d *sche
370380
return diag.FromErr(err)
371381
}
372382

373-
assets, err := client.GetCloudIngestionAssetsSecure(ctx)
383+
assets, err := client.GetCloudIngestionAssetsSecure(ctx, d.Get("cloud_provider").(string), d.Get("cloud_provider_id").(string))
374384
if err != nil {
375385
return diag.FromErr(err)
376386
}
377387

378388
assetsAws, _ := assets["aws"].(map[string]interface{})
379389
assetsGcp, _ := assets["gcp"].(map[string]interface{})
380390

391+
var ingestionURL string
392+
if assetsAws["snsMetadata"] != nil {
393+
ingestionURL = assetsAws["snsMetadata"].(map[string]interface{})["ingestionURL"].(string)
394+
}
395+
381396
d.SetId("cloudIngestionAssets")
382397
err = d.Set("aws", map[string]interface{}{
383-
"eventBusARN": assetsAws["eventBusARN"],
384-
"eventBusARNGov": assetsAws["eventBusARNGov"],
398+
"eventBusARN": assetsAws["eventBusARN"],
399+
"eventBusARNGov": assetsAws["eventBusARNGov"],
400+
"sns_routing_key": assetsAws["snsRoutingKey"],
401+
"sns_routing_url": ingestionURL,
385402
})
386403
if err != nil {
387404
return diag.FromErr(err)
@@ -456,8 +473,10 @@ func dataSourceSysdigSecureTrustedOracleAppRead(ctx context.Context, d *schema.R
456473
return nil
457474
}
458475

459-
var matchFirstCap = regexp.MustCompile("(.)([A-Z][a-z]+)")
460-
var matchAllCap = regexp.MustCompile("([a-z0-9])([A-Z])")
476+
var (
477+
matchFirstCap = regexp.MustCompile("(.)([A-Z][a-z]+)")
478+
matchAllCap = regexp.MustCompile("([a-z0-9])([A-Z])")
479+
)
461480

462481
func snakeCase(str string) string {
463482
snake := matchFirstCap.ReplaceAllString(str, "${1}_${2}")

sysdig/data_source_sysdig_secure_onboarding_test.go

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,10 +175,17 @@ func TestAccCloudIngestionAssetsDataSource(t *testing.T) {
175175
},
176176
},
177177
Steps: []resource.TestStep{
178+
{
179+
Config: `data "sysdig_secure_cloud_ingestion_assets" "assets" {
180+
cloud_provider = "invalid"
181+
cloud_provider_id = "123"
182+
}`,
183+
ExpectError: regexp.MustCompile(`.*expected cloud_provider to be one of.*`),
184+
},
178185
{
179186
Config: `data "sysdig_secure_cloud_ingestion_assets" "assets" {}`,
180187
Check: resource.ComposeTestCheckFunc(
181-
resource.TestCheckResourceAttr("data.sysdig_secure_cloud_ingestion_assets.assets", "aws.%", "2"),
188+
resource.TestCheckResourceAttr("data.sysdig_secure_cloud_ingestion_assets.assets", "aws.%", "4"),
182189
// not asserting the gov exported fields because not every backend environment is gov supported and thus will have empty values
183190

184191
resource.TestCheckResourceAttrSet("data.sysdig_secure_cloud_ingestion_assets.assets", "gcp_routing_key"),
@@ -188,6 +195,16 @@ func TestAccCloudIngestionAssetsDataSource(t *testing.T) {
188195
resource.TestCheckResourceAttrSet("data.sysdig_secure_cloud_ingestion_assets.assets", "gcp_metadata.ingestionURL"),
189196
),
190197
},
198+
{
199+
Config: `data "sysdig_secure_cloud_ingestion_assets" "assets" {
200+
cloud_provider = "aws"
201+
cloud_provider_id = "012345678901"
202+
}`,
203+
Check: resource.ComposeTestCheckFunc(
204+
resource.TestCheckResourceAttrSet("data.sysdig_secure_cloud_ingestion_assets.assets", "aws.sns_routing_key"),
205+
resource.TestCheckResourceAttrSet("data.sysdig_secure_cloud_ingestion_assets.assets", "aws.sns_routing_url"),
206+
),
207+
},
191208
},
192209
})
193210
}

sysdig/internal/client/v2/client.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ type SecureCommon interface {
5959
PostureZoneInterface
6060
PostureControlInterface
6161
PostureAcceptRiskInterface
62+
PostureVulnerabilityAcceptRiskInterface
6263
}
6364

6465
type Requester interface {

0 commit comments

Comments
 (0)