summaryrefslogtreecommitdiffstats
path: root/gvnfmadapter
diff options
context:
space:
mode:
Diffstat (limited to 'gvnfmadapter')
-rw-r--r--gvnfmadapter/driver/interfaces/serializers.py44
-rw-r--r--gvnfmadapter/driver/interfaces/views.py25
2 files changed, 57 insertions, 12 deletions
diff --git a/gvnfmadapter/driver/interfaces/serializers.py b/gvnfmadapter/driver/interfaces/serializers.py
index 4c0916a..c0fcdc7 100644
--- a/gvnfmadapter/driver/interfaces/serializers.py
+++ b/gvnfmadapter/driver/interfaces/serializers.py
@@ -32,15 +32,25 @@ class AdditionalParams(serializers.Serializer):
)
-class VnfRequestParamsSerializer(serializers.Serializer):
+class VnfInstReqParamsSerializer(serializers.Serializer):
vnfDescriptorId = serializers.CharField(
help_text="Identifier that identifies the VNFD which defines the VNF instance to be created.",
- required=True
+ max_length=255,
+ required=True,
+ allow_null=True
)
vnfInstanceName = serializers.CharField(
- help_text="Human-readable name of the VNF instance to be created.", required=True)
+ help_text="Human-readable name of the VNF instance to be created.",
+ max_length=255,
+ required=True,
+ allow_null=False
+ )
vnfInstanceDescription = serializers.CharField(
- help_text="Human-readable description of the VNF instance to be created.", required=False)
+ help_text="Human-readable description of the VNF instance to be created.",
+ max_length=255,
+ required=False,
+ allow_null=True
+ )
additionalParam = AdditionalParams(
help_text="Additional input parameters for the instantiation process,"
" specific to the VNF being instantiated.",
@@ -49,9 +59,27 @@ class VnfRequestParamsSerializer(serializers.Serializer):
class ResponseSerializer(serializers.Serializer):
- vnfInstanceId = serializers.CharField(help_text="VNF instance identifier", required=True)
- jobId = serializers.CharField(help_text="Job ID", required=True)
+ vnfInstanceId = serializers.CharField(help_text="VNF instance identifier.", required=True)
+ jobId = serializers.CharField(help_text="Job ID.", required=True)
+
+class VnfTermReqSerializer(serializers.Serializer):
+ vnfInstanceId = serializers.CharField(
+ help_text="VNF instance identifier.",
+ max_length=255,
+ required=True,
+ allow_null=True
+ )
+
+
+class VnfInfo(serializers.Serializer):
+ vnfInstanceId = serializers.CharField(help_text="VNF instance identifier.", required=True)
+ vnfStatus = serializers.CharField(help_text="The instantiation state of the VNF.", required=True)
+ version = serializers.CharField(help_text="Version of the VNF.", required=True)
-class ErrorSerializer(serializers.Serializer):
- error = serializers.CharField(help_text="error message", required=True)
+
+class VnfQueryRespSerializer(serializers.Serializer):
+ vnfInfo = VnfInfo(
+ help_text="The information items about the selected VNF instance(s) that are returned.",
+ required=True
+ )
diff --git a/gvnfmadapter/driver/interfaces/views.py b/gvnfmadapter/driver/interfaces/views.py
index 7c56408..eb7c0c9 100644
--- a/gvnfmadapter/driver/interfaces/views.py
+++ b/gvnfmadapter/driver/interfaces/views.py
@@ -26,24 +26,26 @@ from rest_framework.views import APIView
from driver.pub.exceptions import GvnfmDriverException
from driver.pub.utils import restcall
from driver.pub.utils.restcall import req_by_msb
-from driver.interfaces.serializers import VnfRequestParamsSerializer, ResponseSerializer, ErrorSerializer
+from driver.interfaces.serializers import VnfInstReqParamsSerializer, ResponseSerializer
+from driver.interfaces.serializers import VnfTermReqSerializer, VnfQueryRespSerializer
logger = logging.getLogger(__name__)
class VnfInstInfo(APIView):
@swagger_auto_schema(
- request_body=VnfRequestParamsSerializer(),
+ request_body=VnfInstReqParamsSerializer(),
responses={
status.HTTP_201_CREATED: ResponseSerializer(),
- status.HTTP_500_INTERNAL_SERVER_ERROR: ErrorSerializer()
+ status.HTTP_404_NOT_FOUND: "The vnfm instance id is wrong",
+ status.HTTP_500_INTERNAL_SERVER_ERROR: "The url is invalid"
}
)
def post(self, request, vnfmtype, vnfmid):
logger.debug("instantiate_vnf--post::> %s" % request.data)
logger.debug("Create vnf begin!")
try:
- requestSerializer = VnfRequestParamsSerializer(data=request.data)
+ requestSerializer = VnfInstReqParamsSerializer(data=request.data)
request_isValid = requestSerializer.is_valid()
if not request_isValid:
raise Exception(requestSerializer.errors)
@@ -87,6 +89,14 @@ class VnfInstInfo(APIView):
class VnfTermInfo(APIView):
+ @swagger_auto_schema(
+ request_body=VnfTermReqSerializer(),
+ responses={
+ status.HTTP_201_CREATED: ResponseSerializer(),
+ status.HTTP_404_NOT_FOUND: "The vnfmid and vnfInstanceId are wrong",
+ status.HTTP_500_INTERNAL_SERVER_ERROR: "The url is invalid"
+ }
+ )
def post(self, request, vnfmtype, vnfmid, vnfInstanceId):
logger.debug("terminate_vnf--post::> %s" % request.data)
logger.debug("Terminate vnf begin!")
@@ -126,6 +136,13 @@ class VnfTermInfo(APIView):
class VnfQueryInfo(APIView):
+ @swagger_auto_schema(
+ responses={
+ status.HTTP_201_CREATED: VnfQueryRespSerializer(),
+ status.HTTP_404_NOT_FOUND: "The vnfmid and vnfInstanceId are wrong",
+ status.HTTP_500_INTERNAL_SERVER_ERROR: "The url is invalid"
+ }
+ )
def get(self, request, vnfmtype, vnfmid, vnfInstanceId):
logger.debug("query_vnf--post::> %s" % request.data)
vnfm_id = vnfmid