X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=lcm%2Flcm%2Fjobs%2Fviews.py;h=02b7687c647f83a7deff40cc6d4fd9553eb95e3c;hb=81b84ce1988d96da4e46d9d51e94ef936d67f19e;hp=c0cd405c93d0e1e7ef11dcc176efd862f55e623f;hpb=fc0218121a1186e849d51129f00c1b6b2e324c53;p=vfc%2Fgvnfm%2Fvnflcm.git diff --git a/lcm/lcm/jobs/views.py b/lcm/lcm/jobs/views.py index c0cd405c..02b7687c 100644 --- a/lcm/lcm/jobs/views.py +++ b/lcm/lcm/jobs/views.py @@ -11,19 +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 = ignore_case_get(request.META, '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=ret, status=status.HTTP_200_OK) + except Exception as e: + logger.error(traceback.format_exc()) + return Response(data={'error': e.args[0]}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)