- Sep 12, 2012
-
-
René Nussbaumer authored
The IAllocator class was handling all the requests on its own, passing in parameters on top level which works, but is hard to maintain and not flexible. With the upcoming change to the IAllocator for MultiAllocate we can't use the toplevel parameters anymore. Therefore, we refactor the code into separate classes, which just do their own stuff. It works similiar to Opcode containers. Signed-off-by:
René Nussbaumer <rn@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
René Nussbaumer authored
As we will introduce another set of containers using the __slots__ trick we abstract away as much as possible to separate bases classes. The child classes then adapt them for their needs. This leads to less code duplication. Signed-off-by:
René Nussbaumer <rn@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
René Nussbaumer authored
This makes it possible to better untangle the IAllocator code, which would otherwise lead to a recursive import structure as we need those helpers there as well. Signed-off-by:
René Nussbaumer <rn@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
- Sep 04, 2012
-
-
Iustin Pop authored
This is another rather trivial patch, moving all the (htools) shelltests to their own directory. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
Iustin Pop authored
Following up on the program moves, we now move the test data files. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Agata Murawska <agatamurawska@google.com>
-
- Aug 28, 2012
-
-
Iustin Pop authored
This implements the same query=True|False functionality as in GetClient for cli.py, however since the RAPI code is much more unit-tested (and the unit-test clients are mocked, for the most part, without support for addresses) we have to do many adaptations in the tests. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Agata Murawska <agatamurawska@google.com>
-
Agata Murawska authored
As timeout constants will now be used also on Haskell side, they have been moved from rpc_defs and rpc to constants. The same is true for connection timeout for connecting to nodes. Signed-off-by:
Agata Murawska <agatamurawska@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Aug 10, 2012
-
-
Iustin Pop authored
This is a bit of a shell munging trickery, but works for now. Making it more generic can be done later. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
- Aug 07, 2012
-
-
Iustin Pop authored
This has been a long-standing cleanup item, which we've always refrained from doing due to the high estimated effort needed. In reality, it turned out that after some infrastructure improvements (the previous patches), the actual job queue-related changes are quite small. We will need to update the NEWS file later, but so far the RAPI documentation doesn't mention that the job ID is a string (it only says it is "a number"), so it doesn't look like it needs update. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
Iustin Pop authored
This patch removes/abstracts some hardcoded values in the jqueue unittests. Currently we have a per-resource type name field, but the name field values are hardcoded at the call sites, instead of being abstracted into separate variables. This will become a problem later, so let's just introduce some new vars holding these; modifying the tests later will be therefore easier. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
- Jun 28, 2012
-
-
Iustin Pop authored
This is not perfect, as we only test that hbal completes successfully and that it show a score improvement, but it's better than nothing. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
Agata Murawska authored
Signed-off-by:
Agata Murawska <agatamurawska@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
René Nussbaumer authored
The previous patch which fixed disk parameters didn't adapt the unittests so it lead to failing QA. Signed-off-by:
René Nussbaumer <rn@google.com> Reviewed-by:
Agata Murawska <agatamurawska@google.com>
-
- Jun 27, 2012
-
-
Agata Murawska authored
Signed-off-by:
Agata Murawska <agatamurawska@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
- Jun 25, 2012
-
-
Agata Murawska authored
Simple tests for hcheck using shelltestrunner. Among other, we check that we can run hcheck on multi-group cluster. Signed-off-by:
Agata Murawska <agatamurawska@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
- Jun 20, 2012
-
-
René Nussbaumer authored
Also provide some extended unittests to catch those cases. Signed-off-by:
René Nussbaumer <rn@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Agata Murawska <agatamurawska@google.com>
-
- Jun 15, 2012
-
-
René Nussbaumer authored
This verifies the user (especially in nested dicts) does not provide a key which is not seen in the defaults dict for that dict. Signed-off-by:
René Nussbaumer <rn@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Michael Hanselmann authored
Add unittests for FormatJobID, GetArchiveDirectory, ParseJobId. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
Michael Hanselmann authored
This patch adds the necessary conversions for comparing split timestamps (such as used by jobs) and job IDs (by defining custom converters). Unittests are included. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
Iustin Pop authored
Sorry, I broke the cfgupgrade unittests via 904910c4, since that commit added the requirement for the "instances" dict in the configuration. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
- Jun 14, 2012
-
-
Michael Hanselmann authored
These can be used, for example, to get jobs submitted after a certain timestamp. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Jun 11, 2012
-
-
Michael Hanselmann authored
In this test the “file ID” of a temporary file is compared against the file ID gathered via an open file descriptor to the same file. For reasons unknown to me utime(2) is called in-between to update the inode's a- and mtime. Depending on the file system's timestamp resolution this can lead to a different file ID. Found by chance during QA and reproduced by adding a delay before the call to utime(2). Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com> (cherry picked from commit fbd55434) Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
- May 23, 2012
-
-
Iustin Pop authored
Also does some abstracting of the versions. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
- May 15, 2012
-
-
Iustin Pop authored
Currently, we only get: instance3: ['disk-size value 512 is not in range [1024, 1048576]' which doesn't explain which disk we are talking about. This patch extends the verification functions to take an additional parameter that qualifies the disk: instance3: ['disk-size/0 value 512 is not in range [1024, 1048576]' Future patch will make the formatting of the list better. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
- May 14, 2012
-
-
René Nussbaumer authored
Signed-off-by:
René Nussbaumer <rn@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Iustin Pop authored
Since the tested function actually uses time.time(), it cannot be make fully stable, but 1 second is very dangerous; let's just test SKEW * 2 and higher since that should be good (if the delta between _GenCert and VerifyX509Certificate is 5 minutes, then…). Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
- May 11, 2012
-
-
René Nussbaumer authored
Signed-off-by:
René Nussbaumer <rn@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Iustin Pop authored
The vgreduce command has changed behaviour from when we initially wrote the code (2.02.02 versus 2.02.66, 4 years delta): - if there are LVs which will be impacted, it requires --force - otherwise refuses to proceed, but it still returns exit code 0 We handle this by looking to see if it returns "Wrote out consistent volume group" (behaviour unchanged), or if it complains about "--force"; in the case it didn't complete, we retry the operation. We improve a bit the checking of "vgs", as it uses to fail silently and we didn't detect it. New tests for this function should test, I believe, all the expected variations; at the least we now have data files with the expected output. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com> (cherry picked from commit 048eeb2b) Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
- May 10, 2012
-
-
René Nussbaumer authored
Signed-off-by:
René Nussbaumer <rn@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- May 09, 2012
-
-
Iustin Pop authored
Commit e687ec01 (present in 2.5 since the 2.5 beta 3) did consistency fixes across the code-base. Unfortunately this was done without enough checks on the actual meaning of one of the fixes, which means error re-raising in lib/errors.py is broken. The problem is that: raise cls, args is different than: raise cls(args) And our unit-tests didn't catch this (this patch updates the tests). This breakage is usually trivial, like wrong error messages: $ gnt-instance remove no-such-instance Failure: prerequisites not met for this operation: ("Instance 'no-such-instance' not known", 'unknown_entity') versus: $ gnt-instance remove no-such-instance Failure: prerequisites not met for this operation: error type: unknown_entity, error details: Instance 'no-such-instance' not known or: $ gnt-instance add … no-such-instance Failure: prerequisites not met for this operation: ('The given name (no-such-instance) does not resolve: Name or service not known', 'resolver_error') versus: $ gnt-instance add … no-such-instance Failure: prerequisites not met for this operation: error type: resolver_error, error details: The given name (no-such-instance) does not resolve: Name or service not known But in some cases where we rely on a certain data representation (e.g. HooksAbort), this actually breaks because we try to iterate over the wrong type: File "/usr/lib/python2.6/dist-packages/ganeti/cli.py", line 1907, in FormatError for node, script, out in err.args[0]: ValueError: need more than 1 value to unpack Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Iustin Pop authored
Currently we allow for up to NODE_MAX_CLOCK_SKEW time difference between nodes in some operations, but not everywhere: SSL certificate verification (import/export, both intra and inter-cluster) has a zero limit (downwards), and a week upwards. This can cause even intra-cluster backup problems, if the source node has a time even two seconds in the future. To fix this, when we verify certificates compare with a time offset with the max skew, which fixes the lower bound and reduces the upper bound by an insignificant amount (0.04%). Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
- May 08, 2012
-
-
Iustin Pop authored
Two Luxi calls have inconsistent an name/value mapping (in the Python code): - REQ_AUTOARCHIVE_JOBS versus AutoArchiveJobs (versus AutoarchiveJobs) - REQ_QUEUE_SET_DRAIN_FLAG versus SetDrainFlag (no Queue) While these are only a consistency issue, let's fix them so that the Haskell code (which uses the auto-generated camel-case form) doesn't need to handle them case specially, and looks more like the Python code (hah, joke!). Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
- May 04, 2012
-
-
Michael Hanselmann authored
Until now “TestRunIf” and “TestEnabled” could only handle AND. With this patch a new class named “Either” is added to “qa_config” and allows OR. The name “Either” was chosen instead of “Or” as the latter is very close to the reserved keyword “or”. Examples: ["rapi", Either(["instance-rename", "instance-reboot"])] Either(["node-list", "instance-list", "job-list"]) Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Apr 27, 2012
-
-
Iustin Pop authored
Since we use a testutils.InputTestClient(), then the actual error expected is VerificationError, and not GanetiApiError (which is used at real run-time). Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
- Apr 26, 2012
-
-
Michael Hanselmann authored
This patch adds a mock RAPI client to test input values to methods. All methods either raise an exception if there was a problem or return None. Third-party code can use this to test their input values to the RAPI client. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
With this patch headers are constructed from the PycURL options and passed to the mock implementation. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
René Nussbaumer authored
This is preparation for the mock system, where we need the same cURL mock. Signed-off-by:
René Nussbaumer <rn@google.com> Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
- Apr 19, 2012
-
-
Michael Hanselmann authored
This solves one case where locks are acquired during LUXI queries. Pretty late into the transition I noticed that OpBackupQuery had a “use_locking” parameter for a long time, but didn't use it. Since most of the other changes were already and this allows exports to be listed via RAPI (/2/query) I decided to finish. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Apr 16, 2012
-
-
Michael Hanselmann authored
Before this patch, a node evacuation submitted with high priority would only compute the solution at that priority, but the actual evacuation ran at normal priority. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Mar 30, 2012
-
-
Michael Hanselmann authored
I missed these among some shelltest-related failures. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-