ganeti-local
11 years agoImprove check for "unreleased" versions in NEWS
Guido Trotter [Thu, 25 Apr 2013 08:37:29 +0000 (10:37 +0200)]
Improve check for  "unreleased" versions in NEWS

Currently this is checked only when distcheck-release is called.
Check it in check-news instead, for all versions before the "current"
one (as defined by configure.ac)

Signed-off-by: Guido Trotter <ultrotter@google.com>
Reviewed-by: Michele Tartara <mtartara@google.com>

11 years agoUpdate documentation for text format
Klaus Aehlig [Thu, 25 Apr 2013 08:31:48 +0000 (10:31 +0200)]
Update documentation for text format

In commit 000ca91a the text format was extended to also include
information about the master node. This commit updates the
htools man page to reflect this change.

Signed-off-by: Klaus Aehlig <aehlig@google.com>
Reviewed-by: Michele Tartara <mtartara@google.com>

11 years agoMerge branch 'stable-2.7' into stable-2.8
Klaus Aehlig [Wed, 24 Apr 2013 16:30:26 +0000 (18:30 +0200)]
Merge branch 'stable-2.7' into stable-2.8

Conflicts:
NEWS
doc/rapi.rst

Signed-off-by: Klaus Aehlig <aehlig@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>

11 years agoAdd missing fields in htools text-backend documentation
Bernardo Dal Seno [Wed, 24 Apr 2013 12:40:35 +0000 (14:40 +0200)]
Add missing fields in htools text-backend documentation

Signed-off-by: Bernardo Dal Seno <bdalseno@google.com>
Reviewed-by: Klaus Aehlig <aehlig@google.com>

11 years agocfgupgrade: Remove enabled_disk_templates on downgrade
Bernardo Dal Seno [Wed, 24 Apr 2013 14:08:10 +0000 (16:08 +0200)]
cfgupgrade: Remove enabled_disk_templates on downgrade

Remove enabled_disk_templates instead of the deprecated
enabled_storage_types.

Signed-off-by: Bernardo Dal Seno <bdalseno@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>

11 years agoReason trail implementation for "start"
Michele Tartara [Tue, 23 Apr 2013 11:38:44 +0000 (13:38 +0200)]
Reason trail implementation for "start"

Opcode-specific implementation of the reason trail for the instance
startup operation.

Signed-off-by: Michele Tartara <mtartara@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>

11 years agoReason trail implementation for "shutdown"
Michele Tartara [Mon, 22 Apr 2013 15:26:29 +0000 (15:26 +0000)]
Reason trail implementation for "shutdown"

Opcode-specific implementation of the reason trail for the instance shutdown
operation.

Signed-off-by: Michele Tartara <mtartara@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>

11 years agoQA: More tests for instance policies in groups
Bernardo Dal Seno [Fri, 12 Apr 2013 13:53:24 +0000 (15:53 +0200)]
QA: More tests for instance policies in groups

Instance policies are changed and checked for changes.

Signed-off-by: Bernardo Dal Seno <bdalseno@google.com>
Reviewed-by: Helga Velroyen <helgav@google.com>

11 years agoQA: Split function to set and parse instance policies
Bernardo Dal Seno [Fri, 12 Apr 2013 08:22:35 +0000 (10:22 +0200)]
QA: Split function to set and parse instance policies

The main parts, moved to qa_util, will be used for node groups too.

Signed-off-by: Bernardo Dal Seno <bdalseno@google.com>
Reviewed-by: Helga Velroyen <helgav@google.com>

11 years agoQA: Update tests for new ipolicy specs command-line options
Bernardo Dal Seno [Mon, 4 Mar 2013 23:30:33 +0000 (00:30 +0100)]
QA: Update tests for new ipolicy specs command-line options

The old command-line options weren't working any more. Utility functions
are updated, and broken tests are removed (new tests are coming in the
following patches).

Signed-off-by: Bernardo Dal Seno <bdalseno@google.com>
Reviewed-by: Helga Velroyen <helgav@google.com>

11 years agoAdd unit tests for cfgupgrade with a real configuration
Bernardo Dal Seno [Mon, 15 Apr 2013 09:52:04 +0000 (11:52 +0200)]
Add unit tests for cfgupgrade with a real configuration

Test upgrade and downgrade from a realistic 2.7 configuration.

Signed-off-by: Bernardo Dal Seno <bdalseno@google.com>
Reviewed-by: Helga Velroyen <helgav@google.com>

11 years agoSplit functions in cfupgrade unit tests
Bernardo Dal Seno [Wed, 10 Apr 2013 23:06:24 +0000 (01:06 +0200)]
Split functions in cfupgrade unit tests

This makes easier to test real configurations.

Signed-off-by: Bernardo Dal Seno <bdalseno@google.com>
Reviewed-by: Helga Velroyen <helgav@google.com>

11 years agocfgupgrade: Limit specs in ipolicy are always complete
Bernardo Dal Seno [Mon, 8 Apr 2013 18:42:59 +0000 (20:42 +0200)]
cfgupgrade: Limit specs in ipolicy are always complete

Partial specs are filled with cluster defaults.

Signed-off-by: Bernardo Dal Seno <bdalseno@google.com>
Reviewed-by: Helga Velroyen <helgav@google.com>

11 years agoLimit specs in ipolicy command lines are always complete
Bernardo Dal Seno [Mon, 8 Apr 2013 18:40:40 +0000 (20:40 +0200)]
Limit specs in ipolicy command lines are always complete

Command line options are brought in line with the specs change of previous
patch. Old options are still allowed in gnt-cluster init, where the
semantic will remain non-ambiguous even after introducing multiple specs.

Signed-off-by: Bernardo Dal Seno <bdalseno@google.com>
Reviewed-by: Helga Velroyen <helgav@google.com>

