Esempio n. 1
0
func createPrivateRouteTable(svc *ec2.EC2, config *Config) (*string, error) {
	crt := &ec2.CreateRouteTableInput{VpcId: &config.VpcId}
	crto, err := svc.CreateRouteTable(crt)
	if err != nil {
		fmt.Println("Failed to create private route table.")
		return nil, err
	}

	arti := &ec2.AssociateRouteTableInput{RouteTableId: crto.RouteTable.RouteTableId, SubnetId: &config.PrivateSubnetId}
	_, err = svc.AssociateRouteTable(arti)
	//fmt.Println(arto)
	if err != nil {
		fmt.Println("Failed to associate private subnet with route table.")
		return nil, err
	}

	return crto.RouteTable.RouteTableId, nil

}
Esempio n. 2
0
func addRouteTable(ec2Client *ec2.EC2, routeTable *providers.RouteTable, vpc *providers.Vpc) (success bool, warnings []string, err []error) {
	routeTableName := routeTable.RouteTableName
	createRTOutput, callErr := ec2Client.CreateRouteTable(&ec2.CreateRouteTableInput{
		VPCID: &vpc.VpcID,
	})
	if callErr != nil {
		log.WithFields(log.Fields{
			"AWS Error":      callErr.Error(),
			"VpcID":          vpc.VpcID,
			"RouteTableName": routeTableName,
		}).Error("Error Creating Route Table")
		err = append(err, callErr)
		success = false
	} else {
		log.WithFields(log.Fields{
			"VpcID":        vpc.VpcID,
			"RouteTableID": routeTableName,
		}).Info("Route Table Created")
		routeTable.RouteTableID = *createRTOutput.RouteTable.RouteTableID

		tagCreated, tagErr := addDockerTagToResource(ec2Client, routeTable.RouteTableID, vpc.Name, routeTableName)
		if tagErr != nil {
			log.WithFields(log.Fields{
				"AWS Error": tagErr,
			}).Error("Error Tagging Route Table")
			//This will not stop the processing of the provider configuration, but we will return a warning so the user knows
			success = true
			warnings = append(warnings, "WARNING: Error creating tag for "+routeTableName+", processing will continue")
		} else {
			log.WithFields(log.Fields{
				"Created": tagCreated,
			}).Info("Tag Created")
			success = true
		}
	}
	return success, warnings, err
}