summaryrefslogtreecommitdiffstats
path: root/openshift-storage-libs/openshiftstoragelibs/baseclass.py
diff options
context:
space:
mode:
authorValerii Ponomarov <vponomar@redhat.com>2019-10-25 21:04:33 +0530
committerValerii Ponomarov <vponomar@redhat.com>2019-10-31 19:55:46 +0530
commitc2813c9d15d0ca5379a69c468c4586a623e5613a (patch)
tree60087547b3fb3b58bf3cdfccb9146bdb07d3f98a /openshift-storage-libs/openshiftstoragelibs/baseclass.py
parent8ff1ad960ac164e1157df69f12c748e764d8af4f (diff)
Make 'provisioner' be autocalculated for storage classes
In OCS 3.11.4 was changed the approach for 'provisioners' in storage classes due to the BugZilla bugs [1] and [2]. So, change the approach for getting 'provisioner' value in this project making it be autocalculated based on the data taken from the block provisioner pod, which is located in the working namespace. [1] https://bugzilla.redhat.com/show_bug.cgi?id=1732787 [2] https://bugzilla.redhat.com/show_bug.cgi?id=1738394 Change-Id: Ic1037038e39abba2b2a1ad6dc3ddbfe42473cb88 Signed-off-by: vamahaja <vamahaja@redhat.com>
Diffstat (limited to 'openshift-storage-libs/openshiftstoragelibs/baseclass.py')
-rw-r--r--openshift-storage-libs/openshiftstoragelibs/baseclass.py30
1 files changed, 22 insertions, 8 deletions
diff --git a/openshift-storage-libs/openshiftstoragelibs/baseclass.py b/openshift-storage-libs/openshiftstoragelibs/baseclass.py
index b000a64..cd9f24c 100644
--- a/openshift-storage-libs/openshiftstoragelibs/baseclass.py
+++ b/openshift-storage-libs/openshiftstoragelibs/baseclass.py
@@ -28,6 +28,7 @@ from openshiftstoragelibs.node_ops import (
node_delete_iptables_rules,
)
from openshiftstoragelibs.openshift_ops import (
+ get_block_provisioner,
get_pod_name_from_dc,
get_pv_name_from_pvc,
oc_create_app_dc_with_io,
@@ -80,13 +81,13 @@ class BaseClass(unittest.TestCase):
cls.ocp_nodes_info = g.config['ocp_servers']['nodes']
# Initializes storage project config variables
- openshift_config = g.config.get("cns", g.config.get("openshift"))
- cls.storage_project_name = openshift_config.get(
+ cls.openshift_config = g.config.get("cns", g.config.get("openshift"))
+ cls.storage_project_name = cls.openshift_config.get(
'storage_project_name',
- openshift_config.get('setup', {}).get('cns_project_name'))
+ cls.openshift_config.get('setup', {}).get('cns_project_name'))
# Initializes heketi config variables
- heketi_config = openshift_config['heketi_config']
+ heketi_config = cls.openshift_config['heketi_config']
cls.heketi_dc_name = heketi_config['heketi_dc_name']
cls.heketi_service_name = heketi_config['heketi_service_name']
cls.heketi_client_node = heketi_config['heketi_client_node']
@@ -97,10 +98,12 @@ class BaseClass(unittest.TestCase):
cls.gluster_servers = list(g.config['gluster_servers'].keys())
cls.gluster_servers_info = g.config['gluster_servers']
- cls.storage_classes = openshift_config['dynamic_provisioning'][
+ cls.storage_classes = cls.openshift_config['dynamic_provisioning'][
'storage_classes']
cls.sc = cls.storage_classes.get(
'storage_class1', cls.storage_classes.get('file_storage_class'))
+ cls.secret_type = "kubernetes.io/glusterfs"
+
cmd = "echo -n %s | base64" % cls.heketi_cli_key
ret, out, err = g.run(cls.ocp_master_node[0], cmd, "root")
if ret != 0:
@@ -184,7 +187,8 @@ class BaseClass(unittest.TestCase):
current_number_of_heketi_db_inconsistencies,
error_msg)
- def create_secret(self, secret_name_prefix="autotests-secret"):
+ def create_secret(self, secret_name_prefix="autotests-secret",
+ secret_type=None):
secret_name = oc_create_secret(
self.ocp_client[0],
secret_name_prefix=secret_name_prefix,
@@ -192,7 +196,7 @@ class BaseClass(unittest.TestCase):
'secretnamespace',
self.sc.get('restsecretnamespace', 'default'))),
data_key=self.heketi_cli_key,
- secret_type=self.sc.get('provisioner', 'kubernetes.io/glusterfs'))
+ secret_type=secret_type or self.secret_type)
self.addCleanup(
oc_delete, self.ocp_client[0], 'secret', secret_name)
return secret_name
@@ -217,7 +221,7 @@ class BaseClass(unittest.TestCase):
# Create storage class
secret_name_option = "secretname"
secret_namespace_option = "secretnamespace"
- provisioner = self.sc.get("provisioner", "kubernetes.io/glusterfs")
+ provisioner = self.get_provisioner_for_sc()
if provisioner != "kubernetes.io/glusterfs":
secret_name_option = "rest%s" % secret_name_option
secret_namespace_option = "rest%s" % secret_namespace_option
@@ -264,6 +268,12 @@ class BaseClass(unittest.TestCase):
self.addCleanup(oc_delete, self.ocp_client[0], "sc", self.sc_name)
return self.sc_name
+ def get_provisioner_for_sc(self):
+ return "kubernetes.io/glusterfs"
+
+ def get_block_provisioner_for_sc(self):
+ return get_block_provisioner(self.ocp_client[0])
+
def create_and_wait_for_pvcs(self, pvc_size=1,
pvc_name_prefix="autotests-pvc",
pvc_amount=1, sc_name=None,
@@ -513,6 +523,10 @@ class GlusterBlockBaseClass(BaseClass):
super(GlusterBlockBaseClass, cls).setUpClass()
cls.sc = cls.storage_classes.get(
'storage_class2', cls.storage_classes.get('block_storage_class'))
+ cls.secret_type = "gluster.org/glusterblock"
+
+ def get_provisioner_for_sc(self):
+ return self.get_block_provisioner_for_sc()
def verify_iscsi_sessions_and_multipath(self, pvc_name, rname, rtype="dc"):
# Get storage ips of glusterfs pods