Statistics
| Branch: | Tag: | Revision:

root @ 4fe43605

# Date Author Comment
4fe43605 03/05/2014 11:20 am Hrvoje Ribicic

Add variation to delays between creation attempts

Attempting to acquire node locks with a certain fixed delay could lead
to unwanted synchronization with other processes competing for the same
locks. This patch adds some random variation to the attempts....

a396b2d6 03/05/2014 11:20 am Hrvoje Ribicic

Implement opportunistic locking in the move-instance tool

This patch allows opportunistic instance creations to be attempted,
with a delay between them giving nodes the opportunity to become
available. After the given number of opportunistic tries has been...

2c4ec08e 03/05/2014 11:20 am Hrvoje Ribicic

Add options for opportunistic creation during moves

To start off the introduction of oppportunistic locking during instance
creation, this patch adds the options allowing the locking to be
invoked.

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

ec3a7362 03/05/2014 10:58 am Jose A. Lopes

Remove duplicated '_CheckOSVariant'

It seems '_CheckOSVariant' was moved from 'ganeti.cmdlib.instance' to
'ganeti.cmdlib.instance_utils' but the source was never deleted. This
patch deletes the source copy if this function.

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

35cded14 03/04/2014 05:19 pm Petr Pudlak

Use 'ArrayObject' in Ganeti.RPC instead of manual encoding

Before most of the calls were implemented manually, ignoring any
generated code for maniupulating JSON. Using 'ArrayObject' we can
automate the process.

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

0b3a266d 03/04/2014 05:19 pm Petr Pudlak

Test the instance 'ArrayObject Disk'

.. which is one of the few ones that use extra fields.

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

91f0dc1e 03/04/2014 05:19 pm Petr Pudlak

Add a helper function for testing 'ArrayObject' instances

It checks if 'fromJSArray . toJSArray' is equivalent to 'Ok'.

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

26e32dee 03/04/2014 05:19 pm Petr Pudlak

Move 'DictObject' and 'ArrayObject' to Ganeti.JSON

The type classes are more closely related to JSON and for using them
it should not be necessary to import Ganeti.THH.

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

948f6540 03/04/2014 05:19 pm Petr Pudlak

Add a typeclass for type serializable as a JSON array

This is in particular needed for RPC requests which are serialized this
way and therefore using `showJSON` on the generated objects doesn't
work.

The fiels are serialized in the order they're declared, together with...

0df2d967 03/04/2014 05:19 pm Petr Pudlak

Document 'fieldExtraKeys' in 'Field'

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

58b37916 03/04/2014 05:19 pm Petr Pudlak

Remove toDist... functions completely

Since thre already is `DictObject` class with `toDict`, there is no need
for them, just polluting the name space.

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

c2e136e2 03/04/2014 05:19 pm Petr Pudlak

Enhance DictObject and refactor loading/saving TH functions

Since there is already `DictObject` type class which could share code
with generated instances of `showJSON`, the generated code is split into
two parts: One that converts between `[(String, JSValue)]` and the data...

1d4febbd 03/04/2014 05:03 pm Klaus Aehlig

Write lock state to disk after updates

Make use of asynchronous worker to save to log status after every
update. The answer to the query is only returned, once the state
is saved on disk. Note that replication of the lock status is not
necessary, as all jobs will be gone if the master node goes away....

61fd6337 03/04/2014 05:03 pm Klaus Aehlig

Provide an asynchronous task for writing lock status

It will be used to persist the state of the lock allocation on
disk, allowing locks to survive reboots of WConfD.

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

69809ae3 03/04/2014 02:27 pm Klaus Aehlig

Verify the intervall property of GanetiLocks

According to the specification in our design, if A is a group
lock and B belogs to this group, then all locks between A and B
in the lock order also must belong to A. Verify this.

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

cf7f8e51 03/04/2014 02:27 pm Klaus Aehlig

Verify implication restriction on locks

As specified in our design, if A is a group lock and B
belongs to A, then A must be earlier in the lock order
than B. Verify this property.

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

2e1399da 03/04/2014 02:27 pm Klaus Aehlig

Update Arbitrary GanetiLocks

With the extension of Ganeti.Locking.Locks.GanetiLocks to the
full lock hierarchy, also extend the instantiation of Arbitrary.

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

ec2355ad 03/04/2014 02:27 pm Klaus Aehlig

Add Ganeti Lock Hierarchy

Make Ganeti.Locking.Locks.GanetiLocks present the full Ganeti
lock hierarchy. This is in accordance with the current Python
implementation.

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

