Statistics
| Branch: | Tag: | Revision:

root @ 1c4910f7

# Date Author Comment
1c4910f7 03/11/2014 05:09 pm Jose A. Lopes

OS images in 'LUInstanceCreate' and OS scripts optional

  • Use the empty string in 'ganeti.objects.Instance.os' to signify that
    the instance does not use OS scripts.
  • Make several calls related to OS scripts first test whether OS
    scripts are being used....
2329ffdd 03/11/2014 05:09 pm Jose A. Lopes

Instance create with OS image

Extend 'LUInstanceCreate' to image the instance's first disk if an OS
image is specified via the OS params. If the OS image is a file, it
will be copied to the node via SSH. If ths OS image is a URL, it will
be passed directly to the node, which will then download the file....

7bc4d6ac 03/11/2014 05:09 pm Jose A. Lopes

Function to check if the OS image parameter is valid

Add helper function to check if the OS image parameter contained in
the OS parameters of an opcode is valid.

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

0247d20f 03/11/2014 05:09 pm Jose A. Lopes

Function to image disks while ensuring that disks are paused

  • Add 'ImageDisks' that actually calls the 'blockdev_image' RPC in a
    context where disk sync is paused.
  • Add 'ImageOrCleanupDisks' which is just a wrapper around the
    previous function that cleans up if an exception occurs....
987ec378 03/11/2014 05:09 pm Jose A. Lopes

Function to remove instance if disks are degraded

  • Extract code, into '_RemoveDegradedDisks', that checks if the disks
    of an instance are degraded and, if so, remove the instance.
  • Add a nice comment

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

a303027b 03/11/2014 05:09 pm Jose A. Lopes

RPC 'blockdev_image' to image devices

Add RPC 'blockdev_image' that uses 'ganeti.backend.BlockdevImage' to
dump an image to an instance's disk device, optionally downloading
that image.

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

2b8322f7 03/11/2014 05:09 pm Jose A. Lopes

Helper function to image a device by downloading or dumping

Add 'BlockdevImage' which downloads a file and dumps it to an
instance's disk if the path is a URL, otherwise it dumps the file
directly to the instance's disk.

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

c89622cd 03/11/2014 05:09 pm Jose A. Lopes

Helper function that downloads an image and dumps it to disk

  • Add constant that holds the curl binary.
  • Add '_DownloadAndDumpDevice' which downloads a file (e.g., OS image)
    through curl and dumps it to a disk device (e.g., an instance disk).

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

229fb4ea 03/11/2014 05:09 pm Jose A. Lopes

Generalize 'WipeDevice' to 'DumpDevice'

  • Fix order of imports
  • Generalize 'WipeDevice' to 'DumpDevice' which takes an additional
    argument which is the data source. This will allow this function to
    be reused for both wiping and imaging disks in a future patch....
433d2933 03/11/2014 05:09 pm Jose A. Lopes

Helper functions to get and update OS image from OSParams

Add 'GetOSImage' and 'PutOSImage' which handle the OS image key in the
OS parameters dict.

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

ff89ab03 03/11/2014 05:09 pm Jose A. Lopes

Fix export order according to definition order

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

3cf06dd4 03/11/2014 05:09 pm Jose A. Lopes

Fix docstrings

Fix several docstrings.

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

a16ffac0 03/11/2014 05:08 pm Jose A. Lopes

Reuse method to parse name from OS 'name+variant' string

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

e11d0f55 03/11/2014 03:28 pm Klaus Aehlig

Support releasing locks by level

Add a function to WConfD allowing to release locks by
Ganeti lock level.

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

e227f161 03/11/2014 03:28 pm Klaus Aehlig

Add a convenience function to release locks by property

While definable from listLocks and updateLocks, it is convenient
to be able to all locks with a given property. This will, e.g.,
allow to release all locks at a given level---as the mcpu does
routinely....

32cbb380 03/11/2014 03:28 pm Klaus Aehlig

BGL is not a set lock

