- Jan 05, 2011
-
-
Michael Hanselmann authored
Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
This function makes use of the opcode parameters which now live directly in the opcode. A number of RAPI resources can now be simplified. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
Test full summary instead of just format. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
This allows the function to be used in other places as well. An optional parameter is added to control whether default values should be set. Unittests are added, providing full coverage. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
… by detecting duplicates. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
Remove the parameter definitions and use those from the opcode classes instead. Small style changes are also made (empty lines, wrapping). Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
This is the first step for migrating them from cmdlib. A metaclass is used to define “__slots__” upon class creation time (not instantiation). Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
This allows “gnt-node list” to show the difference between modes marked offline and nodes with e.g. RPC errors (“(nodata)”). node1 is the master, node2's node daemon crashed and node3 is marked offline: $ gnt-node list -o name,offline,dtotal,dfree Node Offline DTotal DFree node1.example.com N 1.3T 1.3T node2.example.com N (nodata) (nodata) node3.example.com Y (offline) (offline) Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Jan 04, 2011
-
-
Michael Hanselmann authored
Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Dec 30, 2010
-
-
Michael Hanselmann authored
This should reduce the amount of damage in case of accidential copy & paste. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Dec 29, 2010
-
-
Michael Hanselmann authored
Since the recent change to leave jobs in the “waitlock” status (commit 5fd6b694), cancelling a job while it's back in the queue would break. This patch handles these cases and adds a unittest. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Dec 21, 2010
-
-
Michael Hanselmann authored
Long story short: time.strftime("%Z", time.localtime()) doesn't work, even though it's documented to be equivalent to time.strftime("%Z"). $ TZ=America/Sao_Paulo python -c 'import time; print time.strftime("%Z"), time.strftime("%Z", time.localtime())' BRST LMT References: http://bugs.python.org/issue762963 https://bugs.launchpad.net/ubuntu/+source/python2.6/+bug/564607 http://stackoverflow.com/questions/4367896/issue-with-timezone-with-time-strftime 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>
-
Michael Hanselmann authored
- Update docstrings to explicitely mention Epoch - Fix timezone bug in FormatTimestampWithTZ, where it would use GMT/UTC when it should use the local timezone - Add unittests for time formatting functions Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
Also replace “sorted” with “utils.NiceSort” now that it supports a key function. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Dec 17, 2010
-
-
Michael Hanselmann authored
This patch changes utils.NiceSort to use the built-in “sorted()” and gets rid of the intermediate list. Instead of wrapping the items ourselves, a key function is used. The caller can specify another key function (useful to sort objects by their name, e.g. “utils.NiceSort(instances, key=operator.attrgetter("name"))”. Unittests are provided. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Dec 15, 2010
-
-
Michael Hanselmann authored
Iustin Pop reported that a job's file is updated many times while it waits for locks held by other thread(s). After an investigation it was concluded that the reason was a design decision for job priorities to return jobs to the “queued” status if they couldn't acquire all locks. Changing a jobs' status or priority requires an update to permanent storage. In a high-level view this is what happens: 1. Mark as waitlock 2. Write to disk as permanent storage (jobs left in this state by a crashing master daemon are resumed on restart) 3. Wait for lock (assume lock is held by another thread) 4. Mark as queued 5. Write to disk again 6. Return to workerpool Another option originally discussed was to leave the job in the “waitlock” status. Ignoring priority changes, this is what would happen: 1. If not in waitlock 1.1. Assert state == queued 1.2. Mark as waitlock 1.3. Set start_timestamp 1.4. Write to disk as permanent storage 3. Wait for locks (assume lock is held by another thread) 4. Leave in waitlock 5. Return to workerpool Now let's assume the lock is released by the other thread: […] 3. Wait for locks and get them 4. Assert state == waitlock 5. Set state to running 6. Set exec_timestamp 7. Write to disk As this change reduces the number of writes from two per lock acquire attempt to two per opcode and one per priority increase (as happens after 24 acquire attempts (see mcpu._CalculateLockAttemptTimeouts) until the highest priority is reached), here's the patch to implement it. Unittests are updated. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
- Verify job file updates - Ensure queue lock is released while executing opcode Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Dec 14, 2010
-
-
Michael Hanselmann authored
A new function for formatting the query results is added, ``FormatTable``. This was determined to be easier and safer than modifying the existing ``GenerateTable`` function while keeping backwards compatibility for code not yet converted. The new code makes use of the enhanced information provided by query2. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
- Dec 13, 2010
-
-
Adeodato Simo authored
Signed-off-by:
Adeodato Simo <dato@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Michael Hanselmann authored
This will be used in clients to build the filters for query2. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
Michael Hanselmann authored
In upgraded configurations, some items might miss the “ctime” and/or “mtime” values and need to be handled specially. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Dec 10, 2010
-
-
Michael Hanselmann authored
Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Dec 08, 2010
-
-
Adeodato Simo authored
Signed-off-by:
Adeodato Simo <dato@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Adeodato Simo authored
Signed-off-by:
Adeodato Simo <dato@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
- Dec 06, 2010
-
-
Michael Hanselmann authored
Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Adeodato Simo <dato@google.com>
-
Guido Trotter authored
This also changes masterd to initialize the ganeti's manager with the current list of nodegroup uuids, and updates unittests Signed-off-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
- Dec 01, 2010
-
-
Adeodato Simo authored
This implements /groups and /groups/%s RAPI end points. Signed-off-by:
Adeodato Simo <dato@google.com> Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Nov 29, 2010
-
-
Michael Hanselmann authored
Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
This includes a bunch of helper functions which can be helpful for other queries, too. Unittests are included. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
This parser reads only the format described by the query2 design document: either an empty filter or an OR operator with equality checks as operands. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
While not immediately visible, using definition-based queries will allow for a number of optimizations and simplifications. This patch just contains the utility class used for executing queries. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
Dictionaries are hard to encode into query strings, therefore the “/2/instances/[instance_name]/reinstall” resource is changed to accept its parameters via the request body. The old query string parameters are still accepted for backwards compatibility. To allow clients to detect whether a server supports the new body parameters, a new feature string is added to the “/2/features” resource. Some people might not like this, but it reuses existing functionality. The RAPI client and its unittests are updated. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
This reduces the number of notifications in “ganeti-rapi”. Until now it was notified for every change in …/lib/ganeti and had to check whether the users file was affected. A symlink is always created in cfgupgrade to not break tools referring to the old name. 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>
-
- Nov 28, 2010
-
-
Iustin Pop authored
This just a random collection of unittest improvements. Coverage increases from 73% to 76%. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
- Nov 27, 2010
-
-
Iustin Pop authored
Wrong file name in Makefile.am and wrong naming (.unittest vs _unittest). Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Iustin Pop authored
While git-am'ing the blockdev_prefix patch, I modified the hv_xen.py file but forgot to amend the patch :(, so here it is. Furthermore, to detect such inconsistencies in the future, a unittest is added that cross-checks the default parameters in constants.py and the hypervisor PARAMETERS dict. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
- Nov 26, 2010
-
-
Iustin Pop authored
First change is to replace "range(len(self.NOTIFIERS)))" with self.NOTIFIERS, as range(len(range(N))) ≡ range(N). Sencond change is switch from an explicit indexing to use of zip. Unittests still pass :) Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
- Nov 23, 2010
-
-
Michael Hanselmann authored
Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-