releng-xci.git
7 years agoMerge "xci: roles: configure-network: Wait for connection when configuring the network"
Fatih Degirmenci [Fri, 9 Mar 2018 17:20:46 +0000 (17:20 +0000)]
Merge "xci: roles: configure-network: Wait for connection when configuring the network"

7 years agoxci: roles: configure-network: Wait for connection when configuring the network 35/53335/7
Markos Chandras [Thu, 8 Mar 2018 19:51:51 +0000 (19:51 +0000)]
xci: roles: configure-network: Wait for connection when configuring the network

Ansible some times loses connection with the host after we configure its
network interface. This shouldn't happen since the host is actually up
and running. As a result of which, we need to fire-and-forget the
restart of the network service and then try to reach the SSH port. We
also need to make sure that all required packages are installed.
Finally, we drop the 'ignore_errors' parameter since we really need to
know when the networking configuration has failed.

Change-Id: I366192737b5c4e01964eaf187396eababbdc808e
Signed-off-by: Markos Chandras <mchandras@suse.de>
7 years agoMerge "xci: Rename provision-vm-nodes playbook"
Markos Chandras [Fri, 9 Mar 2018 10:47:50 +0000 (10:47 +0000)]
Merge "xci: Rename provision-vm-nodes playbook"

7 years agoMerge "Add subproject INFO.yaml"
Fatih Degirmenci [Fri, 9 Mar 2018 10:24:27 +0000 (10:24 +0000)]
Merge "Add subproject INFO.yaml"

7 years agoxci: Rename provision-vm-nodes playbook 85/53385/1
Markos Chandras [Fri, 9 Mar 2018 09:51:52 +0000 (09:51 +0000)]
xci: Rename provision-vm-nodes playbook

The provision-vm-nodes playbook doesn't do any VM provisioning. It
basically just bootstraps the bifrost repository so rename it to
make it clear what this is about.

Change-Id: I1c10bc6135686c5197d553a885412a94312a41bc
Signed-off-by: Markos Chandras <mchandras@suse.de>
7 years agobifrost: Ensure OS images are present in the PXE directory 01/53301/1
Markos Chandras [Thu, 8 Mar 2018 11:39:42 +0000 (11:39 +0000)]
bifrost: Ensure OS images are present in the PXE directory

The XCI deployment script may wipe the PXE directories so we need
to place the OS images after this has happened so we don't download them
every time.

Change-Id: Iccf943bc75592e7f5dddea59dfee14b2b080e7ef
Signed-off-by: Markos Chandras <mchandras@suse.de>
7 years agoAdd subproject INFO.yaml 29/52729/4
Fatih Degirmenci [Tue, 27 Feb 2018 11:39:56 +0000 (11:39 +0000)]
Add subproject INFO.yaml

This change adds INFO.yaml for releng-xci Gerrit Project which is
constructed by subset of committers of Releng project who are active in
xci. New committers to releng-xci Gerrit Project will be nominated
on Gerrit via separate changes and voted by releng-xci committers that
are listed within releng-xci/INFO.yaml file as of today.

A single mail with all the nominations will be sent to opnfv-tsc and
opnfv-tech-discuss mailing lists announcing nominations. A followup
mail will also be sent to announce the results.

Change-Id: I1d49585276304b29ac86b03aff5fd45974a02ccc
Signed-off-by: Fatih Degirmenci <fdegir@gmail.com>
7 years agobifrost: Use the pre-built XCI OS images instead of dib 53/53253/1
Markos Chandras [Wed, 7 Mar 2018 16:36:03 +0000 (16:36 +0000)]
bifrost: Use the pre-built XCI OS images instead of dib

We already have images for all 3 distros which we could simply re-use
for all the XCI VM deployments instead of building new ones everytime
with DIB. The images will be copied to the new VM from the cache
directory if they are available otherwise we will simply download them
during the XCI execution phase.

Change-Id: I2a8391650558511668654c6b54a10db316f867a2
Signed-off-by: Markos Chandras <mchandras@suse.de>
7 years agoMerge "Bump bifrost sha and set UPPER_CONSTRAINTS_FILE"
Markos Chandras [Wed, 7 Mar 2018 17:40:09 +0000 (17:40 +0000)]
Merge "Bump bifrost sha and set UPPER_CONSTRAINTS_FILE"

7 years agoMerge "Remove opnfv vm from known_hosts"
Fatih Degirmenci [Wed, 7 Mar 2018 16:02:20 +0000 (16:02 +0000)]
Merge "Remove opnfv vm from known_hosts"

7 years agoBump bifrost sha and set UPPER_CONSTRAINTS_FILE 39/53239/2
Fatih Degirmenci [Wed, 7 Mar 2018 13:11:17 +0000 (14:11 +0100)]
Bump bifrost sha and set UPPER_CONSTRAINTS_FILE

The lack of UC means that pip is attempting to install libvirt-python 4.1.0,
which is failing on Ubuntu due to
    https://bugs.launchpad.net/openstack-requirements/+bug/1753539.
Currently upper-constraints limits libvirt-python to 4.0.0, which does not
have this issue.

Change-Id: Idc97a0d9928cebafc9167614723236d2584cc93f
Signed-off-by: Fatih Degirmenci <fdegir@gmail.com>
7 years agoxci: Make few of OpenStack-Ansible components optional 93/52993/4
Markos Chandras [Fri, 2 Mar 2018 14:06:53 +0000 (14:06 +0000)]
xci: Make few of OpenStack-Ansible components optional

Ironic and Horizon are not quite needed for a functional deployment
and they are not currently required by functest so we can remove them
from the default deployment.

Change-Id: I171483f7b774951f84687529e98cb519afa48043
Signed-off-by: Markos Chandras <mchandras@suse.de>
7 years agoxci: Bump SHAs to the latest stable/queens 91/52991/1
Fatih Degirmenci [Fri, 2 Mar 2018 13:49:13 +0000 (13:49 +0000)]
xci: Bump SHAs to the latest stable/queens

Rocky is still in early stages of development so bump SHAs to the
latest version for Queens.

Change-Id: I0721e6188889c3548c266c042414397385b85ca2
Signed-off-by: Fatih Degirmenci <fdegir@gmail.com>
7 years agoMerge "Pin kubespray to working sha"
Fatih Degirmenci [Fri, 2 Mar 2018 10:37:13 +0000 (10:37 +0000)]
Merge "Pin kubespray to working sha"

