]> xenbits.xensource.com Git - xenrt-citrix/xenrt.git/commitdiff
CA-176056: Unable to obtain any source ISOs for DLVM (Dundee).
authorChunjie Zhu <chunjie.zhu@citrix.com>
Fri, 6 Nov 2015 08:05:50 +0000 (00:05 -0800)
committerChunjie Zhu <chunjie.zhu@citrix.com>
Fri, 6 Nov 2015 08:52:01 +0000 (00:52 -0800)
  support both PV (CentOS 5.*) and HVM (CentOS 7.*) DLVM

exec/testcases/xenserver/install.py
exec/xenrt/objects.py

index 69fff10c0b25fbe3c372d3d5d419ba557ab65287..e393fdd4a893f9d3b2f5c8650c84cde4ff62152b 100755 (executable)
@@ -1457,16 +1457,15 @@ class TCDLVMSourceCheck(SourceISOCheck): # TC-17999
             self.APPLIANCE_NAME, "NO_TEMPLATE",
             password=xenrt.TEC().lookup("DEFAULT_PASSWORD"))
         xenrt.TEC().registry.guestPut(self.APPLIANCE_NAME, g)
+        self.vpx_os_version = xenrt.TEC().lookup("VPX_OS_VERSION", "CentOS5")
         g.host = self.host
-        self.demolinuxvm = xenrt.DemoLinuxVM(g)
+        self.demolinuxvm = xenrt.DLVMApplianceFactory().create(g, self.vpx_os_version)
         g.importVM(self.host, xenrt.TEC().getFile("xe-phase-1/dlvm.xva"))
         g.windows = False
-        g.lifecycleOperation("vm-start",specifyOn=True)
-        # Wait for the VM to come up.
-        xenrt.TEC().progress("Waiting for the VM to enter the UP state")
-        g.poll("UP", pollperiod=5)
-        # Wait VM to boot up
-        time.sleep(300)
+        g.hasSSH = False # here we should support both old (CentOS5) and new (CentOS7) DLVM, disable sshcheck
+        g.tailored = True
+        g.start()
+
         self.demolinuxvm.doFirstbootUnattendedSetup()
         self.demolinuxvm.doLogin()
         self.demolinuxvm.installSSH()
index 05ca493570f572372d369429c7adb84aee0be260..36c40cf69099e2488d946243439f040154f2c0f6 100755 (executable)
@@ -31,7 +31,8 @@ time.strptime('2014-06-12','%Y-%m-%d')
 
 __all__ = ["GenericPlace", "GenericHost", "NetPeerHost", "GenericGuest", "productLib",
            "RunOnLocation", "ActiveDirectoryServer", "PAMServer", "CVSMServer", "WlbApplianceFactory",
-           "WlbApplianceServer", "WlbApplianceServerHVM", "DemoLinuxVM", "ConversionManagerApplianceFactory",
+           "WlbApplianceServer", "WlbApplianceServerHVM", "DLVMApplianceFactory", "DemoLinuxVM", 
+           "DemoLinuxVMHVM", "ConversionManagerApplianceFactory",
            "ConversionApplianceServer", "ConversionApplianceServerHVM", "EventObserver",
            "XenMobileApplianceServer", "_WinPEBase"]
 
@@ -11321,12 +11322,30 @@ class CVSMServer(object):
         data = self.cli('host-list')
         return uuid in data
 
-class DemoLinuxVM(object):
+class DemoLinuxBase(object):
+    """Base DLVM Appliance Class for PV DLVM Appliance and HVM DLVM Appliance"""
+
+    def __init__(self, place, password):
+        self.place = place
+        self.password = password
+        if self.place:
+            self.place.password = self.password
+
+    def doFirstbootUnattendedSetup(self):
+        pass
+
+    def doLogin(self):
+        pass
+
+    def installSSH(self):
+        pass
+
+class DemoLinuxVM(DemoLinuxBase):
     """An object to represent a Centos 5.7 based Citrix Demonstration Linux Virtual Machine"""
 
     def __init__(self, place):
-        self.place = place
-        self.password = xenrt.TEC().lookup("DEFAULT_PASSWORD")
+        password = xenrt.TEC().lookup("DEFAULT_PASSWORD")
+        super(DemoLinuxVM, self).__init__(place, password)
 
     def doFirstbootUnattendedSetup(self):
         # choose root passwd: 'xensource'
@@ -11346,6 +11365,20 @@ class DemoLinuxVM(object):
         self.place.writeToConsole("yum -y install openssh-server\\n")
         xenrt.sleep(360)
 
+class DemoLinuxVMHVM(DemoLinuxBase):
+    """An object to represent a Centos 7.* based Citrix Demonstration Linux Virtual Machine"""
+
+    def __init__(self, place):
+        password = xenrt.TEC().lookup("VPX_DEFAULT_PASSWORD", "citrix") # by default vpx root's password
+        super(DemoLinuxVMHVM, self).__init__(place, password)
+
+    def doFirstbootUnattendedSetup(self):
+        command = "/sbin/chkconfig rootpassword off"
+        self.place.execguest(command)
+        xenrt.sleep(60)
+        self.place.lifecycleOperation("vm-reboot", force=True)
+        self.place.waitReadyAfterStart()
+
 class ApplianceFactory(object):
     def create(self, guest, version="CentOS7"):
         if version == "CentOS7":
@@ -11373,6 +11406,13 @@ class ConversionManagerApplianceFactory(ApplianceFactory):
     def _createLegacy(self, guest):
         return ConversionApplianceServer(guest)
 
+class DLVMApplianceFactory(ApplianceFactory):
+    def _createHVM(self, guest):
+        return DemoLinuxVMHVM(guest)
+
+    def _createLegacy(self, guest):
+        return DemoLinuxVM(guest)
+
 class WlbApplianceBase(object):
     """Base WLB Appliance Class for PV WLB Appliance Server and HVM WLB Appliance Server"""