Skip to content

Commit 31fbbe2

Browse files
authored
Merge pull request #65 from bkhadars/master
Fix:Enhance help messages for image upload and import commands
2 parents c49939a + bec2438 commit 31fbbe2

File tree

2 files changed

+37
-31
lines changed

2 files changed

+37
-31
lines changed

cmd/image/import/import.go

Lines changed: 26 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -34,17 +34,24 @@ export IBMCLOUD_API_KEY=<IBM_CLOUD_API_KEY>
3434
Examples:
3535
3636
# import image using default storage type (service credential will be autogenerated)
37-
pvsadm image import -n upstream-core-lon04 -b <BUCKETNAME> --object-name rhel-83-10032020.ova.gz --image-name test-image -r <REGION>
37+
pvsadm image import -n upstream-core-lon04 -b <BUCKETNAME> --object rhel-83-10032020.ova.gz --pvs-image-name test-image -r <REGION>
3838
3939
# import image using default storage type with specifying the accesskey and secretkey explicitly
40-
pvsadm image import -n upstream-core-lon04 -b <BUCKETNAME> --accesskey <ACCESSKEY> --secretkey <SECRETKEY> --object-name rhel-83-10032020.ova.gz --image-name test-image -r <REGION>
40+
pvsadm image import -n upstream-core-lon04 -b <BUCKETNAME> --accesskey <ACCESSKEY> --secretkey <SECRETKEY> --object rhel-83-10032020.ova.gz --pvs-image-name test-image -r <REGION>
4141
4242
# with user provided storage type
43-
pvsadm image import -n upstream-core-lon04 -b <BUCKETNAME> -r <REGION> --storagetype <STORAGETYPE> --object-name rhel-83-10032020.ova.gz --image-name test-image -r <REGION>
43+
pvsadm image import -n upstream-core-lon04 -b <BUCKETNAME> --pvs-storagetype <STORAGETYPE> --object rhel-83-10032020.ova.gz --pvs-image-name test-image -r <REGION>
4444
4545
# If user wants to specify the type of OS
46-
pvsadm image import -n upstream-core-lon04 -b <BUCKETNAME> --object-name rhel-83-10032020.ova.gz --image-name test-image --ostype <OSTYPE> -r <REGION>
46+
pvsadm image import -n upstream-core-lon04 -b <BUCKETNAME> --object rhel-83-10032020.ova.gz --pvs-image-name test-image --ostype <OSTYPE> -r <REGION>
4747
`,
48+
PersistentPreRunE: func(cmd *cobra.Command, args []string) error {
49+
if pkg.ImageCMDOptions.InstanceID == "" && pkg.ImageCMDOptions.InstanceName == "" {
50+
return fmt.Errorf("--pvs-instance-name or --pvs-instance-id required")
51+
}
52+
return nil
53+
},
54+
4855
RunE: func(cmd *cobra.Command, args []string) error {
4956
var s3client *client.S3Client
5057
opt := pkg.ImageCMDOptions
@@ -216,22 +223,21 @@ pvsadm image import -n upstream-core-lon04 -b <BUCKETNAME> --object-name rhel-83
216223
}
217224

218225
func init() {
219-
Cmd.Flags().StringVarP(&pkg.ImageCMDOptions.InstanceName, "instance-name", "n", "", "Instance name of the PowerVS")
220-
Cmd.Flags().StringVarP(&pkg.ImageCMDOptions.InstanceID, "instance-id", "i", "", "Instance ID of the PowerVS instance")
221-
Cmd.Flags().StringVarP(&pkg.ImageCMDOptions.BucketName, "bucket", "b", "", "Cloud Storage bucket name")
222-
Cmd.Flags().StringVarP(&pkg.ImageCMDOptions.Region, "region", "r", "", "COS bucket location")
223-
Cmd.Flags().StringVarP(&pkg.ImageCMDOptions.ImageFilename, "object-name", "o", "", "Cloud Storage image filename")
224-
Cmd.Flags().StringVar(&pkg.ImageCMDOptions.AccessKey, "accesskey", "", "Cloud Storage access key")
225-
Cmd.Flags().StringVar(&pkg.ImageCMDOptions.SecretKey, "secretkey", "", "Cloud Storage secret key")
226-
Cmd.Flags().StringVar(&pkg.ImageCMDOptions.ImageName, "image-name", "", "Name to give imported image")
227-
Cmd.Flags().StringVar(&pkg.ImageCMDOptions.OsType, "ostype", "redhat", "Image OS Type, accepted values are[aix, ibmi, redhat, sles]")
228-
Cmd.Flags().BoolVarP(&pkg.ImageCMDOptions.Watch, "watch", "w", false, "After image import watch for image to be published and ready to use")
229-
Cmd.Flags().DurationVar(&pkg.ImageCMDOptions.WatchTimeout, "watch-timeout", 1*time.Hour, "watch timeout")
230-
Cmd.Flags().StringVar(&pkg.ImageCMDOptions.StorageType, "storagetype", "tier3", "Storage type, accepted values are [tier1, tier3]")
231-
Cmd.Flags().StringVar(&pkg.ImageCMDOptions.ServiceCredName, "service-credential-name", "", "Service Credential name to be auto generated(default \""+serviceCredPrefix+"-<USERID>\")")
226+
Cmd.Flags().StringVarP(&pkg.ImageCMDOptions.InstanceName, "pvs-instance-name", "n", "", "PowerVS Instance name.")
227+
Cmd.Flags().StringVarP(&pkg.ImageCMDOptions.InstanceID, "pvs-instance-id", "i", "", "PowerVS Instance ID.")
228+
Cmd.Flags().StringVarP(&pkg.ImageCMDOptions.BucketName, "bucket", "b", "", "Cloud Object Storage bucket name.")
229+
Cmd.Flags().StringVarP(&pkg.ImageCMDOptions.Region, "bucket-region", "r", "", "Cloud Object Storage bucket location.")
230+
Cmd.Flags().StringVarP(&pkg.ImageCMDOptions.ImageFilename, "object", "o", "", "Cloud Object Storage object name.")
231+
Cmd.Flags().StringVar(&pkg.ImageCMDOptions.AccessKey, "accesskey", "", "Cloud Object Storage HMAC access key.")
232+
Cmd.Flags().StringVar(&pkg.ImageCMDOptions.SecretKey, "secretkey", "", "Cloud Object Storage HMAC secret key.")
233+
Cmd.Flags().StringVar(&pkg.ImageCMDOptions.ImageName, "pvs-image-name", "", "Name to PowerVS imported image.")
234+
Cmd.Flags().StringVar(&pkg.ImageCMDOptions.OsType, "ostype", "redhat", "Image OS Type, accepted values are[aix, ibmi, redhat, sles].")
235+
Cmd.Flags().StringVar(&pkg.ImageCMDOptions.StorageType, "pvs-storagetype", "tier3", "PowerVS Storage type, accepted values are [tier1, tier3].")
236+
Cmd.Flags().StringVar(&pkg.ImageCMDOptions.ServiceCredName, "pvs-service-cred", "pvsadm-service-cred", "Service Credential name to be auto generated.")
232237

233238
_ = Cmd.MarkFlagRequired("bucket")
234-
_ = Cmd.MarkFlagRequired("image-name")
235-
_ = Cmd.MarkFlagRequired("object-name")
236-
_ = Cmd.MarkFlagRequired("region")
239+
_ = Cmd.MarkFlagRequired("bucket-region")
240+
_ = Cmd.MarkFlagRequired("pvs-image-name")
241+
_ = Cmd.MarkFlagRequired("object")
242+
Cmd.Flags().SortFlags = false
237243
}

cmd/image/upload/upload.go

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -28,16 +28,16 @@ export IBMCLOUD_API_KEY=<IBM_CLOUD_API_KEY>
2828
Examples:
2929
3030
# using InstanceName
31-
pvsadm image upload --bucket bucket0711 -o rhcos-461.ova.gz --instance-name pvsadm-cos-instance
31+
pvsadm image upload --bucket bucket0711 -f rhcos-461.ova.gz --instance-name pvsadm-cos-instance
3232
3333
#If user is planning to use available cos instance
34-
pvsadm image upload --bucket bucket0911 -o rhcos-461.ova.gz
34+
pvsadm image upload --bucket bucket0911 -f rhcos-461.ova.gz
3535
3636
#If user intents to create a new COS instance
37-
pvsadm image upload --bucket basheerbucket1320 -o centos-8-latest.ova.gz --resource-group <ResourceGroup_Name>
37+
pvsadm image upload --bucket bucket1320 -f centos-8-latest.ova.gz --resource-group <ResourceGroup_Name>
3838
3939
#if user is planning to create a bucket in particular region
40-
pvsadm image upload --bucket basheerbucket1320 -o centos-8-latest.ova.gz --region <Region>
40+
pvsadm image upload --bucket bucket1320 -f centos-8-latest.ova.gz --region <Region>
4141
`,
4242
RunE: func(cmd *cobra.Command, args []string) error {
4343
var s3Cli *client.S3Client
@@ -155,13 +155,13 @@ pvsadm image upload --bucket basheerbucket1320 -o centos-8-latest.ova.gz --regio
155155
}
156156

