Statistics
| Branch: | Tag: | Revision:

root @ e817723c

# Date Author Comment
e817723c 11/13/2013 05:04 pm Klaus Aehlig

Add missing Constructor for SetParamsMods

Disks and nics can not only be addressed by indices, but also
by name. Hence add a constructor for this case as well, to be
faithful to the python world.

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

edcad688 11/13/2013 02:25 pm Petr Pudlak

Ignore hlint warning "Error: Too strict if" in Server.hs

A previous patch [229da00] added an annotation for ignoring the warning,
but to the middle of a function, which doesn't compile. This patch moves
the annotation to the end of the function to correct the problem....

229da00f 11/13/2013 11:40 am Petr Pudlak

Ignore hlint warning "Error: Too strict if" in Server.hs

This warning appears only in newer versions of hlint (mine was v1.8.43),
and in this case it's reported incorrectly. The arguments to "showJSON"
have different types, therefore it's not possible to move "showJSON" in...

245c0610 11/12/2013 03:23 pm Klaus Aehlig

Document incompatible change of luxi

With the change to luxid handling job queue requests, we
also inherited the parsing semantics of luxid, i.e., a
request is only considered syntactically correct, if all
parts are. Document that we decided to consider this change...

c0827de8 11/12/2013 03:23 pm Klaus Aehlig

Adapt TestJobSubmission to new semantics of SubmitManyJobs

Historically, Ganeti would partially handle syntactically incorrect
luxi requests, if the outer structure was that of SubmitManyJobs
request. Moreover, this behavior was verified by a test. We changed to...

ec3b36c8 11/12/2013 03:23 pm Klaus Aehlig

Update future upgrade plans

Now that mandatory opcode fields are mandatory also on disk,
document that, once we use soft drains during upgrades, the disk
representation of the job queue needs to be updated by cfgupgrade
as well.

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

a9e1819b 11/12/2013 03:23 pm Klaus Aehlig

Add a constructor to BaseOpCode

In order to guarantee all mandatory slots to be present, add
a custom constructor to BaseOpCode adding those fields with
default value, instead of inheriting the constructor from
outils.ValidatedSlots.

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

e4236bbd 11/11/2013 10:29 pm Santi Raffa

FillDict: do not use exceptions for flow control

While it's generally better to beg for forgiveness than ask for
permission in Python, it's not a good idea to rely on exceptions to
model control flow, especially if the resulting code is simpler.

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

a09639d1 11/11/2013 10:29 pm Santi Raffa

Remove hardcoded references to File, SharedFile templates

DTS_FILEBASED is a constant that exists and this commit makes sure
that it is used whenever sensible, rather than resorting to hardcoding
the pair of templates in very many files.

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

704b51ff 11/08/2013 07:00 pm Klaus Aehlig

Make masterd call luxid to write jobs to queue

As the responsibility for writing the job queue changed
to luxid, make masterd call to luxid when it is necessary
to write a job.

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

e9cf6af0 11/08/2013 07:00 pm Klaus Aehlig

Set reason trail for derived opcodes

As the base parameters also includes the reason trail,
set it, if not set already, together with the other
base parameters in the case of an opcode expanding to
a list of opcodes.

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

94d6d0a3 11/08/2013 07:00 pm Klaus Aehlig

Make luxid handle SubmitManyJobs

Handle this request by writing the jobs to the
queue and inform masterd; masterd will then also
distribute the jobs to all master candidates.

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

e5fba493 11/08/2013 07:00 pm Klaus Aehlig

Make luxid handle SubmitJob

As luxid is to take over responsibility for the job queue,
handle this request by writing the job to the queue and then
informing masterd; masterd will also distribute the job to
all master candidates.

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

1b94c0db 11/08/2013 07:00 pm Klaus Aehlig

Add the predicate of the queue being open

Adding jobs to the queue is only allowed if the queue
is not drained.

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

e773a018 11/08/2013 07:00 pm Klaus Aehlig

Provide path to the queue drain file

Since luxid is going to write to the job queue,
it needs to honor drains of the queue as well.

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

d9d1e541 11/08/2013 07:00 pm Klaus Aehlig

Add Luxi Request to pick up a job in the queue

