WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] [PATCH][XM-TEST] Change domain configuration structure

To: Xen Developers <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: [Xen-devel] [PATCH][XM-TEST] Change domain configuration structure
From: Dan Smith <danms@xxxxxxxxxx>
Date: Mon, 12 Dec 2005 11:54:49 -0800
Cc: Daniel Stekloff <dsteklof@xxxxxxxxxx>
Delivery-date: Mon, 12 Dec 2005 19:56:40 +0000
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Gnus/5.110004 (No Gnus v0.4) Emacs/21.4 (gnu/linux)
This patch cleans up lib/XmTestLib/XenDomain.py quite a bit.  Instead
of multiple classes for things that are really just different configs,
we go back to a single class and attempt to simplify how the
configuration is done.  Also, update all the affected tests to use the
new configuration method.

This will make it easier to support VMX-only and hybrid domain
testing.

# HG changeset patch
# User danms@xxxxxxxxxx
# Node ID 445299158ed574006f9c976bf7e05a1d0363e160
# Parent  bdcb115c667a12a5514517456639142c1273b0f1
Change the way domain configuration is handled in xm-test.
This will simplify the way we differentiate between HV and PV domains,
as well as make it easier to run normal tests in either HV or PV mode.
Signed-off-by: Dan Smith <danms@xxxxxxxxxx>
Signed-off-by: Dan Stekloff <dsteklof@xxxxxxxxxx>

diff -r bdcb115c667a -r 445299158ed5 tools/xm-test/lib/XmTestLib/XenDomain.py
--- a/tools/xm-test/lib/XmTestLib/XenDomain.py  Sat Dec 10 23:20:08 2005
+++ b/tools/xm-test/lib/XmTestLib/XenDomain.py  Mon Dec 12 19:49:18 2005
@@ -30,18 +30,141 @@
 
 BLOCK_ROOT_DEV = "hda"
 
-def XmTestDomain(name=None, extraOpts=None, config="/dev/null"):
-    if ENABLE_VMX_SUPPORT:
-        return XmTestVmxDomain(name, extraOpts, config)
+def getDeviceModel():
+    """Get the path to the device model based on
+    the architecture reported in uname"""
+    arch = os.uname()[4]
+    if re.search("64", arch):
+        return "/usr/lib64/xen/bin/qemu-dm"
     else:
-        return XmTestPvDomain(name, extraOpts, config)
+        return "/usr/lib/xen/bin/qemu-dm"
 
 def getDefaultKernel():
+    """Get the path to the default DomU kernel"""
     dom0Ver = commands.getoutput("uname -r");
     domUVer = dom0Ver.replace("xen0", "xenU");
     
     return "/boot/vmlinuz-" + domUVer;
 
