Statistics
| Branch: | Tag: | Revision:

root @ 22381768

# Date Author Comment
d696bbef 11/21/2012 03:51 pm Iustin Pop

Add more basic Ganeti types

These are needed both in opcodes and (potentially) outside, so we add
them in the main Types module.

Signed-off-by: Iustin Pop <>
Reviewed-by: Michael Hanselmann <>

edc1acde 11/21/2012 03:51 pm Iustin Pop

Generalise the JSON "Container" type

Currently, we have some types that we kept as dictionaries in the
objects representation (due to inconsistent behaviour, or other
technical reasons). This should be improved in the future, but in the
meantime we can improve the Container type by allowing its keys to be...

22381768 11/21/2012 03:51 pm Iustin Pop

Move the 'Hypervisor' type from Objects to Types

This is a very basic type and 'Objects' is a heavy-weight module. By
moving it to 'types' we simplify (in the future) the import chains.

Signed-off-by: Iustin Pop <>
Reviewed-by: Adeodato Simo <>

405bffe2 11/21/2012 03:43 pm Michael Hanselmann

Rename leftovers from remote to restricted commands

As per Iustin Pop's suggestion in <> on
<>.

Signed-off-by: Michael Hanselmann <>
Reviewed-by: Guido Trotter <>

42bd26e8 11/21/2012 03:43 pm Michael Hanselmann

backend: Rename RunRemoteCommand to RunRestrictedCmd

As per Iustin Pop's suggestion in <> on
<>.

Signed-off-by: Michael Hanselmann <>
Reviewed-by: Guido Trotter <>

878c42ae 11/21/2012 03:43 pm Michael Hanselmann

Rename constants and directory for restricted commands

As per Iustin Pop's suggestion in <> on
<>.

Signed-off-by: Michael Hanselmann <>
Reviewed-by: Guido Trotter <>

1fdeb284 11/21/2012 03:43 pm Michael Hanselmann

Rename configure option for restricted commands

It is no longer “--enable-remote-commands”, but rather
“--enable-restricted-commands”.

Signed-off-by: Michael Hanselmann <>
Reviewed-by: Iustin Pop <>

6d846d0e 11/21/2012 03:43 pm Michael Hanselmann

Add command line interface for running commands remotely

This patch adds a new command, “gnt-node restricted-command”. Since the
semantics are different from “gnt-cluster command”, the same subcommand
shouldn't be re-used.

The included man page update also includes a small description of how to...

74434d27 11/21/2012 03:40 pm Michael Hanselmann

Remove delayed iallocator call in TLReplaceDisks

By setting the “delay_iallocator” parameter one could delay the call to
the instance allocator. This was not used for some time now, but the
code was still there.

Signed-off-by: Michael Hanselmann <>...

de0417fa 11/21/2012 03:40 pm Michael Hanselmann

cmdlib: Merge duplicated code for TLMigrateInstance

LUInstanceFailover and LUInstanceMigrate use TLMigrateInstance and had
the essentially same code for expanding names and declaring locks. In
LUInstanceMigrate.ExpandNames there was a mistake which led to node...

f3196d68 11/21/2012 12:53 pm Helga Velroyen

Fix lint error about too many variables

Lint complains about too many variables in the CheckPrereq
method. While I think that this method/class would need
some refactoring in general, at least this patch makes lint
shut up for now.

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

7309e7b6 11/21/2012 11:21 am Helga Velroyen

Check ispecs against ipolicy on instance modify

When modifying an instance, so far the specs were not checked against
the ipolicy. This patch fixes this issue.

Note that for backend parameters which have a minimum and a maximum
value (currently only memory), it checks both limits against the...

621b43ed 11/21/2012 08:37 am Michael Hanselmann

locking.LockSet: Replace boolean parameter with constants

Upcoming changes will add opportunistic locking to “locking.LockSet”.
Doing so will require additional code in “LockSet.__acquire_inner”, at
which point the existing “want_all” parameter does not always apply....

bfbe8c51 11/21/2012 08:23 am Michael Hanselmann

RAPI: Clarify non-exhaustive nature of examples

The examples given in the RAPI documentation are not exhaustive. This
patch tries to clarify this by adding ellipses where appropriate. One
example's indentation is also fixed.

