Ejemplo n.º 1
0
func releaseExternalIP(svc *ec2.EC2, instanceid string) error {
	keyname := "instance-id"

	filter := ec2.Filter{
		Name: &keyname, Values: []*string{&instanceid}}
	filters := []*ec2.Filter{
		&filter,
	}
	dai := &ec2.DescribeAddressesInput{Filters: filters}
	dao, err := svc.DescribeAddresses(dai)
	if err != nil {
		return err
	}

	for i := range dao.Addresses {
		//fmt.Println("Address ",dao.Addresses[i])

		dai := &ec2.DisassociateAddressInput{AssociationId: dao.Addresses[i].AssociationId}
		_, err := svc.DisassociateAddress(dai)
		//fmt.Println(daio)
		if err != nil {
			return err
		}

		rai := &ec2.ReleaseAddressInput{AllocationId: dao.Addresses[i].AllocationId}
		_, err = svc.ReleaseAddress(rai)
		//fmt.Println(rao)
		if err != nil {
			return err
		}
	}

	return nil
}
Ejemplo n.º 2
0
func ReleaseEIP(cli *ec2.EC2, allocId string) error {
	params := &ec2.ReleaseAddressInput{
		AllocationId: aws.String(allocId),
	}

	// resp is empty struct
	_, err := cli.ReleaseAddress(params)
	return err
}