Skip to content

Commit 3207f96

Browse files
committed
PLT-1557: Fixed new attribute day to operations
1 parent e8e3191 commit 3207f96

File tree

7 files changed

+35
-29
lines changed

7 files changed

+35
-29
lines changed

spectrocloud/cluster_common_fields.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ func readCommonFields(c *client.V1Client, d *schema.ResourceData, cluster *model
4545
if policy, err := c.GetClusterBackupConfig(d.Id()); err != nil {
4646
return diag.FromErr(err), true
4747
} else if policy != nil && policy.Spec.Config != nil {
48-
if err := d.Set("backup_policy", flattenBackupPolicy(policy.Spec.Config)); err != nil {
48+
if err := d.Set("backup_policy", flattenBackupPolicy(policy.Spec.Config, d)); err != nil {
4949
return diag.FromErr(err), true
5050
}
5151
}

spectrocloud/cluster_common_policies.go

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ func convertIncludeResourceMode(m string) (mode models.V1IncludeClusterResourceM
7171
return ""
7272
}
7373

74-
func flattenBackupPolicy(policy *models.V1ClusterBackupConfig) []interface{} {
74+
func flattenBackupPolicy(policy *models.V1ClusterBackupConfig, d *schema.ResourceData) []interface{} {
7575
result := make([]interface{}, 0, 1)
7676
data := make(map[string]interface{})
7777
data["schedule"] = policy.Schedule.ScheduledRunTime
@@ -80,8 +80,16 @@ func flattenBackupPolicy(policy *models.V1ClusterBackupConfig) []interface{} {
8080
data["namespaces"] = policy.Namespaces
8181
data["expiry_in_hour"] = policy.DurationInHours
8282
data["include_disks"] = policy.IncludeAllDisks
83-
data["include_cluster_resources"] = flattenIncludeResourceMode(policy.IncludeClusterResourceMode)
84-
data["include_cluster_resources_mode"] = policy.IncludeClusterResourceMode
83+
84+
if policies, found := d.GetOk("backup_policy"); found {
85+
bPolicy := policies.([]interface{})[0].(map[string]interface{})
86+
if bPolicy["include_cluster_resources_mode"] != "" {
87+
data["include_cluster_resources_mode"] = strings.ToLower(string(policy.IncludeClusterResourceMode))
88+
data["include_cluster_resources"] = true
89+
} else {
90+
data["include_cluster_resources"] = flattenIncludeResourceMode(policy.IncludeClusterResourceMode)
91+
}
92+
}
8593
result = append(result, data)
8694
return result
8795
}

spectrocloud/cluster_policies_test.go

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -76,18 +76,16 @@ func TestFlattenBackupPolicy(t *testing.T) {
7676

7777
expected := []interface{}{
7878
map[string]interface{}{
79-
"schedule": "daily",
80-
"backup_location_id": "location-123",
81-
"prefix": "backup-prefix",
82-
"namespaces": []string{"namespace1", "namespace2"},
83-
"expiry_in_hour": int64(24),
84-
"include_disks": true,
85-
"include_cluster_resources": false,
86-
"include_cluster_resources_mode": models.V1IncludeClusterResourceMode(""),
79+
"schedule": "daily",
80+
"backup_location_id": "location-123",
81+
"prefix": "backup-prefix",
82+
"namespaces": []string{"namespace1", "namespace2"},
83+
"expiry_in_hour": int64(24),
84+
"include_disks": true,
8785
},
8886
}
89-
90-
result := flattenBackupPolicy(policy)
87+
resourceData := resourceClusterAws().TestResourceData()
88+
result := flattenBackupPolicy(policy, resourceData)
9189
assert.Equal(t, expected, result)
9290
}
9391

spectrocloud/resource_workspace.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ func resourceWorkspaceRead(_ context.Context, d *schema.ResourceData, m interfac
9999
if err != nil {
100100
return diag.FromErr(err)
101101
}
102-
if err := d.Set("backup_policy", flattenWorkspaceBackupPolicy(backup)); err != nil {
102+
if err := d.Set("backup_policy", flattenWorkspaceBackupPolicy(backup, d)); err != nil {
103103
return diag.FromErr(err)
104104
}
105105

spectrocloud/schemas/backup_policy.go

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -40,17 +40,17 @@ func BackupPolicySchema() *schema.Schema {
4040
Description: "Whether to include the disks in the backup. If set to false, only the cluster configuration will be backed up.",
4141
},
4242
"include_cluster_resources": {
43-
Type: schema.TypeBool,
44-
Optional: true,
45-
Default: true,
46-
Description: "Indicates whether to include cluster resources in the backup. If set to false, only the cluster configuration and disks will be backed up. (Note: Starting with Palette version 4.6, the include_cluster_resources attribute will be deprecated, and a new attribute, include_cluster_resources_mode, will be introduced.)",
43+
Type: schema.TypeBool,
44+
Optional: true,
45+
Default: true,
46+
ConflictsWith: []string{"backup_policy.0.include_cluster_resources_mode"},
47+
Description: "Indicates whether to include cluster resources in the backup. If set to false, only the cluster configuration and disks will be backed up. (Note: Starting with Palette version 4.6, the include_cluster_resources attribute will be deprecated, and a new attribute, include_cluster_resources_mode, will be introduced.)",
4748
},
4849
"include_cluster_resources_mode": {
49-
Type: schema.TypeString,
50-
Optional: true,
51-
ConflictsWith: []string{"include_cluster_resources"},
52-
Description: "Specifies whether to include the cluster resources in the backup. Supported values are `always`, `never`, and `auto`.",
53-
ValidateFunc: validation.StringInSlice([]string{"always", "never", "auto"}, false),
50+
Type: schema.TypeString,
51+
Optional: true,
52+
Description: "Specifies whether to include the cluster resources in the backup. Supported values are `always`, `never`, and `auto`.",
53+
ValidateFunc: validation.StringInSlice([]string{"always", "never", "auto"}, false),
5454
},
5555
"namespaces": {
5656
Type: schema.TypeSet,

spectrocloud/workspace_common.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package spectrocloud
22

33
import (
4+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
45
"github.com/spectrocloud/palette-sdk-go/api/models"
56
)
67

@@ -24,13 +25,12 @@ func flattenWorkspaceClusters(workspace *models.V1Workspace) []interface{} {
2425
}
2526
}
2627

27-
func flattenWorkspaceBackupPolicy(backup *models.V1WorkspaceBackup) []interface{} {
28+
func flattenWorkspaceBackupPolicy(backup *models.V1WorkspaceBackup, d *schema.ResourceData) []interface{} {
2829
result := make([]interface{}, 0, 1)
2930
if backup.Spec.Config == nil && backup.Spec.Config.BackupConfig == nil {
3031
return result
3132
}
32-
33-
result = flattenBackupPolicy(backup.Spec.Config.BackupConfig)
33+
result = flattenBackupPolicy(backup.Spec.Config.BackupConfig, d)
3434
data := result[0].(map[string]interface{})
3535
data["cluster_uids"] = backup.Spec.Config.ClusterUids
3636
data["include_all_clusters"] = backup.Spec.Config.IncludeAllClusters

spectrocloud/workspace_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -109,8 +109,8 @@ func TestFlattenWorkspaceBackupPolicy(t *testing.T) {
109109
},
110110
},
111111
}
112-
113-
_ = flattenWorkspaceBackupPolicy(backup)
112+
resourceData := resourceWorkspace().TestResourceData()
113+
_ = flattenWorkspaceBackupPolicy(backup, resourceData)
114114
}
115115

116116
func TestFlattenWorkspaceClusterNamespaces(t *testing.T) {

0 commit comments

Comments
 (0)