diff options
author | 2018-11-01 16:13:04 +0800 | |
---|---|---|
committer | 2018-11-01 16:13:04 +0800 | |
commit | 54a3a58c5c57788b24265cf99bde972678c917e5 (patch) | |
tree | 727a8236f9aae7429ae3b4989d3d622bd0df9d4d | |
parent | 6e60e4fe06099f0cdcba32c4a78efa17e7c9977c (diff) |
Add vnfVms to get vnf resp
Change-Id: I537a5f633f29c98da3423ae4c96799f143aea408
Issue-ID: VFC-1177
Signed-off-by: fujinhua <fu.jinhua@zte.com.cn>
-rw-r--r-- | lcm/ns_vnfs/biz/get_vnfs.py | 11 | ||||
-rw-r--r-- | lcm/ns_vnfs/serializers/serializers.py | 6 | ||||
-rw-r--r-- | lcm/ns_vnfs/views/views.py | 10 |
3 files changed, 24 insertions, 3 deletions
diff --git a/lcm/ns_vnfs/biz/get_vnfs.py b/lcm/ns_vnfs/biz/get_vnfs.py index 0ca8e66e..d2e8ef00 100644 --- a/lcm/ns_vnfs/biz/get_vnfs.py +++ b/lcm/ns_vnfs/biz/get_vnfs.py @@ -11,7 +11,7 @@ # 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. -from lcm.pub.database.models import NfInstModel +from lcm.pub.database.models import NfInstModel, VmInstModel class GetVnf(object): @@ -21,3 +21,12 @@ class GetVnf(object): def do_biz(self): nf_inst_info = NfInstModel.objects.filter(nfinstid=self.nf_inst_id) return nf_inst_info + + +class GetVnfVms(object): + def __init__(self, nf_inst_id): + self.nf_inst_id = nf_inst_id + + def do_biz(self): + vnf_vms = VmInstModel.objects.filter(instid=self.nf_inst_id) + return vnf_vms diff --git a/lcm/ns_vnfs/serializers/serializers.py b/lcm/ns_vnfs/serializers/serializers.py index 6351f911..7dd01150 100644 --- a/lcm/ns_vnfs/serializers/serializers.py +++ b/lcm/ns_vnfs/serializers/serializers.py @@ -26,10 +26,16 @@ class InstVnfRespSerializer(serializers.Serializer): jobId = serializers.CharField(help_text="ID of Job", required=True) +class VnfVmsSerializer(serializers.Serializer): + vmID = serializers.CharField(help_text="ID of VM", required=True) + vmName = serializers.CharField(help_text="Name of VM", required=False, allow_null=True) + + class GetVnfRespSerializer(serializers.Serializer): vnfInstId = serializers.CharField(help_text="ID of VNF instance", required=True) vnfName = serializers.CharField(help_text="Name of VNF instance", required=True) vnfStatus = serializers.CharField(help_text="Status of VNF instance", required=True) + vnfVms = VnfVmsSerializer(help_text="VMs of VNF", many=True) class TerminateVnfReqSerializer(serializers.Serializer): diff --git a/lcm/ns_vnfs/views/views.py b/lcm/ns_vnfs/views/views.py index 412551f5..5756b8d9 100644 --- a/lcm/ns_vnfs/views/views.py +++ b/lcm/ns_vnfs/views/views.py @@ -25,7 +25,7 @@ from lcm.pub.msapi.extsys import get_vnfm_by_id, get_vim_by_id from lcm.pub.utils.jobutil import JobUtil, JOB_TYPE from lcm.pub.utils.values import ignore_case_get from lcm.ns_vnfs.biz.create_vnfs import CreateVnfs -from lcm.ns_vnfs.biz.get_vnfs import GetVnf +from lcm.ns_vnfs.biz.get_vnfs import GetVnf, GetVnfVms from lcm.ns_vnfs.serializers.serializers import GetVnfRespSerializer from lcm.ns_vnfs.serializers.serializers import GrantVnfReqSerializer from lcm.ns_vnfs.serializers.serializers import GrantVnfRespSerializer @@ -96,10 +96,16 @@ class NfDetailView(APIView): if not nf_inst_info: return Response(status=status.HTTP_404_NOT_FOUND) + vnf_vms = GetVnfVms(vnfinstid).do_biz() + rsp = { 'vnfInstId': nf_inst_info[0].nfinstid, 'vnfName': nf_inst_info[0].nf_name, - 'vnfStatus': nf_inst_info[0].status + 'vnfStatus': nf_inst_info[0].status, + 'vnfVms': [{ + 'vmId': vm.vmid, + 'vmName': vm.vmname + } for vm in vnf_vms] } resp_serializer = GetVnfRespSerializer(data=rsp) if not resp_serializer.is_valid(): |