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 3673258049
commit 6dcdc85d6c

View File

@ -5,31 +5,35 @@ EXPLANATION="
This output combines output from placeload with timing information This output combines output from placeload with timing information
gathered via curl. The placeload output is the current maximum gathered via curl. The placeload output is the current maximum
microversion of placement followed by an encoded representation of microversion of placement followed by an encoded representation of
what it has done. Lowercase 'r', 'i', and 'a' indicate successful what it has done. Lowercase 'r', 'i', 'a', and 't' indicate successful
creation of a resource provider, inventory and aggregate. If creation of a resource provider and setting inventory, aggregates, and
there are upper case versions of any of those letters, a failure 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 happened for a single request. The letter will be followed by the
HTTP status code and the resource provider uuid. These can be used HTTP status code and the resource provider uuid. These can be used
to find the relevant entry in logs/screen-placement-api.txt.gz. to find the relevant entry in logs/screen-placement-api.txt.gz.
Note that placeload does not exit with an error code when this Note that placeload does not exit with an error code when this
happens. It merely reports and moves on. Under correct circumstances happens. It merely reports and moves on. Under correct circumstances
the right output is a long string of 3000 characters containing the right output is a long string of 4000 characters containing
'r', 'i', 'a' in random order (because async). 'r', 'i', 'a', 't' in random order (because async).
After that are three aggregate uuids, and then the output After that are three aggregate uuids, and then the output
of two timed curl requests. of two timed curl requests.
If no timed requests are present it means that the expected number If no timed requests are present it means that the expected number
of resource providers was not created. At this time, only resource of resource providers were not created. At this time, only resource
providers are counted, not whether they have inventory or aggregates. providers are counted, not whether they have the correct inventory,
aggregates, or traits.
" "
# This aggregate uuid is a static value in placeload. # This aggregate uuid is a static value in placeload.
AGGREGATE="14a5c8a3-5a99-4e8f-88be-00d85fcb1c17" 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} BASE=${BASE:-/opt/stack}
source ${BASE}/new/devstack/functions source ${BASE}/new/devstack/functions
@ -47,7 +51,7 @@ function check_placement {
. .placeload/bin/activate . .placeload/bin/activate
# install placeload # install placeload
pip install 'placeload==0.2.2' pip install 'placeload==0.3.0'
# Turn off keystone auth # Turn off keystone auth
iniset -sudo $NOVA_CONF DEFAULT auth_strategy noauth2 iniset -sudo $NOVA_CONF DEFAULT auth_strategy noauth2