Skip to content

Commit 0de413c

Browse files
authored
Merge pull request #418 from yussufsh/gomod
Remove panic calls and use fatal instead
2 parents faa043c + 9841875 commit 0de413c

File tree

5 files changed

+22
-39
lines changed

5 files changed

+22
-39
lines changed

cmd/options.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ func GetOptions(fs *flag.FlagSet) *Options {
8989
}
9090

9191
if err := fs.Parse(args); err != nil {
92-
panic(err)
92+
klog.Fatal(err)
9393
}
9494

9595
if *version {

pkg/cloud/powervs.go

Lines changed: 10 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -38,20 +38,6 @@ import (
3838

3939
var _ Cloud = &powerVSCloud{}
4040

41-
var (
42-
// TODO: Never seen these catalog values changing, lets add code to get these values in future for the sake of better design.
43-
44-
// This can be found in the IBM Cloud catalog, command used to get this information is
45-
// $ ibmcloud catalog service-marketplace| grep power-iaas
46-
// abd259f0-9990-11e8-acc8-b9f54a8f1661 power-iaas
47-
powerVSServiceID = "abd259f0-9990-11e8-acc8-b9f54a8f1661"
48-
49-
// PlanID can be fetched via command:
50-
// $ ibmcloud catalog service abd259f0-9990-11e8-acc8-b9f54a8f1661 | grep plan
51-
// power-virtual-server-group plan f165dd34-3a40-423b-9d95-e90a23f724dd
52-
powerVSPlanID = "f165dd34-3a40-423b-9d95-e90a23f724dd"
53-
)
54-
5541
const (
5642
PollTimeout = 120 * time.Second
5743
PollInterval = 5 * time.Second
@@ -92,28 +78,24 @@ func NewPowerVSCloud(cloudInstanceID, zone string, debug bool) (Cloud, error) {
9278
func newPowerVSCloud(cloudInstanceID, zone string, debug bool) (Cloud, error) {
9379
apikey := os.Getenv("IBMCLOUD_API_KEY")
9480

81+
authenticator := &core.IamAuthenticator{ApiKey: apikey}
82+
9583
serviceClientOptions := &resourcecontrollerv2.ResourceControllerV2Options{
96-
Authenticator: &core.IamAuthenticator{ApiKey: apikey},
84+
Authenticator: authenticator,
9785
}
98-
serviceClient, err := resourcecontrollerv2.NewResourceControllerV2UsingExternalConfig(serviceClientOptions)
86+
serviceClient, err := resourcecontrollerv2.NewResourceControllerV2(serviceClientOptions)
9987
if err != nil {
100-
return nil, fmt.Errorf("errored while creating NewResourceControllerV2UsingExternalConfig: %v", err)
88+
return nil, fmt.Errorf("errored while creating NewResourceControllerV2: %v", err)
10189
}
102-
resourceInstanceList, _, err := serviceClient.ListResourceInstances(&resourcecontrollerv2.ListResourceInstancesOptions{
103-
GUID: &cloudInstanceID,
104-
ResourceID: &powerVSServiceID,
105-
ResourcePlanID: &powerVSPlanID,
90+
resourceInstance, _, err := serviceClient.GetResourceInstance(&resourcecontrollerv2.GetResourceInstanceOptions{
91+
ID: &cloudInstanceID,
10692
})
107-
if err != nil {
108-
return nil, fmt.Errorf("errored while listing the Power VS service instance with ID: %s, err: %v", cloudInstanceID, err)
109-
}
11093

111-
if len(resourceInstanceList.Resources) == 0 {
112-
return nil, fmt.Errorf("no Power VS service instance found with ID: %s", cloudInstanceID)
94+
if err != nil {
95+
return nil, fmt.Errorf("errored while getting the Power VS service instance with ID: %s, err: %v", cloudInstanceID, err)
11396
}
11497

115-
authenticator := &core.IamAuthenticator{ApiKey: apikey}
116-
piOptions := ibmpisession.IBMPIOptions{Authenticator: authenticator, Debug: debug, UserAccount: *resourceInstanceList.Resources[0].AccountID, Zone: zone}
98+
piOptions := ibmpisession.IBMPIOptions{Authenticator: authenticator, Debug: debug, UserAccount: *resourceInstance.AccountID, Zone: zone}
11799
piSession, err := ibmpisession.NewIBMPISession(&piOptions)
118100
if err != nil {
119101
return nil, err

pkg/cloud/powervs_node.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import (
2020
"errors"
2121

2222
"github.com/IBM-Cloud/power-go-client/power/models"
23+
"k8s.io/klog/v2"
2324
"k8s.io/utils/pointer"
2425
)
2526

@@ -65,7 +66,7 @@ func NewNodeUpdateScope(params NodeUpdateScopeParams) (scope *NodeUpdateScope, e
6566

6667
c, err := NewPowerVSCloud(scope.ServiceInstanceId, scope.Zone, false)
6768
if err != nil {
68-
panic(err)
69+
klog.Fatalf("Failed to get powervs cloud: %v", err)
6970
}
7071
scope.Cloud = c
7172

pkg/driver/controller.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ var (
8989
)
9090

9191
// newControllerService creates a new controller service
92-
// it panics if failed to create the service
92+
// it will print stack trace and osexit if failed to create the service
9393
func newControllerService(driverOptions *Options) controllerService {
9494
var (
9595
cloudInstanceId string
@@ -99,31 +99,31 @@ func newControllerService(driverOptions *Options) controllerService {
9999
var cloudConfig CloudConfig
100100
config, err := os.Open(driverOptions.cloudconfig)
101101
if nil != err {
102-
panic(err)
102+
klog.Fatalf("Failed to get cloud config: %v", err)
103103
}
104104
defer config.Close()
105105

106106
if err := gcfg.FatalOnly(gcfg.ReadInto(&cloudConfig, config)); err != nil {
107-
panic(err)
107+
klog.Fatalf("Failed to read cloud config: %v", err)
108108
}
109109
cloudInstanceId = cloudConfig.Prov.PowerVSCloudInstanceID
110110
zone = cloudConfig.Prov.PowerVSZone
111111
if cloudInstanceId == "" || zone == "" {
112-
panic(status.Errorf(codes.NotFound, "cloud instance id or zone is empty"))
112+
klog.Fatalf("Failed to read cloud config: %v", status.Errorf(codes.NotFound, "cloud instance id or zone is empty"))
113113
}
114114
} else {
115115
klog.V(4).Infof("retrieving node info from metadata service")
116116
metadata, err := cloud.NewMetadataService(cloud.DefaultKubernetesAPIClient, driverOptions.kubeconfig)
117117
if err != nil {
118-
panic(err)
118+
klog.Fatalf("Failed to get metadata service: %v", err)
119119
}
120120
cloudInstanceId = metadata.GetCloudInstanceId()
121121
zone = metadata.GetZone()
122122
}
123123

124124
c, err := NewPowerVSCloudFunc(cloudInstanceId, zone, driverOptions.debug)
125125
if err != nil {
126-
panic(err)
126+
klog.Fatalf("Failed to get powervs cloud: %v", err)
127127
}
128128

129129
return controllerService{

pkg/driver/node.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -73,17 +73,17 @@ type nodeService struct {
7373
}
7474

7575
// newNodeService creates a new node service
76-
// it panics if failed to create the service
76+
// it will print stack trace and osexit if failed to create the service
7777
func newNodeService(driverOptions *Options) nodeService {
7878
klog.V(4).Infof("retrieving node info from metadata service")
7979
metadata, err := cloud.NewMetadataService(cloud.DefaultKubernetesAPIClient, driverOptions.kubeconfig)
8080
if err != nil {
81-
panic(err)
81+
klog.Fatalf("Failed to get metadata service: %v", err)
8282
}
8383

8484
pvsCloud, err := NewPowerVSCloudFunc(metadata.GetCloudInstanceId(), metadata.GetZone(), driverOptions.debug)
8585
if err != nil {
86-
panic(err)
86+
klog.Fatalf("Failed to get powervs cloud: %v", err)
8787
}
8888

8989
return nodeService{

0 commit comments

Comments
 (0)