ganeti-local
14 years agoFix dumpers/loaders after __slots__ cleanup
Iustin Pop [Wed, 10 Feb 2010 11:55:43 +0000 (12:55 +0100)]
Fix dumpers/loaders after __slots__ cleanup

Commit 154b958 changed (correctly) the __slots__ usage, but this broke
dumpers/loaders since we relied directly on the own class __slots__
field.

To compensate, we introduce a simple function for computing the slots
across all parent classes (if any), and use this instead of __slots__
directly.

Note: the _all_slots() function is duplicated between objects.py and
opcodes.py, but the only other options is to introduce a lang.py for
such very basic language items.

Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>

14 years agoFix locking bug causing high CPU usage
Michael Hanselmann [Wed, 10 Feb 2010 12:45:52 +0000 (13:45 +0100)]
Fix locking bug causing high CPU usage

Iustin Pop noticed unusually high CPU usage with 2.1's master
daemon, even with very simple opcodes like OP_TEST_DELAY. As
it turns out, we inadvertently passed seconds as milliseconds
to a call to poll(2). Due to the way the loop around the call
works it didn't break competely, but caused higher CPU usage
by the poll(2) call returning too early.

Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>

14 years agoCheck built manpages for errors
Michael Hanselmann [Wed, 10 Feb 2010 10:35:19 +0000 (11:35 +0100)]
Check built manpages for errors

One fix is necessary in gnt-cluster.sgml. Also adding “DELETE_ON_ERROR”
target to remove output file if an error occurred while building it (in
this case the manpage).

This was reported by Iustin Pop in issue 87 and proposed check method
taken from Lintian.
http://code.google.com/p/ganeti/issues/detail?id=87

Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>

14 years agoFix confd procotol design description
Guido Trotter [Wed, 10 Feb 2010 09:15:04 +0000 (11:15 +0200)]
Fix confd procotol design description

The protocol design for confd was missing a description of the fourcc
code which we use to distinguish between different message types, if we
want to completely change the protocol. Adding them so that someone
implementing it can find out.

Signed-off-by: Guido Trotter <ultrotter@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>

14 years agoImplement instance rename QA tests
Iustin Pop [Tue, 9 Feb 2010 09:30:40 +0000 (10:30 +0100)]
Implement instance rename QA tests

Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>

14 years agoAdd an early release lock/storage for disk replace
Iustin Pop [Tue, 9 Feb 2010 08:57:50 +0000 (09:57 +0100)]
Add an early release lock/storage for disk replace

This patch adds an early_release parameter in the OpReplaceDisks and
OpEvacuateNode opcodes, allowing earlier release of storage and more
importantly of internal Ganeti locks.

