1 package client
2
3 import "context"
4
5
6 type StoragePoolDefinition struct {
7 StoragePoolName string `json:"storage_pool_name,omitempty"`
8
9 Props map[string]string `json:"props,omitempty"`
10 }
11
12
13 type StoragePoolDefinitionModify struct {
14 GenericPropsModify
15 }
16
17
18
19
20
21
22 type StoragePoolDefinitionProvider interface {
23
24 GetAll(ctx context.Context, opts ...*ListOpts) ([]StoragePoolDefinition, error)
25
26 Get(ctx context.Context, spdName string, opts ...*ListOpts) (StoragePoolDefinition, error)
27
28 Create(ctx context.Context, spd StoragePoolDefinition) error
29
30 Modify(ctx context.Context, spdName string, props StoragePoolDefinitionModify) error
31
32 Delete(ctx context.Context, spdName string) error
33
34
35 GetPropsInfos(ctx context.Context, opts ...*ListOpts) ([]PropsInfo, error)
36 }
37
38 var _ StoragePoolDefinitionProvider = &StoragePoolDefinitionService{}
39
40
41 type StoragePoolDefinitionService struct {
42 client *Client
43 }
44
45
46 func (s *StoragePoolDefinitionService) GetAll(ctx context.Context, opts ...*ListOpts) ([]StoragePoolDefinition, error) {
47 var spds []StoragePoolDefinition
48 _, err := s.client.doGET(ctx, "/v1/storage-pool-definitions", &spds, opts...)
49 return spds, err
50 }
51
52
53 func (s *StoragePoolDefinitionService) Get(ctx context.Context, spdName string, opts ...*ListOpts) (StoragePoolDefinition, error) {
54 var spd StoragePoolDefinition
55 _, err := s.client.doGET(ctx, "/v1/storage-pool-definitions/"+spdName, &spd, opts...)
56 return spd, err
57 }
58
59
60 func (s *StoragePoolDefinitionService) Create(ctx context.Context, spd StoragePoolDefinition) error {
61 _, err := s.client.doPOST(ctx, "/v1/storage-pool-definitions", spd)
62 return err
63 }
64
65
66 func (s *StoragePoolDefinitionService) Modify(ctx context.Context, spdName string, props StoragePoolDefinitionModify) error {
67 _, err := s.client.doPUT(ctx, "/v1/storage-pool-definitions/"+spdName, props)
68 return err
69 }
70
71
72 func (s *StoragePoolDefinitionService) Delete(ctx context.Context, spdName string) error {
73 _, err := s.client.doDELETE(ctx, "/v1/storage-pool-definitions/"+spdName, nil)
74 return err
75 }
76
77
78
79 func (s *StoragePoolDefinitionService) GetPropsInfos(ctx context.Context, opts ...*ListOpts) ([]PropsInfo, error) {
80 var infos []PropsInfo
81 _, err := s.client.doGET(ctx, "/v1/storage-pool-definitions/properties/info", &infos, opts...)
82 return infos, err
83 }
84
View as plain text