Skip to content

Commit ce25a2d

Browse files
bug: Updated configuration of schedule_scan_settings attribute in aquasec_enforcer_group.
Implementation: * Implemented the default values for days and time fields in the resource schema. * Updated test cases to reflect the changes in the resource schema. * Ensured backward compatibility by making the schedule_scan_settings attribute optional.
1 parent 230b59c commit ce25a2d

File tree

4 files changed

+122
-27
lines changed

4 files changed

+122
-27
lines changed

aquasec/data_enforcer_group.go

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -451,7 +451,7 @@ func dataEnforcerGroupRead(ctx context.Context, d *schema.ResourceData, m interf
451451
d.Set("token", group.Token)
452452
d.Set("command", flattenCommands(group.Command))
453453
d.Set("orchestrator", flattenOrchestrators(group.Orchestrator))
454-
d.Set("schedule_scan_settings", flattenScheduleScanSettings(group.ScheduleScanSettings))
454+
d.Set("schedule_scan_settings", flattenScheduleScanSetting(group.ScheduleScanSettings))
455455
d.Set("type", group.Type)
456456
d.Set("host_os", group.HostOs)
457457
d.Set("install_command", group.InstallCommand)
@@ -516,21 +516,17 @@ func flattenOrchestrator(Orch client.EnforcerOrchestrator) map[string]interface{
516516
}
517517
}
518518

519-
func flattenScheduleScanSetting(setting client.EnforcerScheduleScanSettings) map[string]interface{} {
520-
return map[string]interface{}{
521-
"disabled": setting.Disabled,
522-
"is_custom": setting.IsCustom,
523-
"days": setting.Days,
524-
"time": setting.Time,
519+
func flattenScheduleScanSetting(setting client.EnforcerScheduleScanSettings) []interface{} {
520+
return []interface{}{
521+
map[string]interface{}{
522+
"disabled": setting.Disabled,
523+
"is_custom": setting.IsCustom,
524+
"days": setting.Days,
525+
"time": setting.Time,
526+
},
525527
}
526528
}
527529

528-
func flattenScheduleScanSettings(setting client.EnforcerScheduleScanSettings) []map[string]interface{} {
529-
set := make([]map[string]interface{}, 1)
530-
set[0] = flattenScheduleScanSetting(setting)
531-
return set
532-
}
533-
534530
func flattenCommands(Command client.EnforcerCommand) []map[string]interface{} {
535531
comm := make([]map[string]interface{}, 1)
536532
comm[0] = flattenCommand(Command)

aquasec/data_enforcer_group_test.go

Lines changed: 50 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,58 @@ func TestAquasecEnforcerGroupDatasource(t *testing.T) {
3434
Config: testAccCheckAquasecEnforcerGroupDataSource(basicEnforcerGroup),
3535
Check: testAccCheckAquasecEnforcerGroupDataSourceExists("data.aquasec_enforcer_groups.testegdata"),
3636
},
37+
{
38+
Config: testAccCheckAquasecEnforcerGroupDataSourceWithScheduleScanSettings(basicEnforcerGroup),
39+
Check: testAccCheckAquasecEnforcerGroupDataSourceExists("data.aquasec_enforcer_groups.testegdata"),
40+
},
41+
{
42+
Config: testAccCheckAquasecEnforcerGroupDataSource(basicEnforcerGroup),
43+
Check: testAccCheckAquasecEnforcerGroupDataSourceExists("data.aquasec_enforcer_groups.testegdata"),
44+
},
3745
},
3846
})
3947
}
4048

