Statistics
| Branch: | Tag: | Revision:

root @ d36e433d

# Date Author Comment
d36e433d 02/14/2014 11:47 am Petr Pudlak

Let RPC clients handle their socket address

.. instead of AbstractClient itself. Also let every client call
_InitTransport() as needed. This allows to determine socket addresses
later than during the initialization of a class.

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

59881a0b 02/14/2014 11:47 am Petr Pudlak

Add the WConfD daemon itself

The daemon exposes the declared functions in Ganeti.WConfd.Core to RPC
clients (currently just 'echo').

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

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

Add the WConfD daemon to build configuration files

Also list it in the Haskell datatype, constants, Python constants and
test configuration.

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

13f59e11 02/14/2014 11:47 am Petr Pudlak

Add a module for WConfd core functions

There are no exported functions yet, except for `echo`, which just
returns its argument back to a client.

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

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

Add a MonadLog instance for strict variant of RWS

This allows to log in monad stacks containing RWS.

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

9515a7d2 02/14/2014 11:46 am Petr Pudlak

Add a monad for running all WConfD functions

This monad encapsulates working with the daemon and client state, as
well as failures and IO operations.

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

a85aef5c 02/14/2014 11:46 am Petr Pudlak

Add a generic RPC module

The main function in this module takes a list of names of functions and
uses TH to create an RPC server, represented as a value of type Handler
(from Ganeti.UDSServer). This can be readily used to create a daemon
that dispatches RPC requests to the given functions....

63571096 02/14/2014 11:46 am Petr Pudlak

Add tests for Ganeti.THH.Types

In particular, test (de)serialization of "OneTuple".

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

1263a102 02/14/2014 11:46 am Petr Pudlak

Add a helper test method for checking deserialization

It tests if a deserialization method fails properly when an invalid
input is given.

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

f3a522ff 02/14/2014 11:46 am Petr Pudlak

Add common functions for working with TH's Type

In particular, functions for extracting types of arguments from a
function type, and for uncurrying functions with an arbitrary number of
arguments.

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

f20038fd 02/14/2014 11:46 am Petr Pudlak

Another workaround for GHC linking error "unknown symbol"

This error appears after adding the dependency to lifted-base.
See also #683 and ee7caf27.

I surmise that something like this is happening: Some code, that uses
the library, is only referenced through Template Haskell. A probable bug...

d5868411 02/14/2014 11:46 am Petr Pudlak

Add instances of MonadBase and MonadControl for ResultT

This allows to use lifted operations like 'fork' or 'bracket' inside
ResultT.

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

b172b0ab 02/14/2014 11:46 am Petr Pudlak

Allow clients of UDSServer to use different monads

.. as long as they're instances of "MonadBaseControl IO" and "MonadLog".
This allows the UDSServer to call functions like "fork" within monads
such as "ResultT e IO" or "ReaderT IO".

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

e1b9b5c6 02/14/2014 11:46 am Petr Pudlak

Add lifted-base to the list of requirements

This includes NEWS and INSTALL

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

fb1a5271 02/14/2014 11:46 am Petr Pudlak

Add dependencies for lifted-base to build_chroot

.. for both Debian distribution. Also check that the library is present
during the configuration step.

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

4b75f8a4 02/13/2014 02:40 pm Jose A. Lopes

Rename some functions not to collide with opcode names

Rename some functions related to instance communication not to collide
with the naming convention used in the opcodes.

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

2ff6426b 02/13/2014 02:34 pm Jose A. Lopes

Refactor instance communication network add and connect

Factor out the opcodes 'OpNetworkAdd' and 'OpNetworkConnect' used in
'LUClusterSetParams' and 'LUGroupAdd' in order to reduce code
duplication and keep the configuration of the instance communication...

f985ecbd 02/13/2014 02:34 pm Jose A. Lopes

Instance communication mechanism QA (for cluster only)

Extend QA with tests for the instance communication mechanism. These
tests cover only the cluster creating the instance communication
network and connecting it to the existing node group, and also if new...

39e27230 02/13/2014 02:34 pm Jose A. Lopes

Connect new groups to the instance communication network

