Statistics
| Branch: | Tag: | Revision:

root @ d7fa9982

# Date Author Comment
d7fa9982 12/15/2008 11:40 am Michael Hanselmann

ganeti.http: Implement handshake socket operation

Reviewed-by: iustinp

39cfc25b 12/15/2008 11:40 am Michael Hanselmann

ganeti.http: Handle SSL_ERROR_ZERO_RETURN

Also add a comment next to the place where the SSL connection is shut
down.

Reviewed-by: iustinp

3c7f6c44 12/14/2008 02:05 pm Iustin Pop

cleanup: ConfigWriter, initialize all attributes

We should initialized the _last_cluster_serial in the constructor too (just to
be consistent).

Reviewed-by: amishchenko

f6f91001 12/14/2008 02:05 pm Iustin Pop

cleanup: rapi v2 instance tags wrong attribute

This was changed in the past, but it seems this class was forgotten.

Reviewed-by: amishchenko

3f3dfc15 12/14/2008 02:05 pm Iustin Pop

cleanup: http server, line too long

Reviewed-by: amishchenko

5a9c3f46 12/14/2008 02:05 pm Iustin Pop

cleanup: http client, line too long

Reviewed-by: amishchenko

5661b908 12/14/2008 02:04 pm Iustin Pop

cleanup: xen hypervisor

Wrong indentation and uniformize one method signature.

Reviewed-by: amishchenko

08137f9e 12/14/2008 02:04 pm Iustin Pop

cleanup: kvm code likes to redefine names

Reviewed-by: amishchenko

9c034cbe 12/14/2008 02:04 pm Iustin Pop

lib/ssh.py: import the logging module

This only means most of our error paths in this module were not working
(and generating exceptions).

Reviewed-by: amishchenko

bf75f132 12/14/2008 02:04 pm Iustin Pop

SshRunner: add docstring for _BuildSshOptions

Reviewed-by: amishchenko

67047322 12/14/2008 02:04 pm Iustin Pop

Improve _autoconf.py comments

