# 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):
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
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):
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
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():