Signed-off-by: Michael Hanselmann <>...

6252c0bd 11/21/2012 08:23 am Michael Hanselmann

Add tests for repr in locking classes

“locking.PipeCondition” and “locking.SharedLock” define “__repr__”,
which until now was not tested at all.

Signed-off-by: Michael Hanselmann <>
Reviewed-by: Guido Trotter <>

8c114acd 11/21/2012 08:23 am Michael Hanselmann

test/*.py: s/'/"/

Now that 2.6 is essentially finished and 2.7 going to be branched
soon-ish, I thought it would be a good moment to replace some single
quotes in test/*.py. Merge pains should be limited.

In one place in test/ganeti.locking_unittest.py, spaces are added for...

5b34cc22 11/21/2012 08:21 am Michael Hanselmann

network: Style updates

- Quote characters
- Docstrings

Signed-off-by: Michael Hanselmann <>
Reviewed-by: Guido Trotter <>

0a09b080 11/21/2012 08:21 am Michael Hanselmann

Document requirement for ipaddr and bitarray modules

Also update configure.ac.

Signed-off-by: Michael Hanselmann <>
Reviewed-by: Guido Trotter <>

a138ead7 11/21/2012 08:21 am Michael Hanselmann

ht: Complain if TNone isn't listed first for TOr/TAnd

Some type descriptions are rather long. If "None" is listed at the end
or somewhere in between it is easily missed. Therefore it should be at
the beginning, e.g. "None or (long description)".

Signed-off-by: Michael Hanselmann <>...

6ae72286 11/21/2012 08:21 am Michael Hanselmann

Add unit test for default parameter default values

Fails if the default value of an opcode parameter doesn't verify.

Signed-off-by: Michael Hanselmann <>
Reviewed-by: Guido Trotter <>

32e3d8b1 11/21/2012 08:20 am Michael Hanselmann

opcodes: Network parameter improvements and fixes

- Use variables for checks for IP addresses (makes them more consistent,
too)
- Fix checks to accept default values
- Small description improvements (e.g. s/IP/IP address/)

Signed-off-by: Michael Hanselmann <>...

1f84cca8 11/21/2012 08:18 am Michael Hanselmann

Merge branch 'devel-2.6'

  • devel-2.6:
    Fix opcode validation for OpOobCommand.command
    Fix typo in manpage for gnt-os
    gnt-instance.8: Add index to disk and nic removal

Signed-off-by: Michael Hanselmann <>
Reviewed-by: Guido Trotter <>

6cbf6d9a 11/21/2012 07:51 am Michael Hanselmann

Merge branch 'stable-2.6' into devel-2.6

  • stable-2.6:
    Fix opcode validation for OpOobCommand.command
    Fix typo in manpage for gnt-os
    gnt-instance.8: Add index to disk and nic removal

Signed-off-by: Michael Hanselmann <>
Reviewed-by: Guido Trotter <>

a13d34a6 11/21/2012 03:44 am Michael Hanselmann

locking: Use frozenset instead of utils.UniqueSequence

In this case “frozenset” is good enough as the result's order doesn't
matter--it is the input to “sorted” (“utils.UniqueSequence” preserves
the order). “frozenset” is ca. 25% faster for this use-case....

0ef4d576 11/21/2012 03:44 am Michael Hanselmann

locking: Add test for downgrade without names

Until now there was no test for calling “LockSet.downgrade” without
specifying any names.

Signed-off-by: Michael Hanselmann <>
Reviewed-by: Guido Trotter <>

39573352 11/20/2012 08:04 pm Iustin Pop

Fix some more hlint warnings

Sorry…

Signed-off-by: Iustin Pop <>
Reviewed-by: Helga Velroyen <>

f500d80b 11/20/2012 07:51 pm Iustin Pop

Fix tools/move-instance after networks addition

Commits d4117a72 (“Modify LUInstanceCreate to support networks”) and
09a3d21f (“Pass detailed network info in hooks“) expanded the nic
information as computed by _NICToTuple, which means that the format of
the result value from LUInstanceQueryData has changed, and...

8df21834 11/20/2012 07:51 pm Dimitris Aragiorgis

Move _BuildNetworkEnv() at top-level

Signed-off-by: Dimitris Aragiorgis <>
Reviewed-by: Iustin Pop <>

861a92b4 11/20/2012 07:51 pm Dimitris Aragiorgis

Use bitarray 0.8 interface

Signed-off-by: Dimitris Aragiorgis <>
Reviewed-by: Iustin Pop <>

cfcea7ef 11/20/2012 07:51 pm Dimitris Aragiorgis

Minor fix in query.py

Signed-off-by: Dimitris Aragiorgis <>
Reviewed-by: Iustin Pop <>

08ed6998 11/20/2012 07:51 pm Dimitris Aragiorgis

Minor fix in ovf

Signed-off-by: Dimitris Aragiorgis <>
Reviewed-by: Iustin Pop <>

6a94d553 11/20/2012 07:51 pm Dimitris Aragiorgis

Fix a few docstrings

Signed-off-by: Dimitris Aragiorgis <>
Reviewed-by: Iustin Pop <>

1f1d3bf2 11/20/2012 07:51 pm Dimitris Aragiorgis

Simplify GenerateFree in network module

GenerateFree now returns the first available IP in the network
or raises AddressPoolError if it is full.

Signed-off-by: Dimitris Aragiorgis <>
Reviewed-by: Iustin Pop <>

7f033fb3 11/20/2012 07:51 pm Dimitris Aragiorgis

Add docstring to the GetECReserved config method

Signed-off-by: Dimitris Aragiorgis <>
Reviewed-by: Iustin Pop <>

e81eef56 11/20/2012 07:51 pm Dimitris Aragiorgis

Replace string values with proper constants

_UnlockedCommitIp is used either for releasing or reserving an
IP inside a network. New constants RELEASE_ACTION/RESERVE_ACTION
are used to decide which is the case.

Signed-off-by: Dimitris Aragiorgis <>...

032a7d71 11/20/2012 07:51 pm Dimitris Aragiorgis

Simplify mac generation funtions

Introduce new config method _UnlockedGetNetworkMACPrefix and refactor
original _GenerateOneMAC so that it takes prefix as an optional
argument and returns a function that actually generates a MAC. If
prefix is not given or None it uses the cluster level default....

538427e6 11/20/2012 07:51 pm Dimitris Aragiorgis

Fix _ComputeNics to include network slot

This bug was introduced after rebasing master branch.

Signed-off-by: Dimitris Aragiorgis <>
Reviewed-by: Iustin Pop <>

1fa2c40b 11/20/2012 07:51 pm Dimitris Aragiorgis

Fixes to pass py-apidoc (make commit-check)

Signed-off-by: Dimitris Aragiorgis <>
Reviewed-by: Iustin Pop <>

3c286190 11/20/2012 07:51 pm Dimitris Aragiorgis

Fixes to pass pep8 (make lint)

Signed-off-by: Dimitris Aragiorgis <>
Reviewed-by: Iustin Pop <>

beb81ea5 11/20/2012 07:51 pm Dimitris Aragiorgis

Fixes to pass pylint (make lint)

Signed-off-by: Dimitris Aragiorgis <>
Reviewed-by: Iustin Pop <>

6e8091f9 11/20/2012 07:51 pm Dimitris Aragiorgis

Fixes to pass unittests (make check)

Signed-off-by: Dimitris Aragiorgis <>
Reviewed-by: Iustin Pop <>

77aab207 11/20/2012 07:51 pm Dimitris Aragiorgis

Check for existing networks/groups in Network LUs

Signed-off-by: Dimitris Aragiorgis <>
Reviewed-by: Iustin Pop <>

8140e24f 11/20/2012 07:51 pm Dimitris Aragiorgis

Add tags in network objects

Support:
- gnt-network add --tags.
- gnt-network list-tags/add-tags/remove-tags/.
- gnt-network list -o +tags

Signed-off-by: Dimitris Aragiorgis <>
Reviewed-by: Iustin Pop <>

d5ed7dce 11/20/2012 07:51 pm Dimitris Aragiorgis

Change default fields for network listing

Signed-off-by: Dimitris Aragiorgis <>
Reviewed-by: Iustin Pop <>

cbe4a0a5 11/20/2012 07:51 pm Dimitris Aragiorgis

Pass netinfo in rpcs

If a nic has a network field then encapsulate a network object in
netinfo slot for every rpc. This is needed to pass network info to
scripts managing nics (kvm-vif-bridge).

Introduce _BuildNetworkEnv().

Signed-off-by: Dimitris Aragiorgis <>...

09a3d21f 11/20/2012 07:51 pm Dimitris Aragiorgis

Pass detailed network info in hooks

Signed-off-by: Dimitris Aragiorgis <>
Reviewed-by: Iustin Pop <>

58bf877f 11/20/2012 07:51 pm Dimitris Aragiorgis

cfgupgrade for networks

Add networks slot in config data.
Add networks slot in nodegroups.

Signed-off-by: Dimitris Aragiorgis <>
Reviewed-by: Iustin Pop <>

a0af6c80 11/20/2012 07:51 pm Dimitris Aragiorgis

Use network's mac prefix

Modify existing GenerateMAC so that it takes network as an argument.

Substitute _GenerateOneMAC with a decorator _GenerateMACPrefix that
chooses the prefix (network's or cluster's) and wraps
_GenerateMACSuffix that generates the three remaining bytes....

4e4b6b7a 11/20/2012 07:51 pm Apollon Oikonomopoulos

Include networks in Makefile and bash completion

Signed-off-by: Apollon Oikonomopoulos <>
Signed-off-by: Dimitris Aragiorgis <>
Reviewed-by: Iustin Pop <>

a04cc7a4 11/20/2012 07:51 pm Apollon Oikonomopoulos

Add gnt-network man page

Signed-off-by: Apollon Oikonomopoulos <>
Signed-off-by: Dimitris Aragiorgis <>
Reviewed-by: Iustin Pop <>

4588b4bd 11/20/2012 07:51 pm Dimitris Aragiorgis

Rapi support for networks

Support:
- GetNetwork(s)
- CreateNetwork
- ConnectNetwork
- DisconnectNetwork
- RemoveNetwork

Signed-off-by: Dimitris Aragiorgis <>
Reviewed-by: Iustin Pop <>

f2bd89b3 11/20/2012 07:51 pm Apollon Oikonomopoulos

ss_conf support for networks

Signed-off-by: Apollon Oikonomopoulos <>
Signed-off-by: Dimitris Aragiorgis <>
Reviewed-by: Iustin Pop <>

9c784fb3 11/20/2012 07:51 pm Dimitris Aragiorgis

Introduce client support for networks

gnt-network is used to manipulate and handle networks that currently
provides the following operations:

  • Add a new network:
    gnt-network add --network=1.2.3.0/28 --gateway=1.2.3.1
    --add-reserved-ips=1.2.3.4,1.2.3.5 testnet...
d4117a72 11/20/2012 07:51 pm Apollon Oikonomopoulos

Modify instance client to support networks

Add --no-conflicts-check option.
Modify instance query methods to return nic's network info.

Signed-off-by: Apollon Oikonomopoulos <>
Signed-off-by: Dimitris Aragiorgis <>
Reviewed-by: Iustin Pop <>

a5ad5e58 11/20/2012 07:51 pm Apollon Oikonomopoulos

Peripheral changes for networks

Specifically: * export a new environment variable for the gnt-os-interface * export a new environment variable for KVM specific scripts * ovf support for networks

Signed-off-by: Apollon Oikonomopoulos <>...

d1547283 11/20/2012 07:51 pm Dimitris Aragiorgis

Modify LUInstanceSetParams() to support networks

Keep backwards compatibility just like LUInstanceCreate() and support
network parameter for NIC object.

Add ec_id argument in Update() to be able to commit temporary IPs that
were previously reserved.

Signed-off-by: Dimitris Aragiorgis <>...

ced51149 11/20/2012 07:51 pm Dimitris Aragiorgis

Modify RemoveInstance() to support networks

Release any IPs held the instance before actually removing.

Signed-off-by: Dimitris Aragiorgis <>
Reviewed-by: Iustin Pop <>

e8e079f3 11/20/2012 07:51 pm Dimitris Aragiorgis

Modify LUInstanceCreate to support networks

Implement backend support, to export the IP pool management
functionality to the clients. When the new NIC parameter 'network' is
given, the ippool management system is triggered. If a NIC belongs to
a network, it inherits the netparams (mode, link) as its nicparams. If...

ad4a9ae7 11/20/2012 07:51 pm Dimitris Aragiorgis

Config methods for reserving/releasing IPs

Use TemporaryReservationManager for IP handling to ensure config data
consistency.

Implement:
- methods for reserving/releasing IPs
- _UnlockedCommitTemporaryIps()
- CheckIPInNodeGroup() used for conflicting IPs...

0fbd466b 11/20/2012 07:50 pm Dimitris Aragiorgis

Implement network/nodegroup mappings

LUNetworkConnect() connects a network to a nodegroup and defines
its netparams (mode and link). Specifically: * Check if network already exists * Check if netparams are valid * Check if already connected to the same nodegroup...

1e0d3321 11/20/2012 07:50 pm Dimitris Aragiorgis

Implement LUNetworkSetParams

Support modifying all network parameters except for network (ip
range). Cannot modify gateway and reserved ips at the same time.

Signed-off-by: Dimitris Aragiorgis <>
Reviewed-by: Iustin Pop <>

306bed0e 11/20/2012 07:50 pm Apollon Oikonomopoulos

Implement LUNetworkQuery

Summarily list all existing networks
Supply detailed info for every existing network
- List used/free IPs
- List instances with NICs assigned to the corresponding network
- List NIC index and IP for the above instances

Implement complementary config methods for retrieving networks....

6c0a75db 11/20/2012 07:50 pm Dimitris Aragiorgis

Basic IP pool management logic

Implement LUs for corresponding opcodes: * LUNetworkAdd:
- Check for IP validity
- Reserves all necessary IPs
- Create new Network config object * LUNetworkRemove:
- Checks if connected to any nodegroup
- Remove a Network config object...

1de1cf25 11/20/2012 07:50 pm Apollon Oikonomopoulos

Introduce new module for IP pool management

Add new library module lib/network.py.
Introduce new class: AddressPool.

AddressPool implements all operations needed for managing IPs inside
the IP pool.

Given a Network config object (nobj), the class:

  • initializes the corresponding IP pool object via...
eaa4c57c 11/20/2012 07:50 pm Dimitris Aragiorgis

IP pool related objects, opcodes and constants

Config objects: * Introduce L{Network} with
- IPv4 network field (mandatory)
- IPv4 gateway, IPv6 (network/gateway), mac prefix, type (optional) * Modify existing config objects to support networks:
- Add new slot 'network' to L{NIC} config object...

edb5a1c8 11/20/2012 05:39 pm Iustin Pop

Add more basic validation types

This mirrors the ht.py types PositiveInt, NonNegative, etc., except
that they work at a more generic level (any numeric type, respectively
any non-empty list).

Signed-off-by: Iustin Pop <>
Reviewed-by: Adeodato Simo <>

469a1490 11/20/2012 05:38 pm Iustin Pop

Fix a hlint warning

This is yet-another version-specific warning (fixed in later hlint
versions), but it's better to keep it clean.

Signed-off-by: Iustin Pop <>
Reviewed-by: Guido Trotter <>

a52f8e72 11/20/2012 01:02 pm Michele Tartara

Add DRBD parser unit tests

This adds tests that existing test files can be parsed by the Haskell
parser as well, plus one new test file.

Signed-off-by: Michele Tartara <>
Reviewed-by: Iustin Pop <>

3c1915df 11/20/2012 01:02 pm Michele Tartara

Add parser for DRBD /proc file

A new directory for haskell modules about block devices has been created
The parser is divided in two modules:
  • one exports the data types describing the DRBD status
  • one exports the parser itself

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

1a865afe 11/20/2012 12:12 pm Iustin Pop

Properly log errors when setting up daemon FDs

While writing the pipe-based reporting and trying various ways to
break the startup, I fought for a while trying to understand why error
reporting was different when running the daemon as a user (with no
rights). It turns out that setupDaemonFDs wants to open the log file...

8ee2994a 11/20/2012 11:28 am Iustin Pop

Switch opcode data type from normal to record constructors

Currently, the OpCode definitions are using normal constructors:

data OpCode = OpTestDelay Double Bool [String]
            | OpInstanceFailover String Bool (Maybe String)

While this works for a few opcodes, it becomes unwieldy when dealing...

51d991d7 11/20/2012 11:26 am Iustin Pop

Fix docstrings for the Filter type

While looking at the opcode docs and clicking accidentally on the
filter type, I saw that the haddock formatting is broken due to
non-escaped use of special chars. Let's convert the ascii-like
formatting to haddock, and have nicer apidoc....

32f2e1e1 11/20/2012 11:26 am Iustin Pop

Simplify a few test helpers

Use more monadic combinators instead of explicit code.

Signed-off-by: Iustin Pop <>
Reviewed-by: Adeodato Simo <>

9ba02574 11/20/2012 11:25 am Iustin Pop

Add custom code for CV_E* constants to convert-constants

Currently, the cluster verify errors are defined as follows:

CV_ECLUSTER_FOO = (TCLUSTER, "ECLUSTER_FOO", "description")

This means there's no standalone name for the string "ECLUSTER_FOO",
which makes it hard to derive automatically a type for this union in...

e1ebbfcf 11/20/2012 11:25 am Iustin Pop

Improve error message for wrong opcode parameter values

When given an empty string as value to a parameter that doesn't accept
empty strings, the error message was confusing, since it was showing
just as a double space.

Signed-off-by: Iustin Pop <>...

2c9fa1ff 11/20/2012 11:16 am Iustin Pop

Cleanup ht's use of positive/strictpositive

Currently, ht.py uses a bad terminology for positive/non-negative
numbers. Per http://en.wikipedia.org/wiki/Positive_number, this is the
correct terminology:

- A number is positive if it is greater than zero.
- A number is negative if it is less than zero....

92f51573 11/20/2012 11:16 am Iustin Pop

Split OpCode.hs and add module for opcode parameters

Due to TemplateHaskell stage restrictions, we can't define parameters
in the same module as we're using them for TH, so we have to define
all module parameters in a separate module.

This patch therefore splits OpCodes.hs in two, adding that module and...

5e9deac0 11/20/2012 11:16 am Iustin Pop

Create a new Ganeti/Types.hs module

There are already three cases where we copied type definitions between
the htools-specific types into the main ganeti code. Let's stop doing
this ☺ and create a common types module that holds these.

Note that there already exists BasicTypes.hs, but that refers to very...

dc6296ff 11/19/2012 09:34 pm Michael Hanselmann

locking: Simplify condition

Signed-off-by: Michael Hanselmann <>
Reviewed-by: Guido Trotter <>

52fca4ba 11/19/2012 05:28 pm Michael Hanselmann

configure: Shell cleanup

- Remote unnecessary quote characters
- Change some uses of “test "$foo"” to “test n "$foo"”
Merge “if/else/if” into “if/elif”
- Wrap lines longer than 80 characters and add a test to “make check”

Signed-off-by: Michael Hanselmann <>...

70296981 11/19/2012 03:17 pm Iustin Pop

Fix opcode validation for OpOobCommand.command

The 'command' attribute of the OpOobCommand command is defined with a
default value of None, but its validation requires a member of
constants.OOB_COMMANDS, which doesn't accept None. This result in the
following error when submitting an opcode without the command:...

e4d745a7 11/19/2012 03:12 pm Michael Hanselmann

Add opcode for running commands remotely

The opcode doesn't pay attention to the build-time flag to enable or
disable restricted commands. In a cluster different nodes could have
different settings.

Node locks are acquired in shared mode by default, but the use of an...

db2203e0 11/19/2012 03:12 pm Michael Hanselmann

Add RPC for restricted commands

Expose the functionality to run restricted commands remotely via RPC.

Signed-off-by: Michael Hanselmann <>
Reviewed-by: Guido Trotter <>
Reviewed-by: Iustin Pop <>

03c5291c 11/19/2012 03:10 pm Michael Hanselmann

locking: Don't schedule pending acq. for short timeout

Scheduling a pending acquisition is relatively expensive and lot of code
is involved. Unless there is already one, a new pipe needs to be opened.
Data structures need to be updated as well, only to be undone shortly...

488a5b2e 11/19/2012 11:49 am Michele Tartara

Prevent hlint crash on unicode chars

Some versions of hlint crash on the Attoparsec test file because they
are not able to correctly handle unicode characters if the proper encoding
(--utf8) is not specified.

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

7742b03c 11/16/2012 06:52 pm Michael Hanselmann

Rename design document for SSH setup

More design details will be added regarding setting up the node daemon,
so this is more about adding a node than just setting up SSH.

Signed-off-by: Michael Hanselmann <>
Reviewed-by: Iustin Pop <>

1a2eb2dc 11/16/2012 04:10 pm Michael Hanselmann

backend: Implement remote commands

As per design document (doc/design-remote-commands.rst), a number of
rather strict tests is applied to any incoming request, a delay is
inserted upon errors and returned error messages are very generic
(unless it's the actual command that failed). There are unit tests for...

9108958f 11/16/2012 04:09 pm Michael Hanselmann

configure: Add option to enable remote commands

By default remote commands are disabled and need to be explicitely
enabled at build time.

Signed-off-by: Michael Hanselmann <>
Reviewed-by: Iustin Pop <>

41f3d54d 11/16/2012 03:57 pm Michael Hanselmann

Update ganeti-rapi man page for new user option

Instead of duplicating what is already described in the full
documentation, a reference is added instead. Man pages can't use
constants or assertions, therefore it is easier for them to get out of
sync with the code....

de959245 11/16/2012 03:57 pm Michael Hanselmann

Add unit test for RAPI handler access definitions

- Ensure query-related resources have the same access permissions
(specifically “/2/query/*” and “/2/*/console”)
- Check access permission consistency (write implies read)