79786c6b 03/04/2014 02:26 pm Klaus Aehlig

Serialize locks as JSON strings

...as the current Python implementation does as well.

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

5d7ac40f 03/03/2014 06:05 pm Klaus Aehlig

Export opportunistic lock union through WConfd

Make WConfD provide a function to opportunistically allocate
locks.

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

dee434c2 03/03/2014 06:05 pm Klaus Aehlig

Support name generation for pairs

Add support for naming of python variables if the type
is a pair.

Note: on older versions of haskell, Q is not an instance of
Applicative, hence we use the do-syntax here.

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

66927d09 03/03/2014 06:05 pm Klaus Aehlig

Export lock intersection through WConfD

Export the functionality to restrict the owned locks to a given set.

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

b4d1b49f 03/03/2014 06:05 pm Klaus Aehlig

Export freeLocks through WConfD

Export the functionality to free all locks of a given
owner.

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

032befbd 03/03/2014 06:05 pm Klaus Aehlig

Add lock modification without result to WConfdMonad

Enrich the structure of WConfdMonad by a convenience
wrapper around modifyLockAllocation for the case that
the modification always succeeds and does not produce
any result.

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

f919184d 03/03/2014 06:05 pm Klaus Aehlig

Export updateLocks through WConfD

Export the functionality to update the locks of a given
owner through WConfD.

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

62f1e053 03/03/2014 06:05 pm Klaus Aehlig

Add serialization for LockRequest GanetiLocks

Add a module describing how abstract requests, like lock requests are
passed over the wire to WConfD.

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

5dd9a07e 03/03/2014 06:05 pm Klaus Aehlig

Add listlocks to gnt-debug wconfd

So that wconfd's locking can be debugged directly.

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

84640a93 03/03/2014 06:05 pm Klaus Aehlig

Export listing of locks

Make WconfD answer requests about the locks of a specific
owner.

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

3e80d1b7 03/03/2014 06:05 pm Klaus Aehlig

Support reading the lock allocation in WConfdMonad

As opposed to the atomic modify-and-read provided my modifyLockAllocation,
no storing is necessary here.

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

51b69fc8 02/28/2014 03:44 pm Petr Pudlak

Remove unused import in rpc/transport.py

.. which got there by mistake.

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

71b770a9 02/28/2014 03:39 pm Klaus Aehlig

Merge branch 'stable-2.11' into master

  • stable-2.11
    Setting correct permissions of client cert (split-user)
    Add luxid group to 'users-setup'
    Add some whitespace to fix formatting
    Consider old client cert only when available
    Fix return of 'Validate'...
f3aebf6f 02/28/2014 03:00 pm Petr Pudlak

Retry luxi/wconfd RPC calls if the connection is closed

Since the daemon can decide to close a client connection after a
timeout, the client needs to be able to automatically reconnect.

This patch introduces this functionality into the RPC client:
If an attempt to send data fails on 'Broken pipe', it's retried one more...

2992f2f7 02/28/2014 02:31 pm Klaus Aehlig

Fix generic uncurrying

in the case of n>1, the n-ary uncurry function is of the form
\f (x_1, ..., x_n) -> ... rather than \f x_1 ... x_n -> ...

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

e715a6d6 02/28/2014 02:08 pm Dimitris Bliablias

Add --mac-prefix to gnt-cluster modify manpage

Update the manpage for mac-prefix modification in 'gnt-cluster modify'
command.

Signed-off-by: Dimitris Bliablias <>
Reviewed-by: Jose A. Lopes <>

b4726cd7 02/28/2014 02:08 pm Dimitris Bliablias

Add unittest for gnt-cluster modify --mac-prefix

Add unittest for cluster mac-prefix modification support.

Signed-off-by: Dimitris Bliablias <>
Reviewed-by: Jose A. Lopes <>

0cffcdb1 02/28/2014 02:08 pm Dimitris Bliablias

Allow cluster mac prefix modification

Extend LUClusterSetParams to allow the modification of the cluster
mac-prefix setting in 'gnt-cluster modify' command.

This fixes part of issue 239.

Signed-off-by: Dimitris Bliablias <>
Reviewed-by: Jose A. Lopes <>

353bd75b 02/28/2014 02:08 pm Dimitris Bliablias

Show mac prefix setting in gnt-cluster info

Include mac-prefix setting in the output of 'gnt-cluster info'
command.

This fixes part of issue 239.

Signed-off-by: Dimitris Bliablias <>
Reviewed-by: Jose A. Lopes <>

