aboutsummaryrefslogtreecommitdiffstats
path: root/patches/opnfv-fuel/0010-reap.py-Support-reading-MTU-values.patch
blob: c55824bdfdf7ff74e790737f1bfe12d4c171357c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-: Copyright (c) 2017 Enea AB and others.
-:
-: All rights reserved. This program and the accompanying materials
-: are made available under the terms of the Apache License, Version 2.0
-: which accompanies this distribution, and is available at
-: http://www.apache.org/licenses/LICENSE-2.0
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
From: Catalina Focsa <catalina.focsa@enea.com>
Date: Wed, 3 May 2017 14:53:30 +0200
Subject: [PATCH] reap.py: Support reading MTU values

Add an interfaces_properties list containing
mtu data for each interface

JIRA: ARMBAND-251

Signed-off-by: Catalina Focsa <catalina.focsa@enea.com>
---
 deploy/reap.py | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)

diff --git a/deploy/reap.py b/deploy/reap.py
index be72918..fe6bebf 100644
--- a/deploy/reap.py
+++ b/deploy/reap.py
@@ -143,6 +143,31 @@ class Reap(object):
             interfaces[if_name] = interface
         return if_name, mac

+    def reap_properties(self, node_id, properties):
+        properties_name = None
+        node_file = glob.glob('%s/deployment_%s/%s.yaml'
+                              % (self.temp_dir, self.env_id, node_id))
+        with open(node_file[0]) as f:
+            node_config = yaml.load(f)
+
+        interface = {'interfaces': node_config['network_scheme']['interfaces']}
+        interface_properties = {k:v for k, v in interface['interfaces'].items()}
+
+        mtu_properties = {}
+        for k, v in interface_properties.items():
+            if 'mtu' in v:
+                mtu_properties[k]={'mtu':v['mtu']}
+            else:
+                mtu_properties[k] = 'null'
+        interface_properties = mtu_properties
+
+        properties_name = self.check_dict_exists(properties, interface) if properties else None
+        if not properties_name:
+            properties_name = 'interfaces_properties'
+            properties[properties_name] = interface_properties
+        return properties_name, interface_properties
+
+
     def reap_transformation(self, node_id, roles, transformations):
         main_role = 'controller' if 'controller' in roles else 'compute'
         node_file = glob.glob('%s/deployment_%s/%s.yaml'
@@ -172,8 +197,10 @@ class Reap(object):
         min_node = min(real_node_ids)
         interfaces = {}
         transformations = {}
+        properties = {}
         dea_nodes = []
         dha_nodes = []
+        properties_nodes = []

         for real_node_id in real_node_ids:
             node_id = real_node_id - min_node + 1
@@ -185,14 +212,19 @@ class Reap(object):
             dea_node = {'id': node_id,
                         'role': roles}
             dha_node = {'id': node_id}
+            properties_node = {'id': node_id}
             if_name, mac = self.reap_interface(real_node_id, interfaces)
             log('reap transformation for node %s' % real_node_id)
+            pr_name, interface_properties = self.reap_properties(real_node_id, properties)
             tr_name = self.reap_transformation(real_node_id, roles,
                                                transformations)
             dea_node.update(
                 {'interfaces': if_name,
+                 'properties': pr_name,
                  'transformations': tr_name})

+            properties_node.update({'interface_configuration': interface_properties})
+
             dha_node.update(
                 {'pxeMac': mac if mac else None,
                  'ipmiIp': None,
@@ -203,10 +235,12 @@ class Reap(object):

             dea_nodes.append(dea_node)
             dha_nodes.append(dha_node)
+            properties_nodes.append(properties_node)

         self.write_yaml(self.dha_file, {'nodes': dha_nodes}, False)
         self.write_yaml(self.dea_file, {'nodes': dea_nodes})
         self.write_yaml(self.dea_file, interfaces)
+        self.write_yaml(self.dea_file, {'interfaces_properties': properties_nodes})
         self.write_yaml(self.dea_file, transformations)
         self.reap_fuel_node_info()
         self.write_yaml(self.dha_file, {'disks': DISKS})
--
1.9.1