impexpd: Disable OpenSSL compression in socat if possible
This uses an option only available in patched socat versions. Moreinformation is available from the INSTALL update included in thispatch.
Signed-off-by: Michael Hanselmann <hansmi@google.com>Reviewed-by: Guido Trotter <ultrotter@google.com>
Merge branch 'devel-2.3'
Signed-off-by: Michael Hanselmann <hansmi@google.com>Reviewed-by: René Nussbaumer <rn@google.com>
Merge branch 'devel-2.2' into devel-2.3
Conflicts: Makefile.am: Trivial
Signed-off-by: Michael Hanselmann <hansmi@google.com>...
devel/release: Use release-specific Makefile targets
Signed-off-by: Michael Hanselmann <hansmi@google.com>Reviewed-by: Iustin Pop <iustin@google.com>
Makefile: Add new dist target for releases
A new script, autotools/check-tar, is used to check the resulting.tar.gz file for unwanted contents like wrong file owners orpermissions.
Update ganeti-os-interface documentation
man/ganeti-os-interace.sgml lacked complete information for the NIC-relatedenvironment variables. Added a reference to NIC_%N_LINK and NIC_%N_MODE andclarified the reference to NIC_%N_BRIDGE.
Signed-off-by: Apollon Oikonomopoulos <apollon@noc.grnet.gr>...
Makefile: Check for empty files and dirs on distcheck
Including empty files can cause unnecessary warnings for packagers.
Revert commit e7e23e73, work around Automake bug
After commit e7e23e73 the build would fail in distcheck on systems withAutomake 1.10. An investigation identified Automake bug #5331 as thecause. Applying the changes in Automake commit 3a12ed5e2 to the...
Design Doc: Ganeti Node OOB Management Framework
Signed-off-by: René Nussbaumer <rn@google.com>Reviewed-by: Michael Hanselmann <hansmi@google.com>
Fix disk checks in “gnt-cluster verify”
Tests have shown that the changes in commit b8d26c6e5 don't work aswanted. If any disk wasn't found on the node, all disks located on thesame node would show as faulty. The cause was incorrect exceptionhandling on the node....
QA: Run “gnt-cluster verify” while DRBD instance exists
This tests some parts of the disk information collection.
Signed-off-by: Michael Hanselmann <hansmi@google.com>Reviewed-by: Luca Bigliardi <shammash@google.com>
Remove empty file from doc/html in distribution
It's not needed and some packaging systems complain about emptyfiles.
Remove shebang line from ganeti.server.*
Some of then were forgotten.
Fix typos in NEWS
Bump version for Ganeti 2.3
Also update cfgupgrade and NEWS.
Drop the -g shortcut for --vg-name
Changing the volume group is a lot less frequent than acting on a nodegroup. As such we drop the "-g" shortcut and require the long option tobe passed. In 2.3 the commands which used to accept the volume group as"-g" won't have any node group option, so no confusion will arise. Later...
Merge the common options between import and add
The "I always wanted to do this" commit.
Signed-off-by: Guido Trotter <ultrotter@google.com>Reviewed-by: Michael Hanselmann <hansmi@google.com>
Improve LookupNodeGroup's docstring
Add ConfigWriter.GetNodeGroup
Remove private ip mention in error message
There is no "private" ip in Ganeti, we only have primary and secondaryones. Whether they are public or private is a per-installation detail.
luxi: disable two lint errors
This is already disabled for the same type of request a couple of linesabove. The new code was introduced in e986f20c but didn't have thedisables.
Add -s option to gnt-node modify
We can now change a nodes' secondary ip.
Update NEWS for Ganeti 2.3
QA: Test ssconf_instance_list file on rename and creation
This test would've caught the bug fixed in the previous patch.
config: Write ssconf after renaming instance
This fixes a bug where the ssconf_instance_list file wasnot updated after an instance rename.
Change qa_utils.ResolveInstanceName to take name
… instead of an object. Allows it to be used in places whereonly the name is available.
Makefile: Add PYTHON_BOOTSTRAP to linted code
Move ganeti-noded to ganeti.server.noded
Move ganeti-rapi to ganeti.server.rapi
Make *.in non-executable
Prepare move of daemons to ganeti.server
Move ganeti-masterd to ganeti.server.masterd
Move ganeti-confd to ganeti.server.confd
Makefile: Stricter checks for release distchecks
This should avoid cases like commit f64de30f where the releasedate was forgotten from NEWS.
Makefile: Generalize bootstrap script generator
Move ganeti-watcher to ganeti.watcher
setup-ssh: Better error reporting
Together with Michael we refactored the code to make it better andeasier error reporting. Without printing backtraces for authenticationand verification issues.
Makefile: Streamline directory creation
Some directories don't exist in the repository, but are required at build time(e.g. doc/html). Until now some were created explicitly, some through thetarget “stamp-directories” and other target simply relied on a previous target...
Add support and checks for version in LUXI
A new constant, LUXI_VERSION, is used to verify the peer's version. Theversion is optional, so old(er) clients and servers talking to peers notsupporting it won't break. Example with mismatching library:
$ gnt-instance list...
luxi.ProtocolError: Derive from errors.LuxiError
This allows LUXI errors to be encoded and serialized.
LUExportInstance: Accept instance already shut down
To remove the instance after an export it needs to be stopped. This canbe achived using the parameter “shutdown”, or by explicitly shuttingdown the instance before exporting. The latter would still require the...
QA: Allow job queue test to be disabled
On my machine it takes over 30 seconds, disabling it canspeed up the QA.
Add test for modifiable locking levels
GanetiLockManager, remove default values
The nodes and instances parameters to the constructor are mandatoryanyway, as a value of None will fail when creating the LockSet. Ratherthan fixing this adding code lines, since we never used the defaultvalue, let's remove them and require that the parameters are passed....
ConfigWriter.GetNodeGroupList
Update 2.3 design doc regarding node group features and behavior.
In particular:
- introduce a "gnt-group" command to hold group-level operations. - ditch the concept of "default node group", except for single-group clusters. - introduce an "alloc_policy" attribute for node groups, indicating...
Prevent onlining a node without working noded
This is just a basic check, plus a warning. In the future, we might domore checks, or prevent simple onlining (without readd) if --force isnot passed.
Signed-off-by: Iustin Pop <iustin@google.com>Reviewed-by: Guido Trotter <ultrotter@google.com>
Yet another rework in LUSetNodeParms
We will need the new role in CheckPrereq, so move its computation thereand save the new role to self.
Prevent moving/creating instances on non-vm nodes
This small patch modifies LUCreateInstance, LUReplaceDisks andLUMoveInstance to not use non-vm_capable nodes.
Signed-off-by: Iustin Pop <iustin@google.com>Reviewed-by: Michael Hanselmann <hansmi@google.com>
ConfigWriter: add some helper functions
This can be used to compute a node's instances easily, and a smallfunction to get all non-vm_capable nodes.
Add vm_capable to LUSetNodeParams
And also do some cleanup: we only run the role changed actions if thenode has actually changed roles.
Add vm_capable to gnt-node modify
Add support for vm_capable in cluster verify
The method to make vm_capable integrate easily into cluster verify is as follows:
- we add a new NV_VMNODES that represents nonvm-capable nodes the LU populates this list (it's expected that non-vm_capable nodes...
Add an UploadHelper to cmdlib
This is used in two places already, and will be needed in a third, solet's abstract it.
Add support for vm_capable in file distribution
Add the master/vm_capable flags in node add
Add the capability flags in node info output
Add a CheckNodeVmCapable helper in cmdlib
Also changes the error code for the other CheckNode* helpers toECODE_STATE, not ECODE_INVAL: ECODE_INVAL is for requests that areinvalid (e.g. create drbd instance with one node), whereas ECODE_STATEdenote requests that are not satisfiable due to cluster/node/instance...
LUClusterVerify: Complain if disk is marked faulty
This will show a warning if, for example, one side of a DRBDdisk becomes unavailable. The data is collected separatelyfrom the other verification data.
Example output:
A number of Makefile fixes
- run-in-tempdir should depend on what it copies to the temporary dir- Add PYTHON_BOOTSTRAP to BUILT_SOURCES- Don't use “mkdir p” directly Create directory if necessary for writing bootstrap script
In summary, this should make “make distcheck” in pristine...
Rebuild bash completion if client scripts change
Move gnt-backup to ganeti.client.gnt_backup
Move gnt-instance to ganeti.client.gnt_instance
Move gnt-job to ganeti.client.gnt_job
Move gnt-node to ganeti.client.gnt_node
Move gnt-cluster to ganeti.client.gnt_cluster
Python bootstrapper: hardcode /usr/bin/python
Move gnt-os to ganeti.client.gnt_os
Move gnt-debug to ganeti.client.gnt_debug
Allow programs to be part of the Ganeti library
Eventually this will help ensuring that clients and servers are of thesame version, as long as they're imported from the same path. Currentlyit's relatively easy for gnt-* and ganeti-* to be from a different...
Implement the master_capable flag in node modify
Add master_capab to gnt-node modify
Signed-off-by: Iustin Pop <iustin@google.com>Reviewed-by: Guido Trotter <ultrotter@google.com>Reviewed-by: René Nussbaumer <rn@google.com>
Export the capability flags in query, rapi, ialloc
Add the master/vm_capable flags to objects
This adds the flag and some initial handling. The rest of the changes,for cmdlib, come in a separate patch.
Rework node role changes
There have been many bugs in gnt-node modify. Let's try to introducesome more.
This patch reworks the node role changes from tracking the flag changesto completely overwriting the flags based on the new role. This pavesthe way for (in 2.4 or later) moving to a single attribute for nodes....
Minor language fixes to the 2.3 design doc.
Signed-off-by: Balazs Lecz <leczb@google.com>[dato@google.com: extracted language fixes from bigger patch.]Signed-off-by: Adeodato Simo <dato@google.com>
Signed-off-by: Iustin Pop <iustin@google.com>Reviewed-by: Iustin Pop <iustin@google.com>
Add documentation about the capability flags
Enable failure on warnings in epydoc
This causes epydoc to fail on any warning.
rpc: Work around epydoc warning
Aliasing the “threading” module allows us to avoid the “No informationavailable for ganeti.rpc._RpcThreadLocal's base threading.local” warningby epydoc.
Revert "Allow to specify wipe command and flags at configure time"
This reverts commit 6e991d0e64e36adf985d0512e4148bcd6a160c6a.
Conflicts:
lib/constants.py (this got already removed, so no changes in here)
Signed-off-by: René Nussbaumer <rn@google.com>...
Merge branch 'devel-2.2'
Allow remote imports without checked names
By default all names are checked (LUCreateInstance, name_check). In somecases it can be useful to disable this check, but doing so was notallowed for remote imports. One should be aware, however, that usingthis feature can lead to rename script failures when importing a remote...
Update NEWS
This add my recent changes for support of wiping disks prior toallocation as a new feature to the NEWS file
Signed-off-by: René Nussbaumer <rn@google.com>Reviewed-by: Iustin Pop <iustin@google.com>
Support modify of prealloc_wipe_disks config value
Export a node's group information in iallocator
Rename node.nodegroup to node.group
In the context of a node, its group has (at least today) only onemeaning, that is the node's node group. As such, we renamenode.nodegroup to just node.group.
Note: if we want to keep node in there, it should be at least...
Rename --nodegroup to --node-group
For consistency with other CLI options.
Export node group data in iallocator
Split IAllocator._ComputeClusterData
The node and instance computations were all in this big function; weseparate them out for more clarity.
Putting the pieces together and invoke the wipe in cmdlib
Signed-off-by: René Nussbaumer <rn@google.com>Reviewed-by: Michael Hanselmann <hansmi@google.com>Reviewed-by: Iustin Pop <iustin@google.com>
Adding RPC call for blockdev_wipe
Second iteration over backend.BlockdevWipe
This patch now uses dd entirely to wipe the disk, make itmuch easier to wipe in blocks so we can give interactive feedbackabout the status.
Signed-off-by: René Nussbaumer <rn@google.com>Reviewed-by: Michael Hanselmann <hansmi@google.com>...
ConfigWriter: Fix typo in error message parts
Simplify and extend the instance OS env
Some parameters were missing (uuid, c/mtime). We simplify the exportmethod; unfortunately we cannot simply iterate over slots since themapping is not 1:1.
Fix QA mixup of node/instance tests
There are two node tests that are run from RunCommonInstanceTests, which is thebad place—it causes these node tests to be run three times instead of once.
ConfigWriter: prevent using a foreign config
If the configuration file doesn't denote this node as master, we preventstartup. This would have detected our previous race condition moreeasily, hence we add it as a permanent check.
Signed-off-by: Iustin Pop <iustin@google.com>...
Fix bootstrap.MasterFailover race with watcher
This fixes a recently diagnosed race condition between master failoverand the watcher.
Currently, the master failover first stops the master daemon, checksthat the IP is no longer reachable, and then distributes the updated...
ConfigWriter: protect against multiple writers
This should fix the case where there are two masters that both try todistribute the configuration file to the cluster. The first one that does so,will "win" the ownership of the config.data.