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()
__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"]
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'
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":
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"""