aboutsummaryrefslogtreecommitdiffstats
path: root/deploy/common.py
AgeCommit message (Collapse)AuthorFilesLines
2016-09-20Properly handle quotes in argument maskingPeter Barabas1-1/+2
Use shlex to parse the command line, thus handling quotes and other special characters. Change-Id: Icc3a2cd934aac8f67e07d967f76c7679bcb34996 Signed-off-by: Peter Barabas <peter.barabas@ericsson.com> (cherry picked from commit bddbf2a740b46d1ad763967b8c8662b1877a4d75)
2016-08-17Change log file permissionsPeter Barabas1-1/+1
Don't make it executable; don't make it world-writable. Change-Id: I5d117b39e70fff2c1cb5e62d017efe0387b9b5f4 Signed-off-by: Peter Barabas <peter.barabas@ericsson.com>
2016-06-16Add command line argument masking for exec_cmdPeter Barabas1-4/+19
exec_cmd() now takes 2 additional optional arguments: mask_args and mask_str. The former expects an array of positions to mask, the latter expects a string to be used as mask. Change-Id: I445141a68929a0d2837e7692ce8b4d071154cfa7 Signed-off-by: Peter Barabas <peter.barabas@ericsson.com>
2016-06-16Introducing collection of all fuel and stack deployment logs.Jonas Bjurel1-1/+14
The purpose of this patch is to collect all available Fuel snapshots- and stack/node ldeployment logs for later off-line troubleshooting. The intention is that Jenkins, or other deployment robots will be able to collect all logs from the deployment and store it at some repository where developers can fetch it and perform off-line post deployment trouble-shooting. Following script arguments have been added: CI Arg changes: Added an argument to ci/deploy.sh: -L [Deploy log path and file name], E.g. -L ~/jenkins/deploy/deploy-888.log.tar.gz This will create an tar gzip archive at the path and filename pointed out. If -L is not specified, the log archive will be placed under the CI directory with the following name convention: deploy-YYMMDD-HHMMSS.log.tar.gz Fuel Internal deploy changes: Added an argument to ci/deploy.py -log [Deploy log path and file name], E.g. -log ~/jenkins/deploy/deploy-888.log.tar.gz This will create an tar gzip archive at the path and filename pointed out. If -log is not specified, the log archive will be placed under the CI directory with the following name convention: deploy-YYMMDD-HHMMSS.log.tar.gz READY TO MERGE! VERIFIED! Change-Id: Icb75d9d2e66bdd47f75dcca29071943444d5c823 Signed-off-by: Jonas Bjurel <jonas.bjurel@ericsson.com>
2016-06-15common.py: allow specifying number of attempts in exec_cmdJosep Puigdemont1-7/+17
Some commands executed by exec_cmd may fail because of a temporary cause, and it may be desirable to retry the same command several times until it succeeds. One example of this are the ipmitool commands, which may fail temorarily on some targets if they get too many requests simultaneously. In this patch three new optional parameters are introduced to the function signature, which do not break backward compatibility: attempts: which indicates how many times the command should be run if it returns a non-zero value*, and defaults to 1 (as today). delay: which indicates the delay in seconds between attempts, and defaults to 5 seconds. verbose: It will print the remaining attempts left for the current command if set to True. * It may be desirable to add yet another parameter to indicate what return value should be considered an error, but non-zero for now seems a reasonable default. Signed-off-by: Josep Puigdemont <josep.puigdemont@enea.com>
2016-05-31common.py: catch stderr in exec_cmdJosep Puigdemont1-6/+6
When running commands with exec_cmd(), the stderr of the command is sent to /dev/null and ignored, and only stdout is retrieved. Thus, when a command fails and check is enabled, only the output of stdout is presented to the user, which normally holds no information about the error. In this patch we retrieve stderr, and when an error occurs, an exception is raised with that message. Fixes https://jira.opnfv.org/browse/FUEL-142 Change-Id: I3940e1a43963a6abec362481b1d4ce7bd7cb816d Signed-off-by: Josep Puigdemont <josep.puigdemont@enea.com>
2016-03-10Get user id without forking a shell.Peter Barabas1-2/+2
Change-Id: I6789b81186b7ede124a838a5b6668ba8326e0c0b Signed-off-by: Peter Barabas <peter.barabas@ericsson.com>
2016-01-27Fix wrong offset in environment arrayPeter Barabas1-1/+1
Change-Id: Ifd01bc89c2c73801544310f567dd0458233b3290 Signed-off-by: Peter Barabas <peter.barabas@ericsson.com>
2016-01-27Use Fuel 8 CLI compatible commandsPeter Barabas1-3/+2
Change-Id: Icd2feed7326772837c74f35688160d1eb0c25652 Signed-off-by: Peter Barabas <peter.barabas@ericsson.com>
2016-01-08A simple method to separate configuration for base fuel, plugins, PODsJonas Bjurel1-0/+5
and deployment/test scenarios READY TO MERGE! Replaces: https://gerrit.opnfv.org/gerrit/#/c/3995/ Abstract -------- This deployment framework relies on a configuration structure, providing base installer configuration, per POD specific configuration, plugin configuration, and deployment scenario configuration. - The base installer configuration resembles the least common denominator of all HW/POD environment and deployment scenarios (These configurations are normally carried by the the installer projects in this case (fuel@OPNFV). - Per POD specific configuration specifies POD unique parameters, the POD parameter possible to alter is governed by the Fuel@OPNFV project. - Plugin configuration - providing configuration of a specific plugin. these configurations maintain there own namespace and are normally maintained by collaborative projects building Fuel@OPNFV plugins - Deployment scenario configuration - provides a high level, POD/HW environment independent scenario configuration for a specific deployment. It defines what features/plugins that shall be deployed - as well needed overrides of the plugin config as well as the base installer-, POD/HW environment- configurations. Objects allowed to override is governed by the Fuel@OPNFV project. Executing a deployment ---------------------- deploy.sh must be executed locally at the target lab/pod/jumpserver A lab configuration structure must be provided - see the section below. It is straight forward to execute a deployment task - as an example: sudo deploy.sh -b file:///home/jenkins/config -l ericsson-1 -p pod-2 -s os_odl-l2_no-ha -i file:///home/jenkins/MyIso.iso -b and -i arguments should be expressed in URI style. The resources can thus be local or remote. Feedback -------- Please give feed-back before I'm going to far on a wrong tangent Implemented scenarios so far: ----------------------------- - os_ha - os_no-ha - os_odl-l3_ha - os_odl-l3_no-ha - os_odl-l2_ha - os_odl-l2_no-ha - os_onos_ha - os_onos_no-ha - os_kvm_ha - os_kvm_no-ha - os_ovs_ha - os_ovs_no-ha - os_kvm_ovs_ha - os_kvm_ovs_no-ha VERIFIED READY TO MERGE JIRA: FUEL-35 Change-Id: I94a9b477d8ed4ee8057c16d8f20fe543f7ecc20d Signed-off-by: Jonas Bjurel <jonas.bjurel@ericsson.com>
2015-12-08Reaping improvements for Fuel 7Stefan K. Berg1-1/+3
In order to download the deployment information, the node id must be explicitly specified. The fuel setting commmand returns "ha_compact" as the mode for a cluster, but Fuel does itself not understand this when changing the settings - it needs to be named "ha". Added shebang for reap.py and deploy.py. Upped the default image sizes for the DHA template to match Fuel 7. Change-Id: I3ecacb83dc44454b90dedc98104658a16926dc1f Signed-off-by: Stefan K. Berg <stefan.k.berg@ericsson.com>
2015-11-27Restructcture of the directory layoutJonas Bjurel1-0/+157
Restructure of the directory layout due to move of Fuel into it's own repo JIRA: FUEL-85 Change-Id: I3647e1992a508f29dce06a5d6c790725c527f6f5 Signed-off-by: Jonas Bjurel <jonas.bjurel@ericsson.com>