From: Chunjie Zhu Date: Fri, 6 Nov 2015 08:05:50 +0000 (-0800) Subject: CA-176056: Unable to obtain any source ISOs for DLVM (Dundee). X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=301516c9f2036d55567d3f3b460fde642f4bf8de;p=xenrt-citrix%2Fxenrt.git CA-176056: Unable to obtain any source ISOs for DLVM (Dundee). support both PV (CentOS 5.*) and HVM (CentOS 7.*) DLVM --- diff --git a/exec/testcases/xenserver/install.py b/exec/testcases/xenserver/install.py index 69fff10c0..e393fdd4a 100755 --- a/exec/testcases/xenserver/install.py +++ b/exec/testcases/xenserver/install.py @@ -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() diff --git a/exec/xenrt/objects.py b/exec/xenrt/objects.py index 05ca49357..36c40cf69 100755 --- a/exec/xenrt/objects.py +++ b/exec/xenrt/objects.py @@ -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"""