7 years agoPin kubespray to working sha 27/52927/2
Fatih Degirmenci [Thu, 1 Mar 2018 10:02:22 +0000 (10:02 +0000)]
Pin kubespray to working sha

Kubespray works fine on supported distros so it is important we pin
the sha and bump it in a controlled manner since people might be trying
xci/k8 scenario and we want them to have working versions.

Apart from that, scenario specific verify/merge jobs are being created
at the moment and we need a working version to test the CI/testing side
of things.

Change-Id: I8702ed697057386449dc99d8cd14391de18f345a
Signed-off-by: Fatih Degirmenci <fdegir@gmail.com>
7 years agoRemove opnfv vm from known_hosts 49/52949/1
Fatih Degirmenci [Thu, 1 Mar 2018 18:05:17 +0000 (18:05 +0000)]
Remove opnfv vm from known_hosts

Change-Id: I21998a31a26a201d767734d574ade8db7fd50c92
Signed-off-by: Fatih Degirmenci <fdegir@gmail.com>
7 years agoDo not fail the if virsh command fails 43/52943/1
Fatih Degirmenci [Thu, 1 Mar 2018 14:31:03 +0000 (14:31 +0000)]
Do not fail the if virsh command fails

Change-Id: Id9c55b45719399c6c78c0d3d8b97926a2907b7f8
Signed-off-by: Fatih Degirmenci <fdegir@gmail.com>
7 years agoos-odl-bgpvpn scenario support 05/48705/14
Periyasamy Palanisamy [Tue, 12 Dec 2017 09:22:43 +0000 (10:22 +0100)]
os-odl-bgpvpn scenario support

- Integrate XCI with outband od-odl-bgpvpn role
- Install python-neutronclient on opnfv vm for the
  openstack bgpvpn specific cli commands

Change-Id: Ib737349e2b2429bd366881f1e3657daf8c5c30ac
Signed-off-by: Periyasamy Palanisamy <periyasamy.palanisamy@ericsson.com>
7 years agoBe quiet while downloading images 57/52857/3
Fatih Degirmenci [Wed, 28 Feb 2018 18:48:25 +0000 (18:48 +0000)]
Be quiet while downloading images

Change-Id: I8848d5bae22a408482d51a84636d230d25ca22be
Signed-off-by: Fatih Degirmenci <fdegir@gmail.com>
7 years agofunctest: Move run-functest.sh execution out of ansible 17/52817/4
Fatih Degirmenci [Wed, 28 Feb 2018 11:37:52 +0000 (11:37 +0000)]
functest: Move run-functest.sh execution out of ansible

Ansible throws out the log at the end of task execution which
makes it hard to read. This change renames the role to prepare-functest
and then takes the script execution out which will be executed by
releng/jjb/xci/xci-run-functest.sh.

Change-Id: Icf399ce4f04357814ed7109cd11113a9decddc50
Signed-off-by: Fatih Degirmenci <fdegir@gmail.com>
7 years agoEnsure the ssh config files are created per distro 61/52861/2
Fatih Degirmenci [Wed, 28 Feb 2018 18:25:14 +0000 (18:25 +0000)]
Ensure the ssh config files are created per distro

If 2 jobs for different distros start on the same host, the
generated xci-vm-config files might be rewritten by both jobs
causing trouble for the other. This change creates ssh config
per distro to prevent potential issues.

Change-Id: If6c0a86fd51bf3ba920e9206849ed1537894c7e1
Signed-off-by: Fatih Degirmenci <fdegir@gmail.com>
7 years agoFix the proxy command and hostname for opnfv vm in ssh config 37/52837/1
Fatih Degirmenci [Wed, 28 Feb 2018 15:11:38 +0000 (15:11 +0000)]
Fix the proxy command and hostname for opnfv vm in ssh config

Change-Id: Ic036a4f5ef8b24b88154f9314957339d3954839a
Signed-off-by: Fatih Degirmenci <fdegir@gmail.com>
7 years agoxci: script: start-new-vm: Switch to using 'curl' instead of 'wget' 71/52771/2
Markos Chandras [Tue, 27 Feb 2018 16:13:04 +0000 (16:13 +0000)]
xci: script: start-new-vm: Switch to using 'curl' instead of 'wget'

curl supports the 'retry' argument to handle all sorts of connection
problems so we can use it to retry if we encounter a broken connection.

Change-Id: I3c8afd2be36ee36c5477f05495704bbbee5b9757
Signed-off-by: Markos Chandras <mchandras@suse.de>
7 years agoxci: scripts: start-new-vm: Mask the pgrep exit code 35/52735/1
Markos Chandras [Tue, 27 Feb 2018 12:10:17 +0000 (12:10 +0000)]
xci: scripts: start-new-vm: Mask the pgrep exit code

pgrep will exit with non-zero exit code if it didn't find a matching
process. This breaks the script since we set 'errexit' so we need to
mask it by simply piping it to a 'cat' command.

Change-Id: I80dcf06b597a769242bd59d628bbd8e09f0f199e
Signed-off-by: Markos Chandras <mchandras@suse.de>
7 years agoMerge "xci: scripts: vm: start-new-vm.sh: Re-arrange debug messages"
Markos Chandras [Tue, 27 Feb 2018 10:34:17 +0000 (10:34 +0000)]
Merge "xci: scripts: vm: start-new-vm.sh: Re-arrange debug messages"

7 years agoMerge "xci: config: env-vars: Allow git urls overrides"
Markos Chandras [Mon, 26 Feb 2018 21:59:27 +0000 (21:59 +0000)]
Merge "xci: config: env-vars: Allow git urls overrides"

7 years agoRename var XCI_LOOP to CI_LOOP to align with Functest 67/52167/2
Fatih Degirmenci [Wed, 14 Feb 2018 20:25:31 +0000 (21:25 +0100)]
Rename var XCI_LOOP to CI_LOOP to align with Functest

Change-Id: I1d58f55a1bda258cc3afbfb81e2dd5a1c8e792a1
Signed-off-by: Fatih Degirmenci <fdegir@gmail.com>
7 years agoMerge changes I15f5d41f,I7c7125ac
Fatih Degirmenci [Mon, 26 Feb 2018 10:34:39 +0000 (10:34 +0000)]
Merge changes I15f5d41f,I7c7125ac

* changes:
  Export CI_LOOP as expected by Functest
  Export an new var related to Energy

