X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=lcm%2Flcm%2Fjobs%2Fviews.py;h=cdd7ba4f959c0870cf85a91e847992a40ba8572d;hb=af411775e11ffff3d9116a5255c1a05ce9b0e3db;hp=24f3b19e49c62a627dc9fbde70a0ea8f9298833e;hpb=cc8e51bd402ec135d7bfab7dcafedbdb47a95da1;p=vfc%2Fgvnfm%2Fvnflcm.git diff --git a/lcm/lcm/jobs/views.py b/lcm/lcm/jobs/views.py index 24f3b19e..cdd7ba4f 100644 --- a/lcm/lcm/jobs/views.py +++ b/lcm/lcm/jobs/views.py @@ -11,18 +11,46 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. + import logging +import traceback +from drf_yasg import openapi +from drf_yasg.utils import swagger_auto_schema +from rest_framework import status from rest_framework.response import Response from rest_framework.views import APIView from lcm.jobs.job_get import GetJobInfoService +from lcm.jobs.serializers import JobQueryRespSerializer +from lcm.pub.exceptions import NFLCMException +from lcm.pub.utils.values import ignore_case_get logger = logging.getLogger(__name__) class JobView(APIView): + @swagger_auto_schema( + manual_parameters=[ + openapi.Parameter('responseId', + openapi.IN_QUERY, + "responseId", + type=openapi.TYPE_INTEGER + ), + ], + responses={ + status.HTTP_200_OK: JobQueryRespSerializer(), + status.HTTP_500_INTERNAL_SERVER_ERROR: "Internal error" + } + ) def get(self, request, job_id): - response_id = request.GET.get('responseId') - ret = GetJobInfoService(job_id, response_id).do_biz() - return Response(data=ret) + try: + response_id = ignore_case_get(request.META, 'responseId') + ret = GetJobInfoService(job_id, response_id).do_biz() + resp_serializer = JobQueryRespSerializer(data=ret) + if not resp_serializer.is_valid(): + raise NFLCMException(resp_serializer.errors) + return Response(data=resp_serializer.data, status=status.HTTP_200_OK) + except Exception as e: + logger.error(traceback.format_exc()) + return Response(data={'error': e.message}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)