- Jan 20, 2009
-
-
Iustin Pop authored
In order to prevent errors with old, in-use DRBD minors, we check and abort at create time if our minor is already in use. For this we need to also modify DRBD8Status to be able to parse cs:Unconfigured devices. Reviewed-by: ultrotter
-
Iustin Pop authored
This patch adds a tail file function, to be used for parsing and returning in the job log OS installation failures. Reviewed-by: ultrotter
-
Iustin Pop authored
This patch adds unified temporary file handling to the testutils.GanetiTestCase class, which adds easy creation and automated cleanup of temporary files. The patch allows a simpler handling in a couple of test cases but requires all child classes to call the parent setUp and tearDown methods. Reviewed-by: ultrotter
-
- Dec 19, 2008
-
-
Michael Hanselmann authored
Reviewed-by: amishchenko
-
- Dec 18, 2008
-
-
Michael Hanselmann authored
Unfortunately, os.makedirs in Python 2.4 is not safe against multiple processes creating the same directory tree at the same time. This is only fixed in Python 2.5 and up. Adding more checks in our code doesn't make it any better. Reviewed-by: iustinp
-
- Dec 17, 2008
-
-
Michael Hanselmann authored
More complex unittests will need some refactoring in the HTTP code. Reviewed-by: amishchenko
-
- Dec 04, 2008
-
-
Michael Hanselmann authored
It should be consistent. Reviewed-by: amishchenko
-
- Dec 03, 2008
-
-
Michael Hanselmann authored
We don't need it anymore and it wouldn't work as it is, anyway. Reviewed-by: ultrotter
-
- Dec 02, 2008
-
-
Guido Trotter authored
Reviewed-by: iustinp
-
- Nov 28, 2008
-
-
Oleksiy Mishchenko authored
Reviewed-by: imsnah
-
- Nov 23, 2008
-
-
Iustin Pop authored
This patch enables by default the old 'human-readable' option, but in a slightly different model. The option is now called "units" and takes either: - 'h' for automatic formatting - 'm', 'g' or 't' for mebi/gibi/tebibytes If 'h' is used, we add a unit suffix, otherwise nothing is added so that parsing is easy. The default value of this unit is: - 'h' if a separator is not passed - 'm' if a separator is passed Reviewed-by: ultrotter
-
- Nov 21, 2008
-
-
Iustin Pop authored
Since we can use the FieldSet class in cli.py to nicely format disk sizes and such, we move it to utils.py and also move its associated unittest. I didn't remove the cmdlib.py unittest file as that's not the good direction :) Reviewed-by: ultrotter
-
- Nov 18, 2008
-
-
Iustin Pop authored
The waiting sharer blocks exclusive is another not-possible to test right now. Sorry for missing it the first time; there are no other testWaiting... tests. Reviewed-by: ultrotter
-
Iustin Pop authored
This patch adds a _FieldSet class that can be used for the new variable parameter sets: e.g. the sda_size will change to disk/0.size (or similar) and we need to both check validity and extract the index of the parameter easily. The patch also sorts the unittest list in Makefile.am. Reviewed-by: ultrotter
-
Iustin Pop authored
Until we have a way to properly test this, we'll skip the test. Reviewed-by: imsnah
-
- Nov 12, 2008
-
-
Iustin Pop authored
Currently the locking tests are using timeouts to ensure an event will 'never happen'. However, this is suboptimal. The patch converts all of these to instead: not wait, but sequence the operations logically and expect that they execute as such. In case of not so, they will timeout with a big (60s) timeout. The 'never happen' is tested by multiple repetitions of the same test - this is not perfect, but again 'X will never happen' is not actually testable. This patch reduces the runtime of the tests from ~5.4 to ~0.8 seconds (with 8 repetitions of each test thas has 'never happen' situations). Reviewed-by: imsnah
-
- Nov 11, 2008
-
-
Iustin Pop authored
Based on the discussion on the mailing list, we remove the special casing of zombie processes. Note we don't use kill -0 since that has a different meaning than "check process is alive", so this function is still linux-specific. Reviewed-by: imsnah
-
Iustin Pop authored
In case the process we want to signal is our own process, and the signal we send is a deadly one, we should also cleanup after the process. This patch adds a new parameter waitpid to this function that does this, and changes its unittest to pass this new parameter. Reviewed-by: imsnah
-
Iustin Pop authored
In order to replace usage of the shell just for 'cd %s; ...' we need to be able to specify the working directory for childs. The patch also changes the default working directory (when not specified) to "/", as opposed to the current dir; since the daemos run with cwd=/ anyway, this should not change things. Reviewed-by: imsnah
-
- Oct 24, 2008
-
-
Iustin Pop authored
Currently we launch processes via the shell in a few places only to redirect standard output and error to a log file ("&> $file"). It is better to do such redirection from within RunCmd itself. This patch splits RunCmd in two parts, the setup and the execution part, the latter being implemented in two different functions depending on whether we write to a file or not. We also update the unittests with this new case. Reviewed-by: imsnah
-
- Oct 21, 2008
-
-
Iustin Pop authored
We change some messages which are obviously intended for the user to use the proc.Log* functions instead of (only) the logging ones. We also fix some wrong uses of feedback_fn. Reviewed-by: imsnah
-
- Oct 20, 2008
-
-
Iustin Pop authored
Currently we have two methods in ganeti.bdev_unittest.py of computing the test data file name - and, of course, they don't give the same results. The patch moves the functions to compute the test file name and reading of its contents to the GanetiTestCase class in testutils, which allows running the tests from the command line as well. We also change assertFileContent to use utils.ReadFile. Reviewed-by: imsnah
-
Alexander Schreiber authored
During cluster init, set the default hypervisor to be used for instances. Ensure that the default hypervisor belongs to the set enabled hypervisors for this cluster. Also fix a small bug with setting the default enabled hypervisor list. Reviewed-by: imsnah
-
Iustin Pop authored
We also add two function for printing messages, so that scripts won't have to import logger to get these. They are a simple extension over the logger ones, as they accept the call style from logging: ToStdout("Message: %s", msg) (instead of requiring formatting by the client. Reviewed-by: imsnah
-
Michael Hanselmann authored
All users of this code have been migrated to the new and shiny HttpServer class. It also fixes a typo in the ApacheLogfile unittests. It has not yet been decided whether we should keep ApacheLogfile or not, hence leaving it in. Reviewed-by: ultrotter
-
- Oct 17, 2008
-
-
Michael Hanselmann authored
I broke it with rev 1864. This patch also removes whitespace at line endings. Reviewed-by: amishchenko
-
- Oct 16, 2008
-
-
Iustin Pop authored
So, instead of any timeouts for synchronization, we move to actual events. We still have one (huge) timeout for pathological cases (just to cleanup), but we don't sleep at all in normal usage. The patch moves the zombie/cleaned up child creation out from setUp(), and to on-demand by the functions. We remove all signal handler usage, instead we rely on the fact that when a process is cleaned up, its FDs are closed, so the read end of a pipe will get an event. Reviewed-by: imsnah
-
- Oct 14, 2008
-
-
Iustin Pop authored
This patch adds paramter removal in SplitKeyVal, by prefixing a value-less key with "-"; this is needed in resetting parameters back to cluster defaults, but care must be applied now that None can come from the parser. Reviewed-by: imsnah
-
- Oct 13, 2008
-
-
Iustin Pop authored
For the new 2.0-style command line options, we need to parse strings of the type: ident:key=val[,...] and key=val[,...] This patch adds two new option builders for these two, which return (ident, {key=val,}) and {key=val,} for the above two formats. It also handles specially constructs of type “key” (val is set to True) and “no_key” (val is set to False, and the ‘no_’ prefix is stripped). Reviewed-by: imsnah
-
- Oct 12, 2008
-
-
Iustin Pop authored
Currently, we check if we have a given ip address (i.e. it's alive on one of our interfaces) but manually calling TcpPing(source=localhost). This works, but having it spread all over the code makes it hard to change the implementation. The patch abstracts this into a separate utils.OwnIpAddress(addr) function. We add a rpc call for it, which we use instead of the (single-use of) call_node_tcp_ping. We leave node_tcp_ping in, as seems useful and eventually it should be removed in a separate patch. Reviewed-by: imsnah
-
- Oct 10, 2008
-
-
Iustin Pop authored
This big patch changes the call model used in internode-rpc from standalong function calls in the rpc module to via a RpcRunner class, that holds all the methods. This can be used in the future to enable smarter processing in the RPC layer itself (some quick examples are not setting the DiskID from cmdlib code, but only once in each rpc call, etc.). There are a few RPC calls that are made outside of the LU code, and these calls are left as staticmethods, so they can be used without a class instance (which requires a ConfigWriter instance). Reviewed-by: imsnah
-
- Oct 08, 2008
-
-
Oleksiy Mishchenko authored
Reviewed-by: iustinp
-
- Oct 06, 2008
-
-
Iustin Pop authored
This function will be used for auto-archiving jobs via the command line. The function is pretty simple, we only support up to weeks since months and higher are not 'precise' entities, and dealing with them would require us to start using calendar functions. Reviewed-by: imsnah
-
- Oct 01, 2008
-
-
Michael Hanselmann authored
Remove leftovers from ssconf. Reviewed-by: iustinp
-
Michael Hanselmann authored
Get rid of ssconf and convert to configuration instead. Reviewed-by: iustinp
-
Michael Hanselmann authored
Replacing ssconf with configuration. Reviewed-by: iustinp
-
Michael Hanselmann authored
Reviewed-by: iustinp
-
Michael Hanselmann authored
ssconf will become write-only from ganeti-masterd's point of view, therefore all settings in there need to go into the main configuration file. Reviewed-by: iustinp
-
Michael Hanselmann authored
Future patches will add even more variables to the cluster config. Adding more parameters wouldn't make the function easier to use and it doesn't make sense to pass them to another function, as it's only done once in bootstrap.py on cluster initialization. Reviewed-by: iustinp
-
- Sep 11, 2008
-
-
Guido Trotter authored
This patch bans add() on a half-acquired set. This behavior was previously possible, but created a deadlock if someone tried to acquire the set-lock in the meantime, and thus is now forbidden. The testAddRemove unit test is fixed for this new behavior, and includes a few more lines of testing and a new testConcurrentSetLockAdd function tests its behavior in the concurrent case. Reviewed-by: imsnah
-