7 years agoMerge "XCI: k8s: Add support for CentOS distro"
Markos Chandras [Mon, 26 Feb 2018 10:28:22 +0000 (10:28 +0000)]
Merge "XCI: k8s: Add support for CentOS distro"

7 years agoMerge "xci: osa: configure-opnvhost: Set time in the opnfv node"
Markos Chandras [Mon, 26 Feb 2018 09:41:48 +0000 (09:41 +0000)]
Merge "xci: osa: configure-opnvhost: Set time in the opnfv node"

7 years agoMerge "xci: Switch default CPU model to 'host-model'"
Markos Chandras [Mon, 26 Feb 2018 09:41:40 +0000 (09:41 +0000)]
Merge "xci: Switch default CPU model to 'host-model'"

7 years agoExport CI_LOOP as expected by Functest 85/51985/4
Cédric Ollivier [Sat, 10 Feb 2018 12:04:00 +0000 (13:04 +0100)]
Export CI_LOOP as expected by Functest

CI_LOOP is hardcoded to daily (the common default value) [1].

[1] https://gerrit.opnfv.org/gerrit/#/c/51981/

Change-Id: I15f5d41f7f10a5c8fddcc4a4d303552ef45c5fb2
Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com>
7 years agoExport an new var related to Energy 47/51947/4
Cédric Ollivier [Fri, 9 Feb 2018 06:34:31 +0000 (07:34 +0100)]
Export an new var related to Energy

It conforms with "Unlink Energy from functest utils and constants":
https://gerrit.opnfv.org/gerrit/#/c/51943/

Depends-On: Iecd5d49b4d4c961c9dc51e43e54df1fcd4027266
Change-Id: I7c7125ac2fee9a2e8f24dcf060bdaab1b39ae552
Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com>
7 years agoxci: osa: configure-opnvhost: Set time in the opnfv node 39/52539/1
Markos Chandras [Fri, 23 Feb 2018 16:41:39 +0000 (16:41 +0000)]
xci: osa: configure-opnvhost: Set time in the opnfv node

Set the time properly in the opnfv node like we do for the target hosts

Change-Id: I97d9f875dbb37db3cedd87e5915bc5b5f9a7a0ad
Signed-off-by: Markos Chandras <mchandras@suse.de>
7 years agoxci: scripts: start-new-vm.sh: Disable nested virtualization in clean VM 27/52527/1
Markos Chandras [Fri, 23 Feb 2018 14:00:41 +0000 (14:00 +0000)]
xci: scripts: start-new-vm.sh: Disable nested virtualization in clean VM

When using the clean VM for the tests, we will end up with 3 levels of
virtualization when functest is executed (1st level = clean vm, 2nd
level = compute node, 3rd level = functest VMs). This makes the functest
VM terribly slow leading to all sorts of random failures. It appears
that KVM can't handle this case, so we need to switch to the QEMU
interpreter instead which is slower but functional. This only affects
the Jenkins jobs, so deployments on baremetal will still use 2 levels of
nested KVM virtualization which should work fine.

Change-Id: If274129fbf347526982ac4cf577d216173eb4d1b
Signed-off-by: Markos Chandras <mchandras@suse.de>
7 years agoxci: scripts: start-new-vm: Set pipefail option 25/52525/1
Markos Chandras [Fri, 23 Feb 2018 13:48:33 +0000 (13:48 +0000)]
xci: scripts: start-new-vm: Set pipefail option

In commit I75a8cb8c05957bb205e63210d6cafaf54d989f32 the 'ts' utility
was added in order to print timestamps for deployment. However, this
breaks the exit code since 'pipefail' was not set so every job was
returning 'success'.

Change-Id: Ia5f47ea96a4a5be9ed0664f5c7100accc30cde51
Signed-off-by: Markos Chandras <mchandras@suse.de>
7 years agoxci: Switch default CPU model to 'host-model' 07/52507/1
Markos Chandras [Fri, 23 Feb 2018 08:50:03 +0000 (08:50 +0000)]
xci: Switch default CPU model to 'host-model'

From upstream docs:

'The host-model mode is essentially a shortcut to copying host CPU
definition from capabilities XML into domain XML. Since the CPU
definition is copied just before starting a domain, exactly the
same XML can be used on different hosts while still providing
the best guest CPU each host supports'

It's probably safer to use that instead of 'host-passthrough' so
we can get a CPU (both for main VM and the nested ones) that libvirt
understands. Moreover, it's important to present a CPU that the
guest OS understands as well.

Change-Id: I25a8ff0e8635df9804c793d184f048cc86059ce0
Signed-off-by: Markos Chandras <mchandras@suse.de>
7 years agoXCI: k8s: Add support for CentOS distro 07/51607/10
wutianwei [Sat, 3 Feb 2018 08:53:28 +0000 (16:53 +0800)]
XCI: k8s: Add support for CentOS distro

Kubespray already supports the CentOS distribution so make the
necessary changes to allow it to work in XCI.

Change-Id: I3cf1db055a5fd563b107b46456bc3e18eeafb3ab
Co-authored-by: Markos Chandras <mchandras@suse.de>
Signed-off-by: wutianwei <wutianwei1@huawei.com>
7 years agoMerge "xci: osa: Do not wipe cinder volumes"
Fatih Degirmenci [Thu, 22 Feb 2018 21:38:04 +0000 (21:38 +0000)]
Merge "xci: osa: Do not wipe cinder volumes"

7 years agoUpdate the .gitignore in roles 63/52463/1
Manuel Buil [Thu, 22 Feb 2018 17:38:18 +0000 (18:38 +0100)]
Update the .gitignore in roles

THe prepare-functest role changed the name but .gitignore is still
using the old name

Change-Id: I67e962704a62756663abdc721fb8b9a9ac8648a2
Signed-off-by: Manuel Buil <mbuil@suse.com>
7 years agoxci: config: env-vars: Allow git urls overrides 47/52447/1
Markos Chandras [Thu, 22 Feb 2018 11:02:29 +0000 (11:02 +0000)]
xci: config: env-vars: Allow git urls overrides

It's useful to be able to pick alternative git repositories
for the deployment. This facilitates testing in-flight features
or simply save some bandwidth by keeping internal mirrors.

