Statistics
| Branch: | Tag: | Revision:

root @ 13d26b66

# Date Author Comment
13d26b66 02/26/2014 02:06 pm Petr Pudlak

Add more general conf. handling functions to WConfd's Monad

Add functions for reading and writing the configuration. Writing
triggers the asynchronous worker which saves the configuration into the
master file. The actual action that saves the configuration is passed as...

a6a6a1b5 02/26/2014 02:06 pm Petr Pudlak

Add functions for saving the configuration to Ganeti.Config

.. so that it can be not only read, but also written to the master
configuration file.

Signed-off-by: Petr Pudlak <>
Reviewed-by: Klaus Aehlig <>

c5f6dcdf 02/26/2014 02:06 pm Petr Pudlak

Add a module for creating and using asynchronous workers

Each such worker has its own background thread and performs a given
task when triggered. Triggers arriving when the worker is processing are
accumulated and processed together in a subsequent worker action....

5f6515b6 02/26/2014 02:06 pm Petr Pudlak

A separate module for functions for atomic file operations

Utils is getting too big, so better split this new set of functions into
a separate sub-module. This also allows us to use ResultG there.

Signed-off-by: Petr Pudlak <>
Reviewed-by: Klaus Aehlig <>

0efada2a 02/26/2014 02:06 pm Petr Pudlak

Add a function for lifting ResultT from a MonadBase

Often we have `ResultT e IO a` as the return type of our primitive
functions and we need to lift them into a monad stack that is also based
on IO. This function accomplishes this by lifting a ResultT in a base...

32be18fc 02/26/2014 02:06 pm Petr Pudlak

Add a type alias for "ResultT GanetiException IO"

This type occurs often in the upcoming code so it's worth having an
alias for it.

It's included in Errors instead of Utils, because it depends on
GanetiException, and importing Errors from Utils causes a cyclic...

015278eb 02/26/2014 02:06 pm Petr Pudlak

Add logging functions lifted into MonadBase

Calling logging functions in a monad transformer stack requires
instances for all the transformers.
This patch adds a module with functions named just as in Ganeti.Logging,
but lifted into MonadBase. This allows using them in any transformer...

78e0f701 02/26/2014 02:06 pm Petr Pudlak

Add a MonadLog instance for strict StateT and IdentityT

This will be used for asynchronous workers, for which it's convenient to
use StateT to keep their internal state.

Signed-off-by: Petr Pudlak <>
Reviewed-by: Klaus Aehlig <>

5349519d 02/26/2014 02:06 pm Petr Pudlak

Require lifted-base >= 0.1.2 for lifted IORef operations

This allows to use them in any IO-based monad.

Signed-off-by: Petr Pudlak <>
Reviewed-by: Klaus Aehlig <>

a8d64f26 02/26/2014 02:06 pm Petr Pudlak

Add default arguments for WConfd to scripts

In particular, this enables debug logging for WConfd on our test
environment.

Signed-off-by: Petr Pudlak <>
Reviewed-by: Klaus Aehlig <>

c60fb21d 02/25/2014 12:01 pm Petr Pudlak

Fix tab/spaces indentation in Makefile.am

At some places a few items of lists use 8 spaces, while we use tabs
everywhere (as makefiles require anyway). This patch unifies the
indentation.

Signed-off-by: Petr Pudlak <>
Reviewed-by: Klaus Aehlig <>

5fd32824 02/24/2014 05:44 pm Klaus Aehlig

Merge branch 'stable-2.11' into master

  • stable-2.10
    Let the instance's tuple of nodes start with the primary
    Fix the test that checks for the order of instance's nodes
    Revision bump for the 2.10.0 release
    Update NEWS file for 2.10.0
    Revision bump for 2.10.0~rc3...
ead368bb 02/24/2014 04:42 pm Klaus Aehlig

Merge branch 'stable-2.10' into stable-2.11

  • stable-2.10
    Let the instance's tuple of nodes start with the primary
    Fix the test that checks for the order of instance's nodes
    Revision bump for the 2.10.0 release
    Update NEWS file for 2.10.0
  • stable-2.9...
0f0ca306 02/24/2014 03:56 pm Klaus Aehlig

