Remove unused methods
[osm/LCM.git] / osm_lcm / data_utils / vim.py
1 # -*- 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 ##
24
25 from 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
32 def get_vims_to_connect(db_nsr, db_vnfrs, target_vld, logger):
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
41 vim_ids = set()
42 if "vnfd-connection-point-ref" in vld:
43 # during planning of VNF, use "vnfd-connection-point-ref" since "vim_info" is not available in vld
44 # get VNFD connection points (if available)
45 # iterate over VNFs and retrieve VIM IDs they are planned to be deployed to
46 vnfd_connection_point_ref = vld["vnfd-connection-point-ref"]
47 for vld_member_vnf_index_ref in vnfd_connection_point_ref:
48 vld_member_vnf_index_ref = vld_member_vnf_index_ref["member-vnf-index-ref"]
49 vim_ids.add(db_vnfrs[vld_member_vnf_index_ref]["vim-account-id"])
50 elif "vim_info" in vld:
51 # after instantiation of VNF, use "vim_info" since "vnfd-connection-point-ref" is not available in vld
52 # get VIM info (if available)
53 # iterate over VIM info and retrieve VIM IDs they are deployed to
54 vim_info = vld["vim_info"]
55 for vim_data in vim_info.values():
56 vim_ids.add(vim_data["vim_account_id"])
57 else:
58 # TODO: analyze if this situation is possible
59 # unable to retrieve planned/executed mapping of VNFs to VIMs
60 # by now, drop a log message for future debugging
61 logger.warning(
62 " ".join(
63 [
64 "Unable to identify VIMs involved in VLD to check if WIM is required.",
65 "Dumping internal variables for further debugging:",
66 ]
67 )
68 )
69 logger.warning("db_nsr={:s}".format(str(db_nsr)))
70 logger.warning("db_vnfrs={:s}".format(str(db_vnfrs)))
71 logger.warning("target_vld={:s}".format(str(target_vld)))
72 return vims_to_connect
73
74 for vim_id in vim_ids:
75 db_vim = VimAccountDB.get_vim_account_with_id(vim_id)
76 if db_vim is None:
77 continue
78 vims_to_connect.add(db_vim["name"])
79 return vims_to_connect