Change-Id: I3eb2e48da1e91f6a52bb3ba14c22f0902c6cd777
Signed-off-by: Markos Chandras <mchandras@suse.de>
7 years agoxci: osa: Do not wipe cinder volumes 19/52419/1
Markos Chandras [Wed, 21 Feb 2018 18:18:50 +0000 (18:18 +0000)]
xci: osa: Do not wipe cinder volumes

When a volume is removed, cinder will fill the entire disk with 0s. This
can slow down the volume removal process. Since we do not care what
happens with the volume after it's being removed, we don't need to
wipe it at all.

Change-Id: I5ef1b01a18cdf2694252b450ca4f1c6a37090f71
Link: https://docs.openstack.org/cinder/latest/sample_config.html
Signed-off-by: Markos Chandras <mchandras@suse.de>
7 years agoxci: roles: configure-network: Determine host NIC from Ansible facts 81/52181/4
Markos Chandras [Thu, 15 Feb 2018 08:57:47 +0000 (08:57 +0000)]
xci: roles: configure-network: Determine host NIC from Ansible facts

Hardcoding the interface as a variable is very fragile since it varies
from host to host. We could use the Ansible facts to find out the
interface name and then use that to configure all the VLANs and
networking.

Change-Id: Ie7e2409d638625b9bede23b6c1fe33dc36f81840
Signed-off-by: Markos Chandras <mchandras@suse.de>
7 years agoCorrect the BIFROST_IRONIC_VERSION variable 97/52197/2
Dimitrios Markou [Thu, 15 Feb 2018 16:15:41 +0000 (18:15 +0200)]
Correct the BIFROST_IRONIC_VERSION variable

By mistake the BIFROST_IRONIC_VERSION variable was
written BIFROST_IRONIC_CLIENT_VERSION

Change-Id: Ie35a4938a2fb38c633dd149c1d18f1da20a4e82a
Signed-off-by: Dimitrios Markou <mardim@intracom-telecom.com>
7 years agoMerge "xci: xci-deploy.sh: Calculate and print the total deployment time"
Markos Chandras [Wed, 21 Feb 2018 08:51:50 +0000 (08:51 +0000)]
Merge "xci: xci-deploy.sh: Calculate and print the total deployment time"

7 years agoMerge "xci: playbooks: run-functest: Collect functest results"
Markos Chandras [Wed, 21 Feb 2018 08:38:41 +0000 (08:38 +0000)]
Merge "xci: playbooks: run-functest: Collect functest results"

7 years agoxci: playbooks: run-functest: Collect functest results 65/52365/1
Markos Chandras [Tue, 20 Feb 2018 15:55:24 +0000 (15:55 +0000)]
xci: playbooks: run-functest: Collect functest results

Add a new volume to the docker container which will hold the results
from the functest run.

Change-Id: I70541a8337c9198a97304312adfab74d4dd06b70
Signed-off-by: Markos Chandras <mchandras@suse.de>
7 years agoxci: Switch VM disk cache to 'unsafe' and use 'iothreads' for I/O 17/52317/3
Markos Chandras [Mon, 19 Feb 2018 17:51:42 +0000 (17:51 +0000)]
xci: Switch VM disk cache to 'unsafe' and use 'iothreads' for I/O

According to the docs[1]

"writeback: This mode causes the hypervisor to interact with the disk
image file or block device with neither O_DSYNC nor O_DIRECT semantics.
The host page cache is used and writes are reported to the guest as
completed when they are placed in the host page cache. The normal page
cache management will handle commitment to the storage device.
Additionally, the guest's virtual storage adapter is informed of the
writeback cache, so the guest would be expected to send down flush
commands as needed to manage data integrity. Analogous to a raid
controller with RAM cache."

and

"writeback: This mode informs the guest of the presence of a write
cache, and relies on the guest to send flush commands as needed to
maintain data integrity within its disk image. This is a common
storage design which is completely accounted for within modern file
systems. This mode exposes the guest to data loss in the unlikely case
of a host failure, because there is a window of time between the time
a write is reported as completed, and that write being committed to the
storage device."

"unsafe: This mode is similar to writeback caching except for the
following: the guest flush commands are ignored, nullifying the data
integrity control of these flush commands, and resulting in a higher
risk of data loss because of host failure. The name “unsafe” should
serve as a warning that there is a much higher potential for data
loss because of a host failure than with the other modes. As the
guest terminates, the cached data is flushed at that time."

It's beneficial to use the host page cache to cache I/O from the guest
instead of waiting for data to reach the actual disk device. We do not
normally care about data integrity so data loss is not a problem.

Moreover, we drop the cache configuration from the flavor files since
it's independent of the flavor that's being deployed.

[1] https://www.suse.com/documentation/sles-12/singlehtml/book_virt/book_virt.html#cha.cachemodes

Change-Id: I118ffdf84b1be672185b3eff60fe5d0b5f1a590d
Signed-off-by: Markos Chandras <mchandras@suse.de>
7 years agoxci: scripts: vm: start-new-vm.sh: Re-arrange debug messages 31/52331/2
Markos Chandras [Mon, 19 Feb 2018 20:28:31 +0000 (20:28 +0000)]
xci: scripts: vm: start-new-vm.sh: Re-arrange debug messages

This also improves (again!) the check for parallel packages managers
to print some useful messages for debugging.

Change-Id: I7756db80aa3ed42cd3ef37293f7116b5a9c150c1
Signed-off-by: Markos Chandras <mchandras@suse.de>
7 years agoxci: xci-deploy.sh: Calculate and print the total deployment time 19/52319/3
Markos Chandras [Mon, 19 Feb 2018 18:24:58 +0000 (18:24 +0000)]
xci: xci-deploy.sh: Calculate and print the total deployment time

It's useful to know how XCI performs in terms of duration time so
use the bash $SECONDS variable to calculate the total amount of time
it takes for a full XCI deployment. Moreover, use the 'ts' command to
print a timestamp for every command executed. This will help developers
identify tasks which take a lot of time to complete and possibly
optimize them.

Change-Id: I75a8cb8c05957bb205e63210d6cafaf54d989f32
Signed-off-by: Markos Chandras <mchandras@suse.de>
7 years agobifrost: scripts: bifrost-provision.sh: Set defaults for Ironic variables 91/52291/1
Markos Chandras [Mon, 19 Feb 2018 10:29:48 +0000 (10:29 +0000)]
bifrost: scripts: bifrost-provision.sh: Set defaults for Ironic variables

