Statistics
| Branch: | Tag: | Revision:

root @ b54ecf12

# Date Author Comment
b54ecf12 05/23/2013 02:03 pm Bernardo Dal Seno

Add spindles field to disk object

The field is filled with the value provided on the command line.

Signed-off-by: Bernardo Dal Seno <>
Reviewed-by: Thomas Thrainer <>

3f3ea14c 05/23/2013 02:03 pm Bernardo Dal Seno

Check that spindles are not given when they are not allowed

Masterd checks that specifications for new disks don't include spindles
when exclusive storage is disabled.

Signed-off-by: Bernardo Dal Seno <>
Reviewed-by: Thomas Thrainer <>

c615590c 05/23/2013 02:03 pm Bernardo Dal Seno

Add "spindles" option to instance disk creation commands

The option is parsed but ignored, for the moment.

Signed-off-by: Bernardo Dal Seno <>
Reviewed-by: Thomas Thrainer <>

a4f2b4b1 05/23/2013 02:03 pm Bernardo Dal Seno

Fix style inconsistencies in gnt-instance man page

Escaping and initial capitals were not uniform.

Signed-off-by: Bernardo Dal Seno <>
Reviewed-by: Thomas Thrainer <>

c294f84e 05/23/2013 02:03 pm Bernardo Dal Seno

cfgupgrade: Downgrade is a NO-OP

The configuration is still the same as in 2.8 (the reference stable version
for this branch), so downgrade shouldn't do anything.

Unit tests are also updated, with a new 2.8 configuration file. The
configuration file used for the upgrade+downgrade test was tailored to the...

ca93ea0a 05/23/2013 10:32 am Michele Tartara

Design doc for internal shutdown detection

Ganeti is currently not able to detect a legit shutdown request performed by a
user from inside a Xen domain.

This patch provides a design document to implement a mechanism able to cope with
such events.

Signed-off-by: Michele Tartara <>...

84ae4fa4 05/22/2013 06:03 pm Klaus Aehlig

Document recent hroller changes in the NEWS file

Signed-off-by: Klaus Aehlig <>
Reviewed-by: Guido Trotter <>

71c41fc0 05/22/2013 06:03 pm Klaus Aehlig

Document hroller options recently added

hroller now also supports the options --skip-non-redundant and
--ignore-non-redundant, and this should be documented in the
man page as well.

While there, also use the same order in the options section
as in the synopsis, and in the synopsis group the algorithms...

3a7eecd7 05/22/2013 03:27 pm Klaus Aehlig

Extend hroller tests by options for non-redundant instances

The cluster now consists of 3 nodes, with drbd instances between
nodes 1 and 2, and 2 and 3. Additionally, nodes 1 and 3 each contain
a non-redundant instance, but node 2 cannot hold two additional...

8840de6f 05/22/2013 12:08 pm Klaus Aehlig

Test for hroller taking non-redundant instances into account

The example cluster consists of 6 nodes, each hosting 2 instances and
having capacity for 3. So, while the drbd-induced graph consists of
only insulated nodes, no more than two nodes can be rebooted at the...

23247a73 05/22/2013 12:08 pm Klaus Aehlig

hroller: option to ignore non-redundant instances

Add an option to hroller restoring the old behavior on not taking
any non-redundant instances into account when forming reboot
groups.

Signed-off-by: Klaus Aehlig <>
Reviewed-by: Guido Trotter <>

86c346db 05/22/2013 12:08 pm Klaus Aehlig

Make hroller also plan for non-redundant instances

Non-redundant instances need to be moved to a different node
before maintenance of the node. Even though they can be moved to
any node, there must be enough capacity to host the instances of the
reboot group to be evacuated....

89363f98 05/22/2013 12:07 pm Klaus Aehlig

hroller: option to skip nodes with non-redundant instances

So far, hroller ignores the fact, that non-redundant instances exist.
One option to deal is non-redundant instances is to not schedule those
nodes for reboot. This is supported by adding the option --skip-non-redundant....

