- Feb 10, 2010
-
-
Iustin Pop authored
Commit 154b9580 changed (correctly) the __slots__ usage, but this broke dumpers/loaders since we relied directly on the own class __slots__ field. To compensate, we introduce a simple function for computing the slots across all parent classes (if any), and use this instead of __slots__ directly. Note: the _all_slots() function is duplicated between objects.py and opcodes.py, but the only other options is to introduce a lang.py for such very basic language items. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
- Jan 27, 2010
-
-
Balazs Lecz authored
According to http://docs.python.org/reference/datamodel.html#slots * The action of a __slots__ declaration is limited to the class where it is defined. As a result, subclasses will have a __dict__ unless they also define __slots__ (which must only contain names of any /additional/ slots). * If a class defines a slot also defined in a base class, the instance variable defined by the base class slot is inaccessible (except by retrieving its descriptor directly from the base class). This renders the meaning of the program undefined. In the future, a check may be added to prevent this. Signed-off-by:
Balazs Lecz <leczb@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Iustin Pop <iustin@google.com> Signed-off-by:
Iustin Pop <iustin@google.com>
-
- Jan 25, 2010
-
-
Iustin Pop authored
int()/float() can raise either ValueError (in case of int("a")), or TypeError (in case of int(None)). We had many bugs over time due to this, and a recent one was just diagnosed, so we go over the codebase and replace all 'except ValueError' with 'except (TypeError, ValueError)' that protect such conversions (there were no 'except TypeError' cases that needed a ValueError added). Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
- Jan 04, 2010
-
-
Iustin Pop authored
Plus a silence for a wrong "uninitialized var". Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Olivier Tharan <olive@google.com>
-
Iustin Pop authored
This patch should have only: - pylint disables - docstring changes - whitespace changes Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Olivier Tharan <olive@google.com>
-
- Dec 28, 2009
-
-
Iustin Pop authored
This patch adds targeted pylint disables, where it makes sense (either due to limitations in pylint or due to historical usage), and also a few blanket ones in rapi where all the names are… “different”. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Olivier Tharan <olive@google.com>
-
- Nov 12, 2009
-
-
Guido Trotter authored
We should match for the strings to be the same "==" not to point to the same memory location with is, or we skip the actual check. Signed-off-by:
Guido Trotter <ultrotter@google.com>
-
- Nov 06, 2009
-
-
Iustin Pop authored
This patch adds some silences and tweaks the code slightly so that “pylint --rcfile pylintrc -e ganeti” doesn't give any errors. The biggest change is in jqueue.py, the move of _RequireOpenQueue out of the JobQueue class. Since that is actually a function and not a method (never used as such) this makes sense, and also silences two pylint errors. Another real code change is in utils.py, where FieldSet.Matches will return None instead of False for failure; this still works with the way this class/method is used, and makes more sense (it resembles more closely the re.match return values). Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
This patch adds support for global hypervisor parameters in instance creation, instance modification, instance query and at instance load time. We basically prevent any query on these parameters, discard them at load time, and do not allow their modification. Together, this should make any such parameters go away if existing and not allowed to be added. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
- Nov 02, 2009
-
-
Iustin Pop authored
This finishes the conversion of OpPrereqError creation to two-argument style. Any leftovers as one-argument are not breaking anything, just losing information about the errors. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
- Oct 26, 2009
-
-
Iustin Pop authored
This allows using an email address (as is) as part of a tag. The main problem that could arise is when parsing tags from a shell script, but (AFAIK) '@' is not a special character when used in values (happy to be corrected if not true). The patch also moves the re to be compiled at class init time, should use less resources; in my tests it is fine to use a compiled re from multiple threads. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
- Oct 22, 2009
-
-
Ken Wehr authored
Allows the initialization of a cluster without the creation or distribution of SSH key pairs. Includes changes for LeaveCluster and RPC. Signed-off-by:
Ken Wehr <ksw@google.com> Signed-off-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
- Oct 05, 2009
-
-
Guido Trotter authored
The slot will contain a list of variants, and the variants file constant contains the file in the os dir which is supposed to hold the list. Signed-off-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Olivier Tharan <olive@google.com>
-
- Sep 25, 2009
-
-
Iustin Pop authored
Currently the config upgrade is done at each object instantiation, that means that ganeti-noded will run UpgradeConfig on all objects received remotely (instances, disks, nics). This is not so good, so this patch changes it so that only the ConfigWriter runs this method at configuration load time. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com> (cherry picked from commit 90d726a8)
-
- Sep 24, 2009
-
-
Iustin Pop authored
Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
- Sep 22, 2009
-
-
Iustin Pop authored
Currently the config upgrade is done at each object instantiation, that means that ganeti-noded will run UpgradeConfig on all objects received remotely (instances, disks, nics). This is not so good, so this patch changes it so that only the ConfigWriter runs this method at configuration load time. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
- Sep 03, 2009
-
-
Michael Hanselmann authored
Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Luca Bigliardi <shammash@google.com>
-
- Aug 17, 2009
-
-
Iustin Pop authored
This patch adds ctime/mtime support to the “main” config objects - the config data itself, and the cluster/nodes/instances objects. These are not added on auto-upgrade, but rather should be migrated if it makes sense when 2.0 is upgraded to 2.1. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Iustin Pop authored
__setitem__ is used to emulate container objects. We don't use this, and the method is not used in a couple of normal operations (add/remove instance, add/remove disk). Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
- Aug 10, 2009
-
-
Guido Trotter authored
From time to time we're adding new be or hv parameters. With this patch missing parameters get set to the default value when loading the cluster object. This patch version also considers the case when hv/be params don't exist at all, and fixes a broken unit test triggered in that case. Signed-off-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Iustin Pop <iustin@google.com> (cherry picked from commit c1b42c18)
-
Guido Trotter authored
If --no-etc-hosts is passed in at cluster init time we set a new parameter in the cluster's object to false, and avoid adding nodes to the hosts file. The UpgradeConfig function is used to set the value to True, when upgrading from an old configuration version. Signed-off-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Iustin Pop <iustin@google.com> (cherry picked from commit b86a6bcd)
-
Guido Trotter authored
Add a very basic configuration update mechanism to objects. An object can define the UpgradeConfig method, which will be called at init time, and use it to fill in missing defaults in the configuration. In the future we may want to make it more complex, for example adding the config version, but for now a basic solution will do. Signed-off-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Iustin Pop <iustin@google.com> (cherry picked from commit 560428be)
-
- Aug 07, 2009
-
-
Guido Trotter authored
These objects are used to store confd queries and replies. Signed-off-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Aug 06, 2009
-
-
Michael Hanselmann authored
This allows us to report “uncertain” states (LDS_UNKNOWN) for cases where the code can't easily detect or report what's wrong with a block device. 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:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Aug 05, 2009
-
-
Guido Trotter authored
The method is changed to a normal loop, to avoid calling getattr() twice. Also __getstate__ is changed to just use ToDict() by default. This should also make __getstate__ work for objects which have to override the ToDict function because they contain other objects. __setstate__ is probably still broken in this case, but so it was before, and it's not used inside our code, so I'll pretend not to have noticed, as there is no "nice" way to fix it, without overriding it all over the place :( Some unittests are added as a bonus, to make sure we behave well. Signed-off-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
This patch changes the return type for backend.BlockdevFind to an object (objects.BlockDevStatus). Before a tuple was used. Adding more values to this tuple causes a lot of work. Converting the result to an object with properties will make this a bit simpler. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
- Aug 04, 2009
-
-
Iustin Pop authored
This method recursively resets the size of the disk and its children to zero. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
- Aug 03, 2009
-
-
Iustin Pop authored
This small patch adds a simple Copy method that is can be used for 'throw-away' copies of objects. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
- Jul 16, 2009
-
-
Guido Trotter authored
Currently we have both a default_hypervisor and an enabled_hypervisors list. The former is only settable at cluster init time, while the latter can be changed with cluster modify. This becomes cumbersome in a few ways: at cluster init time for example if we pass in a list of enabled hypervisors which doesn't include the "default" xen-pvm one, we're also forced to pass a default hypervisor, or an error will be reported. It is also currently possible to disable the default hypervisor in cluster-modify (with unknown results). In order to avoid this we get rid of this field altogether, and define the "first" enabled hypervisor as the default one. This allows ease of changing which one is the default, and at the same time maintains coherency. At configuration upgrade we make sure that the old default is first in the list, so that 2.0 cluster defaults are preserved. Signed-off-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Jul 07, 2009
-
-
Michael Hanselmann authored
Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Jun 18, 2009
-
-
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>
-
- Jun 16, 2009
-
-
Guido Trotter authored
Signed-off-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Jun 15, 2009
-
-
Iustin Pop authored
We no longer need OS objects to be able to represent invalid OSes. This cleans up the code handling those cases. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Guido Trotter authored
These values are deprecated, and not used in 2.1 anymore. The slots are still there to allow auto-upgrading from 2.0. Signed-off-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Jun 12, 2009
-
-
Guido Trotter authored
Also populate nicparams with a sensible default for imported instances. Unfortunately we don't know if the bridge set up in old nics is the default one or not, and we don't have access to the config cluster object here to verify, so we'll just copy it without questions. Signed-off-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Jun 08, 2009
-
-
Guido Trotter authored
This also migrates the default bridge from the cluster object to the nic params, at load time. Since we don't support changing the default bridge after cluster init, this is ok for now. In the future we'll make gnt-cluster init --bridge to the right thing, after the nic parameter implementation is finished. Signed-off-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Guido Trotter authored
This function will be used to check the NIC parameters for validity. Unittests are included. Signed-off-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Guido Trotter authored
A new UpgradeGroupedParams is used to upgrade all the profiles for one parameter filling in the default values, or creating the whole dict anew, should it be missing. This is used only for beparams, currently, but will be used at least for nicparams and diskparams as well. Signed-off-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Guido Trotter authored
This way the same constant can represent the default profile also for nic, disk and OS parameters. Signed-off-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-