4 class DeploymentEnvironmentAdapter(object):
7 self.blade_ids_per_shelves = {}
8 self.blades_per_shelves = {}
10 self.info_per_shelves = {}
11 self.network_names = []
13 def parse_yaml(self, yaml_path):
14 with io.open(yaml_path) as yaml_file:
15 self.dea_struct = yaml.load(yaml_file)
16 self.collect_shelf_and_blade_info()
17 self.collect_shelf_info()
18 self.collect_network_names()
20 def get_no_of_blades(self):
22 for shelf in self.dea_struct['shelf']:
23 no_of_blades += len(shelf['blade'])
26 def collect_shelf_info(self):
27 self.info_per_shelves = {}
28 for shelf in self.dea_struct['shelf']:
29 self.info_per_shelves[shelf['id']] = shelf
31 def get_shelf_info(self, shelf):
32 return (self.info_per_shelves[shelf]['type'],
33 self.info_per_shelves[shelf]['mgmt_ip'],
34 self.info_per_shelves[shelf]['username'],
35 self.info_per_shelves[shelf]['password'])
37 def get_environment_name(self):
38 return self.dea_struct['name']
40 def get_shelf_ids(self):
43 def get_blade_ids_per_shelf(self, shelf_id):
44 return self.blade_ids_per_shelves[shelf_id]
46 def get_blade_ids_per_shelves(self):
47 return self.blade_ids_per_shelves
49 def collect_shelf_and_blade_info(self):
50 self.blade_ids_per_shelves = {}
51 self.blades_per_shelves = {}
53 for shelf in self.dea_struct['shelf']:
54 self.shelf_ids.append(shelf['id'])
55 blade_ids = self.blade_ids_per_shelves[shelf['id']] = []
56 blades = self.blades_per_shelves[shelf['id']] = {}
57 for blade in shelf['blade']:
58 blade_ids.append(blade['id'])
59 blades[blade['id']] = blade
61 def has_role(self, role, shelf, blade):
62 blade = self.blades_per_shelves[shelf][blade]
64 return True if 'roles' not in blade else False
65 return (True if 'roles' in blade and role in blade['roles']
68 def collect_network_names(self):
69 self.network_names = []
70 for network in self.dea_struct['networks']['networks']:
71 self.network_names.append(network['name'])
73 def get_networks(self):
74 return self.dea_struct['networks']
76 def get_network_names(self):
77 return self.network_names
79 def get_settings(self):
80 return self.dea_struct['settings']
82 def get_network_scheme(self, node_type):
83 return self.dea_struct[node_type]
85 def get_interfaces(self):
86 return self.dea_struct['interfaces']