Despite what the name suggests, the Big Ganeti Lock does not act as a
set of all locks. It is just a lock as any other lock from the point
of view of the Ganeti lock hierarchy.

It's special meaning comes from the fact that all jobs, except for...

0108d385 03/11/2014 03:28 pm Klaus Aehlig

Verify serialisation of LockLevel

For the new JSON instance Ganeti.Locking.Locks.LockLevel, verify that
readJSON . showJSON = Ok.

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

5714a925 03/11/2014 03:28 pm Klaus Aehlig

For each Ganeti Lock provide its level

...so set a job can request operations on all its locks of a given level.

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

1835fd75 03/11/2014 03:28 pm Klaus Aehlig

Add network locks to Haskell

Ganeti also has a lock level for networks, however this level was forgotten
when the Ganeti lock hierarchy was implemented in Haskell.

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

1310339c 03/11/2014 03:28 pm Klaus Aehlig

Fix allocation order of locks

The correct allocation order for node-related Ganeti locks is
allocation, group, the node itself, resources.

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

2754dc7d 03/11/2014 03:28 pm Klaus Aehlig

Allow transitions from sets to elements

Owning a set-lock has the same effect as owning each member. So asking
for a member while already holding the set lock in the same mode (shared
or exclusive) is, effectively, no asking for new locks. Therefore, do not...

a55a40d6 03/11/2014 03:28 pm Klaus Aehlig

Fix typo

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

8436d0da 03/07/2014 08:54 pm Klaus Aehlig

Merge branch 'stable-2.11' into master

  • stable-2.11
    (no changes)
  • stable-2.10
    Revision bump for the 2.10.1 release
    Update NEWS file for 2.10.1
    Use node UUIDs for executing LU hook
    Add PreparePostHookNodes to LUs
    Fix error propagation in post-commit hooks...
205d3309 03/07/2014 08:33 pm Klaus Aehlig

Merge branch 'stable-2.10' into stable-2.11

  • stable-2.10
    Revision bump for the 2.10.1 release
    Update NEWS file for 2.10.1
    Use node UUIDs for executing LU hook
    Add PreparePostHookNodes to LUs
    Fix error propagation in post-commit hooks
  • stable-2.9...
4cbe5138 03/07/2014 07:53 pm Klaus Aehlig

Merge branch 'stable-2.9' into stable-2.10

  • stable-2.9
    Fix error introduced during merge
    gnt-cluster copyfile: accept relative paths
  • stable-2.8
    Improve RAPI detection of the watcher
    Add patching QA configuration files on buildbots
    Enable a timeout for instance shutdown...
ddc64582 03/07/2014 07:32 pm Michele Tartara

Fix error introduced during merge

A parameter was lost while resolving a conflict in the signature of a function.

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

74a4fc94 03/07/2014 07:25 pm Klaus Aehlig

gnt-cluster copyfile: accept relative paths

If, on the command line, the argument to gnt-cluster copyfile is
a relative path, consider this a shorthand for the corresponding
absolute path.

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

85530402 03/07/2014 07:07 pm Michele Tartara

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

  • stable-2.8
    Improve RAPI detection of the watcher
    Add patching QA configuration files on buildbots
    Enable a timeout for instance shutdown
    Allow KVM commands to have a timeout
    Allow xen commands to have a timeout...
a8b9a6e3 03/07/2014 05:22 pm Petr Pudlak

Let WConfd distribute SSConf to nodes

.. and remove the corresponding code from lib/config.py.

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

7ea201c9 03/07/2014 05:22 pm Petr Pudlak

Add an asynchronous task for distributing SSConf to nodes

The task computes the SSconf data and compares it to the last state that
was successfully distributed. If it differs, issues the RPC call to
distribute it. If any of the RPC calls fails, the state remains...

9a8952e0 03/07/2014 05:22 pm Petr Pudlak

Add Haskell RPC call for distributing SSConf to nodes

The data is sent as a dictionary mapping file names to lists of lines.

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