Signed-off-by: Michael Hanselmann <>...

5e12acfe 11/16/2012 03:57 pm Michael Hanselmann

rapi: Add new user option for querying

This was requested in issue 301. Before this patch, requests to
“/2/query/*” and “/2/instances/*/console” would require authentication
with a user with write access. Since that is not strictly necessary, a
new user option named “read” is added....

7b0476cf 11/16/2012 02:32 pm Michele Tartara

Add Utility functions for loading data from test files

They mimic their python counterparts.

Added functions:
  • getSourceDir
  • testDataFilename
  • readTestData
  • readPythonTestData

Signed-off-by: Michele Tartara <>
Reviewed-by: Iustin Pop <>

ff247692 11/16/2012 12:00 pm Michele Tartara

Improved TestHelper module docstring

Signed-off-by: Michele Tartara <>
Reviewed-by: Iustin Pop <>

f92ed8ab 11/15/2012 02:30 pm Michael Hanselmann

Move gnt_cluster.SHOW_MACHINE_OPT to cli

This allows the option to be re-used in other places.

Signed-off-by: Michael Hanselmann <>
Reviewed-by: Guido Trotter <>

aa75500a 11/15/2012 02:21 pm Guido Trotter

Add ganeti-master-role.ocf example file

This allows controlling the cluster master role if the nodes are part of
a linux-HA cluster.

Signed-off-by: Guido Trotter <>
Reviewed-by: Michael Hanselmann <>

17071597 11/15/2012 02:21 pm Guido Trotter

Add ganeti-node-role ocf example file

This allows offlining nodes that don't respond if they are part of a
linux-HA cluster.

Signed-off-by: Guido Trotter <>
Reviewed-by: Michael Hanselmann <>

32a569fe 11/15/2012 12:20 pm Iustin Pop

Cleanup THH function use from built module namespace

Currently, THH.hs "injects" into the built code names of library
functions like Text.JSON.makeObj, Ganeti.JSON.fromObj, etc. built
directly from strings, via (e.g.)

varE (mkName "makeObj")

This means that the "makeObj" name must exist in the target module,...

e98bb8c8 11/15/2012 09:31 am Michael Hanselmann

Fix typo in manpage for gnt-os

s/exists/exist/

Signed-off-by: Michael Hanselmann <>
Reviewed-by: Michele Tartara <>

61899e64 11/14/2012 06:05 pm Iustin Pop

Switch Attoparsec/unicode test from QC to HUnit

This is not a quickcheck property, since it doesn't have any
variable/arbitrary inputs. So let's make it a test case, and shorten a
bit the name.

Also, sorry for not catching this in the review.

Signed-off-by: Iustin Pop <>...

bfbd12f7 11/14/2012 12:07 pm Michael Hanselmann

Warn on invalid lines in HTTP user files

Without this change, invalid lines or values would be silently ignored.

Signed-off-by: Michael Hanselmann <>
Reviewed-by: Guido Trotter <>