blob: 15ca93fdfc530d73a460b75d21e62f96485216e9 [file] [log] [blame]
bravof922c4172020-11-24 21:21:43 -03001# -*- coding: utf-8 -*-
2
3# Copyright 2020 Whitestack, LLC
4# *************************************************************
5#
6# This file is part of OSM Monitoring module
7# All Rights Reserved to Whitestack, LLC
8#
9# Licensed under the Apache License, Version 2.0 (the "License"); you may
10# not use this file except in compliance with the License. You may obtain
11# a copy of the License at
12#
13# http://www.apache.org/licenses/LICENSE-2.0
14#
15# Unless required by applicable law or agreed to in writing, software
16# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
17# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
18# License for the specific language governing permissions and limitations
19# under the License.
20#
21# For those usages not covered by the Apache License, Version 2.0 please
22# contact: fbravo@whitestack.com
23##
gifrerenoma4245862022-03-07 18:05:29 +000024
25from osm_lcm.data_utils.database.vim_account import VimAccountDB
26
27__author__ = (
28 "Lluis Gifre <lluis.gifre@cttc.es>, Ricard Vilalta <ricard.vilalta@cttc.es>"
29)
30
31
32def get_vims_to_connect(db_nsr, db_vnfrs, target_vld):
33 vims_to_connect = set()
34 vld = next(
35 (vld for vld in db_nsr["vld"] if vld["id"] == target_vld["id"]),
36 None,
37 )
38 if vld is None:
39 return vims_to_connect # VLD not in NS, means it is an internal VLD within a single VIM
40 # iterate over VNFs and retrieve name of VIMs they are planned to be deployed to
41 for vld_member_vnf_index_ref in vld["vnfd-connection-point-ref"]:
42 vld_member_vnf_index_ref = vld_member_vnf_index_ref["member-vnf-index-ref"]
43 db_vim = VimAccountDB.get_vim_account_with_id(
44 db_vnfrs[vld_member_vnf_index_ref]["vim-account-id"]
45 )
46 if db_vim is None:
47 continue
48 vims_to_connect.add(db_vim["name"])
49 return vims_to_connect