Statistics
| Branch: | Tag: | Revision:

root / src @ 830b09dd

# Date Author Comment
830b09dd 02/27/2014 03:17 pm Michele Tartara

Add reason trail pickup constant

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

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

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

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

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

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

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

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

Add function for extending the reason trail in Luxid

The function will be used by the next commit.

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

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

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

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

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

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

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

Add a function for generating OpCode reason src. names

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

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

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

Add a TH function for lower-cased stripped opcode names

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

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

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

Generalize genConstrToStr to custom monadic functions

This will allow compile-time checks for constructor names.

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

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

Add query support for locks to luxid

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

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

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

Provide fields for lock queries

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

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

ead368bb 02/24/2014 04:42 pm Klaus Aehlig

Merge branch 'stable-2.10' into stable-2.11

  • stable-2.10
    Let the instance's tuple of nodes start with the primary
    Fix the test that checks for the order of instance's nodes
    Revision bump for the 2.10.0 release
    Update NEWS file for 2.10.0
  • stable-2.9...
2977b72c 02/24/2014 01:53 pm Klaus Aehlig

Merge branch 'stable-2.9' into stable-2.10

  • stable-2.9
    Fix net-common script in case of routed mode
    Document hspace's SPN parameters
    Document spindles in TSPEC
    man: Update the manual page of gnt-node FAILOVER
    Make hbal deal with no-LVM storage space properly...
3daaab6c 02/19/2014 04:31 pm Helga Velroyen

Make hbal deal with no-LVM storage space properly

Since 2.6, hbal crashes when used on a cluster where no
LVM storage is enabled at all. The problem is that it
always queries for fields that only sometimes make
sense for certain types of storage. This patch will...

336b1c88 02/19/2014 11:23 am Klaus Aehlig

Merge branch 'stable-2.10' into stable-2.11

  • stable-2.10
    Revision bump for 2.10.0~rc3
    Update NEWS file for 2.10.0~rc3
  • stable-2.8
    Fix integer overflow problem in hba
    Add missing space

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

c715d059 02/19/2014 10:58 am Thomas Thrainer

Merge branch 'stable-2.9' into stable-2.10

  • stable-2.8
    Fix integer overflow problem in hbal
    Add missing space

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

ab4b1cf2 02/14/2014 03:51 pm Helga Velroyen

Use node UUID as client certificate serial number

It turns out, that some implementations of OpenSSL are more
pedantic in checking the certficates than others. In this
particular case, the SSL connection could not be
established when the serial number of the certificates...

d5104ca4 02/14/2014 03:51 pm Helga Velroyen

Revert "Disabling client certificate usage"

This reverts commit 45f75526b848, which was introduced to
temporarily disable the implementation of SSL client
certificates. As this patch series fixes the reason for
the disabling, we are rolling back the patch....

81869422 02/13/2014 06:09 pm Klaus Aehlig

Merge branch 'stable-2.8' into stable-2.9

  • stable-2.8
    Fix integer overflow problem in hbal
    Add missing space

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

95ee8abb 02/13/2014 03:52 pm Michele Tartara

Fix integer overflow problem in hbal

