Statistics
| Branch: | Tag: | Revision:

root / src @ 2a58a7b1

# Date Author Comment
2a58a7b1 12/18/2013 03:49 pm Klaus Aehlig

hsqueeze: only consider nodes that are not secondaries

If an instance has a secondary node, it cannot be easily
moved to every node (in the same node group), as otherwise
no node would be distinguished as secondary. As hsqueeze
should only consider nodes were moving the instances away...

5a904197 12/17/2013 06:12 pm Santi Raffa

Gluster: add the Shared File storage type

The shared file and gluster disk templates should not report their disk
space information like file does, because they do not behave the same.

If a cluster pulls from the same, shared source of storage then it is...

6488e5bc 12/17/2013 06:12 pm Santi Raffa

Gluster: add userspace access support

Add support for the QEMU gluster: protocol. Also change the access
mode routines so they check the access parameter for all templates.

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

845b7ed1 12/17/2013 06:12 pm Santi Raffa

Gluster: mount automatically

Add parameters to the Gluster disk template so Gluster can manage the
mount point point autonomously.

Signed-off-by: Santi Raffa <>
Signed-off-by: Thomas Thrainer <>
Reviewed-by: Thomas Thrainer <>

ac156ecd 12/17/2013 06:12 pm Santi Raffa

Gluster: use ssconf value for mountpoint directory

Gluster still does not mount anything autonomously, but this commit
changes where Gluster expects its mountpoint to be.

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

d3e6fd0e 12/17/2013 06:12 pm Santi Raffa

ssconf: Add Gluster mount directory

This commit adds the gluster storage directory to ssconf (without
actually using its value just yet).

Signed-off-by: Santi Raffa <>
Signed-off-by: Thomas Thrainer <>
Reviewed-by: Thomas Thrainer <>

8106dd64 12/17/2013 06:12 pm Santi Raffa

Gluster: minimal implementation

Add Gluster to Ganeti by essentially cloning the shared file behaviour
everywhere in the code base.

Signed-off-by: Santi Raffa <>
Signed-off-by: Thomas Thrainer <>
Reviewed-by: Thomas Thrainer <>

1138d32f 12/17/2013 10:34 am Klaus Aehlig

Implement fields query for instance

Support the query for the fields available for instances.

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

5c47a2a6 12/17/2013 10:34 am Klaus Aehlig

Remove the hvsGlobals from instance query fields

...to be consistent with the python implementation.

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

af67c5b1 12/17/2013 10:34 am Klaus Aehlig

When interpreting [] as "all fields", sort nicely

When asked for all fields, we promise to return the list of fields
sorted according to niceSort. Keep this promise.

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

f18aaff4 12/16/2013 05:45 pm Klaus Aehlig

Fix race in watchFile

As the calling of watchFile and the evaluation of the initial
getFStatSafe takes non-zero time, the file could have changed
before inotify was set up properly. Solve this problem by an
additional check for the watched value to have changed immediately...

6897a51e 12/13/2013 02:58 pm Petr Pudlak

Use a data type when generating Python types of OpCodes

Currently they are generated only as Strings.

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

0d78accc 12/13/2013 02:58 pm Petr Pudlak

Refactor OpCodeDescriptor from a tuple to a data type

This greatly enhances code readability.

Also fix monadic types "Q ExpQ" [which is "Q (Q Exp)"] to "Q Exp".

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

6c1a9fae 12/13/2013 02:58 pm Petr Pudlak

Add showValueList to PyValue for proper String instances

It's the same trick ShowS uses. We add a type class function for
showing a list to PyValue and then just use it in the instance for
`[a]`. This way we have the proper String instance without any
overlapping/incoherent instances....

b711450c 12/13/2013 02:58 pm Petr Pudlak

Rename PyValueInstances.hs to PyValue.hs

Now the file contains the type class declaration as well.

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

2886c58d 12/13/2013 02:58 pm Petr Pudlak

Move PyValue into PyValueInstances.hs, import it in THH.hs

This puts all PyValue code into one module, getting rid of orphan
instances.

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

d819aba6 12/13/2013 02:28 pm Klaus Aehlig

