-
Notifications
You must be signed in to change notification settings - Fork 29
/
config_export_p.go
130 lines (85 loc) · 3.58 KB
/
config_export_p.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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
package models
import (
"fmt"
"strconv"
"github.com/ciscoecosystem/aci-go-client/container"
)
const ConfigexportpClassName = "configExportP"
type ConfigurationExportPolicy struct {
BaseAttributes
ConfigurationExportPolicyAttributes
}
type ConfigurationExportPolicyAttributes struct {
Name string `json:",omitempty"`
AdminSt string `json:",omitempty"`
Annotation string `json:",omitempty"`
Format string `json:",omitempty"`
IncludeSecureFields string `json:",omitempty"`
MaxSnapshotCount string `json:",omitempty"`
NameAlias string `json:",omitempty"`
Snapshot string `json:",omitempty"`
TargetDn string `json:",omitempty"`
}
func NewConfigurationExportPolicy(configExportPRn, parentDn, description string, configExportPattr ConfigurationExportPolicyAttributes) *ConfigurationExportPolicy {
dn := fmt.Sprintf("%s/%s", parentDn, configExportPRn)
return &ConfigurationExportPolicy{
BaseAttributes: BaseAttributes{
DistinguishedName: dn,
Description: description,
Status: "created, modified",
ClassName: ConfigexportpClassName,
Rn: configExportPRn,
},
ConfigurationExportPolicyAttributes: configExportPattr,
}
}
func (configExportP *ConfigurationExportPolicy) ToMap() (map[string]string, error) {
configExportPMap, err := configExportP.BaseAttributes.ToMap()
if err != nil {
return nil, err
}
A(configExportPMap, "name", configExportP.Name)
A(configExportPMap, "adminSt", configExportP.AdminSt)
A(configExportPMap, "annotation", configExportP.Annotation)
A(configExportPMap, "format", configExportP.Format)
A(configExportPMap, "includeSecureFields", configExportP.IncludeSecureFields)
A(configExportPMap, "maxSnapshotCount", configExportP.MaxSnapshotCount)
A(configExportPMap, "nameAlias", configExportP.NameAlias)
A(configExportPMap, "snapshot", configExportP.Snapshot)
A(configExportPMap, "targetDn", configExportP.TargetDn)
return configExportPMap, err
}
func ConfigurationExportPolicyFromContainerList(cont *container.Container, index int) *ConfigurationExportPolicy {
ConfigurationExportPolicyCont := cont.S("imdata").Index(index).S(ConfigexportpClassName, "attributes")
return &ConfigurationExportPolicy{
BaseAttributes{
DistinguishedName: G(ConfigurationExportPolicyCont, "dn"),
Description: G(ConfigurationExportPolicyCont, "descr"),
Status: G(ConfigurationExportPolicyCont, "status"),
ClassName: ConfigexportpClassName,
Rn: G(ConfigurationExportPolicyCont, "rn"),
},
ConfigurationExportPolicyAttributes{
Name: G(ConfigurationExportPolicyCont, "name"),
AdminSt: G(ConfigurationExportPolicyCont, "adminSt"),
Annotation: G(ConfigurationExportPolicyCont, "annotation"),
Format: G(ConfigurationExportPolicyCont, "format"),
IncludeSecureFields: G(ConfigurationExportPolicyCont, "includeSecureFields"),
MaxSnapshotCount: G(ConfigurationExportPolicyCont, "maxSnapshotCount"),
NameAlias: G(ConfigurationExportPolicyCont, "nameAlias"),
Snapshot: G(ConfigurationExportPolicyCont, "snapshot"),
TargetDn: G(ConfigurationExportPolicyCont, "targetDn"),
},
}
}
func ConfigurationExportPolicyFromContainer(cont *container.Container) *ConfigurationExportPolicy {
return ConfigurationExportPolicyFromContainerList(cont, 0)
}
func ConfigurationExportPolicyListFromContainer(cont *container.Container) []*ConfigurationExportPolicy {
length, _ := strconv.Atoi(G(cont, "totalCount"))
arr := make([]*ConfigurationExportPolicy, length)
for i := 0; i < length; i++ {
arr[i] = ConfigurationExportPolicyFromContainerList(cont, i)
}
return arr
}