VM: Use mac addresses from DB instead of randomizing.

In order to make IP addresses less likely to change and to allow
a smaller DHCP pool to be used I generated static MAC addresses
for all the vpm entries in the DB. I also put the correct entries
for all the other types of machines as well for their primary
(eth0) mac address as well in order to keep things standardized
and so there is another location where we have this information.

Without this fix going through a few tests would exhaust the DHCP
pool which at the time was around 460 IP addresses for virtual
machines and has since been upped to ~690 IP addresses.

Signed-off-by: Sandon Van Ness <sandon@inktank.com>
Reviewed-by: Warren Usui <warren.usui@inktank.com>
Fix Missed parenthesis.

Signed-off-by: Sandon Van Ness <sandon@inktank.com>
List IP address in orchestra.run output.

Figuring out which machines output is coming from when things
are being executed on multiple machines can be a huge pain.
This prints the IP in the logs so you can easily see where one
machine stops and another begins.

Signed-off-by: Sandon Van Ness <sandon@inktank.com>
Use ceph.com mirror instea of github for ceph-qa-chef on VPS.

Github.com is unreliable so use the ceph mirror instead.

Signed-off-by: Sandon Van Ness <sandon@inktank.com>
Add description option to lock.lock()

For some reason lock_many() has a description but lock()
does not. This was useful in my testing of unlocking and
re-locking VPS machines to destroy.

Signed-off-by: Sandon Van Ness <sandon@inktank.com>
Re-create guest if it doesn't come up right.

In some rare cases (mainly centos/rhel after creating the
guest with downburst it does not come up right. It
gets a kernel panic at boot. Usually just turning it off
and then back on again is enough but to be on the safe
side I figured it should be re-created instead. This
insures you don't get hung jobs from a guest that didn't
come up correctly.

Signed-off-by: Sandon Van Ness <sandon@inktank.com>
Don't install kernels on non-ubuntu VPS


Signed-off-by: Sandon Van Ness <sandon@inktank.com>
Workaround repopriority of yum local repo.

Because of issues with package name differences vps are
setup to use repopriority and our local repo (which has
some ceph/librados stuff in it) gets high priority so
the ceph.repo that is created on the machine from
ceph-release basically gets ignored. This change makes
it so ceph.repo is the same priority level as our local
repo.


Signed-off-by: Sandon Van Ness <sandon@inktank.com>
Allow Overrides for ceph-deploy task

This is needed so we can set the ceph branch for ceph-deploy
to use via the main yaml which is created via the suite
scheduler.


Signed-off-by: Sandon Van Ness <sandon@inktank.com>
Remove btrfs-tools and xfsprogs install step.

We already install btrfs-tools and xfsprogs with ceph-qa-chef
Doing it here was just causing problems on non-ubuntu
distros and I really see no point for it to have it now.
Use os_type instead of vm_type. Add os_version

Use os_type instead of vm_type for more generic naming
for when we start re-imaging bare metal. Also added a
os_version dictionary for default versions of distros
that we want over-riding what downburst defaults are.

Signed-off-by: Sandon Van Ness <sandon@inktank.com>
Wait a little longer before recreating VMs

Just to allow for the create to still work incase the os
volume is fairly large (takes a while to resize) and in
case the host machine is bogged down due to disk I/O.

Signed-off-by: Sandon Van Ness <sandon@inktank.com>
Add distro type to schedule_suite.sh

Also added machinetype to the name.

Signed-off-by: Sandon Van Ness <sandon@inktank.com>
Re-create guest if it already exists

In some cases tests fail or nuke fails and the guest is
not properly destroyed. This will look to see if it gets
an error due to the guest already existing or its disks
existing and will re-create the guest.

Signed-off-by: Sandon Van Ness <sandon@inktank.com>
teuthology: updating RGW task to support regions

Extending the rgw.py task to allow for regions and zones
to be specified in the YAML file.

Signed-off-by: Joe Buck <jbbuck@gmail.com>
teuth: reworked rgw to support regions / zones

Signed-off-by: Joe Buck <jbbuck@gmail.com>
rgw: move common rgwadmin function to a new utility file

Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
task_util: move rados command here

Six copies are replaced with one, with an added option to check status
automatically. This should probably be used in a few places where the
return code is ignored.

Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
rgw: add multi-region and zone support

Take client<->zone/region and the associated pools from ceph.conf, so
we don't have to invent a new format to specify it.

General region info is added to a new configuration section in the rgw
task. Each client is assumed to be a different zone, and a system user
is created with the key specified in the yaml, so it can be passed to
later task configuration as well. This isn't strictly necessary, but
avoids having to lookup this info in later tasks through something
like radosgw-admin.

Ports are allocated automatically because there's no obvious mapping
from host to client in the task configuration. Later tests can get the
endpoints desired by reading the region map.

Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
ceph: wait_for_osds_up

Signed-off-by: Sage Weil <sage@inktank.com>