Split QA script into different modules.
Reviewed-by: iustinp
Move string formatting out of LUQueryInstances
Currently, LUQueryInstances will provide strings for its results. This makes ithard for other consumers than "gnt-instance list" to use the OpQueryInstancesopcode for whatever they wish to.
The change moves the formatting in five of the six cases where this happens to...
Fix the ssh change which breaks remote ssh commands
Explanation: since we use lists and not a string, every argument we giveis passed unchanged to the remote shell. So, for example, passing'/etc/init.d/ganeti restart' to the remote shell, it will try to run the...
Complete rename of testing/ to test/.
Reviewed-by: iustin
Fix typo in last commit.
Rename testing/ to test/.
Clean *.py[co] in testing/.
Move QA script from testing/ to qa/.
Change the way how locales are overridden:- Set only LC_ALL, it overrides any other variable- Restore environment after unittest
Clone cmdlib._GetWantedNodes into _GetWantedInstances
This duplicates _GetWantedNodes to _GetWantedInstances, after doing somechanges to it: - fix an indentation error that should result in only the last node name passed being chosen - change the function to have a single return statement...
Fix docstrings of many opcodes
Reviewed-by: imsnah
Filters out LANG and LC_* on RunCmd
This filters out the LANG and LC_ variables from the environment of programsexecuted by RunCmd, in order to get consistent output of execute programs likelvs, etc.
- Don't build .tar.bz2, we only distribute .tar.gz anyway.- Clean generated files on “make maintainer-clean”.- Build _autoconf.py and ganeti.initd on “make all”.
Make import/export use the auxiliary ssh library to build the remote commands.
This avoids forgetting some parameters, as it's happening right now(the correct known host file is not being passed)
In order to do so we split SSHCall into an auxiliary BuildSSHCmd which builds...
Fix two errors in man page
Add function to get all local IP addresses, will be used in cmdlib.py.
Reviewed-by: schreiberal
Use configure's paths in the init script example.
Now that we use configure's variables, add --sysconfdir to configure.
Reviewed-by: ultrotter
Use _autoconf.py instead of version.py, generated by Makefile with morevariables. The underline is there to mark it as a private module.
Combine rules for manpages.
Use DESTDIR when creating additional directories.
- Generic automake cleanup- Bump version number to 1.2b2- Add version.py file generated from version.py.in by autoconf
- Add Makefile in doc/examples/
- Rename docs/ to doc/- Add Makefile in doc/examples/
Switch utils.RunCmd from popen2 to subprocess
This changes the implementation of RunCmd from using the popen2 moduleto using the (new in 2.4) subprocess module.
This is helpful because the subprocess module has more advanced featuresthan popen2, the most important ones being the ability to run code in the...
Add a small unittext extension for utils.RunCmd
Test “gnt-node volumes”.
Add note about Debian default dbrd.conf
Debian's default drbd configuration has some enabled directives, which make theinit script throw errors. Document how to disable the defaults and thus get ridof the errors.
Bump up version to beta1
Fix capitalization.
Fix some spelling mistakes
Add note about lvm.conf tuning
Pass --os-size and --swap-size to burnin during QA.
Fix the path in the example cron file
Fix a typo in install.sgml
Reviewed-By: iustinp
Add information about the recommended Xen settings
Fix mdadm -D output compatibility issues.
Also add some debugging output.
- Check for secondary node before doing a failover.- Replace magic values by constants.
Add a safety check to the backend.AddOSToInstance
This changes a ';' to '&&' to make sure we run the create script fromthe correct directory.
Add one more check on cluster init.
This adds a check that the initial node's IP name doesn't resolve to aloopback address (127.x.y.z).
Also remove an unused variable.
More updates to the installation tutorial.
Changes: - add note about installing the cron job - add an example cron job file and modify top-level Makefile.am to put it into the archive - modify the tutorial with information about setting a reasonable...
Add note about manually loading the drbd module
Add note about running the Xen kernel before compiling DRBD
Add mdadm to the debian example
Reviewed-by: roman.marxer
Add more details about hostname issues
Fix the manpage gnt-instance w.r.t. units
The manpage wrongly states that the default unit for disk sizes isgibibytes, whereas currently it's mebibytes. Fix that and also updatethe '--help' output to display the default unit.
Document kernel selection method
This changelist add: - documentation on how to select the kernel and initrd (if needed) for instances - support in hypervisor.py for the initrd - adds note about internet-connectivity and debootstrap requirements...
New version of install.sgml
This adds more examples and clarifies the existing ones.
Refuse nodes with non-FQDN hostnames.
This changes the cluster init and node join to refuse a node that has adifferent hostname than what the resolver returns.
Docbook-relate changes on admin.sgml
This changes a lot of docbook-related stuff and addresses a few consistencyissues.
Reviewed-by: vylavera
Cleanup of the installation tutorial.
This fixes some consistency issues.
Fix compatibility problems with mdadm-2.5.6
This fixes a compatibility problem with recent mdadm (2.x?) byreimplementing the zero-ing of the superblocks in ganeti itself.
Changed INSTALL to point to the tutorial and admin guide.
Implement argument for known_hosts file.
Set SSH's ClearAllForwardings and ForwardAgent options.
- Test “gnt-cluster copyfile”- Run “gnt-cluster verify” and “gnt-cluster info” after adding all nodes- Remove unused --cleanup option- Remove --verbose option and always print executed SSH commands
Rework ssh known-hosts handling.
This changes: - cluster setup, we no longer edit /etc/ssh/ssh_known_hosts but our own file - node add, we no longer remove root's known_hosts (twice) - gnt-instance console, both the LU and the script: since now the ssh...
Improve LURunClusterCommand
This function used a hand-coded ssh call to remote nodes. Fix it to use thessh.SSHCall function, and in the process drop the command field from theresults, as it's too verbose and we can use (in gnt-cluster) what we passed in....
Fix one wrong usage of _GetWantedNodes
_GetWantedNodes is used wrongly by the LUClusterCopyFile. This fixes that.
Fix typo.
Rename installing.sgml to install.sgml
This is more in line with the other document names.
Also, change the title to simply "Ganeti installation tutorial".
Add information about installing from source.
In case one installs from source, make, tar and gzip are also needed. tar andgzip are almost always installed, but make not, so let's add a note about that.
Also remove a '>' in the apt-get install example so copy-paste works....
Disable hashing of the ssh keys.
In case we use StrictHostKeyChecking=ask, also add HashKnownHosts=no so thatdebugging is easier. The nodes to which we are connecting are anyway visible in/etc/ssh/ssh_known_hosts.
Add support for listing instance disk sizes.
A CheckPrereq method had one unconverted "return 1" statement. Change it to theappropriate raise.
Add ganeti-master to sbin_SCRIPTS
This was forgotten when the init script was changed.
Change cli.OutputTable to cli.GenerateTable
Since the table generation might be useful elsewhere, let's change it toreturn the data instead of directly printing it.
Its callers have also been updated.
Another documentation update.
This removes the section on packages from installing.sgml (until we havepackages) and adds/corrects informations about using the startup script.
It also adds notes about the ``--master-netdev`` option, which one needsto use if the node doesn't have an interface named xen-br0 (or if it's...
Some small fixes.
It fixes the main Makefile.am to create $localstatedir/{lib,log}/ganeti.It fixes the testing Makefile.am after the rename fake_config.py ->mocks.py. It strips the output of "ip link show" to have a nicer outputif the master netdev does not exist.
Documentation updates.
This changes installing.sgml, adding details about required software andOS instances. It also updates INSTALL and README to correspond with thesgml manual.
Some changes to the installation manual.
The biggest change is that at configure time one must specify--localstatedir=/var since the directories for ganeti (/var/log/ganeti,/var/lib/ganeti) must be located here.
Style changes for pep-8 and python-3000 compliance.
This changes the raising of exceptions from: raise Exception, valueto raise Exception(value)
as the first form will be removed in python-3000 and the second form ispreferred now.
The changes also involve a few cases of changing from raising standard...
Implement tag support for cluster, nodes and instances.
This is only the backend part, from the command line the tags can't beread/modified yet.
Don't bail out if node isn't there on “gnt-node volumes”.
Prepare for the tags implementation: - add an Update method on the ConfigWriter class; - make the AddInstance method not log disks for diskless types (helps with testing) - implement limited testing for the ConfigWriter with focus on the new Update method
Import constants into gnt-cluster.
Re-stat the config file when we write it so that the next _OpenConfig()won't reread it if not modified by someone else.
Add instance name to LVM volume as a tag.
Implement a standard way of getting the cluster object from theconfiguration.
Change logival volume names to not be based on the instance's name, butinstead use an UUID prefix and a suffix denoting the disk iv_name(sda/sdb) and possibly it's type (data/meta).
Put synchronization speed into constant.
- Check for docbook2man and print warning if it's not there- Cleanup
Update svn:ignore.
Add disk template information to the admin manualAdd warning about avoiding xm commands for instance creationAlso fix a man page reference in installing.sgml to use the docbook format
Implement --dry-run for cfgupgrade.
Put default bridge into constant.
Add configuration upgrade utility.
Implement setitem for ConfigObject to add container protocol compatibility.
Add the ganeti admin manualRefer to the glossary from the installing guide
Fix a function's doc string
Ganeti installation tutorial
Reviewed-By: iustinp, imsnah
Fix issues reported by pylint.
Use OutputTable for “gnt-os list”.
Unify environment variables for instance related hooks.
Check for instances on “gnt-cluster destroy”.
Remove defectiv comma.
- Implement “gnt-instance reinstall --os-type=…”- Add the command to gnt-instance.sgml
Fix the "gnt-cluster getmaster" command by making the LuQueryClusterInforunnable on non-master nodes (and remove the list of instances and nodesreturned by it, that information can be retrieved by other opcodes).
Also, remove the node/instance list from "gnt-cluster info" as it...
Move the cluster name from ConfigWriter to SimpleStore.
Reason: if left ConfigWriter, nodes don't know to which cluster they belong.This will bite us later when we'll revisit node join operation.
Cons: we lose the cluster name from the config file, which means a...
- Move --force option to cli.py- Implement “gnt-instance reinstall”- Fix two typos