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-changelog

[Xen-changelog] [xen-unstable] Add -p/--paused flag to xm restore.

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] Add -p/--paused flag to xm restore.
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Wed, 22 Nov 2006 16:30:15 +0000
Delivery-date: Wed, 22 Nov 2006 08:29:57 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User Brendan Cully <brendan@xxxxxxxxx>
# Node ID a8d2b1393b769048c7b62822e45bef27eef80fb6
# Parent  cbbfadf7c8a50ee5099477d48d43cf251a48ce37
Add -p/--paused flag to xm restore.

When --paused is specified, the domain is paused after it is loaded.

Signed-off-by: Brendan Cully <brendan@xxxxxxxxx>
---
 tools/python/xen/xend/XendCheckpoint.py      |    5 ++--
 tools/python/xen/xend/XendDomain.py          |    8 +++----
 tools/python/xen/xend/server/XMLRPCServer.py |    4 +--
 tools/python/xen/xm/main.py                  |   29 ++++++++++++++++++++++-----
 4 files changed, 33 insertions(+), 13 deletions(-)

diff -r cbbfadf7c8a5 -r a8d2b1393b76 tools/python/xen/xend/XendCheckpoint.py
--- a/tools/python/xen/xend/XendCheckpoint.py   Fri Nov 17 16:21:14 2006 -0700
+++ b/tools/python/xen/xend/XendCheckpoint.py   Tue Nov 21 18:09:23 2006 -0800
@@ -108,7 +108,7 @@ def save(fd, dominfo, network, live, dst
         raise Exception, exn
 
 
-def restore(xd, fd, dominfo = None):
+def restore(xd, fd, dominfo = None, paused = False):
     signature = read_exact(fd, len(SIGNATURE),
         "not a valid guest state file: signature read")
     if signature != SIGNATURE:
@@ -164,7 +164,8 @@ def restore(xd, fd, dominfo = None):
 
         os.read(fd, 1)           # Wait for source to close connection
         dominfo.waitForDevices() # Wait for backends to set up
-        dominfo.unpause()
+        if not paused:
+            dominfo.unpause()
         
         dominfo.completeRestore(handler.store_mfn, handler.console_mfn)
         
diff -r cbbfadf7c8a5 -r a8d2b1393b76 tools/python/xen/xend/XendDomain.py
--- a/tools/python/xen/xend/XendDomain.py       Fri Nov 17 16:21:14 2006 -0700
+++ b/tools/python/xen/xend/XendDomain.py       Tue Nov 21 18:09:23 2006 -0800
@@ -916,7 +916,7 @@ class XendDomain:
         # !!!
         raise XendError("Unsupported")
 
-    def domain_restore(self, src):
+    def domain_restore(self, src, paused=False):
         """Restore a domain from file.
 
         @param src: filename of checkpoint file to restore from
@@ -928,14 +928,14 @@ class XendDomain:
         try:
             fd = os.open(src, os.O_RDONLY)
             try:
-                return self.domain_restore_fd(fd)
+                return self.domain_restore_fd(fd, paused=paused)
             finally:
                 os.close(fd)
         except OSError, ex:
             raise XendError("can't read guest state file %s: %s" %
                             (src, ex[1]))
 
-    def domain_restore_fd(self, fd):
+    def domain_restore_fd(self, fd, paused=False):
         """Restore a domain from the given file descriptor.
 
         @param fd: file descriptor of the checkpoint file
@@ -945,7 +945,7 @@ class XendDomain:
         """
 
         try:
-            return XendCheckpoint.restore(self, fd)
+            return XendCheckpoint.restore(self, fd, paused=paused)
         except:
             # I don't really want to log this exception here, but the error
             # handling in the relocation-socket handling code (relocate.py) is
diff -r cbbfadf7c8a5 -r a8d2b1393b76 
tools/python/xen/xend/server/XMLRPCServer.py
--- a/tools/python/xen/xend/server/XMLRPCServer.py      Fri Nov 17 16:21:14 
2006 -0700
+++ b/tools/python/xen/xend/server/XMLRPCServer.py      Tue Nov 21 18:09:23 
2006 -0800
@@ -64,8 +64,8 @@ def domain_create(config):
     info = XendDomain.instance().domain_create(config)
     return fixup_sxpr(info.sxpr())
 
-def domain_restore(src):
-    info = XendDomain.instance().domain_restore(src)
+def domain_restore(src, paused=False):
+    info = XendDomain.instance().domain_restore(src, paused)
     return fixup_sxpr(info.sxpr())
 
 def get_log():
diff -r cbbfadf7c8a5 -r a8d2b1393b76 tools/python/xen/xm/main.py
--- a/tools/python/xen/xm/main.py       Fri Nov 17 16:21:14 2006 -0700
+++ b/tools/python/xen/xm/main.py       Tue Nov 21 18:09:23 2006 -0800
@@ -84,7 +84,7 @@ SUBCOMMAND_HELP = {
                      'Migrate a domain to another machine.'),
     'pause'       : ('<Domain>', 'Pause execution of a domain.'),
     'reboot'      : ('<Domain> [-wa]', 'Reboot a domain.'),
-    'restore'     : ('<CheckpointFile>',
+    'restore'     : ('<CheckpointFile> [-p]',
                      'Restore a domain from a saved state.'),
     'save'        : ('<Domain> <CheckpointFile>',
                      'Save a domain state to restore later.'),
@@ -206,6 +206,9 @@ SUBCOMMAND_OPTIONS = {
        ('-L', '--live', 'Dump core without pausing the domain'),
        ('-C', '--crash', 'Crash domain after dumping core'),
     ),
+    'restore': (
+      ('-p', '--paused', 'Do not unpause domain after restoring it'),
+    ),
 }
 
 common_commands = [
@@ -483,15 +486,31 @@ def xm_save(args):
     server.xend.domain.save(domid, savefile)
     
 def xm_restore(args):
-    arg_check(args, "restore", 1)
-
-    savefile = os.path.abspath(args[0])
+    arg_check(args, "restore", 1, 2)
+
+    try:
+        (options, params) = getopt.gnu_getopt(args, 'p', ['paused'])
+    except getopt.GetoptError, opterr:
+        err(opterr)
+        sys.exit(1)
+
+    paused = False
+    for (k, v) in options:
+        if k in ['-p', '--paused']:
+            paused = True
+
+    if len(params) != 1:
+        err("Wrong number of parameters")
+        usage('restore')
+        sys.exit(1)
+
+    savefile = os.path.abspath(params[0])
 
     if not os.access(savefile, os.R_OK):
         err("xm restore: Unable to read file %s" % savefile)
         sys.exit(1)
 
-    server.xend.domain.restore(savefile)
+    server.xend.domain.restore(savefile, paused)
 
 
 def getDomains(domain_names, full = 0):

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] Add -p/--paused flag to xm restore., Xen patchbot-unstable <=