Add trait query to placement perf check

This updates the EXPLANATION and sets the pinned version placeload
to the just release 0.3.0. This ought to hold us for a while. If
we need to do this again, we should probably switch to using
requirements files in some fashion, but I'm hoping we can avoid
that until later, potentially even after placement extraction
when we will have to moving and changing this anyway.

Change-Id: Ia3383c5dbbf8445254df774dc6ad23f2b9a3721e
This commit is contained in:
Chris Dent 2018-08-16 18:32:12 +01:00
parent e6754e1b9e
commit 28937be947
1 changed files with 13 additions and 9 deletions

View File

@ -5,31 +5,35 @@ 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
what it has done. Lowercase 'r', 'i', 'a', and 't' indicate successful
creation of a resource provider and setting inventory, aggregates, and
traits on that resource provider.
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).
the right output is a long string of 4000 characters containing
'r', 'i', 'a', 't' 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.
of resource providers were not created. At this time, only resource
providers are counted, not whether they have the correct inventory,
aggregates, or traits.
"
# This aggregate uuid is a static value in placeload.
AGGREGATE="14a5c8a3-5a99-4e8f-88be-00d85fcb1c17"
PLACEMENT_QUERY="resources=VCPU:1,DISK_GB:10,MEMORY_MB:256&member_of=${AGGREGATE}"
TRAIT="HW_CPU_X86_AVX2"
PLACEMENT_QUERY="resources=VCPU:1,DISK_GB:10,MEMORY_MB:256&member_of=${AGGREGATE}&required=${TRAIT}"
BASE=${BASE:-/opt/stack}
source ${BASE}/new/devstack/functions
@ -47,7 +51,7 @@ function check_placement {
. .placeload/bin/activate
# install placeload
pip install 'placeload==0.2.2'
pip install 'placeload==0.3.0'
# Turn off keystone auth
iniset -sudo $NOVA_CONF DEFAULT auth_strategy noauth2