Statistics
| Branch: | Tag: | Revision:

root / lib / watcher @ fb62843c

# Date Author Comment
194f0764 06/12/2013 10:17 am Helga Velroyen

Watcher: Use hvparams when listing instances

This patch makes the watcher use the hvparams from ssconf
to retrieve the list of instances from the hypervisors.

Signed-off-by: Helga Velroyen <>
Reviewed-by: Thomas Thrainer <>

342a9b3b 05/31/2013 04:36 pm Bernardo Dal Seno

Merge branch 'stable-2.8' into master

  • stable-2.8:
    Document users-setup tool
    Adjusting permissions after confd start
    Ensure the queue socket has the right permissions
    Update IAllocator interface documentation
    Add NEWS entry for hail honoring networks...
d962dbf9 05/28/2013 04:05 pm Thomas Thrainer

Re-activate previously active disks in watcher

The watcher process previously (incorrectly) examined the admin_state
field to figure out if the disks of an instance should be activated
after a node reboot. This is changed to use the disks_active field of...

1bb99a33 05/17/2013 05:42 pm Bernardo Dal Seno

Merge branch 'stable-2.8' into master

  • stable-2.8: (45 commits)
    Update NEWS with disk creation fixes
    Sort cmdlib-related entries in Makefile.am
    cmdlib: Cleanup public/private functions
    cmdlib: Extract instance query related functionality
    cmdlib: Extract instance operation functionality...
9598b71f 05/14/2013 08:57 pm Michele Tartara

Remove extra newline

Also, properly set the date of the last modification.

Signed-off-by: Michele Tartara <>
Reviewed-by: Helga Velroyen <>

c300dbe4 05/14/2013 07:59 pm Michele Tartara

Add MonD to the watcher

The monitoring daemon should always be alive, therefore it's added to the
watcher.

Signed-off-by: Michele Tartara <>
Reviewed-by: Guido Trotter <>

cde49218 05/14/2013 04:46 pm Helga Velroyen

Rename dir 'block' to 'storage'

Renaming the 'block' directory to 'storage', because I plan to
place code there that is related to file storage and leaving
it named 'block' would be misleading.

Signed-off-by: Helga Velroyen <>
Reviewed-by: Thomas Thrainer <>

47e0abee 05/06/2013 11:47 am Thomas Thrainer

Split DRBD8Dev into DRBD8 and DRBD8Dev

All functionality specific to a single DRBD8 devide is now in DRBD8Dev,
whereas functionality which is valid for the whole DRBD "installation"
on a device is collected in DRBD8.

This makes it possible to remove a couple of FIXME's and clarifies the...

239364d0 05/06/2013 11:30 am Thomas Thrainer

Rename DRBD8 to DRBD8Dev

Right now the DRBD8 class has multiple responsibilities: a) it
reprensents a device which can be set up, grown, etc. and b) it
represents the whole DRBD system on a node which has a usermode helper,
which knows how to shut down all devices, etc. Therefore, the DRBD8Dev...

2fe690f1 04/29/2013 07:05 pm Thomas Thrainer

Extract /proc/drbd parsing code into DRBD8Info

As the DRBD8 class got bigger due to the previous merge of BaseDRBD, now
parts of it are ripped out into DRBD8Info. This new class parses
/proc/drbd and exposes the information in an easily accessible way. This...

89ff748d 04/24/2013 11:00 am Thomas Thrainer

Extract DRBD-related classes into block/drbd.py

This is in preparation to introducing support for DRBD8.4.
base.py had to be extracted as well in order to avoid cylic imports
between bdev.py and drbd.py. It now contains the BlockDev class and
utility functions needed by bdev.py and drbd.py....

ce9283c1 04/24/2013 10:59 am Thomas Thrainer

Move lib/bdev.py to lib/block/bdev.py

That's in preparation of extracting DRBD related code from bdev.py. As
bdev.py is already rather long, new features will require to split it
into more manageable pieces. That's why it's moved in an own directory.

Signed-off-by: Thomas Thrainer <>...

b8028dcf 12/19/2012 06:29 pm Michael Hanselmann

Replace frozenset with compat.UniqueFrozenset

This is not a trivial s/frozenset/compat.UniqueFrozenset/, but rather
only replaces “frozenset” where appropriate. Most of the places are
“static” information that doesn't change after the module has been
loaded....

57fe4a5b 09/18/2012 06:11 pm Michael Hanselmann

Migrate lib/watcher/__init__.py from constants to pathutils

File system paths moved from constants to pathutils.

Signed-off-by: Michael Hanselmann <>
Reviewed-by: Iustin Pop <>

fc3f75dd 09/03/2012 06:18 pm Iustin Pop

Fix decorator uses which crash newer pylint

Pylint version:

pylint 0.25.1,
astng 0.23.1, common 0.58.0

crashes when passing the fully-qualified decorator name with:

File "/usr/lib/pymodules/python2.7/pylint/checkers/base.py", line 161, in visit_function...
40b068e5 05/29/2012 12:12 pm Iustin Pop

Re-wrap some lines in watcher code

These were using exactly 80 chars, and I like them smaller.

