Statistics
| Branch: | Tag: | Revision:

root / lib / rapi / client.py @ 8c5acc2e

History | View | Annotate | Download (46.4 kB)

# Date Author Comment
b82d4c5e 01/28/2011 04:31 pm Michael Hanselmann

Add RAPI resource for instance console

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

54d4c13b 01/27/2011 01:04 pm Michael Hanselmann

RAPI client: Wrap /2/redistribute-config resource

Signed-off-by: Michael Hanselmann <>
Reviewed-by: René Nussbaumer <>

b680c8be 01/27/2011 01:04 pm Michael Hanselmann

RAPI client: De-/activating instance disks

Signed-off-by: Michael Hanselmann <>
Reviewed-by: René Nussbaumer <>

4245446f 01/10/2011 06:32 pm Adeodato Simo

Expose OpAssignGroupNodes over RAPI and RAPI client

Signed-off-by: Adeodato Simo <>
Reviewed-by: Michael Hanselmann <>

e23881ed 01/05/2011 06:14 pm Michael Hanselmann

RAPI: Add resource to grow instance disk

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

62e999a5 01/05/2011 01:27 pm Michael Hanselmann

RAPI: Add resource to modify cluster

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

f18fab7d 12/13/2010 06:33 pm Adeodato Simo

Expose OpSetGroupParams in RAPI and RAPI client

This creates the /2/groups/<name>/modify resource; at the moment, only the
"alloc_policy" attribute can be modified.

Signed-off-by: Adeodato Simo <>
Reviewed-by: Michael Hanselmann <>

90e99856 12/13/2010 06:33 pm Adeodato Simo

Add the "alloc_policy" attribute to node groups

This can be set at group creation time and via OpSetGroupParams. The default
is "preferred", and existing node groups from previous Ganeti version will
get the attribute set to this value.

Signed-off-by: Adeodato Simo <>...

a268af8d 12/08/2010 02:27 pm Adeodato Simo

Group operations: update ganeti.rapi.client with all node group operations

Signed-off-by: Adeodato Simo <>
Reviewed-by: Michael Hanselmann <>

c744425f 11/29/2010 07:52 pm Michael Hanselmann

RAPI: Implement OS parameters for instance reinstallation

Dictionaries are hard to encode into query strings, therefore the
“/2/instances/[instance_name]/reinstall” resource is changed to accept
its parameters via the request body. The old query string parameters are...

0f979a34 08/18/2010 07:59 pm Guido Trotter

Merge branch 'devel-2.2'

  • devel-2.2:
    RAPI client: Support modifying instances
    RAPI: Allow modifying instance
    Small fixes for instance creation via RAPI documentation
    gnt-debug: Extend job queue tests
    jqueue: Mark opcodes following failed ones as failed, too...
3b7158ef 08/18/2010 02:21 pm Michael Hanselmann

RAPI client: Support modifying instances

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

1a8337f2 08/18/2010 11:28 am Manuel Franceschini

rapi.client, http.client: Format url correctly when using IPv6

This patch moves the FormatAddress helper function from daemon.py to
netutils.py. This enables its use in http.client as well as in
rapi.client. Furthermore this adds functionality to format IPv6...

c63eb9c0 08/10/2010 06:56 pm Michael Hanselmann

RAPI client: Fix docstring for migrating instance

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

d654aae1 08/10/2010 06:56 pm Michael Hanselmann

RAPI client: Support renaming instances

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

a5eba783 08/10/2010 06:55 pm Michael Hanselmann

RAPI client: Don't re-use PycURL object

With this patch, a new PycURL object will be created for each request.
This should make the RAPI client safe for simultaneous calls from
multiple threads. Unittests are adjusted accordingly.

An unnecessary variable assignment is also removed from the unittest...

fcee9675 07/29/2010 04:05 pm David Knowles

RAPI client: The os argument for instance reinstalls is optional

Signed-off-by: David Knowles <>
Reviewed-by: Michael Hanselmann <>

e0ac6ce6 07/29/2010 04:05 pm Michael Hanselmann

RAPI client: Support migrating instances

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

1f334d96 07/23/2010 08:26 pm Iustin Pop

Update the RAPI client for the migration mode