When a new group is added, if the instance communication network is
enabled, then this group must also be connected to this network.

  • 'LUGroupAdd._AddInstanceCommunicationNetwork' connects the newly...
0fcb3314 02/13/2014 02:34 pm Jose A. Lopes

'gnt-cluster modify' with '--instance-communication-network'

Extend CLI 'gnt-cluster modify' with
'--instance-communication-network'. Given that the return type for
'OpClusterSetParams' changed to optionally return a list of jobs, it
is also necessary to handle the result of this opcode accordingly....

d6a7518a 02/13/2014 02:33 pm Jose A. Lopes

'LUClusterSetParams' creates the instance communication net

Extend 'LUClusterSetParams' to create the user-supplied instance
communication network in case this network does not exist. Note that
if the user-supplied network already exists, nothing needs to be done...

11eeb1b9 02/13/2014 02:33 pm Jose A. Lopes

Check prereq instance communication network in 'SetParams'

Later, the logical unit for 'OpClusterSetParams' will be responsible
for creating the instance communication network in case it does not
exist. For now, it is important to check whether the network the user...

42fda604 02/13/2014 02:33 pm Jose A. Lopes

Add 'instance_communication_network' to 'OpClusterSetParams'

... and update the unit tests.

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

fcafd191 02/13/2014 02:33 pm Jose A. Lopes

Add helper to handle CLIs that optionally spawn several jobs

This helper function detects whether an opcode returned a list of jobs
(i.e., a result of the type ht.TJobIdListOnly) and in this case it
uses 'ganeti.cli.JobExecutor' to wait for the jobs and determine the...

9a94cee3 02/13/2014 02:33 pm Jose A. Lopes

Instance comm network from config instead of predefined

  • Add 'ganeti.objects.Cluster.instance_communication_network' to the
    config so the logical unit for 'OpInstanceCreate' can access the
    instance communication network which is stored in the cluster...
8a5d326f 02/13/2014 02:33 pm Jose A. Lopes

Add 'instance_communication_parameter' to 'Cluster'

  • Add parameter 'instance_communication_parameter' to the Python
    'ganeti.objects.Cluster' and the Haskell 'Ganeti.Objects.Cluster'.
  • Update Haskell 'QueryClusterInfo' to return also the
    'instance_communication_network' parameter....
a987c040 02/13/2014 02:33 pm Jose A. Lopes

Fix indentation

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

a21440d8 02/13/2014 11:25 am Helga Velroyen

Correct test for existance of instances

Since python interprets an empty dictionary as 'False',
testing for the existance of the 'instances' field in
the configuration has to be done by explicitely testing
for 'None'.

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

514dcbda 02/12/2014 07:58 pm Klaus Aehlig

Correct number of empty lines

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

65b526e7 02/12/2014 07:20 pm Klaus Aehlig

Remove osparams_private when downgrading the configuration

The instance parameter "osparams_private" was newly introduced
in 2.12. So remove it when downgrading the configuration to 2.11.

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

4f7cc3c2 02/12/2014 07:20 pm Klaus Aehlig

Remove osparams_private_cluster on config downgrade

The new cluster parameter "osparams_private_cluster" was
newly introduced in 2.12. So remove it when downgrading
to 2.11.

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

bcb1ab78 02/12/2014 05:54 pm Petr Pudlak

Merge branch 'stable-2.11' into master

  • stable-2.11
    Update the list dependencies in INSTALL
    Make luxid's Haskell dependencies mandatory
    Fix start/stop scripts to run luxid unconditionally
    Remove the HTOOLS configuration variable
    Add a config. conditional for running Haskell coverage...
f4445f53 02/12/2014 05:27 pm Petr Pudlak

Make htools and luxid mandatory in the Makefile

Since Ganeti now uses luxid for core operations, it needs to be always
present.

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

eb84bb80 02/12/2014 05:27 pm Petr Pudlak

Add a config. conditional for running Haskell coverage

Similarly to PY_UNIT, add HS_UNIT to run Haskell coverage only if we
have the required modules.

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

0cd5ab45 02/12/2014 05:27 pm Petr Pudlak

Remove the HTOOLS configuration variable

.. and update the code that uses it.

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