When running the bifrost jobs for the OPNFV 3rd Party CI, the Ironic
variables are not defined and we get the following error:

./scripts/bifrost-provision.sh: line 112: BIFROST_IRONIC_INSPECTOR_VERSION: unbound variable

As such, we need to provide reasonable defaults when we are running this
script outside of XCI.

Change-Id: I9cc3ae1b70494637a85558b9cae99fc1eeaebc74
Signed-off-by: Markos Chandras <mchandras@suse.de>
7 years agoxci: Bump OpenStack Ansbile SHAs 67/50367/8
Markos Chandras [Tue, 13 Feb 2018 21:42:05 +0000 (21:42 +0000)]
xci: Bump OpenStack Ansbile SHAs

* Bump up upstream SHAs
* With these upstream SHAs, OSA installs neutron-agent container on
controller node which would require eth12 interface on controller for
establishing vlan provider networks. so adding eth12 interface and
linking it with br-vlan over br-vlan-veth link.

Change-Id: Iaf7cbe6e41dcfd15ec6527c5a50701f2d05eaad8
Signed-off-by: Markos Chandras <mchandras@suse.de>
Signed-off-by: Periyasamy Palanisamy <periyasamy.palanisamy@ericsson.com>
7 years agobifrost: Add ability to pin Ironic-{,client,inspector,inspector-client} SHAs 91/52091/5
Markos Chandras [Tue, 13 Feb 2018 10:11:16 +0000 (10:11 +0000)]
bifrost: Add ability to pin Ironic-{,client,inspector,inspector-client} SHAs

We should pin the SHAs for Ironic components as part of the regular
bifrost bump to ensure maximum long term stability. This also bumps
the bifrost SHA to the latest available one.

Change-Id: Ia66d8ab6566db58e2ddab5134eb8445bd84d2a8f
Signed-off-by: Markos Chandras <mchandras@suse.de>
7 years agobifrost: Always deploy Ironic from master 87/52087/3
Markos Chandras [Tue, 13 Feb 2018 09:14:41 +0000 (09:14 +0000)]
bifrost: Always deploy Ironic from master

The Ironic components are currently being installed from PIP but we
should install them from the git repo instead so we can always try
the latest code from master or the pinned version when such
functionality is implemented.

Change-Id: I0138c54befe52ed9df8bf617b78e063df3cf8750
Signed-off-by: Markos Chandras <mchandras@suse.de>
7 years agoMerge "xci: scripts: vm: Use LVM backend if available"
Markos Chandras [Wed, 7 Feb 2018 07:41:25 +0000 (07:41 +0000)]
Merge "xci: scripts: vm: Use LVM backend if available"

7 years agoxci: scripts: vm: Use LVM backend if available 49/51449/2
Markos Chandras [Thu, 1 Feb 2018 09:49:42 +0000 (09:49 +0000)]
xci: scripts: vm: Use LVM backend if available

The CI nodes come with a big secondary mechanical disk which can be
attached directly to the clean VM. As such, we split the disk into one
logical volume per distribution and flush the qcow2 image to it before
attaching it to the VM. If the XCI volume group is not available, then
we revert back to using a file-based storage backend. Finally, we hide
stdout/stderr from the package installation process to minimize the
script output.

Change-Id: I11ea82899c411f8a4168e5f23cbbd8187cc891df
Signed-off-by: Markos Chandras <mchandras@suse.de>
7 years agobifrost: Bump bifrost sha1s to latest on master 67/51667/2
Fatih Degirmenci [Mon, 5 Feb 2018 12:18:22 +0000 (13:18 +0100)]
bifrost: Bump bifrost sha1s to latest on master

This change brings in the fix for policy.json removal.

https://review.openstack.org/#/c/536349/

Change-Id: Ib18a99502c0ce61278e13f25a01622e073749d14
Signed-off-by: Fatih Degirmenci <fdegir@gmail.com>
7 years agoRename Functest creds 01/51501/2
Cédric Ollivier [Fri, 2 Feb 2018 17:03:57 +0000 (18:03 +0100)]
Rename Functest creds

It follows the change "Rename a common credential file for OS and
K8S" which stops forcing OpenStack creds.

[1] https://gerrit.opnfv.org/gerrit/#/c/51283/

Change-Id: Ic83a2e696c9ea8821e29e6b3f4e69db25c528a0d
Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com>
7 years agoMerge "Adapt to change in functest"
Fatih Degirmenci [Thu, 1 Feb 2018 16:34:20 +0000 (16:34 +0000)]
Merge "Adapt to change in functest"

7 years agoMerge "Enable deltarpm"
Markos Chandras [Thu, 1 Feb 2018 15:07:21 +0000 (15:07 +0000)]
Merge "Enable deltarpm"

7 years agoMerge "xci: scripts: vm: Install additional packages to clean VM"
Markos Chandras [Thu, 1 Feb 2018 09:53:51 +0000 (09:53 +0000)]
Merge "xci: scripts: vm: Install additional packages to clean VM"

7 years agoxci: scripts: vm: Install additional packages to clean VM 61/51361/2
Markos Chandras [Tue, 30 Jan 2018 16:59:16 +0000 (16:59 +0000)]
xci: scripts: vm: Install additional packages to clean VM

Install some additional packages to the clean VM which can be useful
during debugging. Moreover, we move the common distribution packages
into a variable in order to simplify the code a little bit.

Change-Id: I0405820900a15fec730a2bbfc95a1d1f3485bf0f
Signed-off-by: Markos Chandras <mchandras@suse.de>
7 years agoMerge "deploy kubernetes in XCI"
Fatih Degirmenci [Wed, 31 Jan 2018 22:04:46 +0000 (22:04 +0000)]
Merge "deploy kubernetes in XCI"

7 years agodeploy kubernetes in XCI 13/50213/24
wutianwei [Mon, 8 Jan 2018 09:17:17 +0000 (17:17 +0800)]
deploy kubernetes in XCI

This commit introduces kubespray into XCI.
k8s install currently assumes k8s install
and OpenStack install cannot coexist.
If XCI_INSTALLER is set to "kubespray" and
DEPLOY_SCENARIO is set to "k8-nosdn-nofeature"
the xci-deploy.sh would install kubernetes instead of OpenStack.
The version of kubernetes is beta release v1.9.0 currently
according to the master of kubespray
it only support the ubuntu now.
Opensuse and centos still need to develop and test.