See the discussion on the previous patch about this. Basically unless we
want to a add a new 'feature' marking for the live migration parameter,
there is no simple way to handle this nicely in the client.

Given that the client was/is marked as experimental, this patch simply...

8306e0e4 07/19/2010 04:49 pm Michael Hanselmann

RAPI client: Encode empty body to JSON

If the body consists of an empty dict, it should also be encoded.

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

54dc4fdb 07/13/2010 11:39 pm Michael Hanselmann

Merge remote branch 'origin/devel-2.1'

  • origin/devel-2.1:
    RAPI client: Implement old instance creation request format
    rlib2: Use constants for disk and NIC parameters

Conflicts:
test/ganeti.rapi.client_unittest.py: Trivial
test/ganeti.rapi.rlib2_unittest.py: Trivial...

48436b97 07/13/2010 09:55 pm Michael Hanselmann

RAPI client: Implement old instance creation request format

Commit 8a47b4478 implemented instance creation in the RAPI client,
but it left out support for the old instance creation request format.
This patch now implements the old format as good as possible. This...

14ff387e 07/01/2010 04:49 pm Guido Trotter

RapiClient: fix multi-authentication in Python 2.6

In Python 2.6 the urllib2.HTTPBasicAuthHandler has a "retried" count for
failed authentications. The handler fails after 5 of them. To solve this
we reset the handler's "retried" member variable to 0 after every...

2a7c3583 07/01/2010 03:13 pm Michael Hanselmann

RAPI client: Switch to pycURL

Currently the RAPI client uses the urllib2 and httplib modules from
Python's standard library. They're used with pyOpenSSL in a very fragile
way, and there are known issues when receiving large responses from a RAPI
server.
...

941b9309 06/23/2010 07:23 pm Iustin Pop

RAPI: switch evacuate node to the new model

This patch removes the last use of the old-style OpEvacuateNode. It also
fixes the dry-run mode for this RAPI resource - the dry-run parameter
was not used at all before.

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

809bc174 06/17/2010 06:07 pm Michael Hanselmann

RAPI client: Add support for Python 2.6

The httplib module used by urllib2 requires its sockets to have a
makefile() method to provide a file-like interface (or rather
file-in-Python-like) to the socket. PyOpenSSL doesn't implement
makefile() as the semantics require files to call dup(2) on the...

beba56ae 06/17/2010 05:48 pm Michael Hanselmann

RAPI client: Add support for Python 2.6

The httplib module used by urllib2 requires its sockets to have a
makefile() method to provide a file-like interface (or rather
file-in-Python-like) to the socket. PyOpenSSL doesn't implement
makefile() as the semantics require files to call dup(2) on the...

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

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

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

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

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

5ef5cfea 05/13/2010 04:58 pm Michael Hanselmann

Mention RAPI client in documentation

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

7eac4a4d 05/13/2010 04:57 pm Michael Hanselmann

Add new /2/features RAPI resource

The /2/features RAPI resource can be used to detect optional
features implemented by the RAPI server. This will be used
to recognize servers implementing a new request format for
instance creation requests.

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

0d9bc5d2 05/12/2010 01:41 pm Michael Hanselmann

RAPI client: Fix SSL error reporting for real

My previous patch, commit 857705e8, helped in one particular
situation where the exception didn't contain any arguments
(pyOpenSSL reporting a WantReadError, which shouldn't occur with a
blocking socket anyway). With this patch, more common and uncommon...

857705e8 05/11/2010 08:28 pm Michael Hanselmann

RAPI client: Improve SSL error reporting

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

1068639f 05/11/2010 08:27 pm Michael Hanselmann

RAPI client: Don't check node role in client

Only the server knows which node roles can be set via RAPI.
Constants are provided for convenience.

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

bfc2002f 05/11/2010 08:27 pm Michael Hanselmann

RAPI client: Update ReplaceInstanceDisks

- The RAPI client shouldn't check the replacement mode as only
the server knows which ones are valid (constants are still
provided for convenience)
- Disks shouldn't be a list of names, but of indexes

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

fde28316 05/11/2010 08:27 pm Michael Hanselmann

RAPI client: Fix behaviour of “allocatable” storage flag

When modifying a storage unit, the “allocatable” flag should default
to “no modification”. This replicates the behaviour of the command
line interface.

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

