summaryrefslogtreecommitdiffstats
path: root/roles/lib_openshift/src/lib
diff options
context:
space:
mode:
authorThomas Wiest <twiest@redhat.com>2017-01-19 16:16:19 -0500
committerThomas Wiest <twiest@redhat.com>2017-01-25 13:52:41 -0500
commit8f06d5e59f4bfb138b55569431f665f21437ff6c (patch)
tree1c00a730e35936f34743ca54f89a4cc6e0cd3e06 /roles/lib_openshift/src/lib
parentd8fee0cc8441812cdd5e7aaae815adad7a9bbee7 (diff)
downloadopenshift-8f06d5e59f4bfb138b55569431f665f21437ff6c.tar.gz
openshift-8f06d5e59f4bfb138b55569431f665f21437ff6c.tar.bz2
openshift-8f06d5e59f4bfb138b55569431f665f21437ff6c.tar.xz
openshift-8f06d5e59f4bfb138b55569431f665f21437ff6c.zip
Added oc_secret to lib_openshift.
Diffstat (limited to 'roles/lib_openshift/src/lib')
-rw-r--r--roles/lib_openshift/src/lib/secret.py99
1 files changed, 99 insertions, 0 deletions
diff --git a/roles/lib_openshift/src/lib/secret.py b/roles/lib_openshift/src/lib/secret.py
new file mode 100644
index 000000000..39bf3c33a
--- /dev/null
+++ b/roles/lib_openshift/src/lib/secret.py
@@ -0,0 +1,99 @@
+# pylint: skip-file
+# flake8: noqa
+
+# pylint: disable=too-many-instance-attributes
+class SecretConfig(object):
+ ''' Handle secret options '''
+ # pylint: disable=too-many-arguments
+ def __init__(self,
+ sname,
+ namespace,
+ kubeconfig,
+ secrets=None):
+ ''' constructor for handling secret options '''
+ self.kubeconfig = kubeconfig
+ self.name = sname
+ self.namespace = namespace
+ self.secrets = secrets
+ self.data = {}
+
+ self.create_dict()
+
+ def create_dict(self):
+ ''' return a secret as a dict '''
+ self.data['apiVersion'] = 'v1'
+ self.data['kind'] = 'Secret'
+ self.data['metadata'] = {}
+ self.data['metadata']['name'] = self.name
+ self.data['metadata']['namespace'] = self.namespace
+ self.data['data'] = {}
+ if self.secrets:
+ for key, value in self.secrets.items():
+ self.data['data'][key] = value
+
+# pylint: disable=too-many-instance-attributes
+class Secret(Yedit):
+ ''' Class to wrap the oc command line tools '''
+ secret_path = "data"
+ kind = 'secret'
+
+ def __init__(self, content):
+ '''secret constructor'''
+ super(Secret, self).__init__(content=content)
+ self._secrets = None
+
+ @property
+ def secrets(self):
+ '''secret property getter'''
+ if self._secrets is None:
+ self._secrets = self.get_secrets()
+ return self._secrets
+
+ @secrets.setter
+ def secrets(self):
+ '''secret property setter'''
+ if self._secrets is None:
+ self._secrets = self.get_secrets()
+ return self._secrets
+
+ def get_secrets(self):
+ ''' returns all of the defined secrets '''
+ return self.get(Secret.secret_path) or {}
+
+ def add_secret(self, key, value):
+ ''' add a secret '''
+ if self.secrets:
+ self.secrets[key] = value
+ else:
+ self.put(Secret.secret_path, {key: value})
+
+ return True
+
+ def delete_secret(self, key):
+ ''' delete secret'''
+ try:
+ del self.secrets[key]
+ except KeyError as _:
+ return False
+
+ return True
+
+ def find_secret(self, key):
+ ''' find secret'''
+ rval = None
+ try:
+ rval = self.secrets[key]
+ except KeyError as _:
+ return None
+
+ return {'key': key, 'value': rval}
+
+ def update_secret(self, key, value):
+ ''' update a secret'''
+ # pylint: disable=no-member
+ if self.secrets.has_key(key):
+ self.secrets[key] = value
+ else:
+ self.add_secret(key, value)
+
+ return True