Skip to content

Commit 5aa1518

Browse files
authored
Refactoring StorPool tests (#11107)
* Refactor StorPool smoke tests * Marvin confing template for StorPool tests
1 parent bcd738c commit 5aa1518

File tree

8 files changed

+414
-236
lines changed

8 files changed

+414
-236
lines changed

test/integration/plugins/storpool/MigrateVolumeToStorPool.py

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,12 @@ def setUpCloudStack(cls):
8484
zone = config.zones[0]
8585
assert zone is not None
8686

87+
td = TestData()
88+
cls.testdata = td.testdata
89+
cls.helper = StorPoolHelper()
90+
sp_pools = cls.helper.get_pool(zone)
91+
assert sp_pools is not None
92+
8793
cls.spapi = spapi.Api(host=zone.spEndpoint, port=zone.spEndpointPort, auth=zone.spAuthToken, multiCluster=True)
8894
testClient = super(TestMigrateVolumeToAnotherPool, cls).getClsTestClient()
8995
cls.apiclient = testClient.getApiClient()
@@ -103,11 +109,8 @@ def setUpCloudStack(cls):
103109
# Get Zone, Domain and templates
104110
cls.domain = get_domain(cls.apiclient)
105111

106-
td = TestData()
107-
cls.testdata = td.testdata
108-
cls.helper = StorPoolHelper()
109-
storpool_primary_storage = cls.testdata[TestData.primaryStorage]
110-
cls.template_name = storpool_primary_storage.get("name")
112+
storpool_primary_storage = sp_pools[0]
113+
cls.template_name = storpool_primary_storage["name"]
111114
storpool_service_offerings = cls.testdata[TestData.serviceOffering]
112115

113116
nfs_service_offerings = cls.testdata[TestData.serviceOfferingsPrimary]
@@ -283,12 +286,6 @@ def tearDownClass(cls):
283286
@classmethod
284287
def cleanUpCloudStack(cls):
285288
try:
286-
if cls.nfs_storage_pool.state is not "Maintenance":
287-
cls.nfs_storage_pool = StoragePool.enableMaintenance(cls.apiclient, cls.nfs_storage_pool.id)
288-
289-
if cls.ceph_storage_pool.state is not "Maintenance":
290-
cls.ceph_storage_pool = StoragePool.enableMaintenance(cls.apiclient, cls.ceph_storage_pool.id)
291-
292289
cls.storage_pool = StoragePool.update(cls.apiclient,
293290
id=cls.storage_pool.id,
294291
tags = ["ssd"])

test/integration/plugins/storpool/TestEncryptedVolumes.py

Lines changed: 38 additions & 97 deletions
Original file line numberDiff line numberDiff line change
@@ -97,9 +97,18 @@ def setUpCloudStack(cls):
9797

9898
zone = config.zones[0]
9999
assert zone is not None
100-
cls.zone = list_zones(cls.apiclient, name=zone.name)[0]
101100

102-
cls.hostConfig = cls.config.__dict__["zones"][0].__dict__["pods"][0].__dict__["clusters"][0].__dict__["hosts"][0].__dict__
101+
storage_pools = zone.primaryStorages
102+
sp_pools = []
103+
for storage in storage_pools:
104+
if storage['provider'] and "StorPool" in storage['provider']:
105+
sp_pools.append(storage)
106+
107+
if len(sp_pools) < 2:
108+
cls.debug("Cannot perform the tests because there aren't the required count of StorPool storage pools %s" % sp_pools)
109+
return
110+
111+
cls.zone = list_zones(cls.apiclient, name=zone.name)[0]
103112

104113
cls.spapi = spapi.Api(host=zone.spEndpoint, port=zone.spEndpointPort, auth=zone.spAuthToken, multiCluster=True)
105114
cls.helper = StorPoolHelper()
@@ -118,124 +127,56 @@ def setUpCloudStack(cls):
118127
td = TestData()
119128
cls.testdata = td.testdata
120129

121-
cls.sp_template_1 = "ssd"
122-
storpool_primary_storage = {
123-
"name": cls.sp_template_1,
124-
"zoneid": cls.zone.id,
125-
"url": "SP_API_HTTP=%s:%s;SP_AUTH_TOKEN=%s;SP_TEMPLATE=%s" % (zone.spEndpoint, zone.spEndpointPort, zone.spAuthToken, cls.sp_template_1),
126-
"scope": "zone",
127-
"capacitybytes": 564325555333,
128-
"capacityiops": 155466,
129-
"hypervisor": "kvm",
130-
"provider": "StorPool",
131-
"tags": cls.sp_template_1
132-
}
133-
134-
cls.storpool_primary_storage = storpool_primary_storage
130+
storpool_primary_storage = sp_pools[0]
131+
cls.template_name = storpool_primary_storage["name"]
135132

136133
storage_pool = list_storage_pools(
137134
cls.apiclient,
138-
name=storpool_primary_storage["name"]
139-
)
140-
135+
name=cls.template_name
136+
)
141137
if storage_pool is None:
142-
newTemplate = sptypes.VolumeTemplateCreateDesc(name=storpool_primary_storage["name"], placeAll="virtual",
143-
placeTail="virtual", placeHead="virtual", replication=1)
144-
template_on_local = cls.spapi.volumeTemplateCreate(newTemplate)
145-
146138
storage_pool = StoragePool.create(cls.apiclient, storpool_primary_storage)
147139
else:
148140
storage_pool = storage_pool[0]
149-
cls.primary_storage = storage_pool
141+
cls.storage_pool = storage_pool
142+
cls.helper.updateStoragePoolTags(cls.apiclient, cls.storage_pool.id, cls.testdata[TestData.sp_template_1]["tags"])
150143