3fb0d66f 03/07/2014 05:22 pm Petr Pudlak

Let the SSConf RPC server side handle lists

Since on Haskell side we represent SSConf as list of lines, let the
Python side understand it as well.

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

1f87d93d 03/07/2014 05:22 pm Petr Pudlak

Add a test for (de)serialization of Ssconf

.. to verify that readJSON . showJSON = Ok.

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

731152ce 03/07/2014 05:22 pm Petr Pudlak

Add a module for constructing Ssconf from the configuration

This migrates the functionality from Python
ConfigWriter._UnlockedGetSsconfValues to Haskell.

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

ce52f060 03/07/2014 05:22 pm Petr Pudlak

Add a data type for representing the complete SSConf

.. as a map from SSKeys to lists of strings.

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

3d148957 03/07/2014 05:22 pm Petr Pudlak

Improve Haskell functions for managing the UidPool

Add a formatting function that is needed by Ssconf.
Also expose 'ipFamilyToRaw', which is needed as well.

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

6b76931c 03/07/2014 05:22 pm Petr Pudlak

Add missing keys to Ganeti.Ssconf

These keys were probably introduced only in Python later and weren't
added to the Haskell code.

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

41ea331e 03/07/2014 05:22 pm Petr Pudlak

Let WConfd distribute the configuration to MCs

.. and remove the distribution from lib/config.py

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

94c7e022 03/07/2014 05:22 pm Petr Pudlak

Function that distributes the configuration to MCs

Also refactor helper functions in WConfd/ConfigWriter into smaller ones
and add helpers for RPC calls.

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

a1f35d0a 03/07/2014 05:22 pm Petr Pudlak

Add a function for listing online nodes to Haskell

.. and also simplify 'getMasterCandidates'.

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

b6eee126 03/07/2014 05:22 pm Petr Pudlak

Add the RPC call for uploading a file to Haskell

.. and also add a function that prepares the call from a given file.

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

2f254850 03/07/2014 05:22 pm Petr Pudlak

Functions for conversions between POSIX time and ClockTime

This will be needed by the RPC calls to convert Haskell native
representation to the one used in RPC.

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

129bde01 03/07/2014 05:22 pm Petr Pudlak

Add reverse mappings to RuntimeEnts from UIDs to names

.. and GIDs to names. Also create a proper data type for it.

The reverse mapping to names is needed for properly translating local
IDs to names for RPC calls.

Use 'ResultT' for 'getEnts' and handle all exceptions, not just when a...

b3590640 03/07/2014 05:22 pm Petr Pudlak

Add a new RPC server call for uploading a single file

The server side processes the request exactly the same as for
"upload_file".

Unlike "upload_file", the new call "upload_file_single" declares all
required fields without requiring additional preprocessing....

127266b4 03/07/2014 05:22 pm Petr Pudlak

Add more meaningful error messages to asserts in vcluster

.. to simplify debugging of RPC calls.

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

d6f05205 03/07/2014 05:22 pm Petr Pudlak

Create a data type for representing RPC compressed data

It is serialized as a JSON pair. The first element is a number
describing the compression type, the second element the actual data
(in this case Base64+Zlib encoded).

On the Python side it is decompressed by backend._Decompress....

8c337f87 03/07/2014 05:22 pm Petr Pudlak

Add a module for handling compression

Since the Haskell 'zlib' library by default uses exceptions for
signalling errors, we need to use its internals to implement a proper,
pure decompressing function.

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

8e527d04 03/07/2014 05:22 pm Petr Pudlak

Enhance logRpcResults to also return the list of errors

It is common to log all RPC errors and then check if there were any.
Since 'logRpcResults' needs to filter the errors anyway, let it return
it.

Factor out the part that filters out errors into a separate function....

e45eeb79 03/07/2014 05:22 pm Petr Pudlak

Use lenses for modifying DaemonState in WConfd

This removes the verbose code for record updating and leads to more
point-free code.

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

0d1d2d22 03/07/2014 05:22 pm Petr Pudlak

