Valid States API¶
Include the URL of your launchpad blueprint:
https://blueprints.launchpad.net/cinder/+spec/valid-states-api
Provide an API to obtain the set of valid states that are permissible to be used in the function to reset the state of a volume and snapshot.
Problem description¶
The purpose of this feature is to facilite exposing the reset-state API in horizon in a meaningful way by restricting the set of permissible states that the administrator can specify for a volume. There is no API for this, and it is undesirable to hardcode this information into horizon.
Use Cases¶
Proposed change¶
A new API function and corresponding cinder command will be added to determine the set of valid states for volumes or snapshots.
The initial proposal is to create a single function, get_valid_states, to obtain the valid states for any type of resource (volume, snapshot).
Alternatives¶
For consistency with the rest of cinder, get_valid_states may be renamed and/or split into multiple functions, one per resource type; this decision will be left as an implementation detail and will be finalized as part of the normal code review process.
Data model impact¶
None
REST API impact¶
- Add a new REST API to retrieve valid states:
GET /v2/{tenant_id}/states
JSON response schema definition:
'valid_states': {
'type': 'array',
'items' : {
'type': 'string'
}
}
Security impact¶
None
Notifications impact¶
None
Other end user impact¶
A new command, get-valid-states, will be added to python-cinderclient. This command mirrors the underlying API function.
Obtaining the list of valid states for a volume or snapshot can be performed by: $ cinder get-valid-states
Performance Impact¶
None
Other deployer impact¶
None
Developer impact¶
None
Implementation¶
Assignee(s)¶
- Primary assignee:
thingee
Work Items¶
Implement REST API
Implement cinder client functions
Implement cinder command
Dependencies¶
Horizon blueprints that will depend on this one:
Testing¶
None
Documentation Impact¶
The cinder client documentation will need to be updated to reflect the new command.
The cinder API documentation will need to be updated to reflect the REST API changes.
References¶
None