Statistics
| Branch: | Tag: | Revision:

root @ 31d3b918

# Date Author Comment
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 <>

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

66e40fd6 02/04/2014 04:30 pm Petr Pudlak

Catch exceptions in 'readConfig' in Ganeti.Config

.. and convert them into a "Result".
This is accomplished by using "liftIO" from ResultT.

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

69bf84e1 02/04/2014 04:30 pm Petr Pudlak

Catch errors in 'lockFile' in Ganeti.Utils

Opening a file can fail as well, so catch errors there too.

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

b775af80 02/04/2014 04:12 pm Klaus Aehlig

Assert correct usage of AndRestArguments fields

The special field andRestArguments is intended to be only used
as the last field of an object, catching all remaining keys.
Add a compile-time check to verify that it is used correctly.

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

adec726e 02/04/2014 04:09 pm Jose A. Lopes

Fix missing '@raise' in docstring

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

32542155 02/04/2014 04:09 pm Jose A. Lopes

Fix missing '@raise' in docstring

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

002764e8 02/04/2014 04:09 pm Jose A. Lopes

Fix missing 'L{...}' in docstring

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

472cc1e9 02/04/2014 04:09 pm Jose A. Lopes

Rename 'CdromOption' to '_CdromOption'

... because it is a protected definition.

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

582bfaf6 02/04/2014 04:09 pm Jose A. Lopes

Fix whitespace

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

45907709 02/04/2014 03:14 pm Petr Pudlak

Merge branch 'stable-2.11' into master

  • stable-2.11
    Add andRestArguments to IDiskParams
    Add function providing the canonical andRestArguments
    Add genAndRestArguments :: Gen (Map String JSValue)
    Add additional constructor AndRestArguments to OptionalType...
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 <>

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

Add genAndRestArguments :: Gen (Map String JSValue)

So that objects using AndRestArguments are available for testing.
As the AndRestArguments are intended for passing through additional
parameters passed on the command line, we restrict them to the
values that are allowed at this position: Strings of ASCII characters...

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

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

Fix specification of TIDiskParams

Commit 580b1fdd incorrectly assumes that disk parameters are
just the standard ones, whereas the man page explicitly states
that additional parameters can be passed as well, if they make
sense for the chosen storage type. Fix this....

bddc92ee 02/04/2014 10:48 am Klaus Aehlig

Make BlockDev subclasses adhere the interface for Create

In commit 702c3270 two new parameters were added to the
Create function of BlockDev. Make subclasses also adhere
this specification.

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

c032b2ce 02/03/2014 04:16 pm Klaus Aehlig

Make BlockDev subclasses adhere to new interface

In commit 702c3270 two new parameters were added to the
constructor of BlockDev. Make the subclassess accept these
additional parameters as well.

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

702c3270 01/31/2014 06:28 pm Dimitris Aragiorgis

Make disk.name and disk.uuid available in bdev

Until now Disk name and uuid was not available on bdev level.
In case of ExtStorage, this info is useful, and may be for other
templates in the future too.

This patch treats the name and uuid object slots just like the size...

b13fa4c4 01/30/2014 06:05 pm Jose A. Lopes

Add script that checks the copyrights of a dirty local repo

Script to check whether the local dirty commits are changing files
which do not have an updated copyright.

The script will determine your current remote branch and local branch,
from which it will extract the commits to analyze. Afterwards, for...

1ab752c8 01/30/2014 05:45 pm Jose A. Lopes

Add 'dnsmasq' section and TAP interface names

  • add section 'dnsmasq' explaining how to configure dnsmasq to work
    with the communication mechanism
  • add names to TAP interfaces (e.g., ``gnt.com.0``) which allow DHCP
    servers to filter the TAP interfaces to bind to...
f9666f00 01/30/2014 04:11 pm Petr Pudlak

User new error handling functions in SubmitJobToDrainedQueue

This somewhat shortens and simplifies the code.

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

8383b3b6 01/30/2014 04:10 pm Petr Pudlak

Use new error functions when querying locks

This helps to handle errors coming from the Luxi client.

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

38e4d732 01/30/2014 04:10 pm Petr Pudlak

Use new error handling functions for querying jobs

Since we already touched getJobIDs, and this function is already based
on ResultT, use new error functions here as well.

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