3409c0af 05/22/2013 12:07 pm Klaus Aehlig

Remove trailing whitespace

Signed-off-by: Klaus Aehlig <>
Reviewed-by: Guido Trotter <>

3913eaa7 05/22/2013 11:02 am Thomas Thrainer

Improve installation documentation

Based on user feedback the installation documentation is clarified and
extended.

Signed-off-by: Thomas Thrainer <>
Reviewed-by: Michele Tartara <>

4b92e992 05/21/2013 03:13 pm Helga Velroyen

RPC 'node_info': <storage_type,key> instead of vg_names

This replaces the field 'vg_names' in the RPC call of 'node info' by
'storage_units'. A storage unit is a tuple <storage_type,key>
and a generalization of a vg_name. The list of vg names is replaced by...

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...
a365b47f 05/17/2013 03:04 pm Bernardo Dal Seno

Merge branch 'stable-2.7' into stable-2.8

  • stable-2.7:
    Update NEWS with disk creation fixes
    Don't fail to deactivate master IP if already down
    Add QA for recreating single instance disks
    Add QA for gnt-instance modify --disk
    Clean up when "gnt-instance modify" fails to create a disk...
ef726a3f 05/17/2013 01:02 pm Bernardo Dal Seno

Update NEWS with disk creation fixes

Also document a couple more fixes.

Signed-off-by: Bernardo Dal Seno <>
Reviewed-by: Thomas Thrainer <>

aad242d2 05/17/2013 12:32 pm Thomas Thrainer

Sort cmdlib-related entries in Makefile.am

Files in the cmdlib directory are sorted alphabetically in
Makefile.am.

Signed-off-by: Thomas Thrainer <>
Reviewed-by: Bernardo Dal Seno <>

5eacbcae 05/17/2013 12:32 pm Thomas Thrainer

cmdlib: Cleanup public/private functions

All functions/classes which are used outside of their defining module
(with tests as an exception) no longer have a leading underscore.

Signed-off-by: Thomas Thrainer <>
Reviewed-by: Bernardo Dal Seno <>

8aa8f6b1 05/17/2013 12:32 pm Thomas Thrainer

cmdlib: Extract instance query related functionality

Split instance.py further by extracting instance querying related
logical units and functions to instance_query.py.

Signed-off-by: Thomas Thrainer <>
Reviewed-by: Bernardo Dal Seno <>

13f6af81 05/17/2013 12:32 pm Thomas Thrainer

cmdlib: Extract instance operation functionality

Split instance.py further by extracting instance operations
(start/stop/reboot/etc.) related logical units and functions to
instance_operation.py.

The extracted operations have in common that they affect the operating...

87e25be1 05/17/2013 12:32 pm Thomas Thrainer

cmdlib: Extract migration related functionality

Split instance.py further by extracting migration related logical units
and functions to instance_migration.py.

Signed-off-by: Thomas Thrainer <>
Reviewed-by: Bernardo Dal Seno <>

763ad5be 05/17/2013 12:32 pm Thomas Thrainer

cmdlib: Extract storage related functionality

Split instance.py further by extracting storage related logical units
and functions to instance_storage.py.

Signed-off-by: Thomas Thrainer <>
Reviewed-by: Bernardo Dal Seno <>

8701dfb0 05/17/2013 12:32 pm Thomas Thrainer

Reformat and define exports in cmdlib/__init__.py

cmdlib/__init__.py now simply defines the interface of the cmdlib module
by importing all classes which should be visible to clients.

Also don't ignore C0302 (Too many lines in module) any more.

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

814386b7 05/17/2013 12:32 pm Thomas Thrainer

Extract miscellaneous logical units from cmdlib

All remaining classes in init.py are extracted to misc.py.

Signed-off-by: Thomas Thrainer <>
Reviewed-by: Bernardo Dal Seno <>

1be6b00e 05/17/2013 12:32 pm Thomas Thrainer

