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)
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)
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)
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)
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)
_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.')
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.')