6b06efa7 02/12/2014 05:27 pm Petr Pudlak

Fix start/stop scripts to run luxid unconditionally

and update the unit check the list of daemons.

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

636e66d1 02/12/2014 05:27 pm Petr Pudlak

Make luxid's Haskell dependencies mandatory

in the build configuration files.

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

5a5a64c6 02/12/2014 05:27 pm Petr Pudlak

Update the list dependencies in INSTALL

In particular, move luxid's dependencies to the section with mandatory
dependencies.

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

89671df1 02/12/2014 05:15 pm Helga Velroyen

Temporarily remove SSL changes from NEWS file

Since the current changes in the SSL handling have
been partially disabled, remove their announcement
in the NEWS file until there is something actually
user-facing happening.

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

fd34efbb 02/12/2014 12:48 pm Petr Pudlak

Fix bracket style in rapi-workload

Pep8 complained about bracket indentation. This fixes it to satisfy Pep8
as well as our style guide.

Signed-off-by: Petr Pudlak <>
Reviewed-by: Hrvoje Ribicic <>
(cherry-picked from ccded668c8a93fa25aaf21ddf5105270a04fe517)...

8d2ca7d1 02/12/2014 11:46 am Klaus Aehlig

git-ignore automatically generated file tools/kvm-ifup-os

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

f65784ac 02/11/2014 06:43 pm Klaus Aehlig

Merge branch 'stable-2.11' into master

  • stable-2.11
    Gracefully handle queries for non-existing nodes
    Consider job-IDs queried for twice only once

Conflicts:
lib/client/gnt_node.py: trivial
src/Ganeti/Query/Query.hs: import ALL the functions

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

929efcc3 02/11/2014 06:05 pm Klaus Aehlig

Gracefully handle queries for non-existing nodes

When adding a node, Ganeti checks whether the node is already
part of the cluster by querying for the node name. However,
as queries are meant to return all nodes with the given name,
it might well return the empty list when a new node is to be...

fb8d8645 02/11/2014 05:29 pm Klaus Aehlig

Consider job-IDs queried for twice only once

As reading jobs from disk is an expensive operation, when querying
for jobs, we optimize by considering which values the job-id is asked
for in the filter. As any reasonable person would not add the same
clause twice in an Or-clause, the implicit assumption was that the...

d759a02b 02/10/2014 06:38 pm Klaus Aehlig

Merge branch 'stable-2.11' into master

  • stable-2.11
    (no changes)
  • stable-2.10
    Fix 'JobIdListOnly' type from 'List' to 'Map'
    Remove NEWS entry for 2.9.4
    Workaround for monitor bug related to greeting msg
    hotplug: Verify if a command succeeded or not...
adcccd43 02/10/2014 06:24 pm Klaus Aehlig

Merge branch 'stable-2.10' into stable-2.11

  • stable-2.10
    Fix 'JobIdListOnly' type from 'List' to 'Map'
    Remove NEWS entry for 2.9.4
    Workaround for monitor bug related to greeting msg
    hotplug: Verify if a command succeeded or not
    hotplug: Call each qemu commmand with an own socat...
a28216b0 02/10/2014 06:18 pm Klaus Aehlig

Fix default for luxi clients in python

As masterd is going away, set default for all clients to
luxid's socket.

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

673425b8 02/10/2014 04:42 pm Klaus Aehlig

Merge branch 'stable-2.9' into stable-2.10

  • stable-2.9
    Revision bump for 2.9.4
    Set release date for 2.9.4
    Note UUID identification change in NEWS file
    Allow classic queries to use either names or UUIDs
    Document the change of noded's group in NEWS...
28de1c3c 02/10/2014 03:31 pm Jose A. Lopes

Fix 'devel/check_copyright' remote branch detection

... but do not try to check the copyrights for local branches which do
not have a proper remote branch, which would fail at a later step
anyway.

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

b57b1df4 02/10/2014 02:58 pm Klaus Aehlig

Revision bump for 2.9.4

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

82fca490 02/10/2014 02:58 pm Klaus Aehlig

Set release date for 2.9.4

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

a154caa4 02/10/2014 02:17 pm Klaus Aehlig

Remove query option from RAPI client

