Fix a typo in a warning message
Reviewed-by: schreiberal
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.
Reviewed-by: iustinp
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.
Reviewed-by: ultrotter
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.
Reviewed-by: imsnah
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.
Implement tag searching
This patch adds a search command for locating tags on all objects of thecluster using a regex pattern.
Reviewed-by: aat
Test “gnt-cluster command”.
Also check whether file contents are correct for both “gnt-cluster command” and“gnt-cluster copyfile”.
Implement device to instance mapping cache
Currently, troubleshooting DRBD problems involves a manual process of goingbackwards from the DRBD device to the instance that owns it.
This patch adds a weak (i.e. not guaranteed to be correct or up-to-date)cache of device to instance. The cache should be, in normal operation,...
Improve burnin with regard to drbd8
Allow burnin to use the new drbd8 template (for which case one needs todisable replacement of disks, burnin does yet support that with drbd8).
The patch also changes do-replace12 to no-replace12 as that is whatthey actually do....
Update the dev_path on LVs on rename
When renaming a logical volume, we should change the dev_path (and otherinternal variables) in order to be consistent.
Revision 302 is broken, this fixes it
I forgot a pair of parentheses in that revision which break the commoncase. This patch adds them.
Fix printing of unconfigured DRBD devices
If the device is unconfigured (not yet did SetDiskID for it ever), itmight have a physical_id of None. This patch fixes that case.
Remove two trailing whitespaces
Ok, I've been battling with those for a while but it seemsin the end I forgot to get rid of them! :( Doing it explicitely now.
Move blank lines inside function messages
This patch changes whitespace only. It fixes all the functions in script/gnt-osby putting a white line at the end of all the function descriptions andremoving it from just before the code.
Add empty line after each diagnose OS-Node set
Reviewed-By: imsnah
Modify the displayed format for gnt-os diagnose
Get rid of the tabulated form and create a simplier indented structure.Now a valid OS looks something like:
OS: foo [global status: partial valid] Node: gsdtest4.euw.corp.google.com, status: valid (path: /usr/local/lib/ganeti/os/foo)...
Change the way to compute the first os status message
Use both _DiagnoseOSStatus and _DiagnoseOSPath to calculate the messageassociated with the first entry found on a node for an OS. Also call the renamethe relevant variables to _msg rather than just _status to reflect that they...
Separate OS status and path
Make _DiagnoseOSStatus only return a status message for the OS diagnose objectand create a new _DiagnoseOSPath function to get the path out. This will let usbe more flexible in the messages we display to the user.
Whitespace fixes
Cleanup colouring functions.
Make the code somewhat smaller. Disable disk failure test for master for now.
Cleanup QA scripts.
- Split main() function into several small ones.- Current work on disk failure tests. This is not yet finished.- Fix small typo in qa_node.py.
Revert "Implement multi-failover options"
This reverts commit 289, as the node failover functionality was alreadyimplemented in gnt-node (as opposed to gnt-instance). My mistake.
Fix usage of OpReplaceDisks.
Small improvements to multi-instance selections
This patch fixes the documentation in a few cases and adds handling ofthe situation where no instance is selected due to too restrictiveoptions given.
Implement multi-failover options
This patch adds the same style of multi-instance selection as inshutdown/startup to the failover subcommand, with the exception that wecannot failover with --node or --all (it doesn't make sense).
More sane handling of errors during failover
Currently we ignore errors on instance shutdown (on the source node)during instance failover. We should do this only if the user gave acommand line options allowing this, as it's a dangerous thing to do.
This patch fixes this by using the same "--ignore-consistency" option...
Fix bridge checking in instance failover
The current code checks the bridge on the primary node of the instance,but we need to check it on the destination node.
This was caught by testing failover with a down primary node.
Fix _UpdateEtcHosts to understand empty lines.
Change the signature of some methods of mcpu.Processor
This patch moves the passing of the feedback_fn argument from the(Exec|Chain)OpCode to the initialization of the Processor instance.
Remove a redundant assignment
The major is declared in the base class, we do not need to overwrite it.
Fix some style issues (whitespace changes only)
Fix a non-clear error message
Implement replace-disks for drbd8 devices
This patch adds three modes of disk replacement for drbd8: - replace the disk on the primary node - replace the disk on the secondary node - replace the secondary node
It also adds some debugging code to backend.py and increments the...
Allow drbd8 devices to work without local storage
This patch adds functionality to drbd8 for: - removing local storage - initializing without local storage - adding local storage
This is needed for the being able to replace disks for drbd8.