/* addVPC with call ec2 and try to create a new VPC with the configured VPC definition */ func addVPC(ec2Client *ec2.EC2, providerConfig *providers.JSONObject) (success bool, warnings []string, err []error) { vpcName := providerConfig.Provider.ProviderConfig.Aws.Vpc.Name cidrBlock := providerConfig.Provider.ProviderConfig.Aws.Vpc.CidrBlock vpcCreateOutput, callErr := ec2Client.CreateVPC(&ec2.CreateVPCInput{ CIDRBlock: &cidrBlock, }) if err != nil { //error calling AWS err = append(err, callErr) success = false } else { providerConfig.Provider.ProviderConfig.Aws.Vpc.VpcID = *vpcCreateOutput.VPC.VPCID log.WithFields(log.Fields{ "Created": providerConfig.Provider.ProviderConfig.Aws.Vpc.VpcID, }).Info("VPC Created") tagCreated, callErr := addDockerTagToResource(ec2Client, providerConfig.Provider.ProviderConfig.Aws.Vpc.VpcID, vpcName, vpcName) if callErr != nil { log.WithFields(log.Fields{ "AWS Error": callErr, }).Error("Error Tagging VPC") warnings = append(warnings, "Issue tagging vpc, please tag via console") success = true } if tagCreated == providerConfig.Provider.ProviderConfig.Aws.Vpc.VpcID { log.WithFields(log.Fields{ "Created": tagCreated, }).Info("Tag Created") success = true } } return success, warnings, err }