Quoting Stéphane Graber (stgra...@ubuntu.com): > It turns out that most API users want some kind of timeout option for > get_ips, so instead of re-implementing it in every single client > software, let's just have it as a python overlay upstream. > > Signed-off-by: Stéphane Graber <stgra...@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hal...@ubuntu.com> > --- > src/lxc/lxc-start-ephemeral.in | 8 +------- > src/python-lxc/lxc/__init__.py | 26 ++++++++++++++++++++++++++ > 2 files changed, 27 insertions(+), 7 deletions(-) > > diff --git a/src/lxc/lxc-start-ephemeral.in b/src/lxc/lxc-start-ephemeral.in > index 94cbf38..904f5ac 100644 > --- a/src/lxc/lxc-start-ephemeral.in > +++ b/src/lxc/lxc-start-ephemeral.in > @@ -36,7 +36,6 @@ import os > import sys > import subprocess > import tempfile > -import time > > _ = gettext.gettext > gettext.textdomain("lxc-start-ephemeral") > @@ -260,12 +259,7 @@ if not args.command and not args.daemon: > sys.exit(0) > > # Try to get the IP addresses > -ips = None > -timeout = 5 > -while not ips and timeout != 0: > - ips = dest.get_ips() > - time.sleep(1) > - timeout -= 1 > +ips = dest.get_ips(timeout=5) > > # Deal with the case where we just print info about the container > if args.daemon: > diff --git a/src/python-lxc/lxc/__init__.py b/src/python-lxc/lxc/__init__.py > index 8f108f9..c15cfad 100644 > --- a/src/python-lxc/lxc/__init__.py > +++ b/src/python-lxc/lxc/__init__.py > @@ -26,6 +26,7 @@ import glob > import os > import subprocess > import stat > +import time > import warnings > > warnings.warn("The python-lxc API isn't yet stable " > @@ -353,6 +354,31 @@ class Container(_lxc.Container): > else: > return value > > + def get_ips(self, interface=None, family=None, scope=None, timeout=0): > + """ > + Get a tuple of IPs for the container. > + """ > + > + kwargs = {} > + if interface: > + kwargs['interface'] = interface > + if family: > + kwargs['family'] = family > + if scope: > + kwargs['scope'] = scope > + > + ips = None > + > + while not ips: > + ips = _lxc.Container.get_ips(self, **kwargs) I suppose -1 meaning 'infinite timeout' will just work ... :) > + if timeout == 0: > + break > + > + timeout -= 1 > + time.sleep(1) > + > + return ips > + > def set_config_item(self, key, value): > """ > Set a config key to a provided value. > -- > 1.8.3.2 > > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by Windows: > > Build for Windows Store. > > http://p.sf.net/sfu/windows-dev2dev > _______________________________________________ > Lxc-devel mailing list > Lxc-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/lxc-devel ------------------------------------------------------------------------------ This SF.net email is sponsored by Windows: Build for Windows Store. http://p.sf.net/sfu/windows-dev2dev _______________________________________________ Lxc-devel mailing list Lxc-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/lxc-devel