* modules/openstack_project/files/logstash/log-pusher.py: There is a
race between Jenkins uploading the log file and log-pusher.py requesting
bytes that have not been written to the log file yet. Special case HTTP
416 responses and ignore them as eventually these bytes should be
written to the file.
Change-Id: If67f6f238f1d45179e9bfdd18497a7076bda9324
Reviewed-on: https://review.openstack.org/27599
Reviewed-by: James E. Blair <corvus@inaugust.com>
Approved: Clark Boylan <clark.boylan@gmail.com>
Reviewed-by: Clark Boylan <clark.boylan@gmail.com>
Tested-by: Jenkins
* modules/openstack_project/files/logstash/log-pusher.py: Add simple
logging support to debug log-pusher.py issues.
Change-Id: I1e7d54ba5dbce51ff1fccc2e11d55a589579bd04
Reviewed-on: https://review.openstack.org/27594
Reviewed-by: James E. Blair <corvus@inaugust.com>
Approved: Clark Boylan <clark.boylan@gmail.com>
Reviewed-by: Clark Boylan <clark.boylan@gmail.com>
Tested-by: Jenkins
* modules/openstack_project/files/logstash/log-pusher.py: Actually wait
for at least one second between log file fetches. time.sleep() may
return early (or immediately) resulting in some log files being missed
as they may not be available immediately. Also, flush sys.stdout after
each log event is written to it to keep downstream consumers up to date.
Change-Id: I9517488bcb440e5f9263ccf8db46ef743d4723f0
Reviewed-on: https://review.openstack.org/27533
Reviewed-by: matthew-wagoner <matthew.wagoner@hp.com>
Approved: Clark Boylan <clark.boylan@gmail.com>
Reviewed-by: Clark Boylan <clark.boylan@gmail.com>
Tested-by: Jenkins
Change-Id: I767e41ac4964bf8dff4b92c9cc9082a67f03a44a
Reviewed-on: https://review.openstack.org/27577
Reviewed-by: Mark McLoughlin <markmc@redhat.com>
Reviewed-by: Monty Taylor <mordred@inaugust.com>
Approved: James E. Blair <corvus@inaugust.com>
Tested-by: Jenkins
Change-Id: I8374f389dc0a470a9e12b2987b3bd45dd07a9b74
Reviewed-on: https://review.openstack.org/27513
Reviewed-by: Jeremy Stanley <fungi@yuggoth.org>
Reviewed-by: Khai Do <zaro0508@gmail.com>
Reviewed-by: Paul Belanger <paul.belanger@polybeacon.com>
Reviewed-by: Clark Boylan <clark.boylan@gmail.com>
Reviewed-by: Antoine Musso <hashar@free.fr>
Reviewed-by: Monty Taylor <mordred@inaugust.com>
Approved: Monty Taylor <mordred@inaugust.com>
Tested-by: Jenkins
The openstack-manuals validation script is now passing regularly,
and the doc team is ready to use it for gating.
Fixes bug 1090933
Change-Id: I2264bda33072758d43bb31fc7841bf61393d2c6f
Reviewed-on: https://review.openstack.org/27459
Reviewed-by: Jeremy Stanley <fungi@yuggoth.org>
Reviewed-by: James E. Blair <corvus@inaugust.com>
Reviewed-by: Khai Do <zaro0508@gmail.com>
Approved: Clark Boylan <clark.boylan@gmail.com>
Reviewed-by: Clark Boylan <clark.boylan@gmail.com>
Tested-by: Jenkins
In 232747f we attempted to implement it this way initially, but
subsequent patchsets went off into the weeds instead trying to use
mysql::server::config which, as it turns out, was not introduced
until a newer version of the puppetlabs mysql module than we use.
Rather than go through a potentially disruptive infrastructure-wide
upgrade right this moment, this patch gets the job done in a more
traditional fashion.
Change-Id: I6967388072c7c8b3e170048e23618ea95bccfecc
Reviewed-on: https://review.openstack.org/27511
Reviewed-by: James E. Blair <corvus@inaugust.com>
Reviewed-by: Anita Kuno <anita.kuno@enovance.com>
Reviewed-by: Khai Do <zaro0508@gmail.com>
Reviewed-by: Paul Belanger <paul.belanger@polybeacon.com>
Approved: Clark Boylan <clark.boylan@gmail.com>
Reviewed-by: Clark Boylan <clark.boylan@gmail.com>
Tested-by: Jenkins
The osfamily fact is more flexible when we want to support more
GNU/Linux distributions while avoiding unnecessary code duplication.
Change-Id: Iea4c73c19e7f94df8daccf25c764b6a4539a1ea0
Reviewed-on: https://review.openstack.org/27400
Reviewed-by: Clark Boylan <clark.boylan@gmail.com>
Reviewed-by: James E. Blair <corvus@inaugust.com>
Approved: Jeremy Stanley <fungi@yuggoth.org>
Reviewed-by: Jeremy Stanley <fungi@yuggoth.org>
Tested-by: Jenkins
Clean up facter osfamily matches to just use Debian, not Ubuntu.
This is manually tested and confirmed to at least be the case on
Oneiric, Precise and Quantal.
Change-Id: I27b184ac419910f9c3271c3b4e57886333282a5f
Reviewed-on: https://review.openstack.org/27399
Reviewed-by: Spencer Krum <krum.spencer@gmail.com>
Reviewed-by: Clark Boylan <clark.boylan@gmail.com>
Reviewed-by: James E. Blair <corvus@inaugust.com>
Approved: Jeremy Stanley <fungi@yuggoth.org>
Reviewed-by: Jeremy Stanley <fungi@yuggoth.org>
Tested-by: Jenkins
The install scripts now look for CentOS in release files. Also some
instances of facter's operatingsystem are switched to osfamily and
capitalization of RedHat is normalized to match what facter uses.
Change-Id: I3bbca5481d0d5e6de9e62bfd6e2b0a85264ed6ed
Reviewed-on: https://review.openstack.org/27398
Reviewed-by: Clark Boylan <clark.boylan@gmail.com>
Reviewed-by: James E. Blair <corvus@inaugust.com>
Approved: Jeremy Stanley <fungi@yuggoth.org>
Reviewed-by: Jeremy Stanley <fungi@yuggoth.org>
Tested-by: Jenkins
Add a kibana module that installs kibana and flat configuration files,
and also disables the previous boring bland web frontend.
Change-Id: I772c66f07d2bc3a88128e101074be9d4162e3f8a
Reviewed-on: https://review.openstack.org/27089
Reviewed-by: Jesse Keating <jesse.keating@rackspace.com>
Reviewed-by: Clark Boylan <clark.boylan@gmail.com>
Reviewed-by: Jeremy Stanley <fungi@yuggoth.org>
Approved: Clark Boylan <clark.boylan@gmail.com>
Tested-by: Jenkins
Change-Id: I106dd7266cfddbb9e20941453b21b345968a142e
Reviewed-on: https://review.openstack.org/27503
Reviewed-by: James E. Blair <corvus@inaugust.com>
Approved: Jeremy Stanley <fungi@yuggoth.org>
Reviewed-by: Jeremy Stanley <fungi@yuggoth.org>
Tested-by: Jenkins
logstash.o.o is running into memory contention. The three logstash
processes (agent, indexer, web), redis, and elasticsearch are all memory
hogs. Remove redis which allows us to consolidate the work of the agent
and indexer into a single process.
If we decide to add remote logstash agents we will want to add redis to
the mix again. This is probably best done on a second host dedicated to
redis.
Change-Id: I5ba96b4a27d91cb73c9380ed47d0495b9005effa
Reviewed-on: https://review.openstack.org/27452
Reviewed-by: Jeremy Stanley <fungi@yuggoth.org>
Reviewed-by: James E. Blair <corvus@inaugust.com>
Approved: Clark Boylan <clark.boylan@gmail.com>
Tested-by: Jenkins
Change-Id: I89e245963f97e5bdfa106118546bb12fe721b5da
Reviewed-on: https://review.openstack.org/27442
Reviewed-by: James E. Blair <corvus@inaugust.com>
Reviewed-by: Jeremy Stanley <fungi@yuggoth.org>
Reviewed-by: Steven Hardy <shardy@redhat.com>
Reviewed-by: Clark Boylan <clark.boylan@gmail.com>
Approved: Clark Boylan <clark.boylan@gmail.com>
Tested-by: Jenkins
Change-Id: If78d175c823dd6ff288e944c74f9b47521e9ec16
Reviewed-on: https://review.openstack.org/27433
Reviewed-by: Anita Kuno <anita.kuno@enovance.com>
Reviewed-by: Jeremy Stanley <fungi@yuggoth.org>
Reviewed-by: Clark Boylan <clark.boylan@gmail.com>
Reviewed-by: James E. Blair <corvus@inaugust.com>
Approved: Clark Boylan <clark.boylan@gmail.com>
Tested-by: Jenkins
Create a new project under openstack-infra for the zmq-event-publisher
Jenkins plugin. We are actually beginning to use this plugin for
logstash so it should follow our normal processes for code review and
merging.
The gearman-plugin project uses the same sort of build and package steps
so these Jenkins jobs have been converted to a set of templates in a job
group that both plugins can use.
Change-Id: I2bab79506119b1c04a8e9d48bc66f1a609426324
Reviewed-on: https://review.openstack.org/26872
Reviewed-by: Jeremy Stanley <fungi@yuggoth.org>
Reviewed-by: Khai Do <zaro0508@gmail.com>
Reviewed-by: James E. Blair <corvus@inaugust.com>
Approved: Clark Boylan <clark.boylan@gmail.com>
Tested-by: Jenkins
Change-Id: Id19133976c2e4013655a88637cb241c18d67e5bb
Reviewed-on: https://review.openstack.org/27425
Reviewed-by: Jeremy Stanley <fungi@yuggoth.org>
Reviewed-by: Anita Kuno <anita.kuno@enovance.com>
Reviewed-by: Clark Boylan <clark.boylan@gmail.com>
Approved: James E. Blair <corvus@inaugust.com>
Reviewed-by: James E. Blair <corvus@inaugust.com>
Tested-by: Jenkins
flake8 and hacking are now combined into the single job and used instead
of two separated jobs - pep8 with copy-pasted hacking.py script and
pyflakes.
Change-Id: I8b2dc3fdc4c5a9ec921d39dae3e90405a01b7109
Reviewed-on: https://review.openstack.org/27343
Reviewed-by: Jeremy Stanley <fungi@yuggoth.org>
Reviewed-by: Elizabeth Krumbach <lyz@princessleia.com>
Reviewed-by: James E. Blair <corvus@inaugust.com>
Reviewed-by: Khai Do <zaro0508@gmail.com>
Approved: James E. Blair <corvus@inaugust.com>
Tested-by: Jenkins
postgresql is currently not running in devstack gate, which means
we've got a chicken vs. egg problem in getting it running again.
Turn it to non voting so we can get it running again and that someone
could fix nova to make it work.
Change-Id: I095de9370d0007539a8ea417372205ef69187bb4
Reviewed-on: https://review.openstack.org/27367
Reviewed-by: James E. Blair <corvus@inaugust.com>
Reviewed-by: Clark Boylan <clark.boylan@gmail.com>
Approved: Jeremy Stanley <fungi@yuggoth.org>
Reviewed-by: Jeremy Stanley <fungi@yuggoth.org>
Tested-by: Jenkins
The logstash daily curl commands output non error messages on normal
runs. Use the -sS options to curl to silence all non error message
output.
Change-Id: I7df3abdd74f6e058cf0208cefb7639202e4f9d0e
Reviewed-on: https://review.openstack.org/27316
Reviewed-by: Anita Kuno <anita.kuno@enovance.com>
Reviewed-by: Jeremy Stanley <fungi@yuggoth.org>
Approved: James E. Blair <corvus@inaugust.com>
Reviewed-by: James E. Blair <corvus@inaugust.com>
Tested-by: Jenkins
Change the destination address for SecurityImpact email notifications to
openstack-security@lists.openstack.org. This is being done at the
request of bdpayne.
Change-Id: If548c9ad74bb5e4f53f42ac737150a32ff54006e
Reviewed-on: https://review.openstack.org/27304
Reviewed-by: bdpayne <bdpayne@acm.org>
Reviewed-by: Jeremy Stanley <fungi@yuggoth.org>
Reviewed-by: Spencer Krum <krum.spencer@gmail.com>
Reviewed-by: Elizabeth Krumbach <lyz@princessleia.com>
Approved: James E. Blair <corvus@inaugust.com>
Reviewed-by: James E. Blair <corvus@inaugust.com>
Tested-by: Jenkins
The '%' has special meaning in cron. Escape the use of this character in
cron entries to allow these cron entries to run properly.
Change-Id: I049a8a2a4454f99aedb7fe3017db231b8a13e569
Reviewed-on: https://review.openstack.org/27294
Approved: James E. Blair <corvus@inaugust.com>
Reviewed-by: James E. Blair <corvus@inaugust.com>
Tested-by: Jenkins
* .../jenkins/files/slave_scripts/docbook-properties.sh: Have the
shell echo commands run in this script, to aid in debugging. The
console log for jobs using this didn't previously provide sufficient
feedback to be able to see what values were set in the resulting
properties file.
Change-Id: I9909009d3f85e6c3c1e5dbc5465ef38adbd75df4
Reviewed-on: https://review.openstack.org/26849
Reviewed-by: James E. Blair <corvus@inaugust.com>
Reviewed-by: Khai Do <zaro0508@gmail.com>
Approved: Clark Boylan <clark.boylan@gmail.com>
Reviewed-by: Clark Boylan <clark.boylan@gmail.com>
Tested-by: Jenkins
* .../manuals.yaml(openstack-basic-install): Pass the docbook
properties from the environment as parameters on the Maven command
line.
Change-Id: I8f21d8fa684145da5dcb8cb8beb094d51f9d328d
Reviewed-on: https://review.openstack.org/26848
Reviewed-by: Anne Gentle <anne@openstack.org>
Reviewed-by: James E. Blair <corvus@inaugust.com>
Reviewed-by: Khai Do <zaro0508@gmail.com>
Approved: Clark Boylan <clark.boylan@gmail.com>
Reviewed-by: Clark Boylan <clark.boylan@gmail.com>
Tested-by: Jenkins
Part of #1082805
glance has the correct babel integration already and I added the project
in transifex. Uploads seem to work fine now.
Change-Id: I9d89c4205e48e3f5c31e9ed3f3bfcd8b305b6f19
Reviewed-on: https://review.openstack.org/26595
Reviewed-by: James E. Blair <corvus@inaugust.com>
Approved: Monty Taylor <mordred@inaugust.com>
Reviewed-by: Monty Taylor <mordred@inaugust.com>
Tested-by: Jenkins
* modules/jenkins/files/slave_scripts/subunit2html.py: Swap out unittest
with testtools for python 2.6 compatibility. Remove argparse and
manually parse argv for python 2.6 compatibility.
Change-Id: If3a253439550b5394b9b7eac129d8ed66b7ba951
Reviewed-on: https://review.openstack.org/26785
Reviewed-by: lifeless <robertc@robertcollins.net>
Reviewed-by: Jeremy Stanley <fungi@yuggoth.org>
Approved: Monty Taylor <mordred@inaugust.com>
Reviewed-by: Monty Taylor <mordred@inaugust.com>
Tested-by: Jenkins
PBR was just integrated into Libra, so we'd like to take
advantage of that.
Change-Id: I5b1e54ffb28324c1a06691300d1963f74ad9974b
Reviewed-on: https://review.openstack.org/26521
Reviewed-by: Clark Boylan <clark.boylan@gmail.com>
Approved: Monty Taylor <mordred@inaugust.com>
Reviewed-by: Monty Taylor <mordred@inaugust.com>
Tested-by: Jenkins
Change-Id: I71105d72dc7a4d8b5fcf404cc33f54ce124903bf
Reviewed-on: https://review.openstack.org/26810
Reviewed-by: Jeremy Stanley <fungi@yuggoth.org>
Approved: Monty Taylor <mordred@inaugust.com>
Reviewed-by: Monty Taylor <mordred@inaugust.com>
Tested-by: Jenkins
Create Salt key pair if needed
Move Salt key pair creation above bootstrap_server
Pre-seed Salt Minion keys
Use fqdn instead of cert name.
Set the Minion ID to be the fqdn
Logic improvements in add_salt_keypair
Use proper splitext, some suggested fixes
Remove minion_id definition. Let fqdn define minion id
Change-Id: I74e5ffb1a414ee61f1214332be34b5ed0fd26e95
Reviewed-on: https://review.openstack.org/26046
Reviewed-by: James E. Blair <corvus@inaugust.com>
Reviewed-by: Nicolas Simonds <nic@metacloud.com>
Reviewed-by: Anita Kuno <anita.kuno@enovance.com>
Reviewed-by: Matthew Sherborne <msherborne+openstack@gmail.com>
Reviewed-by: Clark Boylan <clark.boylan@gmail.com>
Approved: Jeremy Stanley <fungi@yuggoth.org>
Reviewed-by: Jeremy Stanley <fungi@yuggoth.org>
Tested-by: Jenkins
Git doesn't remove git repos with git clean, so the workspace
checkout of the requirements repo was stale. Clone into a
tempdir instead.
Also, fix a traceback in the case that a new requirement is added.
The loop wasn't short-circuiting as it should in that case.
Print the git sha from the requirements repo to aid in debugging.
Reorder imports.
Change-Id: Id5a8e748a1fb353f2628a9c9fa291d6825d1046d
Reviewed-on: https://review.openstack.org/26791
Reviewed-by: Clark Boylan <clark.boylan@gmail.com>
Approved: James E. Blair <corvus@inaugust.com>
Tested-by: Jenkins
Change-Id: Ib1ef05a6aa66606d03eca81d50ba84f6e6f41c1b
Reviewed-on: https://review.openstack.org/26688
Reviewed-by: Clark Boylan <clark.boylan@gmail.com>
Approved: Jeremy Stanley <fungi@yuggoth.org>
Reviewed-by: Jeremy Stanley <fungi@yuggoth.org>
Tested-by: Jenkins
* modules/openstack_project/templates/logstash/agent.conf.erb: Treat any
line not beginning with a timestamp in Jenkins console logs as belonging
to the previous log message. This keeps timestamps sane for messages
that do not have timestamps.
Change-Id: I5959e766c28efebbd6c44567262beb63ad3a0a8e
Reviewed-on: https://review.openstack.org/26777
Reviewed-by: James E. Blair <corvus@inaugust.com>
Approved: Jeremy Stanley <fungi@yuggoth.org>
Reviewed-by: Jeremy Stanley <fungi@yuggoth.org>
Tested-by: Jenkins
* modules/openstack_project/manifests/logstash.pp: Add two cron jobs.
One to delete indices that are a week old and a second to optimize the
previous days' index.
Change-Id: I14767b3a590c04fa60cdc5ec350e6f49c155050b
Reviewed-on: https://review.openstack.org/26642
Reviewed-by: James E. Blair <corvus@inaugust.com>
Approved: Jeremy Stanley <fungi@yuggoth.org>
Reviewed-by: Jeremy Stanley <fungi@yuggoth.org>
Tested-by: Jenkins
* modules/openstack_project/files/logstash/log-pusher.py: The Range http
header was not properly applied, fix it.
Change-Id: I9ccccd57f7d72853dfbce0c1593737e0f6495724
Reviewed-on: https://review.openstack.org/26668
Reviewed-by: Jeremy Stanley <fungi@yuggoth.org>
Approved: James E. Blair <corvus@inaugust.com>
Reviewed-by: James E. Blair <corvus@inaugust.com>
Tested-by: Jenkins
* modules/jenkins/files/slave_scripts/run-tox.sh: When running testr
from outside of the venv provide a full path to testr. Testr cannot be
found otherwise.
Change-Id: I25602847d389d4ddc62acd872e54727d6f309443
Reviewed-on: https://review.openstack.org/26783
Reviewed-by: Jeremy Stanley <fungi@yuggoth.org>
Approved: James E. Blair <corvus@inaugust.com>
Reviewed-by: James E. Blair <corvus@inaugust.com>
Tested-by: Jenkins
At least until we figure out how we want to handle that
in the requirements repo.
Change-Id: I595078cfe63098062538c2587e3c229131bef55a
Reviewed-on: https://review.openstack.org/26760
Approved: James E. Blair <corvus@inaugust.com>
Reviewed-by: James E. Blair <corvus@inaugust.com>
Tested-by: Jenkins
Change-Id: I3a2a3aee17ed8a10be8b2cdbf1dce372e063c781
Reviewed-on: https://review.openstack.org/26682
Reviewed-by: Clark Boylan <clark.boylan@gmail.com>
Approved: James E. Blair <corvus@inaugust.com>
Tested-by: Jenkins
* modules/jenkins/files/slave_scripts/run-tox.sh: With new subunit it is
possible for the number of tests run to be greater than the number of
tests found. Change the test count check from an inequality to check to
a ran less than found check to accomodate this.
Change-Id: Ibd109196ab23c57a8bb728e8a845027cd4876801
Reviewed-on: https://review.openstack.org/26645
Reviewed-by: James E. Blair <corvus@inaugust.com>
Approved: Jeremy Stanley <fungi@yuggoth.org>
Reviewed-by: Jeremy Stanley <fungi@yuggoth.org>
Tested-by: Jenkins
* modules/jenkins/files/slave_scripts/run-tox.sh: Subunit v2 log files
written by testr will output to .testrepository/$id.2. If this file is
present copy it instead of .testrepository/$id as the subunit log.
Change-Id: I3b43aa2c267773ee9d51ca369f0236e8bf9d628d
Reviewed-on: https://review.openstack.org/26417
Reviewed-by: lifeless <robertc@robertcollins.net>
Reviewed-by: James E. Blair <corvus@inaugust.com>
Approved: Jeremy Stanley <fungi@yuggoth.org>
Reviewed-by: Jeremy Stanley <fungi@yuggoth.org>
Tested-by: Jenkins
Except quantum.
Only run on >= grizzly.
Change-Id: I51a96b08de8dbfd11b8d5e2f9e4a00d4e118b525
Reviewed-on: https://review.openstack.org/26635
Reviewed-by: Clark Boylan <clark.boylan@gmail.com>
Approved: James E. Blair <corvus@inaugust.com>
Tested-by: Jenkins
Change-Id: I35292836eda5573c7e63a9091451366bfaf79db4
Reviewed-on: https://review.openstack.org/26639
Reviewed-by: Jeremy Stanley <fungi@yuggoth.org>
Reviewed-by: Clark Boylan <clark.boylan@gmail.com>
Approved: James E. Blair <corvus@inaugust.com>
Tested-by: Jenkins
Change-Id: I7c87d56dbe1590a1e37d559e318a9a84b8727062
Reviewed-on: https://review.openstack.org/26641
Reviewed-by: Clark Boylan <clark.boylan@gmail.com>
Approved: James E. Blair <corvus@inaugust.com>
Tested-by: Jenkins
Drill down all the way to the docs. As long as this job is only
running in the gate context (it is), run-docs.sh won't do anything
funny like copy or move the resulting docs around, so it should
be safe to link to doc/build/html.
Change-Id: I1c8aaed9020b7c9872ff0ccc876bf719df4cd5dd
Reviewed-on: https://review.openstack.org/26643
Reviewed-by: Jeremy Stanley <fungi@yuggoth.org>
Reviewed-by: Clark Boylan <clark.boylan@gmail.com>
Approved: James E. Blair <corvus@inaugust.com>
Tested-by: Jenkins
* modules/openstack_project/templates/logstash/agent.conf.erb: Remove
logdate and logmessage fields when we are done with them. This reduces
the size of each log event.
Change-Id: I0b102d437397858d07cfc38498bc6b431199d3a4
Reviewed-on: https://review.openstack.org/26531
Reviewed-by: James E. Blair <corvus@inaugust.com>
Approved: Clark Boylan <clark.boylan@gmail.com>
Reviewed-by: Clark Boylan <clark.boylan@gmail.com>
Tested-by: Jenkins
* modules/openstack_project/templates/logstash/agent.conf.erb: Add
multiline filters to properly capture multiline log lines that do not
include their own timestamp.
Change-Id: I127e327cf6bdde580dcdfbe185f77fae3bd8d2c5
Reviewed-on: https://review.openstack.org/26530
Reviewed-by: James E. Blair <corvus@inaugust.com>
Approved: Clark Boylan <clark.boylan@gmail.com>
Reviewed-by: Clark Boylan <clark.boylan@gmail.com>
Tested-by: Jenkins
* modules/openstack_project/files/logstash/log-pusher.py: Change
@message to event_messsage. Using @message here appears to confuse
logstash and results in duplicate events.
* modules/openstack_project/templates/logstash/agent.conf.erb: Change
@message to event_messsage. Using @message here appears to confuse
logstash and results in duplicate events. Also drop the opening and
closing pre tags that end up in the html log files.
Change-Id: I3cf679dc644392cfb8ef9002cf149d8b449ad4f5
Reviewed-on: https://review.openstack.org/26518
Reviewed-by: James E. Blair <corvus@inaugust.com>
Approved: Clark Boylan <clark.boylan@gmail.com>
Reviewed-by: Clark Boylan <clark.boylan@gmail.com>
Tested-by: Jenkins