Extract os related logical units from cmdlib

All LUOs* classes are extracted to operating_system.py.

Signed-off-by: Thomas Thrainer <>
Reviewed-by: Bernardo Dal Seno <>

ec3cc4a8 05/17/2013 12:32 pm Thomas Thrainer

Extract query related logical units from cmdlib

All LUQuery* classes are extracted to query.py.

Signed-off-by: Thomas Thrainer <>
Reviewed-by: Bernardo Dal Seno <>

7ecd5e87 05/17/2013 12:32 pm Thomas Thrainer

Extract backup related logical units from cmdlib

All LUBackup* classes are extracted to backup.py.

Signed-off-by: Thomas Thrainer <>
Reviewed-by: Bernardo Dal Seno <>

22b7f6f8 05/17/2013 12:31 pm Thomas Thrainer

Extract instance related logical units from cmdlib

All LUInstance* classes are extracted to instance.py. Common functions
are moved to common.py if used by non-instance logical units as well.
Additionally, helper functions which are only used by LUBackup* and...

31b836b8 05/17/2013 12:31 pm Thomas Thrainer

Extract node related logical units from cmdlib

All LUNode* classes are extracted to node.py. Common functions are moved
to common.py if used by non-node logical units as well.

Signed-off-by: Thomas Thrainer <>
Reviewed-by: Bernardo Dal Seno <>

f380d53c 05/17/2013 12:31 pm Thomas Thrainer

Extract group related logial units from cmdlib

All LUGroup* classes are moved to group.py. Common functions are
extracted to common.py.

Signed-off-by: Thomas Thrainer <>
Reviewed-by: Bernardo Dal Seno <>

7352d33b 05/17/2013 12:31 pm Thomas Thrainer

Extract cluster related logical units from cmdlib

All LUCluster* classes are extracted to cluster.py. Shared functions are
extracted to common.py, helper functions only used by LUCluster* are
extracted to cluster.py.

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

1d870e0d 05/17/2013 12:31 pm Thomas Thrainer

Extract test logical units from cmdlib

LUTest* are moved to test.py.

Signed-off-by: Thomas Thrainer <>
Reviewed-by: Bernardo Dal Seno <>

37dc17e3 05/17/2013 12:31 pm Thomas Thrainer

Extract network related logical units from cmdlib

LUNetwork* and associated helper functions are extracted to network.py.

Signed-off-by: Thomas Thrainer <>
Reviewed-by: Bernardo Dal Seno <>

fb3891d0 05/17/2013 12:31 pm Thomas Thrainer

Extract tags related logical units from cmdlib

LUTags* and their base class, TagsLU, are extracted to tags.py. An
additional shared function, _ShareAll, is extracted to common.py for
shared usage.

Signed-off-by: Thomas Thrainer <>
Reviewed-by: Bernardo Dal Seno <>

1a732a74 05/17/2013 12:31 pm Thomas Thrainer

Extract base classes from cmdlib

Base classes holding common functionality is extracted into base.py.
Utility functions used by both base classes and subclasses is moved to
common.py.

Signed-off-by: Thomas Thrainer <>
Reviewed-by: Bernardo Dal Seno <>

7f965aea 05/17/2013 08:53 am Thomas Thrainer

Don't fail to deactivate master IP if already down

The master IP setup script now checks if the master IP is actually
configured on the machine before trying to remove the IP.

This fixes issue 460.

Signed-off-by: Thomas Thrainer <>
Reviewed-by: Guido Trotter <>

7af7da68 05/15/2013 05:43 pm Helga Velroyen

Compatibility test for instances

This patch introduces a test to check the compatibility
of the Haskell and the Python representation of instances.

Signed-off-by: Helga Velroyen <>
Reviewed-by: Klaus Aehlig <>

13d62481 05/15/2013 05:43 pm Helga Velroyen

Instance generators