11 years agoLimit specs in instance policies are always complete
Bernardo Dal Seno [Mon, 8 Apr 2013 18:36:34 +0000 (20:36 +0200)]
Limit specs in instance policies are always complete

Specs used to specify limits in instance policies are always complete, even
at group level (only the whole limit set can be overridden). This is in
preparation for introducing multiple limits.

Signed-off-by: Bernardo Dal Seno <bdalseno@google.com>
Reviewed-by: Helga Velroyen <helgav@google.com>

11 years agoRefactor tests in ipolicy validation
Bernardo Dal Seno [Tue, 9 Apr 2013 15:37:00 +0000 (17:37 +0200)]
Refactor tests in ipolicy validation

This makes the code more modular, in preparation for the following patches.

Signed-off-by: Bernardo Dal Seno <bdalseno@google.com>
Reviewed-by: Helga Velroyen <helgav@google.com>

11 years agoQA for --ipolicy-xxx-specs and show-ispecs-cmd
Bernardo Dal Seno [Fri, 5 Apr 2013 15:56:41 +0000 (17:56 +0200)]
QA for --ipolicy-xxx-specs and show-ispecs-cmd

The tests check the interactions between the two commands.

Also refactored group QA code to separate tests about ipolicy, as those
tests are going to grow in complexity.

Signed-off-by: Bernardo Dal Seno <bdalseno@google.com>
Reviewed-by: Helga Velroyen <helgav@google.com>

11 years agoAdd command to print ipolicy options
Bernardo Dal Seno [Thu, 4 Apr 2013 20:30:59 +0000 (22:30 +0200)]
Add command to print ipolicy options

The output of this command can be used to create an exact copy of the
current instance policy specs. The command could be expanded to print all
the options used to create a group or the cluster.

Signed-off-by: Bernardo Dal Seno <bdalseno@google.com>
Reviewed-by: Helga Velroyen <helgav@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>

11 years agoAdd --ipolicy-xxx-specs options
Bernardo Dal Seno [Mon, 11 Mar 2013 14:12:21 +0000 (15:12 +0100)]
Add --ipolicy-xxx-specs options

These options allow to specify whole instance policy specs. This is needed
for the upcoming changes that tend to threat specs as monolithic objects.

Signed-off-by: Bernardo Dal Seno <bdalseno@google.com>
Reviewed-by: Helga Velroyen <helgav@google.com>

11 years agoNew CLI input type: list of key/value pairs
Bernardo Dal Seno [Wed, 6 Mar 2013 12:03:44 +0000 (13:03 +0100)]
New CLI input type: list of key/value pairs

This will be used for the new instance specs options.

Signed-off-by: Bernardo Dal Seno <bdalseno@google.com>
Reviewed-by: Helga Velroyen <helgav@google.com>

11 years agoAllow "default" as a value for ipolicy templates
Bernardo Dal Seno [Mon, 8 Apr 2013 17:59:25 +0000 (19:59 +0200)]
Allow "default" as a value for ipolicy templates

Previously the string value was being corrupted.

Signed-off-by: Bernardo Dal Seno <bdalseno@google.com>
Reviewed-by: Helga Velroyen <helgav@google.com>

11 years agoDocument all --ipolicy-... options
Bernardo Dal Seno [Fri, 5 Apr 2013 12:48:26 +0000 (14:48 +0200)]
Document all --ipolicy-... options

They were missing from the man pages.

Signed-off-by: Bernardo Dal Seno <bdalseno@google.com>
Reviewed-by: Helga Velroyen <helgav@google.com>

11 years agoExtract DRBD-related classes into block/drbd.py
Thomas Thrainer [Tue, 23 Apr 2013 12:04:23 +0000 (14:04 +0200)]
Extract DRBD-related classes into block/drbd.py

This is in preparation to introducing support for DRBD8.4.
base.py had to be extracted as well in order to avoid cylic imports
between bdev.py and drbd.py. It now contains the BlockDev class and
utility functions needed by bdev.py and drbd.py.

Signed-off-by: Thomas Thrainer <thomasth@google.com>
Signed-off-by: Michele Tartara <mtartara@google.com>
Reviewed-by: Michele Tartara <mtartara@google.com>

11 years agoMove lib/bdev.py to lib/block/bdev.py
Thomas Thrainer [Tue, 23 Apr 2013 12:04:22 +0000 (14:04 +0200)]
Move lib/bdev.py to lib/block/bdev.py

That's in preparation of extracting DRBD related code from bdev.py. As
bdev.py is already rather long, new features will require to split it
into more manageable pieces. That's why it's moved in an own directory.

Signed-off-by: Thomas Thrainer <thomasth@google.com>
Signed-off-by: Michele Tartara <mtartara@google.com>
Reviewed-by: Michele Tartara <mtartara@google.com>

11 years agoFix a few unclear sentences in gnt-cluster(8)
Guido Trotter [Tue, 23 Apr 2013 12:05:28 +0000 (14:05 +0200)]
Fix a few unclear sentences in gnt-cluster(8)

The renew-crypto entry had a few obscure sentences. Improve it by
rephrasing it.

Signed-off-by: Guido Trotter <ultrotter@google.com>
Reviewed-by: Klaus Aehlig <aehlig@google.com>

11 years agoMake burnin compatible with the reason trail
Michele Tartara [Tue, 23 Apr 2013 08:42:03 +0000 (08:42 +0000)]
Make burnin compatible with the reason trail

The burnin uses its own option list, different from the one of all other
command line programs, and uses it as a parameter to a function that now
requires the "--reason" option to be present.

This commit updates the burnin option list to be compatible with the reason
trail implementation.

Signed-off-by: Michele Tartara <mtartara@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>

