Exemplo n.º 1
0
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

}
Exemplo n.º 2
0
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
}