Make the duration field optional null-serialized

The time in SetWatcherPause is optional (with Nothing meaning
that the pause should be canceled), but the serialization is
not that of a Maybe Double; instead Just values serialize as
they are and Nothing serializes to null. Fortunately, we already...

be7531a9 12/13/2013 11:58 am Klaus Aehlig

Handle QueryConfigValues

Make luxid handle the QueryConfigValues call providing certain
simple status information about the cluster.

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

7f58ff5d 12/13/2013 11:58 am Klaus Aehlig

Add a predicate for watcher pause

Add a predicate, in IO, to test whether the watcher is
paused.

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

4b7863cb 12/13/2013 11:58 am Klaus Aehlig

Provide path to watcher pause file

Extend Path.hs to also provide the path to the file indicating
whether watcher is paused.

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

946f1fb3 12/13/2013 11:58 am Klaus Aehlig

Implement SetWatcherPause in luxid

Make luxid handle SetWatcherPause correctly.

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

5ce9cc30 12/13/2013 11:57 am Klaus Aehlig

Add the RPC-call set_watcher_pause

With luxid taking over responsibility for handling watcher-pause requests,
it needs to know about this RPC. So have it available in Haskell as well.

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

906df9f1 12/13/2013 11:57 am Klaus Aehlig

The time field for SetWatcherPause is optional

A JSON null value is used to indicate that the pause should be canceled.

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

557f5dad 12/13/2013 11:57 am Klaus Aehlig

Generate a separate return type for the job queue update RPC

The instantiation of RPC requires a bidirectional functional dependency
between call type and return type. Hence we cannot use Unit everywhere.

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

c7003a76 12/11/2013 01:32 pm Petr Pudlak

Move the generalized IO client from Luxi to UDSServer

No code is changed in this patch (except imports and qualifiers), only
moved.

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

d79a6502 12/11/2013 01:32 pm Petr Pudlak

Generalize the IO client handling in Luxi

... to be usable for WConfd as well. A daemon handler is encapsulated
into `Handler` data type, which is then passed to a generic `listener`.

The changes are done in Luxi.hs so that the differences are visible and...

43c329e7 12/11/2013 01:32 pm Petr Pudlak

Add MonadLog instance for `ReaderT r m`

This allows to use logging with the ReaderT monad transformer.

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

27f904f7 12/11/2013 01:32 pm Petr Pudlak

Add a MonadLog typeclass for monads that allow logging

This separates logging from IO, allowing to create unit tests in future
for functions that use it.

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

964a728f 12/11/2013 01:32 pm Petr Pudlak

Add fromJResultE and fromJVal that uses MonadError

Using MonadError is more correct than just "fail" on an arbitrary
monad, and more scalable when using monad type classes or monad stacks.

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

ed5a07f2 12/11/2013 01:32 pm Petr Pudlak

Add an Error instance for GanetiException

This allows it to be used with MonadError.

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

95e683c6 12/11/2013 01:31 pm Petr Pudlak

Add MonadPlus and MonadError instances for GenericResult

.. and ResultT.

While at it, generalize also the MonadPlus instance of GenericResult and
add some Functor/Applicative instances.

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

6e47412f 12/11/2013 12:07 pm Petr Pudlak

Generalize "validateCall" to be usable outside LUXI

Return the method (as any instance of JSON) and the arguments of a call.

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

5e671e0e 12/11/2013 12:07 pm Petr Pudlak

Add the Unix domain socket path to the Server data type

This simplifies code for closing such a socket.

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

0fbc8447 12/11/2013 12:07 pm Petr Pudlak

Encapsulate a server socket and its parameters

Instead of passing a bare server socket around, we pass it encapsulated
in a data type together with parameters such as read/write timeouts.

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

d605e261 12/11/2013 12:07 pm Petr Pudlak

Rename getClient/Server to getLuxiClient/Server

Later they will be split into LUXI-specific and general parts.

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

71a4c605 12/11/2013 12:07 pm Petr Pudlak

Split Luxi.hs into LUXI-specific functions and general ones

