Statistics
| Branch: | Tag: | Revision:

root / src @ cc5ab470

# Date Author Comment
cc5ab470 01/07/2014 12:03 pm Klaus Aehlig

Cleanup inotifies

When cleaning up finished jobs, remove the inotify
attached to them, if any.

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

ed6cf449 01/07/2014 12:03 pm Klaus Aehlig

Add an optional inotify to jobs in the scheduler

This provides the infrastructure to monitor running jobs
by inotify, and hence update the queue promptly upon
job changes.

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

d5665e10 01/07/2014 10:14 am Klaus Aehlig

Make luxid handle SetDrainFlag

Make luxid also handle queries to drain the job queue.

Signed-off-by: Klaus Aehlig <>
Reviewed-by: Guido Trotter <>

83a451f5 01/07/2014 10:14 am Klaus Aehlig

Add RPC for setting the queue drain flag

As luxid is also responsible for handling requests to drain the job queue,
we need the corresponding RPC in Haskell as well.

Signed-off-by: Klaus Aehlig <>
Reviewed-by: Guido Trotter <>

1264bd58 01/07/2014 10:14 am Klaus Aehlig

Fix sign in drain_flag request

The drain flag is set, if the queue is not open.

Signed-off-by: Klaus Aehlig <>
Reviewed-by: Guido Trotter <>

e97cce9f 12/20/2013 03:49 pm Klaus Aehlig

Reinstantiate inotify after a lost file

When watching a file, reinstantiate the inotify if notified
of an event that removes the watch. Such events are likely
to happen, as our usual way to "modify" a file is to atomically
replace it by another one.

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

2f575937 12/20/2013 03:49 pm Klaus Aehlig

Improve debug-logging for watch file

Also log, at debug level only, when a change of a watched
file was observed, but the change did not result in any
change of derived value.

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

13b05c27 12/20/2013 03:49 pm Klaus Aehlig

Improve debugging by logging inotify events

At debug level, not only log that an inotify triggered,
but also log the actual event.

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

a6c43c02 12/20/2013 03:15 pm Helga Velroyen

Verify client certificates

This patch adds a step to 'gnt-cluster verify' to verify
the existence and validity of the nodes' client
certificates. Since this is a crucial point of the
security concept, the verification is very detailed with
expressive error messages and well tested by unit tests....

b3cc1646 12/20/2013 03:15 pm Helga Velroyen

Verify incoming RPCs against candidate map

From this patch on, incoming RPC calls are checked against
the map of valid master candidate certificates. If no map
is present, the cluster is assumed to be in
bootstrap/upgrade mode and compares the incoming call...

d722af8b 12/20/2013 03:15 pm Helga Velroyen

Extend RPC call to create SSL certificates

So far the RPC call 'node_crypto_tokens' did only retrieve
the certificate digest of an existing certificate. This
call is now enhanced to also create a new certificate and
return the respective digest. This will be used in various...

1059337d 12/20/2013 03:15 pm Helga Velroyen

Store candidate certificates in ssconf

This patch enables Ganeti to store the candidate
certificate map in ssconf. A utility function to
read it is provided as well.

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

3bcf2140 12/20/2013 03:15 pm Helga Velroyen

Add candiate certificate map to configuration

At the end of this patch series, incoming RPC calls are
legitimized against a map of master candidate nodes'
SSL certificate digests. This patch adds the map itself
to the cluster's configuration.

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

b544a3c2 12/20/2013 03:15 pm Helga Velroyen

Retrieve a node's certificate digest

In various cluster operations, the master node needs to
retrieve the digest of a node's SSL certificate. For this
purpose, we add an RPC call to retrieve the digest. The
function is designed in a general way to make it possible...

f3ac6f36 12/19/2013 01:59 pm Klaus Aehlig

Merge branch 'stable-2.10' into master

  • stable-2.10
    Version bump for 2.10.0~rc1
    Update NEWS for 2.10.0 rc1 release
    Fix pylint 0.26.0/Python 2.7 warning
    Update INSTALL and devnotes for 2.10 release
  • stable-2.9
    Bump revision for 2.9.2
    Update NEWS for 2.9.2 release...
edd09726 12/18/2013 04:47 pm Klaus Aehlig

break line longer than 80 chars

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

dcd54d32 12/18/2013 03:49 pm Klaus Aehlig

hsqueeze: tag nodes before offlining them

hsqueeze is supposed to tag nodes before powering them down, so that
it later can recognize which nodes can be activated later. When showing
the commands to execute, also add the tagging commands.

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

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

c486fb6c 12/16/2013 12:37 pm Thomas Thrainer

Merge branch 'stable-2.9' into stable-2.10

  • stable-2.9
    Bump revision for 2.9.2
    Update NEWS for 2.9.2 release
    Pass hvparams to GetInstanceInfo
    Adapt parameters that moved to instance variables
    Avoid lines longer than 80 chars
    SingleNotifyPipeCondition: don't share pollers...
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 <>

791e87b8 12/12/2013 11:17 am Klaus Aehlig

Avoid lines longer than 80 chars

...as they're a lint error.

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

affe1792 12/11/2013 07:43 pm Klaus Aehlig

Merge branch 'stable-2.8' into stable-2.9

  • stable-2.8
    Version bump for 2.8.3
    Update NEWS for 2.8.3 release
    Support reseting arbitrary params of ext disks
    Allow modification of arbitrary params for ext
    Do not clear disk.params in UpgradeConfig()...
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....

67ec18c0 12/04/2013 04:51 pm Jose A. Lopes

Fix evacuation out of drained node

  • fix node daemon not to skip data, such as, memory and disk size,
    when building the node list to send to HBal, given that these data
    are important for HBal to determine whether an evacuation is
    possible
  • fix iallocator to properly load drained nodes from the list passed...
0eb83d70 12/04/2013 04:51 pm Bernardo Dal Seno

Refactor reading live data in htools

This simplifies different handling of individual items.

Cherry-picked from 8c72f7119f50a11661aacba2a1abffdfdc6f7cfa.

Signed-off-by: Jose A. Lopes <>
Reviewed-by: Thomas Thrainer <>

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

289e7fcc 11/27/2013 09:40 am Klaus Aehlig

eta-reduce isIpV6

This is not only better style, but also fixes a lint error.
Also use the infix form of `elem` to increase readability.

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

b5c3a4f2 11/26/2013 06:55 pm Guido Trotter

Ganeti.Rpc: use brackets for ipv6 addresses

We detect an IPv6 vs V4 address based on columns, rather than passing
the family from the cluster object to be more future proof (in case
we'll ever support mixed clusters).

Unfortunately quite a bit more code is required to test this: we need an...

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