def ns_info_rd(request, **kwargs):
nsd_info_id = kwargs.get("nsdInfoId")
if request.method == 'GET':
+ # Read information about an individual NS descriptor resource.
data = NsDescriptor().query_single(nsd_info_id)
nsd_info = validate_data(data, NsdInfoSerializer)
return Response(data=nsd_info.data, status=status.HTTP_200_OK)
if request.method == 'DELETE':
+ # Delete an individual NS descriptor resource.
NsDescriptor().delete_single(nsd_info_id)
return Response(status=status.HTTP_204_NO_CONTENT)
@view_safe_call_with_log(logger=logger)
def ns_descriptors_rc(request):
if request.method == 'POST':
+ # Create a new NS descriptor resource.
create_nsd_info_request = validate_data(request.data, CreateNsdInfoRequestSerializer)
data = NsDescriptor().create(create_nsd_info_request.data)
validate_data(data, NsdInfoSerializer)
return Response(data=data, status=status.HTTP_201_CREATED)
if request.method == 'GET':
+ # Query information about multiple NS descriptor resources.
nsdId = request.query_params.get("nsdId", None)
data = NsDescriptor().query_multiple(nsdId)
validate_data(data, NsdInfosSerializer)
def nsd_content_ru(request, **kwargs):
nsd_info_id = kwargs.get("nsdInfoId")
if request.method == 'PUT':
+ # Upload the content of a NSD.
files = request.FILES.getlist('file')
try:
local_file_name = NsDescriptor().upload(nsd_info_id, files[0])
raise e
if request.method == 'GET':
+ # Fetch the content of a NSD.
file_range = request.META.get('HTTP_RANGE')
file_iterator = NsDescriptor().download(nsd_info_id, file_range)
return StreamingHttpResponse(file_iterator, status=status.HTTP_200_OK)
+
+
+@swagger_auto_schema(
+ method='PUT',
+ operation_description="Update a NSD",
+ request_body=no_body,
+ responses={
+ status.HTTP_202_ACCEPTED: "Successfully",
+ status.HTTP_500_INTERNAL_SERVER_ERROR: "Internal error"
+ }
+)
+@api_view(http_method_names=['PUT'])
+@view_safe_call_with_log(logger=logger)
+def ns_descriptors_u(request, **kwargs):
+ if request.method == 'PUT':
+ nsd_info_id = kwargs.get("nsdInfoId")
+ NsDescriptor().update(request.data, nsd_info_id)
+ return Response(data=None, status=status.HTTP_202_ACCEPTED)