Add explanatory prefix to post_test_perf output

The pirate on crack output of placeload can be confusing
so this change adds a prefix to the placement-perf.txt log
file so that it is somewhat more self-explanatory.

This change also pins the version of placeload because the
explanation is version dependent.

Change-Id: I055adb5f6004c93109b17db8313a7fef85538217
This commit is contained in:
Chris Dent 2018-08-14 22:14:12 +01:00
parent 8b4fcdfdc6
commit e6754e1b9e
1 changed files with 30 additions and 2 deletions

View File

@ -1,6 +1,31 @@
#!/bin/bash -x
# Do some performance related information gathering for placement.
EXPLANATION="
This output combines output from placeload with timing information
gathered via curl. The placeload output is the current maximum
microversion of placement followed by an encoded representation of
what it has done. Lowercase 'r', 'i', and 'a' indicate successful
creation of a resource provider, inventory and aggregate. If
there are upper case versions of any of those letters, a failure
happened for a single request. The letter will be followed by the
HTTP status code and the resource provider uuid. These can be used
to find the relevant entry in logs/screen-placement-api.txt.gz.
Note that placeload does not exit with an error code when this
happens. It merely reports and moves on. Under correct circumstances
the right output is a long string of 3000 characters containing
'r', 'i', 'a' in random order (because async).
After that are three aggregate uuids, and then the output
of two timed curl requests.
If no timed requests are present it means that the expected number
of resource providers was not created. At this time, only resource
providers are counted, not whether they have inventory or aggregates.
"
# This aggregate uuid is a static value in placeload.
AGGREGATE="14a5c8a3-5a99-4e8f-88be-00d85fcb1c17"
@ -22,7 +47,7 @@ function check_placement {
. .placeload/bin/activate
# install placeload
pip install placeload
pip install 'placeload==0.2.2'
# Turn off keystone auth
iniset -sudo $NOVA_CONF DEFAULT auth_strategy noauth2
@ -32,7 +57,10 @@ function check_placement {
placement_url=$(get_endpoint_url placement public)
# load with placeload
placeload $placement_url $COUNT | tee -a $LOG
(
echo "$EXPLANATION"
placeload $placement_url $COUNT
) | tee -a $LOG
rp_count=$(curl -H 'x-auth-token: admin' $placement_url/resource_providers |json_pp|grep -c '"name"')
# Skip curl and note if we failed to create the required number of rps
if [[ $rp_count -ge $COUNT ]]; then