waitForJobs in src/Ganeti/Jobs.hs has an integer overflow that (at least on
amd64) causes it to break after waiting for ~10 minutes. This results in hbal
sleeping forever (when compiled with squeeze's ghc 6.12.1) or crashing (when...

0e2a45dd 02/13/2014 03:52 pm Michele Tartara

Add missing space

Also, refactor the line to keep it under 80 chars.

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

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

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

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

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

e061eb16 02/06/2014 12:43 pm Petr Pudlak

Remove FromString in favor of Error from standard libraries

They have the very same functionality, and using our own FromString only
causes unnecessary code duplication.

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

f2e06f0f 02/06/2014 12:42 pm Petr Pudlak

Add Alternative instances for GenericResult and ResultT

This allows to use Alternative specific combinators, namely `optional`.

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

Cherry-pick of 78209a84b0f6be27fd381ac2...

2e09344f 02/04/2014 10:51 am Klaus Aehlig

Add andRestArguments to IDiskParams

In this way, we cann pass through the opaque parameters
required for disk creation and modification in the case of
external storage.

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

4e4821bd 02/04/2014 10:51 am Klaus Aehlig

Add function providing the canonical andRestArguments

The field catching the remaining fields will always be of the same
shape, so add a function for this to make usage simple.

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

c2442429 02/04/2014 10:51 am Klaus Aehlig

Add additional constructor AndRestArguments to OptionalType

A field of this type will capture all the remaining fields
of an object as JSValues. Obviously, the intended use is
to have precisely one such field. This mechanism will allow
to pass opaque values trough, as it is, e.g., required for...

0c09ecc2 01/29/2014 03:12 pm Klaus Aehlig

Make safeRenameFile create dirs with defined permissions

If, and only if, safeRenameFile creates a new directory, make sure
it has well defined permissions. While there, also optimize for the
common case. The main use of safeRenameFile is archiving jobs. As...

f23daea8 01/29/2014 03:12 pm Klaus Aehlig

Add constant for subdir permissions within the job queue

When archiving jobs, new directories have to be created, as
jobs are archived in groups of 10000. Add a constant describing
the permissions of these newly created directories.

Note that, due to the type, the constant cannot be part...

96a4ebb8 01/29/2014 03:12 pm Klaus Aehlig

Add utility to fix permissions

Especially when creating new directories, we need to make sure
ownership and permissions are set correctly. Provide a function
to do so.

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

ac81a213 01/29/2014 03:12 pm Klaus Aehlig

Add data type describing permissions and possibly owners

When creating new files, and, more importantly, new directories
it is relevant to set permissions, and possibly owners, correctly.
Provide a type specifying the target configuration.

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

baaa2ece 01/28/2014 03:17 pm Klaus Aehlig

Merge branch 'stable-2.10' into stable-2.11

  • stable-2.10
    Enable network tags in Haskell code
    Haskell style: explicit errors, visible in the type
    Clarify spacing in record syntax
    Improve the point-free section of the style guide
    Add code style document to documentation...
e10c4a69 01/28/2014 12:24 pm Hrvoje Ribicic

Enable network tags in Haskell code

Prior to the creation of the 2.10 branch, network tags were broken, and
the Haskell code introduced there mistakenly accepted this as the
desired functionality. This patch fixes this in a very simple way.

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

410945f1 01/27/2014 05:36 pm Klaus Aehlig

Merge branch 'stable-2.9' into stable-2.10

  • stable-2.9
    Revision bump for 2.9.3
    Schedule 2.9.3 release
    Document fix of issue 691 in NEWS
    NEWS: fix typo in 2.8.4 release
    Fix 'hvparams' of '_InstanceStartupMemory' on hypervisors
    Add missing option to gnt-instance documentation...
b75430d9 01/27/2014 02:50 pm Ilias Tsitsimpis

Add 'provider' to IDiskParams

IDISK_PROVIDER was included in python's IDISK_PARAMS, so it
should also be included in the Haskell code.

Now that luxid creates and enqueues jobs, without this patch the
ExtStorage interface is broken as the user can not pass the disk...

45f75526 01/24/2014 05:06 pm Helga Velroyen

Disabling client certificate usage

This patch temporarily disables the usage of the client
SSL certificates. The handling of RPC connections had a
conceptional flaw, because the certificates lack a proper
signature. For this, Ganeti needs to implement a CA,...

658eb2dc 01/24/2014 02:38 pm Klaus Aehlig

Implement auto-archiving of jobs

As luxid is taking over the handling of the job queue, it
also needs to handle the automated archiving of jobs. Here
we replicate the semantics of the current python implementation
of archiving as many jobs older than the given time as possible,...

c867cfe1 01/24/2014 02:38 pm Klaus Aehlig

Add a utility function to try archiving jobs

Provide a function that walks through a list of job ids and
archives them if appropriate. Abort that process if a given
timeout is reached.

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

8b5a4b9a 01/24/2014 02:38 pm Klaus Aehlig

Support computation on Timestamp

As timestamps are also used to determine if an event is sufficiently
long in the past (e.g., on archiving jobs), support adding a time
interval to a Timestamp.

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

ae66f3a9 01/24/2014 02:38 pm Klaus Aehlig

Add constructor function for Timestamp

Provide means to get Ganeti's internal timestamps
from standard clock time.

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

370f63be 01/24/2014 02:38 pm Klaus Aehlig

Add a predicate on Jobs on whether it can be archived

Jobs usually are archived a given time after they have finished.
For finalized jobs without end-time, the start-time is taken en
lieu. This function provides the pure predicate for this decision.

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

857cbfb1 01/24/2014 02:38 pm Klaus Aehlig

Make ArchiveJob in luxid create the archive, if necessary

As jobs are archived in groups of 10000, creating new subdirectories
of the archive might be necessary when archiving a job. Use a
function that takes care of this.

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

b3f95121 01/24/2014 02:38 pm Klaus Aehlig

Provide a safe version of rename

...that also creates the target directory, if needed.

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

f4d0c84a 01/24/2014 02:38 pm Klaus Aehlig

Fix expectation for the return value of jobqueue_rename

On sucess, jobqueue_rename returns a list containing one
null per change request.

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

6fadcbab 01/23/2014 12:25 pm Klaus Aehlig

fix off-by-one error in indentation

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

6fdc84ab 01/23/2014 12:03 pm Klaus Aehlig

Implement ArchiveJob queries in luxid

With luxid taking over the tasks of masterd, archiving
jobs also belongs to its responsibilities. As archiving
a job affects the global state of the job queue, synchronise
over the queue lock.

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

40ad3e85 01/23/2014 12:03 pm Klaus Aehlig

Add RPC call jobqueue_rename

Archiving jobs is also replicated to all master candidates.
Therefore luxid needs to be aware of this RPC call.

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

368e95fd 01/20/2014 03:05 pm Apollon Oikonomopoulos

luxid: fix detection of master node in node query

Ganeti.Config.getNodeRole would rely on clusterMasterNode returning the
master node name, however clusterMasterNode returns the master node's
UUID. We fix this and a similar issue in Ganeti.Query.Node.nodeFields....

77676415 01/20/2014 11:50 am Klaus Aehlig

When updating job queue, support virtual paths

When replicating parts of the job queue, allow for virtual
paths in the RPC call. In this way, replication will also
work correctly in a vcluster setup. Note that makeVirtualPath
lives in IO, and hence cannot be part of the pure encoding...

4a43365c 01/20/2014 11:50 am Klaus Aehlig

Add a module to support virtual clusters

Virtual clusters are an efficient way to test how Ganeti behaves
on a large cluster without requiring a large number of machines.
Now that more tasks like job replication are done by luxid, provide
that functionality in Haskell as well....

40960882 01/20/2014 11:50 am Klaus Aehlig

Move vcluster-related constants to Constants.hs

...as, in that way, they will also be available in Haskell,
where job replication happens as well.

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

d520ba2a 01/16/2014 05:11 pm Klaus Aehlig

Clean up luxidMaxRunningJobs

Now that the number of jobs maximally running in parallel is
a run-time option, this magic constant is not needed any more.

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

d9dd04b1 01/16/2014 05:11 pm Klaus Aehlig

Make the scheduler use the max_running_jobs config parameter

Use the run-time configuration to decide on the number of jobs
scheduled for execution instead of using a hard-coded constant.

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

6046dca9 01/16/2014 05:11 pm Klaus Aehlig

Make configuration available to the scheduler

In this way, scheduling decisions can depend on the configuration
of the cluster. At the moment, this is only the maximal number
jobs to be run in parallel, but in the future this will also include
job filters....

178ad717 01/16/2014 05:11 pm Klaus Aehlig

Make max_running_jobs queryable

As we have introduced a new cluster parameter, it should
be also visible when querying about the cluster configuration.

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

ad756c77 01/16/2014 05:11 pm Klaus Aehlig

Add opcode parameter for the maximal number of running jobs

This parameter of OpClusterSetParams will allow to set the
maximal number of jobs to be run simultaneously.

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

cf048aea 01/16/2014 05:11 pm Klaus Aehlig

Add parameter max_running_jobs to the cluster configuration

This cluster-wide parameter will determine how many non-finalized jobs maximally
should be in a not queued state at the same time.

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

36cb6837 01/15/2014 02:34 pm Klaus Aehlig

Implement job cancellation in luxid

As luxid handles the job queue, this daemon is the natural
place to handle job cancellation. Answering to CancelJob requests
is also necessary for luxid to be feature compliant with masterd,
even for command-line requests only....

363dc9d6 01/15/2014 02:34 pm Klaus Aehlig

Provide a function to compute the canceled version of a job

When a job gets canceled while still queued, dequeuing requires
luxid to mark it as cancelled. So provide the necessary pure
function to do so.

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

47c3c7b1 01/15/2014 02:34 pm Klaus Aehlig

Support canceling dequeued jobs

Even after jobs have been handed over for execution, it might
still be possible to cancel them. On such case would be the
job still waiting for a lock. Eventually, we will have to
communicate to the job directly, but as long as execution is...

bb62d52e 01/15/2014 02:33 pm Klaus Aehlig

Add dequeuing to the job scheduler

This only removes queued jobs from the queue
and indicates whether the job was found in the queue.
For jobs that are already started from the queue's
point of view, it might still be possible to cancel
them, e.g., if they are still waiting for locks....

62a7853e 01/14/2014 12:38 pm Jose A. Lopes

Fix Kvmd imports for Ubuntu 13.04 64

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

afa0fca4 01/13/2014 07:43 pm Jose A. Lopes

User shutdown hypervisor parameter

Add user shutdown parameter for KVM. Based on this parameter, decide
what information to report for a KVM instance, for example,
distinguish between 'ADMIN_down' and 'USER_down'.

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

d6769989 01/13/2014 07:43 pm Jose A. Lopes

Add KVM daemon daemonize

Add KVM daemon entry point, command-line options, backgrounding, etc

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

db519e20 01/13/2014 07:43 pm Jose A. Lopes

Add KVM daemon logic

Add KVM daemon logic, which contains monitors for Qmp sockets and
directory/file watching.

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

cf51a981 01/13/2014 07:43 pm Jose A. Lopes

Generalize and reuse Unix domain sockets

Refactor module 'Ganeti.UDSServer' so the KVM daemon can reuse code
declared in this module to handle Unix domain sockets.

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

4084d18f 01/13/2014 07:43 pm Jose A. Lopes

KVM daemon datatype, user and group

  • add user and group to 'configure.ac', 'Makefile.am' and
    'AutoConf.hs.in'
  • extend 'Daemon' datatype with 'GanetiKvmd' and implement all related
    functions, such as, 'daemonName', etc.
  • export KVM daemon name as constant...
9131274c 01/13/2014 07:43 pm Jose A. Lopes

Fix whitespace

Fix whitespace in several modules.

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

91ef0821 01/13/2014 07:43 pm Jose A. Lopes

Fix according to the Ganeti style guide

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

a8551d9c 01/08/2014 12:26 pm Klaus Aehlig

Also consider filter fields for deciding if using live data

If the query fields don't require live data, we use the shortcut
and don't request live data. However, we cannot take this shortcut
if the fields the filter depends on requires live data.

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

54a2661e 01/07/2014 12:03 pm Klaus Aehlig

Increase job queue polling interval

Now that all jobs are monitored with inotify, increase the polling interval.

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

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

After detecting a finished job, schedule again

In order to obtain a higher throughput of jobs, schedule new jobs
as soon as a job was detected to have finished.

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

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

Attach a watcher for jobs

Add a function that can serve as an event handler for inotify
updating a job in the job queue if the corresponding job file
changes. Also attach it to all jobs selected to be run.

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

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

JQScheduler: always pass JobWithStat

When attaching inotifies to jobs, we need to preserve
it through potential requeuing actions. Also, this information
is needed for cleaning up.

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

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