1 |
|
# -*- coding: utf-8 -*- |
2 |
|
|
3 |
|
# Copyright 2018 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: bdiaz@whitestack.com or glavado@whitestack.com |
23 |
|
## |
24 |
1 |
from osm_policy_module.core.exceptions import ManagementVduNotFound |
25 |
|
|
26 |
|
|
27 |
1 |
class VnfdUtils: |
28 |
|
|
29 |
1 |
@staticmethod |
30 |
1 |
def get_mgmt_vdu(vnfd: dict): |
31 |
1 |
if 'cp' in vnfd['mgmt-interface']: |
32 |
1 |
for vdu in vnfd['vdu']: |
33 |
1 |
for interface in vdu['interface']: |
34 |
1 |
if 'external-connection-point-ref' in interface: |
35 |
1 |
if interface['external-connection-point-ref'] == vnfd['mgmt-interface']['cp']: |
36 |
1 |
return vdu |
37 |
1 |
elif 'vdu-id' in vnfd['mgmt-interface']: |
38 |
1 |
for vdu in vnfd['vdu']: |
39 |
1 |
if vdu['id'] == vnfd['mgmt-interface']['vdu-id']: |
40 |
1 |
return vdu |
41 |
0 |
raise ManagementVduNotFound("Management vdu not founr in vnfd %s", vnfd['id']) |