During the transition to the new daemon layout, from step 2
onwards, luxid will write to the queue but masterd will trigger
the execution. Therefore, add a new luxi request to tell masterd
to pick up a job that has already been written to the queue....

fcd70b89 11/08/2013 07:00 pm Klaus Aehlig

Factor out functionality to pickup a job from the queue

The current restart procedure for masterd includes functionality
to pick up a job from the queue and restart it, if it hasn't been
started before. Move this functionality into a separate function
to be able to have the enqueuing be done by luxid....

32b07c5f 11/08/2013 07:00 pm Klaus Aehlig

Provide means of locking a file

Two avoid two processes simultaneously accessing the same
on-file structure, like the job queue, file locks are used.
Therefore, provide this functionality in Haskell as well.

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

02926b4b 11/08/2013 07:00 pm Klaus Aehlig

Provide path to the queue lock file

To avoid several processes accessing the queue at the same time,
Ganeti locks the queue via a lock file on disk. Provide the path
to this file.

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

b498ed42 11/08/2013 07:00 pm Klaus Aehlig

Provide a function to write jobs to disk

This function writes a (non-archived) job to disk. The file
name can be computed from the job id, which is part of the job.

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

ae858516 11/08/2013 07:00 pm Klaus Aehlig

Provide means to allocate new job ids

Add utility functions to allocate new job ids by increasing
the value stored in the serial file. As this function is
used in a multi-threaded program, synchronize access over
an internal lock.

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

f5a67757 11/08/2013 07:00 pm Klaus Aehlig

Add function to get master candidates from configuration

With luxi daemon taking over part of the job queue management, it will
also be responsible for replicating the queue to all master candidates.
Therefore, add a function to extract the list of master candidates from...

a716edba 11/08/2013 07:00 pm Klaus Aehlig

Support RPC asking to replicate part of the job queue

To be able to replicate the job queue, in particular the serial,
luxid needs to be able to send the jobqueue_update RPC. So add
its definition.

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

bf7ee7ad 11/08/2013 07:00 pm Klaus Aehlig

Provide function to obtain the unique element of a list

This version of 'the' properly lives in the 'Result' monad,
as opposed to traditional one calling 'error'. The reason
why it is 'Bad' that not precisely one element is returned
is given as argument....

cef3f99f 11/08/2013 07:00 pm Klaus Aehlig

Provide method to read job serial number

This methods allows reading the maximal job serial number from
disk.

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

1c1132f4 11/08/2013 07:00 pm Klaus Aehlig

Provide convenience function to create Job from op-codes

This function handles the pure part of generating a job,
i.e., assuming the job id already assigned and not setting
time stamps.

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

62933497 11/08/2013 07:00 pm Klaus Aehlig

Add function to resolve dependencies in meta op code

When queueing many jobs, the dependencies between them need to
be resolved with the knowledge of their respective job id.
Lift the computation of the absolute dependency to the level
of MetaOpCodes.

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

966ea086 11/08/2013 06:59 pm Klaus Aehlig

Add function to compute the absolute id of a dependency

SubmitManyJobs also accepts jobs with dependencies given as
relative ids. Together with the absolute id of the job, once
assigned, the dependency can be resolved. Add a function doing
this computation....

4b49a72b 11/08/2013 06:59 pm Klaus Aehlig

Provide a convenience method to optain a QueuedOpCode

When generating jobs from sequences of op-codes, it is necessary
to wrap op-codes into queued form.

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

5badb3e7 11/08/2013 06:59 pm Klaus Aehlig

Add utility function tryAndLogIOError

This function allows to use 'IO a' objects in a safe
way, using the 'try' function; the outcome is reported
as a 'Result'. IOErrors are logged and the result is
'Bad', while in the case of no errors, a result-yielding...

710f5ae2 11/08/2013 06:59 pm Klaus Aehlig

Provide utility to atomically write a file

To keep our on-file data consistent at any moment, we change
file contents by atomically replacing the file with a new one.

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

3ff2cf55 11/08/2013 06:23 pm Petr Pudlak

Design document for custom SSH ports

See issue 235. It turned out the feature is a bit more complex than expected,
hence this design doc.

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

d16e3ce4 11/06/2013 05:33 pm Jose A. Lopes

