diff -r c3ac0f617f6a ui.py.in
--- a/ui.py.in	Wed Jun 15 23:35:31 2011 +0900
+++ b/ui.py.in	Wed Jun 15 23:39:41 2011 +0900
@@ -759,7 +759,7 @@
         self.cmd_table["demote"] = (self.demote,(1,1),0,(rsc_list,))
         self.cmd_table["manage"] = (self.manage,(1,1),0,(rsc_list,))
         self.cmd_table["unmanage"] = (self.unmanage,(1,1),0,(rsc_list,))
-        self.cmd_table["migrate"] = (self.migrate,(1,4),0,(rsc_list,nodes_list))
+        self.cmd_table["migrate"] = (self.migrate,(1,5),0,(rsc_list,nodes_list))
         self.cmd_table["unmigrate"] = (self.unmigrate,(1,1),0,(rsc_list,))
         self.cmd_table["param"] = (self.param,(3,4),1,(rsc_list,attr_cmds))
         self.cmd_table["meta"] = (self.meta,(3,4),1,(rsc_list,attr_cmds))
@@ -829,32 +829,43 @@
             return False
         return set_deep_meta_attr("is-managed","false",rsc)
     def migrate(self,cmd,*args):
-        """usage: migrate <rsc> [<node>] [<lifetime>] [force]"""
+        """usage: migrate <rsc> [<node>] [<lifetime>] [force] [quiet]"""
         rsc = args[0]
         if not is_name_sane(rsc):
             return False
         node = None
         lifetime = None
         force = False
+        quiet = None
         if len(args) == 2:
             if not args[1] in listnodes():
                 if args[1] == "force":
                     force = True
+                elif args[1] == "quiet":
+                    quiet = args[1]
                 else:
                     lifetime = args[1]
             else:
                 node = args[1]
-        elif len(args) == 3:
+        elif len(args) == 3 or len(args) == 4:
             if not args[1] in listnodes():
-                lifetime = args[1]
-                force = True
+                for i in range(1, len(args)):
+                    if args[i] == "force":
+                        force = True
+                    elif args[i] == "quiet":
+                        quiet = args[i]
+                    else:
+                        lifetime = args[i]
             else:
                 node = args[1]
-                if args[2] == "force":
-                    force = True
-                else:
-                    lifetime = args[2]
-        elif len(args) == 4:
+                for i in range(2, len(args)):
+                    if args[i] == "force":
+                    	force = True
+                    elif args[i] == "quiet":
+                        quiet = args[i]
+                    else:
+                        lifetime = args[i]
+        elif len(args) == 5:
             if not is_name_sane(args[1]):
                 return False
             node = args[1]
@@ -863,6 +874,10 @@
                 syntax_err((cmd,force))
                 return False
             force = True
+            if not args[4] == "quiet":
+                syntax_err((cmd,quiet))
+                return False
+	    quiet = args[4]
         opts = ''
         if node:
             opts = "--node='%s'" % node
@@ -870,7 +885,18 @@
             opts = "%s --lifetime='%s'" % (opts,lifetime)
         if force or user_prefs.get_force():
             opts = "%s --force" % opts
-        return ext_cmd(self.rsc_migrate % (rsc,opts)) == 0
+        if quiet:
+            opts = "%s -Q" % opts
+        so, se, rc = get_allout(add_sudo(self.rsc_migrate % (rsc,opts)))
+        re.search("crm_resource -U", se)
+        if re:
+            if cmd == "migrate":
+                se = re.sub("crm_resource -U", "crm resource unmigrate", se)	
+            else:
+                se = re.sub("crm_resource -U", "crm resource unmove", se)	
+            se = re.sub("with -Q", "with quiet", se)	
+            page_string(se)
+        return rc == 0
     def unmigrate(self,cmd,rsc):
         "usage: unmigrate <rsc>"
         if not is_name_sane(rsc):
diff -r c3ac0f617f6a utils.py
--- a/utils.py	Wed Jun 15 23:35:31 2011 +0900
+++ b/utils.py	Wed Jun 15 23:39:41 2011 +0900
@@ -176,6 +176,19 @@
         print ".EXT", cmd
     return subprocess.call(add_sudo(cmd), shell=True)
 
+def get_allout(cmd):
+    '''
+    Run a cmd, return stdout, stderr, returncode output.
+    '''
+    proc = subprocess.Popen(cmd, shell = True, \
+        stdout = subprocess.PIPE, stderr = subprocess.PIPE)
+    stdout_value, stderr_value = proc.communicate()
+    proc.wait()
+    rc = proc.returncode
+    stdout_value = stdout_value.strip()
+    stderr_value = stderr_value.strip()
+    return stdout_value, stderr_value, rc
+
 def get_stdout(cmd, stderr_on = True):
     '''
     Run a cmd, return stdin output.
