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

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  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. """Schema for V3 volume type encryption API."""
  16. import copy
  17. from cinder.api.validation import parameter_types
  18. create = {
  19. 'type': 'object',
  20. 'properties': {
  21. 'encryption': {
  22. 'type': 'object',
  23. 'properties': {
  24. 'key_size': parameter_types.key_size,
  25. 'provider': {'type': 'string', 'minLength': 0,
  26. 'maxLength': 255},
  27. 'control_location': {'enum': ['front-end', 'back-end']},
  28. 'cipher': {'type': ['string', 'null'],
  29. 'minLength': 0, 'maxLength': 255},
  30. },
  31. 'required': ['provider', 'control_location'],
  32. 'additionalProperties': True,
  33. },
  34. },
  35. 'required': ['encryption'],
  36. 'additionalProperties': False,
  37. }
  38. update = copy.deepcopy(create)
  39. update['properties']['encryption']['required'] = []