+def getUniqueName():
+    """Get a uniqueish name for use in a domain"""
+    unixtime = int(time.time())
+    test_name = sys.argv[0]
+    test_name = re.sub("\.test", "", test_name)
+    test_name = re.sub("[\/\.]", "", test_name)
+    name = "%s-%i" % (test_name, unixtime)
+    
+    return name
+
+def getRdPath():
+    rdpath = os.environ.get("RD_PATH")
+    if not rdpath:
+        rdpath = "../../ramdisk"
+    rdpath = os.path.abspath(rdpath)
+
+    return rdpath
+
+ParavirtDefaults = {"memory"       : 64,
+                    "vcpus"        : 1,
+                    "nics"         : 0,
+                    "kernel"       : getDefaultKernel(),
+                    "root"         : "/dev/ram0",
+                    "ramdisk"      : getRdPath() + "/initrd.img"
+                    }
+VmxDefaults =      {"memory"       : 64,
+                    "vcpus"        : 1,
+                    "nics"         : 0,
+                    "disk"         : ["file:%s/disk.img,ioemu:%s,w" %
+                                   (getRdPath(), BLOCK_ROOT_DEV)],
+                    "kernel"       : "/usr/lib/xen/boot/vmxloader",
+                    "builder"      : "vmx",
+                    "sdl"          : 0,
+                    "vnc"          : 0,
+                    "vncviewer"    : 0,
+                    "nographic"    : 1,
+                    "serial"       : "pty",
+                    "device_model" : getDeviceModel()
+                    }
+
+if ENABLE_VMX_SUPPORT:
+    configDefaults = VmxDefaults
+else:
+    configDefaults = ParavirtDefaults
+
+class XenConfig:
+    """An object to help create a xen-compliant config file"""
+    def __init__(self):
+        self.defaultOpts = {}
+
+        # These options need to be lists
+        self.defaultOpts["disk"] = []
+        self.defaultOpts["vif"]  = []
+
+        self.opts = self.defaultOpts
+
+    def toString(self):
+        """Convert this config to a string for writing out
+        to a file"""
+        string = "# Xen configuration generated by xm-test\n"
+        for k, v in self.opts.items():
+            if isinstance(v, int):
+                piece = "%s = %i" % (k, v)
+            elif isinstance(v, list) and v:
+                piece = "%s = %s" % (k, v)
+            elif isinstance(v, str) and v:
+                piece = "%s = \"%s\"" % (k, v)
+            else:
+                piece = None
+
+            if piece:
+                string += "%s\n" % piece
+
+        return string
+
+    def write(self, filename):
+        """Write this config out to filename"""
+        output = file(filename, "w")
+        output.write(self.toString())
+        output.close()
+
+    def __str__(self):
+        """When used as a string, we represent ourself by a config
+        filename, which points to a temporary config that we write
+        out ahead of time"""
+        filename = "/tmp/xm-test.conf"
+        self.write(filename)
+        return filename
+
+    def setOpt(self, name, value):
+        """Set an option in the config"""
+        if name in self.opts.keys() and isinstance(self.opts[name], list) and 
not isinstance(value, list):
+                self.opts[name] = [value]
+        else:
+            self.opts[name] = value
+
+    def appOpt(self, name, value):
+        """Append a value to a list option"""
+        if name in self.opts.keys() and isinstance(self.opts[name], list):
+            self.opts[name].append(value)
+
+    def getOpt(self, name):
+        """Return the value of a config option"""
+        if name in self.opts.keys():
+            return self.opts[name]
+        else:
+            return None
+
+    def setOpts(self, opts):
+        """Batch-set options from a dictionary"""
+        for k, v in opts.items():
+            self.setOpt(k, v)
+
+    def clearOpts(self, name=None):
+        """Clear one or all config options"""
+        if name:
+            self.opts[name] = self.defaultOpts[name]
+        else:
+            self.opts = self.defaultOpts
 
 class DomainError(Exception):
     def __init__(self, msg, extra="", errorcode=0):
@@ -55,62 +178,24 @@
     def __str__(self):
         return str(self.msg)
 
+
 class XenDomain:
 
-    def __init__(self, opts={}, config="/dev/null"):
-        """Create a domain object.  Optionally take a 
-        dictionary of 'xm' options to use"""
-
-        self.domID = None;
+    def __init__(self, name=None, config=None):
+        """Create a domain object.
+        @param config: String filename of config file
+        """
+
+        if name:
+            self.name = name
+        else:
+            self.name = getUniqueName()
+
         self.config = config
 
-        if not opts.has_key("name"):
-            raise DomainError("Missing `name' option")
-        if not opts.has_key("memory"):
-            raise DomainError("Missing `memory' option")
-        if not opts.has_key("kernel"):
-            raise DomainError("Missing `kernel' option")
-
-        self.opts = opts
-
-        self.configVals = None
-
-    def __buildCmdLine(self):
-        c = "xm create %s" % self.config
-
-        for k in self.opts.keys():
-            c += " %s=%s" % (k, self.opts[k])
-        
-        return c
-
-    def getUniqueName(self):
-        #
-        # We avoid multiple duplicate names
-        # here because they stick around in xend
-        # too long
-        #
-        unixtime = int(time.time())
-        test_name = sys.argv[0]
-        test_name = re.sub("\.test", "", test_name)
-        test_name = re.sub("[\/\.]", "", test_name)
-        name = "%s-%i" % (test_name, unixtime)
-
-        return name
-
     def start(self):
 
-        if self.configVals:
-            self.__writeConfig("/tmp/xm-test.conf")
-            self.config = "/tmp/xm-test.conf"
-
-        commandLine = self.__buildCmdLine()
-
-        ret, output = traceCommand(commandLine);
-
-        try:
-            self.domID = self.getId()
-        except:
-            self.domID = -1;
+        ret, output = traceCommand("xm create %s" % self.config)
 
         if ret != 0:
             raise DomainError("Failed to create domain",
@@ -118,192 +203,79 @@
                               errorcode=ret)
 
     def stop(self):
-        prog = "xm";
-        cmd = " shutdown ";
-
-        ret, output = traceCommand(prog + cmd + self.opts["name"]);
-
-        return ret;
+        prog = "xm"
+        cmd = " shutdown "
+
+        ret, output = traceCommand(prog + cmd + self.config.getOpt("name"))
+
+        return ret
 
     def destroy(self):