22114677 02/28/2014 11:06 am Helga Velroyen

Setting correct permissions of client cert (split-user)

This patch makes sure that the client certificate gets
the right permissions and owner when created. Additionally
it enhances the 'ensure_dirs' script to correct the
permissions in case they are broken for whatever reason....

7d720a67 02/28/2014 11:06 am Helga Velroyen

Add luxid group to 'users-setup'

The creation of the luxid group was missing in the
'users-setup' script. Ganeti will refuse to start
if this group does not exist on a node when using
split-user mode.

Signed-off-by: Helga Velroyen <>
Reviewed-by: Jose Lopes <>

10df0dfe 02/28/2014 10:58 am Petr Pudlak

Add documentation for "gnt-debug wconfd"

The missing part caused a doclint test to fail.

Signed-off-by: Petr Pudlak <>
Reviewed-by: Jose A. Lopes <>

f33307bd 02/27/2014 07:15 pm Klaus Aehlig

Add a command to gnt-debug to test various aspects of wconfd

For debugging purpose, support direct communication to WConfD from
the commandline for some of its commands. For the time being, support
the echo command.

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

46ae85de 02/27/2014 05:28 pm Helga Velroyen

Add some whitespace to fix formatting

Some error messages were lacking some spaces between lines
to make it more readable.

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

da27bc7d 02/27/2014 05:28 pm Helga Velroyen

Consider old client cert only when available

This fixes a bug which occurred only after upgrading
from 2.10 to 2.11. During the cluster renew-crypto
operation, Ganeti tries to include the old certificate
in the candidate map while it is providing new
certificates. This failed when there was no certificate...

b3724640 02/27/2014 05:11 pm Jose A. Lopes

Fix return of 'Validate'

  • fix return of 'Validate' in docstrings
  • fix all call sites
  • fix all tests

Signed-off-by: Jose A. Lopes <>
Reviewed-by: Helga Velroyen <>

e1e36b88 02/27/2014 04:33 pm Klaus Aehlig

Locks are owned by job id file path pairs

...according to our updated design.

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

b28f715a 02/27/2014 04:33 pm Klaus Aehlig

Remove the client state from WConfD monad

As we decided to keep our protocols stateless, the client
state is no longer needed.

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

7786784e 02/27/2014 04:33 pm Klaus Aehlig

design: keep WConfD's protocols stateless

To simplify the setup, keep all protocols of WConfD stateless. This implies
that the job id has to be sent with every resource request. Also clarify that
the owner of a resource is the pair of the job id and the file for job death...

ef89d9d5 02/27/2014 04:04 pm Michele Tartara

Have SubmitManyJobs add entries to the reason trail

Not only SubmitJobToDrainedQueue (and therefore SubmitJob) but also
SubmitManyJobs has to add "gnt:opcode:*" entries to the reason trail.

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

8a7738b9 02/27/2014 03:51 pm Petr Pudlak

Fix the dependencies of Makefile.ghc

Include only the programs that were configured to be built, and let GHC
figure out the required Haskell sources by itself.

Signed-off-by: Petr Pudlak <>
Reviewed-by: Helga Velroyen <>

7959b875 02/27/2014 03:50 pm Petr Pudlak

Include mond and confd only when configured

Previously they were included no matter of what the configuration was,
failing to compile if some of the dependencies were missing.

Signed-off-by: Petr Pudlak <>
Reviewed-by: Helga Velroyen <>

be6cdf67 02/27/2014 03:17 pm Michele Tartara

Add reason for job pickup to the trail

Add a new entry in the reason trail when a job is picked up by MasterD from the
hard drive, after LuxiD put it there.

Note that the signature of NameToReasonSrc is changed in an incompatible way,
although it's a public method because in this commit we also change its only...

830b09dd 02/27/2014 03:17 pm Michele Tartara

Add reason trail pickup constant

Add a constant for the reason trail, representing the pickup of a job from the
disk.

Also, refactor a bit the other constants so that part of the definition can be
shared in a hierarichical fashion.

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

653bc0f1 02/27/2014 03:17 pm Michele Tartara

Make the AddReason method public

It will need to be accessed from outside the class too in one of the next
commits.

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

0c779689 02/27/2014 03:17 pm Michele Tartara

Have LuxiD add the "gnt:opcode" reason trail entry

The entry used to be added in jqueue.py, but after switching the queue
management from masterd to luxyd it had been lost. Now, make LuxiD responsible
for adding it.

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

