2 class DeploymentHardwareAdapter(object):
3 def __new__(cls, server_type):
4 if cls is DeploymentHardwareAdapter:
5 if server_type == 'esxi': return EsxiAdapter()
6 if server_type == 'hp': return HpAdapter()
7 if server_type == 'dell': return DellAdapter()
8 if server_type == 'libvirt': return LibvirtAdapter()
9 return super(DeploymentHardwareAdapter, cls).__new__(cls)
12 class HardwareAdapter(object):
14 def power_off_blades(self):
15 raise NotImplementedError
17 def power_on_blades(self):
18 raise NotImplementedError
20 def power_cycle_blade(self):
21 raise NotImplementedError
23 def set_boot_order(self):
24 raise NotImplementedError
26 def reset_to_factory_defaults(self):
27 raise NotImplementedError
29 def configure_networking(self):
30 raise NotImplementedError
32 def get_blade_mac_addresses(self, shelf_id, blade_id):
33 raise NotImplementedError
35 def get_blade_hardware_info(self, shelf_id, blade_id):
36 raise NotImplementedError
39 class EsxiAdapter(HardwareAdapter):
42 class LibvirtAdapter(HardwareAdapter):
45 class HpAdapter(HardwareAdapter):
48 class DellAdapter(HardwareAdapter):