/
structure_etcd_backup.go
90 lines (68 loc) · 1.89 KB
/
structure_etcd_backup.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
package rancher2
import (
"github.com/hashicorp/terraform-plugin-sdk/helper/schema"
managementClient "github.com/rancher/rancher/pkg/client/generated/management/v3"
)
// Flatteners
func flattenEtcdBackup(d *schema.ResourceData, in *managementClient.EtcdBackup) error {
if in == nil {
return nil
}
d.SetId(in.ID)
backupConfig := d.Get("backup_config").([]interface{})
err := d.Set("backup_config", flattenClusterRKEConfigServicesEtcdBackupConfig(in.BackupConfig, backupConfig))
if err != nil {
return err
}
d.Set("cluster_id", in.ClusterID)
d.Set("filename", in.Filename)
d.Set("manual", in.Manual)
d.Set("name", in.Name)
d.Set("namespace_id", in.NamespaceId)
err = d.Set("annotations", toMapInterface(in.Annotations))
if err != nil {
return err
}
err = d.Set("labels", toMapInterface(in.Labels))
if err != nil {
return err
}
return nil
}
// Expanders
func expandEtcdBackup(in *schema.ResourceData) (*managementClient.EtcdBackup, error) {
obj := &managementClient.EtcdBackup{}
if in == nil {
return nil, nil
}
if v := in.Id(); len(v) > 0 {
obj.ID = v
}
if v, ok := in.Get("backup_config").([]interface{}); ok && len(v) > 0 {
backupConfig, err := expandClusterRKEConfigServicesEtcdBackupConfig(v)
if err != nil {
return nil, err
}
obj.BackupConfig = backupConfig
}
obj.ClusterID = in.Get("cluster_id").(string)
if v, ok := in.Get("filename").(string); ok && len(v) > 0 {
obj.Filename = v
}
if v, ok := in.Get("manual").(bool); ok {
obj.Manual = v
}
if v, ok := in.Get("name").(string); ok && len(v) > 0 {
obj.Name = v
}
if v, ok := in.Get("namespace_id").(string); ok && len(v) > 0 {
obj.NamespaceId = v
}
if v, ok := in.Get("annotations").(map[string]interface{}); ok && len(v) > 0 {
obj.Annotations = toMapString(v)
}
if v, ok := in.Get("labels").(map[string]interface{}); ok && len(v) > 0 {
obj.Labels = toMapString(v)
}
return obj, nil
}