Optimize Haskell compilation

The idea is to compile (on demand, that is, when necessary) each
source file to a normal object file, a coverage object file, a
profiling object file, and a test object file. Also, a given Haskell
binary is linked with the proper object files. This is achieved with...

dfcebee3 11/05/2013 05:41 pm Klaus Aehlig

Fix getNodeRole

In the configuration, the master node is now given
by its uuid. Therefore, compare the uuid and not the
name to find out if a given node is the master.

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

cba1fce1 11/05/2013 03:31 pm Klaus Aehlig

Merge branch 'stable-2.10' into master

  • stable-2.10
    Fix documentation
    Replace all constant definitions with re-exports
    Prepare constants for automatic reexport
    Hs2Py constants: 'hvsParameterTypes' and 'hvsParameters'
    Fix indentation that triggers PEP8 error...
8dd23148 11/05/2013 02:57 pm Klaus Aehlig

Merge branch 'stable-2.9' into stable-2.10

  • stable-2.9
    Revision bump for 2.9.0
    Schedule release of 2.9.0
  • stable-2.8
    Improve error message for replace-disks

Conflicts:
NEWS: trivial
configure.ac: drop suffix bump of stable-2.9

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

eb9861d3 11/04/2013 06:26 pm Klaus Aehlig

Revision bump for 2.9.0

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

357f2342 11/04/2013 06:25 pm Klaus Aehlig

Schedule release of 2.9.0

...and mention the last change pulled in from stable-2.8.

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

f9dfa8df 11/04/2013 05:52 pm Klaus Aehlig

Merge branch 'stable-2.8' into stable-2.9

  • stable-2.8
    Improve error message for replace-disks

Conflicts:
lib/cmdlib/instance_storage.py
Resolved by manually applying the node name to uuid
transition on the version of stable-2.9.

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

34ea8da3 11/04/2013 05:30 pm Michele Tartara

Improve error message for replace-disks

In some conditions, replace-disks will fail if the disks are not properly
activated. Improve the error message suggesting to run activate-disks before
executing replace-disks.

Fixes Issue 606.

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

4c5cb91e 11/04/2013 01:39 pm Jose A. Lopes

Fix documentation

Fix documentation in constants containing values in seconds.

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

ffab1490 11/04/2013 01:39 pm Jose A. Lopes

Replace all constant definitions with re-exports

Remove all constant definitions in 'lib/constants.py' and re-export
the module 'lib/_constants.py', which contains the generated
constants.

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

ba174485 11/04/2013 01:39 pm Jose A. Lopes

Prepare constants for automatic reexport

  • separate constants and non-constants in 'lib/constants.py' to make
    it simple to replace their re-export definitions with a single
    re-export statement at the begining of the module
  • fix access 'CONFD_REQFIELD_*' related constants in...
4dddf578 11/04/2013 01:39 pm Jose A. Lopes

Hs2Py constants: 'hvsParameterTypes' and 'hvsParameters'

Add constants 'hvsParameters' and 'hvsParameterTypes' to the Haskell
to Python constant generation.

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

d5a9b556 11/04/2013 12:57 pm Petr Pudlak

Add visual/color marks to the QA script

  • Use different visual marks at the beginning of lines (such as "<<<<" for
    starting a test and ">>>>" for finishing it)
  • Show more specifically if a test fails/passes.
  • If stdout is a terminal, use colors to distinguish different messages...
c5c8d092 10/31/2013 06:39 pm Petr Pudlak

Add the function name to textual descriptions of tests

It makes it a bit easier to find the corresponding functions.

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

b15d5bd3 10/31/2013 06:18 pm Petr Pudlak

Fix indentation that triggers PEP8 error

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

958c943b 10/31/2013 06:00 pm Klaus Aehlig

hsqueeze: document expansion planning in man page

Describe the new behavior of hsqueeze to also plan taking nodes online
in the man page.

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

65d356d2 10/31/2013 06:00 pm Klaus Aehlig

Add a test for hsqueeze expansion

In this example, there are 7 nodes, each with capacity for
4 instances. Two nodes are online and host 4 instances each,
thus forming a cluster with no free resources. Four additional
nodes a standby, and two additional node is offline for other...