Write the configuration only if it changed

.. to avoid expensive operation when they're not actually needed.
Comparing the two objects in memory is much less costly that
distributing the configuration.

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

227c0ef3 03/07/2014 05:22 pm Petr Pudlak

Add a module for generated lenses for Ganeti.Objects

The module also adds type classes for lenses for common fields (serial,
mTime, uuid and tags).

Splitting the lenses into a separate module avoids problems with unused
functions.

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

ba40281b 03/07/2014 05:22 pm Petr Pudlak

Add a module for custom generic Lens functions

The module currently re-exports Control.Lens and adds a function that
creates lenses from data types by appending 'L' to its field names.

All Ganeti modules should import this module instead of Control.Lens...

eb9d2acc 03/07/2014 05:22 pm Petr Pudlak

Add 'lens' Haskell dependency

.. that will be used in WConfd

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

6696f1f9 03/07/2014 05:22 pm Petr Pudlak

Add a helper for creating 'FileMode' fields

.. which will be used for RPC objects.

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

72375ff8 03/07/2014 05:22 pm Petr Pudlak

Move helpers for specific fields into a separate module

These helpers aren't needed by other code in Ganeti.THH and since the
module is already large, it'll be better to separate them into their
own.

No functionality is changed by this patch, just functions moved....

1e0d1a19 03/07/2014 05:22 pm Petr Pudlak

Add a helper to ConfigWriter for creating async. workers

In particular, stateful workers that can fail with an error, in which
case the error is logged and the state remains unchanged.

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

9faf1c01 03/07/2014 05:22 pm Petr Pudlak

Add Foldable/Traversable instances for GenericContainer

This makes working with it easier as it allows use of many standard
functions.

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

6177890b 03/07/2014 05:15 pm Michele Tartara

Improve RAPI detection of the watcher

If the watcher is not allowed to access RAPI, it doesn't mean that it is dead
and needs to be restarted.

Fixes Issue 752.

Signed-off-by: Michele Tartara <>
Reviewed-by: Hrvoje Ribicic <>

342b888d 03/07/2014 04:02 pm Klaus Aehlig

Update style guide with respect to Haskell imports

With the number of imports increasing, our style has
evolved over time.

- We don't distinguish between standard and non-standard
non-Ganeti libraries any more.

- To help the reader identify which library a function is...

9558c2a4 03/07/2014 02:16 pm Hrvoje Ribicic

Clean up RunWithLocks

This patch cleans RunWithLocks up a little bit by reducing the number
of delay function terminations, and using the QAThread class to ensure
exceptions are thrown at the right time and in the right place.

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

e677d5e8 03/07/2014 02:16 pm Hrvoje Ribicic

Add an exception-trapping thread class

To have better control over threads, this patch adds a helper Thread
subclass which captures any exceptions occurring for later use.

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

fbab1c76 03/07/2014 02:16 pm Hrvoje Ribicic

Wait for delay to provide interruption information

The RunWithLocks test assumed that gnt-debug delay would have the info
needed for interruption ready immediately after being run, and in some
situations this is not the case. This patch makes the test more patient...

b7630577 03/07/2014 01:59 pm Petr Pudlak

Add patching QA configuration files on buildbots

In order to work, it is necessary:
  • Write a JSON Patch to file "qa/qa-patch.json" in a source repository.
    (And be careful not to commit it!) The file must conform to RFC6902
    and describes what changes should be done to the QA JSON...
874f6148 03/07/2014 12:08 pm Michele Tartara

Enable a timeout for instance shutdown

Add the timeout parameter to the StopInstance function of the hypervisor base
class and to all its implementations.

Also, change the tests as required by this change.

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

2a2d087a 03/07/2014 12:08 pm Michele Tartara

Allow KVM commands to have a timeout

Modify the function that sends commands to the KVM monitor so that it is
possible to specify an optional timeout after which the command is killed.

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

7066724d 03/07/2014 12:07 pm Michele Tartara

