Statistics
| Branch: | Tag: | Revision:

root @ 53dbf14c

# Date Author Comment
41a2e7d7 06/03/2010 01:56 pm Michael Hanselmann

import/export unittest: Test large(r) transfer

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

53dbf14c 06/03/2010 01:56 pm Michael Hanselmann

import/export unittest: Improve logging and fix one race condition

Apart from improved logging, one race condition is fixed. If
the destination's status file became available, the port would
be returned immediately, even if it was still “None”. Most of
the time it worked, but not always. Now an additional check...

cdd7f900 06/03/2010 01:48 pm Guido Trotter

Convert ganeti-masterd's main thread to mainloop

Not much changes with this patch. The main loop for the IOServer is
repaced by mainloop.Run() and the main thread now uses asyncore to
handle connections to the master socket. Once it accepts them, though,...

495ba852 06/03/2010 01:48 pm Guido Trotter

daemon.AsyncAwaker

This new asyncore dispatcher can be used to force a thread running the
asyncore loop to awake from the select, by signaling it on one of its
selected sockets.

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

a4b605ae 06/03/2010 01:48 pm Guido Trotter

daemon.AsyncStreamServer

This is a new asyncore server which handles listening stream sockets by
calling a non-implemented function for each connection it accepts. It's
the stream-oriented cousing of the AsyncUDPSocket.

Signed-off-by: Guido Trotter <>...

b66ab629 06/03/2010 01:48 pm Guido Trotter

daemon.AsyncTerminatedMessageStream

This is the counterpart of the AsyncStreamServer can be used to handle
connected sockets returned from connected clients if the protocol is a
terminator separated message stream. Nothing in this class is server
specific though: it can be used as a client as well, if the client is...

18215385 06/03/2010 01:48 pm Guido Trotter

Test the new streaming daemon classes

Unittests cover AsyncStreamServer and AsyncTerminatedMessageStream with
both tcp and unix sockets.

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

db147305 06/03/2010 12:39 pm Tom Limoncelli

ganeti-watcher should attempt to fix ganeti-rapi

Update ganeti-watcher so that it tests the master's RAPI port with a
simple test (in this case GetVersion). If it fails, make one attempt
at restarting ganeti-rapi and retest.

- daemons/ganeti-watcher: Test rapi and make one attempt at restarting it....

ff18f526 06/01/2010 08:31 pm Guido Trotter

Merge remote branch 'origin/devel-2.1'

  • origin/devel-2.1:
    Explicitely return None from IgnoreSignals
    AsyncUDPSocket: fix IgnoreSignals usage and test
    Add KVM chroot feature
    Fix and Improve TryToRoman unittest

Conflicts:
test/ganeti.daemon_unittest.py...

6e7e58b4 06/01/2010 08:22 pm Guido Trotter

AsyncUDPSocket: fix IgnoreSignals usage and test

This bug was found in the asyncore master patch series, but actually
applies to 2.1 for AsyncUDPSocket as well.

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

2fd7f564 06/01/2010 08:22 pm Guido Trotter

Explicitely return None from IgnoreSignals

Same result, but what happens is clearer.

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

547a63b7 06/01/2010 08:18 pm Balazs Lecz

Add KVM chroot feature

This patch adds a new boolean hypervisor parameter to the KVM hypervisor,
named 'use_chroot'.
If it's turned on for an instance, than KVM is started in "chroot mode":
Ganeti creates an empty directory for the instance and passes the path...

a01b500b 06/01/2010 07:40 pm Michael Hanselmann

utils: Add function to check whether process handles a signal

This will be used to avoid a race condition between starting a program (dd
for import/export) and sending signals to it.

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

855bffd2 06/01/2010 07:40 pm Guido Trotter

Fix and Improve TryToRoman unittest

1) Don't break when the roman module is not found
2) Test that not finding the roman module doesn't make TryToRoman fail
(currently that is the case)

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

424f51ec 06/01/2010 07:39 pm Michael Hanselmann

move-instance: Use error message instead of multiple state variables

Until now, move-instance used different status variables: “success”,
“abort” and “error_message”. With this patch, everything is changed
to use “error_message” only. This simplifies the code a bit....

ff89a747 06/01/2010 07:39 pm Michael Hanselmann

Distribute cluster domain secret

The cluster domain secret file was not distributed to other nodes.

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

d4d1e3dd 06/01/2010 01:37 pm Guido Trotter

Merge branch 'devel-2.1'

  • devel-2.1:
    Convert gnt-instance list and info to use roman
    gnt-cluster info --roman
    FormatUidPool: provide optional roman conversion
    gnt-node: remove latinfriendlyfields
    Move roman conversion to compat
    Add a new opcode timestamp field...
e2736e40 06/01/2010 01:25 pm Guido Trotter

Convert gnt-instance list and info to use roman

Finally gnt-instance has roman support as well.

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

d729e03a 06/01/2010 01:25 pm Guido Trotter

gnt-cluster info --roman

Convert to roman (if so the user wishes) the following:
- cluster candidate size
- uid pool
- any integer be or hv parameter

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

196ec587 06/01/2010 01:24 pm Guido Trotter

FormatUidPool: provide optional roman conversion

The convert= option of compat.tryToRoman is used to do optional
conversion without duplicating formatting code.

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

cc5b94db 06/01/2010 01:23 pm Guido Trotter

gnt-node: remove latinfriendlyfields

Rather than relying on a static list of fields, we opportunistically
convert all integers.

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

6396164f 06/01/2010 01:22 pm Guido Trotter

Move roman conversion to compat

The new TryToRoman function provides optional easy to use roman
conversion. Nunc cum demonstrationi unitati.

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

999847c8 06/01/2010 12:08 pm Guido Trotter

ssconf: error out when writing oversized files

Since we impose a maximum limit when reading ssconf files, let's error
out when trying to write them too big, so we don't pretend everything is
ok, and make mistakes when we actually read partial files.

Signed-off-by: Guido Trotter <>...

b9b5abcb 06/01/2010 11:47 am Iustin Pop

Add a new opcode timestamp field

Since the current start_timestamp opcode attribute refers to the inital
start time, before locks are acquired, it's not useful to determine the
actual execution order of two opcodes/jobs competing for the same lock.

This patch adds a new field, exec_timestamp, that is updated when the...

14aeab22 06/01/2010 11:39 am Guido Trotter

Fix IgnoreSignals on socket.error

Some confusion arose handling EINTR on this function: in python 2.6
socket.error is an IOError, and thus:
- It's an EnvironmentError
- It has an .errno member

In 2.4 and 2.5 it's not, and so its errno variable must be extracted...

c3c5dc77 06/01/2010 11:34 am Guido Trotter

Master core scalability design doc

This initial design still lacks information about the job queue lock
contention decrease.

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

37e1e262 06/01/2010 11:34 am Guido Trotter

design-2.2: job queue lock analysis/remediation

This builds up on the "Master core scalability design doc" detailing the
critical situations in the job queue and proposing how to fix them. The
bulleted point list at the beginning is changed to subparagraph, as the...

e3cc4c69 06/01/2010 11:34 am Guido Trotter

reraise exceptions in async tests' error handlers

This makes sure that any unforeseen error raises an exception rather
then just increasing a counter. It makes unittest debugging a lot
easier.

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

716a32cb 06/01/2010 11:34 am Guido Trotter

Move hash functions to the compat module

Since the hash functions' changed their module name between python 2.4
and 2.6, and we have to do an try/import/except trick, we'll do it just
once, for both hash functions, and in compat.py. This also fixes a use...

965d0e5b 06/01/2010 11:34 am Guido Trotter

Fix {Ignore, RetryOn}Signals on socket.error

Some confusion arose handling EINTR on those functions: in python 2.6
socket.error is an IOError, and thus:
- It's an EnvironmentError
- It has an .errno member

In 2.4 and 2.5 it's not, and so its errno variable must be extracted...

2652b363 05/31/2010 08:17 pm Tom Limoncelli

RAPI client should convert urllib2.URLError to GanetiApiError

Signed-off-by: Tom Limoncelli <>
Reviewed-by: Michael Hanselmann <>

e43d4f9f 05/31/2010 03:16 pm Apollon Oikonomopoulos

KVM: Migration bandwidth and downtime control

Introduce 2 new hypervisor options, migration_bandwidth and migration_downtime
and implement KVM migration bandwidth and downtime control.

migration_bandwidth controls KVM's maximal bandwidth during migration, in...

b73360e3 05/31/2010 01:02 pm Balazs Lecz

Make utils.EnsureDirs() ignore umask

EnsureDirs() should create directories with the exact mode requested
in the arguments, but it currently applies the umask.
This patch makes it independent from the umask.

Signed-off-by: Balazs Lecz <>...

bb44b1ae 05/28/2010 07:50 pm Michael Hanselmann

import/export daemon: Move command building into separate module

The import/export daemon code is already large. Moving some code
to a separate module will make it smaller and easier to test.

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

34c9ee7b 05/28/2010 07:50 pm Michael Hanselmann

import/export daemon: Move some I/O processing code to module

The code parsing the child process' output is moved to a separate
class in the impexpd module. As more programs are added, it'll
become more complex and should be separated.

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

1e915b86 05/28/2010 07:33 pm Michael Hanselmann

import/export daemon: Move command building into class

Instead of passing around many variables for building the executed
command, they're now kept as instance variables.

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

84c08e4e 05/28/2010 03:37 pm Balazs Lecz

Add KVM chroot feature

This patch adds a new boolean hypervisor parameter to the KVM hypervisor,
named 'use_chroot'.
If it's turned on for an instance, than KVM is started in "chroot mode":
Ganeti creates an empty directory for the instance and passes the path...

72087dcd 05/28/2010 03:36 pm Balazs Lecz

Add RemoveDir utility function

Signed-off-by: Balazs Lecz <>
Reviewed-by: Iustin Pop <>

e0561198 05/27/2010 02:43 pm Iustin Pop

Fix two race conditions in reboot instance

If the instance crashes between backend.InstanceReboot checks the list
of running instances and the execution of hv_xen.RebootInstance,
ini_info will be None. And if the instance doesn't reboot fast enough,
new_info will be None. Both cases lead to “TypeError: unsubscriptable...

31d97b2a 05/25/2010 06:57 pm Guido Trotter

Support for latin friendly output in node list

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

fadc3742 05/25/2010 02:30 pm Guido Trotter

Merge branch 'devel-2.1'

  • devel-2.1:
    Test for errors during inotify callback
    SingleFileEventHandler: Remove try/except blocks
    ErrorLoggingAsyncNotifier
    daemon.GanetiBaseAsyncoreDispatcher

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

7678409f 05/25/2010 01:16 pm Guido Trotter

Test for errors during inotify callback

- Create a new _MyErrorLoggingAsyncNotifier class which registers
error counts, rather than logging them
- Add an additional ERR notifier to test with
- Check that no error was returned, for tests that weren't supposed to...

32b1efa1 05/25/2010 01:16 pm Guido Trotter

SingleFileEventHandler: Remove try/except blocks

Since now we use the SingleFileEventHandler together with an error
handling asyncore dispatcher, we don't need the internal try/except
anymore.

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

e9c8deab 05/25/2010 01:16 pm Guido Trotter

ErrorLoggingAsyncNotifier

This mixes AsyncNotifier with GanetiBaseAsyncoreDispatcher to provide an
AsyncNotifier which will log errors, rather than bail out.

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

b11780bb 05/25/2010 01:16 pm Guido Trotter

daemon.GanetiBaseAsyncoreDispatcher

Abstract a few common functionalities between all ganeti asyncore
dispatchers:
- Handle errors by logging them, and then continue
- By default check sockets only for readability

Signed-off-by: Guido Trotter <>...

17931833 05/24/2010 01:12 pm Guido Trotter

Merge branch 'devel-2.1'

  • devel-2.1:
    TestSingleFileEventHandler: abstract notifier type
    Mainloop: handle SIGINT as well (and terminate)
    SingleFileEventHandler: update comments

Signed-off-by: Guido Trotter <>
Reviewed-by: Balazs Lecz <>

49f986e7 05/24/2010 01:00 pm Guido Trotter

TestSingleFileEventHandler: abstract notifier type

Rather than hardcode that we have two notifiers, and notifier 0 is the
terminating one, we abstract this with class level constants. This makes
it easier to add more, with different features.

The only real change is that now the callback class takes as input the...

f59dce3e 05/22/2010 09:58 am Guido Trotter

Mainloop: handle SIGINT as well (and terminate)

This is needed if daemons are in the foreground, and get ctrl+c-ed by
the user. Also add unittests to make sure the correct signals terminate
the mainloop.

Signed-off-by: Guido Trotter <>...

d021e478 05/22/2010 09:58 am Guido Trotter

SingleFileEventHandler: update comments

The comments in the SingleFileEventHandler are still confd-specific.
Update them to make them generic for any single-file monitoring.

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

a5310c2a 05/21/2010 06:18 pm Michael Hanselmann

Allow control of import/export compression method

For exports to/imports from the same machine, compression will
not be used anymore.

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

eb630f50 05/21/2010 06:17 pm Michael Hanselmann

Put common import/export daemon options into object

The X509 key name and CA are passed from cmdlib all the way to
the backend import/export daemon. With the addition of an option
to choose the compression method, another parameter would have
to be passed all the way. By moving these options to a separate...

7e3c1da6 05/21/2010 06:16 pm Michael Hanselmann

import-export daemon: Allow changing compression method

For example, exports on the same node shouldn't be compressed.

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

39019f91 05/21/2010 02:24 pm Guido Trotter

Merge branch 'devel-2.1'

  • devel-2.1:
    Add asyncnotifier unittests
    Make ConfdInotifyEventHandler a library function
    Comment on AsyncNotifier upstream's availability
    Remove errors.ConfdFatalError
    TestMainloop: test scheduler priorities as well
    Fix race condition in mainloop unittest...
17496050 05/21/2010 01:45 pm Guido Trotter

Add asyncnotifier unittests

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

c666f1f4 05/21/2010 01:45 pm Guido Trotter

Make ConfdInotifyEventHandler a library function

Cut&Paste, plus the following changes:
- The class is renamed to SingleFileEventHandler
- The monitored filename must be passed in and doesn't default to the
ganeti cluster config file
- A small docstring is added to the class...

a2c965ea 05/21/2010 01:45 pm Guido Trotter

Comment on AsyncNotifier upstream's availability

Since we contributed AsyncNotifier back to the upstream pyinotify
project, we'll be able, one day, to remove the ganeti version of that
code. For now we still need it to support older distributions, but
having a note about when we'll be able to remove it is nice....

e22af31d 05/21/2010 01:45 pm Guido Trotter

Remove errors.ConfdFatalError

This exception is caught, but never thrown. It became useless when we
moved confd from on/off to enabled/disabled, but always running on all
nodes. Removing its definition and the code catching it can do no harm.

Signed-off-by: Guido Trotter <>...

85dbfd78 05/20/2010 05:53 pm Guido Trotter

TestMainloop: test scheduler priorities as well

By using enterabs we can schedule events at the same time, which will
then be sorted by priority.

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

19ad29d2 05/20/2010 05:52 pm Guido Trotter

Fix race condition in mainloop unittest

Currently, in testDeferredCancel if the self._CancelEvent are entered
more than 0.3 seconds after the _SendSig have been entered, the test
could fail. This is unlikely but may happen. To avoid it we use
enterabs, to use absolute times....

c6987b16 05/20/2010 05:52 pm Guido Trotter

TestMainloop.testReRun

Currently we never do that, but it's nice to know we can restart the
mainloop, after termination.

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

4db33137 05/20/2010 05:52 pm Guido Trotter

Add AsyncUDPSocket tests

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

1118ec44 05/20/2010 05:52 pm Guido Trotter

Add initial mainloop unittests

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

53726a00 05/20/2010 05:50 pm Guido Trotter

devel/review: make the range argument optional

Rather than calling devel/review with from..to target we can just use
target, and assume target..HEAD as the range. This makes it a lot
easier, as now you just have to say something like "devel/review
devel-2.1" if you're already on the branch you want to commit, and want...

6bf273d5 05/18/2010 06:53 pm Michael Hanselmann

Add tool to move instances between clusters

This is a first version of the instance move tool and it supports moving
1..N instances from one cluster to another. When moving a single instance,
the instance can be renamed, allowing for moves within the same cluster...

ebeb600f 05/18/2010 06:53 pm Michael Hanselmann

RAPI changes for instance moves

Two new resources are added:
- /2/instances/$name/prepare-export
- /2/instances/$name/export

The documentation for the existing resource for creating instances is updated
for remote imports. The RAPI client is extended for the new resources....

9bf56d77 05/18/2010 06:53 pm Michael Hanselmann

Implement opcode changes for remote-import

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

4a96f1d1 05/18/2010 06:53 pm Michael Hanselmann

Implement opcode changes for remote-export

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

1410fa8d 05/18/2010 06:53 pm Michael Hanselmann

Add opcode to prepare export

To prepare a remote export, the X509 key and certificate need to be generated.
A handshake value is also returned for an easier check whether both clusters
share the same cluster domain secret.

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

b38599d8 05/18/2010 05:14 pm Guido Trotter

Merge branch 'devel-2.1'

  • devel-2.1:
    Abstract the LUXI eom into a constant
    KVM: vhost net acceleration support

Conflicts:
lib/luxi.py
- trivial

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

d88eba85 05/18/2010 04:36 pm Michael Hanselmann

Fix distcheck broken by check-cert-expired unittest

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

c6ccba7e 05/18/2010 03:40 pm Michael Hanselmann

ganeti-cleaner: Remove expired X509 certs

Importing/exporting an instance to a remote machine creates X509
certificates which expire after some time. They need to be removed from
the nodes as they become useless.

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

25942a6c 05/18/2010 02:08 pm Guido Trotter

Abstract the LUXI eom into a constant

Currently the EOM terminator is hardcoded on the server side, and is
customizable in the Transport object (with the default being the same as
the value found in the server), but not in the luxi client.

With this patch we move the value to constants, and remove the "fake"...

fbe27e2b 05/18/2010 02:08 pm Guido Trotter

KVM: vhost net acceleration support

This will only work on patched or newer (>= 2.6.34) kernels and with a
patched version of qemu-kvm.

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

e9f637cb 05/18/2010 02:06 pm Michael Hanselmann

Merge branch 'devel-2.1'

  • devel-2.1:
    ganeti-cleaner: Write log file with removed files
    RAPI client: Handle urllib2.HTTPError and raise GanetiApiError

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

f6781abf 05/18/2010 01:55 pm Michael Hanselmann

ganeti-cleaner: Write log file with removed files

Logfiles can be useful for debugging.

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

dfb34028 05/18/2010 01:30 pm Michael Hanselmann

Add function to read cluster domain secret

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

895eb320 05/18/2010 01:11 pm Michael Hanselmann

LUExportInstance: Remove instance only if export was successful

Until now, the instance was always removed (if asked for by the
user). In case of export errors however, it shouldn't.

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

5ed59e1e 05/18/2010 01:10 pm Michael Hanselmann

RAPI client: Handle urllib2.HTTPError and raise GanetiApiError

This allows users of the RAPI client to catch GanetiApiError for all HTTP
errors.

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

31ff0247 05/17/2010 02:17 pm Michael Hanselmann

Merge branch 'devel-2.1'

  • devel-2.1:
    RAPI: /2/{nodes,instances}/$name should return 404 for unknown items
    ganeti-masterd: Improve error logging for client requests
    Return disk_template from LUQueryInstanceData
    RAPI client: Rename Get{Node,Instance}Info, add new GetInstanceInfo...
e8ebbd2b 05/17/2010 01:52 pm Michael Hanselmann

RAPI: /2/{nodes,instances}/$name should return 404 for unknown items

Currently they return a 500 Server Error, not really useful
for detecting nonexistent items.

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

d2fc26dd 05/17/2010 01:52 pm Michael Hanselmann

ganeti-masterd: Improve error logging for client requests

Ganeti errors should also be logged with a backtrace.

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

f02fbd30 05/17/2010 01:52 pm Michael Hanselmann

Return disk_template from LUQueryInstanceData

Inter-cluster instance moves need the disk template. As they run
LUQueryInstanceData to get an instance's details, the disk template
must be returned.

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

591e5103 05/17/2010 01:52 pm Michael Hanselmann

RAPI client: Rename Get{Node,Instance}Info, add new GetInstanceInfo

GetInstanceInfo should return the resource /2/instances/$name/info,
but so far it returns /2/instances/$name. The same applies to
GetNodeInfo, which returns /2/nodes/$name. Both names are stripped...

f961e2ba 05/17/2010 01:52 pm Michael Hanselmann

RAPI client: Log request to be made

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

d32f3b81 05/17/2010 01:52 pm Michael Hanselmann

Add missing documentation for RAPI instance creation mode

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

a3a5f850 05/17/2010 01:33 pm Iustin Pop

Add checks for master IP in cluster verify

This also updates a comment in the unittest for utils.py. We unittest
the new function for two things: correct reporting on real case (for
localhost), and correct reporting with a mocked-out TcpPing that returns...

c7406bbe 05/14/2010 07:07 pm Guido Trotter

RetryOnSignal: handle socket error as well

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

b2efcd70 05/14/2010 07:03 pm Guido Trotter

Remove unused import from daemon.py

Signed-off-by: Guido Trotter <>
Reviewed-by: Luca Bigliardi <>

48bf6352 05/14/2010 06:46 pm Guido Trotter

Add a forgotten comment about overriding a method

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

3660fcf5 05/14/2010 06:46 pm Guido Trotter

AsyncUDPSocket.handle_error

By overriding the default asyncore handle_error (which closes the
socket) with our own version, which logs what happened but tries to
proceed, we can get rid of a couple of try/except blocks. The resulting
churn is deindentation of the internal code....

232144d0 05/14/2010 06:46 pm Guido Trotter

utils.IgnoreSignals

Remove duplicate code between a couple of asyncore related function by
having a function in charge of handling EINTR errors. Unittests included.

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

bebf68d3 05/14/2010 12:09 pm Guido Trotter

ganeti-noded: add the --no-mlock option

While mlock on noded is definitely good in most situations, there are
some - namely my laptop - where it has no benefit, and uses precious
non-swappable memory. To avoid this we make it optional, with a new
--no-mlock option. Note that only the main node daemon and its http...

2e98275a 05/14/2010 12:08 pm Guido Trotter

Describe more ganeti-noded options in the manpage

Signed-off-by: Guido Trotter <>
Reviewed-by: Luca Bigliardi <>

1c54156d 05/13/2010 07:40 pm Luca Bigliardi

Merge branch 'devel-2.1'

Conflicts:
daemons/ganeti-noded
lib/daemon.py
lib/rapi/baserlib.py
lib/rapi/rlib2.py
lib/utils.py

Signed-off-by: Luca Bigliardi <>
Reviewed-by: Michael Hanselmann <>

20601361 05/13/2010 07:11 pm Luca Bigliardi

Fix some pylint warnings

Disable warnings for:
- except Exception,
- use of __errno_location,
- redeclaration of handleError()

Signed-off-by: Luca Bigliardi <>
Reviewed-by: Guido Trotter <>

6ed0bbce 05/13/2010 06:48 pm Luca Bigliardi

Fix logging string format

Fix this pylint warning:
[W6501, Mlockall] Specify string format arguments as logging function parameters

Signed-off-by: Luca Bigliardi <>
Reviewed-by: Michael Hanselmann <>

05b35f15 05/13/2010 06:25 pm Luca Bigliardi

Fix Filehandler / FileHandler typo

Fix typo spotted by pylint:
E1101:2095:LogFileHandler.handleError: Module 'logging' has no 'Filehandler' member

Signed-off-by: Luca Bigliardi <>
Reviewed-by: Guido Trotter <>

924e95f9 05/13/2010 04:58 pm Michael Hanselmann

QA: Test instance creation/deletion via RAPI client

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

8a47b447 05/13/2010 04:58 pm Michael Hanselmann

RAPI client: Implement instance creation

Currently this only supports the new instance creation request data
format version 1, but support for the old version can be easily
implemented.

Most arguments are optional and documented in the RAPI documentation....

6395cebb 05/13/2010 04:58 pm Michael Hanselmann

RAPI: Add new request data format for instance creation

As mentioned in commit d975f482d, the current way of creating an
instance via RAPI is not very flexible. With this patch, a new
instance creation request data format is introduced and documented.
Support can be detected by checking the list of features returned...