###############################################################################
# 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
###############################################################################
import yaml
import io
from dha_adapters.libvirt_adapter import LibvirtAdapter
from dha_adapters.ipmi_adapter import IpmiAdapter
from dha_adapters.hp_adapter import HpAdapter
from dha_adapters.amt_adapter import AmtAdapter
from dha_adapters.zte_adapter import ZteAdapter
class DeploymentHardwareAdapter(object):
def __new__(cls, yaml_path):
with io.open(yaml_path) as yaml_file:
dha_struct = yaml.load(yaml_file)
type = dha_struct['adapter']
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)
if type == 'amt':
return AmtAdapter(yaml_path)
if type == 'zte':
return ZteAdapter(yaml_path)
return super(DeploymentHardwareAdapter, cls).__new__(cls)
(eg: file://...
or http://.... The resources can thus be local or remote.
Configuration repository structure
----------------------------------
The CI deployment engine relies on a configuration directory/file structure
pointed to by the -b option described above.
Normally this points to the secure classified OPNFV securedlab repo to which
only jenkins and andmins have access to, but you may point to any local or
remote strcture fullfilling the diectory/file structure below.
The reason that this configuration structure needs to be secure/hidden
is that there are security sensitive information in the various configuration
files.
A local stripped version of this configuration structure with virtual
deployment configurations also exist under build/config/.
Following configuration directory and file structure should be adheare to:
TOP
!
+---- labs
!
+---- lab-name-1
! !
! +---- pod-name-1
! ! !
! ! +---- fuel
! ! !
! ! +---- config
! ! !
! ! +---- dea-pod-override.yaml
! ! !
! ! +---- dha.yaml
! !
! +---- pod-name-2
! !
!
+---- lab-name-2
! !
Creating a deployment scenario
------------------------------
Please find deploy/scenario/README for instructions on how to create a new
deployment scenario.