This patch introduces and enhances generators for
instances:
- 'genInstWithNets' is split into the generation of an
arbitrary instance and enhancing an instance with nets
- 'genInst' calls 'genInstWithNets' with an empty set
of initial networks to provide a reasonable default...

6b168d4a 05/15/2013 05:43 pm Helga Velroyen

Annotate every arbitrary instance field

The Arbitrary instance of the 'Instance' object is written
using the <*> syntax. Since it often uses the 'arbitrary'
generator for the instance's fields it is hard to figure
out which 'arbitrary' fills which instance field. This...

d9b681ea 05/15/2013 05:43 pm Helga Velroyen

Generators for disks

This patch adds generators for Disk instances to the Haskell
test code. It uses somewhat more reasonable generators to
fill the fields instead of just arbitrary values.
'genDiskWithChildren' is a generator that generates a disk
with a specified number of disk children. To avoid shooting...

5d94c034 05/15/2013 03:02 pm Helga Velroyen

Use os.statvfs to determine free disk space

This simplifies my previous commit (820bade90) by using os.statvfs
instead of parsing the output of 'df'.

Signed-off-by: Helga Velroyen <>
Reviewed-by: Bernardo Dal Seno <>

820bade9 05/14/2013 10:17 pm Helga Velroyen

Backend function for file storage space reporting

This adds functionality to retrieve disk space information
for file storage. It calls the 'df' tool and parses its
output to extract the total and free amount of disk space
on the disk where the given path is located....

f08b1a00 05/14/2013 10:17 pm Helga Velroyen

Reorder unit tests in Makefile.am

In a previous commit, I accidentially changed the order of
unit tests in Makefile.am to not be alphabetically anymore.
This fixes it.

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

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 <>

199b241c 05/14/2013 08:06 pm Michele Tartara

Make HS ConfD client IPv6 compatible

The Haskell ConfD client was assuming internet addresses to be IPv4. This
patch modifies the client so that it is able to automatically detect the
protocol it should use by analyzing the address it is told to connect to....

986a8671 05/14/2013 08:06 pm Michele Tartara

Factor out resolveAddr function

This function can be useful to many parts of the code to convert the string
representation of an IP (v4 or v6) address into the proper data type.

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 <>

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

Start the monitoring and node daemons together

Add the monitoring daemon to the command starting the node daemon, given that
they both have to be started on all nodes.

Note that daemon-util only supports starting one daemon at the time, so the
actual command has to be composed as a sequence of two different daemon-util...

5bb9ecc0 05/14/2013 07:58 pm Michele Tartara

Add a constant stating whether monitoring is enabled

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

e2e98c6e 05/14/2013 07:04 pm Bernardo Dal Seno

Add QA for recreating single instance disks

So far QA only recreated the whole set of disks at once.

Signed-off-by: Bernardo Dal Seno <>
Reviewed-by: Helga Velroyen <>

8cd4f8cf 05/14/2013 07:04 pm Bernardo Dal Seno

Add QA for gnt-instance modify --disk

Just a very basic test that adds and then removes a disk.

Signed-off-by: Bernardo Dal Seno <>
Reviewed-by: Helga Velroyen <>

1f14b07e 05/14/2013 07:04 pm Bernardo Dal Seno

Clean up when "gnt-instance modify" fails to create a disk

cmdlib.LUInstanceSetParams now uses helper functions to create and wipe
disks, so that when the creation of a disk fails, any leftover device is
cleaned up. As a bonus, exceptions raised by _CreateBlockDev() are caught...

dfb0bc93 05/14/2013 07:04 pm Bernardo Dal Seno

recreate-disks honors the prealloc_wipe_disks flag

Now even recreate-disks wipes the newly-created disks, if the flag is set.

Signed-off-by: Bernardo Dal Seno <>
Reviewed-by: Helga Velroyen <>

b867e218 05/14/2013 07:03 pm Bernardo Dal Seno

Introduce wrapper for cmdlib._WipeDisks()

The wrapper handles errors by logging them and cleaning up freshly-created
disks.

