summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorfujinhua <fu.jinhua@zte.com.cn>2018-11-01 16:13:04 +0800
committerfujinhua <fu.jinhua@zte.com.cn>2018-11-01 16:13:04 +0800
commit54a3a58c5c57788b24265cf99bde972678c917e5 (patch)
tree727a8236f9aae7429ae3b4989d3d622bd0df9d4d
parent6e60e4fe06099f0cdcba32c4a78efa17e7c9977c (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.py11
-rw-r--r--lcm/ns_vnfs/serializers/serializers.py6
-rw-r--r--lcm/ns_vnfs/views/views.py10
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():