- Dec 11, 2008
-
-
Iustin Pop authored
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. Reviewed-by: ultrotter
-
- Dec 10, 2008
-
-
Michael Hanselmann authored
Reviewed-by: iustinp
-
Michael Hanselmann authored
Reviewed-by: iustinp
-
- Dec 09, 2008
-
-
Michael Hanselmann authored
This is a leftover from old code. Reviewed-by: iustinp
-
Michael Hanselmann authored
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 taken from lighttpd. Reviewed-by: amishchenko
-
Michael Hanselmann authored
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 the way SimpleJson handles strings). Reviewed-by: ultrotter
-
Iustin Pop authored
The patch also changes the result to error for non-reachable secondary nodes (as for primary nodes). Reviewed-by: ultrotter
-
- Dec 08, 2008
-
-
Iustin Pop authored
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. Since this is currently the only usage, we change return type from ConfigWriter.MaintainCandidatePool to be objects and adjust the logging of their names, so that the auto-adjusement works. Reviewed-by: ultrotter
-
Iustin Pop authored
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
-
Iustin Pop authored
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 call). Reviewed-by: ultrotter
-
- Dec 07, 2008
-
-
Guido Trotter authored
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
-
- Dec 05, 2008
-
-
Iustin Pop authored
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. Reviewed-by: ultrotter
-
Iustin Pop authored
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. Reviewed-by: ultrotter
-
Iustin Pop authored
These will be used for parameter checking and node status checking. Reviewed-by: ultrotter
-
Iustin Pop authored
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 adds utility functions to automate the maintenance of the node lists. Reviewed-by: ultrotter
-
Iustin Pop authored
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) 1m06s, whereas using slices will decrease this to 0.080s, and slicing with 32 KB size decreases this to 0.073s. This means that uploading a big config file (it nears 1MB for big clusters) will take more and more time per the number of nodes, since it needs lots of slicing. I happened upon this by accidentally setting all nodes as master candidates, at which point just uploading the config file to all nodes took 40s. Applying the patch decreases this to 15s (this probably can still be optimized). The patch also removes a duplicate constant (the one actually used is in http/client.py), and changes the receive buffer size to use the same constant. Reviewed-by: imsnah
-
Iustin Pop authored
The patch also changes the various node list generation to be more consistent. Reviewed-by: imsnah
-
Iustin Pop authored
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
-
Iustin Pop authored
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
-
Iustin Pop authored
Reviewed-by: ultrotter
-
Iustin Pop authored
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
-
Iustin Pop authored
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
-
- Dec 04, 2008
-
-
Michael Hanselmann authored
Reviewed-by: amishchenko
-
Michael Hanselmann authored
Reviewed-by: amishchenko
-
Michael Hanselmann authored
Reviewed-by: amishchenko
-
Michael Hanselmann authored
Reviewed-by: amishchenko
-
Michael Hanselmann authored
Reviewed-by: amishchenko
-
Michael Hanselmann authored
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 is a message protocol and that the same code can be used on both the server and client side to parse requests/responses, with only a few differences. There are still a few TODOs in the code, but none should be a show stopper. Many pylint warnings have been fixed, too. The old code will be removed once all users have been migrated. Reviewed-by: amishchenko
-
Michael Hanselmann authored
It should be consistent. Reviewed-by: amishchenko
-
Michael Hanselmann authored
This is a preparation step for splitting the HTTP client and server code into two separate modules. Reviewed-by: amishchenko
-
Michael Hanselmann authored
This is a preparation step for splitting the HTTP client and server code into two separate modules. Reviewed-by: amishchenko
-
Guido Trotter authored
If after the remove node there are not enough master candidates, we'll try to promote them. Reviewed-by: imsnah
-
- Dec 03, 2008
-
-
Guido Trotter authored
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
-
Guido Trotter authored
When a node is added, if there are not enough master candidates, we'll automatically promote it. Reviewed-by: imsnah
-
Guido Trotter authored
This is a typo in the conversion to RpcResult Reviewed-by: imsnah
-
Michael Hanselmann authored
Reviewed-by: ultrotter
-
Michael Hanselmann authored
This is a leftover from removed code. Reviewed-by: ultrotter
-
Michael Hanselmann authored
Reviewed-by: ultrotter
-
Michael Hanselmann authored
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
-
Michael Hanselmann authored
Reviewed-by: ultrotter
-