Also, the correct disk is used in the error message when an error happens
in cmdlib._CreateDisks() and the resulting disk clean-up fails....

eb0aa4e5 05/14/2013 07:03 pm Bernardo Dal Seno

Don't catch an exception that cannot be raised

Since 9b221ea4, _CreateBlockDev() doesn't raise OpExecError any more. Yet
some code was left in place to catch it. By removing that code we have two
advantages:
1. Dead code is removed.
2. If for whatever reason _CreateBlockDev() raises OpExecError, the...

57bcb172 05/14/2013 07:02 pm Michael Hanselmann

Wipe disks added through "gnt-instance modify"

In issue 353 Sascha Lucas reported that disks are not wiped when added
through “gnt-instance modify”. This patch adds this functionality and
updates the docstring for “_WipeDisks”.

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

8f096849 05/14/2013 04:46 pm Helga Velroyen

Move 'container.py' to storage directory

Moving 'container.py' to the storage directory.

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

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 <>

c23bb217 05/14/2013 04:45 pm Helga Velroyen

Rename storage.py to container.py

Renaming 'storage.py' to 'container.py'. It will be moved into the new
'storage' directory, which will come in later patches to avoid clashes of
notation.

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

ef94a185 05/14/2013 04:24 pm Michele Tartara

Monitoring QA: Remove superfluous import

Signed-off-by: Michele Tartara <>
Reviewed-by: Thomas Thrainer <>

0511ce91 05/14/2013 03:44 pm Michele Tartara

Non-Xen support for monitoring QA

The QA tests the Xen instance status collector, but that is expected to fail
when run on machines that do not use Xen.

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

a5877534 05/13/2013 04:20 pm Michele Tartara

Add QA for instance status collector

This commit introduces the QA for the instance status collector.

Begin the first QA for a monitoring-related component, the files and some
functions are named after monitoring because they are meant to contain
future monitoring QAs as well....

6ab6b19a 05/13/2013 04:20 pm Michele Tartara

Use dcName in mon-collector

Instead of manually specify the name of the data collectors in mon-collector,
just use the dcName field each of them exports.

Signed-off-by: Michele Tartara <>
Reviewed-by: Klaus Aehlig <>

42b50796 05/13/2013 04:20 pm Michele Tartara

Monitoring design doc: better specify field names

The name of the list of instances was not specified.

Also, fix a line that was longer than 80 characters.

Signed-off-by: Michele Tartara <>
Reviewed-by: Klaus Aehlig <>

dd69cd3c 05/13/2013 04:20 pm Michele Tartara

Factor out the mergeStatuses function

It will be used by multiple data collectors, not only the DRBD collector.

Signed-off-by: Michele Tartara <>
Reviewed-by: Klaus Aehlig <>

79731e21 05/13/2013 04:20 pm Michele Tartara

Add global status field to the instance status collector

The global status is computed from the statuses of the single instances.

The output json format is adapted to include this piece of information, as
prescribed by the design document.

Signed-off-by: Michele Tartara <>...

1f53be84 05/13/2013 04:20 pm Michele Tartara

Add instance status collector to mon-collector man page

Add a section related to the new collector.

Also, fix some formatting issue (white spaces, line longer than 80 chars)
in the DRBD collector section.

Signed-off-by: Michele Tartara <>...

e8b46463 05/13/2013 04:20 pm Michele Tartara

Export the Instance Status collector report

It will need to be accessed by the monitoring daemon.

Signed-off-by: Michele Tartara <>
Reviewed-by: Klaus Aehlig <>

ebcbcfee 05/13/2013 04:20 pm Michele Tartara

Run the monitoring daemon as root

The monitoring daemon needs to be able to run some commands that require root
access (such as "xm") in order to fulfill its duties.

Signed-off-by: Michele Tartara <>
Reviewed-by: Klaus Aehlig <>

8a049311 05/13/2013 04:20 pm Michele Tartara

Add inst-status-xen to the monitoring daemon

