Esempio n. 1
0
    def post(self, request, vimid, tenantid):
        vim_info = extsys.get_vim_by_id(vimid)
        req_body = json.loads(request.body)
        vim_rsp = image_utils.vim_formatter(vim_info, tenantid)
        image_instance = OperateImage.OperateImage(vim_info)

        try:
            images = image_instance.get_vim_images()
            for image in images:
                if image.name == req_body.get('name'):
                    image_info = image_instance.get_vim_image(image.id)
                    rsp = image_utils.image_formatter(image_info)
                    rsp['returnCode'] = '0'
                    rsp.update(vim_rsp)
                    return Response(data=rsp, status=status.HTTP_200_OK)

            param = image_utils.req_body_formatter(req_body)
            image = image_instance.create_vim_image(vimid, tenantid, **param)

            rsp = image_utils.image_formatter(image)
            rsp.update(vim_rsp)
            rsp['returnCode'] = '1'
            return Response(data=rsp, status=status.HTTP_202_ACCEPTED)
        except Exception as e:
            return Response(data={'error': str(e)},
                            status=status.HTTP_500_INTERNAL_SERVER_ERROR)
    def get(self, request, vimid, tenantid):
        try:
            vim_info = extsys.get_vim_by_id(vimid)
            vim_info['tenant'] = tenantid
        except VimDriverVioException as e:
            return Response(data={'error': str(e)}, status=e.status_code)

        query_data = dict(request.query_params)
        image_instance = OperateImage.OperateImage(vim_info)

        try:
            images = image_instance.get_vim_images(**query_data)
            rsp = {}
            rsp['images'] = []
            vim_rsp = image_utils.vim_formatter(vim_info, tenantid)
            for image in images:
                rsp['images'].append(image_utils.image_formatter(image))
            rsp.update(vim_rsp)
            return Response(data=rsp, status=status.HTTP_200_OK)
        except Exception as e:
            if hasattr(e, "http_status"):
                return Response(data={'error': str(e)}, status=e.http_status)
            else:
                return Response(data={'error': str(e)},
                                status=status.HTTP_500_INTERNAL_SERVER_ERROR)
Esempio n. 3
0
    def post(self, request, vimid, tenantid):
        try:
            vim_info = extsys.get_vim_by_id(vimid)
            vim_info['tenant'] = tenantid
        except VimDriverVioException as e:
            return Response(data={'error': str(e)}, status=e.status_code)

        try:
            req_body = json.loads(request.body)
        except Exception as e:
            return Response(data={'error': 'Fail to decode request body.'},
                            status=status.HTTP_500_INTERNAL_SERVER_ERROR)
        vim_rsp = image_utils.vim_formatter(vim_info, tenantid)
        image_instance = OperateImage.OperateImage(vim_info)

        try:
            images = image_instance.get_vim_images()
            for image in images:
                if image.name == req_body.get('name'):
                    image_info = image_instance.get_vim_image(image.id)
                    rsp = image_utils.image_formatter(image_info)
                    rsp['returnCode'] = '0'
                    rsp.update(vim_rsp)
                    return Response(data=rsp, status=status.HTTP_200_OK)

            param = image_utils.req_body_formatter(req_body)
            image = image_instance.create_vim_image(vimid, tenantid,
                                                    imagePath=req_body.get('imagePath'),
                                                    **param)

            rsp = image_utils.image_formatter(image)
            rsp.update(vim_rsp)
            rsp['returnCode'] = '1'
            return Response(data=rsp, status=status.HTTP_201_CREATED)
        except Exception as e:
            if hasattr(e, "http_status"):
                return Response(data={'error': str(e)}, status=e.http_status)
            else:
                return Response(data={'error': str(e)},
                                status=status.HTTP_500_INTERNAL_SERVER_ERROR)
Esempio n. 4
0
    def get(self, request, vimid, tenantid, imageid):
        vim_info = extsys.get_vim_by_id(vimid)
        image_op = OperateImage.OperateImage(vim_info)

        try:
            image = image_op.get_vim_image(imageid)
            vim_rsp = image_utils.vim_formatter(vim_info, tenantid)
            rsp = image_utils.image_formatter(image)
            rsp.update(vim_rsp)
            return Response(data=rsp, status=status.HTTP_200_OK)
        except Exception as e:
            return Response(data={'error': str(e)},
                            status=status.HTTP_500_INTERNAL_SERVER_ERROR)
    def get(self, request, vimid, tenantid, imageid):
        try:
            vim_info = extsys.get_vim_by_id(vimid)
            vim_info['tenant'] = tenantid
        except VimDriverVioException as e:
            return Response(data={'error': str(e)}, status=e.status_code)

        image_op = OperateImage.OperateImage(vim_info)

        try:
            image = image_op.get_vim_image(imageid)
            vim_rsp = image_utils.vim_formatter(vim_info, tenantid)
            rsp = image_utils.image_formatter(image)
            rsp.update(vim_rsp)
            return Response(data=rsp, status=status.HTTP_200_OK)
        except Exception as e:
            if hasattr(e, "http_status"):
                return Response(data={'error': str(e)}, status=e.http_status)
            else:
                return Response(data={'error': str(e)},
                                status=status.HTTP_500_INTERNAL_SERVER_ERROR)