The behaviour of the early release is that any locks and storage on all
secondary nodes are released early. This is valid for change secondary
(where we remove the storage on the old secondary, and release the locks
on the old and new secondary) and replace on secondary (where we remove
the old storage and release the lock on the secondary node.

Using this, on a three node setup:

- instance1 on nodes A:B
- instance2 on nodes C:B

It is possible to run in parallel a replace-disks -s (on secondary) for
instances 1 and 2.

Replace on primary will remove the storage, but not the locks, as we use
the primary node later in the LU to check consistency.

It is debatable whether to also remove the locks on the primary node,
and thus making replace-disks keep zero locks during the sync. While
this would allow greatly enhanced parallelism, let's first see how
removal of secondary locks works.

Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>

14 years agoFix "gnt-instance rename" functionality
Iustin Pop [Tue, 9 Feb 2010 09:15:51 +0000 (10:15 +0100)]
Fix "gnt-instance rename" functionality

Commit 91e0748c (Unify the “--no-ip-check” option) broke the options
variable name for ‘--no-ip-check’ but since we don't have a QA test for
instance rename (only burnin test), this was not caught until Issue 86
was opened.

Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>

14 years agoMerge branch 'stable-2.1' into devel-2.1
Iustin Pop [Mon, 8 Feb 2010 13:16:58 +0000 (14:16 +0100)]
Merge branch 'stable-2.1' into devel-2.1

* stable-2.1:
  TLReplaceDisks: Delay iallocator when evacuating node
  Implement debug level across OS-related RPC calls
  Second try to fix LUVerifyCluster
  LUVerifyCluster: Fix bug with offline nodes
  utils: Fix retry delay calculator
  Bump RPC protocol version to 30

Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>

14 years agoTLReplaceDisks: Delay iallocator when evacuating node
Michael Hanselmann [Thu, 4 Feb 2010 16:32:21 +0000 (17:32 +0100)]
TLReplaceDisks: Delay iallocator when evacuating node

When evacuating nodes, the iallocator was run for all
instances without taking planned changes into consideration.
This patch delays part of CheckPrereq and running the
iallocator for node evacuation.

Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>

14 years agoUpdate NEWS file and bump version to 2.0.6 v2.0.6
Iustin Pop [Thu, 4 Feb 2010 10:43:11 +0000 (11:43 +0100)]
Update NEWS file and bump version to 2.0.6

Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>

14 years agoImplement debug level across OS-related RPC calls
Iustin Pop [Wed, 3 Feb 2010 13:24:42 +0000 (14:24 +0100)]
Implement debug level across OS-related RPC calls

This doesn't implement the full functionality, we need to add the debug
level to the opcodes too, but at least won't require changing the RPC
calls during the 2.1 series.

Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>

14 years agoSecond try to fix LUVerifyCluster
Michael Hanselmann [Wed, 3 Feb 2010 13:24:53 +0000 (14:24 +0100)]
Second try to fix LUVerifyCluster

My previous patch, commit 785d142, fixed the case where a node is marked
offline. With this patch it'll also handle other failures correctly.

 * Hooks Results
   - ERROR: node node2.example.com: Communication failure in hooks
   execution: Connection failed (111: Connection refused)

Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>

14 years agoLUVerifyCluster: Fix bug with offline nodes
Michael Hanselmann [Wed, 3 Feb 2010 12:50:49 +0000 (13:50 +0100)]
LUVerifyCluster: Fix bug with offline nodes

[…]
 * Other Notes
   - NOTICE: 1 offline node(s) found.
 * Hooks Results
Failure: command execution error:
iteration over non-sequence

Commit a0c9776a introduced an error simulation mode to LUVerifyCluster.
Due to a small mistake, offline nodes weren't skipped when checking the
results of verification hooks and iterating over None raises an
“iteration over non-sequence” error.

Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>

14 years agoutils: Fix retry delay calculator
Michael Hanselmann [Wed, 3 Feb 2010 12:18:01 +0000 (13:18 +0100)]
utils: Fix retry delay calculator

Before this patch, it would always sleep for at least
the time specified as the upper limit. Now it actually
limits the sleep time.

Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>

14 years agoganeti-cleaner: does 'echo 0' instead of 'exit 0'
Elmar Hoffmann [Tue, 2 Feb 2010 13:26:54 +0000 (14:26 +0100)]
ganeti-cleaner: does 'echo 0' instead of 'exit 0'

This is from Debian Bug#568105.

ganeti-cleaner in one case erroneously calls "echo 0" instead of "exit
0". As ganeti-cleaner is called in the daily cronjob, this leads to a
daily mail containing just "0" with an unconfigured default install.

Signed-off-by: Elmar Hoffmann <elho@elho.net>
Reviewed-by: Iustin Pop <iustin@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Signed-off-by: Iustin Pop <iustin@google.com>

14 years agoBump RPC protocol version to 30
Michael Hanselmann [Mon, 1 Feb 2010 14:52:57 +0000 (15:52 +0100)]
Bump RPC protocol version to 30

Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>

14 years agoMerge remote branch 'origin/stable-2.1' into devel-2.1
Michael Hanselmann [Mon, 1 Feb 2010 12:55:56 +0000 (13:55 +0100)]
Merge remote branch 'origin/stable-2.1' into devel-2.1

* origin/stable-2.1:
  Bump version to 2.1.0~rc5
  Fix missing bridge for xen instances
  Fix flipping MC flag bug
  ganeti-watcher: ensure confd is running as well

14 years agoBump version to 2.1.0~rc5 v2.1.0rc5
Michael Hanselmann [Mon, 1 Feb 2010 12:21:10 +0000 (13:21 +0100)]
Bump version to 2.1.0~rc5

Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>

14 years agoMakefile.am: Targets used directly should depend on BUILT_SOURCES
Michael Hanselmann [Wed, 27 Jan 2010 17:02:58 +0000 (18:02 +0100)]
Makefile.am: Targets used directly should depend on BUILT_SOURCES

Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>

14 years agoMerge branch 'devel-2.0' into devel-2.1
Iustin Pop [Mon, 1 Feb 2010 10:40:01 +0000 (11:40 +0100)]
Merge branch 'devel-2.0' into devel-2.1

* devel-2.0:
  Three small typos in man pages

Conflicts:
man/gnt-cluster.sgml (trivial)

Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>

14 years agoMake the snapshot decision based on disk type
Iustin Pop [Fri, 29 Jan 2010 11:37:35 +0000 (12:37 +0100)]
Make the snapshot decision based on disk type

… instead of disk size, which is not as reliable. This actually
simplifies the code; but it still leaves the possibility of stack
overflows if the disk data structure is corrupted.

Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>

14 years agoThree small typos in man pages
Iustin Pop [Mon, 1 Feb 2010 09:23:31 +0000 (10:23 +0100)]
Three small typos in man pages

The credit goes again to Lintian.

Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>

14 years agoFix missing bridge for xen instances
Alessandro Cincaglini [Fri, 29 Jan 2010 11:47:45 +0000 (11:47 +0000)]
Fix missing bridge for xen instances

Xen instances nic definitions miss the target bridge.

This bug was introduced in commit 503b97a9.

Signed-off-by: Alessandro Cincaglini <alessandro.ciancaglini@gmail.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Signed-off-by: Guido Trotter <ultrotter@google.com>

14 years agoFix flipping MC flag bug
Guido Trotter [Thu, 28 Jan 2010 14:40:44 +0000 (14:40 +0000)]
Fix flipping MC flag bug

Currently unofflining or undraining an already functional master
candidate node, can cause it to demote itself. In order to avoid that we
only trigger the self-promotion check if the node is not currently a
candidate.

Signed-off-by: Guido Trotter <ultrotter@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>

14 years agoganeti-watcher: ensure confd is running as well
Guido Trotter [Thu, 28 Jan 2010 11:34:50 +0000 (11:34 +0000)]
ganeti-watcher: ensure confd is running as well

Ganeti-confd should be running on all 2.1 nodes.

Signed-off-by: Guido Trotter <ultrotter@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>

14 years agoAdd capability to use syslog for logging
Iustin Pop [Wed, 27 Jan 2010 16:47:59 +0000 (17:47 +0100)]
Add capability to use syslog for logging

This patch adds a configure-time parameter that will set the defaults
used by all programs, and command-line parameters in the daemons that
allow overriding it.

Syslog 'yes' enables syslog in addition to file-based logging, 'only'
enables syslog and disables file-based syslog.

The log entries will be of the form:
Jan 27 08:45:04 node2 ganeti-noded[14504]: INFO 172.24.227.5:50850 PUT
/jobqueue_update HTTP/1.0 200
Jan 27 08:45:05 node2 ganeti-noded[14505]: INFO 172.24.227.5:50853 PUT
/lv_list HTTP/1.0 200

and (for a multi-threaded program):
Jan 27 08:51:48 node1 ganeti-masterd[15491]: (MainThread) INFO
ganeti-masterd daemon startup
Jan 27 08:51:49 node1 ganeti-masterd[15491]: (MainThread) INFO
Inspecting job queue

Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>

14 years agonode daemon: allow working with broken queue dir
Iustin Pop [Wed, 27 Jan 2010 12:01:52 +0000 (13:01 +0100)]
node daemon: allow working with broken queue dir

In case the queue dir cannot be create/initialized, currently
ganeti-noded exits. This means that a read-only filesystem or a
permission error breaks all node daemon functionality, including
powercycle. This is not good for the usual failure case for nodes.

To workaround this, we don't require successful initialization at node
daemon startup; if we can't init the queue dir/lock, we retry at every
RPC call requiring a job queue lock, and if we still can't acquire the
lock, we raise an exception (which is catched in HandleRequest and
transformed into an RPC failure).

This allows the node daemon to start in face of queue issues, and the
master node to power-cycle it.

Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>

14 years agoutils.FileLock: handle init errors properly
Iustin Pop [Wed, 27 Jan 2010 10:32:28 +0000 (11:32 +0100)]
utils.FileLock: handle init errors properly

If the open of the lock file fails (due to whatever reason), 'self'
won't have the 'fd' attribute, and thus we fail in Close/__del__, which
will ruin proper error reporting:

IOError: [Errno 30] Read-only file system: '/var/lib/ganeti/queue/lock'
Exception exceptions.AttributeError: "'FileLock' object has no attribute
'fd'" in <bound method FileLock.__del__ of <ganeti.utils.FileLock object
at 0x2aaaad0bebd0>> ignored

Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>

14 years agodaemon-utils: remove usage of here-docs
Iustin Pop [Wed, 27 Jan 2010 10:26:54 +0000 (11:26 +0100)]
daemon-utils: remove usage of here-docs

In some versions of bash, here-docs and here-strings use temporary
files, which means daemon-util needs a writable temporary filesystem.
Since echo is a bash builtin anyway, it's simple to switch to it and
remove this dependency.

Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>

14 years agoFix typo in ganeti-os-interface(7)
Michael Hanselmann [Tue, 26 Jan 2010 18:06:45 +0000 (19:06 +0100)]
Fix typo in ganeti-os-interface(7)

The variable is called “IMPORT_INDEX”, not “IMPORT_IDX”.

Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>

14 years agolocking: add/fix @type information
Guido Trotter [Wed, 27 Jan 2010 10:09:12 +0000 (10:09 +0000)]
locking: add/fix @type information

This patch missing @type information for all public methods, modifies
one to conform to the rest, and removes some information from @param
when it's been expressed in @type.

Signed-off-by: Guido Trotter <ultrotter@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>

14 years agoFix __slots__ definitions
Balazs Lecz [Tue, 26 Jan 2010 13:07:17 +0000 (13:07 +0000)]
Fix __slots__ definitions

According to http://docs.python.org/reference/datamodel.html#slots

* The action of a __slots__ declaration is limited to the class where it
  is defined. As a result, subclasses will have a __dict__ unless they
  also define __slots__ (which must only contain names of any
  /additional/ slots).

* If a class defines a slot also defined in a base class, the instance
  variable defined by the base class slot is inaccessible (except by
  retrieving its descriptor directly from the base class). This renders
  the meaning of the program undefined. In the future, a check may be
  added to prevent this.

Signed-off-by: Balazs Lecz <leczb@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Signed-off-by: Iustin Pop <iustin@google.com>

14 years agoMerge branch 'devel-2.0' into devel-2.1
Iustin Pop [Tue, 26 Jan 2010 12:22:30 +0000 (13:22 +0100)]
Merge branch 'devel-2.0' into devel-2.1

* devel-2.0:
  Fix the mocks.py for 2.0 unittests
  LURemoveNode safety in face of wrong node list
  Fix an unsafe formatting bug
  Ensure all int/float conversions are handled right

Conflicts:
lib/backend.py - trivial merge
lib/cmdlib.py  - merge, and took 2.0's version of LURemoveNode
                 BuildHooksEnv
lib/mcpu.py    - kept ours
lib/objects.py - trivial merge
lib/utils.py   - trivial merge
scripts/gnt-backup - kept ours
scripts/gnt-instance - trivial merge

Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>

14 years agoFix the mocks.py for 2.0 unittests
Iustin Pop [Mon, 25 Jan 2010 16:36:41 +0000 (17:36 +0100)]
Fix the mocks.py for 2.0 unittests

The recent change to use LogWarning with multiple arguments in
mpcu.py/HooksMaster broke the (simple) mock we have in the tests.

Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>

14 years agoAdd a crude disable for DRBD barriers
Iustin Pop [Mon, 25 Jan 2010 12:10:25 +0000 (13:10 +0100)]
Add a crude disable for DRBD barriers

Ideally we want to/will have per-device DRBD controls of disk/metadata
flushes. In the meantime, we want at least a disable of the barrier
functionality for cases where one has battery-backed caches.

Background: DRBD has four mechanism of handling ordered disk-writes.
From the drbdsetup man-page, these are: barrier, flush, drain and none.
DRBD prior to 8.2 only has drain and none. This patch makes all 8.x
versions of DRBD disable all methods, and revert to none, in case one
fully trusts batteries (either UPS for the whole system or battery for
NVRAM).

Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>

14 years agoLURemoveNode safety in face of wrong node list
Iustin Pop [Mon, 25 Jan 2010 13:49:04 +0000 (14:49 +0100)]
LURemoveNode safety in face of wrong node list

LURemoveNode runs under the BGL, which means we're guaranteed that the
list of nodes as retrieved in CheckPrereq is still valid in
BuildHooksEnv. However, we can make Ganeti handle failures in case the
locking is broken (or the node list has been modified otherwise) easily,
which is better than crashing hard in such a case.

This will also fix issue 79, even though that is due to an out-of-tree
patch.

Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>

14 years agoFix an unsafe formatting bug
Iustin Pop [Mon, 25 Jan 2010 13:37:33 +0000 (14:37 +0100)]
Fix an unsafe formatting bug

This might fix issue 84; in any case, the current situation is that we
have a potentially unsafe formatting, which should be fixed.

Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>

14 years agoEnsure all int/float conversions are handled right
Iustin Pop [Mon, 25 Jan 2010 13:29:28 +0000 (14:29 +0100)]
Ensure all int/float conversions are handled right

int()/float() can raise either ValueError (in case of int("a")), or
TypeError (in case of int(None)). We had many bugs over time due to
this, and a recent one was just diagnosed, so we go over the codebase
and replace all 'except ValueError' with 'except (TypeError,
ValueError)' that protect such conversions (there were no 'except
TypeError' cases that needed a ValueError added).

Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>