This will allow WConfD to use the general functions without importing
Luxi.hs.

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

6222b3a3 12/10/2013 01:32 pm Klaus Aehlig

Make luxid support WaitForJobChange

Make support the WaitForJobChange, waiting for a job to
change on certain monitored fields.

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

6eeaf385 12/10/2013 01:32 pm Klaus Aehlig

Add a generic function capable of watching a file

Add a method to return the new value of a function if it changes within
the given timeout. If not, return the old value. Make use of the fact,
that the function only changes, if the specified file changes on disk....

751fb9e2 12/10/2013 01:32 pm Klaus Aehlig

Add a safe version of getFStat

The function getFStat causes an IOError if the file to be stated does
not exist. In some cases, however, the only thing we care about is whether
it has changed, with disappearing being a legitimate change. So add a wrapper
that catches the IOError and returns nullFStat....

2713b91a 12/04/2013 05:52 pm Klaus Aehlig

Make luxid inspect the job queue on startup

Since luxid handled the scheduling, make luxid also read the queue
upon restart. In this way, jobs get scheduled in the same way, independent
of luxid restarts.

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

02e40b13 12/04/2013 05:52 pm Klaus Aehlig

Add a predicate to determine if a job has been started

Add a predicate jobs indicated that it has left the queue. This
will be needed, to allow restarts of luxid (which now handles
the queue) independent of jobs (currently running in masterd).

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

a0ee4f12 12/04/2013 05:52 pm Klaus Aehlig

Export getFStat from Utils

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

1b3bde96 12/04/2013 05:52 pm Klaus Aehlig

Use the jobFinalized predicate in JQScheduler

...to improve readability.

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

847df9e9 12/04/2013 05:52 pm Klaus Aehlig

Provide a function to determine whether a job is finalized

While there is a function to calculate the job status, sometimes
it is only relevant if the job is finalized. In this case, it is
more readable not having to know the internal order of JobStatus....

350f0759 12/03/2013 06:54 pm Klaus Aehlig

Don't assume we win the archive race

The job scheduler in luxid regularly watches for changes
of the job files to determine progress of jobs. As these
files are updated atomically, reading them will always
succeed---until they're archived. While luxid is quite...

ce03c84c 12/03/2013 02:39 pm Petr Pudlak

ganeti-mond: Add the "-b" option to specify the bind address

This parameter was missing for this particular deamon and was requested
in issue #629.

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

7dcb7e22 12/03/2013 12:50 pm Klaus Aehlig

Support size suffixes in minmem/maxmem backed parameters

The backed parameters specifying the minimal/maximal memory
can also be passed as values with suffixes. Support parsing
these values.

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

5b4ed56e 12/03/2013 12:50 pm Klaus Aehlig

Support fieldRead in partial params

While from parameters both full and partial versions are generated,
with in the partial version all types mapped to Maybe, the fieldRead
parameter of the field was not wrapped accordingly. So far, that didn't
matter, as it was always Nothing in this case, but for supporting special...

eabbda6f 12/03/2013 12:50 pm Klaus Aehlig

Make disk size a special numerical field

For disk sizes, instead of plain numbers (naming the value in MiB),
also accept expressions with units like 'GiB'.

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

ba0d1405 12/03/2013 12:50 pm Klaus Aehlig

Add a field-transformer for accepting parser

Add a transformer for numerical fields, to also accept
strings instead of numbers if they can be parsed by the
given parser.

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

ef8b6bcf 12/03/2013 12:50 pm Klaus Aehlig

Add a new unit parsing function taking all suffixes binary

In python, when parsing units (like disk sizes) we take all
suffixes (M, G, T) as 1024-based. To be backwards compatible
while moving to job management to luxid, in particular on RAPI,
add such a parsing function in haskell as well....

1c532d2d 12/03/2013 12:26 pm Klaus Aehlig

Make JQScheduler handle failure on job starting

Given that luxid (at the moment) connects to masterd for starting
jobs, it may be that this inter-process communication fails. In
this case, just reschedule the jobs instead of killing the scheduler
thread....

7dd21737 12/03/2013 12:26 pm Klaus Aehlig