11 years agoExtend the simulation backend to also simulate a master node
Klaus Aehlig [Mon, 22 Apr 2013 11:50:26 +0000 (13:50 +0200)]
Extend the simulation backend to also simulate a master node

In a simulated cluster as created by the simulation backend to
the htools, make the first node of the first node group the master
node. In this way, hools (like hroller) that require a master node
can also be used on simulated clusters, e.g., for testing.

Signed-off-by: Klaus Aehlig <aehlig@google.com>
Reviewed-by: Michele Tartara <mtartara@google.com>

11 years agoAdd unit tests for hroller
Klaus Aehlig [Mon, 22 Apr 2013 11:09:06 +0000 (13:09 +0200)]
Add unit tests for hroller

Add a unit test for hroller in a situation where the order
is completely determined. There are 3 nodes where node 2 has,
for each of the other nodes, an instanced shared with it. So
node 2 has to be a reboot group of its own. There are no more
instances, hence, my minimality, the other two nodes have to
form a single group. Node 1 is the master, and hence has to
be rebooted last; this determines the order.

Also add a unit test verifying that hroller rejects configurations
with multiple master nodes, even if the option --force is given.

Signed-off-by: Klaus Aehlig <aehlig@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>

11 years agoExtend Text format by marking the master node
Klaus Aehlig [Fri, 19 Apr 2013 12:58:43 +0000 (14:58 +0200)]
Extend Text format by marking the master node

Sometimes, e.g., for hroller, it is necessary to know which node
is the master node. Therefore this information has to be included
in the text format as well. Since we never use an offline node as
master node, we can put this information can be put in the "is
offline" field; as old versions only check this field for equality
to "Y", using "M" to indicate the master is compatible in both
directions. This also leaves room to add more roles in the future,
should we need them.

Signed-off-by: Klaus Aehlig <aehlig@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>

11 years agoMinor changes / bugfixes in documentation
Sebastian Gebhard [Mon, 22 Apr 2013 15:28:57 +0000 (17:28 +0200)]
Minor changes / bugfixes in documentation

Signed-off-by: Sebastian Gebhard <sege@fs.ei.tum.de>
Signed-off-by: Klaus Aehlig <aehlig@google.com>
Reviewed-by: Klaus Aehlig <aehlig@google.com>

11 years agoReason trail implementation for instance reboot
Michele Tartara [Fri, 22 Mar 2013 18:31:56 +0000 (19:31 +0100)]
Reason trail implementation for instance reboot

This commits allows ganeti to correctly forward the reason trail information
regarding instance reboot.

Signed-off-by: Michele Tartara <mtartara@google.com>
Reviewed-by: Helga Velroyen <helgav@google.com>

11 years agoAdd "reason" as a common parameter for all the RAPI calls
Michele Tartara [Tue, 26 Mar 2013 09:27:37 +0000 (10:27 +0100)]
Add "reason" as a common parameter for all the RAPI calls

Also, this add an infrastructure for having parameters common to all the
RAPI calls.

Signed-off-by: Michele Tartara <mtartara@google.com>
Reviewed-by: Helga Velroyen <helgav@google.com>

11 years agoAdd infrastructure for adding common RAPI parameters
Michele Tartara [Tue, 26 Mar 2013 09:33:21 +0000 (10:33 +0100)]
Add infrastructure for adding common RAPI parameters

Some parameters can be common to all the RAPI calls: this commit
adds the possibility of specifying them just once, instead of
manually adding them to the classes describing each call.

Signed-off-by: Michele Tartara <mtartara@google.com>
Reviewed-by: Helga Velroyen <helgav@google.com>

11 years agoAdd job_id and index to the reason trail
Michele Tartara [Tue, 26 Mar 2013 08:54:03 +0000 (09:54 +0100)]
Add job_id and index to the reason trail

The reason trail will contain an item indicating the job_id and the
index number of the current opcode inside the job queue.

Signed-off-by: Michele Tartara <mtartara@google.com>
Reviewed-by: Helga Velroyen <helgav@google.com>

11 years agoAdd the reason trail to the opcodes
Michele Tartara [Tue, 26 Mar 2013 12:58:53 +0000 (13:58 +0100)]
Add the reason trail to the opcodes

The reason trail is available for all the opcodes, and as such it is
initialized as a generic option.

Signed-off-by: Michele Tartara <mtartara@google.com>
Reviewed-by: Helga Velroyen <helgav@google.com>

11 years agoAdd a field to store the reason trail in OpCodes
Michele Tartara [Mon, 25 Mar 2013 17:24:51 +0000 (18:24 +0100)]
Add a field to store the reason trail in OpCodes

The reason trail will be available for all the OpCodes, so the field that
is to contain it has to be added to the OpCode base class.

Signed-off-by: Michele Tartara <mtartara@google.com>
Reviewed-by: Helga Velroyen <helgav@google.com>

11 years agoProvide "--reason" as a parameter for all commands
Michele Tartara [Mon, 25 Mar 2013 17:19:38 +0000 (18:19 +0100)]
Provide "--reason" as a parameter for all commands

Signed-off-by: Michele Tartara <mtartara@google.com>
Reviewed-by: Helga Velroyen <helgav@google.com>

11 years agoAdd function for extending the reason trail
Michele Tartara [Mon, 25 Mar 2013 15:51:07 +0000 (16:51 +0100)]
Add function for extending the reason trail

Noded functions will have to extend the reason trail specifying what
operation is being executed.

This commit adds a function for doing that (will be used by future commits).

Signed-off-by: Michele Tartara <mtartara@google.com>
Reviewed-by: Helga Velroyen <helgav@google.com>

11 years agoAdd an opcode name conversion function
Michele Tartara [Mon, 25 Mar 2013 15:14:41 +0000 (16:14 +0100)]
Add an opcode name conversion function

Add a function to convert an opcode class name to a source string for the
reason trail, factoring out the code in common with the existing _NameToId
function.

