- 17 Aug, 2009 1 commit
-
-
Iustin Pop authored
We don't format with subsecond-precision. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
- 29 Jul, 2009 1 commit
-
-
Michael Hanselmann authored
These will be used by the new storage unit framework. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
- 24 Jul, 2009 1 commit
-
-
Guido Trotter authored
GetNodeDaemonPort is used to lookup the node daemon port in the services file, and if not found to return the default one. We make it a generic function, which accepts the daemon name in input, so that it can be used by confd as well, to lookup its own udp port. Signed-off-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
- 07 Jul, 2009 2 commits
-
-
Michael Hanselmann authored
Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- 29 Jun, 2009 1 commit
-
-
Guido Trotter authored
If an ident member of an IdentKeyVal relationship starts with no_ or -, handle it the same way we do for a key. Some unittests are added to check that check_ident_key_val behaves as expected. This patch also changes ForceDictType to, for now, fail on such an entry, and the same to happen when creating an instance or modifying its nics or disks. This behavior will be used later on to allow deletion of os entries in os parameters. Signed-off-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- 18 Jun, 2009 1 commit
-
-
Iustin Pop authored
There were multiple issues: - copy-paste resulted in wrong indentation - wrong function name - missing spaces around assignment - overriding built-in names (type, dir) or already defines ones (errors, hypervisor) Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
- 15 Jun, 2009 2 commits
-
-
Iustin Pop authored
Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
Only the custom handling in rpc.py for call_node_info used this, so now it can be removed. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
- 22 May, 2009 2 commits
-
-
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>
-
- 19 May, 2009 2 commits
-
-
Iustin Pop authored
Currently we have bad behaviour in SafeEncode: - binary strings are actually not handled correctly (ahem) - the encoding is not stable, due to use of string_escape For this reason, we replace the use of string_escape with part of the code of string escape (PyString_Repr in Objects/stringobject.c); we don't escape backslashes or single quotes, since that is that makes it nonstable. Furthermore, we only use the encode('ascii', ...) for unicode inputs. The patch also adds unittests for the function that test basic behaviour. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
This patch adds constants for the mouse and boot order strings; while there are still some issues remaining, we're trying to cleanup hardcoded strings from the hypervisors. Since the formatting of frozensets is currently wrong, we also add an utility function for this and change all the error messages to use it. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
- 05 May, 2009 3 commits
-
-
Carlos Valiente authored
Python 2.6 complains about module 'sha' being deprecated. It makes execution of Ganeti commands a bit annoying, and when you run 'ganeti-watcher' in cron jobs, you get a mail message after every execution. Tests pass under under Python 2.6 and Python 2.4. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Carlos Valiente authored
Python 2.6 complains about module 'sha' being deprecated. It makes execution of Ganeti commands a bit annoying, and when you run 'ganeti-watcher' in cron jobs, you get a mail message after every execution. Tests pass under under Python 2.6 and Python 2.4. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Iustin Pop authored
In case of missing programs, currently utils.RunCmd doesn't show any information to help debugging, only 'No such file or directory'. This patch adds error handling for the ENOENT case such that at least we have this information in the node daemon logs. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
- 04 May, 2009 1 commit
-
-
Iustin Pop authored
Currently we always try to remove the new file, even if the rename succeeded. This patch tracks the existence of the new file and doesn't try to remove it if we managed to rename it. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
- 02 Mar, 2009 1 commit
-
-
Iustin Pop authored
This fixes a bug introduced in rev 2562 and also fixes the indentation. Reviewed-by: ultrotter
-
- 27 Feb, 2009 2 commits
-
-
Guido Trotter authored
Some hypervisors (KVM) need RUN_GANETI_DIR to exist even at cluster init time. This patch creates it in InitCluster just before hv parameter checking. Since the code to make list of directories is already repeated twice in the code, and this would be the third time, we abstract it into an utils.EnsureDirs function and we call that one from ganti-noded, ganeti-masterd and bootstrap. Reviewed-by: iustinp
-
Iustin Pop authored
99% of the epydoc return tags are "@return:", but each of the modified files had one "@returns:" line. We fix this for consistency. Reviewed-by: imsnah
-
- 26 Feb, 2009 1 commit
-
-
Michael Hanselmann authored
Reviewed-by: iustinp
-
- 12 Feb, 2009 1 commit
-
-
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
-
- 10 Feb, 2009 1 commit
-
-
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
-
- 03 Feb, 2009 2 commits
-
-
Guido Trotter authored
Reviewed-by: iustinp
-
Iustin Pop authored
This patch unifies the hardcoded re-encoding attempts into a single function in utils.py. This function is used to take either an unicode or str object and convert it to a ASCII-only str object which can be safely displayed and transmitted. We replace then the current manual re-encodings with this function. In mcpu we stop re-encoding the hooks output and instead we do it right at the hook generation in backend.py. This passes on my 'custom' lvs output with non-ASCII chars. But there are probably other places we will need to fix. Reviewed-by: ultrotter
-
- 23 Jan, 2009 1 commit
-
-
Iustin Pop authored
This patch fixes the gnt-instance batch-create command, and in doing so also slightly changes two other functions: - we change utils.ParseUnit so that it accepts integer values also (both ParseUnit(5) and ParseUnit("5") return the same value) - a bridge 'None' in LUCreateInstance will be converted to the default bridge; currently only missing bridges will be accepted to mean the default one The main changes to batcher were the change to variable number of disks and NICs. The patch also adds a batcher-instances.json example file copied from the 1.2 branch and properly modified. Reviewed-by: imsnah, killerfoxi
-
- 20 Jan, 2009 3 commits
-
-
Iustin Pop authored
(this is related to the master daemon log) Currently it's not possible to follow (in the non-debug runs) the logical execution thread of jobs. This is due to the fact that we don't log the thread name (so we lose the association of log messages to jobs) and we don't log the start/stop of job and opcode execution. This patch adds a new parameter to utils.SetupLogging that enables thread name logging, and promotes some log entries from debug to info. With this applied, it's easier to understand which log messages relate to which jobs/opcodes. The patch also moves the "INFO client closed connection" entry to debug level, since it's not a very informative log entry. Reviewed-by: ultrotter
-
Michael Hanselmann authored
This way newly added files will be not be excluded by default. Fixes also a small whitespace error in utils.py. Reviewed-by: iustinp
-
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
-
- 09 Jan, 2009 1 commit
-
-
Iustin Pop authored
The current fork+close fds sequence has deficiencies which are hard to work around: - logging can start logging before we fork (e.g. if we need to emit messages related to master checking), and thus use FDs which we can't track nicely - the queue locks the queue file, and again this fd needs to be kept open which is hard from the main loop (and this error is currently hidden by the fact that we don't log it) Given the above, it's much simpler, in case we will fork later, to close file descriptors right at the beginning of the program, and in Daemonize only close/reopen the stdin/out/err fds. In addition, we also close() the handlers we remove in SetupLogging so that the cleanup is more thorough. Reviewed-by: imsnah
-
- 18 Dec, 2008 1 commit
-
-
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
-
- 17 Dec, 2008 1 commit
-
-
Michael Hanselmann authored
Sometimes the proc filesystem doesn't reflect the current status of a process. By calling waitpid(), we make sure to get the current information, at least for child processes. The timeout is still kept for child processes to make sure the proc filesystem is updated. Reviewed-by: iustinp
-
- 16 Dec, 2008 1 commit
-
-
Guido Trotter authored
poll() can be interrupted. rather than failing we retry until it returns. Reviewed-by: iustinp
-
- 14 Dec, 2008 2 commits
-
-
Iustin Pop authored
The default value of 'False' wasn't initialized properly. It doesn't require initialization, but it's cleaner this way. Reviewed-by: amishchenko
-
Iustin Pop authored
Reviewed-by: amishchenko
-
- 03 Dec, 2008 1 commit
-
-
Guido Trotter authored
This only happens at cluster init, if the value is not user-specified. Reviewed-by: imsnah
-
- 02 Dec, 2008 1 commit
-
-
Guido Trotter authored
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. Reviewed-by: imsnah
-
- 23 Nov, 2008 1 commit
-
-
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
-
- 21 Nov, 2008 2 commits
-
-
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
-
Michael Hanselmann authored
With the new SSL client certificate stuff it's no longer needed. Reviewed-by: iustinp
-