c407510c 10/31/2013 06:00 pm Klaus Aehlig

hsqueeze: support planing for onlining nodes

If the amount of free resources falls below a given threshold,
hsqueeze will suggest putting standby nodes back online until
the minimum of free resources is reached, or all standby nodes
are online.

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

9c53f891 10/31/2013 06:00 pm Klaus Aehlig

Add an --minimal-resources option

Add a new option, to be used by hsqueeze, to specify
the amount of free resources that has to be on each
node, in order not to start onlining standby nodes.
It is given as a multiple of the standard allocation,
as specified by the instance policy....

b679628f 10/31/2013 05:59 pm Klaus Aehlig

Text Backend: correctly read data for offline nodes

With standby nodes, simply ignoring the specification of
an offline node is not sufficient any more.

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

db0ea4ae 10/31/2013 05:59 pm Klaus Aehlig

hsqueeze: add a test for the -v option

This test also verifies that the master node is
not considered for being offlined.

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

7839bb67 10/31/2013 05:59 pm Klaus Aehlig

Change default for target resource to 2.0

The target resources, as used by hsqueeze, are supposed to
be strictly higher than the minimal resources. However,
keeping minimal resources of less than a single instance
is not a useful reserve.

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

e77bb27d 10/31/2013 05:59 pm Klaus Aehlig

git-ignore test/hs/hsqueeze

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

0e627824 10/31/2013 03:18 pm Klaus Aehlig

configure: avoid duplicate Haskell module checking

There are some Haskell modules, that are optional for production,
but needed in test. Check for those only once, by unconditionally
checking before considering the modules for the specific feature.

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

bb133242 10/31/2013 12:46 pm Klaus Aehlig

Merge branch 'stable-2.10' into master

  • stable-2.10
    Remove FIXME + update man pages wrt iallocator
    Don't check for master netdev when using OVS
    Fix TypeError in backend/ConfigureOVS
    Create Open vSwitch on Master during Cluster init
    SimpleRetry on BlockDev.Remove()...
24711492 10/31/2013 11:28 am Dimitris Aragiorgis

Check if hotplug is supported in CheckPrereq

Introduce new RPC hotplug_supported that invokes the corresponding
hypervisor's method which checks if hotplug is generally
supported. Call this RPC early in CheckPrereq() and abort if
hotplug is not supported. Currently only KVM hypervisor with...

cabc869c 10/30/2013 03:30 pm Klaus Aehlig

Merge branch 'stable-2.9' into stable-2.10

  • stable-2.9
    (no changes)
  • stable-2.8
    Add all dependencies for confd as test dependencies
    Add snap-server to the test-relevenat packages
    Placate warnings on ganeti.outils_unittest.py

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

a50b49b8 10/30/2013 02:58 pm Klaus Aehlig

Merge branch 'stable-2.8' into stable-2.9

  • stable-2.8
    Add all dependencies for confd as test dependencies
    Add snap-server to the test-relevenat packages
    Placate warnings on ganeti.outils_unittest.py

Conflicts:
configure.ac: take both additions (and fix)...

708f8301 10/30/2013 02:06 pm Helga Velroyen

Remove FIXME + update man pages wrt iallocator

This patch removes a FIXME regarding the retrieval
of the disk template for computation of the cluster
information for the iallocator. After examining the
code, I figured out that it is actually a quite
robust way to just check if the disk template is...

7e360262 10/30/2013 12:34 pm Klaus Aehlig

Add all dependencies for confd as test dependencies

Since our tests pull in confd as a dependency, all build dependencies
for confd are also necessary to run the tests.

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

d5e9de7c 10/30/2013 11:35 am Sebastian Gebhard

Don't check for master netdev when using OVS

This patch disables checking if the given master_netdev exists during cluster
init.
When OVS is used, the needed Open vSwitch will be created later on (with
OpClusterPostInit) and is thus not available at this point of time....

a1578ccf 10/30/2013 11:35 am Sebastian Gebhard

Fix TypeError in backend/ConfigureOVS

In case of running into a failure during Open vSwitch creation, the error is
not given, but a TypeError is thrown. This is because the number of arguments
for the format string was not equal to the place holders.

This fixes the issue....