Signed-off-by: Iustin Pop <>
Reviewed-by: René Nussbaumer <>

3ccb3a64 02/21/2012 05:23 pm Michael Hanselmann

Replace single- with double-quotes

In at least two cases "%s" is replaced with str(), too.

Signed-off-by: Michael Hanselmann <>
Reviewed-by: Iustin Pop <>

2635bb04 01/06/2012 01:34 pm Michael Hanselmann

Move helper class from watcher to utils.io

“FileStatHelper” can be used together with “ReadFile” to a file's status
while it's opened. This avoids certain race conditions.

Signed-off-by: Michael Hanselmann <>
Reviewed-by: Iustin Pop <>

aa224134 11/17/2011 03:49 pm Iustin Pop

Adapt watcher for ENABLE_CONFD

If confd is disabled, do not automatically restart it. Furthermore, we
can't run maintenance actions if it is disabled so log a warning.

Note that I haven't completely disabled the NodeMaintenance class with
ENABLE_CONFD = False because I think they are at two different levels...

2e5c33db 10/12/2011 02:01 pm Iustin Pop

Rename filter and filter_ to qfilter

We currently use 'filter' as the OpCode, QueryRequest and RAPI field
name for representing a query filter. However, since 'filter' is a
built-in function, we actually have to use filter_ throughout the code
in order to not override the built-in function....

17385bd2 08/30/2011 02:01 pm Andrea Spadaccini

Fixes to errors/warnings raised by pylint 0.24

Running pylint 0.24.0 revealed 2 errors and 1 warning. Here is how I
fixed them:

  • jqueue.py: silenced E1101
  • netutils.py: rewrote the list comprehension using extend()
  • watcher/__init__.py: fixed a missing format string parameter...
b459a848 08/30/2011 11:24 am Andrea Spadaccini

DeprecationWarning fixes for pylint

In version 0.21, pylint unified all the disable-* (and enable-*)
directives to disable (resp. enable). This leads to a lot of
DeprecationWarning being emitted even if one uses the recommended
version of pylint (0.21.1, as stated in devnotes.rst)....

e687ec01 08/25/2011 01:53 pm Michael Hanselmann

PEP8 style fixes

Identified using the “pep8” utility.

Signed-off-by: Michael Hanselmann <>
Reviewed-by: Iustin Pop <>

5f01e6ad 08/22/2011 06:46 pm Michael Hanselmann

watcher: Wait for child processes by default

This patch retains the behaviour of ganeti-watcher in previous Ganeti
versions.

Signed-off-by: Michael Hanselmann <>
Reviewed-by: Iustin Pop <>

5bfb1134 08/12/2011 03:52 pm Michael Hanselmann

watcher: Use locks when querying for resource information

Signed-off-by: Michael Hanselmann <>
Reviewed-by: René Nussbaumer <>

6f9e71bb 08/05/2011 04:40 pm Michael Hanselmann

watcher: Fix breakage caused by 9bb69bb52fb9

The first argument to str.split is the separator, not the maximum number
of splits.

Signed-off-by: Michael Hanselmann <>
Reviewed-by: Iustin Pop <>

9bb69bb5 08/05/2011 02:06 pm Michael Hanselmann

watcher: Write per-group instance status, merge into global one

Each per-group watcher process writes its own instance status file. Once
that's done it tries to acquire an exclusive lock on the global file and
will proceed to read all status file, merging them based on each file's...

16e0b9c9 08/04/2011 01:28 pm Michael Hanselmann

ganeti-watcher: Split for node groups

This patch brings a huge change to ganeti-watcher to make it aware of
node groups. Each node group is processed in its own subprocess,
reducing the impact of long-running operations.

The global watcher state file, $datadir/ganeti/watcher.data, is replaced...

d66bbe9f 08/02/2011 11:20 am Iustin Pop

Fix doclint failures

Commit 54ca6e4b2 renamed some arguments, but didn't also renames them
in the docstrings.

Signed-off-by: Iustin Pop <>
Reviewed-by: Michael Hanselmann <>

8f07dc0d 07/29/2011 06:02 pm Michael Hanselmann

watcher: Separate function for writing instance status file

For now this will do another query to the master daemon, but with the
split for node groups this issue will go away.

Signed-off-by: Michael Hanselmann <>
Reviewed-by: Iustin Pop <>

d7c42723 07/29/2011 06:02 pm Michael Hanselmann

watcher: Make RAPI error messages less technical

Signed-off-by: Michael Hanselmann <>
Reviewed-by: Iustin Pop <>

54ca6e4b 07/29/2011 06:02 pm Michael Hanselmann

watcher.state: Use strings, not objects

Until now the state class would receive instances as objects
(ganeti.watcher.Instance), but this is not necessary. By using strings
the interface is simplified.

This patch also simplifies some code accessing the internal structures,...

013ce4ae 07/29/2011 06:02 pm Michael Hanselmann

watcher: Raise error on unknown hook status

Also, remove punctuation from one error message.

Signed-off-by: Michael Hanselmann <>
Reviewed-by: Iustin Pop <>

0cc9e018 07/29/2011 06:01 pm Michael Hanselmann

