From cabd99d8a4b72a23ae30e3d401e149cf7ef28f4b Mon Sep 17 00:00:00 2001 From: Ujjwal Kumar Date: Thu, 9 Nov 2023 09:50:31 +0530 Subject: [PATCH 1/2] added headers in error logs Signed-off-by: Ujjwal Kumar --- builder/ibmcloud/vpc/client.go | 60 ++++++++++++------- builder/ibmcloud/vpc/step_capture_image.go | 10 +++- builder/ibmcloud/vpc/step_create_instance.go | 58 ++++++++++++------ .../ibmcloud/vpc/step_create_ssh_key_vpc.go | 4 +- .../vpc/step_create_vpc_service_instance.go | 1 - .../ibmcloud/vpc/step_get_base_image_id.go | 6 +- builder/ibmcloud/vpc/step_get_subnet_info.go | 8 ++- builder/ibmcloud/vpc/step_image_export.go | 6 +- builder/ibmcloud/vpc/step_verify_input.go | 36 +++++++---- 9 files changed, 127 insertions(+), 62 deletions(-) diff --git a/builder/ibmcloud/vpc/client.go b/builder/ibmcloud/vpc/client.go index 3c672669..a4a77365 100755 --- a/builder/ibmcloud/vpc/client.go +++ b/builder/ibmcloud/vpc/client.go @@ -208,9 +208,11 @@ func (client IBMCloudClient) isResourceDown(resourceID string, resourceType stri if resourceType == "instances" { options := &vpcv1.GetInstanceOptions{} options.SetID(resourceID) - instance, _, err := vpcService.GetInstance(options) + instance, response, err := vpcService.GetInstance(options) if err != nil { - err := fmt.Errorf("[ERROR] Failed retrieving resource information. Error: %s", err) + xRequestId := response.Headers["X-Request-Id"][0] + xCorrelationId := response.Headers["X-Correlation-Id"][0] + err := fmt.Errorf("[ERROR] Failed retrieving resource information. Error: %s \n X-Request-Id : %s \n X-Correlation-Id : %s", err, xRequestId, xCorrelationId) ui.Error(err.Error()) log.Println(err.Error()) return false, err @@ -236,9 +238,11 @@ func (client IBMCloudClient) manageInstance(resourceID string, action string, st options := &vpcv1.CreateInstanceActionOptions{} options.SetInstanceID(resourceID) options.SetType(action) - response, _, err := vpcService.CreateInstanceAction(options) + response, res, err := vpcService.CreateInstanceAction(options) if err != nil { - err := fmt.Errorf("[ERROR] Failed to perform %s action over instance. Error: %s", action, err) + xRequestId := res.Headers["X-Request-Id"][0] + xCorrelationId := res.Headers["X-Correlation-Id"][0] + err := fmt.Errorf("[ERROR] Failed to perform %s action over instance. Error: %s \n X-Request-Id : %s \n X-Correlation-Id : %s", action, err, xRequestId, xCorrelationId) ui.Error(err.Error()) log.Println(err.Error()) return "", err @@ -259,10 +263,12 @@ func (client IBMCloudClient) retrieveResource(resourceID string, state multistep } options := &vpcv1.GetInstanceOptions{} options.SetID(resourceID) - instance, _, err := vpcService.GetInstance(options) + instance, response, err := vpcService.GetInstance(options) if err != nil { - err := fmt.Errorf("[ERROR] Failed retrieving resource information. Error: %s", err) + xRequestId := response.Headers["X-Request-Id"][0] + xCorrelationId := response.Headers["X-Correlation-Id"][0] + err := fmt.Errorf("[ERROR] Failed retrieving resource information. Error: %s \n X-Request-Id : %s \n X-Correlation-Id : %s", err, xRequestId, xCorrelationId) ui.Error(err.Error()) log.Println(err.Error()) return nil, err @@ -297,9 +303,11 @@ func (client IBMCloudClient) createFloatingIP(state multistep.StateBag) (*vpcv1. ID: &instanceResourceGroupID, }, }) - floatingIP, _, err := vpcService.CreateFloatingIP(options) + floatingIP, response, err := vpcService.CreateFloatingIP(options) if err != nil { - err := fmt.Errorf("[ERROR] Failed creating Floating IP Request. Error: %s", err) + xRequestId := response.Headers["X-Request-Id"][0] + xCorrelationId := response.Headers["X-Correlation-Id"][0] + err := fmt.Errorf("[ERROR] Failed creating Floating IP Request. Error: %s \n X-Request-Id : %s \n X-Correlation-Id : %s", err, xRequestId, xCorrelationId) ui.Error(err.Error()) log.Println(err.Error()) return nil, err @@ -316,9 +324,11 @@ func (client IBMCloudClient) GrabCredentials(instanceID string, state multistep. options := &vpcv1.GetInstanceInitializationOptions{ ID: &instanceID, } - instanceCredentials, _, err := vpcService.GetInstanceInitialization(options) + instanceCredentials, response, err := vpcService.GetInstanceInitialization(options) if err != nil { - err := fmt.Errorf("[ERROR] Failed getting instance initialization data. Error: %s", err) + xRequestId := response.Headers["X-Request-Id"][0] + xCorrelationId := response.Headers["X-Correlation-Id"][0] + err := fmt.Errorf("[ERROR] Failed getting instance initialization data. Error: %s \n X-Request-Id : %s \n X-Correlation-Id : %s", err, xRequestId, xCorrelationId) ui.Error(err.Error()) log.Println(err.Error()) return "", "", err @@ -400,9 +410,11 @@ func (client IBMCloudClient) createSSHKeyVPC(state multistep.StateBag) (*vpcv1.K vpcService = state.Get("vpcService").(*vpcv1.VpcV1) } - key, _, err := vpcService.CreateKey(options) + key, response, err := vpcService.CreateKey(options) if err != nil { - err := fmt.Errorf("[ERROR] Error sending the HTTP request that creates the SSH Key for VPC. Error: %s", err) + xRequestId := response.Headers["X-Request-Id"][0] + xCorrelationId := response.Headers["X-Correlation-Id"][0] + err := fmt.Errorf("[ERROR] Error sending the HTTP request that creates the SSH Key for VPC. Error: %s \n X-Request-Id : %s \n X-Correlation-Id : %s", err, xRequestId, xCorrelationId) ui.Error(err.Error()) log.Println(err.Error()) return nil, err @@ -417,9 +429,11 @@ func (client IBMCloudClient) getSecurityGroup(state multistep.StateBag, security vpcService = state.Get("vpcService").(*vpcv1.VpcV1) } - securityGroup, _, err := vpcService.GetSecurityGroup(&securityGroupData) + securityGroup, response, err := vpcService.GetSecurityGroup(&securityGroupData) if err != nil { - err := fmt.Errorf("[ERROR] Error getting the Security Group. Error: %s", err) + xRequestId := response.Headers["X-Request-Id"][0] + xCorrelationId := response.Headers["X-Correlation-Id"][0] + err := fmt.Errorf("[ERROR] Error getting the Security Group. Error: %s \n X-Request-Id : %s \n X-Correlation-Id : %s", err, xRequestId, xCorrelationId) ui.Error(err.Error()) log.Println(err.Error()) return nil, err @@ -434,9 +448,11 @@ func (client IBMCloudClient) createSecurityGroup(state multistep.StateBag, secur vpcService = state.Get("vpcService").(*vpcv1.VpcV1) } - securityGroup, _, err := vpcService.CreateSecurityGroup(&securityGroupData) + securityGroup, response, err := vpcService.CreateSecurityGroup(&securityGroupData) if err != nil { - err := fmt.Errorf("[ERROR] Error creating the Security Group. Error: %s", err) + xRequestId := response.Headers["X-Request-Id"][0] + xCorrelationId := response.Headers["X-Correlation-Id"][0] + err := fmt.Errorf("[ERROR] Error creating the Security Group. Error: %s \n X-Request-Id : %s \n X-Correlation-Id : %s", err, xRequestId, xCorrelationId) ui.Error(err.Error()) log.Println(err.Error()) return nil, err @@ -452,11 +468,13 @@ func (client IBMCloudClient) createRule(rule vpcv1.CreateSecurityGroupRuleOption vpcService = state.Get("vpcService").(*vpcv1.VpcV1) } - securityGroupRuleIntf, _, err := vpcService.CreateSecurityGroupRule(&rule) + securityGroupRuleIntf, response, err := vpcService.CreateSecurityGroupRule(&rule) securityGroupRule := securityGroupRuleIntf.(*vpcv1.SecurityGroupRuleSecurityGroupRuleProtocolTcpudp) if err != nil { - err := fmt.Errorf("[ERROR] Error sending the HTTP request that creates a Security Group's rule. Error: %s", err) + xRequestId := response.Headers["X-Request-Id"][0] + xCorrelationId := response.Headers["X-Correlation-Id"][0] + err := fmt.Errorf("[ERROR] Error sending the HTTP request that creates a Security Group's rule. Error: %s \n X-Request-Id : %s \n X-Correlation-Id : %s", err, xRequestId, xCorrelationId) ui.Error(err.Error()) log.Println(err.Error()) return nil, err @@ -474,9 +492,11 @@ func (client IBMCloudClient) addNetworkInterfaceToSecurityGroup(securityGroupID securityGroupID, networkInterfaceID, ) - securityGroupTargetReferenceIntf, _, err := vpcService.CreateSecurityGroupTargetBinding(options) + securityGroupTargetReferenceIntf, response, err := vpcService.CreateSecurityGroupTargetBinding(options) if err != nil { - err := fmt.Errorf("[ERROR] Error sending the HTTP request that Add the VSI's network interface to the Security Group. Error: %s", err) + xRequestId := response.Headers["X-Request-Id"][0] + xCorrelationId := response.Headers["X-Correlation-Id"][0] + err := fmt.Errorf("[ERROR] Error sending the HTTP request that Add the VSI's network interface to the Security Group. Error: %s \n X-Request-Id : %s \n X-Correlation-Id : %s", err, xRequestId, xCorrelationId) ui.Error(err.Error()) log.Println(err.Error()) return nil, err diff --git a/builder/ibmcloud/vpc/step_capture_image.go b/builder/ibmcloud/vpc/step_capture_image.go index 2d47df52..28ac4b0d 100644 --- a/builder/ibmcloud/vpc/step_capture_image.go +++ b/builder/ibmcloud/vpc/step_capture_image.go @@ -88,17 +88,21 @@ func (s *stepCaptureImage) Run(_ context.Context, state multistep.StateBag) mult options.SetImagePrototype(imagePrototype) - imageData, _, err := vpcService.CreateImage(options) + imageData, response, err := vpcService.CreateImage(options) if err != nil { - err := fmt.Errorf("[ERROR] Error sending the HTTP request that creates the image. Error: %s", err) + xRequestId := response.Headers["X-Request-Id"][0] + xCorrelationId := response.Headers["X-Correlation-Id"][0] + err := fmt.Errorf("[ERROR] Error sending the HTTP request that creates the image. Error: %s \n X-Request-Id : %s \n X-Correlation-Id : %s", err, xRequestId, xCorrelationId) ui.Error(err.Error()) log.Println(err.Error()) return multistep.ActionHalt } if err != nil { - err := fmt.Errorf("[ERROR] Error creating the Image: %s", err) + xRequestId := response.Headers["X-Request-Id"][0] + xCorrelationId := response.Headers["X-Correlation-Id"][0] + err := fmt.Errorf("[ERROR] Error creating the Image: %s \n X-Request-Id : %s \n X-Correlation-Id : %s", err, xRequestId, xCorrelationId) state.Put("error", err) ui.Error(err.Error()) // log.Fatalf(err.Error()) diff --git a/builder/ibmcloud/vpc/step_create_instance.go b/builder/ibmcloud/vpc/step_create_instance.go index cdda8b77..69c7d434 100644 --- a/builder/ibmcloud/vpc/step_create_instance.go +++ b/builder/ibmcloud/vpc/step_create_instance.go @@ -130,10 +130,12 @@ func (step *stepCreateInstance) Run(_ context.Context, state multistep.StateBag) createInstanceOptions := vpcService.NewCreateInstanceOptions( instancePrototypeModel, ) - instanceData, _, err := vpcService.CreateInstance(createInstanceOptions) + instanceData, response, err := vpcService.CreateInstance(createInstanceOptions) // End if err != nil { - err := fmt.Errorf("[ERROR] Error creating the instance: %s", err) + xRequestId := response.Headers["X-Request-Id"][0] + xCorrelationId := response.Headers["X-Correlation-Id"][0] + err := fmt.Errorf("[ERROR] Error creating the instance: %s \n X-Request-Id : %s \n X-Correlation-Id : %s", err, xRequestId, xCorrelationId) state.Put("error", err) ui.Error(err.Error()) // log.Fatalf(err.Error()) @@ -151,10 +153,12 @@ func (step *stepCreateInstance) Run(_ context.Context, state multistep.StateBag) options := &vpcv1.ListImagesOptions{} options.SetName(vsiBaseImageName) - image, _, err := vpcService.ListImages(options) + image, response, err := vpcService.ListImages(options) if err != nil { - err := fmt.Errorf("[ERROR] Error getting image with name: %s", err) + xRequestId := response.Headers["X-Request-Id"][0] + xCorrelationId := response.Headers["X-Correlation-Id"][0] + err := fmt.Errorf("[ERROR] Error getting image with name: %s \n X-Request-Id : %s \n X-Correlation-Id : %s", err, xRequestId, xCorrelationId) state.Put("error", err) ui.Error(err.Error()) return multistep.ActionHalt @@ -230,10 +234,12 @@ func (step *stepCreateInstance) Run(_ context.Context, state multistep.StateBag) createInstanceOptions := vpcService.NewCreateInstanceOptions( instancePrototypeModel, ) - instanceData, _, err := vpcService.CreateInstance(createInstanceOptions) + instanceData, response, err := vpcService.CreateInstance(createInstanceOptions) // End if err != nil { - err := fmt.Errorf("[ERROR] Error creating the instance: %s", err) + xRequestId := response.Headers["X-Request-Id"][0] + xCorrelationId := response.Headers["X-Correlation-Id"][0] + err := fmt.Errorf("[ERROR] Error creating the instance: %s \n X-Request-Id : %s \n X-Correlation-Id : %s", err, xRequestId, xCorrelationId) state.Put("error", err) ui.Error(err.Error()) // log.Fatalf(err.Error()) @@ -297,10 +303,12 @@ func (step *stepCreateInstance) Run(_ context.Context, state multistep.StateBag) createInstanceOptions := vpcService.NewCreateInstanceOptions( instancePrototypeModel, ) - instanceData, _, err := vpcService.CreateInstance(createInstanceOptions) + instanceData, response, err := vpcService.CreateInstance(createInstanceOptions) // End if err != nil { - err := fmt.Errorf("[ERROR] Error creating the instance: %s", err) + xRequestId := response.Headers["X-Request-Id"][0] + xCorrelationId := response.Headers["X-Correlation-Id"][0] + err := fmt.Errorf("[ERROR] Error creating the instance: %s \n X-Request-Id : %s \n X-Correlation-Id : %s", err, xRequestId, xCorrelationId) state.Put("error", err) ui.Error(err.Error()) // log.Fatalf(err.Error()) @@ -363,10 +371,12 @@ func (step *stepCreateInstance) Run(_ context.Context, state multistep.StateBag) createInstanceOptions := vpcService.NewCreateInstanceOptions( instancePrototypeModel, ) - instanceData, _, err := vpcService.CreateInstance(createInstanceOptions) + instanceData, response, err := vpcService.CreateInstance(createInstanceOptions) // End if err != nil { - err := fmt.Errorf("[ERROR] Error creating the instance: %s", err) + xRequestId := response.Headers["X-Request-Id"][0] + xCorrelationId := response.Headers["X-Correlation-Id"][0] + err := fmt.Errorf("[ERROR] Error creating the instance: %s \n X-Request-Id : %s \n X-Correlation-Id : %s", err, xRequestId, xCorrelationId) state.Put("error", err) ui.Error(err.Error()) // log.Fatalf(err.Error()) @@ -398,9 +408,11 @@ func (step *stepCreateInstance) Cleanup(state multistep.StateBag) { floatingIPID := state.Get("floating_ip_id").(string) options := vpcService.NewGetFloatingIPOptions(floatingIPID) - floatingIPresponse, _, err := vpcService.GetFloatingIP(options) + floatingIPresponse, response, err := vpcService.GetFloatingIP(options) if err != nil { - err := fmt.Errorf("[ERROR] Error getting the Floating IP: %s", err) + xRequestId := response.Headers["X-Request-Id"][0] + xCorrelationId := response.Headers["X-Correlation-Id"][0] + err := fmt.Errorf("[ERROR] Error getting the Floating IP: %s \n X-Request-Id : %s \n X-Correlation-Id : %s", err, xRequestId, xCorrelationId) state.Put("error", err) ui.Error(err.Error()) // log.Fatalf(err.Error()) @@ -412,7 +424,9 @@ func (step *stepCreateInstance) Cleanup(state multistep.StateBag) { result, err := vpcService.DeleteFloatingIP(options) if err != nil { - err := fmt.Errorf("[ERROR] Error releasing the Floating IP. Please release it manually: %s", err) + xRequestId := result.Headers["X-Request-Id"][0] + xCorrelationId := result.Headers["X-Correlation-Id"][0] + err := fmt.Errorf("[ERROR] Error releasing the Floating IP. Please release it manually: %s \n X-Request-Id : %s \n X-Correlation-Id : %s", err, xRequestId, xCorrelationId) state.Put("error", err) ui.Error(err.Error()) // log.Fatalf(err.Error()) @@ -432,10 +446,12 @@ func (step *stepCreateInstance) Cleanup(state multistep.StateBag) { options := &vpcv1.DeleteInstanceOptions{} options.SetID(instanceID) - _, err := vpcService.DeleteInstance(options) + response, err := vpcService.DeleteInstance(options) if err != nil { - err := fmt.Errorf("[ERROR] Error deleting the instance. Please delete it manually: %s", err) + xRequestId := response.Headers["X-Request-Id"][0] + xCorrelationId := response.Headers["X-Correlation-Id"][0] + err := fmt.Errorf("[ERROR] Error deleting the instance. Please delete it manually: %s \n X-Request-Id : %s \n X-Correlation-Id : %s", err, xRequestId, xCorrelationId) state.Put("error", err) ui.Error(err.Error()) // log.Fatalf(err.Error()) @@ -447,12 +463,14 @@ func (step *stepCreateInstance) Cleanup(state multistep.StateBag) { options.SetID(instanceID) instance, response, err := vpcService.GetInstance(options) if err != nil { + xRequestId := response.Headers["X-Request-Id"][0] + xCorrelationId := response.Headers["X-Correlation-Id"][0] if response != nil && response.StatusCode == 404 { ui.Say("Instance deleted Succesfully") instanceDeleted = true break } - err := fmt.Errorf("[ERROR] Error getting the instance to check delete status. %s", err) + err := fmt.Errorf("[ERROR] Error getting the instance to check delete status. %s \n X-Request-Id : %s \n X-Correlation-Id : %s", err, xRequestId, xCorrelationId) state.Put("error", err) ui.Error(err.Error()) } else if instance != nil { @@ -471,7 +489,9 @@ func (step *stepCreateInstance) Cleanup(state multistep.StateBag) { sgRuleResponse, sgRuleErr := vpcService.DeleteSecurityGroupRule(sgRuleOptions) if sgRuleErr != nil { - sgRuleErr := fmt.Errorf("[ERROR] Error deleting Security Group's rule %s. Please delete it manually: %s", ruleID, sgRuleErr) + xRequestId := sgRuleResponse.Headers["X-Request-Id"][0] + xCorrelationId := sgRuleResponse.Headers["X-Correlation-Id"][0] + sgRuleErr := fmt.Errorf("[ERROR] Error deleting Security Group's rule %s. Please delete it manually: %s \n X-Request-Id : %s \n X-Correlation-Id : %s", ruleID, sgRuleErr, xRequestId, xCorrelationId) state.Put("error", sgRuleErr) ui.Error(err.Error()) // log.Fatalf(err.Error()) @@ -494,7 +514,9 @@ func (step *stepCreateInstance) Cleanup(state multistep.StateBag) { sgOptions.SetID(securityGroupID) sgResponse, err := vpcService.DeleteSecurityGroup(sgOptions) if err != nil { - err := fmt.Errorf("[ERROR] Error deleting Security Group %s. Please delete it manually: %s", securityGroupName, err) + xRequestId := sgResponse.Headers["X-Request-Id"][0] + xCorrelationId := sgResponse.Headers["X-Correlation-Id"][0] + err := fmt.Errorf("[ERROR] Error deleting Security Group %s. Please delete it manually: %s \n X-Request-Id : %s \n X-Correlation-Id : %s", securityGroupName, err, xRequestId, xCorrelationId) state.Put("error", err) ui.Error(err.Error()) // log.Fatalf(err.Error()) diff --git a/builder/ibmcloud/vpc/step_create_ssh_key_vpc.go b/builder/ibmcloud/vpc/step_create_ssh_key_vpc.go index 0536d785..33c284b5 100644 --- a/builder/ibmcloud/vpc/step_create_ssh_key_vpc.go +++ b/builder/ibmcloud/vpc/step_create_ssh_key_vpc.go @@ -53,7 +53,9 @@ func (s *stepCreateSshKeyVPC) Cleanup(state multistep.StateBag) { response, err := vpcService.DeleteKey(deleteKeyOptions) if err != nil { - err := fmt.Errorf("[ERROR] Error deleting SSH key for VPC %s. Please delete it manually: %s", state.Get("vpc_ssh_key_name").(string), err) + xRequestId := response.Headers["X-Request-Id"][0] + xCorrelationId := response.Headers["X-Correlation-Id"][0] + err := fmt.Errorf("[ERROR] Error deleting SSH key for VPC %s. Please delete it manually: %s \n X-Request-Id : %s \n X-Correlation-Id : %s", state.Get("vpc_ssh_key_name").(string), err, xRequestId, xCorrelationId) state.Put("error", err) ui.Error(err.Error()) // log.Fatalf(err.Error()) diff --git a/builder/ibmcloud/vpc/step_create_vpc_service_instance.go b/builder/ibmcloud/vpc/step_create_vpc_service_instance.go index 114ef4cb..69877093 100644 --- a/builder/ibmcloud/vpc/step_create_vpc_service_instance.go +++ b/builder/ibmcloud/vpc/step_create_vpc_service_instance.go @@ -17,7 +17,6 @@ func (step *StepCreateVPCServiceInstance) Run(_ context.Context, state multistep client := state.Get("client").(*IBMCloudClient) ui := state.Get("ui").(packer.Ui) config := state.Get("config").(Config) - ui.Say("Creating VPC service...") options := &vpcv1.VpcV1Options{ diff --git a/builder/ibmcloud/vpc/step_get_base_image_id.go b/builder/ibmcloud/vpc/step_get_base_image_id.go index d1e492e9..b8205d67 100644 --- a/builder/ibmcloud/vpc/step_get_base_image_id.go +++ b/builder/ibmcloud/vpc/step_get_base_image_id.go @@ -26,10 +26,12 @@ func (step *stepGetBaseImageID) Run(_ context.Context, state multistep.StateBag) options := &vpcv1.ListImagesOptions{ Name: &config.VSIBaseImageName, } - imageList, _, err := vpcService.ListImages(options) + imageList, response, err := vpcService.ListImages(options) if err != nil { - err := fmt.Errorf("[ERROR] Error getting base-image ID: %s", err) + xRequestId := response.Headers["X-Request-Id"][0] + xCorrelationId := response.Headers["X-Correlation-Id"][0] + err := fmt.Errorf("[ERROR] Error getting base-image ID: %s \n X-Request-Id : %s \n X-Correlation-Id : %s", err, xRequestId, xCorrelationId) state.Put("error", err) ui.Error(err.Error()) return multistep.ActionHalt diff --git a/builder/ibmcloud/vpc/step_get_subnet_info.go b/builder/ibmcloud/vpc/step_get_subnet_info.go index 940da584..2520d44f 100644 --- a/builder/ibmcloud/vpc/step_get_subnet_info.go +++ b/builder/ibmcloud/vpc/step_get_subnet_info.go @@ -24,10 +24,12 @@ func (s *stepGetSubnetInfo) Run(_ context.Context, state multistep.StateBag) mul options := &vpcv1.GetSubnetOptions{} options.SetID(config.SubnetID) - subnetData, _, err := vpcService.GetSubnet(options) + subnetData, response, err := vpcService.GetSubnet(options) if err != nil { - err := fmt.Errorf("[ERROR] Error fetching subnet %s", err) + xRequestId := response.Headers["X-Request-Id"][0] + xCorrelationId := response.Headers["X-Correlation-Id"][0] + err := fmt.Errorf("[ERROR] Error fetching subnet %s \n X-Request-Id : %s \n X-Correlation-Id : %s", err, xRequestId, xCorrelationId) state.Put("error", err) ui.Error(err.Error()) return multistep.ActionHalt @@ -38,7 +40,7 @@ func (s *stepGetSubnetInfo) Run(_ context.Context, state multistep.StateBag) mul secGrpVPC := state.Get("user_sec_grp_vpc") ui.Say("Verifying the security group and subnet belongs to same VPC..") if vpcId != secGrpVPC { - err := fmt.Errorf("The security group and subnet provided are not connected to the same VPC id: %s", vpcId) + err := fmt.Errorf("[ERROR] The security group and subnet provided are not connected to the same VPC id: %s", vpcId) state.Put("error", err) ui.Error(err.Error()) return multistep.ActionHalt diff --git a/builder/ibmcloud/vpc/step_image_export.go b/builder/ibmcloud/vpc/step_image_export.go index 132547ea..07cf7e9c 100644 --- a/builder/ibmcloud/vpc/step_image_export.go +++ b/builder/ibmcloud/vpc/step_image_export.go @@ -41,9 +41,11 @@ func (step *StepImageExport) Run(_ context.Context, state multistep.StateBag) mu createImageExportJobOptions.SetFormat(format) createImageExportJobOptions.SetName(imageExportJobName) - imageExportJob, _, err := vpcService.CreateImageExportJob(createImageExportJobOptions) + imageExportJob, response, err := vpcService.CreateImageExportJob(createImageExportJobOptions) if err != nil { - err := fmt.Errorf("[ERROR] Error creating image export job: %s", err) + xRequestId := response.Headers["X-Request-Id"][0] + xCorrelationId := response.Headers["X-Correlation-Id"][0] + err := fmt.Errorf("[ERROR] Error creating image export job: %s \n X-Request-Id : %s \n X-Correlation-Id : %s", err, xRequestId, xCorrelationId) state.Put("error", err) ui.Error(err.Error()) return multistep.ActionHalt diff --git a/builder/ibmcloud/vpc/step_verify_input.go b/builder/ibmcloud/vpc/step_verify_input.go index db601674..4240885d 100644 --- a/builder/ibmcloud/vpc/step_verify_input.go +++ b/builder/ibmcloud/vpc/step_verify_input.go @@ -29,9 +29,11 @@ func (s *stepVerifyInput) Run(_ context.Context, state multistep.StateBag) multi getRegionOptions := &vpcv1.GetRegionOptions{ Name: &config.Region, } - _, _, err := vpcService.GetRegion(getRegionOptions) + _, response, err := vpcService.GetRegion(getRegionOptions) if err != nil { - err := fmt.Errorf("[ERROR] Error fetching region : %s: %s", config.Region, err) + xRequestId := response.Headers["X-Request-Id"][0] + xCorrelationId := response.Headers["X-Correlation-Id"][0] + err := fmt.Errorf("[ERROR] Error fetching region : %s: %s \n X-Request-Id : %s \n X-Correlation-Id : %s", config.Region, err, xRequestId, xCorrelationId) state.Put("error", err) ui.Error(err.Error()) return multistep.ActionHalt @@ -83,9 +85,11 @@ func (s *stepVerifyInput) Run(_ context.Context, state multistep.StateBag) multi return multistep.ActionHalt } } else { - result, _, err := serviceClient.GetResourceGroup(serviceClient.NewGetResourceGroupOptions(config.ResourceGroupID)) + result, response, err := serviceClient.GetResourceGroup(serviceClient.NewGetResourceGroupOptions(config.ResourceGroupID)) if err != nil { - err := fmt.Errorf("[ERROR] Error fetching resource group : %s: %s", config.ResourceGroupID, err) + xRequestId := response.Headers["X-Request-Id"][0] + xCorrelationId := response.Headers["X-Correlation-Id"][0] + err := fmt.Errorf("[ERROR] Error fetching resource group : %s: %s \n X-Request-Id : %s \n X-Correlation-Id : %s", config.ResourceGroupID, err, xRequestId, xCorrelationId) state.Put("error", err) ui.Error(err.Error()) return multistep.ActionHalt @@ -105,13 +109,15 @@ func (s *stepVerifyInput) Run(_ context.Context, state multistep.StateBag) multi } bootVolume, response, err := vpcService.GetVolume(getVolumeOptions) if err != nil { + xRequestId := response.Headers["X-Request-Id"][0] + xCorrelationId := response.Headers["X-Correlation-Id"][0] if response != nil && response.StatusCode == 404 { - err := fmt.Errorf("[ERROR] Boot volume provided is not found : %s", config.VSIBootVolumeID) + err := fmt.Errorf("[ERROR] Boot volume provided is not found : %s \n X-Request-Id : %s \n X-Correlation-Id : %s", config.VSIBootVolumeID, xRequestId, xCorrelationId) state.Put("error", err) ui.Error(err.Error()) return multistep.ActionHalt } - err := fmt.Errorf("[ERROR] Error fetching volume %s", config.VSIBootVolumeID) + err := fmt.Errorf("[ERROR] Error fetching volume %s \n X-Request-Id : %s \n X-Correlation-Id : %s", config.VSIBootVolumeID, xRequestId, xCorrelationId) state.Put("error", err) ui.Error(err.Error()) return multistep.ActionHalt @@ -137,13 +143,15 @@ func (s *stepVerifyInput) Run(_ context.Context, state multistep.StateBag) multi } bootSnapshot, response, err := vpcService.GetSnapshot(getSnapshotOptions) if err != nil { + xRequestId := response.Headers["X-Request-Id"][0] + xCorrelationId := response.Headers["X-Correlation-Id"][0] if response != nil && response.StatusCode == 404 { - err := fmt.Errorf("[ERROR] Boot snapahot provided is not found %s:", config.VSIBootSnapshotID) + err := fmt.Errorf("[ERROR] Boot snapshot provided is not found %s: \n X-Request-Id : %s \n X-Correlation-Id : %s", config.VSIBootSnapshotID, xRequestId, xCorrelationId) state.Put("error", err) ui.Error(err.Error()) return multistep.ActionHalt } - err := fmt.Errorf("[ERROR] Error fetching snapshot %s", config.VSIBootSnapshotID) + err := fmt.Errorf("[ERROR] Error fetching snapshot %s \n X-Request-Id : %s \n X-Correlation-Id : %s", config.VSIBootSnapshotID, xRequestId, xCorrelationId) state.Put("error", err) ui.Error(err.Error()) return multistep.ActionHalt @@ -165,9 +173,11 @@ func (s *stepVerifyInput) Run(_ context.Context, state multistep.StateBag) multi // if visibility != "" { // listImagesOptions.Visibility = &visibility // } - availableImages, _, err := vpcService.ListImages(listImagesOptions) + availableImages, response, err := vpcService.ListImages(listImagesOptions) if err != nil { - err := fmt.Errorf("[ERROR] Error fetching custom image %s", err) + xRequestId := response.Headers["X-Request-Id"][0] + xCorrelationId := response.Headers["X-Correlation-Id"][0] + err := fmt.Errorf("[ERROR] Error fetching custom image %s \n X-Request-Id : %s \n X-Correlation-Id : %s", err, xRequestId, xCorrelationId) state.Put("error", err) ui.Error(err.Error()) return multistep.ActionHalt @@ -199,9 +209,11 @@ func (s *stepVerifyInput) Run(_ context.Context, state multistep.StateBag) multi secgrpOption := &vpcv1.GetSecurityGroupOptions{ ID: &config.SecurityGroupID, } - secGrp, _, err := vpcService.GetSecurityGroup(secgrpOption) + secGrp, response, err := vpcService.GetSecurityGroup(secgrpOption) if err != nil { - err := fmt.Errorf("[ERROR] Error fetching security group %s", err) + xRequestId := response.Headers["X-Request-Id"][0] + xCorrelationId := response.Headers["X-Correlation-Id"][0] + err := fmt.Errorf("[ERROR] Error fetching security group %s \n X-Request-Id : %s \n X-Correlation-Id : %s", err, xRequestId, xCorrelationId) state.Put("error", err) ui.Error(err.Error()) return multistep.ActionHalt From 623df05001eb44636d579c2c25ac84b130f0a921 Mon Sep 17 00:00:00 2001 From: Ujjwal Kumar Date: Tue, 14 Nov 2023 23:47:09 +0530 Subject: [PATCH 2/2] debug logs and correlation id Signed-off-by: Ujjwal Kumar --- builder/ibmcloud/vpc/client.go | 70 ++++++++++++----- builder/ibmcloud/vpc/config.go | 1 + builder/ibmcloud/vpc/config.hcl2spec.go | 2 + builder/ibmcloud/vpc/step_capture_image.go | 14 +++- builder/ibmcloud/vpc/step_create_instance.go | 77 +++++++++++++------ .../ibmcloud/vpc/step_create_ssh_key_vpc.go | 7 +- .../vpc/step_create_vpc_service_instance.go | 7 +- .../ibmcloud/vpc/step_get_base_image_id.go | 7 +- builder/ibmcloud/vpc/step_get_subnet_info.go | 7 +- builder/ibmcloud/vpc/step_image_export.go | 7 +- builder/ibmcloud/vpc/step_verify_input.go | 46 +++++++---- developer/README.md | 1 + developer/examples/build.vpc.centos.pkr.hcl | 2 +- go.mod | 10 +-- go.sum | 20 ++--- 15 files changed, 193 insertions(+), 85 deletions(-) diff --git a/builder/ibmcloud/vpc/client.go b/builder/ibmcloud/vpc/client.go index a4a77365..59ebadc5 100755 --- a/builder/ibmcloud/vpc/client.go +++ b/builder/ibmcloud/vpc/client.go @@ -211,8 +211,11 @@ func (client IBMCloudClient) isResourceDown(resourceID string, resourceType stri instance, response, err := vpcService.GetInstance(options) if err != nil { xRequestId := response.Headers["X-Request-Id"][0] - xCorrelationId := response.Headers["X-Correlation-Id"][0] - err := fmt.Errorf("[ERROR] Failed retrieving resource information. Error: %s \n X-Request-Id : %s \n X-Correlation-Id : %s", err, xRequestId, xCorrelationId) + xCorrelationId := "" + if len(response.Headers["X-Correlation-Id"]) != 0 { + xCorrelationId = fmt.Sprintf("\n X-Correlation-Id : %s", response.Headers["X-Correlation-Id"][0]) + } + err := fmt.Errorf("[ERROR] Failed retrieving resource information. Error: %s \n X-Request-Id : %s %s", err, xRequestId, xCorrelationId) ui.Error(err.Error()) log.Println(err.Error()) return false, err @@ -241,8 +244,11 @@ func (client IBMCloudClient) manageInstance(resourceID string, action string, st response, res, err := vpcService.CreateInstanceAction(options) if err != nil { xRequestId := res.Headers["X-Request-Id"][0] - xCorrelationId := res.Headers["X-Correlation-Id"][0] - err := fmt.Errorf("[ERROR] Failed to perform %s action over instance. Error: %s \n X-Request-Id : %s \n X-Correlation-Id : %s", action, err, xRequestId, xCorrelationId) + xCorrelationId := "" + if len(res.Headers["X-Correlation-Id"]) != 0 { + xCorrelationId = fmt.Sprintf("\n X-Correlation-Id : %s", res.Headers["X-Correlation-Id"][0]) + } + err := fmt.Errorf("[ERROR] Failed to perform %s action over instance. Error: %s \n X-Request-Id : %s %s", action, err, xRequestId, xCorrelationId) ui.Error(err.Error()) log.Println(err.Error()) return "", err @@ -267,8 +273,11 @@ func (client IBMCloudClient) retrieveResource(resourceID string, state multistep if err != nil { xRequestId := response.Headers["X-Request-Id"][0] - xCorrelationId := response.Headers["X-Correlation-Id"][0] - err := fmt.Errorf("[ERROR] Failed retrieving resource information. Error: %s \n X-Request-Id : %s \n X-Correlation-Id : %s", err, xRequestId, xCorrelationId) + xCorrelationId := "" + if len(response.Headers["X-Correlation-Id"]) != 0 { + xCorrelationId = fmt.Sprintf("\n X-Correlation-Id : %s", response.Headers["X-Correlation-Id"][0]) + } + err := fmt.Errorf("[ERROR] Failed retrieving resource information. Error: %s \n X-Request-Id : %s %s", err, xRequestId, xCorrelationId) ui.Error(err.Error()) log.Println(err.Error()) return nil, err @@ -306,8 +315,11 @@ func (client IBMCloudClient) createFloatingIP(state multistep.StateBag) (*vpcv1. floatingIP, response, err := vpcService.CreateFloatingIP(options) if err != nil { xRequestId := response.Headers["X-Request-Id"][0] - xCorrelationId := response.Headers["X-Correlation-Id"][0] - err := fmt.Errorf("[ERROR] Failed creating Floating IP Request. Error: %s \n X-Request-Id : %s \n X-Correlation-Id : %s", err, xRequestId, xCorrelationId) + xCorrelationId := "" + if len(response.Headers["X-Correlation-Id"]) != 0 { + xCorrelationId = fmt.Sprintf("\n X-Correlation-Id : %s", response.Headers["X-Correlation-Id"][0]) + } + err := fmt.Errorf("[ERROR] Failed creating Floating IP Request. Error: %s \n X-Request-Id : %s %s", err, xRequestId, xCorrelationId) ui.Error(err.Error()) log.Println(err.Error()) return nil, err @@ -327,8 +339,11 @@ func (client IBMCloudClient) GrabCredentials(instanceID string, state multistep. instanceCredentials, response, err := vpcService.GetInstanceInitialization(options) if err != nil { xRequestId := response.Headers["X-Request-Id"][0] - xCorrelationId := response.Headers["X-Correlation-Id"][0] - err := fmt.Errorf("[ERROR] Failed getting instance initialization data. Error: %s \n X-Request-Id : %s \n X-Correlation-Id : %s", err, xRequestId, xCorrelationId) + xCorrelationId := "" + if len(response.Headers["X-Correlation-Id"]) != 0 { + xCorrelationId = fmt.Sprintf("\n X-Correlation-Id : %s", response.Headers["X-Correlation-Id"][0]) + } + err := fmt.Errorf("[ERROR] Failed getting instance initialization data. Error: %s \n X-Request-Id : %s %s", err, xRequestId, xCorrelationId) ui.Error(err.Error()) log.Println(err.Error()) return "", "", err @@ -413,8 +428,11 @@ func (client IBMCloudClient) createSSHKeyVPC(state multistep.StateBag) (*vpcv1.K key, response, err := vpcService.CreateKey(options) if err != nil { xRequestId := response.Headers["X-Request-Id"][0] - xCorrelationId := response.Headers["X-Correlation-Id"][0] - err := fmt.Errorf("[ERROR] Error sending the HTTP request that creates the SSH Key for VPC. Error: %s \n X-Request-Id : %s \n X-Correlation-Id : %s", err, xRequestId, xCorrelationId) + xCorrelationId := "" + if len(response.Headers["X-Correlation-Id"]) != 0 { + xCorrelationId = fmt.Sprintf("\n X-Correlation-Id : %s", response.Headers["X-Correlation-Id"][0]) + } + err := fmt.Errorf("[ERROR] Error sending the HTTP request that creates the SSH Key for VPC. Error: %s \n X-Request-Id : %s %s", err, xRequestId, xCorrelationId) ui.Error(err.Error()) log.Println(err.Error()) return nil, err @@ -432,8 +450,11 @@ func (client IBMCloudClient) getSecurityGroup(state multistep.StateBag, security securityGroup, response, err := vpcService.GetSecurityGroup(&securityGroupData) if err != nil { xRequestId := response.Headers["X-Request-Id"][0] - xCorrelationId := response.Headers["X-Correlation-Id"][0] - err := fmt.Errorf("[ERROR] Error getting the Security Group. Error: %s \n X-Request-Id : %s \n X-Correlation-Id : %s", err, xRequestId, xCorrelationId) + xCorrelationId := "" + if len(response.Headers["X-Correlation-Id"]) != 0 { + xCorrelationId = fmt.Sprintf("\n X-Correlation-Id : %s", response.Headers["X-Correlation-Id"][0]) + } + err := fmt.Errorf("[ERROR] Error getting the Security Group. Error: %s \n X-Request-Id : %s %s", err, xRequestId, xCorrelationId) ui.Error(err.Error()) log.Println(err.Error()) return nil, err @@ -451,8 +472,11 @@ func (client IBMCloudClient) createSecurityGroup(state multistep.StateBag, secur securityGroup, response, err := vpcService.CreateSecurityGroup(&securityGroupData) if err != nil { xRequestId := response.Headers["X-Request-Id"][0] - xCorrelationId := response.Headers["X-Correlation-Id"][0] - err := fmt.Errorf("[ERROR] Error creating the Security Group. Error: %s \n X-Request-Id : %s \n X-Correlation-Id : %s", err, xRequestId, xCorrelationId) + xCorrelationId := "" + if len(response.Headers["X-Correlation-Id"]) != 0 { + xCorrelationId = fmt.Sprintf("\n X-Correlation-Id : %s", response.Headers["X-Correlation-Id"][0]) + } + err := fmt.Errorf("[ERROR] Error creating the Security Group. Error: %s \n X-Request-Id : %s %s", err, xRequestId, xCorrelationId) ui.Error(err.Error()) log.Println(err.Error()) return nil, err @@ -473,8 +497,11 @@ func (client IBMCloudClient) createRule(rule vpcv1.CreateSecurityGroupRuleOption if err != nil { xRequestId := response.Headers["X-Request-Id"][0] - xCorrelationId := response.Headers["X-Correlation-Id"][0] - err := fmt.Errorf("[ERROR] Error sending the HTTP request that creates a Security Group's rule. Error: %s \n X-Request-Id : %s \n X-Correlation-Id : %s", err, xRequestId, xCorrelationId) + xCorrelationId := "" + if len(response.Headers["X-Correlation-Id"]) != 0 { + xCorrelationId = fmt.Sprintf("\n X-Correlation-Id : %s", response.Headers["X-Correlation-Id"][0]) + } + err := fmt.Errorf("[ERROR] Error sending the HTTP request that creates a Security Group's rule. Error: %s \n X-Request-Id : %s %s", err, xRequestId, xCorrelationId) ui.Error(err.Error()) log.Println(err.Error()) return nil, err @@ -495,8 +522,11 @@ func (client IBMCloudClient) addNetworkInterfaceToSecurityGroup(securityGroupID securityGroupTargetReferenceIntf, response, err := vpcService.CreateSecurityGroupTargetBinding(options) if err != nil { xRequestId := response.Headers["X-Request-Id"][0] - xCorrelationId := response.Headers["X-Correlation-Id"][0] - err := fmt.Errorf("[ERROR] Error sending the HTTP request that Add the VSI's network interface to the Security Group. Error: %s \n X-Request-Id : %s \n X-Correlation-Id : %s", err, xRequestId, xCorrelationId) + xCorrelationId := "" + if len(response.Headers["X-Correlation-Id"]) != 0 { + xCorrelationId = fmt.Sprintf("\n X-Correlation-Id : %s", response.Headers["X-Correlation-Id"][0]) + } + err := fmt.Errorf("[ERROR] Error sending the HTTP request that Add the VSI's network interface to the Security Group. Error: %s \n X-Request-Id : %s %s", err, xRequestId, xCorrelationId) ui.Error(err.Error()) log.Println(err.Error()) return nil, err diff --git a/builder/ibmcloud/vpc/config.go b/builder/ibmcloud/vpc/config.go index b4206ed6..21d75017 100644 --- a/builder/ibmcloud/vpc/config.go +++ b/builder/ibmcloud/vpc/config.go @@ -44,6 +44,7 @@ type Config struct { VSIInterface string `mapstructure:"vsi_interface"` VSIUserDataFile string `mapstructure:"vsi_user_data_file"` VSIUserDataString string `mapstructure:"vsi_user_data"` + VPCDebugLogs string `mapstructure:"vpc_log"` ImageName string `mapstructure:"image_name"` ImageTags []string `mapstructure:"tags"` diff --git a/builder/ibmcloud/vpc/config.hcl2spec.go b/builder/ibmcloud/vpc/config.hcl2spec.go index 2792a841..c30af3b5 100644 --- a/builder/ibmcloud/vpc/config.hcl2spec.go +++ b/builder/ibmcloud/vpc/config.hcl2spec.go @@ -91,6 +91,7 @@ type FlatConfig struct { VSIInterface *string `mapstructure:"vsi_interface" cty:"vsi_interface" hcl:"vsi_interface"` VSIUserDataFile *string `mapstructure:"vsi_user_data_file" cty:"vsi_user_data_file" hcl:"vsi_user_data_file"` VSIUserDataString *string `mapstructure:"vsi_user_data" cty:"vsi_user_data" hcl:"vsi_user_data"` + VPCDebugLogs *string `mapstructure:"vpc_log" cty:"vpc_log" hcl:"vpc_log"` ImageName *string `mapstructure:"image_name" cty:"image_name" hcl:"image_name"` ImageTags []string `mapstructure:"tags" cty:"tags" hcl:"tags"` RawStateTimeout *string `mapstructure:"timeout" cty:"timeout" hcl:"timeout"` @@ -195,6 +196,7 @@ func (*FlatConfig) HCL2Spec() map[string]hcldec.Spec { "vsi_interface": &hcldec.AttrSpec{Name: "vsi_interface", Type: cty.String, Required: false}, "vsi_user_data_file": &hcldec.AttrSpec{Name: "vsi_user_data_file", Type: cty.String, Required: false}, "vsi_user_data": &hcldec.AttrSpec{Name: "vsi_user_data", Type: cty.String, Required: false}, + "vpc_log": &hcldec.AttrSpec{Name: "vpc_log", Type: cty.String, Required: false}, "image_name": &hcldec.AttrSpec{Name: "image_name", Type: cty.String, Required: false}, "tags": &hcldec.AttrSpec{Name: "tags", Type: cty.List(cty.String), Required: false}, "timeout": &hcldec.AttrSpec{Name: "timeout", Type: cty.String, Required: false}, diff --git a/builder/ibmcloud/vpc/step_capture_image.go b/builder/ibmcloud/vpc/step_capture_image.go index 28ac4b0d..06b3f95e 100644 --- a/builder/ibmcloud/vpc/step_capture_image.go +++ b/builder/ibmcloud/vpc/step_capture_image.go @@ -92,8 +92,11 @@ func (s *stepCaptureImage) Run(_ context.Context, state multistep.StateBag) mult if err != nil { xRequestId := response.Headers["X-Request-Id"][0] - xCorrelationId := response.Headers["X-Correlation-Id"][0] - err := fmt.Errorf("[ERROR] Error sending the HTTP request that creates the image. Error: %s \n X-Request-Id : %s \n X-Correlation-Id : %s", err, xRequestId, xCorrelationId) + xCorrelationId := "" + if len(response.Headers["X-Correlation-Id"]) != 0 { + xCorrelationId = fmt.Sprintf("\n X-Correlation-Id : %s", response.Headers["X-Correlation-Id"][0]) + } + err := fmt.Errorf("[ERROR] Error sending the HTTP request that creates the image. Error: %s \n X-Request-Id : %s %s", err, xRequestId, xCorrelationId) ui.Error(err.Error()) log.Println(err.Error()) return multistep.ActionHalt @@ -101,8 +104,11 @@ func (s *stepCaptureImage) Run(_ context.Context, state multistep.StateBag) mult if err != nil { xRequestId := response.Headers["X-Request-Id"][0] - xCorrelationId := response.Headers["X-Correlation-Id"][0] - err := fmt.Errorf("[ERROR] Error creating the Image: %s \n X-Request-Id : %s \n X-Correlation-Id : %s", err, xRequestId, xCorrelationId) + xCorrelationId := "" + if len(response.Headers["X-Correlation-Id"]) != 0 { + xCorrelationId = fmt.Sprintf("\n X-Correlation-Id : %s", response.Headers["X-Correlation-Id"][0]) + } + err := fmt.Errorf("[ERROR] Error creating the Image: %s \n X-Request-Id : %s %s", err, xRequestId, xCorrelationId) state.Put("error", err) ui.Error(err.Error()) // log.Fatalf(err.Error()) diff --git a/builder/ibmcloud/vpc/step_create_instance.go b/builder/ibmcloud/vpc/step_create_instance.go index 69c7d434..e25e0178 100644 --- a/builder/ibmcloud/vpc/step_create_instance.go +++ b/builder/ibmcloud/vpc/step_create_instance.go @@ -134,8 +134,11 @@ func (step *stepCreateInstance) Run(_ context.Context, state multistep.StateBag) // End if err != nil { xRequestId := response.Headers["X-Request-Id"][0] - xCorrelationId := response.Headers["X-Correlation-Id"][0] - err := fmt.Errorf("[ERROR] Error creating the instance: %s \n X-Request-Id : %s \n X-Correlation-Id : %s", err, xRequestId, xCorrelationId) + xCorrelationId := "" + if len(response.Headers["X-Correlation-Id"]) != 0 { + xCorrelationId = fmt.Sprintf("\n X-Correlation-Id : %s", response.Headers["X-Correlation-Id"][0]) + } + err := fmt.Errorf("[ERROR] Error creating the instance: %s \n X-Request-Id : %s %s", err, xRequestId, xCorrelationId) state.Put("error", err) ui.Error(err.Error()) // log.Fatalf(err.Error()) @@ -157,8 +160,11 @@ func (step *stepCreateInstance) Run(_ context.Context, state multistep.StateBag) if err != nil { xRequestId := response.Headers["X-Request-Id"][0] - xCorrelationId := response.Headers["X-Correlation-Id"][0] - err := fmt.Errorf("[ERROR] Error getting image with name: %s \n X-Request-Id : %s \n X-Correlation-Id : %s", err, xRequestId, xCorrelationId) + xCorrelationId := "" + if len(response.Headers["X-Correlation-Id"]) != 0 { + xCorrelationId = fmt.Sprintf("\n X-Correlation-Id : %s", response.Headers["X-Correlation-Id"][0]) + } + err := fmt.Errorf("[ERROR] Error getting image with name: %s \n X-Request-Id : %s %s", err, xRequestId, xCorrelationId) state.Put("error", err) ui.Error(err.Error()) return multistep.ActionHalt @@ -238,8 +244,11 @@ func (step *stepCreateInstance) Run(_ context.Context, state multistep.StateBag) // End if err != nil { xRequestId := response.Headers["X-Request-Id"][0] - xCorrelationId := response.Headers["X-Correlation-Id"][0] - err := fmt.Errorf("[ERROR] Error creating the instance: %s \n X-Request-Id : %s \n X-Correlation-Id : %s", err, xRequestId, xCorrelationId) + xCorrelationId := "" + if len(response.Headers["X-Correlation-Id"]) != 0 { + xCorrelationId = fmt.Sprintf("\n X-Correlation-Id : %s", response.Headers["X-Correlation-Id"][0]) + } + err := fmt.Errorf("[ERROR] Error creating the instance: %s \n X-Request-Id : %s %s", err, xRequestId, xCorrelationId) state.Put("error", err) ui.Error(err.Error()) // log.Fatalf(err.Error()) @@ -307,8 +316,11 @@ func (step *stepCreateInstance) Run(_ context.Context, state multistep.StateBag) // End if err != nil { xRequestId := response.Headers["X-Request-Id"][0] - xCorrelationId := response.Headers["X-Correlation-Id"][0] - err := fmt.Errorf("[ERROR] Error creating the instance: %s \n X-Request-Id : %s \n X-Correlation-Id : %s", err, xRequestId, xCorrelationId) + xCorrelationId := "" + if len(response.Headers["X-Correlation-Id"]) != 0 { + xCorrelationId = fmt.Sprintf("\n X-Correlation-Id : %s", response.Headers["X-Correlation-Id"][0]) + } + err := fmt.Errorf("[ERROR] Error creating the instance: %s \n X-Request-Id : %s %s", err, xRequestId, xCorrelationId) state.Put("error", err) ui.Error(err.Error()) // log.Fatalf(err.Error()) @@ -375,8 +387,11 @@ func (step *stepCreateInstance) Run(_ context.Context, state multistep.StateBag) // End if err != nil { xRequestId := response.Headers["X-Request-Id"][0] - xCorrelationId := response.Headers["X-Correlation-Id"][0] - err := fmt.Errorf("[ERROR] Error creating the instance: %s \n X-Request-Id : %s \n X-Correlation-Id : %s", err, xRequestId, xCorrelationId) + xCorrelationId := "" + if len(response.Headers["X-Correlation-Id"]) != 0 { + xCorrelationId = fmt.Sprintf("\n X-Correlation-Id : %s", response.Headers["X-Correlation-Id"][0]) + } + err := fmt.Errorf("[ERROR] Error creating the instance: %s \n X-Request-Id : %s %s", err, xRequestId, xCorrelationId) state.Put("error", err) ui.Error(err.Error()) // log.Fatalf(err.Error()) @@ -411,8 +426,11 @@ func (step *stepCreateInstance) Cleanup(state multistep.StateBag) { floatingIPresponse, response, err := vpcService.GetFloatingIP(options) if err != nil { xRequestId := response.Headers["X-Request-Id"][0] - xCorrelationId := response.Headers["X-Correlation-Id"][0] - err := fmt.Errorf("[ERROR] Error getting the Floating IP: %s \n X-Request-Id : %s \n X-Correlation-Id : %s", err, xRequestId, xCorrelationId) + xCorrelationId := "" + if len(response.Headers["X-Correlation-Id"]) != 0 { + xCorrelationId = fmt.Sprintf("\n X-Correlation-Id : %s", response.Headers["X-Correlation-Id"][0]) + } + err := fmt.Errorf("[ERROR] Error getting the Floating IP: %s \n X-Request-Id : %s %s", err, xRequestId, xCorrelationId) state.Put("error", err) ui.Error(err.Error()) // log.Fatalf(err.Error()) @@ -425,8 +443,11 @@ func (step *stepCreateInstance) Cleanup(state multistep.StateBag) { if err != nil { xRequestId := result.Headers["X-Request-Id"][0] - xCorrelationId := result.Headers["X-Correlation-Id"][0] - err := fmt.Errorf("[ERROR] Error releasing the Floating IP. Please release it manually: %s \n X-Request-Id : %s \n X-Correlation-Id : %s", err, xRequestId, xCorrelationId) + xCorrelationId := "" + if len(result.Headers["X-Correlation-Id"]) != 0 { + xCorrelationId = fmt.Sprintf("\n X-Correlation-Id : %s", result.Headers["X-Correlation-Id"][0]) + } + err := fmt.Errorf("[ERROR] Error releasing the Floating IP. Please release it manually: %s \n X-Request-Id : %s %s", err, xRequestId, xCorrelationId) state.Put("error", err) ui.Error(err.Error()) // log.Fatalf(err.Error()) @@ -450,8 +471,11 @@ func (step *stepCreateInstance) Cleanup(state multistep.StateBag) { if err != nil { xRequestId := response.Headers["X-Request-Id"][0] - xCorrelationId := response.Headers["X-Correlation-Id"][0] - err := fmt.Errorf("[ERROR] Error deleting the instance. Please delete it manually: %s \n X-Request-Id : %s \n X-Correlation-Id : %s", err, xRequestId, xCorrelationId) + xCorrelationId := "" + if len(response.Headers["X-Correlation-Id"]) != 0 { + xCorrelationId = fmt.Sprintf("\n X-Correlation-Id : %s", response.Headers["X-Correlation-Id"][0]) + } + err := fmt.Errorf("[ERROR] Error deleting the instance. Please delete it manually: %s \n X-Request-Id : %s %s", err, xRequestId, xCorrelationId) state.Put("error", err) ui.Error(err.Error()) // log.Fatalf(err.Error()) @@ -464,13 +488,16 @@ func (step *stepCreateInstance) Cleanup(state multistep.StateBag) { instance, response, err := vpcService.GetInstance(options) if err != nil { xRequestId := response.Headers["X-Request-Id"][0] - xCorrelationId := response.Headers["X-Correlation-Id"][0] + xCorrelationId := "" + if len(response.Headers["X-Correlation-Id"]) != 0 { + xCorrelationId = fmt.Sprintf("\n X-Correlation-Id : %s", response.Headers["X-Correlation-Id"][0]) + } if response != nil && response.StatusCode == 404 { ui.Say("Instance deleted Succesfully") instanceDeleted = true break } - err := fmt.Errorf("[ERROR] Error getting the instance to check delete status. %s \n X-Request-Id : %s \n X-Correlation-Id : %s", err, xRequestId, xCorrelationId) + err := fmt.Errorf("[ERROR] Error getting the instance to check delete status. %s \n X-Request-Id : %s %s", err, xRequestId, xCorrelationId) state.Put("error", err) ui.Error(err.Error()) } else if instance != nil { @@ -490,8 +517,11 @@ func (step *stepCreateInstance) Cleanup(state multistep.StateBag) { if sgRuleErr != nil { xRequestId := sgRuleResponse.Headers["X-Request-Id"][0] - xCorrelationId := sgRuleResponse.Headers["X-Correlation-Id"][0] - sgRuleErr := fmt.Errorf("[ERROR] Error deleting Security Group's rule %s. Please delete it manually: %s \n X-Request-Id : %s \n X-Correlation-Id : %s", ruleID, sgRuleErr, xRequestId, xCorrelationId) + xCorrelationId := "" + if len(sgRuleResponse.Headers["X-Correlation-Id"]) != 0 { + xCorrelationId = fmt.Sprintf("\n X-Correlation-Id : %s", sgRuleResponse.Headers["X-Correlation-Id"][0]) + } + sgRuleErr := fmt.Errorf("[ERROR] Error deleting Security Group's rule %s. Please delete it manually: %s \n X-Request-Id : %s %s", ruleID, sgRuleErr, xRequestId, xCorrelationId) state.Put("error", sgRuleErr) ui.Error(err.Error()) // log.Fatalf(err.Error()) @@ -515,8 +545,11 @@ func (step *stepCreateInstance) Cleanup(state multistep.StateBag) { sgResponse, err := vpcService.DeleteSecurityGroup(sgOptions) if err != nil { xRequestId := sgResponse.Headers["X-Request-Id"][0] - xCorrelationId := sgResponse.Headers["X-Correlation-Id"][0] - err := fmt.Errorf("[ERROR] Error deleting Security Group %s. Please delete it manually: %s \n X-Request-Id : %s \n X-Correlation-Id : %s", securityGroupName, err, xRequestId, xCorrelationId) + xCorrelationId := "" + if len(sgResponse.Headers["X-Correlation-Id"]) != 0 { + xCorrelationId = fmt.Sprintf("\n X-Correlation-Id : %s", sgResponse.Headers["X-Correlation-Id"][0]) + } + err := fmt.Errorf("[ERROR] Error deleting Security Group %s. Please delete it manually: %s \n X-Request-Id : %s %s", securityGroupName, err, xRequestId, xCorrelationId) state.Put("error", err) ui.Error(err.Error()) // log.Fatalf(err.Error()) diff --git a/builder/ibmcloud/vpc/step_create_ssh_key_vpc.go b/builder/ibmcloud/vpc/step_create_ssh_key_vpc.go index 33c284b5..31b390bc 100644 --- a/builder/ibmcloud/vpc/step_create_ssh_key_vpc.go +++ b/builder/ibmcloud/vpc/step_create_ssh_key_vpc.go @@ -54,8 +54,11 @@ func (s *stepCreateSshKeyVPC) Cleanup(state multistep.StateBag) { if err != nil { xRequestId := response.Headers["X-Request-Id"][0] - xCorrelationId := response.Headers["X-Correlation-Id"][0] - err := fmt.Errorf("[ERROR] Error deleting SSH key for VPC %s. Please delete it manually: %s \n X-Request-Id : %s \n X-Correlation-Id : %s", state.Get("vpc_ssh_key_name").(string), err, xRequestId, xCorrelationId) + xCorrelationId := "" + if len(response.Headers["X-Correlation-Id"]) != 0 { + xCorrelationId = fmt.Sprintf("\n X-Correlation-Id : %s", response.Headers["X-Correlation-Id"][0]) + } + err := fmt.Errorf("[ERROR] Error deleting SSH key for VPC %s. Please delete it manually: %s \n X-Request-Id : %s %s", state.Get("vpc_ssh_key_name").(string), err, xRequestId, xCorrelationId) state.Put("error", err) ui.Error(err.Error()) // log.Fatalf(err.Error()) diff --git a/builder/ibmcloud/vpc/step_create_vpc_service_instance.go b/builder/ibmcloud/vpc/step_create_vpc_service_instance.go index 69877093..723d8b93 100644 --- a/builder/ibmcloud/vpc/step_create_vpc_service_instance.go +++ b/builder/ibmcloud/vpc/step_create_vpc_service_instance.go @@ -3,6 +3,7 @@ package vpc import ( "context" "fmt" + "log" "github.com/IBM/go-sdk-core/v5/core" "github.com/IBM/vpc-go-sdk/vpcv1" @@ -18,7 +19,11 @@ func (step *StepCreateVPCServiceInstance) Run(_ context.Context, state multistep ui := state.Get("ui").(packer.Ui) config := state.Get("config").(Config) ui.Say("Creating VPC service...") - + if config.VPCDebugLogs == "debug" { + logDestination := log.Writer() + goLogger := log.New(logDestination, "", log.LstdFlags) + core.SetLogger(core.NewLogger(core.LevelDebug, goLogger, goLogger)) + } options := &vpcv1.VpcV1Options{ Authenticator: &core.IamAuthenticator{ ApiKey: client.IBMApiKey, diff --git a/builder/ibmcloud/vpc/step_get_base_image_id.go b/builder/ibmcloud/vpc/step_get_base_image_id.go index b8205d67..cc97ec1f 100644 --- a/builder/ibmcloud/vpc/step_get_base_image_id.go +++ b/builder/ibmcloud/vpc/step_get_base_image_id.go @@ -30,8 +30,11 @@ func (step *stepGetBaseImageID) Run(_ context.Context, state multistep.StateBag) if err != nil { xRequestId := response.Headers["X-Request-Id"][0] - xCorrelationId := response.Headers["X-Correlation-Id"][0] - err := fmt.Errorf("[ERROR] Error getting base-image ID: %s \n X-Request-Id : %s \n X-Correlation-Id : %s", err, xRequestId, xCorrelationId) + xCorrelationId := "" + if len(response.Headers["X-Correlation-Id"]) != 0 { + xCorrelationId = fmt.Sprintf("\n X-Correlation-Id : %s", response.Headers["X-Correlation-Id"][0]) + } + err := fmt.Errorf("[ERROR] Error getting base-image ID: %s \n X-Request-Id : %s %s", err, xRequestId, xCorrelationId) state.Put("error", err) ui.Error(err.Error()) return multistep.ActionHalt diff --git a/builder/ibmcloud/vpc/step_get_subnet_info.go b/builder/ibmcloud/vpc/step_get_subnet_info.go index 2520d44f..d9684e5c 100644 --- a/builder/ibmcloud/vpc/step_get_subnet_info.go +++ b/builder/ibmcloud/vpc/step_get_subnet_info.go @@ -28,8 +28,11 @@ func (s *stepGetSubnetInfo) Run(_ context.Context, state multistep.StateBag) mul if err != nil { xRequestId := response.Headers["X-Request-Id"][0] - xCorrelationId := response.Headers["X-Correlation-Id"][0] - err := fmt.Errorf("[ERROR] Error fetching subnet %s \n X-Request-Id : %s \n X-Correlation-Id : %s", err, xRequestId, xCorrelationId) + xCorrelationId := "" + if len(response.Headers["X-Correlation-Id"]) != 0 { + xCorrelationId = fmt.Sprintf("\n X-Correlation-Id : %s", response.Headers["X-Correlation-Id"][0]) + } + err := fmt.Errorf("[ERROR] Error fetching subnet %s \n X-Request-Id : %s %s", err, xRequestId, xCorrelationId) state.Put("error", err) ui.Error(err.Error()) return multistep.ActionHalt diff --git a/builder/ibmcloud/vpc/step_image_export.go b/builder/ibmcloud/vpc/step_image_export.go index 07cf7e9c..22ff2142 100644 --- a/builder/ibmcloud/vpc/step_image_export.go +++ b/builder/ibmcloud/vpc/step_image_export.go @@ -44,8 +44,11 @@ func (step *StepImageExport) Run(_ context.Context, state multistep.StateBag) mu imageExportJob, response, err := vpcService.CreateImageExportJob(createImageExportJobOptions) if err != nil { xRequestId := response.Headers["X-Request-Id"][0] - xCorrelationId := response.Headers["X-Correlation-Id"][0] - err := fmt.Errorf("[ERROR] Error creating image export job: %s \n X-Request-Id : %s \n X-Correlation-Id : %s", err, xRequestId, xCorrelationId) + xCorrelationId := "" + if len(response.Headers["X-Correlation-Id"]) != 0 { + xCorrelationId = fmt.Sprintf("\n X-Correlation-Id : %s", response.Headers["X-Correlation-Id"][0]) + } + err := fmt.Errorf("[ERROR] Error creating image export job: %s \n X-Request-Id : %s %s", err, xRequestId, xCorrelationId) state.Put("error", err) ui.Error(err.Error()) return multistep.ActionHalt diff --git a/builder/ibmcloud/vpc/step_verify_input.go b/builder/ibmcloud/vpc/step_verify_input.go index 4240885d..fc7b35df 100644 --- a/builder/ibmcloud/vpc/step_verify_input.go +++ b/builder/ibmcloud/vpc/step_verify_input.go @@ -32,8 +32,11 @@ func (s *stepVerifyInput) Run(_ context.Context, state multistep.StateBag) multi _, response, err := vpcService.GetRegion(getRegionOptions) if err != nil { xRequestId := response.Headers["X-Request-Id"][0] - xCorrelationId := response.Headers["X-Correlation-Id"][0] - err := fmt.Errorf("[ERROR] Error fetching region : %s: %s \n X-Request-Id : %s \n X-Correlation-Id : %s", config.Region, err, xRequestId, xCorrelationId) + xCorrelationId := "" + if len(response.Headers["X-Correlation-Id"]) != 0 { + xCorrelationId = fmt.Sprintf("\n X-Correlation-Id : %s", response.Headers["X-Correlation-Id"][0]) + } + err := fmt.Errorf("[ERROR] Error fetching region : %s: %s \n X-Request-Id : %s %s", config.Region, err, xRequestId, xCorrelationId) state.Put("error", err) ui.Error(err.Error()) return multistep.ActionHalt @@ -88,8 +91,11 @@ func (s *stepVerifyInput) Run(_ context.Context, state multistep.StateBag) multi result, response, err := serviceClient.GetResourceGroup(serviceClient.NewGetResourceGroupOptions(config.ResourceGroupID)) if err != nil { xRequestId := response.Headers["X-Request-Id"][0] - xCorrelationId := response.Headers["X-Correlation-Id"][0] - err := fmt.Errorf("[ERROR] Error fetching resource group : %s: %s \n X-Request-Id : %s \n X-Correlation-Id : %s", config.ResourceGroupID, err, xRequestId, xCorrelationId) + xCorrelationId := "" + if len(response.Headers["X-Correlation-Id"]) != 0 { + xCorrelationId = fmt.Sprintf("\n X-Correlation-Id : %s", response.Headers["X-Correlation-Id"][0]) + } + err := fmt.Errorf("[ERROR] Error fetching resource group : %s: %s \n X-Request-Id : %s %s", config.ResourceGroupID, err, xRequestId, xCorrelationId) state.Put("error", err) ui.Error(err.Error()) return multistep.ActionHalt @@ -110,14 +116,17 @@ func (s *stepVerifyInput) Run(_ context.Context, state multistep.StateBag) multi bootVolume, response, err := vpcService.GetVolume(getVolumeOptions) if err != nil { xRequestId := response.Headers["X-Request-Id"][0] - xCorrelationId := response.Headers["X-Correlation-Id"][0] + xCorrelationId := "" + if len(response.Headers["X-Correlation-Id"]) != 0 { + xCorrelationId = fmt.Sprintf("\n X-Correlation-Id : %s", response.Headers["X-Correlation-Id"][0]) + } if response != nil && response.StatusCode == 404 { - err := fmt.Errorf("[ERROR] Boot volume provided is not found : %s \n X-Request-Id : %s \n X-Correlation-Id : %s", config.VSIBootVolumeID, xRequestId, xCorrelationId) + err := fmt.Errorf("[ERROR] Boot volume provided is not found : %s \n X-Request-Id : %s %s", config.VSIBootVolumeID, xRequestId, xCorrelationId) state.Put("error", err) ui.Error(err.Error()) return multistep.ActionHalt } - err := fmt.Errorf("[ERROR] Error fetching volume %s \n X-Request-Id : %s \n X-Correlation-Id : %s", config.VSIBootVolumeID, xRequestId, xCorrelationId) + err := fmt.Errorf("[ERROR] Error fetching volume %s \n X-Request-Id : %s %s", config.VSIBootVolumeID, xRequestId, xCorrelationId) state.Put("error", err) ui.Error(err.Error()) return multistep.ActionHalt @@ -144,14 +153,17 @@ func (s *stepVerifyInput) Run(_ context.Context, state multistep.StateBag) multi bootSnapshot, response, err := vpcService.GetSnapshot(getSnapshotOptions) if err != nil { xRequestId := response.Headers["X-Request-Id"][0] - xCorrelationId := response.Headers["X-Correlation-Id"][0] + xCorrelationId := "" + if len(response.Headers["X-Correlation-Id"]) != 0 { + xCorrelationId = fmt.Sprintf("\n X-Correlation-Id : %s", response.Headers["X-Correlation-Id"][0]) + } if response != nil && response.StatusCode == 404 { - err := fmt.Errorf("[ERROR] Boot snapshot provided is not found %s: \n X-Request-Id : %s \n X-Correlation-Id : %s", config.VSIBootSnapshotID, xRequestId, xCorrelationId) + err := fmt.Errorf("[ERROR] Boot snapshot provided is not found %s: \n X-Request-Id : %s %s", config.VSIBootSnapshotID, xRequestId, xCorrelationId) state.Put("error", err) ui.Error(err.Error()) return multistep.ActionHalt } - err := fmt.Errorf("[ERROR] Error fetching snapshot %s \n X-Request-Id : %s \n X-Correlation-Id : %s", config.VSIBootSnapshotID, xRequestId, xCorrelationId) + err := fmt.Errorf("[ERROR] Error fetching snapshot %s \n X-Request-Id : %s %s", config.VSIBootSnapshotID, xRequestId, xCorrelationId) state.Put("error", err) ui.Error(err.Error()) return multistep.ActionHalt @@ -176,8 +188,11 @@ func (s *stepVerifyInput) Run(_ context.Context, state multistep.StateBag) multi availableImages, response, err := vpcService.ListImages(listImagesOptions) if err != nil { xRequestId := response.Headers["X-Request-Id"][0] - xCorrelationId := response.Headers["X-Correlation-Id"][0] - err := fmt.Errorf("[ERROR] Error fetching custom image %s \n X-Request-Id : %s \n X-Correlation-Id : %s", err, xRequestId, xCorrelationId) + xCorrelationId := "" + if len(response.Headers["X-Correlation-Id"]) != 0 { + xCorrelationId = fmt.Sprintf("\n X-Correlation-Id : %s", response.Headers["X-Correlation-Id"][0]) + } + err := fmt.Errorf("[ERROR] Error fetching custom image %s \n X-Request-Id : %s %s", err, xRequestId, xCorrelationId) state.Put("error", err) ui.Error(err.Error()) return multistep.ActionHalt @@ -212,8 +227,11 @@ func (s *stepVerifyInput) Run(_ context.Context, state multistep.StateBag) multi secGrp, response, err := vpcService.GetSecurityGroup(secgrpOption) if err != nil { xRequestId := response.Headers["X-Request-Id"][0] - xCorrelationId := response.Headers["X-Correlation-Id"][0] - err := fmt.Errorf("[ERROR] Error fetching security group %s \n X-Request-Id : %s \n X-Correlation-Id : %s", err, xRequestId, xCorrelationId) + xCorrelationId := "" + if len(response.Headers["X-Correlation-Id"]) != 0 { + xCorrelationId = fmt.Sprintf("\n X-Correlation-Id : %s", response.Headers["X-Correlation-Id"][0]) + } + err := fmt.Errorf("[ERROR] Error fetching security group %s \n X-Request-Id : %s %s", err, xRequestId, xCorrelationId) state.Put("error", err) ui.Error(err.Error()) return multistep.ActionHalt diff --git a/developer/README.md b/developer/README.md index 84f9479b..e9264d17 100644 --- a/developer/README.md +++ b/developer/README.md @@ -48,6 +48,7 @@ There is a `Makefile` and a `Dockerfile` that automate everything for you. rc_endpoint_url | string | Optional | Configure URL for resource controller test environments. iam_url | string | Optional | Configure URL for IAM test environments. ghost_endpoint_url | string | Optional | Configure URL for Global Search and Tagging test environments. Optional. + vpc_log | string | Optional | to turn debug log on, pass "debug" as value. Optional. - Customize your Packer Template: see [Configuration](#configuration) to find a detail description of each field on the Template. Likewise, there are some Packer Template examples on `examples` folder. - Create container with Packer Plugin Binary within it: diff --git a/developer/examples/build.vpc.centos.pkr.hcl b/developer/examples/build.vpc.centos.pkr.hcl index ad5c2c8c..9603c1c0 100644 --- a/developer/examples/build.vpc.centos.pkr.hcl +++ b/developer/examples/build.vpc.centos.pkr.hcl @@ -46,7 +46,7 @@ source "ibmcloud-vpc" "centos" { security_group_id = var.SECURITY_GROUP_ID vsi_base_image_name = "ibm-centos-7-9-minimal-amd64-5" - + vpc_log="debug" vsi_profile = "bx2-2x8" vsi_interface = "public" vsi_user_data_file = "" diff --git a/go.mod b/go.mod index fee83ec3..19ac065c 100644 --- a/go.mod +++ b/go.mod @@ -5,11 +5,11 @@ go 1.18 require ( github.com/IBM/go-sdk-core/v5 v5.13.4 github.com/IBM/platform-services-go-sdk v0.37.4 - github.com/IBM/vpc-go-sdk v0.40.0 + github.com/IBM/vpc-go-sdk v0.43.0 github.com/hashicorp/hcl/v2 v2.14.1 github.com/hashicorp/packer-plugin-sdk v0.2.9 github.com/zclconf/go-cty v1.9.1 - golang.org/x/crypto v0.13.0 + golang.org/x/crypto v0.15.0 ) @@ -107,9 +107,9 @@ require ( go.uber.org/atomic v1.9.0 // indirect golang.org/x/net v0.10.0 // indirect golang.org/x/oauth2 v0.4.0 // indirect - golang.org/x/sys v0.12.0 // indirect - golang.org/x/term v0.12.0 // indirect - golang.org/x/text v0.13.0 // indirect + golang.org/x/sys v0.14.0 // indirect + golang.org/x/term v0.14.0 // indirect + golang.org/x/text v0.14.0 // indirect golang.org/x/time v0.0.0-20220224211638-0e9765cccd65 // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect google.golang.org/api v0.103.0 // indirect diff --git a/go.sum b/go.sum index 8c4d59b7..abc944e0 100644 --- a/go.sum +++ b/go.sum @@ -42,8 +42,8 @@ github.com/IBM/go-sdk-core/v5 v5.13.4 h1:kJvBNQOwhFRkXCPapjNvKVC7n7n2vd1Nr6uUtDZ github.com/IBM/go-sdk-core/v5 v5.13.4/go.mod h1:gKRSB+YyKsGlRQW7v5frlLbue5afulSvrRa4O26o4MM= github.com/IBM/platform-services-go-sdk v0.37.4 h1:MPzuoImfo4cWV1Zf1qMdxuAMSGdJnTJkvff43xoJKXg= github.com/IBM/platform-services-go-sdk v0.37.4/go.mod h1:rb1IaHGwT8QI8pCYgNbf2VbkuKMgOowl91pZ2QWZuJ4= -github.com/IBM/vpc-go-sdk v0.40.0 h1:p4E1dIQc6+WmqLwRTzgWA2udqFw6nypOg+8R0WxTgX0= -github.com/IBM/vpc-go-sdk v0.40.0/go.mod h1:MgZrbITC067AlcE5oy4hwylasFvrePL4RVxeF6GTdKQ= +github.com/IBM/vpc-go-sdk v0.43.0 h1:uy/qWIqETCXraUG2cq5sjScr6pZ79ZteY1v5iLUVQ3Q= +github.com/IBM/vpc-go-sdk v0.43.0/go.mod h1:kRz9tqPvpHoA/qGrC/qVjTbi4ICuTChpG76L89liGL4= github.com/agext/levenshtein v1.2.3 h1:YB2fHEn0UJagG8T1rrWknE3ZQzWM06O8AMAatNn7lmo= github.com/agext/levenshtein v1.2.3/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -505,8 +505,8 @@ golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.13.0 h1:mvySKfSWJ+UKUii46M40LOvyWfN0s2U+46/jDd0e6Ck= -golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= +golang.org/x/crypto v0.15.0 h1:frVn1TEaCEaZcn3Tmd7Y2b5KKPaZ+I32Q2OA3kYp5TA= +golang.org/x/crypto v0.15.0/go.mod h1:4ChreQoLWfG3xLDer1WdlH5NdlQ3+mwnQq1YTKY+72g= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -618,12 +618,12 @@ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.12.0 h1:CM0HF96J0hcLAwsHPJZjfdNzs0gftsLfgKt57wWHJ0o= -golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.14.0 h1:Vz7Qs629MkJkGyHxUlRHizWJRG2j8fbQKjELVSNhy7Q= +golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.12.0 h1:/ZfYdc3zq+q02Rv9vGqTeSItdzZTSNDmfTi0mBAuidU= -golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= +golang.org/x/term v0.14.0 h1:LGK9IlZ8T9jvdy6cTdfKUCltatMFOehAQo9SRC46UQ8= +golang.org/x/term v0.14.0/go.mod h1:TySc+nGkYR6qt8km8wUhuFRTVSMIX3XPR58y2lC8vww= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -632,8 +632,8 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= -golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=