Merge branch 'stable-2.9' into stable-2.10

  • stable-2.8
    Fix expression describing optional parameters

Signed-off-by: Klaus Aehlig <>
Reviewed-by: Hrvoje Ribicic <>
Reviewed-by: Jose A. Lopes <>

90402786 02/24/2014 03:47 pm Klaus Aehlig

Merge branch 'stable-2.8' into stable-2.9

  • stable-2.8
    Fix expression describing optional parameters

Signed-off-by: Klaus Aehlig <>
Reviewed-by: Jose A. Lopes <>

ad55b2d4 02/24/2014 03:33 pm Klaus Aehlig

Fix expression describing optional parameters

The NIC's network and vlan are also newly added, hence need to be
considered optional to remain backwards compatible.

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

2977b72c 02/24/2014 01:53 pm Klaus Aehlig

Merge branch 'stable-2.9' into stable-2.10

  • stable-2.9
    Fix net-common script in case of routed mode
    Document hspace's SPN parameters
    Document spindles in TSPEC
    man: Update the manual page of gnt-node FAILOVER
    Make hbal deal with no-LVM storage space properly...
931ca734 02/24/2014 01:50 pm Petr Pudlak

gitignore the files introduced by the compilation change

In particular, the test object and interface files and Makefile.ghc

Signed-off-by: Petr Pudlak <>
Reviewed-by: Klaus Aehlig <>

f0ac917e 02/24/2014 01:50 pm Petr Pudlak

Show Haskell dependencies when compiling

Instead of showing the long GHC command line, show which file is being
compiled and what its dependencies are. This gives more meaningful
information to developers.

Signed-off-by: Petr Pudlak <>
Reviewed-by: Klaus Aehlig <>

9b6d2d92 02/24/2014 01:50 pm Petr Pudlak

Compile every Haskell object file separately

This allows parallel compilation of all targets, including the Haskell
object files. While re-starting GHC for every Haskell source almost
doubles the total CPU time, allowing it run in parallel at the end cuts...

1551758e 02/24/2014 01:50 pm Petr Pudlak

Add configuration options for Haskell compilation variants

Previously this was addressed by Makefile variables, which meant that
it was possible to build the same binary with different compilation
options without recompiling.

Signed-off-by: Petr Pudlak <>...

06929681 02/24/2014 01:50 pm Petr Pudlak

Fix the generation of ListConstants with VPATH

When the build directory differs from the source directory, the
automatic variable '$<' points to the file found by prepending the path.
This causes double '../' to be inserted when combined with
'$(abs_top_srcdir)'. This patch fixes this....

6386c546 02/24/2014 12:48 pm Dimitris Aragiorgis

Fix net-common script in case of routed mode

setup_route should run in case or routed mode and not
openvswitch.

Signed-off-by: Dimitris Aragiorgis <>
Signed-off-by: Thomas Thrainer <>
Reviewed-by: Thomas Thrainer <>...

77dac68c 02/24/2014 12:13 pm Michele Tartara

Improve locale generation instructions

Precise has a different way to handle locales w.r.t. debian distributions.
This patch adds code to make the distinction.

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

14e61dd1 02/24/2014 12:13 pm Klaus Aehlig

Document hspace's SPN parameters

With the introduction of spindles as resources, the machine-readable
output of hspace(1) has been extended. Document the additional parameters.

Signed-off-by: Klaus Aehlig <>
Reviewed-by: Jose Lopes <>

91fba1d1 02/24/2014 12:13 pm Klaus Aehlig

Document spindles in TSPEC

As spindles are now considered a resource, they are also output in
the TSPEC parameter of hspace --machine-readable. Document this
interface change.

Signed-off-by: Klaus Aehlig <>
Reviewed-by: Jose Lopes <>

f6a6c79b 02/24/2014 12:13 pm Michele Tartara

Add missing package to build_chroot

A package was missing both from the Precise chroot and from the generic chroot.

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

f2a3c4f0 02/24/2014 11:20 am Petr Pudlak

Let the instance's tuple of nodes start with the primary

Before the tuple of nodes of an instance was created from a set, listing
the nodes in alphabetical order. This patch ensures that the primary
node is always the first one in the list.

