X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=lcm%2Flcm%2Fjobs%2Fviews.py;h=02b7687c647f83a7deff40cc6d4fd9553eb95e3c;hb=81b84ce1988d96da4e46d9d51e94ef936d67f19e;hp=650d17ec788027ac5cbd4ced9e3cbf87d9678b9a;hpb=01da50ffb906d22ed408962c63fcf04309fe90eb;p=vfc%2Fgvnfm%2Fvnflcm.git diff --git a/lcm/lcm/jobs/views.py b/lcm/lcm/jobs/views.py index 650d17ec..02b7687c 100644 --- a/lcm/lcm/jobs/views.py +++ b/lcm/lcm/jobs/views.py @@ -10,4 +10,47 @@ # distributed under the License is distributed on an "AS IS" BASIS, # 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. \ No newline at end of file +# 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): + 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)