Establish a basic create/delete server arc

Move around some ENVIRON so that we always have the expected
values in the tests (it's cheap so why not?).

multi/base.yaml tries to take advantage of YAML anchors to avoid
repeating some of the longer substitutions[1] but I'm not sure if it
is going to be the right thing.

Next: do a resize.

[1] https://gabbi.readthedocs.io/en/latest/format.html#substitution
This commit is contained in:
Chris Dent 2017-07-31 12:23:18 +00:00
parent d456bd7607
commit e1cbf59fee
2 changed files with 59 additions and 12 deletions

View File

@ -49,6 +49,8 @@ class GenericGabbiTest(tempest.test.BaseTestCase):
name = '%s_BASE' % service_type.upper()
os.environ[name] = '://'.join(urlparse.urlparse(url)[0:2])
os.environ['SERVICE_TOKEN'] = token
os.environ['IMAGE_REF'] = CONF.compute.image_ref
os.environ['FLAVOR_REF'] = CONF.compute.flavor_ref
if cls.service_type in endpoints:
host = None
@ -105,18 +107,9 @@ class GenericGabbiTest(tempest.test.BaseTestCase):
class NovaGabbiTest(GenericGabbiTest):
credentials = ['admin']
# NOTE(cdent): WTF? 'nova' being the thing in service_available?
# Boo!
service_name = 'nova'
service_type = 'compute'
@classmethod
def resource_setup(cls):
super(NovaGabbiTest, cls).resource_setup()
# TODO(cdent): not very generic!
os.environ['IMAGE_REF'] = CONF.compute.image_ref
os.environ['FLAVOR_REF'] = CONF.compute.flavor_ref
class GlanceGabbiTest(GenericGabbiTest):
credentials = ['admin']

View File

@ -6,6 +6,19 @@ defaults:
accept: application/json
openstack-api-version: 'compute latest, placement latest'
# These replace full nodes, there is no YAML interpolation
# Experimenting with using YAML anchors to avoid repeating long expansions
# within the tests.
vars:
- &cn1_rp $ENVIRON['PLACEMENT_SERVICE']/resource_providers/$HISTORY['list hypervisors'].$RESPONSE['$.hypervisors[0].id']
- &cn1_inv $ENVIRON['PLACEMENT_SERVICE']/resource_providers/$HISTORY['list hypervisors'].$RESPONSE['$.hypervisors[0].id']/inventories
- &cn1_alloc $ENVIRON['PLACEMENT_SERVICE']/resource_providers/$HISTORY['list hypervisors'].$RESPONSE['$.hypervisors[0].id']/allocations
- &cn1_usages $ENVIRON['PLACEMENT_SERVICE']/resource_providers/$HISTORY['list hypervisors'].$RESPONSE['$.hypervisors[0].id']/usages
- &s1_id $HISTORY['get server'].$RESPONSE['$.server.id']
- &s1_url $ENVIRON['COMPUTE_SERVICE']/servers/$HISTORY['get server'].$RESPONSE['$.server.id']
- &s1_alloc $ENVIRON['PLACEMENT_SERVICE']/allocations/$HISTORY['get server'].$RESPONSE['$.server.id']
tests:
- name: list hypervisors
@ -18,9 +31,50 @@ tests:
response_json_paths:
$.uuid: $RESPONSE['$.hypervisors[0].id']
- name: blargh inventory
verbose: True
GET: $ENVIRON['PLACEMENT_BASE']$RESPONSE['$.links[?rel=inventories].href']
- name: confirm inventory
GET: *cn1_inv
response_json_paths:
$.inventories.VCPU.allocation_ratio: 16
- &cn1_zero
name: confirm empty allocation
GET: *cn1_alloc
response_json_paths:
$.allocations.`len`: 0
- name: create server
POST: $ENVIRON['COMPUTE_SERVICE']/servers
data:
server:
name: new-server-one
networks: auto
imageRef: $ENVIRON['IMAGE_REF']
flavorRef: $ENVIRON['FLAVOR_REF']
status: 202
- name: get server
GET: $LOCATION
- name: watch allocations
verbose: True
GET: *s1_alloc
poll:
count: 4
delay: 1
response_json_paths:
$.allocations.["$HISTORY['list hypervisors'].$RESPONSE['$.hypervisors[0].id']"].resources:
VCPU: 1
MEMORY_MB: 64
### Clean Up
- name: delete server
DELETE: *s1_url
status: 204
- name: reconfirm empty allocation
<<: *cn1_zero
verbose: True
poll:
count: 10
delay: 1