def test_060_attach_disk_to_vm_in_vapp(self): logged_in_org = self.client.get_org() org = Org(self.client, resource=logged_in_org) vdc_resource = org.get_vdc(self.config['vcd']['vdc']) vdc = VDC(self.client, resource=vdc_resource) assert self.config['vcd']['vdc'] == vdc.get_resource().get('name') vapp_resource = vdc.get_vapp(self.config['vcd']['vapp']) assert self.config['vcd']['vapp'] == vapp_resource.get('name') vapp = VApp(self.client, resource=vapp_resource) disk = vdc.get_disk(self.config['vcd']['idisk_name']) result = vapp.attach_disk_to_vm(disk_href=disk.get('href'), vm_name=self.config['vcd']['vm']) task = self.client.get_task_monitor().wait_for_status( task=result, timeout=60, poll_frequency=2, fail_on_statuses=None, expected_target_statuses=[ TaskStatus.SUCCESS, TaskStatus.ABORTED, TaskStatus.ERROR, TaskStatus.CANCELED], callback=None) assert task.get('status') == TaskStatus.SUCCESS.value
def test_030_get_disk_by_name(self): logged_in_org = self.client.get_org() org = Org(self.client, resource=logged_in_org) vdc_resource = org.get_vdc(self.config['vcd']['vdc']) vdc = VDC(self.client, resource=vdc_resource) fetched_disk = vdc.get_disk(name=self.config['vcd']['idisk_name']) assert fetched_disk is not None assert fetched_disk.get('name') == self.config['vcd']['idisk_name']
def info(ctx, name): try: restore_session(ctx, vdc_required=True) client = ctx.obj['client'] vdc_href = ctx.obj['profiles'].get('vdc_href') vdc = VDC(client, href=vdc_href) name, id = extract_name_and_id(name) disk = vdc.get_disk(name=name, disk_id=id) stdout(disk_to_dict(disk), ctx) except Exception as e: stderr(e, ctx)
def test_040_get_disk_by_id(self): logged_in_org = self.client.get_org() org = Org(self.client, resource=logged_in_org) vdc_resource = org.get_vdc(self.config['vcd']['vdc']) vdc = VDC(self.client, resource=vdc_resource) disks = vdc.get_disks() assert len(disks) > 0 fetched_disk = vdc.get_disk(disk_id=disks[0].get('id')) assert fetched_disk is not None
def test_050_change_idisk_owner(self): logged_in_org = self.client.get_org() org = Org(self.client, resource=logged_in_org) vdc_resource = org.get_vdc(self.config['vcd']['vdc']) vdc = VDC(self.client, resource=vdc_resource) user_resource = org.get_user( self.config['vcd']['idisk_new_owner_name']) vdc.change_disk_owner(name=self.config['vcd']['idisk_name'], user_href=user_resource.get('href')) disk_resource = vdc.get_disk(self.config['vcd']['idisk_name']) new_user = disk_resource.Owner.User.get('name') assert self.config['vcd']['idisk_new_owner_name'] == new_user
def detach(ctx, vapp_name, vm_name, disk_name): try: restore_session(ctx, vdc_required=True) client = ctx.obj['client'] vdc_href = ctx.obj['profiles'].get('vdc_href') vdc = VDC(client, href=vdc_href) disk_name, disk_id = extract_name_and_id(disk_name) disk = vdc.get_disk(name=disk_name, disk_id=disk_id) vapp_resource = vdc.get_vapp(vapp_name) vapp = VApp(client, resource=vapp_resource) task = vapp.detach_disk_from_vm( disk_href=disk.get('href'), vm_name=vm_name) stdout(task, ctx) except Exception as e: stderr(e, ctx)
class Disk(VcdAnsibleModule): def __init__(self, **kwargs): super(Disk, self).__init__(**kwargs) logged_in_org = self.client.get_org() self.org = Org(self.client, resource=logged_in_org) vdc = self.org.get_vdc(self.params.get('vdc')) self.vdc = VDC(self.client, href=vdc.get('href')) def manage_states(self): state = self.params.get('state') if state == 'present': return self.create() if state == 'absent': return self.delete() if state == 'update': return self.update() def create(self): disk_name = self.params.get('disk_name') disk_id = self.params.get('disk_id') size = self.params.get('size') description = self.params.get('description') storage_profile = self.params.get('storage_profile') bus_type = self.params.get('bus_type') bus_sub_type = self.params.get('bus_sub_type') iops = self.params.get('iops') response = dict() response['changed'] = False try: self.vdc.get_disk(name=disk_name, disk_id=disk_id) except EntityNotFoundException: create_disk_task = self.vdc.create_disk(name=disk_name, size=size, bus_type=bus_type, bus_sub_type=bus_sub_type, description=description, iops=iops, storage_profile_name=storage_profile) self.execute_task(create_disk_task.Tasks.Task[0]) response['msg'] = 'Disk {} has been created.'.format(disk_name) response['changed'] = True else: response['warnings'] = "Disk {} is already present.".format(disk_name) return response def update(self): disk_name = self.params.get('disk_name') disk_id = self.params.get('disk_id') new_disk_name = self.params.get('new_disk_name') new_size = self.params.get('new_size') new_description = self.params.get('new_description') new_storage_profile = self.params.get('new_storage_profile') new_iops = self.params.get('new_iops') response = dict() response['changed'] = False update_disk_task = self.vdc.update_disk(name=disk_name, disk_id=disk_id, new_name=new_disk_name, new_size=new_size, new_iops=new_iops, new_description=new_description, new_storage_profile_name=new_storage_profile) self.execute_task(update_disk_task) response['msg'] = 'Disk {} has been updated.'.format(disk_name) response['changed'] = True return response def delete(self): disk_name = self.params.get('disk_name') disk_id = self.params.get('disk_id') response = dict() response['changed'] = False try: self.vdc.get_disk(name=disk_name, disk_id=disk_id) except EntityNotFoundException: response['warnings'] = "Disk {} is not present.".format(disk_name) else: delete_disk_task = self.vdc.delete_disk(name=disk_name, disk_id=disk_id) self.execute_task(delete_disk_task) response['msg'] = 'Disk {} has been deleted.'.format(disk_name) response['changed'] = True return response