Merge "Refactor check_allow_management_verbs"
This commit is contained in:
commit
daeebc0607
@ -57,6 +57,16 @@ _VENDOR_METHODS = {}
|
|||||||
_DEFAULT_RETURN_FIELDS = ('instance_uuid', 'maintenance', 'power_state',
|
_DEFAULT_RETURN_FIELDS = ('instance_uuid', 'maintenance', 'power_state',
|
||||||
'provision_state', 'uuid', 'name')
|
'provision_state', 'uuid', 'name')
|
||||||
|
|
||||||
|
# Minimum API version to use for certain verbs
|
||||||
|
MIN_VERB_VERSIONS = {
|
||||||
|
# v1.4 added the MANAGEABLE state and two verbs to move nodes into
|
||||||
|
# and out of that state. Reject requests to do this in older versions
|
||||||
|
ir_states.VERBS['manage']: 4,
|
||||||
|
ir_states.VERBS['provide']: 4,
|
||||||
|
|
||||||
|
ir_states.VERBS['inspect']: 6,
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
def hide_fields_in_newer_versions(obj):
|
def hide_fields_in_newer_versions(obj):
|
||||||
# if requested version is < 1.3, hide driver_internal_info
|
# if requested version is < 1.3, hide driver_internal_info
|
||||||
@ -83,14 +93,9 @@ def assert_juno_provision_state_name(obj):
|
|||||||
|
|
||||||
|
|
||||||
def check_allow_management_verbs(verb):
|
def check_allow_management_verbs(verb):
|
||||||
# v1.4 added the MANAGEABLE state and two verbs to move nodes into
|
min_version = MIN_VERB_VERSIONS.get(verb)
|
||||||
# and out of that state. Reject requests to do this in older versions
|
if min_version is not None and pecan.request.version.minor < min_version:
|
||||||
if (pecan.request.version.minor < 4 and
|
raise exception.NotAcceptable()
|
||||||
verb in [ir_states.VERBS['manage'], ir_states.VERBS['provide']]):
|
|
||||||
raise exception.NotAcceptable()
|
|
||||||
if (pecan.request.version.minor < 6 and
|
|
||||||
verb == ir_states.VERBS['inspect']):
|
|
||||||
raise exception.NotAcceptable()
|
|
||||||
|
|
||||||
|
|
||||||
class NodePatchType(types.JsonPatchType):
|
class NodePatchType(types.JsonPatchType):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user