This adds a docstring to the _autoconf.py file detailing how it's
generated (the other comment it's not visible in pydoc/epydoc).

Reviewed-by: amishchenko

ad1bf20c 12/14/2008 02:04 pm Iustin Pop

cleanup: use _ for unused loop counter

Reviewed-by: amishchenko

805f0c07 12/14/2008 02:04 pm Iustin Pop

cleanup: WorkerPool, wrong variable name

Quoting Michael: "why is this even working?"

Reviewed-by: imsnah,amishchenko

0b5ad33e 12/14/2008 02:03 pm Iustin Pop

cleanup: TcpPing, wrong variable name

The default value of 'False' wasn't initialized properly. It doesn't
require initialization, but it's cleaner this way.

Reviewed-by: amishchenko

cd34e7bf 12/14/2008 02:03 pm Iustin Pop

cleanup: SetEtcHostsEntry unused var

Reviewed-by: amishchenko

a0add446 12/14/2008 02:03 pm Iustin Pop

cleanup: fix IAllocator hypervisor usage

Two problems: the iallocator.hypervisor wasn't initialized to None in
the constructor, so pylint doesn't realize it's initialized later with
setattr.

Second, 'hypervisor' is a module, so we shouldn't use it as a variable....

4504c3d6 12/14/2008 02:03 pm Iustin Pop

cleanup: LUReplaceDisks unused vars

And a small whitespace fix.

Reviewed-by: amishchenko

9ca87a96 12/14/2008 02:03 pm Iustin Pop

cleanup: do not hide upper-scope name

hypervisor is a module, so we shouldn't use it as an argument.

Reviewed-by: amishchenko

43017d26 12/14/2008 02:03 pm Iustin Pop

cleanup: fix use of _CheckNodeOnline

A few cases of wrong variable name.

Reviewed-by: amishchenko

8153e7e3 12/14/2008 02:03 pm Iustin Pop

cleanup: LUAddNode, LUSetNodeParams unused variable

This is a leftover from the abstraction of AdjustCandidatePool, and it
also requires the config lock, so it's better to remove it.

Reviewed-by: amishchenko

d1dc3548 12/14/2008 02:02 pm Iustin Pop

cleanup: LURenameCluster wrong variable name

Reviewed-by: amishchenko

95268cc3 12/14/2008 02:02 pm Iustin Pop

cleanup: fix export NIC count the same way as disk

For safety, we use the same algorithm as in disk count.

Reviewed-by: amishchenko

bca2e7f4 12/14/2008 02:02 pm Iustin Pop

cleanup: fix backend._RecursiveFindBD

_RecursiveFindBD takes a parameter that isn't used; moreover, nowhere in
the SVN history can I find a case that it has been used.

As such, remove this parameter and fix its callers.

Reviewed-by: amishchenko

9a4e6f41 12/14/2008 02:02 pm Iustin Pop

cleanup: more unused vars

Reviewed-by: amishchenko

3bc6be5c 12/14/2008 02:02 pm Iustin Pop

cleanup: sanitize a default parameter

Instead of relying that the usage of the parameter is ok with mutable
default parameters, let's just make it safer..

Reviewed-by: amishchenko

9728ae5d 12/14/2008 02:02 pm Iustin Pop

cleanup: exceptions should derive from Exception

Reviewed-by: amishchenko

7bc9e58f 12/14/2008 02:02 pm Iustin Pop

cleanup: fix GatherMasterVotes

Remove unused vars

Reviewed-by: amishchenko

531baf8e 12/14/2008 02:01 pm Iustin Pop

cleanup: _InitSSHSetup doesn't need its argument

Reviewed-by: imsnah

fab1e3a4 12/14/2008 02:01 pm Iustin Pop

cleanup: fix 'variable unused' warning

In the iteration we don't care about the node names, so we change the
for loop to be over the values (and not itervalues).

Reviewed-by: amishchenko

22692e48 12/12/2008 06:50 pm Michael Hanselmann

ganeti.http: Rename HttpBase._using_ssl to HttpBase.using_ssl

It'll be queried from other classes.

Reviewed-by: iustinp

f4322a1e 12/12/2008 06:50 pm Michael Hanselmann

ganeti.http: Rename HttpSocketBase to HttpBase

It's more appropriate.

Reviewed-by: iustinp

c41eea6e 12/11/2008 07:13 pm Iustin Pop

Fix epydoc format warnings

This patch should fix all outstanding epydoc parsing errors; as such, we
switch epydoc into verbose mode so that any new errors will be visible.

Reviewed-by: imsnah

16f323ce 12/11/2008 04:58 pm Iustin Pop

Switch epydoc to parse only

epydoc seems to be mightily confused by decorators and how they change
functions (it starts mixing the parameters of the decorated function
into the decorator itself); so we want it to parse only and not look at
the objects themselves....

52e2f66e 12/10/2008 02:11 pm Michael Hanselmann

ganeti.backend: Improve compression check

Reviewed-by: iustinp

358a8811 12/10/2008 02:06 pm Michael Hanselmann

ganeti.http: Docstring updates

Reviewed-by: iustinp

13b63666 12/09/2008 08:42 pm Michael Hanselmann

ganeti.http: Remove _HttpClientError

This is a leftover from old code.

Reviewed-by: iustinp

59305197 12/09/2008 07:35 pm Michael Hanselmann

ganeti.http.server: Increase connection backlog to 1024

This solves a problem with many concurrent requests. By default, 1024
is the maximum backlog on Linux kernels. We limit the number of clients
through MAX_CHILDREN, too. The idea of just increasing the backlog is...

12bce260 12/09/2008 03:24 pm Michael Hanselmann

RPC: Compress file upload data

Adding compression to larger amounts of data is more efficient than
transferring it (len(nodes) - 1) times over the network without
compression. We were able to compress a 800KB config file to about
30 KB, which is about 40 KB with Base64 encoding (required due to...

832261fd 12/09/2008 11:33 am Iustin Pop

Warn for instances living on offline nodes

The patch also changes the result to error for non-reachable secondary nodes
(as for primary nodes).

Reviewed-by: ultrotter

ee513a66 12/08/2008 07:45 pm Iustin Pop

Fix _AdjustCandidatePool

Currently the ConfigWriter.MaintainCandidatePool returns node names, and
_AdjustCandidatePool uses them as such, but then it passes these to
context.ReaddNode which in turn passes them to jqueue.JobQueue.AddNode which
uses them as objects.Node instances....

3a5ba66a 12/08/2008 01:46 pm Iustin Pop

gnt-node modify: add the offline attribute

This patch changes gnt-node modify and the associated opcode/lu to allow
modification of the node offline attribute.

Setting a node into offline mode automatically demotes it from the
master role.

Reviewed-by: ultrotter

ed83f5cc 12/08/2008 11:10 am Iustin Pop

RPC: do not make calls to offline nodes

This patch changes the _MultNodeCall and _SingleNodeCall helpers to not
actually make calls to offline nodes, but instead generate fake
responses which have a parameter caller 'offline' set so that callers
can check for this value if they want (otherwise, it's just a failed RPC...

c6286afc 12/07/2008 01:01 pm Guido Trotter

chmod ganeti.initd before uploading it

When an upload is done to a node which doesn't have any version of
ganeti installed, this prevents a non-executable-initd error later in
the upload.

Reviewed-by: imsnah

0a66c968 12/05/2008 01:41 pm Iustin Pop

Make cluster verify understand offline nodes

This patch changes cluster verify to not alert on offline nodes, but
instead just show a note at the end with the number of such nodes.

It also removes warnings in verify-disks and hooks about failures to
make rpc calls to such nodes....

7527a8a4 12/05/2008 01:32 pm Iustin Pop

cmdlib: check node stats in prereqs

This patch adds checks for offline nodes in most instance LUs so that we
can work with offline secondaries, but not with offline primaries. Some
cases (like grow disk, which needs both sides up) are not allowing
offline nodes at all....

a5961235 12/05/2008 01:20 pm Iustin Pop

Add two utility functions to cmdlib

These will be used for parameter checking and node status checking.

Reviewed-by: ultrotter

ec0292f1 12/05/2008 01:14 pm Iustin Pop

Add function to compute the master candidates

Since some nodes can be offline, we can't just take the length of the
node list as the maximum possible number of master candidates.

The patch adds an utility function to correctly compute this value and
replaces hardcoded computations with the use of this function. It then...

b18dd019 12/05/2008 12:12 pm Iustin Pop

http: use slicing instead of string modification

The combination of the current buffer splitting method and (4KB) buffer
size is very inefficient when writing big amounts of data. Just walking
over a 16 megabyte string using a 4K buffer takes (on a random computer)...

a3316e4a 12/05/2008 12:12 pm Iustin Pop

Add the offline node list to ssconf

The patch also changes the various node list generation to be more
consistent.

Reviewed-by: imsnah

56aa9fd5 12/05/2008 05:01 am Iustin Pop

Cleanup the config file on demotion from candidate

This patch adds a simple rpc which makes a backup of the config file and
then removes it. This is done so that cluster verify doesn't complain
immediately after demoting a node.

Reviewed-by: imsnah

cbfc4681 12/05/2008 04:58 am Iustin Pop

watcher: handle offline nodes better

This patch changes the LUQueryInstances to show a different state for
offline nodes and also modifies the watcher to understand the offline
state in its checks.

Reviewed-by: ultrotter

9ddb5e45 12/05/2008 04:53 am Iustin Pop

node list: add the offline field

Reviewed-by: ultrotter

fc0fe88c 12/05/2008 04:53 am Iustin Pop

Add a new node parameter 'offline'

This patch adds a new node parameter called offline that will be used to
mark nodes which should be touched by commands.

We also add this flag at cluster init, node add, and export it to
iallocator scripts.

Reviewed-by: ultrotter

02b31f32 12/05/2008 04:42 am Iustin Pop

ssconf: empty files should not add a newline

Currently we add a newline in the ssconf writeout process, even if the
file is empty. We chage this case so that lists of values (e.g. offline
nodes) are correct (not a list of one empty element).

Reviewed-by: imsnah

99b5ef90 12/04/2008 05:25 pm Michael Hanselmann

ganeti.http: Add constant for DELETE

Reviewed-by: amishchenko

9501323b 12/04/2008 05:25 pm Michael Hanselmann

Remove old HTTP code

Reviewed-by: amishchenko

ae88ef45 12/04/2008 05:24 pm Michael Hanselmann

ganeti.rpc: Convert to new HTTP server

Reviewed-by: amishchenko

bc2929fc 12/04/2008 05:24 pm Michael Hanselmann

ganeti-rapi: Convert to new HTTP server

Reviewed-by: amishchenko

19205c39 12/04/2008 05:23 pm Michael Hanselmann

ganeti-noded: Migrate to new HTTP server

Reviewed-by: amishchenko

02cab3e7 12/04/2008 05:23 pm Michael Hanselmann

ganeti.http: Split HTTP server and client into separate files

This includes a large rewrite of the HTTP server code. The handling of
OpenSSL errors had some problems that were hard to fix with its
structure. When preparing all of this, I realized that actually HTTP...

84f2756e 12/04/2008 05:23 pm Michael Hanselmann

Rename all HTTP classes to camel case

It should be consistent.

Reviewed-by: amishchenko

c9d0fa8a 12/04/2008 05:22 pm Michael Hanselmann

ganeti.http: Remove underline from two classes

This is a preparation step for splitting the HTTP client and server code
into two separate modules.

Reviewed-by: amishchenko

ff9efc03 12/04/2008 05:22 pm Michael Hanselmann

Move HTTP code to subpackage

This is a preparation step for splitting the HTTP client and server code
into two separate modules.

Reviewed-by: amishchenko

eb1742d5 12/04/2008 04:52 pm Guido Trotter

LURemoveNode, promote nodes to master candidates

If after the remove node there are not enough master candidates, we'll
try to promote them.

Reviewed-by: imsnah

b04285f2 12/03/2008 07:23 pm Guido Trotter

LUQueryExports: fix rpcresult handling

call_export_list is a multi node call, so we need to go through the
results, extrapolate the good ones, and return a failure value for the
bad ones.

Reviewed-by: imsnah

0fff97e9 12/03/2008 07:23 pm Guido Trotter

LUAddNode: Auto-make master candidates

When a node is added, if there are not enough master candidates, we'll
automatically promote it.

Reviewed-by: imsnah

f08ce603 12/03/2008 07:22 pm Guido Trotter

LUAddNode: Check the correct result

This is a typo in the conversion to RpcResult

Reviewed-by: imsnah

4ce6007f 12/03/2008 06:09 pm Michael Hanselmann

ganeti.http: Fix copyright header

Reviewed-by: ultrotter

6192c9b7 12/03/2008 06:09 pm Michael Hanselmann

ganeti.http: Remove unused attribute "should_fork"

This is a leftover from removed code.

Reviewed-by: ultrotter

b1d979cf 12/03/2008 06:09 pm Michael Hanselmann

ganeti.http: Move request handling logic from server to handler class

Reviewed-by: ultrotter

73a59d9e 12/03/2008 06:09 pm Michael Hanselmann

ganeti.http: Move _SocketOperation to module-level function

This is a preparation step to move the HTTP server class to the
same model as the HTTP client (polling, non-blocking I/O, better
OpenSSL error handling).

Reviewed-by: ultrotter

f22c1cea 12/03/2008 06:08 pm Michael Hanselmann

ganeti.http: Move _WaitForCondition into module-level function

Reviewed-by: ultrotter

e820685c 12/03/2008 06:08 pm Michael Hanselmann

ganeti.http: Remove ApacheLogfile class

We don't need it anymore and it wouldn't work as it is, anyway.

Reviewed-by: ultrotter

05cc153f 12/03/2008 01:12 pm Guido Trotter

InitCluster force a config file update

After the cluster is ready we'll load the ConfigWriter and force a
writeout of all config files.

Reviewed-by: imsnah

c044f32c 12/03/2008 01:12 pm Guido Trotter

Make sure the initial node is a master candidate

Reviewed-by: imsnah

ce735215 12/03/2008 01:12 pm Guido Trotter

gnt-cluster init, handle candidate_pool_size

- Add a new command line option, defaulting to the constant value
- Pass the value to bootstrap.InitCluster
- Use it to init the new Cluster object

Reviewed-by: imsnah

c3e618cc 12/03/2008 01:12 pm Guido Trotter

Add the MASTER_POOL_SIZE_DEFAULT constant

This constant will be used at cluster init time.

Reviewed-by: imsnah

90eb468c 12/03/2008 01:12 pm Guido Trotter

CheckBEParams handle a bool BE_AUTO_BALANCE

This only happens at cluster init, if the value is not user-specified.

Reviewed-by: imsnah

cc3bcec8 12/03/2008 12:28 pm Guido Trotter

Extract the ListNodes headers and use them in help

Currently we have to update both the ListNodes headers and the online
help for the full field list. This patch uses the headers keys for the
help, thus removing duplicating places to update, and adding hope that...

3a26773f 12/03/2008 11:57 am Iustin Pop

A few fixes related to master candidates

This patch:
- fixes cluster verify when all nodes are master candidates, but the
candidate_pool_size is higher
- warn when the master node is not marked as candidate
- disable setting master node to regular node...

ec85e3d5 12/03/2008 11:55 am Iustin Pop

Fix cluster rename and known_hosts

This patch rewrites and distributes ganeti's known_hosts file in case of
a cluster rename.

We also fix a problem in the node add (from where I copied the
known_hosts file distribution).

Reviewed-by: ultrotter

7ccb3074 12/02/2008 04:49 pm Guido Trotter

Fix hooks_unittest with new rpc call structure

Reviewed-by: iustinp

25361b9a 12/02/2008 04:35 pm Iustin Pop

Fix gnt-cluster verify w.r.t. rpc changes

This partially reorganizes the cluster verify LU:
- introduce constants for the node verify rpc call
- move from additional rpc calls to a single rpc call, the
call_node_info, which gaters all data needed...

55cf7d83 12/02/2008 02:58 pm Iustin Pop

Fix cluster rename

With the recent configwriter/ssconf changes, cluster rename becomes
trivial. This patch gets rids of the code and just updates the cluster
object.

Reviewed-by: imsnah

781de953 12/02/2008 02:58 pm Iustin Pop

Convert rpc results to a custom type

For a long time we had the problem that both RPC-layer errors and
results from the remote node share the same "valuespace". This is
because we shouldn't raise an exception when only one node failed
(and lose the results from the other nodes)....

00f91f29 12/02/2008 02:58 pm Iustin Pop

burnin: add instance reinstall and reboot

These two operations were missing from burnin. The reboot is done with
all valid modes (a new constant is added), and the reinstall is done
both with and without specifying the OS (to account for the two code
paths in the LU)....

a5e7be6b 12/02/2008 02:58 pm Iustin Pop

burnin: don't do export/import for file storage

This is currently not supported, so don't try to do export/import in
this case.

Reviewed-by: imsnah

8a74a9b9 12/02/2008 12:54 pm Guido Trotter

KVMHypervisor add two missing 'constants.'

Some calls to the HV parameters were missing them.

Reviewed-by: imsnah

47387b1e 12/02/2008 12:54 pm Guido Trotter

KVMHypervisor fix to case misspellings

Reviewed-by: imsnah

8f348e36 12/02/2008 12:54 pm Guido Trotter

cluster init: don't discard the hypervisor

On cluster init if the user specifies a default hypervisor (with -t)
which is not in the default list of enabled hypervisors (currently just
xen-pvm) without explicitely specifying the list we silently override
the choice....

d4b72030 12/02/2008 12:53 pm Guido Trotter

Use the new utils.CheckBEParams function

Where we used/forgot to validate beparams we now use the new common function.

Reviewed-by: imsnah

42ce2e13 12/02/2008 12:53 pm Guido Trotter

Add utils.CheckBEParams

This function will be used in LUCreateInstance, LUSetInstanceParams,
LUSetClusterParams and InitCluster to check the backend parameters
validity and convert the relevant values to integer, without duplicating
code. It lives in utils as bootstrap.py is calling it too....

1817f49b 12/02/2008 12:53 pm Guido Trotter

Add constants.VALUE_TRUE and VALUE_FALSE

Reviewed-by: imsnah

8edcd611 12/02/2008 12:25 pm Guido Trotter

Handle default/none values in hv/be params

When a value is set to constants.VALUE_DEFAULT we have to remove it from
the specific instance dict, as this way it will be populated from the
cluster before. If instead it's specified as constants.VALUE_NONE we'll...

467ae11e 12/02/2008 12:25 pm Guido Trotter

SetInstanceParams: handle default/none values

If the hv/be parameter lowercase value is set to "default" we'll pass
constants.VALUE_DEFAULT, if it's set to "none" we'll pass
constants.VALUE_NONE.

Reviewed-by: imsnah

021f5d6f 12/02/2008 12:19 pm Guido Trotter

Update gnt-backup online help

--src-node and --src-dir are not mandatory anymore

Reviewed-by: iustinp

b9322a9f 12/02/2008 12:19 pm Guido Trotter

ImportExport: make src_node and src_path optional

If src_node is not there we'll default to using the currently exported
instance name as src_path. Also, if src_path is not absolute we'll look
for it in EXPORT_DIR.

Reviewed-by: iustinp

c0cbdc67 12/02/2008 12:19 pm Guido Trotter

LUCreateInstance: handle import without src_node

If we get called with no source node we'll thread src_path as an
instance name exported in EXPORT_DIR in one of the nodes and look for
it with the export_list rpc call.

Reviewed-by: iustinp

9c8971d7 12/02/2008 12:19 pm Guido Trotter

LUCreateInstance: keep src node lock on import

Currently the node lock also guards against removing the import at the
wrong time, so if we're importing an instance image we want to keep the
source node locked. In the future we might want to put export locks at a...

bbe19c17 12/02/2008 07:07 am Iustin Pop

Fix master failover

The ssconf files were not updated by the master failover. We need to
push them, and since we already have RPC initialized, we can use the
standard ConfigWriter to do so - this will take care of both the config
file and the ssconf files....