func (_ *InstanceElasticIPAttachment) RenderAWS(t *awsup.AWSAPITarget, a, e, changes *InstanceElasticIPAttachment) error {
	if changes.Instance != nil {
		err := t.WaitForInstanceRunning(*e.Instance.ID)
		if err != nil {
			return err
		}

		request := &ec2.AssociateAddressInput{}
		request.InstanceId = e.Instance.ID
		request.AllocationId = a.ElasticIP.ID

		_, err = t.Cloud.EC2.AssociateAddress(request)
		if err != nil {
			return fmt.Errorf("error creating InstanceElasticIPAttachment: %v", err)
		}
	}

	return nil // no tags
}
Exemplo n.º 2
0
func (_ *InstanceVolumeAttachment) RenderAWS(t *awsup.AWSAPITarget, a, e, changes *InstanceVolumeAttachment) error {
	if a == nil {
		err := t.WaitForInstanceRunning(*e.Instance.ID)
		if err != nil {
			return err
		}

		request := &ec2.AttachVolumeInput{
			InstanceId: e.Instance.ID,
			VolumeId:   e.Volume.ID,
			Device:     e.Device,
		}

		_, err = t.Cloud.EC2.AttachVolume(request)
		if err != nil {
			return fmt.Errorf("error creating InstanceVolumeAttachment: %v", err)
		}
	}

	return nil // no tags
}