fix typo in log message

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

fe50bb65 12/03/2013 12:26 pm Klaus Aehlig

Differentiate watchers in luxid

luxid has two time-based watcher threads, one for the
configuration, and one for the job queue. To improve readability
of the debug output, make both watcher use a different debug
message when the timer fires.

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

b5fa2700 12/02/2013 04:08 pm Klaus Aehlig

Make luxid use the JQScheduler

Make luxid use the job scheduler instead of immediately
starting every received job.

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

48e4da5c 12/02/2013 04:08 pm Klaus Aehlig

Add a scheduler to keep track of the job queue

In order to allow informed decissions on when to start a job,
it is necessary for luxid to keep track of the (active part
of the) job queue. Add a scheduler, similar to the config reader,
that does this, but also schedules jobs to be executed. At the...

6fd8ceff 12/02/2013 04:08 pm Klaus Aehlig

Move FStat related function to Utils

In this way, the functions to to decide, based on fstat, whether
a file needs to be reloaded can used by other parts as well,
in particular to monitor progress in the job queue.

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

ac0c5c6d 12/02/2013 04:08 pm Klaus Aehlig

Rename enqueueJobs to startJobs

This reflects better what the method actually does. Later,
we will add a job scheduler that will provide a proper enqueue
method.

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

0359e5d0 11/29/2013 12:10 pm Spyros Trigazis

Add default_iallocator_params cluster parameter

Add a cluster parameter to hold the iallocator parameters used
by the default instance allocator. Implement the option to
modify config.data, query config.data and upgrade man pages,
tests and cfgupgrade tool. The new default_iallocator_params is...

869cea98 11/29/2013 12:10 pm Spyros Trigazis

Modify --mond to yes|no option

Modify --mond option used by hail, hbal and hinfo from non
argument to yes|no option.

Signed-off-by: Spyros Trigazis <>
Signed-off-by: Michele Tartara <>
Reviewed-by: Michele Tartara <>

cfb3116d 11/28/2013 05:37 pm Helga Velroyen

Activate QA for rapi queries via luxi

This patch enables QA testing for rapi queries for the
newly transformed queries from python to haskell
(groups, instances, nodes, export, and networks). So far,
the QA did not distinguish between resources that cannot be...

c6013594 11/28/2013 05:00 pm Klaus Aehlig

Set the received time stamp for new jobs

Since luxid now handles the job submission requests, it is also
its responsibility to set the received time stamps. Do this.

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

2af22d70 11/28/2013 04:59 pm Klaus Aehlig

Provide a function to set the received times tamp of a job

This is the pure function for changing the received time stamp;
obtaining the actual time stamp has to be done in IO.

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

c3a70209 11/28/2013 04:59 pm Klaus Aehlig

Document the jobqueue timestamp format

...and also provide a method to get the current time in
that format.

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

fa7f3e26 11/27/2013 03:08 pm Helga Velroyen

Fix removal of duplicates

Commit ede6df3d02 introduced a bug in the node queries
where disk templates where paired up wrongly to their
storage unit keys due to removal of duplicates at the
wrong place. This patch fixes it.

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

96e3dfa7 11/27/2013 11:37 am Helga Velroyen

Fix retrieval of number of instances of a node

This patch fixes a FIXME to make the retrieval of the
number of primary and secondary instances share more
common code.

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

e86c9deb 11/27/2013 11:37 am Helga Velroyen

Use hypervisor / storage information only when requested

So far, the node queries ignored the list of fields and
just requested all available information from the backend.
That means, for example if only hypervisor information is
requested, still the storage space calculation is...

ede6df3d 11/27/2013 11:37 am Helga Velroyen

Remove duplicate storage units in node query

This is a little performance tweak for the node queries.
So far, the query code mapped the disk templates to storage
units. It could happen that two disk templates were mapped
to the same storage unit and therefore the storage space...

f5b765f0 11/26/2013 03:31 pm Klaus Aehlig

Make luxid job submission be defined by replication

When receiving jobs to be submitted, make luxid replicate them to all
master candidates and then return. The actual execution can be handled
asynchronously.

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