As all RAPI requests now go to luxid, and masterd is going away,
remove option from RAPI client to chose a different socket.

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

7f28a87a 02/10/2014 02:17 pm Klaus Aehlig

Remove query option from GetClient

As all luxi clients talk to luxid now, and masterd will
go away, remove the option to use socket different from
luxid's.

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

2af8b9c9 02/10/2014 02:17 pm Klaus Aehlig

Remove explicit reference to the query socket

Now that luxid's socket is the default socket anyway, do not
pass the "query=True" parameter to GetClient. This will allow
to get rid of this keyword argument, as masterd will go away.

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

39bdcf76 02/10/2014 02:17 pm Klaus Aehlig

Make watcher use luxid socket only

With luxid being feature-complete with respect to masterd,
make the watcher use its socket exclusively. This is also
necessary, as masterd will go away soon.

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

b6e31235 02/10/2014 12:44 pm Jose A. Lopes

Fix 'JobIdListOnly' type from 'List' to 'Map'

  • This patch fixes a type discrepancy between the Haskell type
    'Ganeti.OpCodes.JobIdListOnly' and the Python type predicate
    'ganeti.ht.TJobIdListOnly', the former being a list and the latter a
    dictionary....
d027b72b 02/10/2014 11:24 am Jose A. Lopes

Fix instance create and import parameters

Move OS parameter related constants to 'ganeti.cli' so they are used
both by instance create and instance import from the CLI.

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

31d3b918 02/10/2014 11:24 am Santi Raffa

Fix compatibility issues

  • Fix GenericInstanceCreate
  • Fix pylint disable annotation
  • Change some assert methods to assertTrue()

Signed-off-by: Santi Raffa <>
Reviewed-by: Jose A. Lopes <>

fcc27323 02/07/2014 05:40 pm Jose A. Lopes

Fix 'UserDown' QA

Increase instance shutdown timeout and make call 'pkill' more
reliable, which should fix the KVM QA.

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

1b84e2d7 02/07/2014 03:42 pm Hrvoje Ribicic

Note UUID identification change in NEWS file

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

13ef1fa5 02/07/2014 03:42 pm Hrvoje Ribicic

Allow classic queries to use either names or UUIDs

When UUIDs are used in CLI commands, such addressing of objects fails
or succeeds inconsistently across object types. Worse yet, some calls
do not fail, but simply return no result. This is due to the way the...

3062d395 02/07/2014 11:15 am Santi Raffa

luxid: give stern warnings about debug mode

Luxid as it is can leak private and secret parameters by logging
all requests as they arrive, before any preprocessing is done.

Warn the user stern warnings about this.

Signed-off-by: Santi Raffa <>...

285ece5b 02/07/2014 11:15 am Santi Raffa

SimpleFillOS: add unit tests for OS parameter merging

Adds tests to ensure OS parameters are dealt with consistently.

Signed-off-by: Santi Raffa <>
Reviewed-by: Jose A. Lopes <>

483e3012 02/07/2014 11:15 am Santi Raffa

NEWS: update with public and private parameters

Also warn about debug mode.

Signed-off-by: Santi Raffa <>
Reviewed-by: Jose A. Lopes <>

da0aa302 02/07/2014 11:15 am Santi Raffa

OpCodes: modify InstanceReinstall for private, secret params

Modify InstanceReinstall to accept and process private and secret
parameters.

Signed-off-by: Santi Raffa <>
Reviewed-by: Jose A. Lopes <>

6bce7ba2 02/07/2014 11:14 am Santi Raffa

OpCodes: modify InstanceCreate for private, secret params

Modify InstanceCreate to accept process private and secret parameters.

Signed-off-by: Santi Raffa <>
Reviewed-by: Jose A. Lopes <>

07e3c124 02/07/2014 11:14 am Santi Raffa

OpCodes: modify ClusterSetParams for private parameters

Modify ClusterSetParams to accept and process private parameters.

Signed-off-by: Santi Raffa <>
Reviewed-by: Jose A. Lopes <>

a0eeb01a 02/07/2014 11:14 am Santi Raffa

CLI: add parameters for private and secret OS parameters

Define the CLI parameters for private and OS parameters.