Signed-off-by: Michele Tartara <mtartara@google.com>
Reviewed-by: Helga Velroyen <helgav@google.com>

11 years agoAdd function for storing the reason trail of an instance
Michele Tartara [Mon, 25 Mar 2013 15:00:25 +0000 (16:00 +0100)]
Add function for storing the reason trail of an instance

We are interested in storing the reason trail for operations that changed
the state of instances. This commit adds a function to do this.

Also, the GetInstReasonFilename() function name is prepended with an
underscore because it is only used in this file.

Signed-off-by: Michele Tartara <mtartara@google.com>
Reviewed-by: Helga Velroyen <helgav@google.com>

11 years agoAdd function for getting the timestamp in nanoseconds
Michele Tartara [Mon, 25 Mar 2013 14:21:06 +0000 (15:21 +0100)]
Add function for getting the timestamp in nanoseconds

The timestamp is returned as an integer number of nanoseconds since the Unix
epoch.

Signed-off-by: Michele Tartara <mtartara@google.com>
Reviewed-by: Helga Velroyen <helgav@google.com>

11 years agoAdd TMaybeList as a new type for parameters
Michele Tartara [Mon, 25 Mar 2013 14:15:26 +0000 (15:15 +0100)]
Add TMaybeList as a new type for parameters

This will be used as the type for the reason trail parameter.

Signed-off-by: Michele Tartara <mtartara@google.com>
Reviewed-by: Helga Velroyen <helgav@google.com>

11 years agoAdd constants for the reason trail implementation
Michele Tartara [Mon, 25 Mar 2013 14:11:31 +0000 (15:11 +0100)]
Add constants for the reason trail implementation

A few constants are required, describing the source reason of the opcode.

Signed-off-by: Michele Tartara <mtartara@google.com>
Reviewed-by: Helga Velroyen <helgav@google.com>

11 years agoRemove old "reason" implementation
Michele Tartara [Mon, 25 Mar 2013 13:55:31 +0000 (13:55 +0000)]
Remove old "reason" implementation

Remove the useless parts of the old, partial, implementation of the support for
tracking the reason of instances state change, before implementing the new
reason trail support, as per the design document.

Signed-off-by: Michele Tartara <mtartara@google.com>
Reviewed-by: Helga Velroyen <helgav@google.com>

11 years agoMore specifics on the implementation of the reason trail
Michele Tartara [Fri, 22 Mar 2013 18:26:34 +0000 (19:26 +0100)]
More specifics on the implementation of the reason trail

Adding the reason trail as a parameter instead of as a new class attribute fits
better with the current structure of the system.

Also, the description of what part of the implementation will be OpCode
specific and which will be shared is added.

Signed-off-by: Michele Tartara <mtartara@google.com>
Reviewed-by: Helga Velroyen <helgav@google.com>

11 years agoAdd monitoring daemon user to user creation script
Michele Tartara [Mon, 22 Apr 2013 09:22:25 +0000 (09:22 +0000)]
Add monitoring daemon user to user creation script

The script was added to Ganeti before the monitoring daemon, so it
did not include that user yet.

Signed-off-by: Michele Tartara <mtartara@google.com>
Reviewed-by: Klaus Aehlig <aehlig@google.com>

11 years agodevel/review: fix addition of reviewer from environment
Klaus Aehlig [Mon, 22 Apr 2013 09:08:29 +0000 (11:08 +0200)]
devel/review: fix addition of reviewer from environment

In commit 3dd990, the possibility of taking a default reviewer
from the environment was introduced. Fix two deficits here
- perl does not inherit the environment
- add at all places.

Signed-off-by: Klaus Aehlig <aehlig@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>

11 years agoQA: Skip RAPI setup when RAPI is disabled
Bernardo Dal Seno [Fri, 19 Apr 2013 12:39:28 +0000 (14:39 +0200)]
QA: Skip RAPI setup when RAPI is disabled

This is similar to 405692ef, reverted in aeefb4cd.

Signed-off-by: Bernardo Dal Seno <bdalseno@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>

11 years agoBump up version for 2.7.0~beta3 v2.7.0beta3
Guido Trotter [Mon, 22 Apr 2013 09:05:07 +0000 (11:05 +0200)]
Bump up version for 2.7.0~beta3

Signed-off-by: Guido Trotter <ultrotter@google.com>
Reviewed-by: Michele Tartara <mtartara@google.com>

11 years agoUpdate NEWS for 2.7.0~beta3
Guido Trotter [Thu, 18 Apr 2013 13:53:11 +0000 (15:53 +0200)]
Update NEWS for 2.7.0~beta3

- Most entries for beta1 are moved to the top level
- The beta1 to beta2 delta is left

Signed-off-by: Guido Trotter <ultrotter@google.com>
Reviewed-by: Michele Tartara <mtartara@google.com>

11 years agoAllow proper cleanup of partially created disks
Michele Tartara [Tue, 16 Apr 2013 12:56:39 +0000 (12:56 +0000)]
Allow proper cleanup of partially created disks

During the creation of an instance, if the creation of disks fails, some
partially created disks might remain lying around. There is an already
implemented cleanup procedure, but it requires the disks to be listed in the
disks_created variable, which is updated after the creation of the disk itself
to prevent it from removing disks already existing previously.

This patch introduces a better tracking of partially created disks, so that
they can be removed without risking removing already existing ones.

Signed-off-by: Michele Tartara <mtartara@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>

11 years agoMake hroller insist on finding precisely one master node
Klaus Aehlig [Thu, 18 Apr 2013 12:53:45 +0000 (14:53 +0200)]
Make hroller insist on finding precisely one master node