-        prog = "xm";
-        cmd = " destroy ";
-
-        ret, output = traceCommand(prog + cmd + self.opts["name"]);
-
-        return ret;
+        prog = "xm"
+        cmd = " destroy "
+
+        ret, output = traceCommand(prog + cmd + self.config.getOpt("name"))
+
+        return ret
 
     def getName(self):
-        return self.opts["name"];
+        return self.name
 
     def getId(self):
         return domid(self.getName());
 
-    def configSetVar(self, key, value):
-        if not self.configVals:
-            self.configVals = {}
-
-        self.configVals[key] = value
-
-    def configAddDisk(self, pdev, vdev, acc):
-        if not self.configVals:
-            self.configVals = {}
-
-        if not self.configVals.has_key("disk"):
-            self.configVals["disk"] = []
-
-        self.configVals["disk"].append("%s,%s,%s" % (pdev,vdev,acc))
-
-    def configAddVif(self, type, mac, bridge):
-        if not self.configVals:
-            self.configVals = {}
-
-        if not self.configVals.has_key("vif"):
-            self.configVals["vif"] = []
-
-        if mac:
-            self.configVals["vif"].append("%s,%s,%s" % (type,mac,bridge))
-        else:
-            self.configVals["vif"].append("%s,%s" % (type,bridge))
-
-    def __writeConfig(self, configFileName):
-
-        conf = file(configFileName, "w")
-
-        for k,v in self.configVals.items():
-            print >>conf, "%s = %s" % (k, v)
-
-        conf.close()
-
-class XmTestVmxDomain(XenDomain):
-
-    def __prepareBlockRoot(self, rdpath):
-        image = os.path.abspath(rdpath + "/disk.img")
-        self.configAddDisk("file:%s" % image, "ioemu:%s" % BLOCK_ROOT_DEV, "w")
-
-    def __prepareVif(self):
-        self.configAddVif("type=ioemu", None, "bridge=xenbr0")
-
-    def __prepareDeviceModel(self):
-        arch = os.uname()[4]
-        if re.search('64', arch):
-            self.configSetVar("device_model", "\"/usr/lib64/xen/bin/qemu-dm\"")
-        else:
-            self.configSetVar("device_model", "\"/usr/lib/xen/bin/qemu-dm\"")
-
-    def __init__(self, name=None, extraOpts=None, config="/dev/null"):
-
-        rdpath = os.environ.get("RD_PATH")
-        if not rdpath:
-            rdpath = "../../ramdisk"
-
-        self.opts = {}
-        self.configVals = {}
-
-        # Defaults
-        self.defaults = {"memory"    : 64,
-                         "vcpus"     : 1,
-                         "nics"      : 0,
-                         "kernel"    : "/usr/lib/xen/boot/vmxloader",
-                         "builder"   : "\'vmx\'",
-                         "name"      : name or self.getUniqueName()
-                         }
-
-        self.domID = None;
-        self.config = config;
-
-        self.__prepareBlockRoot(rdpath)
-       #self.__prepareVif()
-        self.__prepareDeviceModel()
-        #self.configSetVar("boot","\'c\'")
-        self.configSetVar("sdl","0")
-        self.configSetVar("vnc","0")
-        self.configSetVar("vncviewer","0")
-        self.configSetVar("nographic","1")
-        self.configSetVar("serial","\'pty\'")
-
-        # Copy over defaults
-        for key in self.defaults.keys():
-            self.opts[key] = self.defaults[key]
-
-        # Merge in extra options
-        if extraOpts:
-            for key in extraOpts.keys():
-                self.opts[key] = extraOpts[key]
+
+class XmTestDomain(XenDomain):
+
+    def __init__(self, name=None, extraConfig=None, baseConfig=configDefaults):
+        """Create a new xm-test domain
+        @param name: The requested domain name
+        @param extraConfig: Additional configuration options
+        @param baseConfig: The initial configuration defaults to use
+        """
+        config = XenConfig()
+        config.setOpts(baseConfig)
+        if extraConfig:
+            config.setOpts(extraConfig)
+
+        if name:
+            config.setOpt("name", name)
+        elif not config.getOpt("name"):
+            config.setOpt("name", getUniqueName())
+
+        XenDomain.__init__(self, config.getOpt("name"), config=config)
 
     def start(self):
-        """We know how about how long everyone will need to wait
-        for our disk image to come up, so we do it here as a convenience"""
-
-#        for i in range(0,5):
-#            status, output = traceCommand("xm list")
-
         XenDomain.start(self)
-        waitForBoot()
+        if ENABLE_VMX_SUPPORT:
+            waitForBoot()
 
     def startNow(self):
         XenDomain.start(self)
 
-    def getMem(self):
-        return int(self.opts["memory"])
-
     def minSafeMem(self):
         return 16
 