watcher: Reformat constants

Make them match with style guide.

Signed-off-by: Michael Hanselmann <>
Reviewed-by: Iustin Pop <>

adf6301e 07/29/2011 11:48 am Michael Hanselmann

watcher: Split state class into separate module

Signed-off-by: Michael Hanselmann <>
Reviewed-by: Iustin Pop <>

bcf0450d 07/29/2011 11:21 am Michael Hanselmann

Rename watcher's constant for instance status file

“upfile” is a bad name.

Signed-off-by: Michael Hanselmann <>
Reviewed-by: Guido Trotter <>

9ca87fb3 07/28/2011 04:27 pm Michael Hanselmann

watcher: Split node maintenance into separate module

The node maintenance class is standalone.

Signed-off-by: Michael Hanselmann <>
Reviewed-by: Iustin Pop <>

ae1a845c 07/26/2011 01:53 pm Michael Hanselmann

Change OpClusterVerifyDisks to per-group opcodes

Until now verifying disks, which is also used by the watcher,
would lock all nodes and instances. With this patch the opcode
is changed to operate on per nodegroup, requiring fewer locks.

Both “gnt-cluster” and “ganeti-watcher” are changed for the...

580c971e 04/29/2011 03:38 pm Michael Hanselmann

Merge branch 'devel-2.4'

  • devel-2.4: (24 commits)
    mlock: fail gracefully if libc.so.6 cannot be loaded
    Allow creating the DRBD metadev in a different VG
    Make _GenerateDRBD8Branch accept different VG names
    Fix WriteFile with unicode data
    Replace disks: keep the meta device in the same VG...
a0aa6b49 04/19/2011 03:38 pm Michael Hanselmann

Fix bug in watcher

If “utils.RunParts” were to raise an exception, a log message was
written and the code continued to run. Due to the exception the
“results” variable would not be defined.

Also change the code to log a backtrace (getting an exception is rather...

af7b6689 04/07/2011 01:24 pm Michael Hanselmann

Merge branch 'devel-2.4'

  • devel-2.4:
    LUInstanceQueryData: Don't acquire locks unless requested
    Increase the lock timeouts before we block-acquire
    daemon.py: move startup log message before prep_fn
    Display the actual memory values in N+1 failures...
604c175c 03/24/2011 06:17 pm Iustin Pop

watcher: improve logging a bit

Add some debug logging to detail why we don't run some steps.

Signed-off-by: Iustin Pop <>
Reviewed-by: René Nussbaumer <>

f0a80b01 03/17/2011 06:39 pm Michael Hanselmann

watcher: Fix misleading usage output

When “ganeti-watcher” is called with an argument, it would hint at
a non-existing “-f” parameter. With this patch the separate usage
string is no longer necessary.

Signed-off-by: Michael Hanselmann <>...

61a980a9 02/23/2011 03:52 pm Michael Hanselmann

Add constants for instance status

They've been hardcoded for too long.

Signed-off-by: Michael Hanselmann <>
Reviewed-by: Iustin Pop <>
Reviewed-by: René Nussbaumer <>

cfcc79c6 02/02/2011 06:02 pm Michael Hanselmann

utils.SetupLogging: Make program a mandatory argument

It's passed in by most users (daemons, CLI scripts) and for the others
(burnin, watcher) it certainly doesn't hurt, especially when using
syslog.

Signed-off-by: Michael Hanselmann <>...

83e5e26f 01/27/2011 01:01 pm René Nussbaumer

Watcher: Fix endless repair tries for broken secondary

In cases where secondary was offline and not evacuated watcher tried
to activate-disks in an endless manner, but this is useless, as the
secondary is offline and therefore not responding to this approach....

c873d91c 01/18/2011 01:47 pm Iustin Pop

Rename OpStartupInstance and LUStartupInstance

Signed-off-by: Iustin Pop <>
Reviewed-by: René Nussbaumer <>
Reviewed-by: Michael Hanselmann <>

2237687b 01/18/2011 01:47 pm Iustin Pop

Rename OpQueryNodes and LUQueryNodes

Signed-off-by: Iustin Pop <>
Reviewed-by: René Nussbaumer <>
Reviewed-by: Michael Hanselmann <>

f2af0bec 01/18/2011 01:47 pm Iustin Pop

Rename OpQueryInstances and LUQueryInstances

Signed-off-by: Iustin Pop <>
Reviewed-by: René Nussbaumer <>

bd8210a7 01/18/2011 01:47 pm Iustin Pop

Rename OpVerifyDisks and LUVerifyDisks

Signed-off-by: Iustin Pop <>
Reviewed-by: René Nussbaumer <>

83f5d475 01/18/2011 01:47 pm Iustin Pop

Rename OpActivateInstanceDisks and LUActivateInstanceDisks

Signed-off-by: Iustin Pop <>
Reviewed-by: René Nussbaumer <>

9f4bb951 10/29/2010 05:48 pm Michael Hanselmann

Move ganeti-watcher to ganeti.watcher

Signed-off-by: Michael Hanselmann <>
Reviewed-by: René Nussbaumer <>