25ea5b98 10/30/2013 11:35 am Sebastian Gebhard

Create Open vSwitch on Master during Cluster init

Currently, Open vSwitch is only created on additional nodes, not on the master
itself.
This fixes the issue and creates and configures an Open vSwitch on the master
node during cluster init.

Signed-off-by: Sebastian Gebhard <>...

a8b1e9f8 10/30/2013 11:26 am Hrvoje Ribicic

Add design document for multi-version tests

This patch adds a design document for multi-version tests, discussing
what they aim to do and how they should be implemented.

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

b3ae67d7 10/30/2013 11:03 am Dimitris Aragiorgis

SimpleRetry on BlockDev.Remove()

Sometimes, upon disk removal, corresponding file descriptors
are kept briefly open by various processes (hypervisor, blkid, etc.).
With this patch, we retry several times before raising the appropriate
error, thus making disk removal more robust against those corner cases....

cf2cda79 10/29/2013 05:48 pm Klaus Aehlig

Add snap-server to the test-relevenat packages

While snap-server is only needed for the optional monitoring daemon,
some tests, notably those testing these optional features, still depend
on it. So, if snap-server is missing, the Haskell tests should not be...

7d993147 10/29/2013 03:56 pm Thomas Thrainer

Mention compression for moves/backups in NEWS

Mention the possibility to specify compression for transfers / instance
storage in NEWS file.

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

5c5c73fd 10/29/2013 03:56 pm Thomas Thrainer

Add --compress option to instance_move

instance_move now supports the --compress option with which it's
possible to select the compression mode to use during the instance move.

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

88acff3f 10/29/2013 03:56 pm Thomas Thrainer

Add possibility to compress to OpInstanceCreate

OpInstanceCreate now supports the 'compress' option. It allows to enable
compression during instance imports.

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

258de3fe 10/29/2013 03:56 pm Thomas Thrainer

Honor compress parameter in remote backups

Use the specified compression mode not only for local exports, but also
for remote ones.

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

8ca22fef 10/29/2013 03:56 pm Thomas Thrainer

Add --compress option to gnt-backup import

Add a new command line parameter to gnt-backup import and pass
its value to OpInstanceCreate. Also document the option in the
man page.

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

0a6e6e6d 10/29/2013 03:56 pm Thomas Thrainer

Add --compress option to gnt-backup export

Add a new command line parameter to gnt-backup export and pass its value
to OpBackupExport. Also document the option in the man page.

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

51d7ac96 10/29/2013 03:56 pm Thomas Thrainer

Support import with compressed instance moves

Support compressing instance data while sending it to the target node on
instance imports.

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

896cc964 10/29/2013 03:56 pm Thomas Thrainer

Add local compression to OpBackupExport

OpBackupExport is extended by a compress parameter. This parameter
(either 'none' or 'gzip') controls if instance disks are compressed
before being sent over the network to the destination node.

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

94ab995a 10/29/2013 03:56 pm Thomas Thrainer

Add --compress option to gnt-instance move

Add a new command line parameter to gnt-instance and pass its value to
OpInstanceMove. Also document the option in the man page.

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

f198cf91 10/29/2013 03:56 pm Thomas Thrainer

Add possibility to compress to OpInstanceMove

OpInstanceMove now supports the 'compress' option. It allows to enable
compression for intra-cluster instance moves.

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

f048c574 10/29/2013 03:56 pm Thomas Thrainer

Remove trailing whitespace

Remove trailing whitespace from OpCodes.hs and OpParams.hs.

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

3fd85fba 10/29/2013 03:56 pm Thomas Thrainer

Remove blockdev_export RPC

This RPC call is no longer used, as for intra-cluster instance moves the
import/export daemon is used too.

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

a986a581 10/29/2013 03:56 pm Thomas Thrainer

Optimize dd parameters for instances moves

Benchmarks have shown that increasing the buffer size and disabling
synchronous output increased the throughput by about 10MiB/s, so make
those parameters the default.

Note that not using sync for output doesn't increase the risk of data...

063613aa 10/29/2013 03:56 pm Thomas Thrainer

Use import-export daemon for intra-cluster moves

This unifies the inter- and intra-cluster moves and the backup code, so
less code needs to be maintained.

