blob: 15ca93fdfc530d73a460b75d21e62f96485216e9 [file] [log] [blame]
# -*- coding: utf-8 -*-
# Copyright 2020 Whitestack, LLC
# *************************************************************
#
# This file is part of OSM Monitoring module
# All Rights Reserved to Whitestack, LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, 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.
#
# For those usages not covered by the Apache License, Version 2.0 please
# contact: fbravo@whitestack.com
##
from osm_lcm.data_utils.database.vim_account import VimAccountDB
__author__ = (
"Lluis Gifre <lluis.gifre@cttc.es>, Ricard Vilalta <ricard.vilalta@cttc.es>"
)
def get_vims_to_connect(db_nsr, db_vnfrs, target_vld):
vims_to_connect = set()
vld = next(
(vld for vld in db_nsr["vld"] if vld["id"] == target_vld["id"]),
None,
)
if vld is None:
return vims_to_connect # VLD not in NS, means it is an internal VLD within a single VIM
# iterate over VNFs and retrieve name of VIMs they are planned to be deployed to
for vld_member_vnf_index_ref in vld["vnfd-connection-point-ref"]:
vld_member_vnf_index_ref = vld_member_vnf_index_ref["member-vnf-index-ref"]
db_vim = VimAccountDB.get_vim_account_with_id(
db_vnfrs[vld_member_vnf_index_ref]["vim-account-id"]
)
if db_vim is None:
continue
vims_to_connect.add(db_vim["name"])
return vims_to_connect