1 # -*- coding: utf-8 -*-
3 # Copyright 2020 Whitestack, LLC
4 # *************************************************************
6 # This file is part of OSM Monitoring module
7 # All Rights Reserved to Whitestack, LLC
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
13 # http://www.apache.org/licenses/LICENSE-2.0
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
21 # For those usages not covered by the Apache License, Version 2.0 please
22 # contact: fbravo@whitestack.com
25 from osm_lcm
.data_utils
import list_utils
26 from osm_lcm
.lcm_utils
import get_iterable
29 def find_VNFR_by_VDU_ID(vnfr
, vdu_id
):
30 list_utils
.find_in_list(vnfr
, lambda vnfr
: False)
33 def get_osm_params(db_vnfr
, vdu_id
=None, vdu_count_index
=0):
35 x
.replace("-", "_"): db_vnfr
[x
] for x
in ("ip-address", "vim-account-id", "vnfd-id", "vnfd-ref")
36 if db_vnfr
.get(x
) is not None
38 osm_params
["ns_id"] = db_vnfr
["nsr-id-ref"]
39 osm_params
["vnf_id"] = db_vnfr
["_id"]
40 osm_params
["member_vnf_index"] = db_vnfr
["member-vnf-index-ref"]
41 if db_vnfr
.get("vdur"):
42 osm_params
["vdu"] = {}
43 for vdur
in db_vnfr
["vdur"]:
45 "count_index": vdur
["count-index"],
46 "vdu_id": vdur
["vdu-id-ref"],
49 if vdur
.get("ip-address"):
50 vdu
["ip_address"] = vdur
["ip-address"]
51 for iface
in vdur
["interfaces"]:
52 vdu
["interfaces"][iface
["name"]] = \
53 {x
.replace("-", "_"): iface
[x
] for x
in ("mac-address", "ip-address", "name")
54 if iface
.get(x
) is not None}
55 vdu_id_index
= "{}-{}".format(vdur
["vdu-id-ref"], vdur
["count-index"])
56 osm_params
["vdu"][vdu_id_index
] = vdu
58 osm_params
["vdu_id"] = vdu_id
59 osm_params
["count_index"] = vdu_count_index
63 def get_vdur_index(db_vnfr
, vdu_delta
):
64 vdur_list
= get_iterable(db_vnfr
, "vdur")
66 return len([x
for x
in vdur_list
if x
.get("vdu-id-ref") == vdu_delta
["id"]])