Update version numbers for release 1.2b3
Reviewed-by: imsnah
Fix logging of some checks in LUClusterVerify
Currently, the results of ConfigWriter.VerifyConfig() are lost. Makesure we log them too in cluster verify.
Reviewed-by: ultrotter
Update install.sgml with the name of the example OS
We want the name of the example OS to be nicer for packagers, so updatethe install documentation accordingly.
Also, put in a notice about using the latest release OS version, so ifwe forget to update this doc, we are not completely wrong....
Revert "Remove extra docdir variable from Makefile.am"
This reverts commit 397, as the support in autoconf for docdir ispresent since 2.59c, and this is too new for some distributions.
Add checking of python modules at ./configure time
This patch adds checking for our external python modules at the./configure stage, as it's better to check than rely on documentation.
The patch adds one autoconf macro from the autoconf macro archive(http://autoconf-archive.cryp.to)...
Drop the Rename method of DRBD8 devices
Since we now do changes of remote peers in two steps (Attach with nonetwork information and then Attach with the new peer's data), we don'tneed this operation anymore.
Split the change of peer in secondary replace in two operations
This patch splits the single operation of replace peer into two distinctphases, in order to make a single change to the instance configuration: - detach from network - if at least one drbd device succeeded, make one change to the...
Relax even more the identification of DRBD8 devices
This patch adds a new success condition for identifying DRBD8 devices:if the local device is correct, but the network peer is not, we shutdownthe network and attach to the correct one (this also handles going to...
Add support for DRBD8 devices to work standalone
This patch adds a check in _AssembleNet so that if we are passed Nonevalue in the unique_id, we instead switch to standalone mode.
Call more hooks during QA tests.
Reviewed-by: schreiberal
Sort list returned by ListVisibleFiles.
If we didn't sort this list, files would be in arbitrary order.
Reviewed-by: iustinp
Add man page for the ganeti-master script
This patch adds a simple man page for the master startup script andmodifies the footer.sgml fragment to include it.
Create /var/run/ganeti before noded startup
The /var/run directory can be a tmpfs mount, so even if we make it atinstall time (or include it in the package) it can go away. Therefore,test for its existence and create it in the startup script.
Remove extra docdir variable from Makefile.am
The docdir variable is defined by autoconf, so we don't need to defineit ourselves. This way, the target documentation directory canbe changed via ./configure instead of patching Makefile.am.
In truth, we should install the pdf and html files using the pdf and...
List loading hooks in QA.
Add hook for logging.
This may help to debug problems in QA tests.
Abort if tests for disk templates remote_raid1 and drbd are enabled.
Flush stdout after printing a message during burnin.
Implement disk templates for burnin from QA.
Replace disk template drbd8 with drbd where missing.
Code style fixes for burnin.
Add two comments to qa-sample.yaml.
Fix logging in drbd _ShutdownNet method
We didn't test for failure, just always logged the output.
Correct the -s parameter in gnt-node output
This fixed the previous commit (-s => -s ip).
Add the -s option in the output of 'gnt-node'
Since on dual-homed clusters one always needs to add '-s' to thegnt-node add command, make this appear in the output of 'gnt-node' (whenrun without arguments).
Add description of “gnt-instance startup --force” to manpage.
This was reported by Henning Sprang in issue #14. Also add a missing wordin the description of “gnt-instance reboot”.
Make sure aliases written to /etc/hosts are unique.
Add function to return list with unique elements.
Add basic QA tests for DRBD 8.
Fix a typo in a warning message
Don't remove master's hostname from /etc/hosts on cluster destroy.
This fixes issue #13.
Use spaces to indent and fix typo in tag.
Fix typo in function name.
Suggest disabling of automatic xen domain save
By default xen tries to save running virtual machines at system shutdown andrestore them at reboot. Make sure we suggest to disable this feature in theinstallation manual.
Complete the apt-get list in the install manual
The install manual was missing python-pyparsing and python-simplejson from theapt-get install list. Adding them.
Thanks to Henning Sprang for spotting this issue.
When an assembly error occurs log it too
Right now an assembly error produces an exception but not a log message. Thisis bad because the exception suggests looking at the log, but the log itselfhas a lot of errors which are not really a problem and only some which really...
Use setUp/tearDown for tests using temporary files.
Wrap line longer than 80 characters.
Compare file contents directly in unittests.
Reviewed-by: schreiberal, ultrotter
Give more details on errors when trying to run “lvdisplay”.
Create /var/run/ganeti directory on “make install”.
Bump version numbers.
Run ganeti-watcher script from QA code instead of cron.
This makes the tests much more reliably because it avoids race conditions.It also helps to speed them up a lot.
Small changes and fixes in ganeti-watcher.
- Use constants for keys.- Fix bug through which automatic instance restarts wouldn't be limited
Fix call to TestInstanceConsecutiveFailures.
Fix unittests broken by revision 360.
Fix --node option for “gnt-backup list”.
Fix a wrong comparison in _RecursiveAssembleBD
We want to prevent sending too many 'None' children to a device.However, the test as it is today is wrong, as we want to test thesituation after adding a new child, and not before. This patch fixesthis by testing greater-or-equal instead of just greater....
Fix another breakage in SetEtcHostsEntry
The code assumes all lines have at least two elements which arewhitespace separated - i.e. it does not deal with empty lines or commentlines with no spaces. This patch fixes this.
Also, the patch replaces the blank between IP and the canonical name...
Call fsync() after modifying /etc/hosts.
This is a critical file. Breaking it would be very bad. Thus, if the systemcrashes before the data is synched to the disk, it should have the completefile afterwards.
Fix functions for /etc/hosts.
- Combine hostname and aliases on one line- Fix bug with wrongfully removed newline characters- Use wrapper for SetEtcHostsEntry in cmdlib
Reviewed-by: iustin
Rollback commit 356.
Add functions for known_hosts files.
Reviewed-by: TODO
Add missing descriptions to {Add,Remove}EtcHostsEntry.
Relax replace_disks_all meaning for drbd8
In order to make the replace secondary action to be done via the sameopcode parameters for both remote_raid1 and drbd, we must allow theLUReplaceDisks to change replace_disks_all for drbd with non-emptyremote_node into replace_disks_sec....
Change --nodes to --node
The --nodes option in gnt-backup really accepts only one node at a time.Change it to --node, for added clarity and consistency with a similaroption in gnt-cluster. This patch also updates the relevant man page.
Reviewed-By: iustinp
Update documentation for drbd8 and beta2 release
This patch does: - add drbd8 information to the docs (the new disk template, examples, etc.) - fixes a section header to make it more clear - update the NEWS file by changing format (format taken by looking at...
Fix gnt-instance man page for replace-disks
This patch documents the new syntax for disk changes with the drbd disktemplate.
Improve the man pages
This patch does some small fixes to the man pages and adds descriptionsfor a few missing options.
Soften the requirements for hooks execution
Currently, an unreachable node (or one that return undetermined failure)in the hooks pre-phase will abort the curren operation. This is notgood, as a down node could prevent many operation on the cluster.
This patch changes a RPC-level failure (and not a hook execution...
Use new functions to modify /etc/hosts.
Add functions to modify /etc/hosts.
Cleanup temporary file in RemoveAuthorizedKey.
Fix usage of wrong variable in doc/examples/Makefile.am.
This makes “make distcheck” work again.
Simplify burnin output
Currently, the burnin output is very verbose (we log the entire outputfrom LU feedback) and duplicate in some cases (as we enable debugging).
This patch disables debugging and only logs the burnin output when anerror occurs.
Changes related to logging
This patch modifes: - mcpu.Processor.LogWarning to have its 'hint' parameter as optional and only log it if not None - cmdlib._WaitForSync to not log directly to stdout/stderr but via the proc.Log(Info|Warning) methods...
Refactor burnin to improve disk replacement
This patch changes the burnin: - split the code into functions - add replace2 (replace the secondary) for remote_raid1 - add replace1/2 for drbd8
Insert hook calls.
Implement sample hook.
Implement hooks infrastructure.
Enhance secondary node replace for drbd8
This (big) patch does two things: - add "local disk status" to the block device checks (BlockDevice.GetSyncStatus and the rpc calls that call this function, and therefore cmdlib._CheckDiskConsistency) - improve the drbd8 secondary replace operation using the above...
Indentation fixes for docs.
Update docs for the removed --secondary-node option.
Check whether init.d script is executable.
Adapt QA tests for removed --secondary-node option.
Remove --secondary-node option.
Replace --secondary-node option with an optional parameter for --node.
Enhance DBRD8 disk replacement (same nodes)
This patch adds enhanced reporting and much more checks to the diskreplacement (when not switching the secondary).
Implement degraded status for logical volumes
Logical volumes can be 'degraded' in a similar way to mirrored devices,when their underlying storage has gone away (i.e. after a physical diskfailure and 'vgreduce --removemissing'). If we can detect this, we can...
Add better error logging functions for LUs
Currently, some LUs use logger.Error, others just feedback_fn, etc. Thispatch adds three functions to mcpu.Processor than can be used to logmessages to both the log and to the user.
These function will be used to enhance the output of replace-disks for...
Enhance mirror operations for DRBD8
Currently, the mirror operations (add and remove children) test againstthe instance's attributes. This patch changes the check tests to workagainst the actual status of the device (i.e. live data) which is morerealistic....
Allow DRBD8 operation without backing storage
This patch adds the following functionality: - DRBD8 devices can assemble without local storage (done by allowing None in the list of children, and making DRBD8 to ignore all children if any is None)...
Make DRBD8 disks show 'degraded' status if diskless
This patch enables the bdev.DRBD8 class report a degraded status if thelocal disk is missing. This allows `gnt-instance info` to report theactual situation in this case.
Note that DRBD7 should also behave like this, however the diskless case...
Change the way remove children is called in bdev
For some cases, we don't have to have access to the children of a devicein order to remove them (e.g. md over lvs, or drbd over lvs). In orderto ease the removal process, skip over finding the child if it provides...
Add a support function to objects.Disk
This patch adds a function returning the device path if it is computablefrom the disk object (and we don't need to instantiate a bdev object onthe target node in order to compute this). Only LVs support this.
Small cleanup for error formatting
Handle missing init script at cluster init
This patch adds a check in the prereq of LUInitCluster for the existenceof the init script. This allows a clean abort instead of a stack dump.
Based on a report by admin@steibei.net
Fix a unhandled error case in device creation
The block device creation process is the following: - device create - device assembly (on primary or depending on dev_type, on secondary too) - set sync speed - return
The problem is that device assembly after creation was not checked for...
Miscellaneous style fixes
This patch fixes some minor pylint warnings (unused variables, wrongindentation, etc.) and a real bug in the recovery for drbd8 renameprocedure.
Test tag functionality.
Merge three small cluster tests into one.
Rename utils.GetUUID to utils.NewUUID.
Bump protocol version up
The OS cleanup patches change the wire protocol. Increment the protocol numberby one.
Convert os_get to use OS rather than InvalidOS
In order to do this for simplicity we leave the OSFromDisk function as-is andwe convert the eventual exception to an OS object in ganeti-noded. Theunmangling gets simplified and so does the code for checking whether the OS is...
Simplify diagnose mangling/unmangling functions
The functions in ganeti-noded and rpc.py still deal with the fact that anInvalidOS error could be returned by DiagnoseOS. As this is not the caseanymore simplify their code for the current behavior.
Make DiagnoseOS use the modified OS objects
Modify backend.py so that DiagnoseOS only returns OS objects rather thanInvalidOS errors, and make sure gnt-os understands the new objects. Also deletethe deprecated helper functions from gnt-os.
Create OS from an InvalidOS error
Add a new FromInvalidOS static function to objects.OS that makes it easy tocreate an object representing a broken OS starting from the relevant exception.
Make the OS object able to represent broken OSes
Till now the OS object just represents a correct OS instance. Change it so itcan represent a broken one too, by adding a "status" field: if this field isdifferent from the OS_VALID_STATUS constant the object is considered to be an...
Add option to burnin only a given set of nodes
This patch adds a '-n' option to burnin that takes a comma-separatedlist of nodes to perform the burnin on.
Make call_os_get a single node function
call_os_get is never called with a real list of nodes, so there's no point init being multi-node. Making it single-node till a usage for multi-node call isfound.
Fix two typos in a doc string
Remove a wrong "i" and add a missing ")" to the DiagnoseOS function doc string.