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
]
36 for x
in ("ip-address", "vim-account-id", "vnfd-id", "vnfd-ref")
37 if db_vnfr
.get(x
) is not None
39 osm_params
["ns_id"] = db_vnfr
["nsr-id-ref"]
40 osm_params
["vnf_id"] = db_vnfr
["_id"]
41 osm_params
["member_vnf_index"] = db_vnfr
["member-vnf-index-ref"]
42 if db_vnfr
.get("vdur"):
43 osm_params
["vdu"] = {}
44 for vdur
in db_vnfr
["vdur"]:
46 "count_index": vdur
["count-index"],
47 "vdu_id": vdur
["vdu-id-ref"],
50 if vdur
.get("ip-address"):
51 vdu
["ip_address"] = vdur
["ip-address"]
52 for iface
in vdur
["interfaces"]:
53 vdu
["interfaces"][iface
["name"]] = {
54 x
.replace("-", "_"): iface
[x
]
55 for x
in ("mac-address", "ip-address", "name")
56 if iface
.get(x
) is not None
58 vdu_id_index
= "{}-{}".format(vdur
["vdu-id-ref"], vdur
["count-index"])
59 osm_params
["vdu"][vdu_id_index
] = vdu
61 osm_params
["vdu_id"] = vdu_id
62 osm_params
["count_index"] = vdu_count_index
66 def get_vdur_index(db_vnfr
, vdu_delta
):
67 vdur_list
= get_iterable(db_vnfr
, "vdur")
69 return len([x
for x
in vdur_list
if x
.get("vdu-id-ref") == vdu_delta
["id"]])
74 def get_kdur(db_vnfr
, kdu_name
):
75 kdur_list
= get_iterable(db_vnfr
, "kdur")
77 return next(x
for x
in kdur_list
if x
.get("kdu-name") == kdu_name
)
82 def get_volumes_from_instantiation_params(
83 vdu_instantiation_params
: dict, vdud
: dict
85 """Get the VDU volumes from instantiation parameters
88 vdu_instantiation_params: VDU instantiation parameters
89 vdud: VDU description as a dictionary extracted from VNFD
91 vdu_volume_list:(list)
95 if vdu_instantiation_params
.get("volume"):
96 for volume
in vdu_instantiation_params
["volume"]:
97 if volume
.get("vim-volume-id") and volume
.get("name") in vdud
.get(
98 "virtual-storage-desc"
101 "name": volume
["name"],
102 "vim-volume-id": volume
["vim-volume-id"],
104 vdu_volume_list
.append(vdu_volume
)
106 return vdu_volume_list