- May 22, 2009
-
-
Guido Trotter authored
We used to refer to normalized paths as "normal" which might be confusing. This fixes the syntax in all current IsNormAbsPath users and in the docstring. Signed-off-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Guido Trotter authored
Currently most of the time we check for absolute path, but that doesn't protect us from some invalid paths. In some places we should be more strict, and this function should help us to. Signed-off-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- May 05, 2009
-
-
Iustin Pop authored
DRBD 8.3 changes two more things compared to 8.2: - /proc/drbd format changed in multiple ways; the part we're interested is the ‘st:’ to ‘ro:‘ change (in the changelog named as “Renamed 'state' to 'role'” - “drbdsetup /dev/drbdN show” changed the ‘device’ stanza from: device "/dev/drbd0"; to: device minor 0; This patch fixes these both and adds data files and unittests for DRBD 8.3.1. Signed-off-by:
Iustin Pop <iustin@google.com>
-
- Feb 16, 2009
-
-
Iustin Pop authored
If /proc/drbd can't be opened, this raises an IOError, but all the error-handling behaviour in backend treats only BlockDeviceErrors. This creates a plain failure in cluster verify and in other RPC calls. This patch simply converts EnvironmentErrors into BlockDeviceErrors, and also changes the RPC result for NV_DRBDLIST and its handling to be able to show the error. The other RPC calls work by default now, due the existing error handling. Reviewed-by: ultrotter
-
- Feb 12, 2009
-
-
Guido Trotter authored
In the current Ganeti version when modifying /etc/hosts we mistakenly give it the permissions of the temporary file we create to define its content, which is by default 0600. This breaks most non-root applications, and thus must be corrected. This patch forces the mode to be 0644 (but we might decide to just use the mode of the previous /etc/hosts, if we want to be more polite against any eventual administrative choice). We also add a new assertFileMode() method for unit tests and actually check in the SetEtcHostsEntry and RemoveEtcHostsEntry tests that the mode is correct, to be sure not to reintroduce this bug again. Also, a FIXME is added in the original functions stating that it would be nice to use WriteFile+fn() rather than reimplementing its functionality again. Reviewed-by: iustinp
-
- Feb 10, 2009
-
-
Guido Trotter authored
We want all the hv/be parameters to have a known type, rather than a random mix of empty string, boolean values, and None, so we declare the type of each variable and we enforce/convert it. - Add some new constants for enforceable value types - Add new constants dicts HVS_PARAMETER_TYPES and BES_PARAMETER_TYPES holding not only the valid parameters but also their types - Drop the old HVS_PARAMETERS and BES_PARAMETERS constants and calculate the values from the type dict - Convert all the default parameters to a valid type value - Create a new ForceDictType utils function, to check/enforce a dict's element value types, with relevant unit tests - Drop a few custom functions to check/convert the BE param types in utils and cli, in favor of ForceDictType - Double-check the parameter types using ForceDictType in both scripts and LogicalUnits, when possible. As a bonus: - Remove some old commented-out code in gnt-instance - Remove some already fixed FIXME - Fix a bug which prevented VALUE_DEFAULT to be applied to BE parameters in SetInstanceParams because the value was checked for validity before that transformation was made - Fix a bug which prevented initing a cluster and passing hvparams to work at all - ForceDictType allows an allowed_values for exceptions, which makes us able to do the checking even when some values must not be converted/typechecked (for example the 'default' string in SetInstanceParameters) Reviewed-by: iustinp
-
- Feb 03, 2009
-
-
Iustin Pop authored
Due to the fact that we sanitize now the output from environment scripts, the unittest needs to be adjusted. My bad for not checking it. Reviewed-by: imsnah
-
- Jan 29, 2009
-
-
Oleksiy Mishchenko authored
The resources we still need moved to rlib2. Reviewed-by: iustinp
-
Oleksiy Mishchenko authored
Reviewed-by: iustinp
-
Oleksiy Mishchenko authored
It is impossible to keep backward compatibility due to significant changes in the Ganeti core. Reviewed-by: iustinp
-
- Jan 23, 2009
-
-
Iustin Pop authored
This patch enhances the duplicate DRBD minors checks (currently just a few) and adds automatic checks of configuration consistency at configuration file writing time. In order to do so and show meaningful error messages, the _UnlockedComputeDRBDMap function is changed to not raise errors in case of duplicates, but instead return both the minors map and the duplicate list, and its callers now raise the error. This allows the VerifyConfig function to return a complete list of duplicates. The new checks required some small updates to the unittests for the config module. Reviewed-by: ultrotter
-
- 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
-