-class XmTestPvDomain(XenDomain):
-
-    def __init__(self, name=None, extraOpts=None, config="/dev/null"):
-
-        rdpath = os.environ.get("RD_PATH")
-        if not rdpath:
-            rdpath = "../../ramdisk"
-
-        self.opts = {}
-        self.configVals = None
-
-        # Defaults
-        self.defaults = {"memory"  : 64,
-                         "vcpus"   : 1,
-                         "nics"    : 0,
-                         "kernel"  : getDefaultKernel(),
-                         "root"    : "/dev/ram0",
-                         "name"    : name or self.getUniqueName(),
-                         "ramdisk" : rdpath + "/initrd.img"
-                         }
-
-        self.domID = None;
-        self.config = config;
-
-        # Copy over defaults
-        for key in self.defaults.keys():
-            self.opts[key] = self.defaults[key]
-
-        # Merge in extra options
-        if extraOpts:
-            for key in extraOpts.keys():
-                self.opts[key] = extraOpts[key]
-
-    def start(self):
-        """We know how about how long everyone will need to wait
-        for our ramdisk to come up, so we do it here as a convenience"""
-
-#        for i in range(0,5):
-#            status, output = traceCommand("xm list")
-
-        XenDomain.start(self)
-#        waitForBoot()
-
-    def startNow(self):
-        XenDomain.start(self)
-
-    def getMem(self):
-        return int(self.opts["memory"])
-
-    def minSafeMem(self):
-        return 16
-
 if __name__ == "__main__":
 
-    d = XmTestDomain();
-
-    d.start();
+    c = XenConfig()
+
+    c.setOpt("foo", "bar")
+    c.setOpt("foob", 1)
+    opts = {"opt1" : 19,
+            "opt2" : "blah"}
+    c.setOpts(opts)
+
+    c.setOpt("disk", "phy:/dev/ram0,hda1,w")
+    c.appOpt("disk", "phy:/dev/ram1,hdb1,w")
+
+    print str(c)
+
+    
+
+#    c.write("/tmp/foo.conf")
+
+#    d = XmTestDomain();
+#
+#    d.start();
+
diff -r bdcb115c667a -r 445299158ed5 
tools/xm-test/tests/block-create/11_block_attach_shared_dom0.py
--- a/tools/xm-test/tests/block-create/11_block_attach_shared_dom0.py   Sat Dec 
10 23:20:08 2005
+++ b/tools/xm-test/tests/block-create/11_block_attach_shared_dom0.py   Mon Dec 
12 19:49:18 2005
@@ -21,8 +21,9 @@
 
 # Now try to start a DomU with write access to /dev/ram0
 
-domain = XmTestDomain();
-domain.configAddDisk("phy:/dev/ram0", "hda1", "w")
+config = {"disk":"phy:/dev/ram0,hda1,w"}
+
+domain = XmTestDomain(extraConfig=config);
 
 try:
     domain.start()
diff -r bdcb115c667a -r 445299158ed5 
tools/xm-test/tests/block-create/12_block_attach_shared_domU.py
--- a/tools/xm-test/tests/block-create/12_block_attach_shared_domU.py   Sat Dec 
10 23:20:08 2005
+++ b/tools/xm-test/tests/block-create/12_block_attach_shared_domU.py   Mon Dec 
12 19:49:18 2005
@@ -5,11 +5,11 @@
 
 from XmTestLib import *
 
-dom1 = XmTestDomain()
-dom2 = XmTestDomain(dom1.getName() + "-2")
+config = {"disk":"phy:/dev/ram0,hda1,w"}
 
-dom1.configAddDisk("phy:/dev/ram0", "hda1", "w")
-dom2.configAddDisk("phy:/dev/ram0", "hda1", "w")
+dom1 = XmTestDomain(extraConfig=config)
+dom2 = XmTestDomain(dom1.getName() + "-2",
+                    extraConfig=config)
 
 try:
     dom1.start()
diff -r bdcb115c667a -r 445299158ed5 
tools/xm-test/tests/block-destroy/01_block-destroy_btblock_pos.py
--- a/tools/xm-test/tests/block-destroy/01_block-destroy_btblock_pos.py Sat Dec 
10 23:20:08 2005
+++ b/tools/xm-test/tests/block-destroy/01_block-destroy_btblock_pos.py Mon Dec 
12 19:49:18 2005
@@ -5,9 +5,8 @@
 
 from XmTestLib import *
 
-domain = XmTestDomain()
-
-domain.configAddDisk("phy:/dev/ram0", "hda1", "w")
+config = {"disk":"phy:/dev/ram0,hda1,w"}
+domain = XmTestDomain(extraConfig=config)
 
 try:
     domain.start()
