Skip to content

Commit 0d5949d

Browse files
committed
update marvin tests to use the new APIs
1 parent f0050ff commit 0d5949d

2 files changed

Lines changed: 93 additions & 24 deletions

File tree

test/integration/smoke/test_vm_schedule.py

Lines changed: 48 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
""" P1 tests for VM Schedule
1818
"""
1919
from marvin.cloudstackTestCase import cloudstackTestCase
20-
from marvin.lib.base import Account, ServiceOffering, VirtualMachine, VMSchedule
20+
from marvin.lib.base import Account, ServiceOffering, VirtualMachine, ResourceSchedule
2121
from marvin.lib.common import get_domain, get_zone, get_template
2222
from marvin.lib.utils import cleanup_resources
2323

@@ -28,6 +28,8 @@
2828
import time
2929

3030

31+
RESOURCE_TYPE = "VirtualMachine"
32+
3133
class Services:
3234
"""Test Snapshots Services"""
3335

@@ -148,8 +150,9 @@ def test_01_vmschedule_create(self):
148150

149151
# Create VM Schedule
150152
schedule = "0 0 1 * *"
151-
vmschedule = VMSchedule.create(
153+
vmschedule = ResourceSchedule.create(
152154
self.apiclient,
155+
RESOURCE_TYPE,
153156
self.virtual_machine.id,
154157
"start",
155158
schedule,
@@ -166,8 +169,8 @@ def test_01_vmschedule_create(self):
166169
self.debug("Created VM Schedule with ID: %s" % vmschedule.id)
167170

168171
# List VM Schedule
169-
vmschedules = VMSchedule.list(
170-
self.apiclient, self.virtual_machine.id, id=vmschedule.id
172+
vmschedules = ResourceSchedule.list(
173+
self.apiclient, RESOURCE_TYPE, self.virtual_machine.id, id=vmschedule.id
171174
)
172175

173176
self.assertEqual(
@@ -187,9 +190,15 @@ def test_01_vmschedule_create(self):
187190
)
188191

189192
self.assertEqual(
190-
vmschedules[0].virtualmachineid,
193+
vmschedules[0].resourceid,
191194
self.virtual_machine.id,
192-
"Check VM ID in list resources call",
195+
"Check resource ID in list resources call",
196+
)
197+
198+
self.assertEqual(
199+
vmschedules[0].resourcetype,
200+
RESOURCE_TYPE,
201+
"Check resource type in list resources call",
193202
)
194203

195204
self.assertEqual(
@@ -237,8 +246,9 @@ def test_02_vmschedule_create_parameter_exceptions(self):
237246

238247
# Create VM Schedule with invalid virtual machine ID
239248
with self.assertRaises(Exception):
240-
VMSchedule.create(
249+
ResourceSchedule.create(
241250
self.apiclient,
251+
RESOURCE_TYPE,
242252
"invalid",
243253
"start",
244254
"0 0 1 * *",
@@ -251,8 +261,9 @@ def test_02_vmschedule_create_parameter_exceptions(self):
251261

252262
# Create VM Schedule with invalid schedule
253263
with self.assertRaises(Exception):
254-
VMSchedule.create(
264+
ResourceSchedule.create(
255265
self.apiclient,
266+
RESOURCE_TYPE,
256267
self.virtual_machine.id,
257268
"start",
258269
"invalid",
@@ -265,8 +276,9 @@ def test_02_vmschedule_create_parameter_exceptions(self):
265276

266277
# Create VM Schedule with invalid start date
267278
with self.assertRaises(Exception):
268-
VMSchedule.create(
279+
ResourceSchedule.create(
269280
self.apiclient,
281+
RESOURCE_TYPE,
270282
self.virtual_machine.id,
271283
"start",
272284
"0 0 1 * *",
@@ -277,8 +289,9 @@ def test_02_vmschedule_create_parameter_exceptions(self):
277289

278290
# Create VM Schedule with invalid action
279291
with self.assertRaises(Exception):
280-
VMSchedule.create(
292+
ResourceSchedule.create(
281293
self.apiclient,
294+
RESOURCE_TYPE,
282295
self.virtual_machine.id,
283296
"invalid",
284297
"0 0 1 * *",
@@ -291,8 +304,9 @@ def test_02_vmschedule_create_parameter_exceptions(self):
291304

292305
# test invalid end date
293306
with self.assertRaises(Exception):
294-
VMSchedule.create(
307+
ResourceSchedule.create(
295308
self.apiclient,
309+
RESOURCE_TYPE,
296310
self.virtual_machine.id,
297311
"start",
298312
"0 0 1 * *",
@@ -315,8 +329,9 @@ def test_03_vmschedule_update(self):
315329

316330
# Create VM Schedule
317331
schedule = "0 0 1 * *"
318-
vmschedule = VMSchedule.create(
332+
vmschedule = ResourceSchedule.create(
319333
self.apiclient,
334+
RESOURCE_TYPE,
320335
self.virtual_machine.id,
321336
"start",
322337
schedule,
@@ -351,8 +366,8 @@ def test_03_vmschedule_update(self):
351366
self.debug("Updated VM Schedule with ID: %s" % vmschedule.id)
352367

353368
# List VM Schedule
354-
vmschedules = VMSchedule.list(
355-
self.apiclient, self.virtual_machine.id, id=vmschedule.id
369+
vmschedules = ResourceSchedule.list(
370+
self.apiclient, RESOURCE_TYPE, self.virtual_machine.id, id=vmschedule.id
356371
)
357372
self.assertEqual(
358373
isinstance(vmschedules, list),
@@ -371,11 +386,17 @@ def test_03_vmschedule_update(self):
371386
)
372387

373388
self.assertEqual(
374-
vmschedules[0].virtualmachineid,
389+
vmschedules[0].resourceid,
375390
self.virtual_machine.id,
376391
"Check VM ID in list resources call",
377392
)
378393

394+
self.assertEqual(
395+
vmschedules[0].resourcetype,
396+
RESOURCE_TYPE,
397+
"Check VM ID in list resources call",
398+
)
399+
379400
self.assertEqual(
380401
vmschedules[0].schedule,
381402
new_schedule,
@@ -395,8 +416,9 @@ def test_04_vmschedule_update_parameter_exceptions(self):
395416

396417
# Create VM Schedule
397418
schedule = "0 0 1 * *"
398-
vmschedule = VMSchedule.create(
419+
vmschedule = ResourceSchedule.create(
399420
self.apiclient,
421+
RESOURCE_TYPE,
400422
self.virtual_machine.id,
401423
"start",
402424
schedule,
@@ -486,8 +508,9 @@ def test_05_vmschedule_test_e2e(self):
486508

487509
# Create VM Schedule - start
488510
start_schedule = "*/2 * * * *"
489-
start_vmschedule = VMSchedule.create(
511+
start_vmschedule = ResourceSchedule.create(
490512
self.apiclient,
513+
RESOURCE_TYPE,
491514
self.virtual_machine.id,
492515
"start",
493516
start_schedule,
@@ -503,8 +526,9 @@ def test_05_vmschedule_test_e2e(self):
503526

504527
# Create VM Schedule - stop
505528
stop_schedule = "*/1 * * * *"
506-
stop_vmschedule = VMSchedule.create(
529+
stop_vmschedule = ResourceSchedule.create(
507530
self.apiclient,
531+
RESOURCE_TYPE,
508532
self.virtual_machine.id,
509533
"stop",
510534
stop_schedule,
@@ -519,8 +543,8 @@ def test_05_vmschedule_test_e2e(self):
519543
self.debug("Created VM Schedule with ID: %s" % stop_vmschedule.id)
520544

521545
# Verify VM Schedule is created
522-
vmschedules = VMSchedule.list(
523-
self.apiclient, self.virtual_machine.id, id=start_vmschedule.id
546+
vmschedules = ResourceSchedule.list(
547+
self.apiclient, RESOURCE_TYPE, self.virtual_machine.id, id=start_vmschedule.id
524548
)
525549

526550
self.assertEqual(
@@ -575,15 +599,15 @@ def test_05_vmschedule_test_e2e(self):
575599

576600
# Verify VM Schedule is deleted
577601
self.assertEqual(
578-
VMSchedule.list(
579-
self.apiclient, self.virtual_machine.id, id=start_vmschedule.id
602+
ResourceSchedule.list(
603+
self.apiclient, RESOURCE_TYPE, self.virtual_machine.id, id=start_vmschedule.id
580604
),
581605
None,
582606
"Check VM Schedule is deleted",
583607
)
584608
self.assertEqual(
585-
VMSchedule.list(
586-
self.apiclient, self.virtual_machine.id, id=stop_vmschedule.id
609+
ResourceSchedule.list(
610+
self.apiclient, RESOURCE_TYPE, self.virtual_machine.id, id=stop_vmschedule.id
587611
),
588612
None,
589613
"Check VM Schedule is deleted",

tools/marvin/marvin/lib/base.py

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7052,6 +7052,51 @@ def delete(self, apiclient):
70527052
cmd.virtualmachineid = self.virtualmachineid
70537053
return (apiclient.deleteVMSchedule(cmd))
70547054

7055+
7056+
class ResourceSchedule:
7057+
7058+
def __init__(self, items):
7059+
self.__dict__.update(items)
7060+
7061+
@classmethod
7062+
def create(cls, apiclient, resourcetype, resourceid, action, schedule, timezone, startdate, enddate=None, enabled=False, description=None, details=None):
7063+
cmd = createResourceSchedule.createResourceScheduleCmd()
7064+
cmd.resourcetype = resourcetype
7065+
cmd.resourceid = resourceid
7066+
cmd.description = description
7067+
cmd.action = action
7068+
cmd.schedule = schedule
7069+
cmd.timezone = timezone
7070+
cmd.startdate = startdate
7071+
cmd.enddate = enddate
7072+
cmd.enabled = enabled
7073+
cmd.details = details
7074+
return ResourceSchedule(apiclient.createResourceSchedule(cmd).__dict__)
7075+
7076+
@classmethod
7077+
def list(cls, apiclient, resourcetype, resourceid, id=None, enabled=None, action=None):
7078+
cmd = listResourceSchedule.listResourceScheduleCmd()
7079+
cmd.resourcetype = resourcetype
7080+
cmd.resourceid = resourceid
7081+
cmd.id = id
7082+
cmd.enabled = enabled
7083+
cmd.action = action
7084+
return apiclient.listResourceSchedule(cmd)
7085+
7086+
def update(self, apiclient, **kwargs):
7087+
cmd = updateResourceSchedule.updateResourceScheduleCmd()
7088+
cmd.id = self.id
7089+
[setattr(cmd, k, v) for k, v in list(kwargs.items())]
7090+
return apiclient.updateResourceSchedule(cmd)
7091+
7092+
def delete(self, apiclient):
7093+
cmd = deleteResourceSchedule.deleteResourceScheduleCmd()
7094+
cmd.id = self.id
7095+
cmd.resourcetype = self.resourcetype
7096+
cmd.resourceid = self.resourceid
7097+
return apiclient.deleteResourceSchedule(cmd)
7098+
7099+
70557100
class VnfTemplate:
70567101
"""Manage VNF template life cycle"""
70577102

0 commit comments

Comments
 (0)