14 years agoMerge branch 'stable-2.1' into devel-2.1
Michael Hanselmann [Fri, 22 Jan 2010 16:38:14 +0000 (17:38 +0100)]
Merge branch 'stable-2.1' into devel-2.1

* stable-2.1:
  Bump version to 2.1.0~rc4
  KVM: fix pylint warning
  KVM: be more resilient on broken migration answers
  Add unittests for cli.GenerateTable
  cli: Fix bug when not using headers
  daemon-util: Fix quoting issue
  Bump version to 2.1.0~rc3

14 years agoBump version to 2.1.0~rc4 v2.1.0rc4
Michael Hanselmann [Fri, 22 Jan 2010 15:56:54 +0000 (16:56 +0100)]
Bump version to 2.1.0~rc4

Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>

14 years agoUpdate man page of gnt-instance
René Nussbaumer [Fri, 22 Jan 2010 13:28:27 +0000 (14:28 +0100)]
Update man page of gnt-instance

This patch updates the man page of gnt-instance to include the newly
added tags filtering.

Signed-off-by: René Nussbaumer <rn@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Signed-off-by: Iustin Pop <iustin@google.com>

14 years agoKVM: fix pylint warning
Guido Trotter [Fri, 22 Jan 2010 13:45:58 +0000 (14:45 +0100)]
KVM: fix pylint warning

