All of the negative Python OVSDB tests were failing on Python 2.6 because
"%s\n" % e yielded the empty string on that version of Python. In turn,
that was because ovs.db.error.Error.__unicode__ was being called instead of
ovs.db.error.Error.__str__. I'm puzzled why that was happening, but this
commit fixes it and also seems like a small code cleanup.
Peter Balland helped me gain some insight on this problem.
CC: Peter Balland <peter@nicira.com>
CC: Reid Price <reid@nicira.com>
The init script starts monitor-external-ids with --monitor when
configured to do so. Also made changes to guarantee that --monitor
actually restarts ovs-external-ids.
Signed-off-by: Ethan Jackson <ethan@nicira.com>
Opening a file descriptor and then closing it always discards any locks
held on the underlying file, even if the file is still open as another file
descriptor. This meant that calling read_pidfile() on the process's own
pidfile would discard the lock and make other OVS processes think that the
process had died. This commit fixes the problem.
The timer_wait_until function in poller.py was using Time.msec to
figure out the current time. Unfortunately, Time.msec does not in
exist. Changed to use ovs.timeval.msec .
The documentation doesn't really need to say that a field may be "between
0 and 4294967295 characters long".
This regression was introduced by commit 991559357 "Implement initial
Python bindings for Open vSwitch database."
These initial bindings pass a few hundred of the corresponding tests
for C implementations of various bits of the Open vSwitch library API.
The poorest part of them is actually the Python IDL interface in
ovs.db.idl, which has not received enough attention yet. It appears
to work, but it doesn't yet support writes (transactions) and it is
difficult to use. I hope to improve it as it becomes clear what
semantics Python applications actually want from an IDL.