As people rely on the master node being the last node of the last
group, make hroller fail, if no master node could be found in the
cluster. This happens, e.g., if a backend format is used that does not
contain information about the master node. The error can be turned
into a warning by using the --force option.

Signed-off-by: Klaus Aehlig <aehlig@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>

11 years agoUpdate hroller man page: master node is last
Klaus Aehlig [Wed, 17 Apr 2013 11:13:17 +0000 (13:13 +0200)]
Update hroller man page: master node is last

Where the information is available, hroller now schedules the
master node as the last node in the last group. Update the man
page to reflect this change.

Signed-off-by: Klaus Aehlig <aehlig@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>

11 years agoIn Rapi, set master correctly
Klaus Aehlig [Wed, 17 Apr 2013 09:22:02 +0000 (11:22 +0200)]
In Rapi, set master correctly

The cluster data contains the information about the master
node. Use this information to set the isMaster bit correctly.

Signed-off-by: Klaus Aehlig <aehlig@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>

11 years agoIn Luxi, set the master correctly
Klaus Aehlig [Tue, 16 Apr 2013 12:19:36 +0000 (14:19 +0200)]
In Luxi, set the master correctly

The cluster data contains the information about the master
node. Use this information to set the isMaster bit correctly.

Signed-off-by: Klaus Aehlig <aehlig@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>

11 years agoUtility function to set the master node in a node list
Klaus Aehlig [Wed, 17 Apr 2013 09:42:28 +0000 (11:42 +0200)]
Utility function to set the master node in a node list

The information about which node is the master node is a cluster-wide
setting, in most formats provided independently of the node information.
Most backends therefore have to set the isMaster bit indepently in the
obtained node list. This patch provides a utility function for this.

Signed-off-by: Klaus Aehlig <aehlig@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>

11 years agoMake Hroller present master node last
Klaus Aehlig [Tue, 16 Apr 2013 08:57:39 +0000 (10:57 +0200)]
Make Hroller present master node last

If in the list of nodes to be scheduled for maintaince,
one is marked as being the master node, schedule it
as the last node in the last group.

Signed-off-by: Klaus Aehlig <aehlig@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>

11 years agoExtend the node description by isMaster
Klaus Aehlig [Mon, 15 Apr 2013 12:54:23 +0000 (14:54 +0200)]
Extend the node description by isMaster

Extend the description of the node by the property
of being the master node; also provide and appropriate
setter function. This property will be used, e.g., by
hroller to schedule reboot of the master last.

Signed-off-by: Klaus Aehlig <aehlig@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>

11 years agoupdate hroller man page: node group filtering is implemented
Klaus Aehlig [Wed, 17 Apr 2013 11:23:37 +0000 (13:23 +0200)]
update hroller man page: node group filtering is implemented

Filtering of nodes by node group was already implemented in
2fce67b; fix the man page to reflect this change.

Signed-off-by: Klaus Aehlig <aehlig@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>

11 years agoUse correct name for design-storagespace.rst
Guido Trotter [Fri, 19 Apr 2013 10:22:36 +0000 (12:22 +0200)]
Use correct name for design-storagespace.rst

This was renamed in b284f50 but the old name was still in use in the
makefile and draft designs list.

Signed-off-by: Guido Trotter <ultrotter@google.com>
Reviewed-by: Klaus Aehlig <aehlig@google.com>

11 years agoStorage type design doc: ipolicy vs. enabled disk templates
Helga Velroyen [Wed, 17 Apr 2013 17:56:47 +0000 (19:56 +0200)]
Storage type design doc: ipolicy vs. enabled disk templates

Adding the design decision regarding the consistency of the enabled disk
templates in the ipolicy and in the cluster config.

Signed-off-by: Helga Velroyen <helgav@google.com>
Reviewed-by: Klaus Aehlig <aehlig@google.com>

11 years agoRename design doc from space reporting to storage types
Helga Velroyen [Wed, 17 Apr 2013 17:50:30 +0000 (19:50 +0200)]
Rename design doc from space reporting to storage types

Since the design doc for storage space reporting ended up being mostly
about disk templates and storage types, and the space reporting being
just a small part of it, I am renaming the design doc.

Signed-off-by: Helga Velroyen <helgav@google.com>
Reviewed-by: Klaus Aehlig <aehlig@google.com>

11 years agoQA: Fix error regarding missing names of disk configs
Helga Velroyen [Wed, 17 Apr 2013 18:55:47 +0000 (20:55 +0200)]
QA: Fix error regarding missing names of disk configs

This fixes an error in case there are no disk names in the QA config
(which was the case till recently). Right now, QA tries to use 'None'
as disk name and that makes instance creation fail.

Signed-off-by: Helga Velroyen <helgav@google.com>
Reviewed-by: Klaus Aehlig <aehlig@google.com>

11 years agoRevert "Make invocation of rapi test configurable ..."
Helga Velroyen [Wed, 17 Apr 2013 22:15:41 +0000 (00:15 +0200)]
Revert "Make invocation of rapi test configurable ..."

This reverts commit 405692eff3d6f8400834f2df93d597bc7e4dd89f, because it
breaks QA.

Signed-off-by: Helga Velroyen <helgav@google.com>
Reviewed-by: Michele Tartara <mtartara@google.com>

11 years agodevel/review: take default reviewer from environment
Klaus Aehlig [Fri, 12 Apr 2013 09:34:55 +0000 (11:34 +0200)]
devel/review: take default reviewer from environment

When adding a 'Reviewed-by'-line, also add the reviewer
passed through the REVIEWER environment variable. In that
way, adding the reviewer for patch series all reviewed
by the same person gets easier.

Signed-off-by: Klaus Aehlig <aehlig@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>

11 years agoBetter wording of a documentation sentence
Michele Tartara [Thu, 18 Apr 2013 08:26:34 +0000 (10:26 +0200)]
Better wording of a documentation sentence

