]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
lxc-start-ephemeral: startup time improvement
authorStéphane Graber <stgraber@ubuntu.com>
Thu, 13 Sep 2012 14:08:39 +0000 (10:08 -0400)
committerStéphane Graber <stgraber@ubuntu.com>
Mon, 12 Nov 2012 18:18:32 +0000 (13:18 -0500)
Re-organize the code to only call get_ips() when we actually need
the IP address of the container.

Also bump the timeout for get_ips() from 5s to 10s to accomodate
slower machines.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
src/lxc/lxc-start-ephemeral.in

index 85772563d84c13542b005b353d8786c169a52200..2eb6157d98a28f1f76ee2f0216e3e868007d8868 100644 (file)
@@ -233,26 +233,27 @@ if not dest.start() or not dest.wait("RUNNING", timeout=5):
         dest.destroy()
     sys.exit(1)
 
+# Deal with the case where we just attach to the container's console
+if not args.command and not args.daemon:
+    dest.console(tty=1)
+    dest.shutdown(timeout=5)
+    sys.exit(0)
+
 # Try to get the IP addresses
-ips = dest.get_ips(timeout=5)
+ips = dest.get_ips(timeout=10)
 
-# Deal with the case where we don't start a command in the container
-if not args.command:
-    if args.daemon:
-        print(_("""The ephemeral container is now started.
+# Deal with the case where we just print info about the container
+if args.daemon:
+    print(_("""The ephemeral container is now started.
 
 You can enter it from the command line with: lxc-console -n %s
 The following IP addresses have be found in the container:
 %s""") % (
-                dest.name,
-                "\n".join([" - %s" % entry for entry in ips]
-                            or [" - %s" % _("No address could be found")])
-            ))
-        sys.exit(0)
-    else:
-        dest.console(tty=1)
-        dest.shutdown(timeout=5)
-        sys.exit(0)
+            dest.name,
+            "\n".join([" - %s" % entry for entry in ips]
+                        or [" - %s" % _("No address could be found")])
+        ))
+    sys.exit(0)
 
 # Now deal with the case where we want to run a command in the container
 if not ips: