mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
CLOUDSTACK-8145: Adding new test to test blocker bugs and modifying other test case to work around the bug
Signed-off-by: SrikanteswaraRao Talluri <talluri@apache.org>
This commit is contained in:
parent
9056e4c3fb
commit
f11e570796
@ -106,7 +106,6 @@ class Services:
|
||||
"sleep": 180,
|
||||
}
|
||||
|
||||
|
||||
class TestTemplate(cloudstackTestCase):
|
||||
|
||||
def setUp(self):
|
||||
@ -253,7 +252,6 @@ class TestTemplate(cloudstackTestCase):
|
||||
)
|
||||
return
|
||||
|
||||
|
||||
class TestNATRules(cloudstackTestCase):
|
||||
|
||||
@classmethod
|
||||
@ -1005,3 +1003,147 @@ class TestTemplates(cloudstackTestCase):
|
||||
"Check the name of the template"
|
||||
)
|
||||
return
|
||||
|
||||
class TestDataPersistency(cloudstackTestCase):
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
|
||||
cls.testClient = super(TestDataPersistency, cls).getClsTestClient()
|
||||
cls.api_client = cls.testClient.getApiClient()
|
||||
|
||||
cls.services = cls.testClient.getParsedTestDataConfig()
|
||||
# Get Zone, Domain and templates
|
||||
cls.zone = get_zone(cls.api_client, cls.testClient.getZoneForTests())
|
||||
cls.domain = get_domain(cls.api_client)
|
||||
cls.services['mode'] = cls.zone.networktype
|
||||
template = get_template(
|
||||
cls.api_client,
|
||||
cls.zone.id,
|
||||
cls.services["ostype"]
|
||||
)
|
||||
cls.services["virtual_machine"]["zoneid"] = cls.zone.id
|
||||
|
||||
#Create an account, network, VM and IP addresses
|
||||
cls.account = Account.create(
|
||||
cls.api_client,
|
||||
cls.services["account"],
|
||||
domainid=cls.domain.id
|
||||
)
|
||||
|
||||
cls.userapiclient = cls.testClient.getUserApiClient(
|
||||
UserName=cls.account.name,
|
||||
DomainName=cls.account.domain)
|
||||
|
||||
cls.service_offering = ServiceOffering.create(
|
||||
cls.api_client,
|
||||
cls.services["service_offering"]
|
||||
)
|
||||
cls.virtual_machine = VirtualMachine.create(
|
||||
cls.api_client,
|
||||
cls.services["virtual_machine"],
|
||||
templateid=template.id,
|
||||
accountid=cls.account.name,
|
||||
domainid=cls.account.domainid,
|
||||
serviceofferingid=cls.service_offering.id,
|
||||
mode=cls.services["mode"]
|
||||
)
|
||||
cls.cleanup = [
|
||||
cls.account,
|
||||
cls.service_offering
|
||||
]
|
||||
return
|
||||
|
||||
@classmethod
|
||||
def tearDownClass(cls):
|
||||
try:
|
||||
#Clean up, terminate the created templates
|
||||
cleanup_resources(cls.api_client, cls.cleanup)
|
||||
|
||||
except Exception as e:
|
||||
raise Exception("Warning: Exception during cleanup : %s" % e)
|
||||
return
|
||||
|
||||
def setUp(self):
|
||||
self.apiclient = self.testClient.getApiClient()
|
||||
return
|
||||
|
||||
def tearDown(self):
|
||||
# No need
|
||||
return
|
||||
|
||||
@attr(tags=["advanced", "basic", "advancedns", "eip"], required_hardware="true")
|
||||
def test_01_data_persistency_root_disk(self):
|
||||
"""
|
||||
Test the timing issue of root disk data sync
|
||||
|
||||
# 1. Write data to root disk of a VM
|
||||
# 2. Create a template from the root disk of VM
|
||||
# 3. Create a new VM from this template
|
||||
# 4. Check that the data is present in the new VM
|
||||
|
||||
This is to test that data is persisted on root disk of VM or not
|
||||
when template is created immediately from it
|
||||
"""
|
||||
|
||||
ssh = self.virtual_machine.get_ssh_client()
|
||||
|
||||
sampleText = "This is sample data"
|
||||
|
||||
cmds = [
|
||||
"cd /root/",
|
||||
"touch testFile.txt",
|
||||
"chmod 600 testFile.txt",
|
||||
"echo %s >> testFile.txt" % sampleText
|
||||
]
|
||||
for c in cmds:
|
||||
ssh.execute(c)
|
||||
|
||||
#Stop virtual machine
|
||||
self.virtual_machine.stop(self.api_client)
|
||||
|
||||
list_volume = Volume.list(
|
||||
self.api_client,
|
||||
virtualmachineid=self.virtual_machine.id,
|
||||
type='ROOT',
|
||||
listall=True)
|
||||
|
||||
if isinstance(list_volume, list):
|
||||
self.volume = list_volume[0]
|
||||
else:
|
||||
raise Exception(
|
||||
"Exception: Unable to find root volume for VM: %s" %
|
||||
self.virtual_machine.id)
|
||||
|
||||
self.services["template"]["ostype"] = self.services["ostype"]
|
||||
#Create templates for Edit, Delete & update permissions testcases
|
||||
customTemplate = Template.create(
|
||||
self.userapiclient,
|
||||
self.services["template"],
|
||||
self.volume.id,
|
||||
account=self.account.name,
|
||||
domainid=self.account.domainid
|
||||
)
|
||||
self.cleanup.append(customTemplate)
|
||||
# Delete the VM - No longer needed
|
||||
self.virtual_machine.delete(self.apiclient)
|
||||
|
||||
virtual_machine = VirtualMachine.create(
|
||||
self.apiclient,
|
||||
self.services["virtual_machine"],
|
||||
templateid=customTemplate.id,
|
||||
accountid=self.account.name,
|
||||
domainid=self.account.domainid,
|
||||
serviceofferingid=self.service_offering.id,
|
||||
mode=self.services["mode"]
|
||||
)
|
||||
|
||||
ssh = virtual_machine.get_ssh_client()
|
||||
|
||||
response = ssh.execute("cat /root/testFile.txt")
|
||||
res = str(response[0])
|
||||
|
||||
self.assertEqual(res, sampleText, "The data %s does not match\
|
||||
with sample test %s" %
|
||||
(res, sampleText))
|
||||
return
|
||||
|
||||
@ -200,6 +200,9 @@ class TestResetSSHKeypair(cloudstackTestCase):
|
||||
for c in cmds:
|
||||
ssh.execute(c)
|
||||
|
||||
# Adding delay of 120 sec to avoid data loss due to timing issue
|
||||
time.sleep(120)
|
||||
|
||||
#Stop virtual machine
|
||||
cls.virtual_machine.stop(cls.api_client)
|
||||
|
||||
@ -1031,6 +1034,9 @@ class TestResetSSHKeyUserRights(cloudstackTestCase):
|
||||
for c in cmds:
|
||||
ssh.execute(c)
|
||||
|
||||
# Adding delay of 120 sec to avoid data loss due to timing issue
|
||||
time.sleep(120)
|
||||
|
||||
try:
|
||||
#Stop virtual machine
|
||||
cls.virtual_machine.stop(cls.api_client)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user