65a3ff88 02/27/2014 03:17 pm Michele Tartara

Add function for extending the reason trail in Luxid

The function will be used by the next commit.

Also, remove a few trailing whitespaces lying around the file.

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

39e169c9 02/27/2014 01:52 pm Helga Velroyen

Update INSTALL wrt missing dependencies

This patch updates the quick installation guide with
with respect to some missing dependencies. Besides,
it rephrases some instructions to make them more clear.

Signed-off-by: Helga Velroyen <>
Reviewed-by: Petr Pudlak <>

8ffd7e4b 02/27/2014 12:29 pm Klaus Aehlig

hsqueeze also partially implemented in 2.11

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

25cf4130 02/27/2014 12:28 pm Petr Pudlak

Let config.py use WConfd for reading/writing the config

Currently it only relays the reads/writes to the file to WConfd,
everything else yet remains in config.py.

Also if the 'ConfigWriter' is opened in "offline" mode (like in
bootstrap.py), it doesn't use WConfd and resorts to the original...

80a56f26 02/27/2014 12:27 pm Petr Pudlak

Start WConfd temporarily during master failover

.. in order to update the configuration and distribute ssconf, before
starting the daemons by the scripts.

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

c0eb47b9 02/27/2014 12:27 pm Petr Pudlak

Include WConfd in the list of daemons started on a master

.. and make it the first one so that masterd can use it when it starts.

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

08fcaf55 02/27/2014 12:27 pm Petr Pudlak

Add missing constant for the name of WConfd

The constant is used when calling the daemon startup/shutdown scripts.

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

bc820a01 02/27/2014 12:27 pm Petr Pudlak

Add the --force-node option to WConfd

.. and fix the superfluous options list in ganeti-wconfd.hs

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

9a0b8258 02/27/2014 12:27 pm Petr Pudlak

Add an option for disabling node checks at daemon startup

This is needed for WConfd, because during failover it needs to be
temporarily started in order to update the configuration on the selected
master candidate.

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

710a2863 02/27/2014 12:27 pm Petr Pudlak

Convert int to float when checking config. consistency

When reading the configuration file from RPC JSON, values without a
floating point are parsed as 'int', not as 'float', and later the
consistency check fails.

This patch adds an automatic conversion from 'int' to 'float' during...

803dafcd 02/27/2014 12:18 pm Petr Pudlak

While at it, fix the order of imports in OpCodes.hs

.. so that Ganeti imports are below library imports and ordered
alphabetically.

Signed-off-by: Petr Pudlak <>
Reviewed-by: Michele Tartara <>
Reviewed-by: Jose A. Lopes <>

e713a686 02/27/2014 12:18 pm Petr Pudlak

Add a function for generating OpCode reason src. names

The function convert the opcode name to lowercase with underscores,
strips the 'Op' prefix and prepends Constants.opcodeReasonSrcOpcode.

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

ffdcc263 02/27/2014 12:18 pm Petr Pudlak

Add a TH function for lower-cased stripped opcode names

The function strips the 'Op' prefix from a constructor name and converts
it to lower-case with underscores.

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

8aab74e9 02/27/2014 12:18 pm Petr Pudlak

Generalize genConstrToStr to custom monadic functions

This will allow compile-time checks for constructor names.

Signed-off-by: Petr Pudlak <>
Reviewed-by: Michele Tartara <>
Reviewed-by: Jose A. Lopes <>

5ca6adf5 02/26/2014 07:17 pm Klaus Aehlig

Prefer unless over when (not...)

...and by doing so, please lint.

Signed-off-by: Klaus Aehlig <>
Reviewed-by: Hrvoje Ribicic <>

5e26a86e 02/26/2014 06:23 pm Klaus Aehlig

At startup, make WConfD read the lock allocation from disk

On startup, make wconfd read a the state of the lock allocation from disk,
instead of starting from an empty allocation.

Note that, as opposed to the configuration, no finding a saved
log configuration is not an error; e.g., the node might be master...

f3eb4bfd 02/26/2014 06:23 pm Klaus Aehlig

Provide path to persist locks

As we aim to handle jobs as separate processes with locks
handled by WConfD, we need to persist the locks to ensure
they survive a restart of that deamon. Saving only on master
daemon is enough, however.

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

c8751a72 02/26/2014 06:23 pm Klaus Aehlig

Add a function to load lock allocation from disk

Lock allocation are stored on disk as their JSON representation.

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

e3b02e1f 02/26/2014 06:23 pm Klaus Aehlig

