]> xenbits.xensource.com Git - xenrt-citrix/xenrt.git/commitdiff
snapshot test
authorCraig Orendi <craig.orendi@citrix.com>
Mon, 28 Sep 2015 15:12:00 +0000 (16:12 +0100)
committerCraig Orendi <craig.orendi@citrix.com>
Tue, 3 Nov 2015 10:21:34 +0000 (10:21 +0000)
exec/testcases/xenserver/tc/dotnetagentlicensing.py
exec/xenrt/lib/xenserver/dotnetagentlicensing.py

index e55a5e2d5b547e9fafb56cdeec5458bf870d404a..575b4a6bda338a0910c7bf1ddb569ac392e9f115 100755 (executable)
@@ -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
index 2c23e7ff1d3b66f4e8bc3715247289847ddb02b0..6b43226036569c2a74f3607fe308e07aeab6ff16 100755 (executable)
@@ -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