def _check_num_volumes(num_volumes=0, state=''): if len(TempestClients.cinder().volumes.list()) != num_volumes: return False return all(volume.__dict__['status'].upper() == state.upper() and len(volume.__dict__['attachments']) == 1 for volume in TempestClients.cinder().volumes.list())
def create_volume_and_attach(name, size, instance_id, mount_point): volume = TempestClients.cinder().volumes.create(name=name, size=size) time.sleep(2) TempestClients.cinder().volumes.attach(volume=volume, instance_uuid=instance_id, mountpoint=mount_point) wait_for_status(30, _check_num_volumes, num_volumes=1, state='in-use') time.sleep(2) return volume
def delete_all_volumes(): volumes = TempestClients.cinder().volumes.list() for volume in volumes: try: TempestClients.cinder().volumes.detach(volume) TempestClients.cinder().volumes.force_delete(volume) except Exception: TempestClients.cinder().volumes.force_delete(volume) wait_for_status(30, _check_num_volumes, num_volumes=0) time.sleep(2)