Verify serialization/deserialization consistency for Locks

As we made Ganeti.Locking.Locks an instance of JSON, we better verify
that we can readJSON what we showJSON.

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

15a53b1e 02/26/2014 06:23 pm Klaus Aehlig

Make Locks a JSON instance

As requests to acquire or release locks come via
inter-process communication, we need a serialization
of the locks data type.

All locks are serialised as JSON objects, where the
key "type" describes the type of lock, and the remaining...

89d140d1 02/26/2014 06:23 pm Klaus Aehlig

Add test for serialization of LockAllocation

Verify readJSON . showJSON = Ok for LockAllocations.

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

71dc39a1 02/26/2014 06:23 pm Klaus Aehlig

Make LockAllocation an instance of JSON

In this way, we can serialize a lock state to disk, so that
locks can survive a restart of WConfD.

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

d977f86c 02/26/2014 05:50 pm Hrvoje Ribicic

Merge branch 'stable-2.11' into master

  • stable-2.11
    Add query support for locks to luxid (cherry-pick)
    Provide fields for lock queries (cherry-pick)
    A quick fix for broken 'make distcheck'
  • stable-2.9
    Make gnt-debug locks display fake job locks properly...
a8c1f633 02/26/2014 03:48 pm Hrvoje Ribicic

Merge branch 'origin/stable-2.10' into stable-2.11

  • stable-2.9
    Make gnt-debug locks display fake job locks properly
    Make NiceSort treat integers well
    Revision bump for 2.9.5
    Set release date for 2.9.5
    Add NEWS entry for 2.9.5

Signed-off-by: Hrvoje Ribicic <>...

508c7d70 02/26/2014 03:04 pm Klaus Aehlig

Add query support for locks to luxid

While requests only get forwarded, it still helps to
get luxid feature-complete with respect to master.

Signed-off-by: Klaus Aehlig <>
Reviewed-by: Petr Pudlak <>
Cherry-picked from commit a6e406ce376453e90e598c7be68809d6a7bd7d41...

014eaaa0 02/26/2014 03:04 pm Klaus Aehlig

Provide fields for lock queries

For luxid to be feature-complete with respect to masterd, it
also needs to answer requests about locks. This includes knowing
the fields available for locks.

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

59651d52 02/26/2014 02:07 pm Petr Pudlak

Export reading and writing the configuration using RPC

Note that currently these functions lack any kind of locking and
concurrent calls to 'writeConfig' will result in lost changes in the
configuration.

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

833c32b3 02/26/2014 02:07 pm Petr Pudlak

Add a module for functions specific to config. management

.. and include ConfigData in WConfd's ConfigState.

Currently it includes functions for asynchronous saving the
configuration and reading and (over)writing it in the daemon state.

Load the configuration from the file at daemon startup and configure an...

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

52b655cb 02/26/2014 01:41 pm Hrvoje Ribicic

Merge branch 'origin/stable-2.9' into stable-2.10

  • stable-2.9
    Make gnt-debug locks display fake job locks properly
    Make NiceSort treat integers well

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

fa0192b2 02/26/2014 12:22 pm Hrvoje Ribicic

Make gnt-debug locks display fake job locks properly

When a job is dependent on other jobs, a fake lock is created whose
pending entry contains a list of job ids waiting on the job. gnt-debug
locks did not expect the job ids to be ints, crashing when encountering...

0fe20731 02/26/2014 12:22 pm Hrvoje Ribicic

Make NiceSort treat integers well

NiceSort is invoked on arrays that may contain strings, but in other
situations can contain ints as well. As this surprisingly makes sense,
add a tiny modification to make NiceSort work in these conditions.

Signed-off-by: Hrvoje Ribicic <>...

7253aaf2 02/25/2014 05:25 pm Klaus Aehlig

Merge branch 'stable-2.9' into stable-2.10

  • stable-2.9
    Revision bump for 2.9.5
    Set release date for 2.9.5
    Add NEWS entry for 2.9.5

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

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

eeeed365 02/25/2014 03:03 pm Klaus Aehlig

Revision bump for 2.9.5

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

8cf85651 02/25/2014 03:03 pm Klaus Aehlig

Set release date for 2.9.5

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

5ac4e986 02/25/2014 12:29 pm Petr Pudlak

A quick fix for broken 'make distcheck'

The offending target 'test/hs/offline-test.sh' requires the dependencies
even when the test isn't actually run. This is because currently our
Makefile doesn't distinguish between prerequisites for building test
scripts and running them....

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