151-
storpool_service_offerings_ssd = {
152-
"name": "ssd-encrypted",
153-
"displaytext": "SP_CO_2 (Min IOPS = 10,000; Max IOPS = 15,000)",
154-
"cpunumber": 1,
155-
"cpuspeed": 500,
156-
"memory": 512,
157-
"storagetype": "shared",
158-
"customizediops": False,
159-
"hypervisorsnapshotreserve": 200,
160-
"encryptroot": True,
161-
"tags": cls.sp_template_1
162-
}
144+
cls.debug(pprint.pformat(storage_pool))
163145

164-
service_offerings_ssd = list_service_offering(
165-
cls.apiclient,
166-
name=storpool_service_offerings_ssd["name"]
167-
)
146+
cls.primary_storage = storage_pool
168147

169-
if service_offerings_ssd is None:
170-
service_offerings_ssd = ServiceOffering.create(cls.apiclient, storpool_service_offerings_ssd, encryptroot=True)
171-
else:
172-
service_offerings_ssd = service_offerings_ssd[0]
148+
storpool_primary_storage = sp_pools[1]
149+
cls.template_name = storpool_primary_storage["name"]
173150

174-
cls.service_offering = service_offerings_ssd
175-
cls.debug(pprint.pformat(cls.service_offering))
176-
177-
cls.sp_template_2 = "ssd2"
178-
179-
storpool_primary_storage2 = {
180-
"name": cls.sp_template_2,
181-
"zoneid": cls.zone.id,
182-
"url": "SP_API_HTTP=%s:%s;SP_AUTH_TOKEN=%s;SP_TEMPLATE=%s" % (zone.spEndpoint, zone.spEndpointPort, zone.spAuthToken, cls.sp_template_2),
183-
"scope": "zone",
184-
"capacitybytes": 564325555333,
185-
"capacityiops": 1554,
186-
"hypervisor": "kvm",
187-
"provider": "StorPool",
188-
"tags": cls.sp_template_2
189-
}
190-
191-
cls.storpool_primary_storage2 = storpool_primary_storage2
192151
storage_pool = list_storage_pools(
193152
cls.apiclient,
194-
name=storpool_primary_storage2["name"]
195-
)
196-
153+
name=cls.template_name
154+
)
197155
if storage_pool is None:
198-
newTemplate = sptypes.VolumeTemplateCreateDesc(name=storpool_primary_storage2["name"], placeAll="virtual",
199-
placeTail="virtual", placeHead="virtual", replication=1)
200-
template_on_local = cls.spapi.volumeTemplateCreate(newTemplate)
201-
storage_pool = StoragePool.create(cls.apiclient, storpool_primary_storage2)
202-
156+
storage_pool = StoragePool.create(cls.apiclient, storpool_primary_storage)
203157
else:
204158
storage_pool = storage_pool[0]
205-
cls.primary_storage2 = storage_pool
159+
cls.storage_pool = storage_pool
160+
cls.helper.updateStoragePoolTags(cls.apiclient, cls.storage_pool.id, cls.testdata[TestData.sp_template_2]["tags"])
206161

207-
storpool_service_offerings_ssd2 = {
208-
"name": "ssd2-encrypted",
209-
"displaytext": "SP_CO_2",
210-
"cpunumber": 1,
211-
"cpuspeed": 500,
212-
"memory": 512,
213-
"storagetype": "shared",
214-
"customizediops": False,
215-
"encryptroot": True,
216-
"tags": cls.sp_template_2
217-
}
218-
219-
service_offerings_ssd2 = list_service_offering(
220-
cls.apiclient,
221-
name=storpool_service_offerings_ssd2["name"]
222-
)
162+
cls.debug(pprint.pformat(storage_pool))
223163

224-
if service_offerings_ssd2 is None:
225-
service_offerings_ssd2 = ServiceOffering.create(cls.apiclient, storpool_service_offerings_ssd2, encryptroot=True)
226-
else:
227-
service_offerings_ssd2 = service_offerings_ssd2[0]
164+
cls.primary_storage2 = storage_pool
228165

229-
cls.service_offering2 = service_offerings_ssd2
166+
storpool_service_offerings_ssd = cls.testdata[TestData.serviceOfferingEncrypted]
230167

231-
cls.disk_offerings_ssd2_encrypted = list_disk_offering(
168+
service_offerings_ssd = list_service_offering(
232169
cls.apiclient,
233-
name=cls.testdata[TestData.diskOfferingEncrypted2]["name"]
170+
name=storpool_service_offerings_ssd["name"]
234171
)
235-
if cls.disk_offerings_ssd2_encrypted is None:
236-
cls.disk_offerings_ssd2_encrypted = DiskOffering.create(cls.apiclient, cls.testdata[TestData.diskOfferingEncrypted2], encrypt=True)
172+
173+
if service_offerings_ssd is None:
174+
service_offerings_ssd = ServiceOffering.create(cls.apiclient, storpool_service_offerings_ssd, encryptroot=True)
237175
else:
238-
cls.disk_offerings_ssd2_encrypted = cls.disk_offerings_ssd2_encrypted[0]
176+
service_offerings_ssd = service_offerings_ssd[0]
177+
178+
cls.service_offering = service_offerings_ssd
179+
cls.debug(pprint.pformat(cls.service_offering))
239180

240181
cls.disk_offering_ssd_encrypted = list_disk_offering(
241182
cls.apiclient,

0 commit comments

Comments
 (0)