1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
from cnslibs.cns.cns_baseclass import CnsSetupBaseClass
from cnslibs.common.dynamic_provisioning import (
create_secret_file,
create_storage_class_file,
create_pvc_file,
create_app_pod_file)
from cnslibs.common.openshift_ops import oc_create
from glusto.core import Glusto as g
class TestDynamicProvisioning(CnsSetupBaseClass):
'''
Class for basic dynamic provisioning
'''
@classmethod
def setUpClass(cls):
super(TestDynamicProvisioning, cls).setUpClass()
super(TestDynamicProvisioning, cls).cns_deploy()
def test_dynamic_provisioning(self):
g.log.info("testcase to test basic dynamic provisioning")
storage_class = self.cns_storage_class['storage_class1']
sc_name = storage_class['name']
ret = create_storage_class_file(
self.ocp_master_node[0],
sc_name,
storage_class['resturl'],
storage_class['provisioner'],
restuser=storage_class['restuser'],
secretnamespace=storage_class['secretnamespace'],
secretname=storage_class['secretname'])
self.assertTrue(ret, "creation of storage-class file failed")
provisioner_name = storage_class['provisioner'].split("/")
file_path = ("/%s-%s-storage-class.yaml" % (
sc_name, provisioner_name[1]))
oc_create(self.ocp_master_node[0], file_path)
secret = self.cns_secret['secret1']
ret = create_secret_file(self.ocp_master_node[0],
secret['secret_name'],
secret['namespace'],
secret['data_key'],
secret['type'])
self.assertTrue(ret, "creation of heketi-secret file failed")
oc_create(self.ocp_master_node[0],
"/%s.yaml" % secret['secret_name'])
count = self.start_count_for_pvc
for size, pvc in self.cns_pvc_size_number_dict.items():
for i in range(1, pvc + 1):
pvc_name = "pvc-claim%d" % count
g.log.info("starting creation of claim file "
"for %s", pvc_name)
ret = create_pvc_file(self.ocp_master_node[0],
pvc_name, sc_name, size)
self.assertTrue(ret, "create pvc file - %s failed" % pvc_name)
file_path = "/pvc-claim%d.json" % count
g.log.info("starting to create claim %s", pvc_name)
oc_create(self.ocp_master_node[0], file_path)
count = count + 1
cmd = 'oc get pvc | grep pvc-claim | awk \'{print $1}\''
ret, out, err = g.run(self.ocp_master_node[0], cmd, "root")
self.assertEqual(ret, 0, "failed to execute cmd %s on %s err %s" % (
cmd, self.ocp_master_node[0], out))
complete_pvc_list = out.strip().split("\n")
complete_pvc_list = map(str.strip, complete_pvc_list)
count = self.start_count_for_pvc
exisisting_pvc_list = []
for i in range(1, count):
exisisting_pvc_list.append("pvc-claim%d" % i)
pvc_list = list(set(complete_pvc_list) - set(exisisting_pvc_list))
index = 0
for key, value in self.app_pvc_count_dict.items():
for i in range(1, value + 1):
claim_name = pvc_list[index]
app_name = key + str(count)
sample_app_name = key
g.log.info("starting to create app_pod_file for %s", app_name)
ret = create_app_pod_file(
self.ocp_master_node[0], claim_name,
app_name, sample_app_name)
self.assertTrue(
ret, "creating app-pod file - %s failed" % app_name)
file_path = "/%s.yaml" % app_name
g.log.info("starting to create app_pod_%s", app_name)
oc_create(self.ocp_master_node[0], file_path)
index = index + 1
count = count + 1
|