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 }
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 }