storageclass.py 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. # pylint: skip-file
  2. # flake8: noqa
  3. # pylint: disable=too-many-instance-attributes
  4. class StorageClassConfig(object):
  5. ''' Handle service options '''
  6. # pylint: disable=too-many-arguments
  7. def __init__(self,
  8. name,
  9. provisioner,
  10. parameters=None,
  11. annotations=None,
  12. default_storage_class="false",
  13. api_version='v1',
  14. kubeconfig='/etc/origin/master/admin.kubeconfig'):
  15. ''' constructor for handling storageclass options '''
  16. self.name = name
  17. self.parameters = parameters
  18. self.annotations = annotations
  19. self.provisioner = provisioner
  20. self.api_version = api_version
  21. self.default_storage_class = str(default_storage_class).lower()
  22. self.kubeconfig = kubeconfig
  23. self.data = {}
  24. self.create_dict()
  25. def create_dict(self):
  26. ''' instantiates a storageclass dict '''
  27. self.data['apiVersion'] = self.api_version
  28. self.data['kind'] = 'StorageClass'
  29. self.data['metadata'] = {}
  30. self.data['metadata']['name'] = self.name
  31. self.data['metadata']['annotations'] = {}
  32. if self.annotations is not None:
  33. self.data['metadata']['annotations'] = self.annotations
  34. self.data['metadata']['annotations']['storageclass.beta.kubernetes.io/is-default-class'] = \
  35. self.default_storage_class
  36. self.data['provisioner'] = self.provisioner
  37. self.data['parameters'] = {}
  38. if self.parameters is not None:
  39. self.data['parameters'].update(self.parameters)
  40. # default to aws if no params were passed
  41. else:
  42. self.data['parameters']['type'] = 'gp2'
  43. # pylint: disable=too-many-instance-attributes,too-many-public-methods
  44. class StorageClass(Yedit):
  45. ''' Class to model the oc storageclass object '''
  46. annotations_path = "metadata.annotations"
  47. provisioner_path = "provisioner"
  48. parameters_path = "parameters"
  49. kind = 'StorageClass'
  50. def __init__(self, content):
  51. '''StorageClass constructor'''
  52. super(StorageClass, self).__init__(content=content)
  53. def get_annotations(self):
  54. ''' get a list of ports '''
  55. return self.get(StorageClass.annotations_path) or {}
  56. def get_parameters(self):
  57. ''' get the service selector'''
  58. return self.get(StorageClass.parameters_path) or {}