Specify string format arguments as logging function parameters

Signed-off-by: Guido Trotter <ultrotter@google.com>

14 years agoKVM: be more resilient on broken migration answers
Guido Trotter [Fri, 22 Jan 2010 11:37:24 +0000 (12:37 +0100)]
KVM: be more resilient on broken migration answers

Before, when doing kvm live migrations we use to accept an "unknown
status" but to reject anything that didn't match our regexp. Since we've
seen "info migrate" return a completely empty answer, we'll be more
tolerant of completely unknown results (while still logging them) and at
the same time we'll limit the number of them which we're willing to
accept in a row.

Signed-off-by: Guido Trotter <ultrotter@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>

14 years agoAllow filtering for (node-)tags
René Nussbaumer [Thu, 21 Jan 2010 15:16:32 +0000 (16:16 +0100)]
Allow filtering for (node-)tags

This change introduces startup, shutdown, reboot, reinstall by using
instance respectively node tags as a selection criteria.

Signed-off-by: René Nussbaumer <rn@google.com>
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>

14 years agoAdd unittests for cli.GenerateTable
Michael Hanselmann [Wed, 20 Jan 2010 12:42:41 +0000 (13:42 +0100)]
Add unittests for cli.GenerateTable

Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>

14 years agocli: Fix bug when not using headers
Michael Hanselmann [Wed, 20 Jan 2010 12:41:21 +0000 (13:41 +0100)]
cli: Fix bug when not using headers

Commit 9fe72672 added code to not write spaces at the end of each line.
Unfortunately it didn't work properly when not printing headers—there would
still be spaces.

Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>