ea7032da 01/30/2014 04:10 pm Petr Pudlak

Update getDirJobIDs to use ResultT

Also simplify code and remove unused functions.

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

fb54b24a 01/30/2014 04:10 pm Petr Pudlak

Improve liftIO of ResultT to catch IOErrors

Any IOErrors are now captured in ResultT's liftIO using try and converted into
'Bad'. This prevents IO exceptions from leaking into ResultT code and allows
them to be handled in a pure way inside ResultT's sum type....

f59cefcb 01/30/2014 04:10 pm Petr Pudlak

Rename 'resultT' to 'toError'

.. to better correspond to its generalized type.

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

87f15934 01/30/2014 04:10 pm Petr Pudlak

Generalize type signatures of functions that produce Result

This allows them to be used in any 'MonadError', in particular in monad stacks
composed using ResultT, without explicit lifting.

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

426f0900 01/30/2014 04:10 pm Petr Pudlak

Add withErrorLogAt which annotates and logs errors

.. and rethrows them within a MonadError. This allows to just log errors
and let them be handled elsewhere.

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

565821d1 01/30/2014 04:10 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...

861ddf80 01/30/2014 04:10 pm Petr Pudlak

Refactor instance MonadLog (ReaderT r m) to unify style

.. with MonadLog (ResultT e m) to be more point-free.

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

d2029364 01/30/2014 04:10 pm Petr Pudlak

Add instance MonadLog for ResultT

This allows to log in monad stacks containing ResultT.

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

a87a017b 01/30/2014 04:10 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 <>

8d61946f 01/30/2014 11:03 am Petr Pudlak

Merge branch 'stable-2.11' into master

  • stable-2.11
    Make safeRenameFile create dirs with defined permissions
    Add constant for subdir permissions within the job queue
    Add utility to fix permissions
    Add data type describing permissions and possibly owners...
ccded668 01/29/2014 03:59 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 <>

b9202225 01/29/2014 03:59 pm Petr Pudlak

Replace duplicated code with readJSONWithDesc

JSON errors were annotated at other places, so use the function there as
well.

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

a3dabca9 01/29/2014 03:59 pm Petr Pudlak

When parsing fields, annotate JSON errors with names

This allows better debugging of failed JSON conversions.

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

885dafbc 01/29/2014 03:59 pm Petr Pudlak

Add a function that enhances readJSON error messages

If an error occurs, the error message is annotated with a given textual
description of the parsed type and optionally also with the input data.

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

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

1dec44b2 01/28/2014 05:10 pm Klaus Aehlig

Add missing import

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

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

16b85a3c 01/27/2014 11:38 am Klaus Aehlig

Haskell style: explicit errors, visible in the type

While it is already standard in the Ganeti code base, explicitly
document that we do not like Exceptions and use sum types instead.

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

b10df4de 01/27/2014 11:38 am Klaus Aehlig

Clarify spacing in record syntax

So far, our code base does not have a consistent way of spacing
records. To work towards more consistency, add a recommendation
into out style guide. We standardize on what seems most common
in the Haskell world and also is the dominant form in our code...

7bd8ce44 01/27/2014 11:38 am Petr Pudlak

Improve the point-free section of the style guide

Distinguish declaring functions in the point-free style and using
a very similar technique to avoid parentheses (which isn't technically
point-free).

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

a41a1eec 01/27/2014 11:38 am Santi Raffa

Add code style document to documentation

The Ganeti code style has been stored on the project wiki at:

https://code.google.com/p/ganeti/wiki/StyleGuide
https://code.google.com/p/ganeti/wiki/HaskellStyleGuide

This commit combines the two pages into an .rst file with minimal...

bced76fd 01/27/2014 11:37 am Jose A. Lopes

Export docs from wiki to repo

Export documents about 'cluster keys replacement' and 'design file
based storage' from the wiki to the repository.

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

8dba1797 01/27/2014 11:18 am Klaus Aehlig

Revision bump for 2.9.3

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

57293135 01/27/2014 11:18 am Klaus Aehlig

Schedule 2.9.3 release

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

918512c0 01/27/2014 10:50 am Jose A. Lopes

Fix chroot for sid to include the development tools

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

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