diff -r bdcb115c667a -r 445299158ed5 
tools/xm-test/tests/block-destroy/05_block-destroy_byname_pos.py
--- a/tools/xm-test/tests/block-destroy/05_block-destroy_byname_pos.py  Sat Dec 
10 23:20:08 2005
+++ b/tools/xm-test/tests/block-destroy/05_block-destroy_byname_pos.py  Mon Dec 
12 19:49:18 2005
@@ -5,9 +5,8 @@
 
 from XmTestLib import *
 
-domain = XmTestDomain()
-
-domain.configAddDisk("phy:/dev/ram0", "hda1", "w")
+config = {"disk":"phy:/dev/ram0,hda1,w"}
+domain = XmTestDomain(extraConfig=config)
 
 try:
     domain.start()
diff -r bdcb115c667a -r 445299158ed5 
tools/xm-test/tests/block-list/01_block-list_pos.py
--- a/tools/xm-test/tests/block-list/01_block-list_pos.py       Sat Dec 10 
23:20:08 2005
+++ b/tools/xm-test/tests/block-list/01_block-list_pos.py       Mon Dec 12 
19:49:18 2005
@@ -8,9 +8,8 @@
 
 from XmTestLib import *
 
-domain = XmTestDomain()
-
-domain.configAddDisk("phy:/dev/ram0", "hda1", "w")
+config = {"disk":"phy:/dev/ram0,hda1,w"}
+domain = XmTestDomain(extraConfig=config)
 
 try:
     domain.start()
diff -r bdcb115c667a -r 445299158ed5 
tools/xm-test/tests/block-list/03_block-list_anotherbd_pos.py
--- a/tools/xm-test/tests/block-list/03_block-list_anotherbd_pos.py     Sat Dec 
10 23:20:08 2005
+++ b/tools/xm-test/tests/block-list/03_block-list_anotherbd_pos.py     Mon Dec 
12 19:49:18 2005
@@ -8,9 +8,8 @@
 
 from XmTestLib import *
 
-domain = XmTestDomain()
-
-domain.configAddDisk("phy:/dev/ram0", "hda1", "w")
+config = {"disk":"phy:/dev/ram0,hda1,w"}
+domain = XmTestDomain(extraConfig=config)
 
 try:
     domain.start()
diff -r bdcb115c667a -r 445299158ed5 
tools/xm-test/tests/create/01_create_basic_pos.py
--- a/tools/xm-test/tests/create/01_create_basic_pos.py Sat Dec 10 23:20:08 2005
+++ b/tools/xm-test/tests/create/01_create_basic_pos.py Mon Dec 12 19:49:18 2005
@@ -12,9 +12,9 @@
 # Create a domain (default XmTestDomain, with our ramdisk)
 domain = XmTestDomain()
 
-if int(getInfo("free_memory")) < domain.getMem():
+if int(getInfo("free_memory")) < domain.config.getOpt("memory"):
     SKIP("This test needs %i MB of free memory (%i MB avail)" %
-         (domain.getMem(), int(getInfo("free_memory"))))
+         (domain.config.getOpt("memory"), int(getInfo("free_memory"))))
 
 # Start it
 try:
diff -r bdcb115c667a -r 445299158ed5 
tools/xm-test/tests/create/06_create_mem_neg.py
--- a/tools/xm-test/tests/create/06_create_mem_neg.py   Sat Dec 10 23:20:08 2005
+++ b/tools/xm-test/tests/create/06_create_mem_neg.py   Mon Dec 12 19:49:18 2005
@@ -19,15 +19,8 @@
        rdpath = "../ramdisk"
 
 # Test 1: create a domain with mem=0
-opts1 =  {
-            "name"    : "default",
-            "memory"  : 0,
-            "kernel"  : getDefaultKernel(),
-            "root"    : "/dev/ram0",
-            "ramdisk" : rdpath + "/initrd.img",
-            }
-
-domain1=XenDomain(opts1)
+config1 = {"memory": 0}
+domain1=XmTestDomain(extraConfig=config1)
 
 try:
     domain1.start()
@@ -43,17 +36,10 @@
 # Test 2: create a domain with mem>sys_mem
 
 mem = int(getInfo("total_memory"))
-extreme_mem = str(mem + 100)
+extreme_mem = mem + 100
 
-opts2=  {
-            "name"    : "default",
-            "memory"  : extreme_mem,
-            "kernel"  : getDefaultKernel(),
-            "root"    : "/dev/ram0",
-            "ramdisk" : rdpath + "/initrd.img",
-            }
-
-domain2=XenDomain(opts2)
+config2 = {"memory": extreme_mem}
+domain2=XmTestDomain(extraConfig=config2)
 
 try:
     domain2.start()