14 years agodaemon-util: Fix quoting issue
Michael Hanselmann [Tue, 19 Jan 2010 16:02:32 +0000 (17:02 +0100)]
daemon-util: Fix quoting issue

This patch fixes a quoting issue in daemon-util:

$ EXTRA_MASTERD_ARGS=--no-voting /etc/init.d/ganeti restart
[…]
* ganeti-masterd...
/…/ganeti/daemon-util: line 65: local: `--no-voting': not a valid identifier

The reason was that the generated variables were not quoted properly and
the troublesome line expanded to
“local args=$MASTERD_ARGS $EXTRA_MASTERD_ARGS” instead of the correct
“local args="$MASTERD_ARGS $EXTRA_MASTERD_ARGS"”.

Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>

14 years agoBump version to 2.1.0~rc3 v2.1.0rc3
Michael Hanselmann [Wed, 13 Jan 2010 15:45:14 +0000 (16:45 +0100)]
Bump version to 2.1.0~rc3

Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>

14 years agoMerge branch 'stable-2.1' into devel-2.1
Iustin Pop [Fri, 15 Jan 2010 11:23:24 +0000 (12:23 +0100)]
Merge branch 'stable-2.1' into devel-2.1

* stable-2.1: (22 commits)
  Fix long-standing race condition bug in locking unittest
  confd client: copy the peers in UpdatePeerList
  testutils: Print name of test program before running it
  Don't use hardcoded name for pylint
  Partially revert "Makefile.am: Run pylint on all Python code"
  build-bash-completion: Take care of pylint warnings
  Makefile.am: Run pylint on all Python code
  Small improvements for release script
  check-python-code: Use “set -e” to abort on errors
  build-bash-completion: Fix a few pylint warnings
  Generate hmac file with a newline at the end
  jqueue: Don't return negative number for unchecked jobs when archiving
  cli.GenerateTable: Don't write EOL spaces
  Improve logging for workerpool tasks by providing __repr__
  workerpool: Simplify log messages
  workerpool: Use worker name as thread name
  workerpool: Make worker ID alphanumeric
  locking: Fix race condition in LockSet
  mcpu: Log lock status with sorted names
  locking: Append to list outside error handling block
  ...

14 years agoSwitch the SplitKeyVal function to accept escapes
Iustin Pop [Fri, 15 Jan 2010 10:41:08 +0000 (11:41 +0100)]
Switch the SplitKeyVal function to accept escapes

This tiny patch switches the SplitKeyVal function (and thus the command
line options like -H, -B, etc.) to UnescapeAndSplit, thus allowing one
to use escaped commas in the values of parameters.

Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>

14 years agoFix long-standing race condition bug in locking unittest
Michael Hanselmann [Thu, 14 Jan 2010 16:57:52 +0000 (17:57 +0100)]
Fix long-standing race condition bug in locking unittest

Every once in a while we saw failures in the locking unittest, but
weren't able to determine the cause. This patch fixes it by using
threading.Event instead of plain threading.Condition to notify another
thread. In most cases, threading.Condition must be used with another
variable to keep the actual state.  threading.Event does this for us.
Otherwise it can happen that the waiter only gets the lock after
condition was notified.

Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>

14 years agoconfd client: copy the peers in UpdatePeerList
Guido Trotter [Thu, 14 Jan 2010 15:53:54 +0000 (15:53 +0000)]
confd client: copy the peers in UpdatePeerList

Since the peer list is shuffled by the client, we don't keep a reference
to the list which was passed in, but copy it internally.

Signed-off-by: Guido Trotter <ultrotter@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>

14 years agotestutils: Print name of test program before running it
Michael Hanselmann [Thu, 14 Jan 2010 10:13:12 +0000 (11:13 +0100)]
testutils: Print name of test program before running it

While the name can be looked up in Makefile.am, this
is useful when an automated test just hangs and needs
to be killed.

Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>

14 years agoDon't use hardcoded name for pylint
Michael Hanselmann [Thu, 14 Jan 2010 09:56:43 +0000 (10:56 +0100)]
Don't use hardcoded name for pylint

Look it up at configure time instead.

Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>

14 years agoPartially revert "Makefile.am: Run pylint on all Python code"
Michael Hanselmann [Thu, 14 Jan 2010 09:49:31 +0000 (10:49 +0100)]
Partially revert "Makefile.am: Run pylint on all Python code"

This partially reverts commit e4e7c7df3a2356103c2442a91d628ca0470fb267,
which made newer pylint versions fail.

Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>

14 years agobuild-bash-completion: Take care of pylint warnings
Michael Hanselmann [Thu, 14 Jan 2010 09:49:56 +0000 (10:49 +0100)]
build-bash-completion: Take care of pylint warnings

Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>

14 years agoAdd an UnescapeAndSplit function
Iustin Pop [Wed, 13 Jan 2010 15:56:42 +0000 (16:56 +0100)]
Add an UnescapeAndSplit function

In many cases, where we accept (usually from the command line) a list of
parameters, we remove the use of the separator as an component of any of
the elements.

This patch adds a new function that can split strings of the form
'a,b\,c,d' into ['a', 'b,c', 'd'], with proper un-escaping of
double-backslashes.

Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>

14 years agoMakefile.am: Run pylint on all Python code
Michael Hanselmann [Wed, 13 Jan 2010 16:38:28 +0000 (17:38 +0100)]
Makefile.am: Run pylint on all Python code

That is, all Python code except unittests. In particular,
autotool/build-bash-completion was missing from the
previous list.

Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>

14 years agoSmall improvements for release script
Michael Hanselmann [Wed, 13 Jan 2010 16:37:15 +0000 (17:37 +0100)]
Small improvements for release script

- Print usage if no tree-ish (tag, branch or commit) was
  specified.
- Use “gntrelease.XXXXXXXXXX” as temporary directory
  template. This makes it easier to find all of them.
- Compute MD5 checksum. This doesn't cost a lot and
  might come in handy one day.

Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>

14 years agocheck-python-code: Use “set -e” to abort on errors
Michael Hanselmann [Wed, 13 Jan 2010 16:34:57 +0000 (17:34 +0100)]
check-python-code: Use “set -e” to abort on errors

Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>

14 years agobuild-bash-completion: Fix a few pylint warnings
Michael Hanselmann [Wed, 13 Jan 2010 16:33:56 +0000 (17:33 +0100)]
build-bash-completion: Fix a few pylint warnings

Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>

14 years agoGenerate hmac file with a newline at the end
Guido Trotter [Wed, 13 Jan 2010 16:15:41 +0000 (16:15 +0000)]
Generate hmac file with a newline at the end

This makes it slightly easier to cut&paste its content.

Signed-off-by: Guido Trotter <ultrotter@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>

14 years agojqueue: Don't return negative number for unchecked jobs when archiving
Michael Hanselmann [Wed, 13 Jan 2010 13:43:20 +0000 (14:43 +0100)]
jqueue: Don't return negative number for unchecked jobs when archiving

When the queue was empty, the calculation for unchecked jobs while
archiving would return -1. ``last_touched`` is set to 0, the job ID list
(``all_job_ids``) is empty. Calculating ``len(all_job_ids) -
last_touched - 1`` resulted in -1.

Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>

14 years agocli.GenerateTable: Don't write EOL spaces
Michael Hanselmann [Wed, 13 Jan 2010 11:34:54 +0000 (12:34 +0100)]
cli.GenerateTable: Don't write EOL spaces

With this change, there won't be unnecessary space characters
at the end of lines.

Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>

14 years agoImprove logging for workerpool tasks by providing __repr__
Michael Hanselmann [Wed, 13 Jan 2010 11:08:03 +0000 (12:08 +0100)]
Improve logging for workerpool tasks by providing __repr__

Before it would log something like “starting task
(<ganeti.http.client._HttpClientPendingRequest object at 0x2aaaad176790>,)”,
which isn't really useful for debugging. Now it'll log “[…]
<ganeti.http.client._HttpClientPendingRequest
req=<ganeti.http.client.HttpClientRequest 172.24.x.y:1811 PUT /node_info at
0x2aaaaab7ed10> at 0x2aaaaab823d0>”.

Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>

14 years agoworkerpool: Simplify log messages
Michael Hanselmann [Wed, 13 Jan 2010 10:56:16 +0000 (11:56 +0100)]
workerpool: Simplify log messages

Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>

14 years agoworkerpool: Use worker name as thread name
Michael Hanselmann [Wed, 13 Jan 2010 10:38:03 +0000 (11:38 +0100)]
workerpool: Use worker name as thread name

This way it shows up in debug logs.

Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>

14 years agoworkerpool: Make worker ID alphanumeric
Michael Hanselmann [Wed, 13 Jan 2010 10:37:44 +0000 (11:37 +0100)]
workerpool: Make worker ID alphanumeric

Having a proper name instead of just a number makes debugging
easier.

Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>

14 years agolocking: Fix race condition in LockSet
Michael Hanselmann [Wed, 13 Jan 2010 10:10:17 +0000 (11:10 +0100)]
locking: Fix race condition in LockSet

This patch fixes a race condition when acquiring all locks in
a LockSet instance. The list of lock names needs to be sorted
to guarantee a consistent locking order, but the names were not
sorted when acquiring all locks in the set.

Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>

14 years agomcpu: Log lock status with sorted names
Michael Hanselmann [Tue, 12 Jan 2010 14:13:05 +0000 (15:13 +0100)]
mcpu: Log lock status with sorted names

Reading and comparing sorted lists is easier when debugging locking problems.

Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>

14 years agolocking: Append to list outside error handling block
Michael Hanselmann [Tue, 12 Jan 2010 14:12:27 +0000 (15:12 +0100)]
locking: Append to list outside error handling block

Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>

14 years agolocking: Don't fail in error handling if lock isn't owned
Michael Hanselmann [Tue, 12 Jan 2010 14:11:40 +0000 (15:11 +0100)]
locking: Don't fail in error handling if lock isn't owned

In case an exception was thrown while acquiring the lock, not necessarily all
owned locks are also really acquired. Before this change, an exception could be
masked by another exception thrown here. There is no good clean-up strategy
when acquiring a lock fails with an exception in either case.

Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>

14 years agoProvide example default files and install one for development
Michael Hanselmann [Tue, 12 Jan 2010 10:39:59 +0000 (11:39 +0100)]
Provide example default files and install one for development

Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>

14 years agoMerge branch 'devel-2.1' into stable-2.1
Iustin Pop [Tue, 12 Jan 2010 10:24:03 +0000 (11:24 +0100)]
Merge branch 'devel-2.1' into stable-2.1

14 years agoNormalize MAC addresses to all lower.
René Nussbaumer [Mon, 11 Jan 2010 12:21:43 +0000 (13:21 +0100)]
Normalize MAC addresses to all lower.

This change will normalize the MAC to all lower after validation.

Signed-off-by: René Nussbaumer <rn@google.com>
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>

14 years agoIntroduce a Luxi call for GetTags
Iustin Pop [Tue, 5 Jan 2010 08:01:27 +0000 (09:01 +0100)]
Introduce a Luxi call for GetTags

This changes from submitting jobs to get the tags (in cli scripts) to
queries, which (since the tags query is a cheap one) should be much
faster.

The tags queries are already done without locks (in the generic query
paths for instances/nodes/cluster), so this shouldn't break tags query
via gnt-* list-tags.

On a small cluster, the runtime of gnt-cluster/gnt-instance list tags
more than halves; on a big cluster (with many MCs) I expect it to be
more than 5 times faster. The speed of the tags get is not the main
gain, it is eliminating a job when a simple query is enough.

Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: René Nussbaumer <rn@google.com>

14 years agoLURenameCluster: run post hook on all nodes
Iustin Pop [Tue, 5 Jan 2010 09:19:47 +0000 (10:19 +0100)]
LURenameCluster: run post hook on all nodes

Since the cluster name might be used for various purposes on nodes, we
should let all nodes "know" about a cluster rename by running the post
hook on all nodes. This will make cluster rename slightly
slower/costlier, but it is not/shouldn't be an operation that is run
very often.

Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Olivier Tharan <olive@google.com>

14 years agoAllow passing options to pylint in the lint rule
Iustin Pop [Mon, 4 Jan 2010 11:49:16 +0000 (12:49 +0100)]
Allow passing options to pylint in the lint rule

This allows automated builders to override the format, for example.

Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Olivier Tharan <olive@google.com>

14 years agoFix unused imports or add silences where needed
Iustin Pop [Tue, 29 Dec 2009 18:03:22 +0000 (19:03 +0100)]
Fix unused imports or add silences where needed

In some cases pylint doesn't parse the import correctly, so we add
silences; but there are also many cases of unused imports, which we
simply remove.

Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Olivier Tharan <olive@google.com>

14 years agobdev: Add a TODO and a pylint silence
Iustin Pop [Tue, 29 Dec 2009 18:01:33 +0000 (19:01 +0100)]
bdev: Add a TODO and a pylint silence

A piece of old code in bdev.py uses a for loop over a single variable
because we can 'break' out of the loop or exit on the 'else' path. This
is not a nice usage of the for loop, it should be converted to a
standard if...elif...else structure.

In the meantime we silence a warning from pylint (it is actually
invalid, IMHO) and add a TODO.

Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Olivier Tharan <olive@google.com>

14 years agoconfd: add a TODO and a pylint disable
Iustin Pop [Tue, 29 Dec 2009 18:00:42 +0000 (19:00 +0100)]
confd: add a TODO and a pylint disable

Two variables are used in a strange way in ExecConfd. Until that is
clarified, add a TODO and a silence for the unused variable warning.

Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Olivier Tharan <olive@google.com>

14 years agopylint: Temporarily disable W0201
Iustin Pop [Tue, 29 Dec 2009 17:58:25 +0000 (18:58 +0100)]
pylint: Temporarily disable W0201

There seems to be a bug in pylint relating to W0201 (“Attribute '%r'
defined outside __init__”) being re-enabled by simple comments and not
being able to be disabled again.

Until that is fixed, we disable this warning.

Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Olivier Tharan <olive@google.com>

14 years agoDisable R0922 in pylint
Iustin Pop [Tue, 29 Dec 2009 17:52:29 +0000 (18:52 +0100)]
Disable R0922 in pylint

R0922, “Abstract class is only referenced 1 times”, cannot be disabled
in the source code, and thus
lib/http/auth.py:HttpServerRequestAuthentication gives this warning
(it's actually also referenced from the tests, but we do not include
them).

Therefore we need to disable it at pylintrc level.

Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Olivier Tharan <olive@google.com>

14 years agoFurther pylint disables, mostly for Unused args
Iustin Pop [Tue, 29 Dec 2009 16:53:57 +0000 (17:53 +0100)]
Further pylint disables, mostly for Unused args

Many of our functions have to follow a given API, and thus we have to
keep a given signature, but pylint doesn't understand this. Therefore,
we silence this warning.

The patch does a few other cleanups.

Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Olivier Tharan <olive@google.com>

14 years agopylint: disable the similarities checker
Iustin Pop [Tue, 29 Dec 2009 16:49:36 +0000 (17:49 +0100)]
pylint: disable the similarities checker

This is a very slow checker, estimated to be O(n²) by its author; so
using it all the time is not good. It can be re-enabled on the command
line via “--disable-checker=”.

Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Olivier Tharan <olive@google.com>

14 years agoLUDiagnoseOS._DiagnoseByOS: remove unused arg
Iustin Pop [Tue, 29 Dec 2009 16:21:19 +0000 (17:21 +0100)]
LUDiagnoseOS._DiagnoseByOS: remove unused arg

The node_list argument to _DiagnoseByOS is not used, and is obsoleted by
the fact that the rlist argument already has the valid nodes as keys
(assuming RPC behaviour didn't change). Thus, we remove it and silence
the warning.

Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Olivier Tharan <olive@google.com>

14 years agodaemons: handle arguments correctly and uniformly
Iustin Pop [Tue, 29 Dec 2009 16:05:23 +0000 (17:05 +0100)]
daemons: handle arguments correctly and uniformly

Of all daemons, only rapi did abort when given argument. None of our
daemons use any arguments, but they accepted them blindly. This is a
very bad experience for the user.

This patch adds checking and exiting in all daemons, in a uniform way.
One other option would have been to add a flag to GenericMain
(noargs=True).

Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Olivier Tharan <olive@google.com>

14 years agohv_xen/_GetConfigFileDiskData: remove unused arg
Iustin Pop [Tue, 29 Dec 2009 15:40:23 +0000 (16:40 +0100)]
hv_xen/_GetConfigFileDiskData: remove unused arg

The disk template is not needed, all that's used is the disk data. As
such, remove this parameter from the function.

Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Olivier Tharan <olive@google.com>

14 years agojqueue/_CheckRpcResult: log the whole operation
Iustin Pop [Tue, 29 Dec 2009 15:33:11 +0000 (16:33 +0100)]
jqueue/_CheckRpcResult: log the whole operation

Currently only the rpc call, but not its description (which also shows
the argument) is logged. We change this to log failmsg too, and this
also silences a warning.

Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Olivier Tharan <olive@google.com>

14 years agoOptparse extenders have to obey a given API
Iustin Pop [Tue, 29 Dec 2009 15:16:33 +0000 (16:16 +0100)]
Optparse extenders have to obey a given API

So we just silence the warning.

Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Olivier Tharan <olive@google.com>

14 years agobackend._OSOndiskAPIVersion: remove obsolete arg
Iustin Pop [Tue, 29 Dec 2009 15:12:44 +0000 (16:12 +0100)]
backend._OSOndiskAPIVersion: remove obsolete arg

The 'name' argument is not used anymore, probably since before 2.0.
Since this is an internal function, we can just remove it (from its
caller too).

Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Olivier Tharan <olive@google.com>

14 years agopylint cleanups: dangerous initializers
Iustin Pop [Tue, 29 Dec 2009 15:05:19 +0000 (16:05 +0100)]
pylint cleanups: dangerous initializers

Plus a silence for a wrong "uninitialized var".

Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Olivier Tharan <olive@google.com>

14 years agoConvert to static methods (where appropriate)
Iustin Pop [Tue, 29 Dec 2009 15:04:31 +0000 (16:04 +0100)]
Convert to static methods (where appropriate)

Many methods are simple pure functions, and not depending on the object
state. We convert these to staticmethods.

Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Olivier Tharan <olive@google.com>

14 years agoRemove more unused variables
Iustin Pop [Tue, 29 Dec 2009 15:03:44 +0000 (16:03 +0100)]
Remove more unused variables

This removes unused variables in the rest of the code (outside lib/).

Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Olivier Tharan <olive@google.com>

14 years agoAdd targeted pylint disables
Iustin Pop [Tue, 29 Dec 2009 15:01:57 +0000 (16:01 +0100)]
Add targeted pylint disables

This patch should have only:

- pylint disables
- docstring changes
- whitespace changes

Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Olivier Tharan <olive@google.com>

14 years agoburnin: move decorators out of classes
Iustin Pop [Tue, 29 Dec 2009 14:02:32 +0000 (15:02 +0100)]
burnin: move decorators out of classes

Similar to commit c881c5, we move the decorators out of classes, such
that they become simple functions instead of methods. This more clean,
since only the wrapped functions need to be methods/have access to
‘self’.

Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Olivier Tharan <olive@google.com>

14 years agoRename an ConfdInotifyEventHandler init argument
Iustin Pop [Tue, 29 Dec 2009 11:18:20 +0000 (12:18 +0100)]
Rename an ConfdInotifyEventHandler init argument

'file' is a builtin keyword/type. Like many others, it should not be
used as a variable/argument name.

No code is actually passing in this argument so renaming it is simple.

Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Olivier Tharan <olive@google.com>

14 years agoIntroduce a makefile lint rule
Iustin Pop [Tue, 29 Dec 2009 11:04:27 +0000 (12:04 +0100)]
Introduce a makefile lint rule

This runs pylint over all the python files. Yes, it takes a long while,
but it's the only way to properly analyze the source codes as only in
this way pylint can see all uses of the various modules/classes/etc.

Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Olivier Tharan <olive@google.com>

14 years agoImplement all hv functions in hv_chroot/hv_fake
Iustin Pop [Tue, 29 Dec 2009 10:23:32 +0000 (11:23 +0100)]
Implement all hv functions in hv_chroot/hv_fake

The chroot and fake hypervisors were missing:

- the powercycle node functionality
- proper handling of migration requests

The powercycle was just used as in the other hypervisors (use the
standard linux powercycle). The migration for chroot was disabled
explicitly, whereas for the fake one it was implemented to simulate
correctly. This required some work on the fake hypervisor, but now the
implementation of start/stop/etc. is much more clean.

Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Olivier Tharan <olive@google.com>

14 years agoUpdate the _autoconf.py make rule for pylint
Iustin Pop [Tue, 29 Dec 2009 09:43:44 +0000 (10:43 +0100)]
Update the _autoconf.py make rule for pylint

This adds targeted pylint disables, but since _autoconf.py is
autogenerated we need to do this in Makefile.am (hence the separate
patch).

Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Olivier Tharan <olive@google.com>