update marvin tests to use the new APIs

This commit is contained in:
vishesh92 2026-05-11 17:31:52 +05:30
parent f909d494a0
commit bd1093ea47
No known key found for this signature in database
GPG Key ID: 4E395186CBFA790B
2 changed files with 93 additions and 24 deletions

View File

@ -17,7 +17,7 @@
""" P1 tests for VM Schedule
"""
from marvin.cloudstackTestCase import cloudstackTestCase
from marvin.lib.base import Account, ServiceOffering, VirtualMachine, VMSchedule
from marvin.lib.base import Account, ServiceOffering, VirtualMachine, ResourceSchedule
from marvin.lib.common import get_domain, get_zone, get_template
from marvin.lib.utils import cleanup_resources
@ -28,6 +28,8 @@ import datetime
import time
RESOURCE_TYPE = "VirtualMachine"
class Services:
"""Test Snapshots Services"""
@ -148,8 +150,9 @@ class TestVMSchedule(cloudstackTestCase):
# Create VM Schedule
schedule = "0 0 1 * *"
vmschedule = VMSchedule.create(
vmschedule = ResourceSchedule.create(
self.apiclient,
RESOURCE_TYPE,
self.virtual_machine.id,
"start",
schedule,
@ -166,8 +169,8 @@ class TestVMSchedule(cloudstackTestCase):
self.debug("Created VM Schedule with ID: %s" % vmschedule.id)
# List VM Schedule
vmschedules = VMSchedule.list(
self.apiclient, self.virtual_machine.id, id=vmschedule.id
vmschedules = ResourceSchedule.list(
self.apiclient, RESOURCE_TYPE, self.virtual_machine.id, id=vmschedule.id
)
self.assertEqual(
@ -187,9 +190,15 @@ class TestVMSchedule(cloudstackTestCase):
)
self.assertEqual(
vmschedules[0].virtualmachineid,
vmschedules[0].resourceid,
self.virtual_machine.id,
"Check VM ID in list resources call",
"Check resource ID in list resources call",
)
self.assertEqual(
vmschedules[0].resourcetype,
RESOURCE_TYPE,
"Check resource type in list resources call",
)
self.assertEqual(
@ -237,8 +246,9 @@ class TestVMSchedule(cloudstackTestCase):
# Create VM Schedule with invalid virtual machine ID
with self.assertRaises(Exception):
VMSchedule.create(
ResourceSchedule.create(
self.apiclient,
RESOURCE_TYPE,
"invalid",
"start",
"0 0 1 * *",
@ -251,8 +261,9 @@ class TestVMSchedule(cloudstackTestCase):
# Create VM Schedule with invalid schedule
with self.assertRaises(Exception):
VMSchedule.create(
ResourceSchedule.create(
self.apiclient,
RESOURCE_TYPE,
self.virtual_machine.id,
"start",
"invalid",
@ -265,8 +276,9 @@ class TestVMSchedule(cloudstackTestCase):
# Create VM Schedule with invalid start date
with self.assertRaises(Exception):
VMSchedule.create(
ResourceSchedule.create(
self.apiclient,
RESOURCE_TYPE,
self.virtual_machine.id,
"start",
"0 0 1 * *",
@ -277,8 +289,9 @@ class TestVMSchedule(cloudstackTestCase):
# Create VM Schedule with invalid action
with self.assertRaises(Exception):
VMSchedule.create(
ResourceSchedule.create(
self.apiclient,
RESOURCE_TYPE,
self.virtual_machine.id,
"invalid",
"0 0 1 * *",
@ -291,8 +304,9 @@ class TestVMSchedule(cloudstackTestCase):
# test invalid end date
with self.assertRaises(Exception):
VMSchedule.create(
ResourceSchedule.create(
self.apiclient,
RESOURCE_TYPE,
self.virtual_machine.id,
"start",
"0 0 1 * *",
@ -315,8 +329,9 @@ class TestVMSchedule(cloudstackTestCase):
# Create VM Schedule
schedule = "0 0 1 * *"
vmschedule = VMSchedule.create(
vmschedule = ResourceSchedule.create(
self.apiclient,
RESOURCE_TYPE,
self.virtual_machine.id,
"start",
schedule,
@ -351,8 +366,8 @@ class TestVMSchedule(cloudstackTestCase):
self.debug("Updated VM Schedule with ID: %s" % vmschedule.id)
# List VM Schedule
vmschedules = VMSchedule.list(
self.apiclient, self.virtual_machine.id, id=vmschedule.id
vmschedules = ResourceSchedule.list(
self.apiclient, RESOURCE_TYPE, self.virtual_machine.id, id=vmschedule.id
)
self.assertEqual(
isinstance(vmschedules, list),
@ -371,11 +386,17 @@ class TestVMSchedule(cloudstackTestCase):
)
self.assertEqual(
vmschedules[0].virtualmachineid,
vmschedules[0].resourceid,
self.virtual_machine.id,
"Check VM ID in list resources call",
)
self.assertEqual(
vmschedules[0].resourcetype,
RESOURCE_TYPE,
"Check VM ID in list resources call",
)
self.assertEqual(
vmschedules[0].schedule,
new_schedule,
@ -395,8 +416,9 @@ class TestVMSchedule(cloudstackTestCase):
# Create VM Schedule
schedule = "0 0 1 * *"
vmschedule = VMSchedule.create(
vmschedule = ResourceSchedule.create(
self.apiclient,
RESOURCE_TYPE,
self.virtual_machine.id,
"start",
schedule,
@ -486,8 +508,9 @@ class TestVMSchedule(cloudstackTestCase):
# Create VM Schedule - start
start_schedule = "*/2 * * * *"
start_vmschedule = VMSchedule.create(
start_vmschedule = ResourceSchedule.create(
self.apiclient,
RESOURCE_TYPE,
self.virtual_machine.id,
"start",
start_schedule,
@ -503,8 +526,9 @@ class TestVMSchedule(cloudstackTestCase):
# Create VM Schedule - stop
stop_schedule = "*/1 * * * *"
stop_vmschedule = VMSchedule.create(
stop_vmschedule = ResourceSchedule.create(
self.apiclient,
RESOURCE_TYPE,
self.virtual_machine.id,
"stop",
stop_schedule,
@ -519,8 +543,8 @@ class TestVMSchedule(cloudstackTestCase):
self.debug("Created VM Schedule with ID: %s" % stop_vmschedule.id)
# Verify VM Schedule is created
vmschedules = VMSchedule.list(
self.apiclient, self.virtual_machine.id, id=start_vmschedule.id
vmschedules = ResourceSchedule.list(
self.apiclient, RESOURCE_TYPE, self.virtual_machine.id, id=start_vmschedule.id
)
self.assertEqual(
@ -575,15 +599,15 @@ class TestVMSchedule(cloudstackTestCase):
# Verify VM Schedule is deleted
self.assertEqual(
VMSchedule.list(
self.apiclient, self.virtual_machine.id, id=start_vmschedule.id
ResourceSchedule.list(
self.apiclient, RESOURCE_TYPE, self.virtual_machine.id, id=start_vmschedule.id
),
None,
"Check VM Schedule is deleted",
)
self.assertEqual(
VMSchedule.list(
self.apiclient, self.virtual_machine.id, id=stop_vmschedule.id
ResourceSchedule.list(
self.apiclient, RESOURCE_TYPE, self.virtual_machine.id, id=stop_vmschedule.id
),
None,
"Check VM Schedule is deleted",

View File

@ -7052,6 +7052,51 @@ class VMSchedule:
cmd.virtualmachineid = self.virtualmachineid
return (apiclient.deleteVMSchedule(cmd))
class ResourceSchedule:
def __init__(self, items):
self.__dict__.update(items)
@classmethod
def create(cls, apiclient, resourcetype, resourceid, action, schedule, timezone, startdate, enddate=None, enabled=False, description=None, details=None):
cmd = createResourceSchedule.createResourceScheduleCmd()
cmd.resourcetype = resourcetype
cmd.resourceid = resourceid
cmd.description = description
cmd.action = action
cmd.schedule = schedule
cmd.timezone = timezone
cmd.startdate = startdate
cmd.enddate = enddate
cmd.enabled = enabled
cmd.details = details
return ResourceSchedule(apiclient.createResourceSchedule(cmd).__dict__)
@classmethod
def list(cls, apiclient, resourcetype, resourceid, id=None, enabled=None, action=None):
cmd = listResourceSchedule.listResourceScheduleCmd()
cmd.resourcetype = resourcetype
cmd.resourceid = resourceid
cmd.id = id
cmd.enabled = enabled
cmd.action = action
return apiclient.listResourceSchedule(cmd)
def update(self, apiclient, **kwargs):
cmd = updateResourceSchedule.updateResourceScheduleCmd()
cmd.id = self.id
[setattr(cmd, k, v) for k, v in list(kwargs.items())]
return apiclient.updateResourceSchedule(cmd)
def delete(self, apiclient):
cmd = deleteResourceSchedule.deleteResourceScheduleCmd()
cmd.id = self.id
cmd.resourcetype = self.resourcetype
cmd.resourceid = self.resourceid
return apiclient.deleteResourceSchedule(cmd)
class VnfTemplate:
"""Manage VNF template life cycle"""