Beispiel #1
0
 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)
         )
Beispiel #2
0
    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()
        )