python-novaclient-os-diskconfig-tester

An automatic test tool for rjmco/python-novaclient-os-diskconfig-testing copr (https://pagure.io/python-novaclient-os-diskconfig)

Tests performed

  • Check if --disk-config is included in nova boot help description
  • Test nova instance boot with --disk-config MANUAL

Requirements

  • Ansible 2.x
  • Libvirt
  • Vagrant

On Fedora 24 install:

$ sudo dnf install vagrant vagrant-libvirt ansible

Set-up

NOTE: The following steps use Rackspace's Cloud but can be easily changed for other OpenStack based infrastructures.

1- Create a .vault.yml file on the repository's root with the variables shown in the example below (update then accordingly)

vault_os_auth_url: https://lon.identity.api.rackspacecloud.com/v2.0/
vault_os_region_name: LON
vault_os_user_name: user1234
vault_os_password: xxxxxxxxxxxxxx
vault_os_tenant_id: 123456789

2- Generate a random password and store it in .vault_pass (example with pwgen)

$ pwgen -B 15 -s -c 1 > .vault_pass

3- Encrypt the vault

$ ansible-vault encrypt --vault-password-file=.vault_pass .vault.yml

Performing the tests

Vagrant will provision VMs for all supported and in development releases of Fedora and run the tests as a last step of the provisioning phase. If all goes well, Ansible's play recap should be clean with no unreachable or failed tasks.

$ vagrant up
$ vagrant destroy -f

License

Copyright (C) 2016 Ricardo Cordeiro <ricardo.cordeiro@tux.com.pt>

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.