Specify that the need to manually modify the metavg only applies to
clusters with DRBD enabled, and is not always required.

Signed-off-by: Michele Tartara <mtartara@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>

11 years agoSpecify behaviour of vg-name change in gnt-cluster manual
Michele Tartara [Thu, 18 Apr 2013 08:01:17 +0000 (10:01 +0200)]
Specify behaviour of vg-name change in gnt-cluster manual

The current behaviour of a volume group name change after the cluster
has been initialized can be somewhat unclear. This patch specifies it
more esplicitly in the man page.

Signed-off-by: Michele Tartara <mtartara@google.com>
Reviewed-by: Klaus Aehlig <aehlig@google.com>

11 years agoSet the default metavg to be equal to the cluster name
Michele Tartara [Wed, 17 Apr 2013 15:32:00 +0000 (17:32 +0200)]
Set the default metavg to be equal to the cluster name

The default metavg was always set to be the constant value "xenvg".
This is OK for most cases, but if the cluster is initialized with
a default name through the --vg-name option, the metavg should change
as well.

Signed-off-by: Michele Tartara <mtartara@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>

11 years agoMake invocation of rapi test configurable by QA config
Helga Velroyen [Wed, 17 Apr 2013 19:54:11 +0000 (21:54 +0200)]
Make invocation of rapi test configurable by QA config

This does not solve the underlying problem of the rapi test not
being runnable locally, but it makes it at least configurable
to avoid having to patch in/out all the time.

Signed-off-by: Helga Velroyen <helgav@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>

11 years agoFix warnings hlint 1.8.43 complained about
Thomas Thrainer [Wed, 17 Apr 2013 13:21:32 +0000 (15:21 +0200)]
Fix warnings hlint 1.8.43 complained about

These lines are ok according to previous versions of hlint but trigger
an error with version 1.8.43.

Signed-off-by: Thomas Thrainer <thomasth@google.com>
Reviewed-by: Helga Velroyen <helgav@google.com>

11 years agoPreserve device names during instance move
Christos Stavrakakis [Fri, 12 Apr 2013 09:40:25 +0000 (12:40 +0300)]
Preserve device names during instance move

Fix 'move-instance' tool to preserve the instance disk and NIC names
when moving instances from one cluster to another. Also, fix value error
since an instance NIC is an 8-tuple, containing also name and UUID.

Signed-off-by: Christos Stavrakakis <cstavr@grnet.gr>
Reviewed-by: Helga Velroyen <helgav@google.com>

11 years agoUpdate manpages wrt new device refering
Christos Stavrakakis [Thu, 4 Apr 2013 08:51:17 +0000 (11:51 +0300)]
Update manpages wrt new device refering

This patch updates gnt-instance man page to include refering to devices
by their name and UUID.

Signed-off-by: Christos Stavrakakis <cstavr@grnet.gr>
Reviewed-by: Helga Velroyen <helgav@google.com>

11 years agoUpdate QA tests to check disk and NIC names
Christos Stavrakakis [Thu, 4 Apr 2013 08:51:16 +0000 (11:51 +0300)]
Update QA tests to check disk and NIC names

Modify existing tests to use the name option for instance disks. The
configuration options 'disk' and 'disk-growth' are merged into a single
'disks' option, which is a list of dictionaries with 'size', 'growth' and
'name' items.

Also, add 'instance-device-names' QA test, which tests addition, renaming
and removal of named devices.

Signed-off-by: Christos Stavrakakis <cstavr@grnet.gr>
Reviewed-by: Helga Velroyen <helgav@google.com>

11 years agoAdd name to INicParams and IDiskParams
Christos Stavrakakis [Thu, 4 Apr 2013 08:51:15 +0000 (11:51 +0300)]
Add name to INicParams and IDiskParams

This commits adds name to NIC and Disk modification definition.

Signed-off-by: Chris Stavrakakis <cstavr@grnet.gr>
Reviewed-by: Helga Velroyen <helgav@google.com>

11 years agoAdd nic/disk name and UUID fields in Haskell code
Christos Stavrakakis [Thu, 4 Apr 2013 08:51:14 +0000 (11:51 +0300)]
Add nic/disk name and UUID fields in Haskell code

Add name and uuid fields to Disk and nic Haskell objects. Also,
since they now have an UUID, make them instances of UuidObject.

Signed-off-by: Christor Stavrakakis <cstavr@grnet.gr>
Reviewed-by: Helga Velroyen <helgav@google.com>

11 years agoAdd Disks and NICs to _AllUUIDObjects
Christos Stavrakakis [Thu, 4 Apr 2013 08:51:13 +0000 (11:51 +0300)]
Add Disks and NICs to _AllUUIDObjects

Since disks and NICs have UUIDs, they must be considered
to _AllUUIDObjects.

Signed-off-by: Christos Stavrakakis <cstavr@grnet.gr>
Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>
Reviewed-by: Helga Velroyen <helgav@google.com>

11 years agoDisplay UUIDs and names in gnt-instance info
Christos Stavrakakis [Thu, 4 Apr 2013 08:51:12 +0000 (11:51 +0300)]
Display UUIDs and names in gnt-instance info

Modify gnt-instance client to display the UUID and name
fields of instances disks and NICs.

Signed-off-by: Christos Stavrakakis <cstavr@grnet.gr>
Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>
Reviewed-by: Helga Velroyen <helgav@google.com>

11 years agoSupport quering for devices names and UUIDs
Christos Stavrakakis [Thu, 4 Apr 2013 08:51:11 +0000 (11:51 +0300)]
Support quering for devices names and UUIDs

Extend instance queries to list 'uuid' and 'name' fields of instance's
Disks and NICs.

Signed-off-by: Christos Stavrakakis <cstavr@grnet.gr>
Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>
Reviewed-by: Helga Velroyen <helgav@google.com>

