4 class DeploymentEnvironmentAdapter(object):
7 self.blade_ids_per_shelves = {}
8 self.blades_per_shelves = {}
12 def parse_yaml(self, yaml_path):
13 with io.open(yaml_path) as yaml_file:
14 self.dea_struct = yaml.load(yaml_file)
15 self.collect_shelf_and_blade_info()
16 self.collect_network_info()
18 def get_no_of_blades(self):
20 for shelf in self.dea_struct['shelf']:
21 no_of_blades += len(shelf['blade'])
24 def get_server_type(self):
25 return self.dea_struct['server']['type']
27 def get_server_info(self):
28 return (self.dea_struct['server']['type'],
29 self.dea_struct['server']['mgmt_ip'],
30 self.dea_struct['server']['username'],
31 self.dea_struct['server']['password'])
33 def get_environment_name(self):
34 return self.dea_struct['name']
36 def get_shelf_ids(self):
39 def get_blade_ids_per_shelf(self, shelf_id):
40 return self.blade_ids_per_shelves[shelf_id]
42 def get_blade_ids_per_shelves(self):
43 return self.blade_ids_per_shelves
45 def collect_shelf_and_blade_info(self):
46 self.blade_ids_per_shelves = {}
47 self.blades_per_shelves = {}
49 for shelf in self.dea_struct['shelf']:
50 self.shelf_ids.append(shelf['id'])
51 blade_ids = self.blade_ids_per_shelves[shelf['id']] = []
52 blades = self.blades_per_shelves[shelf['id']] = {}
53 for blade in shelf['blade']:
54 blade_ids.append(blade['id'])
55 blades[blade['id']] = blade
57 def is_controller(self, shelf_id, blade_id):
58 blade = self.blades[shelf_id][blade_id]
59 return (True if 'role' in blade and blade['role'] == 'controller'
62 def is_compute_host(self, shelf_id, blade_id):
63 blade = self.blades[shelf_id][blade_id]
64 return True if 'role' not in blade else False
66 def collect_network_info(self):
68 for network in self.dea_struct['network']:
69 self.networks[network['name']] = network
71 def get_networks(self):