fixtures: - AllocationFixture defaults: request_headers: x-auth-token: admin tests: - name: confirm inventories GET: /resource_providers/$ENVIRON['RP_UUID']/inventories response_json_paths: $.inventories.DISK_GB.total: 2048 $.inventories.DISK_GB.reserved: 0 - name: get usages GET: /resource_providers/$ENVIRON['RP_UUID']/usages response_headers: # use a regex here because charset, which is not only not # required but superfluous, is present content-type: /application/json/ response_json_paths: $.resource_provider_generation: 5 $.usages.DISK_GB: 1020 $.usages.VCPU: 7 - name: get allocations GET: /resource_providers/$ENVIRON['RP_UUID']/allocations response_headers: content-type: /application/json/ response_json_paths: $.allocations.`len`: 3 $.allocations["$ENVIRON['CONSUMER_0']"].resources: DISK_GB: 1000 $.allocations["$ENVIRON['CONSUMER_ID']"].resources: VCPU: 6 $.allocations["$ENVIRON['ALT_CONSUMER_ID']"].resources: VCPU: 1 DISK_GB: 20 $.resource_provider_generation: 5 - name: fail to delete resource provider DELETE: /resource_providers/$ENVIRON['RP_UUID'] status: 409 response_strings: - "Unable to delete resource provider $ENVIRON['RP_UUID']: Resource provider has allocations." - name: fail to change inventory via put 1.23 PUT: /resource_providers/$ENVIRON['RP_UUID']/inventories request_headers: accept: application/json content-type: application/json openstack-api-version: placement 1.23 data: resource_provider_generation: 5 inventories: {} status: 409 response_json_paths: $.errors[0].code: placement.inventory.inuse - name: fail to delete all inventory DELETE: /resource_providers/$ENVIRON['RP_UUID']/inventories request_headers: accept: application/json openstack-api-version: placement 1.5 status: 409 response_headers: content-type: /application/json/ response_strings: - "Inventory for 'VCPU, DISK_GB' on resource provider '$ENVIRON['RP_UUID']' in use" - name: fail to delete all inventory 1.23 DELETE: /resource_providers/$ENVIRON['RP_UUID']/inventories request_headers: accept: application/json openstack-api-version: placement 1.23 status: 409 response_headers: content-type: /application/json/ response_strings: - "Inventory for 'VCPU, DISK_GB' on resource provider '$ENVIRON['RP_UUID']' in use" response_json_paths: $.errors[0].code: placement.inventory.inuse # We can change inventory in a way that makes existing allocations exceed the # new capacity. This is allowed. - name: change inventory despite capacity exceeded PUT: /resource_providers/$ENVIRON['RP_UUID']/inventories request_headers: accept: application/json content-type: application/json data: resource_provider_generation: 5 inventories: DISK_GB: total: 1019 VCPU: total: 97 status: 200 - name: get total usages by project GET: /usages?project_id=$ENVIRON['PROJECT_ID'] request_headers: openstack-api-version: placement 1.9 status: 200 response_json_paths: $.usages.DISK_GB: 1020 $.usages.VCPU: 7 - name: get total usages by project and user GET: /usages?project_id=$ENVIRON['PROJECT_ID']&user_id=$ENVIRON['USER_ID'] request_headers: openstack-api-version: placement 1.9 status: 200 response_json_paths: $.usages.DISK_GB: 1000 $.usages.VCPU: 6 - name: get total usages by project and alt user GET: /usages?project_id=$ENVIRON['PROJECT_ID']&user_id=$ENVIRON['ALT_USER_ID'] request_headers: openstack-api-version: placement 1.9 status: 200 # In pre 1.15 microversions cache headers not present response_forbidden_headers: - last-modified - cache-control response_json_paths: $.usages.DISK_GB: 20 $.usages.VCPU: 1 - name: get allocations without project and user GET: /allocations/$ENVIRON['CONSUMER_ID'] request_headers: openstack-api-version: placement 1.11 accept: application/json response_json_paths: # only one key in the top level object $.`len`: 1 - name: get allocations with project and user GET: /allocations/$ENVIRON['CONSUMER_ID'] request_headers: openstack-api-version: placement 1.12 accept: application/json response_json_paths: $.project_id: $ENVIRON['PROJECT_ID'] $.user_id: $ENVIRON['USER_ID'] $.`len`: 3 - name: get total usages with cache headers GET: /usages?project_id=$ENVIRON['PROJECT_ID']&user_id=$ENVIRON['ALT_USER_ID'] request_headers: openstack-api-version: placement 1.15 response_headers: cache-control: no-cache # Does last-modified look like a legit timestamp? last-modified: /^\w+, \d+ \w+ \d{4} [\d:]+ GMT$/