func createSubnets(svc *ec2.EC2, config *Config) (*ec2.CreateSubnetOutput, *ec2.CreateSubnetOutput, error) { var csi *ec2.CreateSubnetInput if config.AvailZone1 != "" { csi = &ec2.CreateSubnetInput{CidrBlock: &config.PublicNet, VpcId: &config.VpcId, AvailabilityZone: &config.AvailZone1} } else { csi = &ec2.CreateSubnetInput{CidrBlock: &config.PublicNet, VpcId: &config.VpcId} } //csi := &ec2.CreateSubnetInput{ CidrBlock: &config.PublicNet, VpcId: &config.VpcId } cso1, err := svc.CreateSubnet(csi) if err != nil { fmt.Println("Create public subnet failed") return nil, nil, err } //fmt.Println(cso1) config.PublicSubnetId = *cso1.Subnet.SubnetId if config.AvailZone2 != "" { csi = &ec2.CreateSubnetInput{CidrBlock: &config.PrivateNet, VpcId: &config.VpcId, AvailabilityZone: &config.AvailZone2} } else { csi = &ec2.CreateSubnetInput{CidrBlock: &config.PrivateNet, VpcId: &config.VpcId} } //csi := &ec2.CreateSubnetInput{ CidrBlock: &config.PublicNet, VpcId: &config.VpcId } //csi = &ec2.CreateSubnetInput{ CidrBlock: &config.PrivateNet, VpcId: &config.VpcId} cso2, err := svc.CreateSubnet(csi) if err != nil { fmt.Println("Create private subnet failed") return nil, nil, err } //fmt.Println(cso2) config.PrivateSubnetId = *cso2.Subnet.SubnetId return cso1, cso2, nil }
func addSubnet(ec2Client *ec2.EC2, subnet *providers.Subnet, providerConfig *providers.JSONObject) (success bool, warnings []string, err []error) { createSubnetOutput, callErr := ec2Client.CreateSubnet(&ec2.CreateSubnetInput{ CIDRBlock: &subnet.CidrBlock, VPCID: &providerConfig.Provider.ProviderConfig.Aws.Vpc.VpcID, }) if callErr != nil { err = append(err, callErr) success = false } else { //subnet created subnet.SubnetID = *createSubnetOutput.Subnet.SubnetID log.WithFields(log.Fields{ "Created": subnet.SubnetID, }).Info("Subnet Created") //tag subnet tagCreated, callErr := addDockerTagToResource(ec2Client, subnet.SubnetID, providerConfig.Provider.ProviderConfig.Aws.Vpc.Name, subnet.SubnetName) if callErr != nil { warnings = append(warnings, "Error tagging subnet") } else { log.WithFields(log.Fields{ "Created": tagCreated, }).Info("Tag Created") } success = true } return success, warnings, err }