diff options
author | OpenShift Bot <eparis+openshiftbot@redhat.com> | 2017-07-18 12:02:24 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-07-18 12:02:24 -0400 |
commit | 742203529902ba278c213e326f81f667304b9625 (patch) | |
tree | fe30ee99dcf3ea34e4ade84f630bd1d794581c9a /roles/lib_openshift/src/lib | |
parent | 057a58db0949900e75cf9f602b949bacbb78158f (diff) | |
parent | 94923be737328a2f0227b70a8dc12bda7e731f1d (diff) | |
download | openshift-742203529902ba278c213e326f81f667304b9625.tar.gz openshift-742203529902ba278c213e326f81f667304b9625.tar.bz2 openshift-742203529902ba278c213e326f81f667304b9625.tar.xz openshift-742203529902ba278c213e326f81f667304b9625.zip |
Merge pull request #4669 from kwoodson/storageclass
Merged by openshift-bot
Diffstat (limited to 'roles/lib_openshift/src/lib')
-rw-r--r-- | roles/lib_openshift/src/lib/storageclass.py | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/roles/lib_openshift/src/lib/storageclass.py b/roles/lib_openshift/src/lib/storageclass.py new file mode 100644 index 000000000..ef12a8d2d --- /dev/null +++ b/roles/lib_openshift/src/lib/storageclass.py @@ -0,0 +1,76 @@ +# pylint: skip-file +# flake8: noqa + + +# pylint: disable=too-many-instance-attributes +class StorageClassConfig(object): + ''' Handle service options ''' + # pylint: disable=too-many-arguments + def __init__(self, + name, + provisioner=None, + parameters=None, + annotations=None, + default_storage_class="false", + api_version='v1', + kubeconfig='/etc/origin/master/admin.kubeconfig'): + ''' constructor for handling storageclass options ''' + self.name = name + self.parameters = parameters + self.annotations = annotations + self.provisioner = provisioner + self.api_version = api_version + self.default_storage_class = str(default_storage_class).lower() + self.kubeconfig = kubeconfig + self.data = {} + + self.create_dict() + + def create_dict(self): + ''' instantiates a storageclass dict ''' + self.data['apiVersion'] = self.api_version + self.data['kind'] = 'StorageClass' + self.data['metadata'] = {} + self.data['metadata']['name'] = self.name + + self.data['metadata']['annotations'] = {} + if self.annotations is not None: + self.data['metadata']['annotations'] = self.annotations + + self.data['metadata']['annotations']['storageclass.beta.kubernetes.io/is-default-class'] = \ + self.default_storage_class + + if self.provisioner is None: + self.data['provisioner'] = 'kubernetes.io/aws-ebs' + else: + self.data['provisioner'] = self.provisioner + + self.data['parameters'] = {} + if self.parameters is not None: + self.data['parameters'].update(self.parameters) + + # default to aws if no params were passed + else: + self.data['parameters']['type'] = 'gp2' + + + +# pylint: disable=too-many-instance-attributes,too-many-public-methods +class StorageClass(Yedit): + ''' Class to model the oc storageclass object ''' + annotations_path = "metadata.annotations" + provisioner_path = "provisioner" + parameters_path = "parameters" + kind = 'StorageClass' + + def __init__(self, content): + '''StorageClass constructor''' + super(StorageClass, self).__init__(content=content) + + def get_annotations(self): + ''' get a list of ports ''' + return self.get(StorageClass.annotations_path) or {} + + def get_parameters(self): + ''' get the service selector''' + return self.get(StorageClass.parameters_path) or {} |