예제 #1
0
def delete_volume(module, ec2):
    volume_id = module.params['id']
    try:
        ec2.delete_volume(volume_id)
        module.exit_json(changed=True)
    except boto.exception.EC2ResponseError as ec2_error:
        if ec2_error.code == 'InvalidVolume.NotFound':
            module.exit_json(changed=False)
        module.fail_json(msg=ec2_error.message)
예제 #2
0
def delete_volume(module, ec2):
    volume_id = module.params['id']
    try:
        ec2.delete_volume(volume_id)
        module.exit_json(changed=True)
    except boto.exception.EC2ResponseError as ec2_error:
        if ec2_error.code == 'InvalidVolume.NotFound':
            module.exit_json(changed=False)
        module.fail_json(msg=ec2_error.message)
예제 #3
0
def ec2_delete_volume(ec2):
	volumes = ec2.get_all_volumes()
	for v in volumes:
		try:
			if v.status == 'available': 
				print "---Deleting Volume: " + v.id
				ec2.delete_volume(v.id)
		except Exception, e:
			print(e)
예제 #4
0
def delete_volume(module, ec2):
    vol = get_volume(module, ec2)
    if not vol:
        module.exit_json(changed=False)
    else:
       if vol.attachment_state() is not None: 
           adata = vol.attach_data
           module.fail_json(msg="Volume %s is attached to an instance %s." % (vol.id, adata.instance_id))
       ec2.delete_volume(vol.id)
       module.exit_json(changed=True)
예제 #5
0
def delete_volume(module, ec2):
    vol = get_volume(module, ec2)
    if not vol:
        module.exit_json(changed=False)
    else:
       if vol.attachment_state() is not None: 
           adata = vol.attach_data
           module.fail_json(msg="Volume %s is attached to an instance %s." % (vol.id, adata.instance_id))
       ec2.delete_volume(vol.id)
       module.exit_json(changed=True)
예제 #6
0
def destroy_volume(mount_point, volume):
    # mount volume TODO check was unmounted
    status = subprocess.call(['umount', mount_point])
    # detach volume
    ec2.detach_volume(volume.id)
    # wait until volume's attachment state is 'None'
    while volume.attachment_state() is not None:
        time.sleep(1)
        volume.update()
    # delete volume
    ec2.delete_volume(volume.id)
예제 #7
0
 def delete(self, delete_ebs_volume=False):
     if delete_ebs_volume:
         self.detach()
         ec2 = self.get_ec2_connection()
         ec2.delete_volume(self.volume_id)
     Model.delete(self)
예제 #8
0
 def delete(self, delete_ebs_volume=False):
     if delete_ebs_volume:
         self.detach()
         ec2 = self.get_ec2_connection()
         ec2.delete_volume(self.volume_id)
     Model.delete(self)
예제 #9
0
    _sh_err_exit(lambda: sh.sudo.mkfs(DEVICE, t="ext4"),
                 'making ext4 file system')

    if not os.path.exists(MOUNT):
        os.makedirs(MOUNT)
    _sh_err_exit(lambda: sh.sudo.mount(DEVICE, MOUNT),
                 'mounting device at ' + MOUNT)
    _sh_err_exit(
        lambda: sh.sudo.chown('-R',
                              str(os.getuid()) + ':' + str(os.getgid()), MOUNT
                              ), 'changing file owmership')
    _sh_err_exit(lambda: sh.sudo.umount(MOUNT),
                 'ummounting device from ' + MOUNT)
    os.rmdir(MOUNT)

    print('creating snapshot...')
    snap = vol.create_snapshot('JuliaBox User Disk Snapshot')
    _status_err_exit(snap, 'completed', 'creating snapshot')
    print('created snapshot ' + snap.id)
    print('adding tags...')
    ec2.create_tags([snap.id], {'Name': 'jbox_user_disk_snapshot'})

    print('detaching volume...')
    ec2.detach_volume(vol.id, instance_id=instance_id, device=DEVICE)
    _status_err_exit(vol, 'available', 'detaching volume')

    print('deleting volume...')
    ec2.delete_volume(vol.id)

    print('done.')
예제 #10
0
    print("attaching at " + DEVICE + " ...")
    ec2.attach_volume(vol.id, instance_id, DEVICE)
    if (not _wait_for_status(vol, 'in-use')) or (not _wait_for_device(DEVICE)):
        _err_exit("attaching at " + DEVICE)

    _sh_err_exit(lambda: sh.sudo.mkfs(DEVICE, t="ext4"), 'making ext4 file system')

    if not os.path.exists(MOUNT):
        os.makedirs(MOUNT)
    _sh_err_exit(lambda: sh.sudo.mount(DEVICE, MOUNT), 'mounting device at ' + MOUNT)
    _sh_err_exit(lambda: sh.sudo.chown('-R', str(os.getuid())+':'+str(os.getgid()), MOUNT), 'changing file owmership')
    _sh_err_exit(lambda: sh.sudo.umount(MOUNT), 'ummounting device from ' + MOUNT)
    os.rmdir(MOUNT)

    print('creating snapshot...')
    snap = vol.create_snapshot('JuliaBox User Disk Snapshot')
    _status_err_exit(snap, 'completed', 'creating snapshot')
    print('created snapshot ' + snap.id)
    print('adding tags...')
    ec2.create_tags([snap.id], {'Name': 'jbox_user_disk_snapshot'})

    print('detaching volume...')
    ec2.detach_volume(vol.id, instance_id=instance_id, device=DEVICE)
    _status_err_exit(vol, 'available', 'detaching volume')

    print ('deleting volume...')
    ec2.delete_volume(vol.id)

    print('done.')