def cleanup_lvm_volumes(step, vg_name): step_assert(step).assert_true(world.lvm_volumes) table = utils.ascii_table(utils.bash("sudo lvs|sed 's/Origin .* Convert//'| sed 's/ */\|/g'").output_text()) all_volumes = table.select_values('LV', 'VG', vg_name) volumes_to_clean = set(all_volumes) - set(world.lvm_volumes) for volume in volumes_to_clean: step_assert(step).assert_true(utils.bash('sudo lvremove -f %s/%s' % (vg_name, volume)))
def volume_is_resized(step, device, vm_name, timeout): start_time = datetime.now() volume_id = utils.nova_cli.get_local_volume_id(device, vm_name) volume_name = "volume-%0.8x" % int(volume_id) while(datetime.now() - start_time).seconds < int(timeout): if utils.bash("cat /var/log/nova/nova-compute.log|grep 'Resize of volume %s is finished'" % volume_name).successful(): return True sleep(1) raise RuntimeError("%s:\nVolume %s isn't resized within %s seconds" % (step.sentence, volume_name, timeout))
def record_lvm_volumes(step, vg_name): table = utils.ascii_table(utils.bash("sudo lvs|sed 's/Origin .* Convert//'| sed 's/ */\|/g'").output_text()) world.lvm_volumes = table.select_values('LV', 'VG', vg_name)