X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=fuel%2Fdeploy%2Fdha.py;h=1feee603918659ee0dd74362599d8ff2dfba2463;hb=563547b4a9f44090f32c0e17d040114854563760;hp=f78686bd9afe0f61239d58fe243458c195eb799f;hpb=2797591c64423a62522f5f7e667422c5434229b2;p=genesis.git diff --git a/fuel/deploy/dha.py b/fuel/deploy/dha.py index f78686b..1feee60 100644 --- a/fuel/deploy/dha.py +++ b/fuel/deploy/dha.py @@ -1,49 +1,34 @@ +############################################################################### +# Copyright (c) 2015 Ericsson AB and others. +# szilard.cserey@ericsson.com +# 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 +############################################################################### -class DeploymentHardwareAdapter(object): - def __new__(cls, server_type): - if cls is DeploymentHardwareAdapter: - if server_type == 'esxi': return EsxiAdapter() - if server_type == 'hp': return HpAdapter() - if server_type == 'dell': return DellAdapter() - if server_type == 'libvirt': return LibvirtAdapter() - return super(DeploymentHardwareAdapter, cls).__new__(cls) - - -class HardwareAdapter(object): - - def power_off_blades(self): - raise NotImplementedError - - def power_on_blades(self): - raise NotImplementedError - def power_cycle_blade(self): - raise NotImplementedError +import yaml +import io - def set_boot_order(self): - raise NotImplementedError +from dha_adapters.libvirt_adapter import LibvirtAdapter +from dha_adapters.ipmi_adapter import IpmiAdapter +from dha_adapters.hp_adapter import HpAdapter - def reset_to_factory_defaults(self): - raise NotImplementedError - def configure_networking(self): - raise NotImplementedError - - def get_blade_mac_addresses(self, shelf_id, blade_id): - raise NotImplementedError - - def get_blade_hardware_info(self, shelf_id, blade_id): - raise NotImplementedError - - -class EsxiAdapter(HardwareAdapter): - pass +class DeploymentHardwareAdapter(object): -class LibvirtAdapter(HardwareAdapter): - pass + def __new__(cls, yaml_path): + with io.open(yaml_path) as yaml_file: + dha_struct = yaml.load(yaml_file) + type = dha_struct['adapter'] -class HpAdapter(HardwareAdapter): - pass + if cls is DeploymentHardwareAdapter: + if type == 'libvirt': + return LibvirtAdapter(yaml_path) + if type == 'ipmi': + return IpmiAdapter(yaml_path) + if type == 'hp': + return HpAdapter(yaml_path) -class DellAdapter(HardwareAdapter): - pass + return super(DeploymentHardwareAdapter, cls).__new__(cls)