This patch create the directory xci/installer/kubespray,
the related files of kubespray would be placed to it.
The xci/installer/$installer/playbooks/configure-localhost.yml was moved
to xci/playbooks/configure-localhost.yml as a common yaml file.

You can modify some parameters according your need
in xci/installer/kubespray/files/k8s-cluster.yml to deploy cluster.
When deploying kubernetes,
it would download the kubespray to releng-xci/.cache/repos/kubespray.
If your flavor is Ha, it will download haproxy_server and keepalived
to xci/playbook/roles, which setup haproxy service for kubernetes.

Change-Id: I24d521a735d7ee85fbe5af8c4def65f37586b843
Signed-off-by: wutianwei <wutianwei1@huawei.com>
7 years agoEnable deltarpm 37/51337/2
Victor Morales [Mon, 29 Jan 2018 18:49:25 +0000 (10:49 -0800)]
Enable deltarpm

DeltaRPM allows to install only the difference between an old and new
version of an RPM, as consequence this reduces the network
consumption in CentOS distros.

Change-Id: I317fbac44ae5fb6d5293443e755e2b7ddd08c66e
Signed-off-by: Victor Morales <victor.morales@intel.com>
7 years agoAdapt to change in functest 11/51311/1
Manuel Buil [Mon, 29 Jan 2018 15:23:38 +0000 (16:23 +0100)]
Adapt to change in functest

Functest requires to read the variable TEST_DB_URL from the env. variables:

https://gerrit.opnfv.org/gerrit/#/c/49757/

Change-Id: Idbfc2df989f5b2a8e6ddd2d9a9a70526dd9bf1f4
Signed-off-by: Manuel Buil <mbuil@suse.com>
7 years agoMerge "correct the lookup logic for scenario's xci_overrides"
Markos Chandras [Mon, 29 Jan 2018 10:13:07 +0000 (10:13 +0000)]
Merge "correct the lookup logic for scenario's xci_overrides"

7 years agoMerge "xci: Record deployment scenario when collecting XCI info"
Markos Chandras [Mon, 29 Jan 2018 10:12:59 +0000 (10:12 +0000)]
Merge "xci: Record deployment scenario when collecting XCI info"

7 years agoxci: Record deployment scenario when collecting XCI info 03/51203/1
Markos Chandras [Fri, 26 Jan 2018 15:09:01 +0000 (15:09 +0000)]
xci: Record deployment scenario when collecting XCI info

Add the DEPLOY_SCENARIO variable to the list of information we
collect when deployment fails.

Change-Id: I7081b80feea1d3d2ff83e54bd5e614b4ea98964d
Signed-off-by: Markos Chandras <mchandras@suse.de>
7 years agoxci: run-functest: Add required functest packages 99/51199/1
Markos Chandras [Fri, 26 Jan 2018 14:05:51 +0000 (14:05 +0000)]
xci: run-functest: Add required functest packages

The package requirements are the same across distros so
we simply hardcode them in the task. Fixes the following problem:

fatal: [opnfv]: FAILED! => {"changed": true, "cmd":
"/root/run-functest.sh", "delta": "0:00:09.150226", "end": "2018-01-26
14:01:18.758704", "failed": true, "rc": 125, "start": "2018-01-26 1
4:01:09.608478", "stderr": "/root/run-functest.sh: line 14: wget:
command not found

Change-Id: Ib07acac18f8ece1111ee0706766f32005d0ac1da
Signed-off-by: Markos Chandras <mchandras@suse.de>
7 years agocorrect the lookup logic for scenario's xci_overrides 33/51133/2
Periyasamy Palanisamy [Thu, 25 Jan 2018 16:44:06 +0000 (17:44 +0100)]
correct the lookup logic for scenario's xci_overrides

Previously xci-deploy.sh looks up the xci_overrides files under
$XCI_SCENARIOS_CACHE/${DEPLOY_SCENARIO} directory, but actually
xci_overrides file resides somewhere in the nested directory level
in both inband/outband scenarios. Hence the fix is done by using
the find command.

Change-Id: Icb507471e368f56290ef91d555673830b598e204
Signed-off-by: Periyasamy Palanisamy <periyasamy.palanisamy@ericsson.com>
7 years agoxci: Integrate functest 53/51053/1
Fatih Degirmenci [Wed, 24 Jan 2018 15:08:57 +0000 (16:08 +0100)]
xci: Integrate functest

This change integrates functest in most easiest and messy way to
get it up and running to bring functest into CI. The reason for
this is that there are strange failures during functest healthcheck
and it is important to look into those rather than beautifying how
functest is integrated at this phase.

Change-Id: I42e993be4aa15da022fa1e0069338447780f177e
Signed-off-by: Fatih Degirmenci <fdegir@gmail.com>
7 years agoMerge "xci: scripts: vm: Retry when timer expires"
Markos Chandras [Tue, 23 Jan 2018 10:32:08 +0000 (10:32 +0000)]
Merge "xci: scripts: vm: Retry when timer expires"

7 years agoxci: scripts: vm: Retry when timer expires 85/50985/1
Markos Chandras [Tue, 23 Jan 2018 10:25:12 +0000 (10:25 +0000)]
xci: scripts: vm: Retry when timer expires

We should look again for active package managers when the timer expires
to avoid locking issues.

Change-Id: I88f0299a87befce17d11ba7581f0330979a25345
Signed-off-by: Markos Chandras <mchandras@suse.de>
7 years agoMerge "xci: xci-deploy.sh: Drop warning for CentOS"
Markos Chandras [Mon, 22 Jan 2018 12:17:09 +0000 (12:17 +0000)]
Merge "xci: xci-deploy.sh: Drop warning for CentOS"

7 years agoMerge "xci: get-opnfv-scenario-requirements.yml: Check if facts are set"
Markos Chandras [Mon, 22 Jan 2018 12:17:04 +0000 (12:17 +0000)]
Merge "xci: get-opnfv-scenario-requirements.yml: Check if facts are set"

7 years agoxci: get-opnfv-scenario-requirements.yml: Check if facts are set 27/50827/2
Markos Chandras [Fri, 19 Jan 2018 09:38:13 +0000 (09:38 +0000)]
xci: get-opnfv-scenario-requirements.yml: Check if facts are set

When the user selects an invalid combination then some facts may not be
set so the deployment may fail in a crypt way like in the following case

fatal: [localhost]: FAILED! => {"failed": true, "msg": "The conditional
check 'deploy_scenario_installer' failed. The error was: error while
evaluating conditional (deploy_scenario_installer):
'deploy_scenario_installer' is undefined\n\nThe error appears to have been in
'/home/opnfv/releng-xci/xci/playbooks/get-opnfv-scenario-requirements.yml':
line 114, column 11, but may\nbe elsewhere in the file depending on the
exact syntax problem.\n\nThe offending line appears to be:\n\n
when: item.installer == XCI_INSTALLER\n        - set_fact:\n
          ^
here\n"}

Change-Id: I931376d99bb178b15c4a9a71d47b48b01b858e4e
Signed-off-by: Markos Chandras <mchandras@suse.de>
7 years agoxci: xci-deploy.sh: Drop warning for CentOS 31/50831/1
Markos Chandras [Fri, 19 Jan 2018 10:11:14 +0000 (10:11 +0000)]
xci: xci-deploy.sh: Drop warning for CentOS

The basic support for CentOS has been merged and it passes the CI
so drop the warning.

Change-Id: I70e6ba0fcd851d2eb9bfcb24d185276ed68c1005
Signed-off-by: Markos Chandras <mchandras@suse.de>
7 years agoEnable running on CentOS/RedHat family 97/50197/9
Tapio Tallgren [Mon, 8 Jan 2018 06:48:35 +0000 (08:48 +0200)]
Enable running on CentOS/RedHat family

Changes that make it possible to run XCI on CentOS:

- Remove the check on xci-deploy.sh script that exists on RedHat family
(including CentOS) and making the error into a warning.
- Add centos to a distro in opnfv-scenario-requirements

Change-Id: Ief6f1e50d8c7c9d8787641827e57682a6e0549e4
Signed-off-by: Tapio Tallgren <tapio.tallgren@nokia.com>
7 years agoCreate CentOS networking configuration 31/49531/12
Tapio Tallgren [Fri, 1 Dec 2017 11:53:29 +0000 (13:53 +0200)]
Create CentOS networking configuration

Change-Id: If8c0de44c313fdc22b1c7443b12d42769035c5b0
Signed-off-by: Tapio Tallgren <tapio.tallgren@nokia.com>
7 years agoRename centos.yml to redhat.yml in configure-nfs/vars 27/50627/1
Tapio Tallgren [Thu, 4 Jan 2018 15:54:51 +0000 (17:54 +0200)]
Rename centos.yml to redhat.yml in configure-nfs/vars

'redhat' as a ansible_os_family covers both the RedHat distros and
CentOS.

Change-Id: I2ab56024d2c0f1f40a014a236cfd94ef38daad04
Signed-off-by: Tapio Tallgren <tapio.tallgren@nokia.com>
7 years agoBump OSA-galera_server SHA to fix a CentOS issue 25/50625/1
Tapio Tallgren [Fri, 5 Jan 2018 07:43:41 +0000 (09:43 +0200)]
Bump OSA-galera_server SHA to fix a CentOS issue

Galera installation in CentOS fails because the mysqld.sock file is in a
different location, despite what the my.cnf configuration tells. This
has been worked around in upstream OSA-galera_server:

https://git.openstack.org/cgit/openstack/openstack-ansible-galera_server/
commit/?id=f2bfbd38513ac8d61ba4e02a4d5ef6cbbca259cc

Change-Id: Ied11571189eff8cbab0f1990a7599b51cad9ea2b
Signed-off-by: Tapio Tallgren <tapio.tallgren@nokia.com>
7 years agoxci: Rename 'nfvi' to 'installer' 25/50225/4
Markos Chandras [Mon, 8 Jan 2018 10:52:57 +0000 (10:52 +0000)]
xci: Rename 'nfvi' to 'installer'

Using 'installer' to describe the tool that will deploy the foundations
of a particular XCI scenario is more appropriate than NFVI which
normally describes both the physical and virtual resources needed by
an NFV deployment.

Change-Id: Ib8b1aac58673bf705ce2ff053574fd10cb390d71
Signed-off-by: Markos Chandras <mchandras@suse.de>
7 years agoxci: nfvi: OSA: Drop SUSE workaround 23/50223/1
Markos Chandras [Mon, 8 Jan 2018 10:45:41 +0000 (10:45 +0000)]
xci: nfvi: OSA: Drop SUSE workaround

The upstream patchset has been merged, so drop the SUSE
specific workaround when obtaining the status of the galera
cluster.

Link: https://review.openstack.org/#/c/508154/
Change-Id: Ic990e6939fb794a532caf8af2759969198fa5d3a
Signed-off-by: Markos Chandras <mchandras@suse.de>
7 years agoxci: Record distribution and NFVI information for scenarios 59/49559/3
Markos Chandras [Fri, 22 Dec 2017 10:36:27 +0000 (10:36 +0000)]
xci: Record distribution and NFVI information for scenarios

A scenario may only support certain NFVIs or distributions so we
need a mapping with all these things so we know what can be tested
and where.

Change-Id: Ibf1b640b762085f58627e05e1d2ca13edfc4d716
Signed-off-by: Markos Chandras <mchandras@suse.de>
7 years agoxci: Decouple VM distribution from host OS 25/49725/2
Markos Chandras [Thu, 28 Dec 2017 12:00:08 +0000 (12:00 +0000)]
xci: Decouple VM distribution from host OS

Introduce a new XCI_DISTRO variable to select the distribution to deploy
on the VMs in order to make deployments more flexible and decouple the
VM OS selection from the host one. The default value for this new
variable is to match the host OS but users can always set it to one
of the supported distributions. We can now simply execute the
install-ansible.sh script instead of sourcing it in order to keep
the environment as clean as possible.

Change-Id: Ia74eb0422f983848cde0fb7b220ea1035dfa78bc
Signed-off-by: Markos Chandras <mchandras@suse.de>
7 years agoxci: nfvi: OSA: Remove duplicate xci-deploy.sh script 23/49723/2
Markos Chandras [Thu, 28 Dec 2017 11:45:22 +0000 (11:45 +0000)]
xci: nfvi: OSA: Remove duplicate xci-deploy.sh script

It was committed by accident in c74cfd33fc3c ("xci: OSA: Move all the
OSA specific playbooks to the NFVI directory") so drop it.

Change-Id: I5de91f0aad750a9cb723a46baa63e75beb3180de
Signed-off-by: Markos Chandras <mchandras@suse.de>
7 years agoMerge "[XCI] move osa files into xci/nfvi/osa/files"
Markos Chandras [Wed, 3 Jan 2018 09:50:55 +0000 (09:50 +0000)]
Merge "[XCI] move osa files into xci/nfvi/osa/files"

7 years ago[XCI] move osa files into xci/nfvi/osa/files 57/49857/2
wutianwei [Tue, 2 Jan 2018 08:49:48 +0000 (16:49 +0800)]
[XCI] move osa files into xci/nfvi/osa/files

we maybe introduce other NFVI in the future in XCI.
it is necessary to put the nfvi files to corresponding directory xci/nfvi/$NFVI/files,
otherwise the files directory will be confused.

Change-Id: Iea98167ff0bc8d338a94fe1c064ac0ab396c53d3
Signed-off-by: wutianwei <wutianwei1@huawei.com>
7 years agoxci: scenarios: Fix location when copying scenarios to roles 55/49555/5
Markos Chandras [Fri, 22 Dec 2017 14:05:57 +0000 (14:05 +0000)]
xci: scenarios: Fix location when copying scenarios to roles

The location where we were putting the scenarios was wrong as it was
placing them in xci/playbooks/roles/$scenario/$scenario so in the end
the Ansible couldn't find the role we were looking for. As a result,
the role was never executed. Moreover, we can use the synchronize
module instead of the shell which should be both faster and safer.

Change-Id: I3d996652bb6a62d23e259da5674d94596dad4d8d
Signed-off-by: Markos Chandras <mchandras@suse.de>
7 years agoMerge "xci: playbooks: Copy local changes to scenarios"
Markos Chandras [Fri, 22 Dec 2017 20:37:33 +0000 (20:37 +0000)]
Merge "xci: playbooks: Copy local changes to scenarios"

7 years agoMerge "xci: nfvi: OSA: Set 'pipefail' when SSHing on the OPNFV host"
Markos Chandras [Fri, 22 Dec 2017 10:11:05 +0000 (10:11 +0000)]
Merge "xci: nfvi: OSA: Set 'pipefail' when SSHing on the OPNFV host"

7 years agoMerge "bifrost: Bump bifrost SHA"
Markos Chandras [Fri, 22 Dec 2017 10:10:49 +0000 (10:10 +0000)]
Merge "bifrost: Bump bifrost SHA"

7 years agoxci: playbooks: Copy local changes to scenarios 57/49357/3
Markos Chandras [Wed, 20 Dec 2017 11:38:39 +0000 (11:38 +0000)]
xci: playbooks: Copy local changes to scenarios

Make sure that any local changes to scenarios are being propagated to
the checkouts. This should only happen when we are testing the 'master'
branch of the scenario since it may be desirable to test a specific SHA
in which case we shouldn't modify the checkout code.

Change-Id: I4197f09a3e4d5a54c86905bc556b06e08948fbc2
Signed-off-by: Markos Chandras <mchandras@suse.de>
7 years agoMerge "Bump sha on openstack-ansible-lxc_hosts"
Markos Chandras [Fri, 22 Dec 2017 08:47:57 +0000 (08:47 +0000)]
Merge "Bump sha on openstack-ansible-lxc_hosts"

7 years agoBump sha on openstack-ansible-lxc_hosts 99/49499/1
Tapio Tallgren [Thu, 21 Dec 2017 18:36:50 +0000 (20:36 +0200)]
Bump sha on openstack-ansible-lxc_hosts

The commit 6b529de0315fe6cd12f6e78c00a5f2f2d3a01e28 in
openstack-ansible-lxc_hosts reverts an earlier change that introduced
systemd-networkd to lxc containers that run OpenStack services. This
prevents the containers from being stopped (ie, lxc-stop fails until it
times out), since systemd-networkd restarts. lxc-stop sends the SIGRT+3
message to the container which the container interprets as "halt".
systemd-networkd conflicts with shutdown, so when the system tries to
enter halt, systemd-networkd gets started again. As a result, the
container does not shut down cleanly.

This patch uses a version of openstack-ansible-lxc_hosts that does not
use systemd-networkd in the containers.

Change-Id: Ie85d2117ce2e6e8afa87810d690eab78e3b3be3d
Signed-off-by: Tapio Tallgren <tapio.tallgren@nokia.com>
7 years agoxci: nfvi: OSA: Set 'pipefail' when SSHing on the OPNFV host 83/49483/1
Markos Chandras [Thu, 21 Dec 2017 15:12:05 +0000 (15:12 +0000)]
xci: nfvi: OSA: Set 'pipefail' when SSHing on the OPNFV host

We need to set the 'pipefail' option so if an SSH command fails we stop
the deployment instead of silently ignoring it just because the right
leg of the pipe succeeded.

Change-Id: Iebc720fbd3e6e96fc7135a6cf15e3c0941974d2c
Signed-off-by: Markos Chandras <mchandras@suse.de>
7 years agoFix the parameter of scenario directories 81/49481/1
wutianwei [Thu, 21 Dec 2017 14:55:19 +0000 (22:55 +0800)]
Fix the parameter of scenario directories

1. the "+" and "'" will be part of the string in the path parameter of ansible.
   So the directories we create are not right. we need remove these char.
2. it miss the "{{" in ansible variable

Change-Id: I30c9804450588c63f5f18c63c1d90cd869fad90e
Signed-off-by: wutianwei <wutianwei1@huawei.com>
7 years agoMerge "xci: OSA: Move all the OSA specific playbooks to the NFVI directory"
Markos Chandras [Thu, 21 Dec 2017 13:37:36 +0000 (13:37 +0000)]
Merge "xci: OSA: Move all the OSA specific playbooks to the NFVI directory"

7 years agoxci: OSA: Move all the OSA specific playbooks to the NFVI directory 69/49369/3
Markos Chandras [Wed, 20 Dec 2017 10:12:42 +0000 (10:12 +0000)]
xci: OSA: Move all the OSA specific playbooks to the NFVI directory

Move all the playbooks that only make sense for OpenStack-Ansible
deployments to the NFVI/OSA directory where they belong. This further
disassociates XCI from OSA.

Change-Id: Iab8b6dc81d9025a1d85608a98fb1eee0f1c6a69f
Signed-off-by: Markos Chandras <mchandras@suse.de>
Signed-off-by: Fatih Degirmenci <fdegir@gmail.com>