157157
func init() {
158-
Cmd.Flags().StringVar(&pkg.ImageCMDOptions.ResourceGrp, "resource-group", "", "Provide Resource-Group(default: default resource group set for the account")
159-
Cmd.Flags().StringVar(&pkg.ImageCMDOptions.ServicePlan, "service-plan", "standard", "Provide serviceplan type")
160-
Cmd.Flags().StringVarP(&pkg.ImageCMDOptions.InstanceName, "instance-name", "n", "", "Instance Name of the COS to be used")
161-
Cmd.Flags().StringVarP(&pkg.ImageCMDOptions.BucketName, "bucket", "b", "", "Region of the COS instance")
162-
Cmd.Flags().StringVarP(&pkg.ImageCMDOptions.ImageName, "object-name", "o", "", "S3 object name to be uploaded to the COS")
163-
Cmd.Flags().StringVarP(&pkg.ImageCMDOptions.Region, "region", "r", "us-south", "Region of the COS instance")
158+
Cmd.Flags().StringVar(&pkg.ImageCMDOptions.ResourceGrp, "resource-group", "default", "Name of user resource group.")
159+
Cmd.Flags().StringVar(&pkg.ImageCMDOptions.ServicePlan, "cos-storageclass", "standard", "Cloud Object Storage Class type, available values are [standard, smart, cold, vault].")
160+
Cmd.Flags().StringVarP(&pkg.ImageCMDOptions.InstanceName, "cos-instance-name", "n", "", "Cloud Object Storage instance name.")
161+
Cmd.Flags().StringVarP(&pkg.ImageCMDOptions.BucketName, "bucket", "b", "", "Cloud Object Storage bucket name.")
162+
Cmd.Flags().StringVarP(&pkg.ImageCMDOptions.ImageName, "file", "f", "", "The PATH to the file to upload.")
163+
Cmd.Flags().StringVarP(&pkg.ImageCMDOptions.Region, "bucket-region", "r", "us-south", "Cloud Object Storage bucket region.")
164164
_ = Cmd.MarkFlagRequired("bucket")
165-
_ = Cmd.MarkFlagRequired("object-name")
165+
_ = Cmd.MarkFlagRequired("file")
166166
Cmd.Flags().SortFlags = false
167167
}

0 commit comments

Comments
 (0)