Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -53,3 +53,4 @@ oanc
# Local test folder
local-terraform-test/
dist/
.secrets
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,15 @@ import (
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation"
)

func resourceSysdigSecureScanningPolicy() *schema.Resource {
func deprecatedResourceSysdigSecureScanningPolicy() *schema.Resource {
timeout := 5 * time.Minute

return &schema.Resource{
DeprecationMessage: "The legacy scanning engine has been deprecated. This resource will be removed in future releases.",
CreateContext: resourceSysdigScanningPolicyCreate,
ReadContext: resourceSysdigScanningPolicyRead,
UpdateContext: resourceSysdigScanningPolicyUpdate,
DeleteContext: resourceSysdigScanningPolicyDelete,
CreateContext: deprecatedResourceSysdigScanningPolicyCreate,
ReadContext: deprecatedResourceSysdigScanningPolicyRead,
UpdateContext: deprecatedResourceSysdigScanningPolicyUpdate,
DeleteContext: deprecatedResourceSysdigScanningPolicyDelete,
Importer: &schema.ResourceImporter{
StateContext: schema.ImportStatePassthroughContext,
},
Expand Down Expand Up @@ -106,77 +106,77 @@ func resourceSysdigSecureScanningPolicy() *schema.Resource {
}
}

func getSecureScanningPolicyClient(c SysdigClients) (v2.ScanningPolicyInterface, error) {
func getDeprecatedSecureScanningPolicyClient(c SysdigClients) (v2.DeprecatedScanningPolicyInterface, error) {
return c.sysdigSecureClientV2()
}

func resourceSysdigScanningPolicyCreate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
client, err := getSecureScanningPolicyClient(meta.(SysdigClients))
func deprecatedResourceSysdigScanningPolicyCreate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
client, err := getDeprecatedSecureScanningPolicyClient(meta.(SysdigClients))
if err != nil {
return diag.FromErr(err)
}

scanningPolicy := scanningPolicyFromResourceData(d)
scanningPolicy, err = client.CreateScanningPolicy(ctx, scanningPolicy)
scanningPolicy := deprecatedScanningPolicyFromResourceData(d)
scanningPolicy, err = client.CreateDeprecatedScanningPolicy(ctx, scanningPolicy)
if err != nil {
return diag.FromErr(err)
}

scanningPolicyToResourceData(&scanningPolicy, d)
deprecatedScanningPolicyToResourceData(&scanningPolicy, d)

return nil
}

func resourceSysdigScanningPolicyUpdate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
client, err := getSecureScanningPolicyClient(meta.(SysdigClients))
func deprecatedResourceSysdigScanningPolicyUpdate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
client, err := getDeprecatedSecureScanningPolicyClient(meta.(SysdigClients))
if err != nil {
return diag.FromErr(err)
}

scanningPolicy := scanningPolicyFromResourceData(d)
scanningPolicy := deprecatedScanningPolicyFromResourceData(d)
id := d.Get("id").(string)
scanningPolicy.ID = id
_, err = client.UpdateScanningPolicyByID(ctx, scanningPolicy)
_, err = client.UpdateDeprecatedScanningPolicyByID(ctx, scanningPolicy)
if err != nil {
return diag.FromErr(err)
}

return nil
}

func resourceSysdigScanningPolicyRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
client, err := getSecureScanningPolicyClient(meta.(SysdigClients))
func deprecatedResourceSysdigScanningPolicyRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
client, err := getDeprecatedSecureScanningPolicyClient(meta.(SysdigClients))
if err != nil {
return diag.FromErr(err)
}

id := d.Get("id").(string)
scanningPolicy, err := client.GetScanningPolicyByID(ctx, id)
scanningPolicy, err := client.GetDeprecatedScanningPolicyByID(ctx, id)
if err != nil {
return diag.FromErr(err)
}

scanningPolicyToResourceData(&scanningPolicy, d)
deprecatedScanningPolicyToResourceData(&scanningPolicy, d)

return nil
}

