blob: 9f7397a09df03a3f3d0103a2eadd92ccb2d46ca6 [file] [log] [blame]
Feature: Managing instances
Scenario: Listing current instances
Given URI /api/instances exists
And authentification is required for this URI
When client access this URI
Then client should get root element 'instances'
And this element contains some instances
And each instance should have:
| name |
| owner_id |
| image |
| realm |
| state |
| hardware_profile |
| actions |
| authentication |
| public_addresses |
| private_addresses |
| storage_volumes |
And each instance should have 'href' attribute with valid URL
And this URI should be available in XML, JSON, HTML format
Scenario: Filtering instances by state
Given URI /api/instances exists
And authentification is required for this URI
When client access this URI with parameters:
| state | RUNNING |
Then client should get some instances
And each instance should have 'state' element set to 'RUNNING'
Scenario: Get details about first instance
Given URI /api/instances exists
And authentification is required for this URI
When client access this URI
Then client should get root element 'instances'
And this element contains some instances
When client want to show first instance
Then client follow href attribute in first instance
Then client should get this instance
And this instance should have:
| name |
| owner_id |
| image |
| realm |
| state |
| hardware_profile |
| actions |
| authentication |
| public_addresses |
| private_addresses |
| storage_volumes |
Scenario: Following image href in instance
Given URI /api/instances exists
And authentification is required for this URI
When client access this URI
Then client should get root element 'instances'
And this element contains some instances
When client follow image href attribute in first instance
Then client should get valid image
Scenario: Following realm href in instance
Given URI /api/instances exists
And authentification is required for this URI
When client access this URI
Then client should get root element 'instances'
And this element contains some instances
When client follow realm href attribute in first instance
Then client should get valid realm
Scenario: Following hardware profile href in instance
Given URI /api/instances exists
And authentification is required for this URI
When client access this URI
Then client should get root element 'instances'
And this element contains some instances
When client follow hardware_profile href attribute in first instance
Then client should get valid hardware_profile
Scenario: Instance actions
Given URI /api/instances exists
And authentification is required for this URI
When client access this URI
Then client should get root element 'instances'
And this element contains some instances
And each instance should have actions
And each actions should have some links
And each link should have valid href attribute
And each link should have valid method attribute
And each link should have valid rel attribute
Scenario: Reboot instance
Given URI /api/instances exists
And authentification is required for this URI
When client access this URI
Then client should get root element 'instances'
And this element contains some instances
When client want to 'reboot' first instance
And client follow link in actions
Then client should get first instance
And this instance should be in 'RUNNING' state
Scenario: Stop instance
Given URI /api/instances exists
And authentification is required for this URI
When client access this URI
Then client should get root element 'instances'
And this element contains some instances
When client want to 'stop' first instance
And client follow link in actions
Then client should get first instance
And this instance should be in 'STOPPED' state
Scenario: Start instance
Given URI /api/instances exists
And authentification is required for this URI
When client access this URI
Then client should get root element 'instances'
And this element contains some instances
When client want to 'start' first instance
And client follow link in actions
Then client should get first instance
And this instance should be in 'RUNNING' state
Scenario: Basic instance creation
Given URI /api/instances exists
And authentification is required for this URI
When client want to create a new instance
Then client should choose first image
When client request for a new instance
Then new instance should be created
And this instance should have chosed image
And this instance should be in 'RUNNING' state
And this instance should have valid id
And this instance should have name
Scenario: Choosing hardware profile for instance
Given URI /api/instances exists
And authentification is required for this URI
When client want to create a new instance
Then client should choose first image
And client choose last hardware profile
When client request for a new instance
Then new instance should be created
And this instance should have chosed image
And this instance should be in 'RUNNING' state
And this instance should have valid id
And this instance should have last hardware profile
And this instance should have name
Scenario: Destroying created instance
Given URI /api/instances exists
And authentification is required for this URI
When client want to 'stop' first instance
And client follow link in actions
Then client should get this instance
And this instance should be in 'STOPPED' state
When client want to 'destroy' first instance
And client follow link in actions
And this instance should be destroyed