493d6920 11/26/2013 03:31 pm Klaus Aehlig

Add function to enqueue jobs

Add a function that ensures that a given set of jobs gets executed at
the appropriate time. At the moment, this is still the simple
mechanism of handing over everything to masterd; but even at this
stage, it has the benefit of allowing to remove code duplication in...

ea128e20 11/26/2013 03:31 pm Klaus Aehlig

Add a function justBad to filter the Bad value of a list

In the same way as justOk allows to filter the Ok values,
add justBad to filter the Bad values. While there, simplify
the definition of justOk.

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

9fd653a4 11/26/2013 03:31 pm Klaus Aehlig

Add wrapper to replicate many jobs

Add a convenience wrapper around replicateJob to replicate
many jobs to the master candidates.

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

b5a96995 11/26/2013 03:31 pm Klaus Aehlig

Add function to replicate a job to the master candidates

As luxid will be handling the job queue soon, add a utility to
replicate jobs to all master candidates. Also log errors.

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

835050f3 11/26/2013 03:31 pm Klaus Aehlig

Compress JobqueueUpdate RPCs

Noded understands compressed RPCs for updating files in the
(replicated) job queue. Make use of this feature.

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

f7819050 11/26/2013 03:31 pm Klaus Aehlig

Release internal lock for serial file later

When allocating new jobs, the new serial is replicated among
all master candidates. To avoid races with a later job id
allocation, keep the internal lock till after the replication
attempt.

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

9d049fb4 11/26/2013 03:30 pm Klaus Aehlig

Rename LuxiSocket to MasterSocket

Rename the constants to name the socket to connect masterd,
as the name LuxiSocket hints on luxid, which is different
from masterd.

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

5c98b73e 11/26/2013 11:14 am Helga Velroyen

Instance queries: remove opcodes and LU

Removes the remains of the instance queries.

Signed-off-by: Helga Velroyen <>
Reviewed-by: Hrvoje Ribicic <>

64981f25 11/26/2013 11:14 am Helga Velroyen

Export and network queries: remove opcodes and LUs

Removes the remains of the export (aka backup) and network
queries.

Signed-off-by: Helga Velroyen <>
Reviewed-by: Hrvoje Ribicic <>

081dc516 11/26/2013 11:14 am Helga Velroyen

Group queries: remove opcodes and LUs

Removes the remains of the group query code.

Signed-off-by: Helga Velroyen <>
Reviewed-by: Hrvoje Ribicic <>

dde771ba 11/26/2013 11:14 am Helga Velroyen

Node queries: remove opcodes and LUs

Removes the remains of the node query code.

Signed-off-by: Helga Velroyen <>
Reviewed-by: Hrvoje Ribicic <>

2a02d6fe 11/26/2013 11:14 am Helga Velroyen

Remove instance query python code

This patch removes the python code for the instance
queries. So far, it replaces it by 'NotImplemented'
exceptions. In a later patch of this series, the
remaining part is remove completely.

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

96431562 11/26/2013 11:14 am Helga Velroyen

Switch to Haskell for group queries

This patch removes the group query implementation
in python in order to use the new Haskell implementation.

Signed-off-by: Helga Velroyen <>
Reviewed-by: Hrvoje Ribicic <>

fbeb41e6 11/26/2013 11:13 am Helga Velroyen

Switch to haskell for export (aka backup) queries

This patch removes the python implementation of export
(aka backup) queries. So far, it is replaced by
'NotImplemented' exceptions, but later in this series
it will be replaced completely.

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

44ffd981 11/26/2013 11:13 am Helga Velroyen

Switch to Haskell for network queries

This patch removes the python implementation of network
queries and replaces it with 'NotImplemented' exceptions.
It will be removed completely once all queries are
switched to Haskell.

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

a9532fb0 11/26/2013 11:13 am Helga Velroyen

masterd: implement query via luxi

The master daemon so far still did queries via the python
implementation. This patch implements that it uses the
haskell implementation and removes the node queries from
the list of OP-queriable entities.

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

89352544 11/26/2013 11:13 am Helga Velroyen

Implement 'QueryInstances' call in Haskell luxi server