diff -r bdcb115c667a -r 445299158ed5 
tools/xm-test/tests/create/07_create_mem64_pos.py
--- a/tools/xm-test/tests/create/07_create_mem64_pos.py Sat Dec 10 23:20:08 2005
+++ b/tools/xm-test/tests/create/07_create_mem64_pos.py Mon Dec 12 19:49:18 2005
@@ -23,15 +23,8 @@
        SKIP("This test needs 64 MB of free memory (%i MB avail)" % mem)
 
 #create a domain with mem=64
-opts =  {
-            "name"    : "MEM64",
-            "memory"  : 64,
-            "kernel"  : getDefaultKernel(),
-            "root"    : "/dev/ram0",
-            "ramdisk" : rdpath + "/initrd.img",
-            }
-
-domain_mem64=XenDomain(opts)
+config = {"memory": 64}
+domain_mem64=XmTestDomain(extraConfig=config)
 
 #start it
 try:
diff -r bdcb115c667a -r 445299158ed5 
tools/xm-test/tests/create/08_create_mem128_pos.py
--- a/tools/xm-test/tests/create/08_create_mem128_pos.py        Sat Dec 10 
23:20:08 2005
+++ b/tools/xm-test/tests/create/08_create_mem128_pos.py        Mon Dec 12 
19:49:18 2005
@@ -23,15 +23,8 @@
         SKIP("This test needs 128 MB of free memory (%i MB avail)" % mem)
 
 #create a domain with mem=128
-opts =  {
-            "name"    : "MEM128",
-            "memory"  : 128,
-            "kernel"  : getDefaultKernel(),
-            "root"    : "/dev/ram0",
-            "ramdisk" : rdpath + "/initrd.img",
-            }
-
-domain_mem128=XenDomain(opts)
+config={"memory": 128}
+domain_mem128=XmTestDomain(extraConfig=config)
 
 #start it
 try:
diff -r bdcb115c667a -r 445299158ed5 
tools/xm-test/tests/create/09_create_mem256_pos.py
--- a/tools/xm-test/tests/create/09_create_mem256_pos.py        Sat Dec 10 
23:20:08 2005
+++ b/tools/xm-test/tests/create/09_create_mem256_pos.py        Mon Dec 12 
19:49:18 2005
@@ -23,15 +23,8 @@
         SKIP("This test needs 256 MB of free memory (%i MB avail)" % mem)
 
 #create a domain with mem=256
-opts =  {
-            "name"    : "MEM256",
-            "memory"  : 256,
-            "kernel"  : getDefaultKernel(),
-            "root"    : "/dev/ram0",
-            "ramdisk" : rdpath + "/initrd.img",
-            }
-
-domain_mem256=XenDomain(opts)
+config = {"memory": 256}
+domain_mem256=XmTestDomain(extraConfig=config)
 
 #start it
 try:
diff -r bdcb115c667a -r 445299158ed5 
tools/xm-test/tests/create/11_create_concurrent_pos.py
--- a/tools/xm-test/tests/create/11_create_concurrent_pos.py    Sat Dec 10 
23:20:08 2005
+++ b/tools/xm-test/tests/create/11_create_concurrent_pos.py    Mon Dec 12 
19:49:18 2005
@@ -34,7 +34,7 @@
 
 for d in range(0, NUM_DOMS):
     dom = XmTestDomain(name="11_create_%i" % d,
-                       extraOpts={"memory":str(MEM_PER_DOM)})
+                       extraConfig={"memory":MEM_PER_DOM})
 
     try:
         dom.start()
diff -r bdcb115c667a -r 445299158ed5 
tools/xm-test/tests/create/12_create_concurrent_stress_pos.py
--- a/tools/xm-test/tests/create/12_create_concurrent_stress_pos.py     Sat Dec 
10 23:20:08 2005
+++ b/tools/xm-test/tests/create/12_create_concurrent_stress_pos.py     Mon Dec 
12 19:49:18 2005
@@ -14,7 +14,7 @@
 domains = []
 
 for i in range(0,DOMS):
-    dom = XmTestDomain(extraOpts={"memory" : str(MEM)})
+    dom = XmTestDomain(extraConfig={"memory" : MEM})
 
     try:
         dom.start()