Also fix failing tests for LUInstanceMove by following the code changes
in the tests.

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

d29f52a6 10/29/2013 03:56 pm Thomas Thrainer

Use cluster variable consistently

The cluster object is already retrieved from the configuration, so use
it consistently in LUInstanceMove.CheckPrereq().

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

83266db6 10/29/2013 03:56 pm Thomas Thrainer

Correct comments

Correct comments which confuse the target node with the secondary node
of an instance in LUInstanceMove.

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

80ae381e 10/29/2013 03:56 pm Klaus Aehlig

Fix expectation of the htools wrapping

With the addition of hsqueeze, htools obtained a new personality.
Additionally, the longer htool name also changes the line wrapping of
the descriptions. Adapt the expectation accordingly.

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

9e354be4 10/29/2013 02:26 pm Klaus Aehlig

Add a man page for hsqueeze

Describe the current state of the Ganeti dynamic power management
tool, hsqueeze, in a man page.

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

1c912fd2 10/29/2013 02:26 pm Klaus Aehlig

Add test for hsqueeze compression

In this example cluster, there are 6 nodes with
capacity for 4 instances each, holding a total
of 8 instances. So even after turning off 2 nodes
and rebalancing, every node still has capacity for
2 instances.

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

5f6e9cb9 10/29/2013 02:26 pm Klaus Aehlig

Add hsqueeze planning for compression

Add a new htool, hsqueeze, for dynamic power management. This
commit only implements the first useful part: plan (but not
executing) taking nodes offline nodes still keeping within the
resource limit.

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

d2fd234c 10/29/2013 02:26 pm Klaus Aehlig

Provide --target-resources option

Add a new option, to be used by hsqueeze, to specify the
target free resources on each node. It is given as a multiple
of the standard allocation, as specified in the instance policy.

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

0b9175cb 10/28/2013 05:24 pm Petr Pudlak

Show the key in "'None' is not a valid Maybe value"

Currently the error message doesn't say which key is affected, which
makes it kind of useless.

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

47c477c8 10/28/2013 04:53 pm Petr Pudlak

Add RpcResult.__repr__ for debugging

This way it's possible to easily log the whole result in a human
readable form.

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

79a32c67 10/28/2013 04:13 pm Petr Pudlak

Let git ignore `.hsenv` directory and vim's session file

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

542a91d4 10/28/2013 04:09 pm Petr Pudlak

If a configuration file can't be loaded, show which one

So far the error message only says it can't be loaded, but not what file
it is.

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

46cc1ab4 10/28/2013 01:48 pm Hrvoje Ribicic

Refactor `getAllConsoleParams` to be more readable

Instead of creating a lot of lists and then zipping them, just work
on every item one at a time. It makes the code much more readable.
This changes the ordering of "effects", but the "effects" here are just...

9c8f7bf4 10/28/2013 12:07 pm Helga Velroyen

Fix usage of xm/xl for gnt-instance modify --new-primary

This fixes issue 519. When calling 'gnt-instance modify
--new-primary', an exception was raised, because a
RPC call was not called with the right hypervisor
parameters which caused the backend function to crash,...

a49e7e0d 10/28/2013 12:05 pm Jose A. Lopes

Hs2Py constants: add 'hvcDefaults'

Add 'hvcDefaults' to the Haskell to Python constant generation.

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

413434a5 10/28/2013 12:04 pm Jose A. Lopes

Fix documentation

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

df2e0fa5 10/28/2013 12:04 pm Jose A. Lopes

Hs2Py constants: add 'diskDtDefaults'

  • add constant 'diskDtDefaults' to the Haskell to Python constant
    generation
  • remove 2 local variables which were used only by 'DISK_DT_DEFAULTS'
    and are, therefore, no longer necessary

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

558d8ed8 10/28/2013 12:04 pm Jose A. Lopes

Fix documentation

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

a2b55ccd 10/28/2013 12:04 pm Jose A. Lopes

Hs2Py constants: add 'value*' and 'niccDefaults'

  • add group of constants 'value*' and constant 'niccDefaults' to the
    Haskell to Python constant generation
  • add 'PythonNone' to represent the 'None' is Haskell to Python
    generated code

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