Skip to content

Commit a383151

Browse files
authored
Merge pull request #811 from SumoLogic/absingh-267795
SUMO-267795:Changing Capabilities from List to Set for Capabilities in RoleV2
2 parents bc8d2a4 + 5b186cf commit a383151

File tree

3 files changed

+22
-12
lines changed

3 files changed

+22
-12
lines changed

sumologic/data_source_sumologic_role_v2.go

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,9 +63,9 @@ func dataSourceSumologicRoleV2() *schema.Resource {
6363
Computed: true,
6464
},
6565
"capabilities": {
66-
Type: schema.TypeList,
66+
Type: schema.TypeSet,
6767
Computed: true,
68-
Description: "List of [capabilities](https://help.sumologic.com/docs/manage/users-roles/roles/role-capabilities/) associated with this role",
68+
Description: "Set of [capabilities](https://help.sumologic.com/docs/manage/users-roles/roles/role-capabilities/) associated with this role",
6969
Elem: &schema.Schema{
7070
Type: schema.TypeString,
7171
},
@@ -110,9 +110,11 @@ func dataSourceSumologicRoleV2Read(d *schema.ResourceData, meta interface{}) err
110110
d.Set("description", roleV2.Description)
111111
d.Set("security_data_filter", roleV2.SecurityDataFilter)
112112
d.Set("log_analytics_filter", roleV2.LogAnalyticsFilter)
113-
if err := d.Set("capabilities", roleV2.Capabilities); err != nil {
113+
114+
if err := d.Set("capabilities", schema.NewSet(schema.HashString, convertStringsToInterfaces(roleV2.Capabilities))); err != nil {
114115
return fmt.Errorf("error setting capabilities for datasource %s: %s", d.Id(), err)
115116
}
117+
116118
if err := d.Set("selected_views", flattenSelectedViews(roleV2.SelectedViews)); err != nil {
117119
return fmt.Errorf("error setting selected views for datasource %s: %s", d.Id(), err)
118120
}
@@ -142,6 +144,14 @@ func (s *Client) GetRoleNameV2(name string) (*RoleV2, error) {
142144
return &response.RolesV2[0], nil
143145
}
144146

147+
func convertStringsToInterfaces(strs []string) []interface{} {
148+
result := make([]interface{}, len(strs))
149+
for i, s := range strs {
150+
result[i] = s
151+
}
152+
return result
153+
}
154+
145155
type RoleResponseV2 struct {
146156
RolesV2 []RoleV2 `json:"data"`
147157
}

sumologic/resource_sumologic_role_v2.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -71,9 +71,9 @@ func resourceSumologicRoleV2() *schema.Resource {
7171
},
7272

7373
"capabilities": {
74-
Type: schema.TypeList,
74+
Type: schema.TypeSet,
7575
Optional: true,
76-
Description: "List of [capabilities](https://help.sumologic.com/docs/manage/users-roles/roles/role-capabilities/) associated with this role",
76+
Description: "Set of [capabilities](https://help.sumologic.com/docs/manage/users-roles/roles/role-capabilities/) associated with this role",
7777
Elem: &schema.Schema{
7878
Type: schema.TypeString,
7979
},
@@ -168,10 +168,10 @@ func resourceToRoleV2(d *schema.ResourceData) RoleV2 {
168168
selectedViews = append(selectedViews, resourceToViewFilterDefinition([]interface{}{data}))
169169
}
170170

171-
capabilitiesData := d.Get("capabilities").([]interface{})
172-
var capabilities []string
173-
for _, data := range capabilitiesData {
174-
capabilities = append(capabilities, data.(string))
171+
capabilitiesSet := d.Get("capabilities").(*schema.Set)
172+
capabilities := make([]string, 0, capabilitiesSet.Len())
173+
for _, v := range capabilitiesSet.List() {
174+
capabilities = append(capabilities, v.(string))
175175
}
176176

177177
return RoleV2{

sumologic/resource_sumologic_role_v2_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ func TestAccSumologicRoleV2_create(t *testing.T) {
5959
resource.TestCheckResourceAttr("sumologic_role_v2.test", "name", testName),
6060
resource.TestCheckResourceAttr("sumologic_role_v2.test", "audit_data_filter", testAuditDataFilter),
6161
resource.TestCheckResourceAttr("sumologic_role_v2.test", "selection_type", testSelectionType),
62-
resource.TestCheckResourceAttr("sumologic_role_v2.test", "capabilities.0", strings.Replace(testCapabilities[0], "\"", "", 2)),
62+
resource.TestCheckTypeSetElemAttr("sumologic_role_v2.test", "capabilities.*", strings.Replace(testCapabilities[0], "\"", "", 2)),
6363
resource.TestCheckResourceAttr("sumologic_role_v2.test", "description", testDescription),
6464
resource.TestCheckResourceAttr("sumologic_role_v2.test", "security_data_filter", testSecurityDataFilter),
6565
resource.TestCheckResourceAttr("sumologic_role_v2.test", "log_analytics_filter", testLogAnalyticsFilter),
@@ -100,7 +100,7 @@ func TestAccSumologicRoleV2_update(t *testing.T) {
100100
resource.TestCheckResourceAttr("sumologic_role_v2.test", "name", testName),
101101
resource.TestCheckResourceAttr("sumologic_role_v2.test", "audit_data_filter", testAuditDataFilter),
102102
resource.TestCheckResourceAttr("sumologic_role_v2.test", "selection_type", testSelectionType),
103-
resource.TestCheckResourceAttr("sumologic_role_v2.test", "capabilities.0", strings.Replace(testCapabilities[0], "\"", "", 2)),
103+
resource.TestCheckTypeSetElemAttr("sumologic_role_v2.test", "capabilities.*", strings.Replace(testCapabilities[0], "\"", "", 2)),
104104
resource.TestCheckResourceAttr("sumologic_role_v2.test", "description", testDescription),
105105
resource.TestCheckResourceAttr("sumologic_role_v2.test", "security_data_filter", testSecurityDataFilter),
106106
resource.TestCheckResourceAttr("sumologic_role_v2.test", "log_analytics_filter", testLogAnalyticsFilter),
@@ -112,7 +112,7 @@ func TestAccSumologicRoleV2_update(t *testing.T) {
112112
resource.TestCheckResourceAttr("sumologic_role_v2.test", "name", testUpdatedName),
113113
resource.TestCheckResourceAttr("sumologic_role_v2.test", "audit_data_filter", testUpdatedAuditDataFilter),
114114
resource.TestCheckResourceAttr("sumologic_role_v2.test", "selection_type", testUpdatedSelectionType),
115-
resource.TestCheckResourceAttr("sumologic_role_v2.test", "capabilities.0", strings.Replace(testUpdatedCapabilities[0], "\"", "", 2)),
115+
resource.TestCheckTypeSetElemAttr("sumologic_role_v2.test", "capabilities.*", strings.Replace(testUpdatedCapabilities[0], "\"", "", 2)),
116116
resource.TestCheckResourceAttr("sumologic_role_v2.test", "description", testUpdatedDescription),
117117
resource.TestCheckResourceAttr("sumologic_role_v2.test", "security_data_filter", testUpdatedSecurityDataFilter),
118118
resource.TestCheckResourceAttr("sumologic_role_v2.test", "log_analytics_filter", testUpdatedLogAnalyticsFilter),

0 commit comments

Comments
 (0)