-
Notifications
You must be signed in to change notification settings - Fork 10
/
service_volcengine_clb_zone.go
112 lines (97 loc) · 3.11 KB
/
service_volcengine_clb_zone.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
package zone
import (
"errors"
"time"
"github.com/hashicorp/terraform-plugin-sdk/helper/resource"
"github.com/hashicorp/terraform-plugin-sdk/helper/schema"
ve "github.com/volcengine/terraform-provider-volcengine/common"
"github.com/volcengine/terraform-provider-volcengine/logger"
)
type VolcengineClbZoneService struct {
Client *ve.SdkClient
}
func (s *VolcengineClbZoneService) ReadResources(condition map[string]interface{}) ([]interface{}, error) {
var (
resp *map[string]interface{}
results interface{}
ok bool
err error
data []interface{}
)
action := "DescribeZones"
if condition == nil {
resp, err = s.Client.UniversalClient.DoCall(getUniversalInfo(action), nil)
} else {
resp, err = s.Client.UniversalClient.DoCall(getUniversalInfo(action), &condition)
}
if err != nil {
return nil, err
}
logger.Debug(logger.RespFormat, action, condition, *resp)
results, err = ve.ObtainSdkValue("Result.MasterZones", *resp)
if err != nil {
return nil, err
}
if results == nil {
results = make([]interface{}, 0)
}
if data, ok = results.([]interface{}); !ok {
return nil, errors.New("Result.MasterZones is not Slice")
}
return data, nil
}
func (s *VolcengineClbZoneService) ReadResource(data *schema.ResourceData, s2 string) (map[string]interface{}, error) {
return nil, nil
}
func (s *VolcengineClbZoneService) RefreshResourceState(data *schema.ResourceData, target []string, timeout time.Duration, s2 string) *resource.StateChangeConf {
return &resource.StateChangeConf{
Pending: []string{},
Delay: 5 * time.Second,
MinTimeout: 5 * time.Second,
Target: target,
Timeout: timeout,
Refresh: func() (result interface{}, state string, err error) {
return nil, "", err
},
}
}
func (s *VolcengineClbZoneService) WithResourceResponseHandlers(m map[string]interface{}) []ve.ResourceResponseHandler {
handler := func() (map[string]interface{}, map[string]ve.ResponseConvert, error) {
return m, nil, nil
}
return []ve.ResourceResponseHandler{handler}
}
func (s *VolcengineClbZoneService) CreateResource(data *schema.ResourceData, resource *schema.Resource) []ve.Callback {
return []ve.Callback{}
}
func (s *VolcengineClbZoneService) ModifyResource(data *schema.ResourceData, resource *schema.Resource) []ve.Callback {
return []ve.Callback{}
}
func (s *VolcengineClbZoneService) RemoveResource(data *schema.ResourceData, resource *schema.Resource) []ve.Callback {
return []ve.Callback{}
}
func (s *VolcengineClbZoneService) DatasourceResources(data *schema.ResourceData, resource *schema.Resource) ve.DataSourceInfo {
return ve.DataSourceInfo{
CollectField: "master_zones",
}
}
func (s *VolcengineClbZoneService) ReadResourceId(id string) string {
return id
}
func NewClbZoneService(c *ve.SdkClient) *VolcengineClbZoneService {
return &VolcengineClbZoneService{
Client: c,
}
}
func (s *VolcengineClbZoneService) GetClient() *ve.SdkClient {
return s.Client
}
func getUniversalInfo(actionName string) ve.UniversalInfo {
return ve.UniversalInfo{
ServiceName: "clb",
Version: "2020-04-01",
HttpMethod: ve.GET,
ContentType: ve.Default,
Action: actionName,
}
}