This repository has been archived by the owner on Jul 24, 2020. It is now read-only.
forked from ucloud/terraform-provider-ucloud
/
service_ucloud_umem.go
91 lines (71 loc) · 2.14 KB
/
service_ucloud_umem.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
package ucloud
import (
"time"
"github.com/hashicorp/terraform-plugin-sdk/helper/resource"
pumem "github.com/ucloud/ucloud-sdk-go/private/services/umem"
"github.com/ucloud/ucloud-sdk-go/services/umem"
"github.com/ucloud/ucloud-sdk-go/ucloud"
)
func (c *UCloudClient) describeActiveStandbyRedisById(id string) (*umem.URedisGroupSet, error) {
if id == "" {
return nil, newNotFoundError(getNotFoundMessage("redis", id))
}
conn := c.umemconn
req := conn.NewDescribeURedisGroupRequest()
req.GroupId = ucloud.String(id)
resp, err := conn.DescribeURedisGroup(req)
if err != nil {
return nil, err
}
if resp == nil || len(resp.DataSet) < 1 {
return nil, newNotFoundError(getNotFoundMessage("redis", id))
}
return &resp.DataSet[0], nil
}
func (c *UCloudClient) describeDistributedRedisById(id string) (*umem.UMemSpaceSet, error) {
if id == "" {
return nil, newNotFoundError(getNotFoundMessage("redis", id))
}
conn := c.umemconn
req := conn.NewDescribeUMemSpaceRequest()
req.SpaceId = ucloud.String(id)
resp, err := conn.DescribeUMemSpace(req)
if err != nil {
return nil, err
}
if resp == nil || len(resp.DataSet) < 1 {
return nil, newNotFoundError(getNotFoundMessage("redis", id))
}
return &resp.DataSet[0], nil
}
func (c *UCloudClient) describeActiveStandbyMemcacheById(id string) (*pumem.UMemDataSet, error) {
if id == "" {
return nil, newNotFoundError(getNotFoundMessage("memcache", id))
}
req := c.pumemconn.NewDescribeUMemRequest()
req.ResourceId = ucloud.String(id)
req.Protocol = ucloud.String("memcache")
resp, err := c.pumemconn.DescribeUMem(req)
if err != nil {
return nil, err
}
if resp == nil || len(resp.DataSet) < 1 {
return nil, newNotFoundError(getNotFoundMessage("memcache", id))
}
return &resp.DataSet[0], nil
}
func waitForMemoryInstance(refresh func() (interface{}, string, error)) error {
conf := resource.StateChangeConf{
Timeout: 5 * time.Minute,
Delay: 2 * time.Second,
MinTimeout: 1 * time.Second,
Target: []string{statusInitialized},
Pending: []string{statusPending},
Refresh: refresh,
}
_, err := conf.WaitForState()
if err != nil {
return err
}
return nil
}