While the command line uses the generic 'Query' call,
rapi calls 'QueryInstances'. 'QueryInstances' so far
was not fully implemented in the Haskell implementation
of the luxi server. This was discovered when trying to...

ec81293c 11/26/2013 11:13 am Helga Velroyen

Fix bug regarding node UUID in haskell node queries

When moving from python to haskell node queries, a bug
was discovered where a node's UUID was mistakenly
compared to a node's name. This indirectly caused the
cluster epo operation to fail, because it was not...

1211c6ed 11/26/2013 11:13 am Helga Velroyen

Remove --enable-split-query option

Switching from python to haskell queries, this patch
removes the option to dis/enable the haskell queries
at configure time.

Signed-off-by: Helga Velroyen <>
Reviewed-by: Hrvoje Ribicic <>

81879d92 11/25/2013 05:50 pm Klaus Aehlig

hsqueeze: fix position of option in gnt-node power

hsqueeze can produce a shell script with the commands to squeeze
the cluster; in the script, fix the position of the '-f' option
in the 'gnt-node power' command.

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

2ca1b52d 11/21/2013 03:45 pm Klaus Aehlig

Add missing spindles paramter to idisk

When spindles where added to Ganeti, apparently it was forgotten
to add the parameter to the Haskell data type as well. Do this now.

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

7295a6dc 11/19/2013 02:13 pm Hrvoje Ribicic

Allow the NIC VLAN to be set to an empty string

The NIC VLAN has previously not been modified via Haskell, causing the
INicParams class not to be used. With the recent job queue
refactorings, a modification definition is recorded, and for an empty
string (which is a legal default value) a crash happens. This patch...

32933325 11/19/2013 02:13 pm Hrvoje Ribicic

Add the aggregate NIC VLAN instance field

Allow the retrieval of the VLANs of all the NICs through nic.vlans.

Signed-off-by: Hrvoje Ribicic <>
Reviewed-by: Thomas Thrainer <>

63f4bce5 11/19/2013 02:13 pm Hrvoje Ribicic

Add NIC VLAN field retrieval to Haskell queries

The field was added to Python queries in an earlier version, and now
has to be added to the Haskell queries as well.

Signed-off-by: Hrvoje Ribicic <>
Reviewed-by: Thomas Thrainer <>

268fb0bd 11/15/2013 05:40 pm Klaus Aehlig

hsqueeze: add option to show or save commands

Add an option to hsqueeze to show, or save in a file, the commands
that have to be carried out.

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

bbc6620d 11/15/2013 05:40 pm Klaus Aehlig

hsqueeze: when balancing also keep the move sequence

In hsqueeze, when computing the balancing sequence, also
remember the sequence of moves that lead there.

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

94a420ed 11/15/2013 05:39 pm Klaus Aehlig

Add function to get the moves between two configurations

Add a function that, given two adjacent cluster configurations of
a balancing sequence, computes the moves that led from the first
to the second configuration.

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

b12a6a00 11/15/2013 05:39 pm Klaus Aehlig

In the list of involved nodes, drop "no secondary"

When grouping moves into jobs, a new job set is started, if the new
move involves a node also touched by a previous move. When computing
the list of involved nodes, the new primary and secondary nodes of the...

7c3a6391 11/15/2013 05:39 pm Klaus Aehlig

Move saving of a command list to CLI

Move the function that saves a list of a command in a file
to CLI.hs. In this way, it is reusable by other htools.

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

a4417db4 11/15/2013 04:49 pm Thomas Thrainer

Merge branch 'stable-2.10' into master

Merge branch 'stable-2.10' into master

  • stable-2.10
    Don't allow optional node parameters
    Move OVS node parameters to the right place
    Make NIC VLAN queryable
    Pass VLAN parameter correctly in moves
    Use constant instead of raw string...
0808e9d5 11/14/2013 05:40 pm Petr Pudlak

Add NodeGroup to InstanceConsoleInfoParams

Before, calls to `gnt-instance list -o console` with an instance on a
node with a custom SSH port failed because of missing group
configuration. This patch fixes the problem.

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