예제 #1
0
파일: saws.go 프로젝트: jamesunger/saws
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
}
예제 #2
0
파일: ec2.go 프로젝트: reiki4040/rnzoo
func DisassociateEIP(cli *ec2.EC2, allocId string) error {
	params := &ec2.DisassociateAddressInput{
		AssociationId: aws.String(allocId),
	}

	// resp is empty struct
	_, err := cli.DisassociateAddress(params)

	return err
}