Convert all the classes to new-style classes
... to make lint shut up.
Signed-off-by: Helga Velroyen <helgav@google.com>Reviewed-by: Jose Lopes <jabolopes@google.com>
Merge branch 'stable-2.9' into stable-2.10
Conflicts: src/Ganeti/Monitoring/Server.hs: trivial
Signed-off-by: Klaus Aehlig <aehlig@google.com>...
Improve haskell style
...by fixing lint warnings found by HLint v1.8.57. In particular,make sure 'make hlint' passes for this version of hlint.
Signed-off-by: Klaus Aehlig <aehlig@google.com>Reviewed-by: Helga Velroyen <helgav@google.com>
Add --no-locks option to gnt-debug delay
Add the possibility to don't acquire locks during `gnt-debug delay`.This allows to run many delay jobs in parallel instead of havingthem run sequentially.
Signed-off-by: Thomas Thrainer <thomasth@google.com>Reviewed-by: Helga Velroyen <helgav@google.com>...
Include design-performance-tests.rst in index
Signed-off-by: Thomas Thrainer <thomasth@google.com>Reviewed-by: Klaus Aehlig <aehlig@google.com>
Document the --force-failover option
Extend the gnt-group man page by documenting the --force-failoveroption of the evacuation command.
Signed-off-by: Klaus Aehlig <aehlig@google.com>Reviewed-by: Thomas Thrainer <thomasth@google.com>
Support group evacuation by failover
Support evacuating a node group not using migration.This can be useful if the group evacuated to has differenthardware.
Add an option --force-failover
...to be added to gnt-group evacuate forcing evacuation bymeans for failovers instead of migrations.
Extend OpGroupEvacuate by a ForceFailover paramter
Add a parameter to OpGroupEvacuate to force failovers to beused instead of migrations. This can be useful, if a groupis evacuated to another with different hardware.
Mark performance tests design as implemented
The performance tests are implemented as outlined in the design doc, somark the document as implemented.
check-man-warnings: use C.UTF-8 and set LC_ALL
check-man-warnings currently partially forces the en_US.UTF-8 locale bysetting LANG. This implicitly assumes that the locale exists, whichmight not be the case when building e.g. in chroot environments. If the...
openvswitch fix
Document the --sequential option
Document that group evacuation is usually run in parallel, butcan be made sequentially by providing an appropriate option.
Signed-off-by: Klaus Aehlig <aehlig@google.com>Reviewed-by: Petr Pudlak <pudlak@google.com>
Support sequential evacuation
Make gnt-group evacuate support the --sequential option,which causes all evacuation moves to be execuated sequentially.This can be used to avoid congestion on a possibly slow linkbetween the node groups.
Add an option --sequential
...which can be used to tell commands like gnt-group evacuate tosequentially perform their action to keep load away from the cluster.
Extend OpGroupEvacuate by a sequential paramter
...telling it to run all the evacuation jobs sequentially.This might be useful to avoid too much load that otherwisemight occur.
Fix passing of ispecs in cluster init during QA
The ispecs were previously passed as multiple parameters to gnt-clusterinit, which did not yield the desired result. This patch changes thisbehavior and passes the min/std/max values in one parameter.
Signed-off-by: Thomas Thrainer <thomasth@google.com>...
On expanding jobs, extend reason trail
Certain op-codes expand to a set of jobs. Forthose new jobs, extend their reason trail withthe reasons of the job that expanded to them.In this way, also for indirectly genreated jobsa complete trace back to the initiator can be...
Signed-off-by: Thomas Thrainer <thomasth@google.com>Reviewed-by: Helga Velroyen <helgav@google.com>
Postpone 2.10.4 release to May 15th
Due to some tests not being completed by today, postpone the 2.10.4release to tomorrow.
Signed-off-by: Thomas Thrainer <thomasth@google.com>Reviewed-by: Hrvoje Ribicic <riba@google.com>
Don't fail QA if submitting a job takes too long
Degrade a QA error which was triggered if job sumission take too long toa warning. This will prevent spurious QA failures.
Revision bump for the 2.10.4 release
Prepare NEWS file for 2.10.4 release
Preparing the NEWS file for the release of 2.10.4 on Wednesday.
Add LC_ALL=en_US.UTF-8 before running check-man-warnings
It will be fail if LC_ALL was set to non-utf8 locale(e.g, 'C') byfollowing error.
col: Invalid or incomplete multibyte or wide character man: command exited with status 1: col -b -p -x
Signed-off-by: Yuto KAWAMURA <kawamuray.dadada@gmail.com>...
Move QAThreadGroup to qa_job_utils.py
Move QAThreadGroup to the utils module so it can easily be used withQAThread.
Extract GetJobStatuses and use an unified version
Unify two very similar functions which query the ganeti cluster for jobstatuses during QA.
Run disk template specific tests only if possible
Only run disk template specific tests if the corresponding disk templateis really enabled. Also, move the (up to now wrong) check out ofqa_performance.py to ganeti-qa.py, so no no-time test runs are reported...
Test parallel instance ops and plain instances
Test various instance operations while another instance is created inparallel.Also enable a test which creates twice as many plain instances as thereare nodes in the cluster in parallel.
Test parallel creation of DRBD instances
Test the performance of parallel creation (and immediate removal) of DRBDbacked instances. Twice as many instances are created as there are nodesin the cluster.
This also required some refactoring of the test code in order to reduce...
Test parallel job submission performance
Submit 200 delay jobs and verify that the submission rate does not dropas more jobs are added to the queue. Also verify that a `gnt-clusterinfo` is not slowed down by a large number of jobs in the queue.
Test parallel instance query operations
For each created instance, a `gnt-instance info` is issued. In addition,`gnt-instance list` is issued as often as well.
Test parallel instance operations
Test parallel starting, stopping, rebooting and (if supported)reinstalling instances.
Test parallel instance modification
Submit modifications of backend parameters as well as OS parameters inparallel for the maximum amount of instances available.
Test parallel node-count instance creation
Test the parallel creation (and removal) of as many instances as thereare nodes in the cluster.
Test parallel instance creation and removal
This is the first performance related test. It creates as many instancesas available in the QA config in parallel and removes them (again inparallel) immediately after the creation succeeded.
In order to ease writing of additional tests, a lot of the logic is kept...
Fail in replace-disks if attaching disks fails
Previously, if attaching the new secondary during a replace-disksoperations failed, only a warning was emitted. The subsequent sync-disksoperation cannot finish in such a case, however.
Therefore, this patch changes the warning into an error. This way it's...
Conflicts: configure.ac # Taken both contributions
Signed-off-by: Hrvoje Ribicic <riba@google.com>Reviewed-by: Klaus Aehlig <aehlig@google.com>
Add a basic test for --restricted-migration
Essentially verify that, in the given example, a solution is stillfound and that the original present failover is dropped.
Signed-off-by: Klaus Aehlig <aehlig@google.com>Reviewed-by: Hrvoje Ribicic <riba@google.com>
Describe the --restricted-migration option
Add the --restricted-migration option to the man page together witha hint on the intended use case.
Support restricted migration
Make hbal support an option to disallow ReplacePrimary movesand restrict ReplaceAndFailover to instances where the primarynode is drained. If used in evacuation mode, the only migrationmoves will be off the drained nodes....
Add an option for restricted migration
This option will allow node evacuation with migrations onlyoff the nodes to be evacuated.
Add an example for node evacuation
The configuration shows an unbalanced cluster witha node being drained. The natural evacuation strategyincludes frf-moves.
KVM: set IFF_ONE_QUEUE on created tap interfaces
The IFF_ONE_QUEUE flag directs the kernel to only queue tap packets once(as opposed to queueing them twice, once for the device, and once for theqdisc), possibly avoiding interface stalls when one of the queues overruns....
Add configure option to pass GHC flags
Adding the HEXTRA option to make might not be practical for a changethat should be always applied, e.g., hiding a certain package. Thispatch allows the flags to be specified at the configure level.
Signed-off-by: Hrvoje Ribicic <riba@google.com>...
Add a test for parsing version strings
...even in the presence of patch levels.
Set correct Ganeti version on setup commands
When asked to execute a setup command, prefix it witha command sequence to test for the existence of theneeded Ganeti version and switching to it.
Add a utility to combine shell commands
Add a function that combines individual shell commands intoa single command (calling the standard shell) that executesthe given commands in sequence while they succeed.
Add design doc for performance tests
This design doc describes which tests are added in order to test theperformance of Ganeti, specifically when handling multiple jobs inparallel.
Note that this design doc is submitted to stable-2.10 so performancechanges over different Ganeti versions can be captured....
Signed-off-by: Klaus Aehlig <aehlig@google.com>Reviewed-by: Petr Pudlak <pudlak@google.com>Reviewed-by: Helga Velroyen <helgav@google.com>
If Automake version > 1.11, force serial tests
This fixes broken compilation on Debian Jessie (#802).See also http://stackoverflow.com/questions/15820844/
Thanks to Apollon Oikonomopoulos for finding the solutionand Klaus Aehlig for helping to do it conditionally....
Fix failed DRBD disk creation cleanup
When creating a DRBD disk, Ganeti reserves minor numbers on a per-nodebasis. In case of a failed disk creation, these reservations should bereleased. During the name/uuid refactoring, the invocation of thefunction that releases the minors was not updated, resulting in no...
Fix lint errors introduced during cherry-pick
Calm a few lint errors introduced during cherry-picking code inqa_job_utils.py. The fixes were intentionally made in a way which shouldproduce merge conflicts later on, so it's not forgotten to undo them.
Hooking up verification for shared file storage
As for the cluster modify, it was also forgotten tohook up the verification of the shared file storagepaths despite all infrastructure was done already.
Signed-off-by: Helga Velroyen <helgav@google.com>Reviewed-by: Klaus Aehlig <aehlig@google.com>
Fix --shared-file-storage-dir option of gnt-cluster modify
While all infrastructure to make shared-file storageruntime-configurable was already submitted, the actualsetting of the path was forgotten. This patch fixes it.
Signed-off-by: Helga Velroyen <helgav@google.com>...
Clarify default setting of 'metavg'
This fixes issue 810, suggesting to clarify where thedefault for 'metavg' comes from.
Signed-off-by: Helga Velroyen <helgav@google.com>Reviewed-by: Hrvoje Ribicic <riba@google.com>
Fix invocation of GetCommandOutput in QA
The cherry-picked function _GetOutputFromMaster() callsGetCommandOutput() with parameters only present in newer Ganetibranches. Remove those parameters as they cause errors in stable-2.10.
Clean up RunWithLocks
This patch cleans RunWithLocks up a little bit by reducing the numberof delay function terminations, and using the QAThread class to ensureexceptions are thrown at the right time and in the right place.
Add an exception-trapping thread class
To have better control over threads, this patch adds a helper Threadsubclass which captures any exceptions occurring for later use.
Signed-off-by: Hrvoje Ribicic <riba@google.com>Reviewed-by: Petr Pudlak <pudlak@google.com>...
Wait for delay to provide interruption information
The RunWithLocks test assumed that gnt-debug delay would have the infoneeded for interruption ready immediately after being run, and in somesituations this is not the case. This patch makes the test more patient...
Add an expected block option to RunWithLocks
To compensate for the cases where a QA test is supposed to block whena lock is present, add an additional option showing whether blocking issupposed to happen or not.
Track if a QA test was blocked by locks
This patch adds threading to the RunWithTests function, allowing onethread to execute the QA test, and the other to monitor if it is beingblocked by locks set up during the test. If it is, terminate theblocking job, and let the QA continue, reporting the test failure at...
Add a RunWithLocks QA utility function
This patch adds a QA utility function that acquires a set of locks, andattempts to run a given function with the locks in place. Should thegiven function block, this function does not detect this - laterpatches will address the issue....
Set exclusion tags correctly in requested instance
Signed-off-by: Klaus Aehlig <aehlig@google.com>Reviewed-by: Jose Lopes <jabolopes@google.com>
Export extractExTags and updateExclTags
...from the htools Loader. These functions are needed whenparsing the requested instance of an allocator request.
Fix 'gnt-cluster' and 'gnt-node list-storage' outputs
Signed-off-by: Jose A. Lopes <jabolopes@google.com>Reviewed-by: Helga Velroyen <helgav@google.com>
Document spindles in the hbal man page
When spindles were introduced as a resource, they were alsoused in the computation of the cluster metric. Document this.
Postpone 2.10.3 release to Wednesday, 16th
Sample logrotate conf breaks permissions with split users
The sample logrotate configuration file(doc/examples/ganeti.logrotate) contains the following line
create 640 root root
which is fine if Ganeti if configured without split users. However,this will change permissions and ownership of log files if Ganeti is...
Revision bump for 2.10.3
Update NEWS file for 2.10.3
Set the release date to Monday, April 14th.Mention changes made since 2.10.2.
Warn in UPGRADE about not tar'ing exported insts
The /var/lib/ganeti directory contains per default also the exportdirectory, which holds exported instances. Warn in UPGRADE in the backupstep about (potentially) excluding those exports from the backup....
Fix non-running test and remove custom_nicparams rename
Due to a missing base class, the test that was supposed to check ifRAPI instance parameter renames during modifications are working didnot execute. As the instances are not covered by the QA tests, the...
Account for NODE_RES lock in opportunistic locking
This patch extends the opportunistic locking to take both theNODE_RES and NODE locks into account when selecting nodes to be usedby the iallocator.
Signed-off-by: Gerard Oskamp <gjo@google.com>Reviewed-by: Hrvoje Ribicic <riba@google.com>
Fix request flooding of noded during disk sync
If a user manually pauses the DRBD sync, Ganeti started to poll the nodedaemon without any waiting between request. This caused heavy load onthe node. This patch fixes this by waiting at least 5 secondes between...
Revision bump for 2.9.6
Update NEWS for 2.9.6
Describe all the changes to Ganeti made since the2.9.5 release. Also set the release date.
Update installation guide wrt to DRBD version
This patch updates the supported DRBD version number to8.4.
Fix list-drbd QA test
The list-drbd QA test assumed falsely that no instance has more thanone disk. This can happen, and this patch accounts for it.
Add messages about skipped QA disk template tests
When disk templates were ignored in the QA, no messages were emitted,in contrast to pretty much all tests. To make it easier to see whya test was not executed, this patch performs a minor refactoring and...
Allow QA asserts to produce more messages
This patch adds a tiny helper function that allows error messagesoutput by the QA asserts to be prefixed with whatever the usersupplies.
KVM: use running HVPs to calc blockdev options
Commit 0fe22ad2 moved the call to _GenerateKVMBlockDevicesOptions() from_GenerateKVMRuntime() to _ExecuteKvmRuntime. However, while in_GenerateKVMRuntime() there is only one set of HVPs, those of theinstance's configuration, in _ExecuteKVMRuntime there are two sets of...
KVM: reserve a PCI slot for the SCSI controller
Currently instances with disk_type=scsi are broken, because the SCSIcontroller uses a PCI slot not accounted for in the PCI assignmentlogic. We reserve a throw-away slot just for that.
This is a temporary workaround and will be reverted during the upcoming...
Check for LVM-based verification results only when enabled
This patch fixes a little glitch in 'gnt-cluster verify'.If LVM-based storage was disabled, it would still checkLVM-related verification results and print a confusingerror message.
Fix "existing" typos
This patch fixes the wording of a couple of messages,including two typos of the word 'existing'.
Fix output of gnt-instance info after migration
After migrating a DRBD based instance, the output of gnt-instance infowas wrong wrt. DRBD minors. This patch fixes the output in such cases.
Verify configuration version number before parsing
As the attempt to convert the dict used as json representationof the configuration into a configuration object already makesassumptions about the internal representation, verify the versionbefore such an attempt. Fixes issue 783....
Signed-off-by: Hrvoje Ribicic <riba@google.com>Reviewed-by: Klaus Aehlig <aehlig@google.com>...
Merge branch 'stable-2.8' into stable-2.9
Fix failing gnt-node list-drbd command
The UUID/name switch avoided this particular bit of code, and as aresult the list-drbd command failed as it tried to compare UUIDs andnames. This patch fixes the retrieval, converts the newly returnedUUIDs to names, and modifies the QA to the results and not only the...
Fix specification of TIDiskParams
Commit 580b1fdd incorrectly assumes that disk parameters arejust the standard ones, whereas the man page explicitly statesthat additional parameters can be passed as well, if they makesense for the chosen storage type. Fix this....
Add renaming of group custom ndparams, ipolicy, diskparams
This patch adds the ability to set the group-specific parameters in thesame way they are described when returned by the info command - withthe "custom_" prefix.
Add test for group custom parameter renaming
This patch introduces a simple test checking if a custom_* parameter isrenamed and passed to the opcode correctly.
Signed-off-by: Hrvoje Ribicic <riba@google.com>Reviewed-by: Thomas Thrainer <thomasth@google.com>
Extend RAPI symmetry tests with RAPI-only aliases
This patch allows users to specify specific parameter aliases enabledby RAPI, and test whether their value can be retrieved and set.
Add RAPI symmetry tests for groups
This patch invokes the RAPI symmetry tests for groups.
Add renaming of instance custom params
Much like the groups before, this patch allows custom_* params to besubmitted under the same name they can be retrieved as in the infocall.
Add unittests for instance modify parameter renaming
The get/put QA test could be used for instances as well, but unlikeother objects, instances have a very large number of discrepancies andmissing fields. To avoid enumerating every discrepancy and testing...