def handle(self, request, context): try: guts_api.migration_create(request, resource_id=context.get('resource_id', None), destination_hypervisor=context.get('destination_id', None), name=context.get('name', ''), description=context.get('description', ''), ) return True except Exception, inst: exception.handle(request, _(inst) )
def post(self, request): # return rest_utils.CreatedResponse( # '/api/guts/migrations/%s' % utils_http.urlquote("323222323"), # {'name': 'okan', 'success': 'success'} # ) try: request_args = ( request, request.DATA['name'], request.DATA['resource_ids'][0], request.DATA['destination_id'], ) except KeyError as e: raise rest_utils.AjaxError(400, 'missing required parameters ' "'%s'" % e.args[0]) extra_params = {} keypair = request.DATA.get('keypair', None) if keypair: extra_params['key_name'] = keypair[0] network = request.DATA.get('networks', None) if network: extra_params['network'] = network[0] flavor = request.DATA.get('flavor', None) # FLAVOR_MAP = { # 'm1.medium': '03e44e82-49f7-4e94-9dd6-3ff0ae2a8d9c', # 'm1.tiny': '1', # 'm1.small': '2', # 'm2.small': '2d3e353c-4a4a-4dfb-80e5-bb05ba7b401e', # 'm1.xlarge': '46d82bc3-33c7-4f3c-b0d7-5226a7021af2', # 'm2.medium': '8deed66b-36d8-44ce-a0d1-696c4ae08df4', # 'm2.xsmall': 'a2e8b1ad-ffa5-4026-be4a-c45947e8b410', # 'm2.large': 'ab59eea8-d629-4823-b14c-3ccc971d9d78', # 'm1.large': 'bff4acda-ee8b-4b51-96f5-0895df6e6f9c', # 'm2.tiny': 'c4159b1a-b353-4a15-a0ea-52089e1855bb', # } FLAVOR_MAP = { 'm1.large': '21e8e393-f4b3-45d0-9eee-74c5ffbd1665', 'm1.tiny': '3bc22485-42ae-4e2f-9494-b74e84b59e71', 'm1.xlarge.windows': '56cf8be8-9cdf-40a2-b75b-49919e794847', 'VCO_cisco_metapod_validation_flavor': '877aceb7-d702-4c5b-a5ca-5990ba73bb9d', 'm1.medium': '87adade5-b11c-4944-a085-256242fe3627', 'testflavor': 'b74e7147-f574-438f-b9b7-df219da36cbb', 'm1.small': 'c4471547-cf38-4e3b-9304-11b383020a3b', 'm1.xlarge': 'd8c09d38-8a4e-4c1a-a09b-e7210e457146' } if flavor: extra_params['flavor'] = FLAVOR_MAP[flavor[0]] secgroup = request.DATA.get('secgroup', None) if secgroup: extra_params['secgroup'] = secgroup[0] kw = {} kw['properties'] = extra_params for name in self._optional_create: if name in request.DATA: kw[name] = request.DATA[name] new_migration = guts_api.migration_create(*request_args, **kw) return rest_utils.CreatedResponse( '/api/guts/migrations/%s' % utils_http.urlquote(new_migration.id), new_migration.to_dict() )