def aggregatedlistdisks(projectid, authorization): disk_list = _get_disks(authorization=authorization) zone_list = zones.get_zone_names(authorization=authorization) disk = None filter = helper.get_filter(request.args) if 'name' in filter: disk = filter['name'] items = {} for zone in zone_list: zone_disks = [] if disk: disk = get_disk_by_name( authorization=authorization, disk=disk ) if disk: zone_disks.append( _cloudstack_volume_to_gce( cloudstack_response=disk, projectid=projectid, zone=zone, ) ) elif disk_list['listvolumesresponse']: for disk in disk_list['listvolumesresponse']['volume']: zone_disks.append( _cloudstack_volume_to_gce( cloudstack_response=disk, projectid=projectid, zone=zone, ) ) items['zone/' + zone] = {} items['zone/' + zone]['disks'] = zone_disks populated_response = { 'kind': 'compute#diskAggregatedList', 'selfLink': urllib.unquote_plus(request.base_url), 'id': 'projects/' + projectid + '/global/images', 'items': items } return helper.create_response(data=populated_response)
def listmachinetype(projectid, authorization, zone): machinetype = None filter = helper.get_filter(request.args) if 'name' in filter: machinetype = filter['name'] items = [] if machinetype: machinetype_list = _get_machinetypes( authorization=authorization, args={'keyword': machinetype} ) if machinetype_list['listvolumesresponse']: machinetype = helper.filter_by_name( data=machinetype_list['listserviceofferingsresponse'][ 'serviceoffering'], name=machinetype ) if machinetype: items.append( _cloudstack_machinetype_to_gce( cloudstack_response=machinetype, projectid=projectid, zone=zone ) ) else: machinetype_list = _get_machinetypes(authorization=authorization) if machinetype_list['listserviceofferingsresponse']: for machinetype in machinetype_list['listserviceofferingsresponse']['serviceoffering']: items.append( _cloudstack_machinetype_to_gce( cloudstack_response=machinetype, projectid=projectid, zone=zone ) ) populated_response = { 'kind': 'compute#imageList', 'selfLink': urllib.unquote_plus(request.base_url), 'id': 'projects/' + projectid + '/global/images', 'items': items } return helper.create_response(data=populated_response)
def listdisks(projectid, authorization, zone): disk = None filter = helper.get_filter(request.args) if 'name' in filter: disk = filter['name'] items = [] if disk: disk_list = _get_disks( authorization=authorization, args={'keyword': disk} ) if disk_list['listvolumesresponse']: disk = helper.filter_by_name( data=disk_list['listvolumesresponse']['volume'], name=disk ) if disk: items.append( _cloudstack_volume_to_gce( cloudstack_response=disk, projectid=projectid, zone=zone ) ) else: disk_list = _get_disks(authorization=authorization) if disk_list['listvolumesresponse']: for disk in disk_list['listvolumesresponse']['volume']: items.append( _cloudstack_volume_to_gce( cloudstack_response=disk, projectid=projectid, zone=zone ) ) populated_response = { 'kind': 'compute#imageList', 'selfLink': urllib.unquote_plus(request.base_url), 'id': 'projects/' + projectid + '/global/images', 'items': items } return helper.create_response(data=populated_response)
def aggregatedlistinstances(authorization, projectid): zone_list = zones.get_zone_names(authorization=authorization) virtual_machine_list = _get_virtual_machines(authorization=authorization) instance = None filter = helper.get_filter(request.args) if 'name' in filter: instance = filter['name'] items = {} for zone in zone_list: zone_instances = [] if instance: virtual_machine = _get_virtual_machine_by_name( authorization=authorization, instance=instance ) if virtual_machine: zone_instances.append( _cloudstack_virtual_machine_to_gce( cloudstack_response=virtual_machine, projectid=projectid, zone=zone ) ) elif virtual_machine_list['listvirtualmachinesresponse']: for instance in virtual_machine_list['listvirtualmachinesresponse']['virtualmachine']: zone_instances.append( _cloudstack_virtual_machine_to_gce( cloudstack_response=instance, projectid=projectid, zone=zone ) ) items['zone/' + zone] = {} items['zone/' + zone]['instances'] = zone_instances populated_response = { 'kind': 'compute#instanceAggregatedList', 'id': 'projects/' + projectid + '/instances', 'selfLink': request.base_url, 'items': items } return helper.create_response(data=populated_response)