From 0e7388390ea6d2b91bc92a6d5912bcef144aa1d4 Mon Sep 17 00:00:00 2001 From: Craig Orendi Date: Mon, 28 Sep 2015 16:12:00 +0100 Subject: [PATCH] snapshot test --- .../xenserver/tc/dotnetagentlicensing.py | 17 +++++++++++---- .../lib/xenserver/dotnetagentlicensing.py | 21 +++++++++++++++---- 2 files changed, 30 insertions(+), 8 deletions(-) diff --git a/exec/testcases/xenserver/tc/dotnetagentlicensing.py b/exec/testcases/xenserver/tc/dotnetagentlicensing.py index e55a5e2d5..575b4a6bd 100755 --- a/exec/testcases/xenserver/tc/dotnetagentlicensing.py +++ b/exec/testcases/xenserver/tc/dotnetagentlicensing.py @@ -3,6 +3,7 @@ from xenrt.lib.xenserver.dotnetagentlicensing import * from xenrt.enum import XenServerLicenseSKU from xenrt.lib.xenserver.licensing import LicenseManager, XenServerLicenseFactory import datetime +from xenrt.lib.xenserver.guest import guest class DotNetAgentAdapter(object): @@ -28,9 +29,6 @@ class DotNetAgentAdapter(object): def cleanupLicense(self, hostOrPool): self.licenseManager.releaseLicense(hostOrPool) - def upgradeTools(self): - pass - def exportVM(self, vm): vm.setState("DOWN") vmName = vm.getName() @@ -84,7 +82,7 @@ class TempTest(DotNetAgentTestCases): def run(self,arglist): server = self.adapter.setUpServer(self.getGuest("server"),"16000") - #self.adapter.applyLicense(self.getDefaultPool()) + self.adapter.applyLicense(self.getDefaultPool()) autoupdate = self.agent.getLicensedFeature("AutoUpdate") autoupdate.setUserVMUser() autoupdate.enable() @@ -127,3 +125,14 @@ class VMUserAutoUpdateToggle(DotNetAgentTestCases): pinged = server.isPinged(startTime) if pinged: raise xenrt.XRTFailure("autoupdate tries to update when unlicensed") + +class VSSQuiescedSnapshotting(DotNetAgentTestCases): + + def run(self, arglist): + #self.adapter.applyLicense(self.getDefaultPool()) + vss = self.agent.getLicensedFeature("VSS") + if not vss.isSnapshotPossible(): + raise xenrt.XRTFailure("snapshot failed in licensed pool") + self.adapter.releaseLicense(self.getDefaultPool()) + if vss.isSnapshotPossible(): + raise xenrt.XRTFailure("snapshot succeeded in unlicensed pool") \ No newline at end of file diff --git a/exec/xenrt/lib/xenserver/dotnetagentlicensing.py b/exec/xenrt/lib/xenserver/dotnetagentlicensing.py index 2c23e7ff1..6b4322603 100755 --- a/exec/xenrt/lib/xenserver/dotnetagentlicensing.py +++ b/exec/xenrt/lib/xenserver/dotnetagentlicensing.py @@ -1,4 +1,4 @@ -from abc import ABCMeta, abstractmethod +from abc import ABCMeta, abstractmethod import xenrt import re import datetime @@ -74,8 +74,11 @@ class DotNetAgent(object): pass def getLicensedFeature(self,feature): - ''' current features are "VSS", "AutoUpdate" ''' - return self.licensedFeatures[feature] + '''VSS or AutoUpdate''' + x = self.licensedFeatures[feature] + assert isinstance(x, VSS) + return x + class LicensedFeature(object): __metaclass__ = ABCMeta @@ -229,7 +232,17 @@ class VSS(LicensedFeature): self.os = os def isSnapshotPossible(self): - pass + self.guest.enableVSS() + try: + snapuuid = self.guest.snapshot(quiesced=True) + xenrt.TEC().logverbose("-----VSS Snapshot succeeded-----") + self.guest.removeSnapshot(snapuuid) + self.guest.disableVSS() + return True + except: + xenrt.TEC().logverbose("-----VSS Snapshot failed-----") + self.guest.disableVSS() + return False def isLicensed(self): host = self.guest.host -- 2.39.5