Skip to content

Commit a9c7e1b

Browse files
authored
Get the supported storage tiers of a cloud instance (#446)
Signed-off-by: Kishen V <[email protected]>
1 parent e90e3ae commit a9c7e1b

File tree

2 files changed

+45
-2
lines changed

2 files changed

+45
-2
lines changed
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package instance
2+
3+
import (
4+
"context"
5+
"fmt"
6+
7+
"github.com/IBM-Cloud/power-go-client/errors"
8+
"github.com/IBM-Cloud/power-go-client/helpers"
9+
10+
"github.com/IBM-Cloud/power-go-client/ibmpisession"
11+
"github.com/IBM-Cloud/power-go-client/power/client/p_cloud_storage_tiers"
12+
"github.com/IBM-Cloud/power-go-client/power/models"
13+
)
14+
15+
// IBMPIStorageTierClient
16+
type IBMPIStorageTierClient struct {
17+
IBMPIClient
18+
}
19+
20+
// NewIBMPIStorageTierClient
21+
func NewIBMPIStorageTierClient(ctx context.Context, sess *ibmpisession.IBMPISession, cloudInstanceID string) *IBMPIStorageTierClient {
22+
return &IBMPIStorageTierClient{
23+
*NewIBMPIClient(ctx, sess, cloudInstanceID),
24+
}
25+
}
26+
27+
// Gets all the storage tiers associated to the cloud instance.
28+
func (f *IBMPIStorageTierClient) GetAll() (models.RegionStorageTiers, error) {
29+
params := p_cloud_storage_tiers.NewPcloudCloudinstancesStoragetiersGetallParams().
30+
WithContext(f.ctx).WithTimeout(helpers.PIGetTimeOut).
31+
WithCloudInstanceID(f.cloudInstanceID)
32+
resp, err := f.session.Power.PCloudStorageTiers.PcloudCloudinstancesStoragetiersGetall(params, f.session.AuthInfo(f.cloudInstanceID))
33+
if err != nil {
34+
return nil, ibmpisession.SDKFailWithAPIError(err, fmt.Errorf(errors.GetAllStorageTiersOperationFailed, f.cloudInstanceID, err))
35+
}
36+
if resp == nil || resp.Payload == nil {
37+
return nil, fmt.Errorf("failed to get all storage tiers")
38+
}
39+
return resp.Payload, nil
40+
}

errors/errors.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -121,12 +121,15 @@ const DeleteSPPPlacementGroupOperationFailed = "failed to perform Delete Shared
121121
const AddMemberSPPPlacementGroupOperationFailed = "failed to perform Add Member Operation for pool %s and shared processor pool placement group %s with error %w"
122122
const DeleteMemberSPPPlacementGroupOperationFailed = "failed to perform Delete Member Operation for pool %s and shared processor pool placement group %s with error %w"
123123

124-
// start of workspaces
124+
// start of Workspaces Messages
125125
const GetWorkspaceOperationFailed = "failed to perform Get Workspace Operation for id %s with error %w"
126126

127-
// Datacenter
127+
// start of Datacenter Messages
128128
const GetDatacenterOperationFailed = "failed to perform Get Datacenter Operation for id %s with error %w"
129129

130+
// start of StorageTier Messages
131+
const GetAllStorageTiersOperationFailed = "failed to perform get all Storage Tiers Operation for id %s with error %w"
132+
130133
// ErrorTarget ...
131134
type ErrorTarget struct {
132135
Name string

0 commit comments

Comments
 (0)