4149
func testAccCheckAquasecEnforcerGroupDataSource(enforcerGroup client.EnforcerGroup) string {
4250
return fmt.Sprintf(`
4351
52+
resource "aquasec_enforcer_groups" "testegdata" {
53+
group_id = "%s"
54+
description = "%s"
55+
logical_name = "%s"
56+
enforce = "%v"
57+
gateways = ["%s"]
58+
type = "%s"
59+
orchestrator {
60+
type = "%s"
61+
service_account = "%s"
62+
namespace = "%s"
63+
master = "%v"
64+
}
65+
}
66+
data "aquasec_enforcer_groups" "testegdata" {
67+
group_id = aquasec_enforcer_groups.testegdata.group_id
68+
depends_on = [
69+
aquasec_enforcer_groups.testegdata
70+
]
71+
}
72+
`,
73+
enforcerGroup.ID,
74+
enforcerGroup.Description,
75+
enforcerGroup.LogicalName,
76+
enforcerGroup.Enforce,
77+
enforcerGroup.Gateways[0],
78+
enforcerGroup.Type,
79+
enforcerGroup.Orchestrator.Type,
80+
enforcerGroup.Orchestrator.ServiceAccount,
81+
enforcerGroup.Orchestrator.Namespace,
82+
enforcerGroup.Orchestrator.Master,
83+
)
84+
}
85+
86+
func testAccCheckAquasecEnforcerGroupDataSourceWithScheduleScanSettings(enforcerGroup client.EnforcerGroup) string {
87+
return fmt.Sprintf(`
88+
4489
resource "aquasec_enforcer_groups" "testegdata" {
4590
group_id = "%s"
4691
description = "%s"
@@ -55,10 +100,10 @@ func testAccCheckAquasecEnforcerGroupDataSource(enforcerGroup client.EnforcerGro
55100
master = "%v"
56101
}
57102
schedule_scan_settings {
58-
disabled = %v
59-
is_custom = %v
60-
days = [0,1,2,3,4,5,6]
61-
time = [3, 0]
103+
disabled = false
104+
is_custom = true
105+
days = [0,1,2,3,4]
106+
time = [6,0]
62107
}
63108
}
64109
data "aquasec_enforcer_groups" "testegdata" {
@@ -78,9 +123,7 @@ func testAccCheckAquasecEnforcerGroupDataSource(enforcerGroup client.EnforcerGro
78123
enforcerGroup.Orchestrator.ServiceAccount,
79124
enforcerGroup.Orchestrator.Namespace,
80125
enforcerGroup.Orchestrator.Master,
81-
enforcerGroup.ScheduleScanSettings.Disabled,
82-
enforcerGroup.ScheduleScanSettings.IsCustom)
83-
126+
)
84127
}
85128

86129
func testAccCheckAquasecEnforcerGroupDataSourceExists(n string) resource.TestCheckFunc {

aquasec/resource_enforcer_group.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -378,26 +378,32 @@ func resourceEnforcerGroup() *schema.Resource {
378378
Type: schema.TypeList,
379379
Description: "Scheduling scan time for which you are creating the Enforcer group.",
380380
Optional: true,
381+
Computed: true,
382+
MaxItems: 1,
381383
Elem: &schema.Resource{
382384
Schema: map[string]*schema.Schema{
383385
"disabled": {
384386
Type: schema.TypeBool,
385387
Optional: true,
388+
Computed: true,
386389
},
387390
"is_custom": {
388391
Type: schema.TypeBool,
389392
Optional: true,
393+
Computed: true,
390394
},
391395
"days": {
392396
Type: schema.TypeList,
393397
Optional: true,
398+
Computed: true,
394399
Elem: &schema.Schema{
395400
Type: schema.TypeInt,
396401
},
397402
},
398403
"time": {
399404
Type: schema.TypeList,
400405
Optional: true,
406+
Computed: true,
401407
Elem: &schema.Schema{
402408
Type: schema.TypeInt,
403409
},
@@ -499,7 +505,7 @@ func resourceEnforcerGroupRead(ctx context.Context, d *schema.ResourceData, m in
499505
d.Set("token", r.Token)
500506
d.Set("command", flattenCommands(r.Command))
501507
d.Set("orchestrator", flattenOrchestrators(r.Orchestrator))
502-
d.Set("schedule_scan_settings", flattenScheduleScanSettings(r.ScheduleScanSettings))
508+
d.Set("schedule_scan_settings", flattenScheduleScanSetting(r.ScheduleScanSettings))
503509
d.Set("host_os", r.HostOs)
504510
d.Set("install_command", r.InstallCommand)
505511
d.Set("hosts_count", r.HostsCount)

aquasec/resource_enforcer_group_test.go

Lines changed: 56 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,28 @@ func TestAquasecEnforcerGroupResource(t *testing.T) {
3535
Providers: testAccProviders,
3636
CheckDestroy: CheckDestroy(fmt.Sprintf("aquasec_enforcer_groups.%v", basicEnforcerGroup.ID)),
3737
Steps: []resource.TestStep{
38+
{
39+
Config: getBasicEnforcerGroupResource(basicEnforcerGroup),
40+
Check: resource.ComposeAggregateTestCheckFunc(
41+
resource.TestCheckResourceAttr(rootRef, "group_id", basicEnforcerGroup.ID),
42+
resource.TestCheckResourceAttr(rootRef, "description", basicEnforcerGroup.Description),
43+
resource.TestCheckResourceAttr(rootRef, "logical_name", basicEnforcerGroup.LogicalName),
44+
resource.TestCheckResourceAttr(rootRef, "enforce", fmt.Sprintf("%v", basicEnforcerGroup.Enforce)),
45+
resource.TestCheckResourceAttr(rootRef, "gateways.0", basicEnforcerGroup.Gateways[0]),
46+
resource.TestCheckResourceAttr(rootRef, "type", basicEnforcerGroup.Type),
47+
),
48+
},
49+
{
50+
Config: getBasicEnforcerGroupResourceWithScheduleScanSettings(basicEnforcerGroup),
51+
Check: resource.ComposeAggregateTestCheckFunc(
52+
resource.TestCheckResourceAttr(rootRef, "group_id", basicEnforcerGroup.ID),
53+
resource.TestCheckResourceAttr(rootRef, "description", basicEnforcerGroup.Description),
54+
resource.TestCheckResourceAttr(rootRef, "logical_name", basicEnforcerGroup.LogicalName),
55+
resource.TestCheckResourceAttr(rootRef, "enforce", fmt.Sprintf("%v", basicEnforcerGroup.Enforce)),
56+
resource.TestCheckResourceAttr(rootRef, "gateways.0", basicEnforcerGroup.Gateways[0]),
57+
resource.TestCheckResourceAttr(rootRef, "type", basicEnforcerGroup.Type),
58+
),
59+
},
3860
{
3961
Config: getBasicEnforcerGroupResource(basicEnforcerGroup),
4062
Check: resource.ComposeAggregateTestCheckFunc(
@@ -56,6 +78,36 @@ func TestAquasecEnforcerGroupResource(t *testing.T) {
5678
}
5779

5880
func getBasicEnforcerGroupResource(enforcerGroup client.EnforcerGroup) string {
81+
return fmt.Sprintf(`
82+
resource "aquasec_enforcer_groups" "%s" {
83+
group_id = "%s"
84+
description = "%s"
85+
logical_name = "%s"
86+
enforce = "%v"
87+
gateways = ["%s"]
88+
type = "%s"
89+
orchestrator {
90+
type = "%s"
91+
service_account = "%s"
92+
namespace = "%s"
93+
master = "%v"
94+
}
95+
}
96+
`, enforcerGroup.ID,
97+
enforcerGroup.ID,
98+
enforcerGroup.Description,
99+
enforcerGroup.LogicalName,
100+
enforcerGroup.Enforce,
101+
enforcerGroup.Gateways[0],
102+
enforcerGroup.Type,
103+
enforcerGroup.Orchestrator.Type,
104+
enforcerGroup.Orchestrator.ServiceAccount,
105+
enforcerGroup.Orchestrator.Namespace,
106+
enforcerGroup.Orchestrator.Master,
107+
)
108+
}
109+
110+
func getBasicEnforcerGroupResourceWithScheduleScanSettings(enforcerGroup client.EnforcerGroup) string {
59111
return fmt.Sprintf(`
60112
resource "aquasec_enforcer_groups" "%s" {
61113
group_id = "%s"
@@ -71,10 +123,10 @@ func getBasicEnforcerGroupResource(enforcerGroup client.EnforcerGroup) string {
71123
master = "%v"
72124
}
73125
schedule_scan_settings {
74-
disabled = %v
75-
is_custom = %v
76-
days = [0,1,2,3,4,5,6]
77-
time = [3,0]
126+
disabled = false
127+
is_custom = true
128+
days = [0,1,2,3,4,5,6]
129+
time = [4,0]
78130
}
79131
}
80132
`, enforcerGroup.ID,
@@ -88,8 +140,6 @@ func getBasicEnforcerGroupResource(enforcerGroup client.EnforcerGroup) string {
88140
enforcerGroup.Orchestrator.ServiceAccount,
89141
enforcerGroup.Orchestrator.Namespace,
90142
enforcerGroup.Orchestrator.Master,
91-
enforcerGroup.ScheduleScanSettings.Disabled,
92-
enforcerGroup.ScheduleScanSettings.IsCustom,
93143
)
94144
}
95145

0 commit comments

Comments
 (0)