11 years agoCheck that device names are unique and valid
Christos Stavrakakis [Thu, 4 Apr 2013 08:51:10 +0000 (11:51 +0300)]
Check that device names are unique and valid

Extend the CheckArguments phase of LUInstanceCreate and CheckPrereq
phase of LUInstanceSetParams to also check if the name parameters of
disks and NICs are unique and valid.

Signed-off-by: Christos Stavrakakis <cstavr@grnet.gr>
Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>
Reviewed-by: Helga Velroyen <helgav@google.com>

11 years agoImplement renaming Disks and NICs
Christos Stavrakakis [Thu, 4 Apr 2013 08:51:09 +0000 (11:51 +0300)]
Implement renaming Disks and NICs

Implement renaming Disks and NICs in LUInstanceSetParams. Remove code
that checked that changing disk mode was the only disk modification
supported. Also, handle case of 'None' value for 'name' parameter.

Signed-off-by: Christos Stavrakakis <cstavr@grnet.gr>
Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>
Reviewed-by: Helga Velroyen <helgav@google.com>

11 years agoSupport UUIDs and names when refering to a device
Christos Stavrakakis [Thu, 4 Apr 2013 08:51:08 +0000 (11:51 +0300)]
Support UUIDs and names when refering to a device

Modify _ApplyContainerMods function to lookup NICs/Disks not only by their
index inside the container, but also by their UUID or name. Abstract the
lookup code in new GetItemFromContainer function.

Make type of identifier in "opcode._TestInstSetParamsModList" to be
TInt or TString.

Modify gnt-instance client to not check if identifier is an integer.

Signed-off-by: Christos Stavrakakis <cstavr@grnet.gr>
Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>
Reviewed-by: Helga Velroyen <helgav@google.com>

11 years agoSupport UUIDs and names when handling NICs/Disks
Christos Stavrakakis [Thu, 4 Apr 2013 08:51:07 +0000 (11:51 +0300)]
Support UUIDs and names when handling NICs/Disks

Handle UUID and name fields when creating/managing NICs and Disks. Also,
export NICs and Disks names to instance hooks environment.

Signed-off-by: Christos Stavrakakis <cstavr@grnet.gr>
Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>
Reviewed-by: Helga Velroyen <helgav@google.com>

11 years agoAdd IDISK_NAME and INIC_NAME constants
Christos Stavrakakis [Thu, 4 Apr 2013 08:51:06 +0000 (11:51 +0300)]
Add IDISK_NAME and INIC_NAME constants

Declare IDISK_NAME and INIC_NAME constants and add them to the
IDISK_PARAMS_TYPE and INIC_PARAMS_TYPE.

Signed-off-by: Christos Stavrakakis <cstavr@grnet.gr>
Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>
Reviewed-by: Helga Velroyen <helgav@google.com>

11 years agoAdd uuid and name slots to Disk/NIC ConfigObjects
Christos Stavrakakis [Thu, 4 Apr 2013 08:51:05 +0000 (11:51 +0300)]
Add uuid and name slots to Disk/NIC ConfigObjects

This patch adds "uuid" and "name" slots to Disk and NIC ConfigObjects.

Signed-off-by: Christos Stavrakakis <cstavr@grnet.gr>
Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>
Reviewed-by: Helga Velroyen <helgav@google.com>

11 years agoAdd design doc for device UUIDs and names
Christos Stavrakakis [Thu, 4 Apr 2013 08:51:04 +0000 (11:51 +0300)]
Add design doc for device UUIDs and names

This commit adds the design document for adding UUID and name slots to NIC and
Disk objects and the ability to refer to them by these slots.

Signed-off-by: Christos Stavrakakis <cstavr@grnet.gr>
Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>
Reviewed-by: Helga Velroyen <helgav@google.com>

11 years agousers setup: add masterd to confd group
Guido Trotter [Tue, 16 Apr 2013 15:06:29 +0000 (08:06 -0700)]
users setup: add masterd to confd group

Without this masterd fails saving the config, because it can't change
the group on the file.

Signed-off-by: Guido Trotter <ultrotter@google.com>
Reviewed-by: Helga Velroyen <helgav@google.com>

11 years agoMove HooksMaster out of the mcpu module
Guido Trotter [Sun, 14 Apr 2013 15:51:08 +0000 (08:51 -0700)]
Move HooksMaster out of the mcpu module

We need to do this, so that backend.py doesn't need to import mcpu, and
thus indirectly cmdlib. This reduces the size of the node daemon by
about half, which is very important as it is pinned in memory.

This solves Issue 419.

Signed-off-by: Guido Trotter <ultrotter@google.com>
Reviewed-by: Michele Tartara <mtartara@google.com>

11 years agoUse KB as the unit for LVM PE size
Aaron Knister [Mon, 15 Apr 2013 16:26:36 +0000 (12:26 -0400)]
Use KB as the unit for LVM PE size

LogicalVolume.Attach in bdev.py is calling "lvs" and specifying a unit of
Megabytes that is then converted to an integer resulting in the value 0 for
small sizes.

This patch makes Ganeti use KB for the unit instead of MB.

Fixes Issue 347.

Signed-off-by: Aaron Knister <aaron.knister@gmail.com>
Reviewed-by: Michele Tartara <mtartara@google.com>

11 years agoQA: Test enabled disk templates with known configuration
Bernardo Dal Seno [Sun, 14 Apr 2013 14:31:35 +0000 (16:31 +0200)]
QA: Test enabled disk templates with known configuration

The test failed because it was executed also in a configuration that wasn't
expected, i.e., with exclusive storage enabled.

Also the docstring is shortened, as it was being truncated in the QA output.

Signed-off-by: Bernardo Dal Seno <bdalseno@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>

