X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=fuel%2Fdeploy%2Fdha.py;h=1feee603918659ee0dd74362599d8ff2dfba2463;hb=563547b4a9f44090f32c0e17d040114854563760;hp=87ac6e26d50d22c363d8803e6da40cb4a4325f6e;hpb=dec530fc304187a7a467e2d923c9c18f3923f7c3;p=genesis.git diff --git a/fuel/deploy/dha.py b/fuel/deploy/dha.py index 87ac6e2..1feee60 100644 --- a/fuel/deploy/dha.py +++ b/fuel/deploy/dha.py @@ -1,62 +1,34 @@ -from hardware_adapters.hp.hp_adapter import HpAdapter +############################################################################### +# 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, *args): - if cls is DeploymentHardwareAdapter: - if server_type == 'esxi': return EsxiAdapter(*args) - if server_type == 'hp': return HpAdapter(*args) - if server_type == 'dell': return DellAdapter(*args) - if server_type == 'libvirt': return LibvirtAdapter(*args) - return super(DeploymentHardwareAdapter, cls).__new__(cls) - - -class HardwareAdapter(object): - - def power_off_blades(self, shelf, blade_list): - raise NotImplementedError - - def power_off_blade(self, shelf, blade): - raise NotImplementedError - - def power_on_blades(self, shelf, blade_list): - raise NotImplementedError - - def power_on_blade(self, shelf, blade): - raise NotImplementedError - def power_cycle_blade(self): - raise NotImplementedError +import yaml +import io - def set_boot_order_blades(self, shelf, blade_list): - raise NotImplementedError +from dha_adapters.libvirt_adapter import LibvirtAdapter +from dha_adapters.ipmi_adapter import IpmiAdapter +from dha_adapters.hp_adapter import HpAdapter - def set_boot_order_blade(self, shelf, blade): - raise NotImplementedError - def reset_to_factory_defaults(self): - raise NotImplementedError - - def configure_networking(self): - raise NotImplementedError - - def get_blade_mac_addresses(self, shelf, blade): - raise NotImplementedError - - def get_hardware_info(self, shelf, blade): - raise NotImplementedError - - -class EsxiAdapter(HardwareAdapter): - - def __init__(self): - self.environment = {1: {1: {'mac': ['00:50:56:8c:05:85']}, - 2: {'mac': ['00:50:56:8c:21:92']}}} +class DeploymentHardwareAdapter(object): - def get_blade_mac_addresses(self, shelf, blade): - return self.environment[shelf][blade]['mac'] + def __new__(cls, yaml_path): + with io.open(yaml_path) as yaml_file: + dha_struct = yaml.load(yaml_file) + type = dha_struct['adapter'] -class LibvirtAdapter(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)