Skip to content

Commit db858d3

Browse files
authored
Merge branch 'master' into feat-support-async-call
2 parents aa2917c + edee724 commit db858d3

File tree

6 files changed

+898
-1532
lines changed

6 files changed

+898
-1532
lines changed

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
}

0 commit comments

Comments
 (0)