Allow xen commands to have a timeout

Modify the function that runs Xen commands so that it is possible to specify an
optional timeout after which the command is killed.

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

76e2e6f6 03/07/2014 12:07 pm Michele Tartara

Fix wrong docstring

Fields must be the final elements in an epytext string.

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

f3010b75 03/07/2014 10:57 am Klaus Aehlig

Also clean up stale livelock files

Upon detection of a stale livelock, make WConfD also
try to clean it up. We can safely ignore any failures,
as the Ganeti resources are already freed, and the worst
thing that can happen is an empty file left over in the...

01e7bf98 03/07/2014 09:35 am Petr Pudlak

Add Haskell dependency on 'lens'

.. which will be needed soon for WConfd.

While at it, also ensure we have the required version of
base64-bytestring.

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

885759da 03/07/2014 09:35 am Petr Pudlak

Refactor warnings issued by the latest 'hlint'

.. as the newest version of hlint adds additional checks

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

33ead7a7 03/07/2014 09:35 am Petr Pudlak

devel: Instal vanilla GHC7 in the squeeze schroot

Since the default GHC6 isn't usable for modern libraries and starting
from wheezy there is GHC7 anyway, download and install the current
vanilla version as well as the latest Cabal.

Use the current up-to-date libraries....

58bcf276 03/07/2014 09:35 am Petr Pudlak

devel: Make the built schroots rsync-able, if available

This speeds down transferring them to buildbots, at a negligible size
cost.

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

8a37b426 03/06/2014 05:35 pm Klaus Aehlig

Use correct lockfile for gnt-debug wconfd

As jobs are currently running in masterd, use the masterd livelock
file.

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

a0a92e23 03/06/2014 05:35 pm Klaus Aehlig

Add utility to guess livelock file for an owner

As livelock files are constructed in a systematic manner,
we can guess what the livelock file for a given owner is.
While this will not necessarily work perfectly, it will be
useful to simplify direct debugging of WConfD....

25e9f9b2 03/06/2014 05:35 pm Klaus Aehlig

Make masterd create a livelock file

...so that it can request resources from WConfd.

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

1de2b387 03/06/2014 05:35 pm Klaus Aehlig

Rename setup_queue to setup_context in masterd

...as this function sets up a much richer context than just
the job queue, including the current lock management.

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

a8c2197d 03/06/2014 05:35 pm Klaus Aehlig

Add utilities for liveliness lock files

To request resources from WConfD, requesters have to provide
the name of a file they own an exclusive lock on. In this way,
their death can be detected. Add utility functions to obtain
such a file name.

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

5d83892f 03/06/2014 05:35 pm Klaus Aehlig

Ensure the existence of LIVELOCK_DIR

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

38e28375 03/06/2014 05:35 pm Klaus Aehlig

Add a path to store the lock files presented to WConfD

When requesting resources from WConfD, a file has to be
presented where an exclusive lock is owned on, so that
WConfD can detect when the requester dies. Add a path
to a directory where these files are kept in....

db0d2ee9 03/06/2014 05:35 pm Klaus Aehlig

In WConfD run a cleanup task

Add the cleanup task for locks of died owners to WConfD,
as a separate thread.

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

b57c50de 03/06/2014 05:35 pm Klaus Aehlig

Provide a periodic lock cleanup task

Provide a task that periodically checks for all locks
owners whether they are still alive. If not, it cleans
up their locks.

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

a15072d7 03/06/2014 05:35 pm Klaus Aehlig

Add a constant for the polling of jobs death

Add a constant for the time interval at which WConfD checks for
resource owners that have died and cleans up their resources.

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

01a9a382 03/06/2014 05:35 pm Klaus Aehlig

Verify that all lock owners indeed own a lock

Add a test verifying that the list of lock owners is not
too big in the sense that every subject contained in that
list owns at least one lock.

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

27f28739 03/06/2014 05:35 pm Klaus Aehlig

Verify the list of lock owners is complete

