OpenStack Block Storage (Cinder)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

volume_type_encryption.py 1.5KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. # Copyright (C) 2018 NTT DATA
  2. # All Rights Reserved.
  3. #
  4. # Licensed under the Apache License, Version 2.0 (the "License"); you may
  5. # not use this file except in compliance with the License. You may obtain
  6. # a copy of the License at
  7. #
  8. # http://www.apache.org/licenses/LICENSE-2.0
  9. #
  10. # Unless required by applicable law or agreed to in writing, software
  11. # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
  12. # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
  13. # License for the specific language governing permissions and limitations
  14. # under the License.
  15. """
  16. Schema for V3 volume type encryption API.
  17. """
  18. import copy
  19. from cinder.api.validation import parameter_types
  20. create = {
  21. 'type': 'object',
  22. 'properties': {
  23. 'encryption': {
  24. 'type': 'object',
  25. 'properties': {
  26. 'key_size': parameter_types.key_size,
  27. 'provider': {'type': 'string', 'minLength': 0,
  28. 'maxLength': 255},
  29. 'control_location': {'enum': ['front-end', 'back-end']},
  30. 'cipher': {'type': ['string', 'null'],
  31. 'minLength': 0, 'maxLength': 255},
  32. },
  33. 'required': ['provider', 'control_location'],
  34. 'additionalProperties': False,
  35. },
  36. },
  37. 'required': ['encryption'],
  38. 'additionalProperties': False,
  39. }
  40. update = copy.deepcopy(create)
  41. update['properties']['encryption']['required'] = []