On Mon, May 16, 2016 at 1:49 AM, Pavlos Parissis
<pavlos.paris...@gmail.com> wrote:
> I use subprocess.check_output like this:
>
> cmd = [
>     '/sbin/ip',
>     'address',
>     'show',
>     'dev',
>     "{}".format(self.config['interface']),
>     'to',
>     "{}".format(self.config['ip_prefix']),
> ]

Unrelated to your problem: "{}".format(x) is the same as str(x), and
if x is already a string, it does exactly nothing. Most likely you can
just put your configs straight in there.

> try:
>     out = subprocess.check_output(
>         cmd,
>         universal_newlines=True,
>         timeout=1)
> except subprocess.CalledProcessError as error:
>     return True
> except subprocess.TimeoutExpired:
>     return True
> else:
>     if self.config['ip_prefix'] in out:
>         return True
>     else:
>         return False
>
>
> and I get the following exception:
>
> ValueError: Invalid file object: <_io.TextIOWrapper name=11
> encoding='UTF-8'>

Searching the CPython sources for that exception shows one hit:
selectors.py, where it converts a file object to an integer file
descriptor. (You could have helped out by showing us the full
traceback.) Is it possible you were running out of file descriptors,
or in some other way unable to create the pipe?

ChrisA
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to