10f5ab6c 05/11/2010 08:27 pm Michael Hanselmann

RAPI client: Encode boolean and None query values

Boolean values must be passed as 0 or 1. None should be an empty
value ("").

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

75f53ffe 05/11/2010 08:27 pm Michael Hanselmann

RAPI client: No longer check storage type locally

Only the RAPI server (actually masterd) knows which storage types
are valid. The exception can no longer be raised as the type is
only checked in the job.

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

a198b2d9 05/11/2010 08:27 pm Michael Hanselmann

RAPI client: Add constant for RAPI version

This reverts a60e3cb0a partially by moving the RAPI version into a constant.

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

dfc8ad25 05/11/2010 06:04 pm Michael Hanselmann

RAPI client: Don't assume job IDs to be numeric

Signed-off-by: Michael Hanselmann <>
Reviewed-by: David Knowles <>

8a019a03 05/11/2010 05:59 pm Michael Hanselmann

RAPI client: Include HTTP error code in GanetiApiError exception

Having the HTTP error code allows users of the class to act differently based
on the error code.

Signed-off-by: Michael Hanselmann <>
Reviewed-by: David Knowles <>

d9b67f70 05/11/2010 05:31 pm Michael Hanselmann

RAPI client: Allow waiting for job changes

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

cf9ada49 05/11/2010 05:31 pm Michael Hanselmann

RAPI client: Rename “DeleteJob” to “CancelJob”

Jobs can't be deleted, but cancelled (even though the HTTP method
“DELETE” is used).

Signed-off-by: Michael Hanselmann <>
Reviewed-by: David Knowles <>

cfc03c54 05/11/2010 05:31 pm Michael Hanselmann

RAPI client: Various code style changes

- Replace hardcoded values with constants
- Code formatting
- Exception messages without periods and fixed string formatting

Signed-off-by: Michael Hanselmann <>
Reviewed-by: David Knowles <>

768747ed 05/11/2010 05:30 pm Michael Hanselmann

RAPI client: Always pass _SendRequest args as positional

Signed-off-by: Michael Hanselmann <>
Reviewed-by: David Knowles <>

ccd6b542 05/11/2010 05:29 pm Michael Hanselmann

RAPI client: Simplify URL construction

Signed-off-by: Michael Hanselmann <>
Reviewed-by: David Knowles <>

d3844674 05/11/2010 05:29 pm Michael Hanselmann

RAPI client: Instantiate JSON encoder only once

Signed-off-by: Michael Hanselmann <>
Reviewed-by: David Knowles <>

cd577680 05/11/2010 05:29 pm Michael Hanselmann

RAPI client: Always return job ID

Even removing tags returns a job ID.

Signed-off-by: Michael Hanselmann <>
Reviewed-by: David Knowles <>

a60e3cb0 05/11/2010 05:27 pm Michael Hanselmann

RAPI client: Hardcode version in URLs

If the version changes, the API is likely to change as well. Not
having to ask for the version first makes the code simpler.

Signed-off-by: Michael Hanselmann <>
Reviewed-by: David Knowles <>

9279e986 05/11/2010 05:27 pm Michael Hanselmann

Remove httplib2 dependency from ganeti.rapi.client

- It's possible to implement all functionality in ganeti.rapi.client
using Python's standard modules httplib and urllib2
- By doing so, proper SSL certificate verification is implemented
- Adjust some of the code to Ganeti's code style (this is not yet...

f2f88abf 05/04/2010 08:13 pm David Knowles

Small fixes for RAPI client

- Always check SSL certificate for validity
- Actually JSON-encode HTTP content

Signed-off-by: David Knowles <>
Signed-off-by: Michael Hanselmann <>
Reviewed-by: Michael Hanselmann <>

cab667cc 04/21/2010 10:23 am David Knowles

Fix RAPI client methods return values

Ensure that all RAPI client methods that should return job ids actually
return job ids.

Signed-off-by: David Knowles <>
Reviewed-by: Iustin Pop <>
Signed-off-by: Iustin Pop <>

95ab4de9 04/06/2010 05:37 pm David Knowles

Adding RAPI client library.

Signed-off-by: David Knowles <>
Reviewed-by: Iustin Pop <>
Signed-off-by: Iustin Pop <>
(modified slightly the unittest to account for
missing httplib2 library)