Age | Commit message (Collapse) | Author | Files | Lines |
|
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>
|
|
|
|
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>
|
|
Change-Id: I058f6bc54e1c6b0a0c20eeaa2ea09f2f9a2e80ce
Signed-off-by: Peter Barabas <peter.barabas@ericsson.com>
|
|
With this patch it should be possible to create a fuel VM on a remote
libvirt server by properly defining the LIBVIRT_DEFAULT_URI [1]
environment variable. If the variable is not defined, then there should
be no percievable change in behaviour for the script.
This patch introduces the ability to create volumes (images) on a
remote libvirt host where the Fuel VM is to be deployed. For now
the volumes are created by default in a pool named jenkins, but
the idea is to allow this to be configured, probably in the POD's
DHA file.
Since all virsh commands honor LIBVIRT_DEFAULT_URI, we use this
environment variable to detect wheter we should create a volume or not.
The rationale being that the variable will only be set if the user wants
to to do the VM deployment on a remote libvirt host.
We need to create a volume because we can not rely on being able to
access the remote server's file system directly.
The images are then transferred to the libvirt host using virsh
commands. All this could also be done using scp and a user directory
on the host machine, but using pools allows us to take advantage of
libvirt's policies and file permissions.
CHANGE: when LIBVIRT_DEFAULT_URI is defined, the script will not check
for the presence of the required PXE bridge. This will still be checked
when the Fuel VM is started and the bridge not found, but this happens
at a later point than it does today.
CHANGE: before this patch, the file system image was named like the VM:
vm_name.raw. This patch introduces a change and adds a timestamp suffix
to the image: vm_name-timestamp.raw. This is so to avoid collisions with
an image with the same name on the remote pool (two PODs may be using
the same pool). It may also be useful to keep around old file system
images.
FIXME: This patch requires a pool named "jenkins" in the remote libvirt
server, and it will fail if it is not present. This should be
configurable.
Notice though that we can still define LIBVIRT_DEFAULT_URI as
"qemu:///system" to create the Fuel VM on the local host.
[1] https://libvirt.org/remote.html#Remote_URI_reference
Change-Id: I40925ed31337d3ad9cf505f284f5c3d14e9129a0
Signed-off-by: Josep Puigdemont <josep.puigdemont@enea.com>
|
|
Signed-off-by: Josep Puigdemont <josep.puigdemont@enea.com>
|
|
Signed-off-by: Josep Puigdemont <josep.puigdemont@enea.com>
|
|
These two variables are defined in one of the methods right now. They
will be useful to other methods too, so we add them as attributes to the
object here.
Signed-off-by: Josep Puigdemont <josep.puigdemont@enea.com>
|
|
The method get_node_state has been added to the the IpmiAdapter class.
In addition, now the power on/off methods will try several times to
perform their IPMI command before giving up, instead of bailing out at
the first error.
After the power on/off command is completed, the method will wait until
the node is in the desired state.
NOTE: a command could potentially take several minutes if the defaults
are used; each IPMI command can take up to 1 minute, and there can be 3
commands issued per operation, one of them may be retried 20 times with
the current defaults. Ideally we would use eventlet or something similar
to allow each command a limited time to execute, instead:
with eventlet.timeout.Timeout(seconds) as t:
power_on/off_command
Signed-off-by: Josep Puigdemont <josep.puigdemont@enea.com>
|
|
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>
|
|
Sometimes the IPMI lanplus protocol listens on a non-standard
remote port, e.g. when target nodes are interfaced through a
fake IPMI BMC application that listens on multiple ports on the
same IP address.
Therefore, allow setting IPMI port in the DHA using a new
property named `ipmiPort`, and pass it along to `ipmitool` when set.
CHANGE: get_access_info now also supports specifying the IPMI
port to use with `ipmitool` by configuring the `ipmiPort`
property in the DHA.
hp_adapter.py: updated `get_access_info` return signature with
the new (unused there) `ipmiport`.
Change-Id: I620176bd7f466aa460518cf12d15ccbe86a22560
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
|
|
Change-Id: I04dd8b4bdddc5678b158d7287c6ffc52d1bce135
Signed-off-by: wuwb1989 <wuwenbin2@huawei.com>
|
|
|
|
A "qemu" snuck in instead of "kvm".
Change-Id: Ibe704103cd1bab6e127a31d08d53f53518033539
Signed-off-by: Stefan K. Berg <stefan.k.berg@ericsson.com>
|
|
Change-Id: I9d2fc979886510c165af8dbac93ddcdc954727cf
Signed-off-by: wuwenbin2 <wuwenbin2@huawei.com>
|
|
Minor fix in the ELX version.
Update to Fuel 9.0 in the default version.
Change-Id: Ic084b86e7f6d2dfc3d15b10f0ef72e04ef2b7bf6
Signed-off-by: Stefan K. Berg <stefan.k.berg@ericsson.com>
|
|
Change-Id: I380087889cda079a56c8cea3acc13145dcd49046
Signed-off-by: Stefan K. Berg <stefan.k.berg@ericsson.com>
|
|
Change-Id: Ib225701a808211e50554c8f1762325aa75ecc33f
Signed-off-by: Peter Barabas <peter.barabas@ericsson.com>
|
|
|
|
Change-Id: I59b96a424a753f880b4ac16abd806851ad3f9533
Signed-off-by: Michal Skalski <mskalski@mirantis.com>
|
|
Modified network or interface configurations were not reflected in
the deployment config, resulting in faulty node configurations.
Change-Id: I4ca20702c0171e7995f2b4f46317557ec9d5beac
Signed-off-by: Peter Barabas <peter.barabas@ericsson.com>
|
|
- The auto deployer's detection of nodes being up corrected as "fuel node"
now returns "1" instead of "True" to denote that the node is up.
- The location of bootstrap_admin_node.sh has changed so the detection of
whether the Fuel node installation needed a correction for the deployer
not to throw an exit code and terminate prematurely.
- Small fix: deploy.py is now executable (just a chmod change).
Change-Id: I8fed7bafe6912f8b4278619bbdaa16577a82737b
Signed-off-by: Stefan K. Berg <stefan.k.berg@ericsson.com>
|
|
Change-Id: Id7579ef618b8cd922de325d9dc1c0b7a6c5587a7
Signed-off-by: Peter Barabas <peter.barabas@ericsson.com>
|
|
Signed-off-by: Daiel Smith <daniel.smith@ericsson.com>
JIRA:0
|
|
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>
|
|
|
|
Fuel repo"
|
|
Switching to Fuel 9.0/Mitaka for the build system.
Overhaul of the patching mechanism. As bootstrap_admin_node.sh has
been transitioned into an RPM (fuel-support), the lazy designer found
it more simple to patch that script during the Fuel build phase than
at the OPNFV ISO generation. The patch mechanism has been changed to a
normal context diff instead of the orig/modified file tuples
previously used. Hopefully this will require fewer manual rebases (may
the fuzz be with us!).
Also the ks.cfg patching has transitioned to a context based ordinary
patch for the same reasons, but this is as before taking place during
OPNFV ISO generation.
Patch naming made more descriptive.
The reaping mechanism has been slightly modified due to a change in
the naming of the node files when these are generated by the Fuel CLI.
IMPORTANT 1: The package cache mechanism is currently disabled, it is
only possible to install Fuel with a direct internet connection. This
will be fixed in a later change set!
IMPORTANT 2: All plugins has been disabled! As you have re-certified
your plugin with Fuel 9.0, please re-enable it in build/Makefile!
Change-Id: Ia918d16a74b68f89d178e06befe6e8a7a9367bf9
Signed-off-by: Stefan K. Berg <stefan.k.berg@ericsson.com>
|
|
get_env() used to raise an unhandled exception when reap.py was run on a
Fuel node which didn't yet have an environment set up.
Change-Id: I07c37db2d80e416d26fa4fb4907f4e438f1c44e5
Signed-off-by: Peter Barabas <peter.barabas@ericsson.com>
|
|
This needs testing!!!!
On a follow-up release, this also needs rebasement, the libvirt templates
are still in here - they shouldnt, sinse we dont want Lab specific
configs in the Fuel repo.
NOT VERIFIED
DO NOT MERGE
Change-Id: I069ced81b886405463f27f37a6ec78e3748b37b7
Signed-off-by: Jonas Bjurel <jonas.bjurel@ericsson.com>
|
|
|
|
|
|
|
|
|
|
Change-Id: I40942c7181daf5efd1640a03471e91df82548073
Signed-off-by: Peter Barabas <peter.barabas@ericsson.com>
|
|
Change-Id: Id22ae685f324b58d07bd0c5256f3dbf55672776e
Signed-off-by: Peter Barabas <peter.barabas@ericsson.com>
|
|
During the automatic deployment, when the environment is ready to be
deployed, the deploy.py script will spawn a shell process that will
perform the command "fuel deploy-changes". The standard output of this
process is then piped to a "tee" process, which redirects the output
to the standard output of the shell process, and to a file named
cloud.log. The file is monitored by the deploy script to find out the
status of the deployment, and print it to the log file of the automatic
deployment script, including percentages for each node being
provisioned. However, the deploy script never consumes the standard
output of the shell process. If the shell process produces enough
output, its standard output buffer will fill up, thus making the tee
process block trying to write to its standard output, and the cloud.log
file will not be updated. At this point, the deploy process, which is
monitoring cloud.log, will not detect any progress in the deployment,
and eventually it will time out and assume the deployment failed,
although it might have finished fine after that.
The solution here is to remove the "tee" process from the shell command,
and instead redirect standard output to the cloud.log file.
Another solution would be to actually parse the standard output of the
shell command from the deploy script itself, but that would require a
bit more work, as reading a line at a time might block the script.
Finally, with this patch the cloud.log file won't be deleted unless the
shell process has already finished.
Change-Id: I03a77be42d220b1606e48fc4ca35e22d73a6e583
Signed-off-by: Josep Puigdemont <josep.puigdemont@enea.com>
|
|
|
|
Change-Id: I32878726432c3d883f0b33bdd2c836b0770e734f
Signed-off-by: Peter Barabas <peter.barabas@ericsson.com>
|
|
- remove release from scenario files
- remove old versions of scenario files
- remove versions from scenario file names and update scenario.yaml
- update README
Change-Id: I5203ea0794b96fb44f6a9db25b33e5066c1d9574
Signed-off-by: Peter Barabas <peter.barabas@ericsson.com>
|
|
ZTE hardware need use IPMI command "chassis power cycle"
on function node_reset().
JIRA: FUEL-127
Change-Id: I286fd9cda43d2e1799b134f0a391f57d08cd1928
Signed-off-by: wu.zhihui <wu.zhihui1@zte.com.cn>
|
|
|
|
Unfortunately this scenario is hardwired to work with Ericsson POD-2 only
Change-Id: I3a0b56d7ff71e0ec9cd97b8ef5946fb438d43e62
Signed-off-by: Jonas Bjurel <jonas.bjurel@ericsson.com>
|
|
The Fuel environment name may contain spaces, putting the name in quote
marks prevents the second and subsequent words from being interpreted
as other parameters by the fuel command.
The name could contain double quotes too, so this doesn't solve all
problems, but arguably the most common case.
Signed-off-by: Josep Puigdemont <josep.puigdemont@enea.com>
|
|
|
|
|
|
Change-Id: I82ce16751b4d52d6fdb39883b730073164f9dfe0
|
|
Change-Id: I215da0a101d94e2c3fd4aeea80b98f7c9aefe0fb
Signed-off-by: Peter Barabas <peter.barabas@ericsson.com>
|
|
Change-Id: I306b8260ea37fb32ef8db8cf5d4628b50328027f
Signed-off-by: Peter Barabas <peter.barabas@ericsson.com>
|
|
|