- Nov 30, 2012
-
-
Iustin Pop authored
This is not comprehensive, since in Python one can't determine what is and what is not mutable; but I've added a few base cases (list, dict, set). The patch also improves (makes more uniform) the error messages in the parameter definitions. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Dimitris Aragiorgis authored
TValueNone checks if a value is "none" and TMaybeValueNone is a wrapper of TOr(TValueNone, x). This is used by OpNetworkSetParam in order to reset a network value (e.g. mac_prefix, gateway, etc.) Signed-off-by:
Dimitris Aragiorgis <dimara@grnet.gr> Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Michael Hanselmann authored
Also remove a superfluous empty line in test file. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
- Nov 29, 2012
-
-
Michael Hanselmann authored
This patch adds descriptors to the “_CheckCIDR*” functions in opcodes and improves the descriptions generated by “ht.TInstanceOf”, thereby indirectly fixing bad type descriptions in the RAPI documentation. Before this patch: - (String and (<function _CheckCIDRAddrNotation at 0x2f…>)) - (Instance of (<class 'ganeti.opcodes.OpInstanceCreate'>)) After this patch: - (String and (IPv4 address)) - (Instance of (ganeti.opcodes.OpInstanceCreate)) Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Helga Velroyen <helgav@google.com>
-
- Nov 28, 2012
-
-
Michael Hanselmann authored
A new tool for configuring the node daemon will also have to verify the cluster name, so it's better to have this function in a central place. In the process of moving it to ssconf it is also changed to use “SimpleStore” instead of reading the ssconf directly. Tests are updated. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Helga Velroyen <helgav@google.com>
-
Michael Hanselmann authored
Until now ssconf would limit the amount read from files to 128 KiB and silently ignored files larger than that. With this patch a check is added by using fstat(2) on the file descriptor while it's being read. There were no tests file ssconf at all, so some are added. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
- Nov 27, 2012
-
-
Michael Hanselmann authored
A new tool to configure the node daemon will also have to load and verify JSON data. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Michael Hanselmann authored
Most tools had their own “SetupLogging” function, but they were all essentially the same. This patch adds a generic version to “utils.log” and provides unit tests. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
- Nov 26, 2012
-
-
Michael Hanselmann authored
A new method is added to check whether the LockSet-internal lock is held. This is the case after LockSet.acquire was called with locking.ALL_SET. Unit tests are updated, including one where the list of names must be empty. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
- Nov 23, 2012
-
-
Michael Hanselmann authored
The new lock is similar to the BGL in the sense that it has its own level and there is only one. It is called “node allocation lock”. Logical units will use it to synchronize with instance creations, which in turn will start using opportunistic locks on nodes. Additionally, an assertion in GanetiLockManager gained a message. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
We have many cases in the code where we write TOr(TNone, a), so let's introduce a combinator that simplifies this case. Beside replacing the above with TMaybe(a), I did a few other parameter fixes: - noop change TOr(TNone, TDict) to TMaybeDict - noop change TOr(TNone, TNonEmptyString) to TMaybeString - OpClusterSetParams, change master netmask from any integer to a non-negative integer (I can move the last one to a separate patch if desired) Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Iustin Pop authored
The network patches and an existing test added function-call based dict construction as opposed to literal sintax. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michele Tartara <mtartara@google.com>
-
- Nov 21, 2012
-
-
Michael Hanselmann authored
As per Iustin Pop's suggestion in <20121115131730.GX824@google.com> on <ganeti-devel@googlegroups.com>. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Michael Hanselmann authored
As per Iustin Pop's suggestion in <20121115131730.GX824@google.com> on <ganeti-devel@googlegroups.com>. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Michael Hanselmann authored
“locking.PipeCondition” and “locking.SharedLock” define “__repr__”, which until now was not tested at all. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Michael Hanselmann authored
Now that 2.6 is essentially finished and 2.7 going to be branched soon-ish, I thought it would be a good moment to replace some single quotes in test/*.py. Merge pains should be limited. In one place in test/ganeti.locking_unittest.py, spaces are added for assignments. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Michael Hanselmann authored
Fails if the default value of an opcode parameter doesn't verify. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Michael Hanselmann authored
Until now there was no test for calling “LockSet.downgrade” without specifying any names. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
- Nov 20, 2012
-
-
Dimitris Aragiorgis authored
Signed-off-by:
Dimitris Aragiorgis <dimara@grnet.gr> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michele Tartara authored
This adds tests that existing test files can be parsed by the Haskell parser as well, plus one new test file. Signed-off-by:
Michele Tartara <mtartara@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Iustin Pop authored
Currently, ht.py uses a bad terminology for positive/non-negative numbers. Per http://en.wikipedia.org/wiki/Positive_number , this is the correct terminology: - A number is positive if it is greater than zero. - A number is negative if it is less than zero. - A number is non-negative if it is greater than or equal to zero. - A number is non-positive if it is less than or equal to zero. So this patch renames things as follows: - TPositiveInt ⇒ TNonNegativeInt - TStrictPositiveInt ⇒ TPositiveInt - TMaybePositiveInt ⇒ dropped, not used anywhere - TMaybeStrictPositiveInt ⇒ TMaybePositiveInt - TPositiveFloat ⇒ TNonNegativeFloat - TStrictNegativeInt ⇒ TNegativeInt Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
- Nov 19, 2012
-
-
Michael Hanselmann authored
The opcode doesn't pay attention to the build-time flag to enable or disable restricted commands. In a cluster different nodes could have different settings. Node locks are acquired in shared mode by default, but the use of an exclusive lock can be forced using the “use_locking” parameter. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Nov 16, 2012
-
-
Michael Hanselmann authored
As per design document (doc/design-remote-commands.rst), a number of rather strict tests is applied to any incoming request, a delay is inserted upon errors and returned error messages are very generic (unless it's the actual command that failed). There are unit tests for all of the newly added code. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
- Ensure query-related resources have the same access permissions (specifically “/2/query/*” and “/2/*/console”) - Check access permission consistency (write implies read) Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Michael Hanselmann authored
This was requested in issue 301. Before this patch, requests to “/2/query/*” and “/2/instances/*/console” would require authentication with a user with write access. Since that is not strictly necessary, a new user option named “read” is added. Console information can also be retrieved as a normal query, therefore the change applies there too. This was the first user option to be added after “write”, therefore quite a few changes were necessary. Documentation, including NEWS, is updated as well. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
- Nov 14, 2012
-
-
Michael Hanselmann authored
This test does not work properly if localstatedir is not “/etc”. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Michael Hanselmann authored
Also add tests to ensure it's never allowed as a file storage path. A constant for the lock file is also added. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
The UID is there, the GID wasn't. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
In some cases it's nice to verify a function has been called exactly N times. This is going to be used in tests for remote commands. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Nov 13, 2012
-
-
Michael Hanselmann authored
Unlike existing tests, this actually tests RAPI at the interface with the HTTP server. This way authentification can also be tested. A test for “/2/query/…” is included as it's a bit special. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Bernardo Dal Seno <bdalseno@google.com>
-
Michael Hanselmann authored
A new LUXI request is added, in both Python and Haskell. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Bernardo Dal Seno <bdalseno@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
This is due to a feature request. Sometimes one wants to change the priority of a job after it has been submitted, e.g. after submitting an important job only to later notice many other pending jobs which will be processed first. Priority changes only take effect at the next lock acquisition or when the job is re-scheduled. The design is very similar to how jobs are cancelled. Unit tests for “_QueuedJob.ChangePriority” are included. Also rename “TestQueuedJob.test” to “TestQueuedJob.testError”. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Bernardo Dal Seno <bdalseno@google.com>
-
Michael Hanselmann authored
When a task is deferred it should receive the same task ID upon being returned to the pool. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Bernardo Dal Seno <bdalseno@google.com>
-
Michael Hanselmann authored
Using the task ID a pending task's priority can be changed. This will be used to change the priority of jobs in the workerpool. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Bernardo Dal Seno <bdalseno@google.com>
-
Michael Hanselmann authored
To prepare for the addition of a new function allowing changing a pending task's priority, the internal data structure is slightly changed. The (optional) task ID is stored as part of the task entry. A new dictionary provides a mapping from the task ID to its task entry. If the task ID is None, the entry is not added to the map. Task entries used to be a tuple, but since modifying the priority requires changing an entry, they are changed to lists in this patch. Tuple items can not be modified. The underlying idea is from [1]. [1]: http://docs.python.org/library/heapq.html#priority-queue-implementation-notes Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Bernardo Dal Seno <bdalseno@google.com>
-
- Nov 12, 2012
-
-
Michael Hanselmann authored
The “_postfork_fn” parameter was only used for tests until now. To implement a good locking scheme, remote commands must also make use of this callback to release a lock when the command was successfully started (but did not yet finish). Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
- Nov 08, 2012
-
-
Michael Hanselmann authored
Instead of being given the priority for acquiring locks by means of a parameter, mcpu will now call back. This is in preparation for implementing a command to change a job's priority on the fly and allows to change it while locks are being acquired (taking effect on the next lock acquire). Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Bernardo Dal Seno <bdalseno@google.com>
-
Michael Hanselmann authored
A newly added test for RAPI will also verify the returned headers. A test in ganeti.rapi.client_unittest.py is split into smaller stand-alone tests. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Nov 07, 2012
-
-
Michael Hanselmann authored
Commit f0d22861 changed the logic of gnt_instance._ConvertNicDiskModifications to also allow a parameter named “modify”. Unfortunately the corresponding unittest was not updated. An “if”/“else” condition is also merged. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Nov 06, 2012
-
-
Michael Hanselmann authored
This replaces direct calls to “os.access” and “os.path.exists”/“os.path.isfile”. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-