diff -r bdcb115c667a -r 445299158ed5 
tools/xm-test/tests/create/13_create_multinic_pos.py
--- a/tools/xm-test/tests/create/13_create_multinic_pos.py      Sat Dec 10 
23:20:08 2005
+++ b/tools/xm-test/tests/create/13_create_multinic_pos.py      Mon Dec 12 
19:49:18 2005
@@ -6,7 +6,7 @@
 from XmTestLib import *
 
 for i in range(0,10):
-    domain = XmTestDomain(extraOpts={"nics":"%i" % i})
+    domain = XmTestDomain(extraConfig={"nics": i})
 
     try:
         domain.start()
diff -r bdcb115c667a -r 445299158ed5 
tools/xm-test/tests/create/14_create_blockroot_pos.py
--- a/tools/xm-test/tests/create/14_create_blockroot_pos.py     Sat Dec 10 
23:20:08 2005
+++ b/tools/xm-test/tests/create/14_create_blockroot_pos.py     Mon Dec 12 
19:49:18 2005
@@ -6,10 +6,9 @@
 from XmTestLib import *
 
 import os
+import time
 
-CONF_FILE = "/tmp/14_create_blockroot_pos.conf"
-
-rdpath = os.path.abspath(os.environ.get("RD_PATH"))
+rdpath = getRdPath()
 
 # status, output = traceCommand("losetup -f %s" % rdpath)
 # if status != 0:
@@ -17,22 +16,26 @@
 # 
 # if verbose:
 #     print "Using %s" % output
- 
-opts = {"memory" : "64",
-        "root"   : "/dev/hda1",
-        "name"   : "14_create_blockroot",
-        "kernel" : getDefaultKernel() }
 
-domain = XenDomain(opts=opts)
-
-domain.configAddDisk("file:%s/initrd.img" % rdpath, "hda1", "w")
+if ENABLE_VMX_SUPPORT:
+    domain = XmTestDomain(name="14_create_blockroot")
+else:
+    config = {"memory" : "64",
+              "root"   : "/dev/hda1",
+              "name"   : "14_create_blockroot",
+              "kernel" : getDefaultKernel(),
+              "disk"   : "file:%s/initrd.img,hda1,w" % rdpath
+              }
+    domConfig = XenConfig()
+    domConfig.setOpts(config)
+    domain = XenDomain(name=domConfig.getOpt("name"), config=domConfig)
 
 try:
     domain.start()
 except DomainError, e:
       FAIL(str(e))
 
-waitForBoot()
+#waitForBoot()
 
 try:
     console = XmConsole(domain.getName(), historySaveCmds=True)
diff -r bdcb115c667a -r 445299158ed5 
tools/xm-test/tests/create/15_create_smallmem_pos.py
--- a/tools/xm-test/tests/create/15_create_smallmem_pos.py      Sat Dec 10 
23:20:08 2005
+++ b/tools/xm-test/tests/create/15_create_smallmem_pos.py      Mon Dec 12 
19:49:18 2005
@@ -7,8 +7,8 @@
 
 MEM = 16
 
-domain = XmTestDomain(extraOpts={"memory":"%i" % MEM,
-                                 "extra" :"mem=%iM" % MEM})
+domain = XmTestDomain(extraConfig={"memory": MEM,
+                                   "extra" :"mem=%iM" % MEM})
 
 try:
     domain.start()
diff -r bdcb115c667a -r 445299158ed5 
tools/xm-test/tests/memset/03_memset_random_pos.py
--- a/tools/xm-test/tests/memset/03_memset_random_pos.py        Sat Dec 10 
23:20:08 2005
+++ b/tools/xm-test/tests/memset/03_memset_random_pos.py        Mon Dec 12 
19:49:18 2005
@@ -20,8 +20,8 @@
     FAIL(str(e))
 
 times = random.randint(10,50)
-origmem = domain.getMem()
-currmem = domain.getMem()
+origmem = domain.config.getOpt("memory")
+currmem = domain.config.getOpt("memory")
 
 try:
     console = XmConsole(domain.getName())
diff -r bdcb115c667a -r 445299158ed5 
tools/xm-test/tests/network/02_network_local_ping_pos.py
--- a/tools/xm-test/tests/network/02_network_local_ping_pos.py  Sat Dec 10 
23:20:08 2005
+++ b/tools/xm-test/tests/network/02_network_local_ping_pos.py  Mon Dec 12 
19:49:18 2005
@@ -28,9 +28,10 @@
 mask = Net.mask("dom1", "eth0")
 
 # Fire up a guest domain w/1 nic
-domain = XmTestDomain(extraOpts={ 'nics' : 1 })
+config = {"nics" : 1,
+          "vif"  : ['ip=%s' % ip]}
+domain = XmTestDomain(extraConfig=config)
 try:
-    domain.configSetVar('vif', " [ 'ip=" + ip + "' ]")
     domain.start()
 except DomainError, e:
     if verbose:
diff -r bdcb115c667a -r 445299158ed5 
tools/xm-test/tests/network/05_network_dom0_ping_pos.py
--- a/tools/xm-test/tests/network/05_network_dom0_ping_pos.py   Sat Dec 10 
23:20:08 2005
+++ b/tools/xm-test/tests/network/05_network_dom0_ping_pos.py   Mon Dec 12 
19:49:18 2005
@@ -31,9 +31,10 @@
         FAIL(str(e))
 
 # Fire up a guest domain w/1 nic
-domain = XmTestDomain(extraOpts={ 'nics' : 1 })
+config = {"nics" : 1,
+          "vif"  : ["ip=%s" % ip]}
+domain = XmTestDomain(extraConfig=config)
 try:
-    domain.configSetVar('vif', " [ 'ip=" + ip + "' ]")
     domain.start()
 except DomainError, e:
     if verbose:
diff -r bdcb115c667a -r 445299158ed5 
tools/xm-test/tests/network/11_network_domU_ping_pos.py
--- a/tools/xm-test/tests/network/11_network_domU_ping_pos.py   Sat Dec 10 
23:20:08 2005
+++ b/tools/xm-test/tests/network/11_network_domU_ping_pos.py   Mon Dec 12 
19:49:18 2005
@@ -15,15 +15,13 @@
 pingsizes = [ 1, 48, 64, 512, 1440, 1500, 1505, 4096, 4192, 
               32767, 65507 ]
 
-
-
 from XmTestLib import *
 
-
 def netDomain(ip):
-    dom = XmTestDomain(extraOpts={ 'nics' : 1 })
+    config = {"nics" : 1,
+              "vif"  : [ 'ip=%s' % ip]}
+    dom = XmTestDomain(extraConfig=config)
     try:
-        dom.configSetVar('vif', " [ 'ip=" + ip + "' ]")
         dom.start()
     except DomainError, e:
         if verbose:
diff -r bdcb115c667a -r 445299158ed5 
tools/xm-test/tests/restore/04_restore_withdevices_pos.py
--- a/tools/xm-test/tests/restore/04_restore_withdevices_pos.py Sat Dec 10 
23:20:08 2005
+++ b/tools/xm-test/tests/restore/04_restore_withdevices_pos.py Mon Dec 12 
19:49:18 2005
@@ -7,10 +7,9 @@
 
 import re
 
-domain = XmTestDomain(extraOpts={"nics":2})
-
-domain.configAddDisk("phy:/dev/ram0", "hda1", "w")
-domain.configAddDisk("phy:/dev/ram1", "hdb2", "w")
+config = {"disk": ["phy:/dev/ram0,hda1,w", "phy:/dev/ram1,hdb2,w"],
+          "nics": 2}
+domain = XmTestDomain(extraConfig=config)
 
 s, o = traceCommand("mke2fs -q /dev/ram0")
 if s != 0:
diff -r bdcb115c667a -r 445299158ed5 
tools/xm-test/tests/sedf/01_sedf_multi_pos.py
--- a/tools/xm-test/tests/sedf/01_sedf_multi_pos.py     Sat Dec 10 23:20:08 2005
+++ b/tools/xm-test/tests/sedf/01_sedf_multi_pos.py     Mon Dec 12 19:49:18 2005
@@ -7,7 +7,7 @@
 
 sedf_opts = "20000000 5000000 0 0 0"
 
-domain = XmTestDomain(extraOpts = {"sched":"sedf"})
+domain = XmTestDomain(extraConfig = {"sched":"sedf"})
 
 try:
     domain.start()
diff -r bdcb115c667a -r 445299158ed5 
tools/xm-test/tests/vcpu-disable/01_vcpu-disable_basic_pos.py
--- a/tools/xm-test/tests/vcpu-disable/01_vcpu-disable_basic_pos.py     Sat Dec 
10 23:20:08 2005
+++ b/tools/xm-test/tests/vcpu-disable/01_vcpu-disable_basic_pos.py     Mon Dec 
12 19:49:18 2005
@@ -39,7 +39,7 @@
     SKIP("Host not capable of running test")
 
 # Start a XmTestDomain with 2 VCPUs
-domain = XmTestDomain(extraOpts = {"vcpus":"2"})
+domain = XmTestDomain(extraConfig={"vcpus":2})
 
 try:
     domain.start()
-- 
Dan Smith
IBM Linux Technology Center
Open Hypervisor Team
email: danms@xxxxxxxxxx
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
<Prev in Thread] Current Thread [Next in Thread>