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
.lcm_utils
import get_iterable
28 def get_osm_params(db_vnfr
, vdu_id
=None, vdu_count_index
=0):
30 x
.replace("-", "_"): db_vnfr
[x
]
31 for x
in ("ip-address", "vim-account-id", "vnfd-id", "vnfd-ref")
32 if db_vnfr
.get(x
) is not None
34 osm_params
["ns_id"] = db_vnfr
["nsr-id-ref"]
35 osm_params
["vnf_id"] = db_vnfr
["_id"]
36 osm_params
["member_vnf_index"] = db_vnfr
["member-vnf-index-ref"]
37 if db_vnfr
.get("vdur"):
38 osm_params
["vdu"] = {}
39 for vdur
in db_vnfr
["vdur"]:
41 "count_index": vdur
["count-index"],
42 "vdu_id": vdur
["vdu-id-ref"],
45 if vdur
.get("ip-address"):
46 vdu
["ip_address"] = vdur
["ip-address"]
47 for iface
in vdur
["interfaces"]:
48 vdu
["interfaces"][iface
["name"]] = {
49 x
.replace("-", "_"): iface
[x
]
50 for x
in ("mac-address", "ip-address", "name")
51 if iface
.get(x
) is not None
53 vdu_id_index
= "{}-{}".format(vdur
["vdu-id-ref"], vdur
["count-index"])
54 osm_params
["vdu"][vdu_id_index
] = vdu
56 osm_params
["vdu_id"] = vdu_id
57 osm_params
["count_index"] = vdu_count_index
61 def get_vdur_index(db_vnfr
, vdu_delta
):
62 vdur_list
= get_iterable(db_vnfr
, "vdur")
64 return len([x
for x
in vdur_list
if x
.get("vdu-id-ref") == vdu_delta
["id"]])
69 def get_kdur(db_vnfr
, kdu_name
):
70 kdur_list
= get_iterable(db_vnfr
, "kdur")
72 return next(x
for x
in kdur_list
if x
.get("kdu-name") == kdu_name
)
77 def get_volumes_from_instantiation_params(
78 vdu_instantiation_params
: dict, vdud
: dict
80 """Get the VDU volumes from instantiation parameters
83 vdu_instantiation_params: VDU instantiation parameters
84 vdud: VDU description as a dictionary extracted from VNFD
86 vdu_volume_list:(list)
90 if vdu_instantiation_params
.get("volume"):
91 for volume
in vdu_instantiation_params
["volume"]:
92 if volume
.get("vim-volume-id") and volume
.get("name") in vdud
.get(
93 "virtual-storage-desc"
96 "name": volume
["name"],
97 "vim-volume-id": volume
["vim-volume-id"],
99 vdu_volume_list
.append(vdu_volume
)
101 return vdu_volume_list