summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--build/Makefile2
-rw-r--r--build/docker/Dockerfile1
-rwxr-xr-xci/deploy.sh12
-rw-r--r--deploy/cloud/deploy.py17
-rw-r--r--deploy/common.py4
-rwxr-xr-xdeploy/deploy.py13
-rw-r--r--deploy/deploy_env.py9
7 files changed, 43 insertions, 15 deletions
diff --git a/build/Makefile b/build/Makefile
index 01f6e414a..a76c44ee2 100644
--- a/build/Makefile
+++ b/build/Makefile
@@ -85,7 +85,7 @@ all:
KERNEL_VER="$${KERNEL_VER%.*-*}"; \
KERNEL_VER="$${KERNEL_VER//.}"; \
[ $$KERNEL_VER -ge 319 ] || (echo 'Kernel version must be 3.19 or newer'; exit 1)
- @docker/runcontext $(DOCKERIMG) ping -c 1 www.google.com > /dev/null 2>&1 || (echo 'No docker network connectivity or name server - check your network- and docker settings'; exit 1)
+ @docker/runcontext $(DOCKERIMG) wget -q www.google.com > /dev/null 2>&1 || (echo 'No docker network connectivity or name server - check your network- and docker settings'; exit 1)
@docker/runcontext $(DOCKERIMG) $(MAKE) $(MAKEFLAGS) iso
diff --git a/build/docker/Dockerfile b/build/docker/Dockerfile
index b7ef6d3a7..44ba74790 100644
--- a/build/docker/Dockerfile
+++ b/build/docker/Dockerfile
@@ -13,6 +13,7 @@ FROM ubuntu:14.04
ENV http_proxy INSERT_HTTP_PROXY
ENV https_proxy INSERT_HTTPS_PROXY
ENV no_proxy INSERT_NO_PROXY
+ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update
RUN apt-get install -y software-properties-common python-software-properties \
diff --git a/ci/deploy.sh b/ci/deploy.sh
index 2304d7296..7bd180ef1 100755
--- a/ci/deploy.sh
+++ b/ci/deploy.sh
@@ -38,6 +38,7 @@ OPTIONS:
-B PXE Bridge for booting of Fuel master
-d Dry-run
-f Deploy on existing Fuel master
+ -e Do not launch environment deployment
-F Do only create a Fuel master
-H No health check
-l Lab-name
@@ -59,6 +60,7 @@ Input parameters to the build script is:
-d Dry-run - Produces deploy config files (config/dea.yaml and
config/dha.yaml), but does not execute deploy
-f Deploy on existing Fuel master
+-e Do not launch environment deployment
-F Do only create a Fuel master
-H Do not run fuel built in health-check after successfull deployment
-l Lab name as defined in the configuration directory, e.g. lf
@@ -104,6 +106,7 @@ PXE_BRIDGE=''
NO_HEALTH_CHECK=''
USE_EXISTING_FUEL=''
FUEL_CREATION_ONLY=''
+NO_DEPLOY_ENVIRONMENT=''
STORAGE_DIR=''
DRY_RUN=0
#
@@ -113,7 +116,7 @@ DRY_RUN=0
############################################################################
# BEGIN of main
#
-while getopts "b:B:dfFHl:p:s:S:i:h" OPTION
+while getopts "b:B:dfFHl:p:s:S:i:h:e" OPTION
do
case $OPTION in
b)
@@ -139,6 +142,9 @@ do
F)
FUEL_CREATION_ONLY='-fo'
;;
+ e)
+ NO_DEPLOY_ENVIRONMENT='-nde'
+ ;;
H)
NO_HEALTH_CHECK='-nh'
;;
@@ -224,8 +230,8 @@ if [ $DRY_RUN -eq 0 ]; then
ISO=${SCRIPT_PATH}/ISO/image.iso
fi
# Start deployment
- echo "python deploy.py -s $STORAGE_DIR -b $PXE_BRIDGE $USE_EXISTING_FUEL $FUEL_CREATION_ONLY $NO_HEALTH_CHECK -dea ${SCRIPT_PATH}/config/dea.yaml -dha ${SCRIPT_PATH}/config/dha.yaml -iso $ISO"
- python deploy.py $STORAGE_DIR $PXE_BRIDGE $USE_EXISTING_FUEL $FUEL_CREATION_ONLY $NO_HEALTH_CHECK -dea ${SCRIPT_PATH}/config/dea.yaml -dha ${SCRIPT_PATH}/config/dha.yaml -iso $ISO
+ echo "python deploy.py -s $STORAGE_DIR -b $PXE_BRIDGE $USE_EXISTING_FUEL $FUEL_CREATION_ONLY $NO_HEALTH_CHECK $NO_DEPLOY_ENVIRONMENT -dea ${SCRIPT_PATH}/config/dea.yaml -dha ${SCRIPT_PATH}/config/dha.yaml -iso $ISO"
+ python deploy.py $STORAGE_DIR $PXE_BRIDGE $USE_EXISTING_FUEL $FUEL_CREATION_ONLY $NO_HEALTH_CHECK $NO_DEPLOY_ENVIRONMENT -dea ${SCRIPT_PATH}/config/dea.yaml -dha ${SCRIPT_PATH}/config/dha.yaml -iso $ISO
fi
popd > /dev/null
diff --git a/deploy/cloud/deploy.py b/deploy/cloud/deploy.py
index 07d5d578f..e00934bd9 100644
--- a/deploy/cloud/deploy.py
+++ b/deploy/cloud/deploy.py
@@ -22,6 +22,7 @@ from common import (
check_file_exists,
commafy,
ArgParser,
+ log,
)
YAML_CONF_DIR = '/var/lib/opnfv'
@@ -29,10 +30,12 @@ YAML_CONF_DIR = '/var/lib/opnfv'
class Deploy(object):
- def __init__(self, dea_file, no_health_check, deploy_timeout):
+ def __init__(self, dea_file, no_health_check, deploy_timeout,
+ no_deploy_environment):
self.dea = DeploymentEnvironmentAdapter(dea_file)
self.no_health_check = no_health_check
self.deploy_timeout = deploy_timeout
+ self.no_deploy_environment = no_deploy_environment
self.macs_per_blade = {}
self.blades = self.dea.get_node_ids()
self.blade_node_dict = self.dea.get_blade_node_map()
@@ -62,7 +65,10 @@ class Deploy(object):
dep = Deployment(self.dea, YAML_CONF_DIR, self.env_id,
self.node_roles_dict, self.no_health_check,
self.deploy_timeout)
- dep.deploy()
+ if not self.no_deploy_environment:
+ dep.deploy()
+ else:
+ log('Configuration is done. Deployment is not launched.')
def deploy(self):
@@ -81,14 +87,19 @@ def parse_arguments():
parser.add_argument('-dt', dest='deploy_timeout', action='store',
default=240, help='Deployment timeout (in minutes) '
'[default: 240]')
+ parser.add_argument('-nde', dest='no_deploy_environment',
+ action='store_true', default=False,
+ help=('Do not launch environment deployment'))
parser.add_argument('dea_file', action='store',
help='Deployment Environment Adapter: dea.yaml')
+
args = parser.parse_args()
check_file_exists(args.dea_file)
kwargs = {'dea_file': args.dea_file,
'no_health_check': args.no_health_check,
- 'deploy_timeout': args.deploy_timeout}
+ 'deploy_timeout': args.deploy_timeout,
+ 'no_deploy_environment': args.no_deploy_environment}
return kwargs
diff --git a/deploy/common.py b/deploy/common.py
index cc418b59b..787a21a1d 100644
--- a/deploy/common.py
+++ b/deploy/common.py
@@ -133,8 +133,8 @@ def commafy(comma_separated_list):
def check_if_root():
- r = exec_cmd('whoami')
- if r != 'root':
+ uid = os.getuid()
+ if uid != 0:
err('You need be root to run this application')
diff --git a/deploy/deploy.py b/deploy/deploy.py
index 492c7596a..f86f2be12 100755
--- a/deploy/deploy.py
+++ b/deploy/deploy.py
@@ -61,7 +61,7 @@ class AutoDeploy(object):
def __init__(self, no_fuel, fuel_only, no_health_check, cleanup_only,
cleanup, storage_dir, pxe_bridge, iso_file, dea_file,
dha_file, fuel_plugins_dir, fuel_plugins_conf_dir,
- no_plugins, deploy_timeout):
+ no_plugins, deploy_timeout, no_deploy_environment):
self.no_fuel = no_fuel
self.fuel_only = fuel_only
self.no_health_check = no_health_check
@@ -76,6 +76,7 @@ class AutoDeploy(object):
self.fuel_plugins_conf_dir = fuel_plugins_conf_dir
self.no_plugins = no_plugins
self.deploy_timeout = deploy_timeout
+ self.no_deploy_environment = no_deploy_environment
self.dea = (DeploymentEnvironmentAdapter(dea_file)
if not cleanup_only else None)
self.dha = DeploymentHardwareAdapter(dha_file)
@@ -198,7 +199,8 @@ class AutoDeploy(object):
dep = CloudDeploy(self.dea, self.dha, self.fuel_conf['ip'],
self.fuel_username, self.fuel_password,
self.dea_file, self.fuel_plugins_conf_dir,
- WORK_DIR, self.no_health_check, self.deploy_timeout)
+ WORK_DIR, self.no_health_check, self.deploy_timeout,
+ self.no_deploy_environment)
return dep.deploy()
def setup_execution_environment(self):
@@ -239,6 +241,7 @@ class AutoDeploy(object):
# Exit status
return 0
+
def check_bridge(pxe_bridge, dha_path):
with io.open(dha_path) as yaml_file:
dha_struct = yaml.load(yaml_file)
@@ -319,6 +322,9 @@ def parse_arguments():
parser.add_argument('-dt', dest='deploy_timeout', action='store',
default=240, help='Deployment timeout (in minutes) '
'[default: 240]')
+ parser.add_argument('-nde', dest='no_deploy_environment',
+ action='store_true', default=False,
+ help=('Do not launch environment deployment'))
args = parser.parse_args()
log(args)
@@ -345,7 +351,8 @@ def parse_arguments():
'fuel_plugins_dir': args.fuel_plugins_dir,
'fuel_plugins_conf_dir': args.fuel_plugins_conf_dir,
'no_plugins': args.no_plugins,
- 'deploy_timeout': args.deploy_timeout}
+ 'deploy_timeout': args.deploy_timeout,
+ 'no_deploy_environment': args.no_deploy_environment}
return kwargs
diff --git a/deploy/deploy_env.py b/deploy/deploy_env.py
index 3d1cdf430..aa861e102 100644
--- a/deploy/deploy_env.py
+++ b/deploy/deploy_env.py
@@ -35,7 +35,7 @@ class CloudDeploy(object):
def __init__(self, dea, dha, fuel_ip, fuel_username, fuel_password,
dea_file, fuel_plugins_conf_dir, work_dir, no_health_check,
- deploy_timeout):
+ deploy_timeout, no_deploy_environment):
self.dea = dea
self.dha = dha
self.fuel_ip = fuel_ip
@@ -50,6 +50,7 @@ class CloudDeploy(object):
self.work_dir = work_dir
self.no_health_check = no_health_check
self.deploy_timeout = deploy_timeout
+ self.no_deploy_environment = no_deploy_environment
self.file_dir = os.path.dirname(os.path.realpath(__file__))
self.ssh = SSHClient(self.fuel_ip, self.fuel_username,
self.fuel_password)
@@ -105,10 +106,12 @@ class CloudDeploy(object):
deploy_app = '%s/%s' % (self.work_dir, deploy_app)
dea_file = '%s/%s' % (self.work_dir, os.path.basename(self.dea_file))
with self.ssh as s:
- status = s.run('python %s %s %s %s' % (
+ status = s.run('python %s %s %s %s %s' % (
deploy_app,
('-nh' if self.no_health_check else ''),
- ('-dt %s' % self.deploy_timeout if self.deploy_timeout else ''),
+ ('-dt %s' %
+ self.deploy_timeout if self.deploy_timeout else ''),
+ ('-nde' if self.no_deploy_environment else ''),
dea_file))
return status