]> xenbits.xensource.com Git - xenrt-citrix/xenrt.git/commitdiff
Fixes following abc changes
authorAlex Brett <alex.brett@citrix.com>
Tue, 17 Nov 2015 18:19:13 +0000 (18:19 +0000)
committerAlex Brett <alex.brett@citrix.com>
Tue, 17 Nov 2015 18:19:13 +0000 (18:19 +0000)
exec/xenrt/lib/opsys/__init__.py
exec/xenrt/lib/opsys/linux.py
exec/xenrt/lib/opsys/xs.py

index 1f4681c913609dbfa774eaf0f84b150757c60ede..9669730f257eb39dae5b909a5621d074ae8f0687 100644 (file)
@@ -2,6 +2,13 @@ import xenrt
 from zope.interface import implements, providedBy
 from abc import abstractproperty, abstractmethod, ABCMeta
 
+class abstractstatic(staticmethod):
+    __slots__ = ()
+    def __init__(self, function):
+        super(abstractstatic, self).__init__(function)
+        function.__isabstractmethod__ = True
+    __isabstractmethod__ = True
+
 oslist = []
 
 class OSNotDetected(Exception):
@@ -55,8 +62,8 @@ class OS(object):
         """Wait for the OS to boot"""
         pass
     
-    @abstractmethod
-    def testInit(self, parent):
+    @abstractstatic
+    def testInit(parent):
         """Instantiate a dummy version for unit testing"""
         pass
 
@@ -85,7 +92,6 @@ class OS(object):
     def getPort(self, trafficType):
         return self.parent._osParent_getPort(trafficType) or self.tcpCommunicationPorts[trafficType]
 
-    @abstractmethod
     def populateFromExisting(self):
         """Populate class members from an existing OS installation"""
         pass
index 0bf7412708d7b3f0f4eb38c5f5c20729e02966c7..cd9e40e918e96b5b52c5a34afc8f77cfce95afe5 100644 (file)
@@ -12,6 +12,15 @@ class LinuxOS(OS):
     def __init__(self, distro, parent, password=None):
         super(LinuxOS, self).__init__(distro, parent, password)
 
+    @staticmethod
+    def testInit(cls, parent): raise NotImplementedError()
+
+    @property
+    def canonicalDistroName(self): raise NotImplementedError()
+
+    @property
+    def waitForBoot(self): raise NotImplementedError()
+
     def execSSH(self,
                 command,
                 username=None,
index 486a6a5314d76184350e46fa7ebf39194a7b51d5..f8933ac271abf9a2c1f04ce40d5e94d0531210a2 100644 (file)
@@ -5,7 +5,7 @@ __all__=["XSDom0"]
 class XSDom0(LinuxOS):
     def __init__(self, distro, parent, password=None):
         super(XSDom0, self).__init__(distro, parent, password)
-    
+
     @staticmethod
     def knownDistro(distro):
         return distro == "XSDom0"
@@ -14,6 +14,10 @@ class XSDom0(LinuxOS):
     def testInit(parent):
         return XSDom0("XSDom0", parent)
 
+    @property
+    def canonicalDistroName(self):
+        return "XSDom0"
+
     def preCloneTailor(self):
         pass