Signed-off-by: Santi Raffa <>
Reviewed-by: Jose A. Lopes <>

1a182390 02/07/2014 11:14 am Santi Raffa

OpCodes: modify InstanceSetParams for private parameters

Modify InstanceSetParams to accept and process private parameters.

Signed-off-by: Santi Raffa <>
Reviewed-by: Jose A. Lopes <>

a5efec93 02/07/2014 11:14 am Santi Raffa

Add private OS parameters to cluster and instance conf

This updates objects, constructors and mocks for Instance and Cluster
objects in Python and Haskell.

Signed-off-by: Santi Raffa <>
Reviewed-by: Jose A. Lopes <>

92389be9 02/07/2014 11:13 am Santi Raffa

algo: add GetRepeatedKeys

We do not want public, private and secret parameters to have
overlapping keys. This function implements this check.

Signed-off-by: Santi Raffa <>
Reviewed-by: Jose A. Lopes <>

4884f187 02/07/2014 11:13 am Santi Raffa

Add Private types to Python, Haskell

This commit adds the private containers to Python and Haskell.

Signed-off-by: Santi Raffa <>
Reviewed-by: Jose A. Lopes <>

560ef132 02/07/2014 11:13 am Santi Raffa

serializer: emit and encode Private values

For inbound data the simplest, safest thing to do is to traverse all
JSON right after encoding and search for private parameters by key.

This ensures that all consumers of this data get Private values
transparently and consistently; the serializing methods don't have to...

9d929656 02/07/2014 11:13 am Santi Raffa

OpCodes test: fix argument order (expected/but got)

Fix expected/but got value in some unit tests.

Signed-off-by: Santi Raffa <>
Reviewed-by: Jose A. Lopes <>

d4102e0c 02/07/2014 11:10 am Santi Raffa

RPCs: add docstrings for instance_os_add

This RPC's instance_osp input has a non-obvious, non documented
type. This patch adds documentation to this RPC.

Signed-off-by: Santi Raffa <>
Reviewed-by: Jose A. Lopes <>

9269d118 02/07/2014 10:20 am Klaus Aehlig

design: simplify how luxid determins job termination

With the job files, we already have designated files per job. So
there is no need to additionally signal through a socket regular
job termination. This design also has the advantage that it is
already implemented and working in current luxid....

0ee0bc74 02/06/2014 05:14 pm Klaus Aehlig

Switch to luxid for RAPI

...now that luxid knows of all RAPI requests.

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

88772d17 02/06/2014 05:14 pm Klaus Aehlig

Remove wildcard luxi operation matching in luxid

In that way, we explicitly name the operations that are not
handled by luxid and explain the reason. In particular, we
can be sure that newly added luxid operations won't be forgotten
in luxid.

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

0349f9c6 02/06/2014 05:14 pm Klaus Aehlig

Implement QueryExports in luxid

...by handling as a classical query, using that queries for
export are already implemented. Note that QueryExport is slightly
different from other Query* Luxi requests, in that the fields are
not passed with the request, but have a fixed value....

90f089c2 02/06/2014 03:34 pm Jose A. Lopes

Add instance communication CLI flags to the man page

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

dc1fe8df 02/06/2014 03:34 pm Jose A. Lopes

Add 'kvm-ifup-os' to configure instance communication TAP

The script 'tools/kvm-ifup-os' configures TAP network interfaces for
for instances, routing, DHCP server, etc. Note that this script only
configures TAP network interfaces that are used by the instance...

015f1517 02/06/2014 03:34 pm Jose A. Lopes

Add CLI and OpCode instance communication option

  • Add command-line interface flag to enable instance communication
  • Add instance communication parameter to the opcode that creates an instance

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

81c222af 02/06/2014 03:34 pm Jose A. Lopes

Add extra NIC to instance being created for communication

When an instance is being created, add an extra NIC (if necessary)
which is meant to be used by the instance communication.

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

81c717cd 02/06/2014 03:34 pm Jose A. Lopes

Generate TAP names ('gnt.com.%d') for instance comm NICs

  • Add helper function that generates names of the form 'gnt.com.%d'
    which are the names for the TAP interfaces meant to be used by
    instance communication. These names are unique within the node....
