- 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
-
Guido Trotter authored
If the set-lock is acquired, currently, the _names function will fail on a double acquire of a non-recursive lock. This patch fixes the behavior, and some lines of code added to the testAcquireSetLock test check that this and other functioins behave properly. Reviewed-by: imsnah
-
- Sep 05, 2008
-
-
Michael Hanselmann authored
SplitTime didn't round the same on different platforms. This patch changes it to use microseconds and not care about rounding. Reviewed-by: iustinp
-
- Aug 29, 2008
-
-
Michael Hanselmann authored
Reported by Iustin. It used to return this: >>> utils.SplitTime(1234.999999999999) (1234, 1000) while it should've returned this: >>> utils.SplitTime(1234.999999999999) (1235, 0) Reviewed-by: ultrotter
-
- Aug 18, 2008
-
-
Guido Trotter authored
A few more tests written while bug-hunting. One of them shows a real issue, at last. :) Reviewed-by: imsnah
-
Guido Trotter authored
I was hunting for a bug in my code and thought the culprit was in the locking library, so I added a test to check. Unfortunately turns out it wasn't. :( Committing the test anyway, while still trying to figure out what's wrong... Reviewed-by: imsnah
-
- Aug 11, 2008
-
-
Michael Hanselmann authored
These will be used for job logs. Reviewed-by: ultrotter
-
- Jul 31, 2008
-
-
Michael Hanselmann authored
This class is a wrapper around fcntl.flock and abstracts opening and closing the lockfile. It'll used for the job queue. (The patch also removes a duplicate import of tempfile into the unittest) Reviewed-by: iustinp
-
Oleksiy Mishchenko authored
Add instance tag handling, improved error logging. ...oh, yes adopt instance listing for RAPI2! Reviewed-by: iustinp
-
- Jul 30, 2008
-
-
Iustin Pop authored
Since we need to compute this from outside utils.py, we change this to a public function. Reviewed-by: ultrotter
-
- Jul 29, 2008
-
-
Iustin Pop authored
We cannot depend on all environments to have a start-stop-daemon or similar tool. We instead implement a KillProcess function that behaves similar to “start-stop-daemon --retry”. Note that the attached unittest can hang in foreground if the child misbehaves (doesn't write to the internal pipe). Since unittest are either run in the foreground or are run with a timeout from an automated framework, I think this is an acceptable trade-off (against of using hardcoded timeouts in the test). Reviewed-by: imsnah
-
Iustin Pop authored
We already have a function to test if a PID is alive, so it makes more sense to use function composition that force calling (since we need to read PIDs from files in other places too). Now IsProcessAlive returns False for PIDs <= 0, since this is the error return from ReadPidFile. The patch also adds a unittest for checking that WriteFile raises the correct exception, and checks that an invalid or missing file causes ReadPidFile to return zero. The unittest tearDown method will try to cleanup the temp directory too (otherwise it leaves stuff after it). Reviewed-by: ultrotter
-
- Jul 28, 2008
-
-
Michael Hanselmann authored
The RESTHTTPServer module went the way of the dodo. Reviewed-by: iustinp
-
- Jul 24, 2008
-
-
Oleksiy Mishchenko authored
Reviewed-by: imsnah
-
Guido Trotter authored
The submitted WritePidFile, RemovePidfile and IsPidFileAlive functions miss unit tests. Adding a simple one which covers their basic functionality. Reviewed-by: iustinp
-
- Jul 23, 2008
-
-
Guido Trotter authored
An implementation mistake from the original design caused nodes to be locked before instances, rather than after. This patch inverts the level numbering, changing also the relevant unittests and the recursive locking function starting point. Reviewed-by: iustinp
-
- Jul 22, 2008
-
-
Oleksiy Mishchenko authored
Reviewed-by: iustinp
-
- Jul 11, 2008
-
-
Oleksiy Mishchenko authored
Reviewed-by: imsnah
-
- Jul 09, 2008
-
-
Iustin Pop authored
Reviewed-by: imsnah
-
Iustin Pop authored
This removes (hopefully) all traces of the old locking functions and uses. Reviewed-by: imsnah
-
- Jul 08, 2008
-
-
Guido Trotter authored
This is to discourage even more whoever may think that this requirement is not really useful and can be lifted, and to at least know where it's used before trying to break it. Reviewed-by: imsnah
-
Guido Trotter authored
This test checks the LockSet behaviour when an empty list is passed. The current behaviour is expected, but since this is a corner case, we're safer to keep it under a check, and if we need a different one monitor that everything is as we expect it to be. Reviewed-by: imsnah
-
Guido Trotter authored
Rather than passing a ConfigWriter to the LUs we'll pass the whole context, from which a ConfigWriter can be extracted, but we can also access the GanetiLockManager. This also fixes the places where a FakeLU is created. Reviewed-by: iustinp
-
Guido Trotter authored
This will be passed to FakeLUs Reviewed-by: iustinp
-
Guido Trotter authored
Since the ConfigWriter now handles its own locking it's not necessary to have a specific level for the config in the Locking Manager anymore. This patch thus removes it, and all the unittest calls that used it, or depended on it being present. Reviewed-by: iustinp
-
Guido Trotter authored
This patch creates a new decorator function ssynchronized in the locking library, which takes as input a SharedLock, and synchronizes access to the decorated functions using it. The usual SharedLock semantics apply, so it's possible to call more than one synchronized function at the same time, when the lock is acquired in shared mode, and still protect against exclusive access. The patch also adds a few unit test to check the basic decorator's functionality, and to provide an example on how to use it. Reviewed-by: iustinp
-
- Jul 04, 2008
-
-
Michael Hanselmann authored
Reviewed-by: ultrotter
-
- Jul 01, 2008
-
-
Iustin Pop authored
This function will return the first unused integer based on a list of used integers (e.g. [0, 1, 3] will return 2). Reviewed-by: imsnah
-
- Jun 30, 2008
-
-
Guido Trotter authored
All the tests there used to creare a cfg, a sstore, an opcode and a LU. Put all the duplicate code in the setUp function. Reviewed-by: iustinp
-
- Jun 23, 2008
-
-
Michael Hanselmann authored
Reviewed-by: iustinp
-
Guido Trotter authored
The failure is because in high load, the parent gets to run before the child has the chance to os._exit(), and therefore it is still running when the parent does the check. The fix removes the chance of this happening by waiting to receive a SIGCHLD (but not calling wait()) before trying to test the pid. Reviewed-by: imsnah
-
Michael Hanselmann authored
In cfgupgrade, we need to extract parts of and build new version numbers. Reviewed-by: iustinp
-
- Jun 19, 2008
-
-
Michael Hanselmann authored
This change allows us to use cleaner dependencies between directories. The build system is basically rewritten in large parts and may contain bugs. Reviewed-by: iustinp
-