Signed-off-by: Petr Pudlak <>...

93a968aa 02/24/2014 11:19 am Petr Pudlak

Fix the test that checks for the order of instance's nodes

The test checks if the first node in the tuple is the primary node, but
because it names the node so that it's the least one alphabetically, the
test always succeeds. This fixes the test.

Signed-off-by: Petr Pudlak <>...

87f2f426 02/24/2014 11:11 am Petr Pudlak

man: Update the manual page of gnt-node FAILOVER

In particular explicitly note that a node failover causes all instances
to be stopped and later restarted (issue #724).

Signed-off-by: Petr Pudlak <>
Reviewed-by: Michele Tartara <>

9cdea43f 02/24/2014 11:09 am Petr Pudlak

Check the existence of system users and groups at bootstrap

Before, if any of these were missing, the creation of a cluster failed
and the cluster remained in an inconsistent state, without the
possibility to destroy it or to re-create it (#603).

This patch calls 'GetEnts' during bootstrap, which tries to read all...

e63e8891 02/24/2014 09:49 am Petr Pudlak

Configure luxid to run with the same user as masterd

Currently masterd and luxid run under separate user accounts, which
makes it impossible for them to share access to the job queue.
This patch adds the easiest fix - to configure luxid to run under the
same user as masterd....

13caa61d 02/21/2014 02:14 pm Klaus Aehlig

Verify the result of opportunistic union

Verify that the result returned by the opportunistic union correctly
reflects the state change: locks not in the result are not changed,
locks in the result are as requested.

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

fb68bc0c 02/21/2014 02:14 pm Klaus Aehlig

Verify that opportunistic union only adds to the locks held

Add a test verifying that by opportunistic union the set of locks
held, and the level at which the locks are held, only increases.

Signed-off-by: Klaus Aehlig <>
Reviewed-by: Petr Pudlak <>

9f9c4543 02/21/2014 02:14 pm Klaus Aehlig

Use opportunisticUnion in Arbitrary LockAllocation

Also allow the newly exported function opportunisticLockUnion in the
construction of arbitrary lock allocations.

Signed-off-by: Klaus Aehlig <>
Reviewed-by: Petr Pudlak <>

4b217f68 02/21/2014 02:14 pm Klaus Aehlig

Support opportunistic lock allocation

Add a function to opportunistically allocate as many locks of a given
set as possible. This is equivalent to sequentially try the locks in
increasing lock order after restricting to those locks where the
required owner state is higher than the currently held one....

07eec0fc 02/21/2014 02:14 pm Klaus Aehlig

Generate arbitrary :: LockAllocation according to interface

While we know that freeLocks and intersectLocks are defined in terms
of updateLocks, it is still cleaner to test against the interface: the
module Ganeti.Locking.Allocation exports several functions, and all...

d8216f2d 02/21/2014 02:14 pm Klaus Aehlig

Add a convenience function to restrict locks to a given set

As it is an operation the locking daemon is supposed to provide,
add a function restricting the locks of a user to a given list
and release all other locks.

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

fd5578ee 02/20/2014 07:05 pm Klaus Aehlig

Merge branch 'stable-2.8' into stable-2.9

  • stable-2.8
    Improve job status assert affected by race condition
    Export and import Disk/NIC name
    Fix backup import in case NIC is inside a network
    Override get() method of ConfigParser

Conflicts:
lib/cmdlib/instance.py: manually apply 0973f9ed on...

e6e17529 02/20/2014 05:23 pm Hrvoje Ribicic

Improve job status assert affected by race condition

In the sliver of time between choosing a waiting job to be executed and
trying to acquire locks for its execution, the status of the job can be
changed to canceling. An assert checking the job status neglected to...

0f68f7fa 02/20/2014 04:45 pm Dimitris Aragiorgis

Export and import Disk/NIC name

Name of Disk/NIC were not exported during backup until now.
Use the exported info during gnt-backup import.

Signed-off-by: Dimitris Aragiorgis <>
Signed-off-by: Michele Tartara <>
Reviewed-by: Michele Tartara <>

0973f9ed 02/20/2014 04:45 pm Dimitris Aragiorgis

Fix backup import in case NIC is inside a network

Network UUID is written in .ini file during backup export
but is not used by _ReadExportParams(). This patch fixes it.

Please note that in case a network is given, link and mode should
not be included in NIC options....

523170de 02/20/2014 04:45 pm Dimitris Aragiorgis

Override get() method of ConfigParser

During backup import/export SafeConfigParser() is used to
save/restore instance's configuration. There is a possibility if an
export is done with a different Ganeti version, a specific value not
to be saved during export (e.g. the NIC/Disk name) but still...

af8492ff 02/20/2014 11:11 am Michele Tartara

Add precise to build_chroot

Modify the build_chroot script to support Ubuntu Precise as a target
environment.

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

992fd37d 02/20/2014 10:24 am Helga Velroyen

Updating security doc wrt to SSL security

This patch updates the security document with respect to
the recent changes in RPC security. For details see
design-node-security.

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

362fcd0b 02/20/2014 10:24 am Helga Velroyen

Update design docs for 2.11

Updating the status of the design docs in 2.11.

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

3e8a6f39 02/20/2014 10:22 am Helga Velroyen

Smooth renewal of client certificates

This patch fixes another chicken-and-egg problem which
occurred when the node certificates get renewed. When
renewing a node certificate, the previous certificate
has to be used to update the configuration. To address...

956b83d6 02/20/2014 10:12 am Klaus Aehlig

Enforce the order restrictions on group locks

Disallow requests for an exclusive lock, if the owner already
holds a shared (and only shared) lock on a group lock that lock
belongs to.

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

fe78783d 02/20/2014 10:12 am Klaus Aehlig

Document restrictions on lock implication

As owning a group lock has the same effect as owning a
group of locks, some restrictions have to be added to
to avoid dead locks. Document them.

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

3daaab6c 02/19/2014 04:31 pm Helga Velroyen

Make hbal deal with no-LVM storage space properly

Since 2.6, hbal crashes when used on a cluster where no
LVM storage is enabled at all. The problem is that it
always queries for fields that only sometimes make
sense for certain types of storage. This patch will...

c25bd091 02/19/2014 03:59 pm Thomas Thrainer

Revision bump for the 2.10.0 release

Remove the ~rc3 suffix from the version for the official 2.10.0 release.

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

d2d04f94 02/19/2014 03:59 pm Thomas Thrainer

Update NEWS file for 2.10.0

Mention the bug fix commited to the 2.8 branch and set the release date
to tomorrow.

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

1ca6b451 02/19/2014 03:45 pm Klaus Aehlig

Efficiently verify consistent lock requests

Most requests for lock updates are consistent and mention
every lock only once. So verify this property efficiently
by comparing lengths. Only if the length do not coincide
go through the actual (quadratic) comparison to find a...

277c969f 02/19/2014 03:45 pm Klaus Aehlig

Add a test verifying that lock-implication is honored

Locks can be included in one another. This inclusion can be violated
in two ways, viz.,
- A holds a lock L and B holds an exclusive lock L belongs to, and
- A holds an exclusive lock and B holds a lock L belongs to....

381889dc 02/19/2014 03:45 pm Klaus Aehlig

Support lock implication in allocation

Make the module abstractly handling lock allocation
honor the additional restrictions caused by lock
implications.

Signed-off-by: Klaus Aehlig <>
Reviewed-by: Petr Pudlak <>

64df329d 02/19/2014 03:45 pm Klaus Aehlig

Verify that every owner mentioned as blocking actually is

If a request is blocked by multiple lock owners, verify that each
single one of them actually blocks the request. In other words,
verify that, whenever all but one release their lock, the request
still does not succeed....

9bf17b50 02/19/2014 03:45 pm Klaus Aehlig

Verify that the set of blocking owners is big enough

When a request is blocked, the list of blocking owners
should exhaust all blocking reasons, i.e., if those
owners release all their locks, the update must succeed.

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

80004e70 02/19/2014 03:45 pm Klaus Aehlig

Add a convenience function to free all locks of an owner

While freeing all locks of a single owner can easily be defined
out of listLocks and updateLocks, it is worth having this function
in its own right. For example, it will be needed when the death of...

619b12df 02/19/2014 03:45 pm Klaus Aehlig

Make TestLock an instance of Lock

Equip the type of test locks with a simple group structure
consisting of two lock groups and a big lock.

Signed-off-by: Klaus Aehlig <>
Reviewed-by: Petr Pudlak <>

75033afd 02/19/2014 03:45 pm Klaus Aehlig

Make GanetiLocks an instance of Lock

Signed-off-by: Klaus Aehlig <>
Reviewed-by: Petr Pudlak <>

91e5d533 02/19/2014 03:45 pm Klaus Aehlig

Add a type class describing types that can serve as locks

Besides the lock order and Show, an additional datum is needed in order
to describe lock inclusion, used, e.g., for group locks. So add a type
class describing this property.

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

a9c3ba29 02/19/2014 03:45 pm Klaus Aehlig

Verify that releasing a lock always succeeds

There are no restrictions on releasing a lock; so this operation
has to succeed unconditionally. Verify this.

Signed-off-by: Klaus Aehlig <>
Reviewed-by: Petr Pudlak <>

c6d48e16 02/19/2014 03:45 pm Klaus Aehlig

Add missing documentation to exported function listLocks

The module Ganeti.Locking.Allocation exports the function listLocks,
hence a documentation string is required. Add it.

Signed-off-by: Klaus Aehlig <>
Reviewed-by: Petr Pudlak <>

8982a0cd 02/19/2014 12:14 pm Hrvoje Ribicic

Increase the waiting time in gnt-job cancel test

The wait that is used for gnt-job cancel could cause flakiness if the
wait is small enough for the job not to get canceled. This patch
doubles the waiting time - more than that is unfortunately probably a
bug....

336b1c88 02/19/2014 11:23 am Klaus Aehlig

Merge branch 'stable-2.10' into stable-2.11

  • stable-2.10
    Revision bump for 2.10.0~rc3
    Update NEWS file for 2.10.0~rc3
  • stable-2.8
    Fix integer overflow problem in hba
    Add missing space

Conflicts:
NEWS: take both additions
configure.ac: ignore suffix bump...

c715d059 02/19/2014 10:58 am Thomas Thrainer

Merge branch 'stable-2.9' into stable-2.10

  • stable-2.8
    Fix integer overflow problem in hbal
    Add missing space

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

67bd83ae 02/19/2014 10:39 am Jose A. Lopes

Fix 'gnt-group add' output in QA

The command 'gnt-group add' might return a list of jobs, therefore, we
can print the job's output during the QA, in a way similar to that of
'gnt-cluster verify', for example.

Signed-off-by: Jose A. Lopes <>...

e04860cc 02/19/2014 10:39 am Jose A. Lopes

Constant for instance communication network mode

Create a new constant to hold the instance communication network mode
as this constant will be necessary during the QA, and update the
general documentation about the constants related to the instance
communication mechanism....

93f1e606 02/19/2014 10:39 am Jose A. Lopes

Add '-c | --instance-communication' flag to instance modify

  • Add the instance communication flag to the 'OpInstanceSetParams'
    opcode. This flag allows the user to enable/disable instance
    communication in a running instance. This patch adds this flag but...
9808764a 02/19/2014 10:39 am Jose A. Lopes

Enable/disable instance comm via 'gnt-instance modify'

This patch adds the logic necessary to enable/disable the instance
communication in a running instance via 'gnt-instance modify'. With
instance communication enabled, the instance gets a new NIC that is...

e25625ab 02/19/2014 10:39 am Jose A. Lopes

Refactor instance comm NIC name creation

Refactor name creation for the NICs used in instance communication.
These names are generated based on a prefix and the instance name.
Also, these names must be unique within a single instance.

Signed-off-by: Jose A. Lopes <>...

93029a5b 02/19/2014 10:39 am Jose A. Lopes

Extend 'AssertIn' with an optional error message

Extend 'AssertIn' with an optional error message, thus making it
easier to find the cause of an error when errors occur during the QA.

Signed-off-by: Jose A. Lopes <>
Reviewed-by: Hrvoje Ribicic <>

e81d80bd 02/19/2014 10:39 am Jose A. Lopes

Add QA for instance communication with instance modify

Extend QA with tests related to feature that adds the instance
communication mechanism to running instances, via 'gnt-instance
modify'.

Signed-off-by: Jose A. Lopes <>
Reviewed-by: Hrvoje Ribicic <>

ebe70850 02/19/2014 10:39 am Jose A. Lopes

Fix copy of NIC objects to be consistent with the other call

... which can be found just right below in the same module.

Signed-off-by: Jose A. Lopes <>
Reviewed-by: Hrvoje Ribicic <>

fc963293 02/19/2014 10:39 am Jose A. Lopes

Fix param name to conform to convention of optional params

The opcode parameters can be optional and parameters that are optional
have their names prefixed by 'pOpt'. This patch fixes with parameter
to conform to this convention.

Signed-off-by: Jose A. Lopes <>...

7a51281a 02/18/2014 04:39 pm Jose A. Lopes

Fix whitespace and typos in comments

Signed-off-by: Jose A. Lopes <>
Reviewed-by: Hrvoje Ribicic <>

79cf373a 02/18/2014 01:56 pm Petr Pudlak

Disable pylint warnings for ignored files

Some files (like RPC stubs) are marked to be ignored by pylint.
However pylint emits warning messages to remind of such files.
This disables the warnings.

Signed-off-by: Petr Pudlak <>
Reviewed-by: Hrvoje Ribicic <>

857a05fe 02/18/2014 12:30 pm Petr Pudlak

Disable deprecation warnings in PyRPC

Since on Debian Squeeze we have TH version 2.4, we need to use 'report'
instead of 'reportWarning/reportError'. However, 'report' is deprecated
in later versions, therefore we need to disable the warning.

The warning doesn't manifest on Debian Squeeze or Wheezy, but causes...

a317d77a 02/17/2014 03:40 pm Klaus Aehlig

Make the lock allocation part of WConfD's state

As WConfD is supposed to be the authoritative source for
configuration and locks, it needs to have access to the lock
state as well.

Signed-off-by: Klaus Aehlig <>
Reviewed-by: Petr Pudlak <>

95eb97c8 02/17/2014 03:40 pm Klaus Aehlig

Add a module for the Ganeti lock structure

Already provide a module holding the structure of the locks
available in Ganeti, so that the overall structure of WConfD
can be implemented. The actual locks still have to be added.

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

3f173b09 02/17/2014 03:40 pm Klaus Aehlig

Derive Ord JobId

Make the type JobId an instance of Ord. While the order itself
does not matter, it is a prerequisite to be an instance of Ord
to be used as the type of lock owners.

Signed-off-by: Klaus Aehlig <>
Reviewed-by: Petr Pudlak <>

1d49428b 02/17/2014 03:40 pm Klaus Aehlig

Verify atomicity of lock updates

Add a test verifying the atomicity of an update, i.e., if an update
succeeds, then all requests must be satisfied in the final state, and
if it fails, the state must be unchanged.

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

987fcfb7 02/17/2014 03:40 pm Klaus Aehlig

Verify lock stability over updates

Add a test that verifies that updates by one user do not
affect the locks held by a different user.

Signed-off-by: Klaus Aehlig <>
Reviewed-by: Petr Pudlak <>

3469663d 02/17/2014 03:40 pm Klaus Aehlig

Verify Basic property for lock allocation

Verify the minimal consistency property for any form
of lock handling: if a user holds an exclusive lock,
then no other user can hold the same lock (neither
exclusively, nor shared).

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

15208e95 02/17/2014 03:40 pm Klaus Aehlig

Add function describing lock updates

Add the pure part of the mechanism of updating locks. To allow
for efficient waiting on locks, return the set of owners of the locks
on which the operation is blocked.

Signed-off-by: Klaus Aehlig <>
Reviewed-by: Petr Pudlak <>

a1da8a50 02/17/2014 03:40 pm Klaus Aehlig

Add a function to leave the list monad

The list monad provides convenient syntax for non-deterministic
algorithms. Add a function leaving that monad with this intuition
in mind.

Signed-off-by: Klaus Aehlig <>
Reviewed-by: Petr Pudlak <>

c2b8d366 02/17/2014 03:40 pm Klaus Aehlig

Add data structure representing current lock status

To allow for jobs as processes, a central daemon (wconfd) will
handle allocation and release of locks. Add an appropriate data
structure to describe the current status of the locks.

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

438ce535 02/17/2014 01:27 pm Jose A. Lopes

Rename 'BUILT_PYTHON_SOURCES' to 'built_python_sources'

This patch fixes the warnings produced by ./autogen.sh

Makefile.am:310: variable `BUILT_PYTHON_SOURCES' is defined but no program or
Makefile.am:310: library has `BUILT_PYTHON' as canonical name (possible typo)...
a53772a0 02/14/2014 04:57 pm Klaus Aehlig

Merge branch 'stable-2.11' into master

  • stable-2.11
    Update design doc wrt to improved SSL design
    Test node certificate renewal in QA
    Use node UUID as client certificate serial number
    Revert "Temporarily remove SSL changes from NEWS file"
    Revert "Disabling client certificate usage"...
0565f862 02/14/2014 03:51 pm Helga Velroyen

Update design doc wrt to improved SSL design

This patch updates the design document of Ganeti's node
security to make it consistent with the implementation
and to extend it with a couple of suggestions to improve
the SSL security even more.

Signed-off-by: Helga Velroyen <>...

e593c9c8 02/14/2014 03:51 pm Helga Velroyen

Test node certificate renewal in QA

This extends the QA by explicitely testing the renewal
of SSL client certificates.

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

ab4b1cf2 02/14/2014 03:51 pm Helga Velroyen

Use node UUID as client certificate serial number

It turns out, that some implementations of OpenSSL are more
pedantic in checking the certficates than others. In this
particular case, the SSL connection could not be
established when the serial number of the certificates...

a15cd685 02/14/2014 03:51 pm Helga Velroyen

Revert "Temporarily remove SSL changes from NEWS file"

This reverts commit 89671df1c, which temporarily removed
the announcement of improved SSL security in the NEWS file.
As this patch series fixes the SSL problem that caused
the disabling of the features, we are adding back the...

d5104ca4 02/14/2014 03:51 pm Helga Velroyen

Revert "Disabling client certificate usage"

This reverts commit 45f75526b848, which was introduced to
temporarily disable the implementation of SSL client
certificates. As this patch series fixes the reason for
the disabling, we are rolling back the patch....

a2a1a8ca 02/14/2014 11:47 am Petr Pudlak

Add functions for atomic operations on files

Function 'atomicUpdateFile' extends 'atomicWriteFile' that allows any
action to be run on a temporary file.

Function 'atomicUpdateLockedFile' additionally locks the original file
using flock and checks if its state conforms to the last one....

e465608f 02/14/2014 11:47 am Petr Pudlak

Add mtime/ctime to ConfigData

It's used on the Python side, it's been missing on the Haskell side.

Signed-off-by: Petr Pudlak <>
Reviewed-by: Klaus Aehlig <>

31daf7db 02/14/2014 11:47 am Petr Pudlak

Re-export liftIO from BasicType

This makes usage of ReaderT's liftIO more convenient.

Signed-off-by: Petr Pudlak <>
Reviewed-by: Klaus Aehlig <>

14551dc3 02/14/2014 11:47 am Petr Pudlak

Add lib/rpc/stubs/ and src/ganeti-wconfd to .gitignore

All stubs are generated from Haskell during compilation.
Also ignore the executable of the new daemon.

Signed-off-by: Petr Pudlak <>
Reviewed-by: Klaus Aehlig <>

5a89351b 02/14/2014 11:47 am Petr Pudlak

Fix an ambiguity in the documentation for GetNodesSshPorts

This ambiguity was introduced by adding the WConfd client.

Signed-off-by: Petr Pudlak <>
Reviewed-by: Klaus Aehlig <>

bd2fab62 02/14/2014 11:47 am Petr Pudlak

Add the Python client for WConfD

The client combines the abstract client class and the WConfD
stub to provide a Python interface to WConfD.

Signed-off-by: Petr Pudlak <>
Reviewed-by: Klaus Aehlig <>