89473be8 02/06/2014 03:34 pm Jose A. Lopes

Add TAP interface name as argument in '_OpenTap'

This is necessary in order to create TAP interfaces for the
communication mechanism, which are named 'gnt.com.%d', where '%d' is a
unique number within a given node.

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

3af1359f 02/06/2014 03:34 pm Jose A. Lopes

Add metadata daemon

... including, user, group, daemonizing code with command line
options, integration with the Snap HTTP server, and logic.

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

b0159850 02/06/2014 02:57 pm Petr Pudlak

Update the steps for implementing WConfD in the daemons doc

After Step 1 WConfD will handle the access to the configuration
and will allow job-as-processes to access it.

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

2de55c83 02/06/2014 02:57 pm Petr Pudlak

Add job death detection to the daemons refactoring doc

Describe how to use file lock to implement it in a POSIX compliant way.

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

4de4b66c 02/06/2014 02:27 pm Petr Pudlak

Let Haddock also generate Hoogle documentation

The Hoogle database is generated to doc/api/hs/ganeti.txt when Haddock
is run. The database can be used by developers with a locally installed
Hoogle command line tool or for a web installation of Hoogle.

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

a2dbdd82 02/06/2014 02:16 pm Klaus Aehlig

Merge branch 'stable-2.11' into master

  • stable-2.11
    Implement ChangeJobPriority in luxid
    Provide a function to change the priority of a queued job
    When enqueuing new jobs, respect job ID
    Change return type of internal rmJob
    Add a function to change the priority of a job...
adf082f3 02/06/2014 01:58 pm Thomas Thrainer

Remove NEWS entry for 2.9.4

Remove the NEWS entry for 2.9.4 temporarily until it actually gets
released. Otherwise check-news would complain about the unreleased
version below released ones.

The NEWS entry will be added back once 2.9.4 is released and the...

c02b8f91 02/06/2014 12:50 pm Klaus Aehlig

Document the change of noded's group in NEWS

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

ddd667f7 02/06/2014 12:45 pm Thomas Thrainer

Merge branch 'stable-2.9' into stable-2.10

  • stable-2.9
    Make the LUInstanceCreate return node names, not UUIDs
    Document new handling of degraded instances in NEWS
    Gracefully handle degraded instances in verification
    Be aware of the degraded case when cleaning up an instance...
155df343 02/06/2014 12:43 pm Klaus Aehlig

Change return type of internal rmJob

...to also provide the job itself. In this way, the function can
also be used for tasks that require temporarily removing a job
from the queue.

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

f7743189 02/06/2014 12:43 pm Klaus Aehlig

When enqueuing new jobs, respect job ID

When adding new jobs, don't add them at the end, but at a
position that fits with their job id. In this way, we can
build operations that require fully dequeing a job an adding
it later after some modifications.

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

96d55b50 02/06/2014 12:43 pm Klaus Aehlig

Provide a function to change the priority of a queued job

There is a separation of responsibilities here. For jobs still
in the queue, it is the responsibility of the queue (scheduler),
for started jobs, the job itself has to take care of it. To avoid
the job transitioning inbetween, it is temporarily dequeued during...

7711f32b 02/06/2014 12:43 pm Klaus Aehlig

Implement ChangeJobPriority in luxid

For jobs still queued, we ask the queue to change the priority,
and replicate the changed job. For jobs that have already been
started, we have to contact the job directly, which, at the moment,
means forwarding the request to masterd....

a7ab381a 02/06/2014 12:43 pm Klaus Aehlig

Add a function changing the priority of an opcode

This pure function follows the semantic that an opcode, including
its priority, may only be changed if the opcode is not finalized.

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

a6b33b72 02/06/2014 12:43 pm Klaus Aehlig

Add a function to change the priority of a job

...by changing the priority of the non-finished opcodes.

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

27a5367a 02/06/2014 12:43 pm Petr Pudlak

Add functions for manipulating errors in Result(T)

There is often need to manipulate these errors, for example to convert a String
from Result into an exception. These functions make this easier.

Function 'toErrorStr' lifts 'Result' to any 'MonadError'. This is useful...