- Jul 13, 2011
-
-
Iustin Pop authored
Especially for Ganeti.Constants, which has many declarations, it doesn't make sense to check for coverage. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
- Jul 12, 2011
-
-
Iustin Pop authored
In order to increase the amount of information returned from the IAllocator plugin, we enhance the return values from the node-evac and change-group operations. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Michael Hanselmann authored
This patch allows commands to be run on and files to be copied to all nodes within a specific group. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
This patc changes cli.GetOnlineNodes to use query2, which does the filtering in the master daemon, and adds a new parameter to filter by node group. Unittests were added for the old implementation and then adopted to ensure no functionality was lost. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
For some reason these were still in tere. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
Explicitely defining “__call__” silences a pylint warning when wrapped type check functions are used directly. I had no idea pylint is this intelligent. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Jul 11, 2011
-
-
Michael Hanselmann authored
* devel-2.4: ht: Add new check for numbers Fix off-by-one bug in job serial generation Shorten some unbreakable lines in man pages Correct some spelling mistakes Fix bug in recreate-disks for DRBD instances Fix a lint warning KVM: configure bridged NICs at migration start Fix RAPI documentation regarding master role Fix bug in drbd8 replace disks on current nodes Conflicts: lib/cmdlib.py: Trivial lib/opcodes.py: Trivial Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
Places which receive floats can usually also deal with integers, e.g. OpTestDelay. Tests are added and the new check function is used for the aforementioned opcode and verifying query results. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
Commit 009e73d0 (September 2009) changed the job queue to generate multiple job serials at once. Ever since it would return one more than requested. The “serial” file in the job queue directory is defined to contain the “last job ID used” (design-2.0). With the change above, the serial file would always contain the next serial number. The first value returned by the generating function was the one contained in the file, so during the switch in 2009 one job may have been overwritten. This patch changes the code to always return the exact number of serials, to keep the last used serial on disk and adds an assertion. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Iustin Pop authored
This reverts commits 030a9cb8 and ae082df0. There are two problems: - Makefile.am breakage, which is trivial to revert - unittest breakage, which honestly I'm not sure how to fix and how serial consoles interact with the unpause helper After the reset, the startup --paused still works but won't unpause the instance automatically (if I understood the code correctly). Furthermore, the code also fixes a style issue in hv_kvm.py (too long line) introduced by the next commit after the above two. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
- Jul 08, 2011
-
-
Stephen Shirley authored
Creates the instance, but pauses execution before booting. This combined with 'gnt-instance console' unpausing instances means that the entire boot process can be viewed and monitored. Signed-off-by:
Stephen Shirley <diamond@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Stephen Shirley authored
The wrapper will connect to the console, and check in the background if the instance is paused, unpausing it as necessary. Signed-off-by:
Stephen Shirley <diamond@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Stephen Shirley authored
The wrapper will connect to the console, and check in the background if the instance is paused, unpausing it as necessary. Signed-off-by:
Stephen Shirley <diamond@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
- Jul 06, 2011
-
-
Michael Hanselmann authored
Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
- Jul 05, 2011
-
-
Michael Hanselmann authored
- Use constants and an assertion - Update documentation for node migration Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
LUNodeEvacStrategy has been replaced with LUNodeEvacuate. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
Michael Hanselmann authored
The change is not backwards compatible, see the updated NEWS file. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
Michael Hanselmann authored
By default it'll now evacuate all instances from the node, not just secondaries. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
Michael Hanselmann authored
This new opcode will replace LUNodeEvacStrategy, which used to return a list of instances and new secondary nodes. With the new opcode the iallocator (if available) is tasked to generate the necessary operations in the form of opcodes. This moves some logic from the client to the master daemon. At the same time support is added to evacuate primary instances, which are also evacuated by default. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
Guido Trotter authored
Am I the only one to make that mistake 10 times a week? Signed-off-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Jul 01, 2011
-
-
Iustin Pop authored
Haskell has two main integer types: - Int, which is a native-type, and is guaranteed to have at least [-2²⁹, 2²⁹-1] range; on 64-bit platforms, it has much higher range - Integer, which is a software type (implemented using libgmp), and thus unbounded For performance reasons, the node/instance properties use Int for their attributes (and Double for some, but that's another story). This is all fine and doesn't cause problems. However, the CStats type which holds the overall cluster resources starts to fail when we analyse clusters with more than around 400 nodes and big memory/disk sizes on 32 bit platforms. The simple fix would be to restrict cluster sizes, but that's no nice. I've benchmarked and changing to Integer doesn't show a visible slowdown on 64-bit platforms (as far as I can read on the internets, GHC knows to optimise Integer and only use software types when the values are large enough), and it also fixes the 32-bit problem. So this patch changes the CStats types to Integer, except for the instance count (which I don't expect to overflow 2²⁹ anytime soon). Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
There were some implicit assertions in the code that all node groups have nodes, which is not necessarily true. Additionally, the patch does a wrapping change. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
Iustin Pop authored
Beside the 'dscription' typo, also make the punctuation more consistent. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
In order to make the display right on 80-columns terminals. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
New lintian is even smarter: - overriden → overridden - allows to → allows one to Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
- Jun 28, 2011
-
-
Iustin Pop authored
Just saw this while testing the migration to QuickCheck v2: while configure.ac detects that QuickCheck-2.x is not available, the test in Makefile.am was against WANT_HTOOLS (overall htools compilation), not on a more-specific WANT_HTOOLSTESTS. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Iustin Pop authored
This patch fixes a bug in the test specification where we allowed nodes with zero free memory (hence no instance can be added, at all) and adds a simple labeling of the way this test can fail. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Iustin Pop authored
This unittest had a corner case where it could fail if the same primary/secondary node names were generated. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Iustin Pop authored
This just adds glue to allow replaying of tests using a given RNG state and test size (both are needed for exact replayability). Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
Using new functionality in QuickCheck 2 (the suchThat function), we generate now better test cases, such that (heh) we have no longer incomplete tests. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
Currently the way we generate nodes in some cases is by creating a totally random node, then restricting the test based on whether the node 'size' (as defined by multiples of base unit) satifies some high/low rules. This results in hard-to-satisfy conditions, so we change this model to be able to specify node sizes directly in the generation process, thus no longer needed post-creation filters. This fixes prop_ClusterAllocBalance which before had at most 1-2 satisfiable tests. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
The new scaffolding which replaced the batch driver of QuickCheck 1 now shows how many passes we have for incomplete tests. Some tests show very low pass counts, so we rework them to have more actually valid test cases. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Iustin Pop authored
Since current distros don't package anymore QuickCheck 1.x, let's move to 2.x. This requires also a few changes to the code: - Test.QuickCheck.Batch doesn't exist anymore, so we need to write some scaffolding code to replace it - the way test sizes are generated has changed, and we need to restrict (in some tests) the cluster size, as our code is not yet ready for hundreds of thousands of nodes in a cluster and we run out of stack (which could be a bug somewhere by itself, needs investigation) - at least with GHC 7, floating point errors make a perfect cluster score even bigger, so we need to bump up the max. rounding error allowed Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
Removal of duplicate parantheses, removal of extra 'do', conversion from nested if to guards, use hierarchical imports. All per hlint. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Iustin Pop authored
filterMGResults was built using a sequence of map and filter calls; while this was logically correct, it used some incomplete pattern matching which with the new GHC 7 triggers a warning. The patch rewrites it using a single foldl that does both the filtering and the mapping, in a more type-safe way. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
… instead of the hardcoded test against AllocUnallocable. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Iustin Pop authored
… that checks if a group is allocable. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Iustin Pop authored
The new functionality in 2.4.2 for recreate-disks to change nodes is broken for DRBD instances: it simply changes the nodes without caring for the DRBD minors mapping, which will lead to conflicts in non-empty clusters. This patch changes Exec() method of this LU significantly, to both fix the DRBD minor usage and make sure that we don't have partial modification to the instance objects: - the first half of the method makes all the checks and computes the needed configuration changes - the second half then performs the configuration changes and recreates the disks This way, instances will either be fully modified or not at all; whether the disks are successfully recreate is another point, but at least we'll have the configuration sane. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Iustin Pop authored
Patch db8e5f1c removed the use of feedback_fn, hence pylint warn now. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
- Jun 27, 2011
-
-
Apollon Oikonomopoulos authored
Commit 5d9bfd87 moved tap interface handling from KVM to Ganeti, partly to also solve the problem of routed interfaces getting configured too early during live migrations, causing network anomalies. In that direction, configuration of NICs of incoming instances was deferred to FinalizeMigration time. However, this causes minor issues with bridged interfaces; KVM sends out an ARP-like packet upon migration finish, which is lost because the tap interface is not yet configured. As a consequence, intermediate network equipment (i.e. switches) does not get notified about the topology change, until the instance transmits another packet after the bridge has been configured, or the switch's ARP cache expires. The proper solution to that is to support different phases in network configuration (pre/post migration), which also requires separate ifup scripts. Until then we fall back to configuring bridged interfaces on incoming instances at migration start, instead of finish. Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr> Signed-off-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-