func resourceSysdigScanningPolicyDelete(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
client, err := getSecureScanningPolicyClient(meta.(SysdigClients))
func deprecatedResourceSysdigScanningPolicyDelete(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
client, err := getDeprecatedSecureScanningPolicyClient(meta.(SysdigClients))
if err != nil {
return diag.FromErr(err)
}

id := d.Get("id").(string)
err = client.DeleteScanningPolicyByID(ctx, id)
err = client.DeleteDeprecatedScanningPolicyByID(ctx, id)
if err != nil {
return diag.FromErr(err)
}

return nil
}

func scanningPolicyToResourceData(scanningPolicy *v2.ScanningPolicy, d *schema.ResourceData) {
func deprecatedScanningPolicyToResourceData(scanningPolicy *v2.DeprecatedScanningPolicy, d *schema.ResourceData) {
d.SetId(scanningPolicy.ID)
_ = d.Set("name", scanningPolicy.Name)
_ = d.Set("version", scanningPolicy.Version)
Expand All @@ -186,15 +186,15 @@ func scanningPolicyToResourceData(scanningPolicy *v2.ScanningPolicy, d *schema.R

var rules []map[string]interface{}
for _, rule := range scanningPolicy.Rules {
ruleInfo := scanningPolicyRulesToResourceData(rule)
ruleInfo := deprecatedScanningPolicyRulesToResourceData(rule)

rules = append(rules, ruleInfo)
}

_ = d.Set("rules", rules)
}

func scanningPolicyRulesToResourceData(scanningPolicyRule v2.ScanningGate) map[string]interface{} {
func deprecatedScanningPolicyRulesToResourceData(scanningPolicyRule v2.DeprecatedScanningGate) map[string]interface{} {
rule := map[string]interface{}{
"id": scanningPolicyRule.ID,
"gate": scanningPolicyRule.Gate,
Expand All @@ -214,33 +214,33 @@ func scanningPolicyRulesToResourceData(scanningPolicyRule v2.ScanningGate) map[s
return rule
}

func scanningPolicyFromResourceData(d *schema.ResourceData) v2.ScanningPolicy {
scanningPolicy := v2.ScanningPolicy{
func deprecatedScanningPolicyFromResourceData(d *schema.ResourceData) v2.DeprecatedScanningPolicy {
scanningPolicy := v2.DeprecatedScanningPolicy{
Name: d.Get("name").(string),
ID: d.Get("id").(string),
Comment: d.Get("comment").(string),
Version: d.Get("version").(string),
IsDefault: d.Get("isdefault").(bool),
PolicyBundleId: d.Get("policy_bundle_id").(string),
}
scanningPolicy.Rules = scanningPolicyRulesFromResourceData(d)
scanningPolicy.Rules = deprecatedScanningPolicyRulesFromResourceData(d)

return scanningPolicy
}

func scanningPolicyRulesFromResourceData(d *schema.ResourceData) (rules []v2.ScanningGate) {
func deprecatedScanningPolicyRulesFromResourceData(d *schema.ResourceData) (rules []v2.DeprecatedScanningGate) {
for _, ruleItr := range d.Get("rules").(*schema.Set).List() {
ruleInfo := ruleItr.(map[string]interface{})
rule := v2.ScanningGate{
rule := v2.DeprecatedScanningGate{
Gate: ruleInfo["gate"].(string),
ID: ruleInfo["id"].(string),
Trigger: ruleInfo["trigger"].(string),
Action: ruleInfo["action"].(string),
}
var params []v2.ScanningGateParam
var params []v2.DeprecatedScanningGateParam
for _, paramsItr := range ruleInfo["params"].(*schema.Set).List() {
paramsInfo := paramsItr.(map[string]interface{})
param := v2.ScanningGateParam{
param := v2.DeprecatedScanningGateParam{
Name: paramsInfo["name"].(string),
Value: paramsInfo["value"].(string),
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import (
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
)

func TestAccScanningPolicy(t *testing.T) {
func TestAccDeprecatedScanningPolicy(t *testing.T) {
rText := func() string { return acctest.RandStringFromCharSet(10, acctest.CharSetAlphaNum) }

resource.ParallelTest(t, resource.TestCase{
Expand All @@ -29,7 +29,7 @@ func TestAccScanningPolicy(t *testing.T) {
},
Steps: []resource.TestStep{
{
Config: scanningPolicyWithName(rText()),
Config: deprecatedScanningPolicyWithName(rText()),
},
{
ResourceName: "sysdig_secure_scanning_policy.sample",
Expand All @@ -40,7 +40,7 @@ func TestAccScanningPolicy(t *testing.T) {
})
}

func scanningPolicyWithName(name string) string {
func deprecatedScanningPolicyWithName(name string) string {
return fmt.Sprintf(`
resource "sysdig_secure_scanning_policy" "sample" {
name = "TERRAFORM TEST 1 %s"
Expand Down
Loading
Loading