In other words, verify that if all the lock owners release their
locks, the empty lock allocation is reached.

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

26436ab5 03/06/2014 05:35 pm Klaus Aehlig

Add a function to determine the lock owners

To allow for clean up, add a function that provides the list
of all the owners holding at least one lock.

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

bacb44fe 03/06/2014 05:35 pm Klaus Aehlig

Add a function to detect death of a job

With jobs running in processes different from the lock management soon,
we need to detect if a job holding locks dies, in order to release the
resources.

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

0f6997b9 03/05/2014 02:17 pm Klaus Aehlig

Merge branch 'stable-2.11' into master

  • stable-2.11
    Convert int to float when checking config. consistency
    Updateing release date to tomorrow
    Revision bump for the 2.11.0~beta1 release
    Set release date of 2.11 beta1
    Stop watcher from restarting down instances during an opcode...
f1638b0b 03/05/2014 01:51 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...

a6986cfb 03/05/2014 11:21 am Hrvoje Ribicic

Update the NEWS file

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

57efdaf5 03/05/2014 11:21 am Hrvoje Ribicic

Add an expected block option to RunWithLocks

To compensate for the cases where a QA test is supposed to block when
a lock is present, add an additional option showing whether blocking is
supposed to happen or not.

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

34c5ec6c 03/05/2014 11:21 am Hrvoje Ribicic

Track if a QA test was blocked by locks

This patch adds threading to the RunWithTests function, allowing one
thread to execute the QA test, and the other to monitor if it is being
blocked by locks set up during the test. If it is, terminate the
blocking job, and let the QA continue, reporting the test failure at...

ffafdcf6 03/05/2014 11:21 am Hrvoje Ribicic

Add option to turn off command logging to GetCommandOutput

The command logging performed by GetCommandOutput can be distracting
and unwelcome. This patch adds a switch allowing the command output to
be muted as needed.

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

1de1cd0c 03/05/2014 11:21 am Hrvoje Ribicic

Add an option for disabling the SSH multiplexer in QA

The SSH multiplexer is used by default in every connection made, and
when multiple threads are used, this causes strange issues when running
the QA locally. This patch allows the multiplexer to be bypassed,...

343c9ed2 03/05/2014 11:21 am Hrvoje Ribicic

Add a RunWithLocks QA utility function

This patch adds a QA utility function that acquires a set of locks, and
attempts to run a given function with the locks in place. Should the
given function block, this function does not detect this - later
patches will address the issue....

6b924ca3 03/05/2014 11:21 am Hrvoje Ribicic

Sort imports in qa_rapi.py

This patch sorts the imports of qa_rapi.py to make things a little bit
more orderly.

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

fe5144b0 03/05/2014 11:21 am Hrvoje Ribicic

Align timestamps in gnt-job info

This patch aligns the timestamps output as a part of gnt-job info, and
performs minor refactorings in the process.

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

d0202de7 03/05/2014 11:21 am Hrvoje Ribicic

Add alignment support to PrintGenericInfo

Aligning dictionary entries makes no difference to a YAML parser, but
makes the output much easier to read and compare. This patch adds the
possibility of specifying alignment groups to ordered dictionary
entries....

087f5520 03/05/2014 11:21 am Hrvoje Ribicic

Make gnt-job info output valid YAML

This patch changes gnt-job info to use standard functions defined in
cli.py, and output valid YAML.

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

9ec1bcbd 03/05/2014 11:21 am Hrvoje Ribicic

Make PrintGenericInfo handle tuples better

The PrintGenericInfo function in cli.py did not handle tuples as
containers of items, making it impossible for these to be deserialized
automatically when a YAML parser is used. This patch adds separate
handling of tuples, including inlining them for readability when...

5fb7679c 03/05/2014 11:21 am Hrvoje Ribicic

Refactor move-instance QA test

The move-instance QA test will have to be changed in the following
patches to allow testing opportunistic locking.

This patch retains the same functionality as before, but allows an
iallocator to be used, and splits the move back and forth into two...