Enable the monitoring daemon to invoke the Xen instance status data collector.
Signed-off-by: Michele Tartara <>
Reviewed-by: Klaus Aehlig <>

8fada090 05/13/2013 04:20 pm Michele Tartara

QA: factor out some instance management functions

Some functions for managing instances will have to be used by new upcoming
unit tests, so they are taken out of the instances QA file and put in a new
utilities file accessible by other QA files as well.
...

74685117 05/13/2013 04:20 pm Michele Tartara

Add dependency on the process library

The tests are already using this library, so it's not really a new build
dependency, but it was not specified esplicitly.

Furthermore, it's going to be used by the instance status collector, so it's
added to the requirements for the monitoring subsystem....

74b25887 05/13/2013 04:20 pm Michele Tartara

Add HS functions for getting the instance reason path

The getInstReasonFilename is built to resemble the python corresponding
function.

Signed-off-by: Michele Tartara <>
Reviewed-by: Klaus Aehlig <>

45ee8676 05/13/2013 04:20 pm Michele Tartara

Add module containing function for getting info from Xen

The Xen instance status data collector will require to get some information
from the hypervisor. This commit introduces a module providing such functions.

Signed-off-by: Michele Tartara <>...

d7e9323b 05/13/2013 04:20 pm Michele Tartara

Add the core of the instance status collector

Add the Xen instance status data collector with only its core features.
The next commits will add more reporting functionalities.

The access to the collector is made possible through the mon-collector
tool.
...

d4de2ea8 05/13/2013 04:20 pm Michele Tartara

Export the actual instance state

Compute the actual state of the instance and export it.

Signed-off-by: Michele Tartara <>
Reviewed-by: Klaus Aehlig <>

fc4be2bf 05/13/2013 04:20 pm Michele Tartara

Determine status of one instance

Added function for determining whether the status of an instance is ok, and to
represent this information in the corresponding field in the report.

Signed-off-by: Michele Tartara <>
Reviewed-by: Klaus Aehlig <>

17ae9cdb 05/13/2013 04:20 pm Michele Tartara

Include the reason trail in the instance collector output

Fetch the reason trail from file, failing gracefully if it is not found, and
include it in the output of the instance status data collector.

Signed-off-by: Michele Tartara <>
Reviewed-by: Klaus Aehlig <>

7660aaf3 05/13/2013 04:20 pm Michele Tartara

Export Instance Status collector information

Name, version, format version, category and kind of the Instance Status data
collector are now exported.

Signed-off-by: Michele Tartara <>
Reviewed-by: Klaus Aehlig <>

4fe04580 05/13/2013 04:20 pm Michele Tartara

Factor out function for building report

Instead of building the report as part of the "Main" function, have it
built by its own dedicated function, so that it will be able to export it
directly to the monitoring daemon when needed.

Signed-off-by: Michele Tartara <>...

b24e516d 05/13/2013 03:47 pm Klaus Aehlig

Add example for online rolling reboots using tags

While this use case was described in the design document, and
mentioned several times as motivation for changes in commit messages,
it has never been added to a user-facing documentation. This commit
adds at least an example to the man page....

1da489e2 05/13/2013 10:56 am Guido Trotter

Move cmdlib.py to cmdlib/__init__.py

cmdlib.py has grown really too much. Move it into its own package to
allow splitting it further.

Signed-off-by: Guido Trotter <>
Signed-off-by: Thomas Thrainer <>
Reviewed-by: Klaus Aehlig <>

87414481 05/10/2013 06:50 pm Michele Tartara

Allow build_chroot to work from any directory

build_chroot used to work only if launched from ./devel/, whereas now
it can be launched from anywhere, and it will store the resulting files
in the current directory.

Fixes Issue 459.

Signed-off-by: Michele Tartara <>...

85b66af5 05/10/2013 06:50 pm Michele Tartara

build_chroot: check whether the data dir exists

If the data directory is not in the expected place, the script complains
with an error message and stops, instead of giving obscure messages.