11 years agoQA: Decision about disk templates to use is more modular
Bernardo Dal Seno [Sun, 14 Apr 2013 14:25:45 +0000 (16:25 +0200)]
QA: Decision about disk templates to use is more modular

qa_config.IsTemplateSupported() is already used to decide which disk
templates are supported by QA. Enabled templates now are part of that
decision.

Unit tests are updated.

Signed-off-by: Bernardo Dal Seno <bdalseno@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>

11 years agoImprove RAPI documentation for command line usage
Michele Tartara [Fri, 12 Apr 2013 08:47:06 +0000 (08:47 +0000)]
Improve RAPI documentation for command line usage

Provide some more insights about how to use the RAPI from the command line
through the "curl" command.

Signed-off-by: Michele Tartara <mtartara@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>

11 years agoMore info on using the RAPI
Michele Tartara [Tue, 26 Mar 2013 16:21:43 +0000 (16:21 +0000)]
More info on using the RAPI

Add some additional information about how to use/test the RAPI,
including how to specify authentication credentials.

Cherry picked from 681f4f7bb95a2b467f917c84a68ccf9aa7665763 on master.

Signed-off-by: Michele Tartara <mtartara@google.com>
Reviewed-by: Helga Velroyen <helgav@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>

11 years agoFix typo in documentation string
Klaus Aehlig [Tue, 9 Apr 2013 14:58:31 +0000 (16:58 +0200)]
Fix typo in documentation string

Signed-off-by: Klaus Aehlig <aehlig@google.com>
Reviewed-by: Michele Tartara <mtartara@google.com>

11 years agoAdapt test data to changed ipolicy format
Klaus Aehlig [Fri, 12 Apr 2013 07:57:49 +0000 (09:57 +0200)]
Adapt test data to changed ipolicy format

The test data for hail allocating a multi-disk instance was
originally added in the 2.7 branch. On master the format
of the ipolicy had changed; "min" and "max" are no longer
top-level of the ipolicy, but instead below the "minmax"
key. Hence change the test data accordingly after the merge
to master.

Signed-off-by: Klaus Aehlig <aehlig@google.com>
Reviewed-by: Michele Tartara <mtartara@google.com>

11 years agoRemove mistaken merge conflict line from NEWS
Guido Trotter [Thu, 11 Apr 2013 21:32:31 +0000 (17:32 -0400)]
Remove mistaken merge conflict line from NEWS

Signed-off-by: Guido Trotter <ultrotter@google.com>
Reviewed-by: Helga Velroyen <helgav@google.com>

11 years agoMerge branch 'devel-2.7'
Guido Trotter [Thu, 11 Apr 2013 21:03:32 +0000 (17:03 -0400)]
Merge branch 'devel-2.7'

* devel-2.7: (26 commits)
  Fix burnin install path
  Fix format of the NEWS file
  NEWS: Add news entry for the hail disk policy fix
  Add shelltests verifying hail applies disk ipolicy per disk
  Make the disks parameter available to the constructor
  Verify individual disks in Instance
  Compatibility fix for GHC 7
  Properly update iv_name of disks while changing templates
  Limit the size of networks to /16
  Check minimum size of networks on creation
  Fix job queue directory permission problems
  The disk size of a diskless instance is 0, not None
  Postpone non-urgent TODO from 2.7 to 2.9
  Add tool for creating users and groups
  Backwards compatibility fix for Lucid
  Properly export errors while reading job list
  Fix typo and improve comment
  Fix a bug in the Runtime tests
  Restrict instance move to templates based on local files
  Introduce a constant for the copyable disk templates
  ...

Conflicts:
NEWS: trivial
lib/network.py: trivial

Signed-off-by: Guido Trotter <ultrotter@google.com>
Reviewed-by: Helga Velroyen <helgav@google.com>

11 years agoUpdate man page 'gnt-cluster' regarding disk templates
Helga Velroyen [Thu, 28 Mar 2013 12:45:32 +0000 (13:45 +0100)]
Update man page 'gnt-cluster' regarding disk templates

This documents the new 'gnt-cluster init/modify' option
'--enabled-disk-templates' in the man page.

Signed-off-by: Helga Velroyen <helgav@google.com>
Reviewed-by: Michele Tartara <mtarara@google.com>

11 years agoRemoves the 'sharedfile' storage type
Helga Velroyen [Thu, 28 Mar 2013 10:34:42 +0000 (11:34 +0100)]
Removes the 'sharedfile' storage type

Since storage type are supposed to represent the underlying technology
of disk templates, the storage type 'sharedfile' is superfluous, because
technically both disk templates 'file' and 'sharedfile' use the file system.
This will be of use when implementing the storage space reporting for
all disk templates.

Signed-off-by: Helga Velroyen <helgav@google.com>
Reviewed-by: Michele Tartara <mtarara@google.com>

11 years agoUpdate NEWS file regarding disk types
Helga Velroyen [Tue, 26 Mar 2013 16:34:41 +0000 (17:34 +0100)]
Update NEWS file regarding disk types

This patch extends the NEWS file describing the essential user-facing
changes in this patch series.

Signed-off-by: Helga Velroyen <helgav@google.com>
Reviewed-by: Michele Tartara <mtarara@google.com>

11 years agoConsistency checks for config wrt disk templates
Helga Velroyen [Wed, 27 Mar 2013 15:02:47 +0000 (16:02 +0100)]
Consistency checks for config wrt disk templates

This patch adds consistency checks for the configuration regarding
disk templates. In particular, it checks that the list of enabled
disk templates is not empty, does not contain any bogus templates,
and that all instances use actually enabled disk templates.
Additionally, it fixes a small formatting issue regarding the list
of enabled hypervisors.

Signed-off-by: Helga Velroyen <helgav@google.com>
Reviewed-by: Michele Tartara <mtarara@google.com>