Partially fixes Issue 459.

Signed-off-by: Michele Tartara <>...

7b2d4001 05/10/2013 02:56 pm Klaus Aehlig

Extend hroller test to also verify tag-based node selection

While the multiple-tags test was added to verify that coloring is done
only after node selection (otherwise it wouldn't be possible to get in
both cases a single reboot group), it can easily be extended to also...

2a1737eb 05/10/2013 01:56 pm Klaus Aehlig

Add a test for online rolling reboot scheduling

In the example configuration, the graph constructed by just connecting
primary and secondary instances is two-colorable. However, when taking
conflicting locations of secondary nodes into account, three reboot...

8d38fb72 05/10/2013 01:55 pm Klaus Aehlig

Support online-maintenance in hroller

Make hroller take into account the nodes (redundant) instances
will be migrated to. This be behavior can be overridden by the
--offline-maintenance option which will make hroller plan under
the assumption that all instances will be shutdown before starting...

30fded87 05/10/2013 01:55 pm Klaus Aehlig

Support construction of the graph of all reboot constraints

For online rolling reboots, there are two kind of restrictions. First,
we cannot reboot the primary and secondary nodes of an instance
together. Secondly, two nodes cannot be rebooted simultaneously, if...

2207220d 05/10/2013 01:55 pm Klaus Aehlig

Add option --one-step-only to hroller

Add a new option to hroller to only output information about the first
reboot group. Together with the option --node-tags this allows for the
following work flow. First tag all nodes; then repeatedly compute the
first node group, handle these nodes and remove the tags. In between...

a39779f6 05/10/2013 01:54 pm Klaus Aehlig

Sort reboot groups by size

Make hroller output the node groups not containing the master node
sorted by size, largest group first. The master node still remains
the last node of the last reboot group. In this way, most progress
is made when switching back to normal cluster operations after the...

361f2719 05/10/2013 01:53 pm Klaus Aehlig

Fix expectation in hroller test

Regular expressions are not shell globs. So "any symbol" is expressed
by a dot, not a question mark. In this case, the confusion lead to a
too liberal expectation, hence the test passed. Fix it nevertheless.

Signed-off-by: Klaus Aehlig <>...

5a9c7c34 05/09/2013 05:31 pm Bernardo Dal Seno

Refactor check for exclusive_storage in LUInstanceCreate

The order of evaluation of the conditions is changed, so it's easier to add
more (foreseen) checks for exclusive_storage.

Signed-off-by: Bernardo Dal Seno <>
Reviewed-by: Klaus Aehlig <>

8064c1af 05/09/2013 05:31 pm Bernardo Dal Seno

Refactor disk checks in LUInstanceSetParams

Prereq checks relative disks are grouped together and moved in a separate
method. This reduces the clutter in CheckPrereq().

Signed-off-by: Bernardo Dal Seno <>
Reviewed-by: Klaus Aehlig <>

9524c4c4 05/08/2013 03:47 pm Weiwei Jia

Fix a misspelled word in design-storagetypes

Signed-off-by: Weiwei Jia <>
Reviewed-by: Guido Trotter <>

004398d0 05/07/2013 07:40 pm Klaus Aehlig

Fix lint errors (redundant bracket)

Signed-off-by: Klaus Aehlig <>
Reviewed-by: Guido Trotter <>

62441832 05/07/2013 06:59 pm Klaus Aehlig

Add a test demonstrating the --node-tags option of hroller

The example is a cluster of 6 nodes, paired into 3 group by three
instances. So the whole cluster would need two reboot groups. The two
tags select, in two different ways, one node of each group. So, when...

313fdabc 05/07/2013 06:59 pm Klaus Aehlig

Add option to hroller to select nodes based on tags

Add option --node-tags to tell hroller to consider only nodes
with these tags. A use case would be a tag tracking on which
nodes the maintenance has not yet been carried out, e.g., if
rolling reboots are interleaved with other cluster operations....