Iustin Pop [Fri, 1 Mar 2013 11:45:38 +0000 (12:45 +0100)]
Allow iallocator to work without LVM storage
Currently, the iallocator interface requires LVM storage, due to the
way it computes the node storage information.
By changing the code to understand that GetVGName() can return None,
and by setting the disk_total/disk_free node parameters to the value
zero, we can workaround this issue until proper multi-storage
reporting is implemented.
The hail iallocator plugin works without changes once this is
implemented, as it already handles non-LVM storage as "foreign"
storage (with unlimited capacity).
The patch also changes a bit how the parameters are retrieved and
used; hopefully this is a bit safer and more readable.
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Iustin Pop [Fri, 1 Mar 2013 11:23:23 +0000 (12:23 +0100)]
Allow rpc.MakeLegacyNodeInfo to parse non-LVM results
'MakeLegacyNodeInfo' is not the best place for this, but we'd have to
duplicate it if we wanted a LVM-less version, so the easiest is to add
an optional parameter that allows it to accept/skip LVM-less results.
It still requires at most one VG result, so its behaviour isn't
changed in this respect.
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Iustin Pop [Fri, 1 Mar 2013 09:59:55 +0000 (10:59 +0100)]
Fix LUTestAllocator with instance alloc
This is similar to commit
8775e62a; the addition of node_whitelist
broke this LU as well.
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Bernardo Dal Seno <bdalseno@google.com>
Dimitris Aragiorgis [Thu, 28 Feb 2013 01:29:33 +0000 (03:29 +0200)]
Fix confd issue regarding --no-lvm-storage
If cluster is initialized with --no-lvm-storage then volume_group_name
does not exist in config.data. Thus we must define it as optional in
confd.
Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>
[iustin@google.com: fixed Haskell RPC definition]
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Dimitris Aragiorgis [Tue, 26 Feb 2013 20:28:42 +0000 (22:28 +0200)]
Fix networks in _PrepareNicModifications()
Passing --net 0:add,ip=5.5.5.5 failed due to a reference
of a non initialized variable (new_net_obj). Reorder the checks
and add some comments to be readable.
Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Iustin Pop [Thu, 28 Feb 2013 16:40:39 +0000 (17:40 +0100)]
Fix sphinx label namespace
Thanks Michael for pointing out the error!
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Iustin Pop [Thu, 28 Feb 2013 15:32:11 +0000 (16:32 +0100)]
Clarify use of move-instance with self-signed certificates
The document doesn't mention which certificates need to be passed as
ca-file, so let's try to clarify that.
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Dimitris Aragiorgis [Thu, 28 Feb 2013 13:55:03 +0000 (15:55 +0200)]
Remove early returns in network LUs
Remove any early returns in LUNetworkDisconnect/LUNetworkConnect
and replace them with if-else statements.
Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Dimitris Aragiorgis [Tue, 26 Feb 2013 01:39:28 +0000 (03:39 +0200)]
Fix HooksDict() in case of no tags
In this method self.tags might be None and cannot be used
in join(). Use GetTags instead.
Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Dimitris Aragiorgis [Tue, 26 Feb 2013 01:39:27 +0000 (03:39 +0200)]
Add networks to _AllIDs()
networks config objects have UUIDs and thus should be included
in _AllUUIDObjects().
Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Dimitris Aragiorgis [Tue, 26 Feb 2013 01:39:26 +0000 (03:39 +0200)]
Fix locking in LUNetworkConnect()
Locks for group instances are aquired only if conflicts are checked.
To this end we must _CheckNodeGroupInstances() only then otherwise
this check will always fail (owned_instances will be []).
Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Dimitris Aragiorgis [Tue, 26 Feb 2013 01:39:25 +0000 (03:39 +0200)]
Fix networks in LUInstanceSetParams()
Params passed in _CreateNewNic() are not yet evaluated and include
the value passed by user for the network. A lookup must be done first
in order to find the corresponding network UUID which should be stored
in the newly created NIC object.
Params passed in _ApplyNicMods() include the value passed by user
for the network. Thus a lookup must be done first in order to find
the corresponding network UUID. Then compare it with the existing
value and act accordingly.
Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Iustin Pop [Thu, 21 Feb 2013 14:10:56 +0000 (15:10 +0100)]
Fix another docstring typo
… no comment :)
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Helga Velroyen <helgav@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Dimitris Aragiorgis [Tue, 19 Feb 2013 17:41:48 +0000 (19:41 +0200)]
Locking fixes regarding Issue 324
LUNetworkConnect/LUNetworkDisconnect, in case locking is used, might
lock instances that exist in the requested node group. The acquired
locks should be checked if they are correct at the beginning of
CheckPrereq() via _CheckNodeGroupInstances().
Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Iustin Pop [Wed, 20 Feb 2013 14:57:10 +0000 (15:57 +0100)]
Fix small typo in a docstring
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Michele Tartara <mtartara@google.com>
Michael Hanselmann [Wed, 20 Feb 2013 12:58:04 +0000 (13:58 +0100)]
check-news: Ensure release date is within three days
Commit
b6ad806f contained a date a month in the future. With this patch
all release dates in NEWS may at most be three days into the future
(assuming the build machine's clock is correct).
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Michael Hanselmann [Wed, 20 Feb 2013 12:41:59 +0000 (13:41 +0100)]
NEWS: Fix the fix in commit 82b6f9a
February 2, 2013 was a Wednesday, not a Thursday.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Helga Velroyen <helgav@google.com>
Michael Hanselmann [Wed, 20 Feb 2013 11:43:47 +0000 (12:43 +0100)]
NEWS: Fix release date for 2.7.0 beta1
Commit
b6ad806f used a wrong date.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Helga Velroyen <helgav@google.com>
Dimitris Aragiorgis [Tue, 19 Feb 2013 16:28:42 +0000 (18:28 +0200)]
Minor fixes regarding nic.network change
Make LookupNetwork() return None in case target is None. This fixes
Issue 380. Rapi passes network=None and the lookup should not fail.
Make network client aware of new nic.network.gnt-network info shows
the IPs of each instance inside the network. It parses nic.networks
field of QueryInstances() output, which now is a list of uuids an
not names.
Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>
Reviewed-by: Helga Velroyen <helgav@google.com>
Dimitris Aragiorgis [Tue, 19 Feb 2013 14:45:30 +0000 (16:45 +0200)]
Fix issue 378
In case a NIC is not inside a network then netinfo None. Thus
netinfo["name"] fails.
Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>
Reviewed-by: Helga Velroyen <helgav@google.com>
Michael Hanselmann [Thu, 14 Feb 2013 15:55:07 +0000 (16:55 +0100)]
NEWS: Mention multi-alloc and fix typo
As far as I could see, the ability to allocate multiple instances via
RAPI was not mentioned at all. A superfluous word is also removed.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Dimitris Aragiorgis [Sat, 16 Feb 2013 13:19:40 +0000 (15:19 +0200)]
Add cfgupgrade for changing nic.network to uuid
This gets all network info from config_data and parses
all instances and their NICs and makes the substitution.
Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>
Reviewed-by: Helga Velroyen <helgav@google.com>
Dimitris Aragiorgis [Sat, 16 Feb 2013 13:19:39 +0000 (15:19 +0200)]
Remove useless code in backend for network hooks
In backend NICs arrive with netinfo filled. If nic.network is not None
nic.netinfo is not too. Thus all the info is derived from HooksDict()
and nic.network must not be checked.
Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>
Reviewed-by: Helga Velroyen <helgav@google.com>
Dimitris Aragiorgis [Sat, 16 Feb 2013 13:19:38 +0000 (15:19 +0200)]
Show network name and not uuid in instance info
This was before the case too. Now is bit trickier because nic.network
is uuid. Info must derive from nic.netinfo.
Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>
Reviewed-by: Helga Velroyen <helgav@google.com>
Dimitris Aragiorgis [Sat, 16 Feb 2013 13:19:37 +0000 (15:19 +0200)]
Add IQ_NETWORKS in query tests
Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>
Reviewed-by: Helga Velroyen <helgav@google.com>
Dimitris Aragiorgis [Sat, 16 Feb 2013 13:19:36 +0000 (15:19 +0200)]
Implement network locking in Instance queries
This is needed in case more info than each nic's network uuid is to
be returned. We need to lock networks to get valid data. For now
only the name is returned as an extra field. All other can be added
with trivial effort.
Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>
Reviewed-by: Helga Velroyen <helgav@google.com>
Dimitris Aragiorgis [Sat, 16 Feb 2013 13:19:35 +0000 (15:19 +0200)]
Changes in query to support nic.network as uuid
Queries now return the network uuid as well as it's name. Here we
only use info provided be LUInstanceQueryData context.
Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>
Reviewed-by: Helga Velroyen <helgav@google.com>
Dimitris Aragiorgis [Sat, 16 Feb 2013 13:19:34 +0000 (15:19 +0200)]
Modify query LUs to supoprt nic.network as uuid
Make _InstanceQuery gather all network info related to instance's
NICs and in case of NETQ_INST in _NetworkQuery get all network
uuids directly from nic.network
Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>
Reviewed-by: Helga Velroyen <helgav@google.com>
Dimitris Aragiorgis [Sat, 16 Feb 2013 13:19:33 +0000 (15:19 +0200)]
Add GetInstanceNetworks() config method
This will be needed for Instance Queries. It walks through the
instance's NICs and returns a list network uuids that the NICs
are attached to.
Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>
Reviewed-by: Helga Velroyen <helgav@google.com>
Dimitris Aragiorgis [Sat, 16 Feb 2013 13:19:32 +0000 (15:19 +0200)]
cmdlib changes to support nic.network as uuid
Refactor Instance related LUs to support nic.network as
a uuid. This removes all the unnecessary invocations to
LookupNetwork().
Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>
Reviewed-by: Helga Velroyen <helgav@google.com>
Dimitris Aragiorgis [Sat, 16 Feb 2013 13:19:31 +0000 (15:19 +0200)]
Make network config methods take uuid as argument
This will be needed in the following patches where nic.network
will refer to network's uuid and not name.
Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>
Reviewed-by: Helga Velroyen <helgav@google.com>
Guido Trotter [Fri, 15 Feb 2013 14:39:06 +0000 (15:39 +0100)]
Document possible hypervisor bug in serial_console
This is described in Issue 83.
Update both the install guide and the gnt-instance manpage.
In the install guide move another KVM specific example inside a new KVM
admonition for the hypervisor parameters section.
Signed-off-by: Guido Trotter <ultrotter@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Constantinos Venetsanopoulos [Thu, 14 Feb 2013 14:38:52 +0000 (16:38 +0200)]
Update man pages wrt ExtStorage
* ganeti-extstorage-interface: add examples
* gnt-instance: document the “ext” template
* remove a few double spaces
Also link to its design doc in the design-2.7 doc
Signed-off-by: Constantinos Venetsanopoulos <cven@grnet.gr>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Signed-off-by: Guido Trotter <ultrotter@google.com>
Iustin Pop [Fri, 15 Feb 2013 09:29:47 +0000 (10:29 +0100)]
Rename lib/objectutils to outils.py
Back when this was introduced, I mentioned that it breaks heavily tab
completion (ob<TAB> doesn't work anymore), but at that moment I didn't
have a suggestion what to name it. I think outils is good and short
enough, and doesn't conflict with anything else, so here it goes.
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Michele Tartara <mtartara@google.com>
Ben Lipton [Wed, 13 Feb 2013 17:21:07 +0000 (12:21 -0500)]
Fix typo in gnt-group manpage
The --ipol-disk-templates parameter should actually be
--ipolicy-disk-templates.
Signed-off-by: Ben Lipton <ben.lipton@gmail.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Michele Tartara [Tue, 12 Feb 2013 15:40:16 +0000 (15:40 +0000)]
Fix wrong type in a docstring of the RAPI subsystem
Signed-off-by: Michele Tartara <mtartara@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Iustin Pop [Fri, 8 Feb 2013 13:42:36 +0000 (14:42 +0100)]
Finish the remote→restricted commands rename
The documentation still points to /etc/ganeti/remote-commands,
although the code is already using restricted-command. Update the
documentation and a few docstrings accordingly.
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Iustin Pop [Fri, 8 Feb 2013 12:43:01 +0000 (13:43 +0100)]
Enable use of the priority option in hbal
This patch adds the option to hbal, and uses it to tweak the submitted
jobs. There are also two small shelltests for testing the parsing.
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Iustin Pop [Fri, 8 Feb 2013 12:23:50 +0000 (13:23 +0100)]
Add CLI-level option to override the priority
This just defined the new priority, with the same name as the Python one.
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Iustin Pop [Fri, 8 Feb 2013 12:14:26 +0000 (13:14 +0100)]
Add functions to parse CLI-level format of priorities
The current serialisation format for submit priorities is
integer-based, same as the opcode json serialisation. But for CLI
level, we need to support a string-based format, so we add functions
to parse and format this representation.
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Iustin Pop [Fri, 8 Feb 2013 11:22:24 +0000 (12:22 +0100)]
Add a function to change an OpCode's priority
This simply updates the metaopcode submit priority.
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Iustin Pop [Fri, 8 Feb 2013 11:12:56 +0000 (12:12 +0100)]
Make hbal opcode annotation more generic
Currently, hbal code always uses annotateOpCode function, which means
we would have to pass the options data to all function in the call
chain if we wanted to make this more flexible.
By abstracting the type of the annotator and passing it as an argument
to the function, we can be more flexible.
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Stratos Psomadakis [Tue, 12 Feb 2013 12:07:13 +0000 (14:07 +0200)]
Add unit tests for RADOSBLockDevice
Add unit tests for the RADOSBlockDevice JSON output parsing function,
and modify the unit tests for the plain output parsing function to
work with the new code.
Signed-off-by: Stratos Psomadakis <psomas@grnet.gr>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Stratos Psomadakis [Fri, 8 Feb 2013 16:36:34 +0000 (18:36 +0200)]
Fix rbd showmapped output parsing
'rbd showmapped' output formatting differs between older and newer versions of
the ceph tools. Try to use json output formatting if available (currently
available only in the ceph master branch). For bobtail, argonaut and older
releases fallback to manually parsing the 'rbd showmapped' output, handling the
differences in the output format for each rbd version correctly.
Signed-off-by: Stratos Psomadakis <psomas@grnet.gr>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Guido Trotter [Tue, 12 Feb 2013 09:39:16 +0000 (10:39 +0100)]
Change default xen root path to /dev/xvda1
All recent-enough versions of linux see the xen paravirtual device as
/dev/xvd*.
This doesn't break old installations, as the default is only used on new
clusters.
Signed-off-by: Guido Trotter <ultrotter@google.com>
Reviewed-by: Michele Tartara <mtartara@google.com>
Helga Velroyen [Wed, 30 Jan 2013 16:56:20 +0000 (16:56 +0000)]
Removes check for conflicts from NetworkDisconnect
This removes the check for conflicts from the Haskell
version of the OpCode NetworkDisconnect. This alignes
the Haskell code with the patch
"Force conflicts check in LUNetworkDisconnect" (which
is currently under review). I will submit these patches
together then.
This is a cherry-pick of commit 0ae4b35.
Signed-off-by: Helga Velroyen <helgav@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Michele Tartara <mtartara@google.com>
Helga Velroyen [Wed, 30 Jan 2013 16:35:10 +0000 (17:35 +0100)]
If _UnlockedLookupNetwork() fails raise error
Make _UnlockedLookupNetwork() raise OpPrereqError (instead of returning
None) in case it does not find the requested network. Remove useless and
duplicate code such as:
if net_uuid is None:
raise...
This is a cherry-pick of commit 1cce2c4.
Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>
Reviewed-by: Helga Velroyen <helgav@google.com>
Reviewed-by: Michele Tartara <mtartara@google.com>
Helga Velroyen [Wed, 30 Jan 2013 16:12:26 +0000 (17:12 +0100)]
Force conflicts check in LUNetworkDisconnect
Until now if one disconnects a network with --no-conflicts-check
and then remove it, there is a possibility to leave instances with NICs
referencing non-existing networks. This causes network queries,
instance removal and modification to fail.
This patch allows a network to be disconnected from a nodegroup,
only if instances residing in the nodegroup do not have NICs attached
to the network. Otherwise OpPrereqError is raised. The
--no-conflicts-check option is removed from the gnt-network disconnect
command as well.
This is a cherry-pick of commit 6bb939a.
Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>
Reviewed-by: Helga Velroyen <helgav@google.com>
Reviewed-by: Michele Tartara <mtartara@google.com>
Michael Hanselmann [Thu, 7 Feb 2013 13:15:36 +0000 (14:15 +0100)]
QA: Support additional arguments for initialization
In some scenarios it can be useful to add more arguments to “gnt-cluster
init”, such as “--no-drbd-storage”, if DRBD is not installed.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Michael Hanselmann [Thu, 7 Feb 2013 12:09:42 +0000 (13:09 +0100)]
qa_utils: Fix order of arguments passed to _AssertRetCode
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Michael Hanselmann [Tue, 12 Feb 2013 11:17:21 +0000 (12:17 +0100)]
Improve reporting on errors.AddressPoolError exceptions
This patch improves the error messages given when a
“errors.AddressPoolError” exception is caught. Includes some small style
fixes.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Iustin Pop [Tue, 12 Feb 2013 09:04:21 +0000 (10:04 +0100)]
Add note about lv-tags rename
This is not included on the 2.6 branch, so update the NEWS for 2.7.0 beta1.
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Dimitris Aragiorgis [Mon, 11 Feb 2013 12:42:38 +0000 (14:42 +0200)]
Make use of HooksDict() for networks
This can be used in hypervisor code as well. For consistency
export *NETWORK_NAME and not *NETWORK throughout the code.
Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Dimitris Aragiorgis [Mon, 11 Feb 2013 12:42:36 +0000 (14:42 +0200)]
Remove family and size from network objects
This info is not used by Ganeti and therefore is removed.
Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Dimitris Aragiorgis [Mon, 11 Feb 2013 12:42:34 +0000 (14:42 +0200)]
Remove network_type slot (Issue 363)
This slot was not used by Ganeti so the same info can be
provided via tags. In order not to break configuration data
we add a FromDict() method in Network config object that
removes the deprecated network_type (if found) and then invoke
the parent's method (which does the validation).
Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Bernardo Dal Seno [Fri, 1 Feb 2013 15:31:43 +0000 (16:31 +0100)]
Moved uniformity check for exclusive_storage flag
Cluster-verify used to check that the value of exclusive_storage is uniform
within node groups. Now, it's impossible to change the flag for a single
node, so that check has been removed and an equivalent one has been added
in ConfigWriter.VerifyConfig(). Unit test provided. The unit test covers
only the new check, not the whole VerifyConfig method.
Signed-off-by: Bernardo Dal Seno <bdalseno@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Bernardo Dal Seno [Fri, 1 Feb 2013 14:46:54 +0000 (15:46 +0100)]
"exclusive_storage" cannot be changed on single nodes
There's never been support for a configuration where nodes in the same node
group have different values of the exclusive_storage flag. This patch
disables the possibility to change the flag for individual nodes.
Signed-off-by: Bernardo Dal Seno <bdalseno@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Bernardo Dal Seno [Wed, 6 Feb 2013 13:52:30 +0000 (14:52 +0100)]
Upgrades made on loading the configuration are always saved
Before, only some upgrades were written back to the configuration file. A
little refactoring of _UpgradeConfig() has been done to write unit tests.
Signed-off-by: Bernardo Dal Seno <bdalseno@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Iustin Pop [Fri, 8 Feb 2013 15:51:25 +0000 (16:51 +0100)]
Show correct daemon name on Luxi connect errors
Since now confd also serves a Luxi endpoint, the current message in
cli.FormatError is misleading when actually failing to connect to
it. The patch adds a somewhat hackish way to show the right daemon
name.
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Iustin Pop [Fri, 8 Feb 2013 14:47:07 +0000 (15:47 +0100)]
Update the security document for Ganeti 2.7
This should address 359, but I'm not sure if it covers all of 2.7…
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Guido Trotter [Thu, 7 Feb 2013 13:30:38 +0000 (14:30 +0100)]
OS environment: add network information
1) Move the hooks environment dict generator inside the object. This
also adds missing values such as network family and uuid.
2) Use the same generator both for the os environment and for the
instance hooks.
3) Update manpage and hooks documentation.
Also update a forgotten docstring about a tuple's content.
Signed-off-by: Guido Trotter <ultrotter@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Guido Trotter [Fri, 8 Feb 2013 07:44:48 +0000 (08:44 +0100)]
ConfigData: run UpgradeConfig on network objects
Although this does nothing for now, running it is safe, and consistent
with how other objects behave.
Signed-off-by: Guido Trotter <ultrotter@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Guido Trotter [Thu, 7 Feb 2013 14:47:48 +0000 (15:47 +0100)]
Make ParticalNic's network field of type String
This was applied to "master" along with extra changes affecting the
master branch only. Cherry-picking just the Objects.hs change.
Signed-off-by: Guido Trotter <ultrotter@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Iustin Pop [Fri, 8 Feb 2013 09:47:04 +0000 (10:47 +0100)]
Make gnt-os list work with no OSes
When absolutely no OSes are present on the cluster, the result of
OpOsDiagnose is an empty list. This is currently handled in gnt-os as
an error condition, probably due to how OpOsDiagnose used to return
errors in the past.
However, with the query backend, an empty list is a reasonable answer,
so I see no reason why gnt-os should treat that as an error,
especially as it doesn't give any hint of what is "wrong". Simply
removing that code block allows it to proceed normally, and list no
OSes.
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Iustin Pop [Fri, 8 Feb 2013 09:34:45 +0000 (10:34 +0100)]
Fix OCF files installation in devel/upload
LIBDIR was not defined, so the files ended up directly under /, not
good. Now they're properly installed under /usr/lib/ocf, as per
http://linux-ha.org/wiki/OCF_Resource_Agents.
Also add "set -u" to prevent future occurrences of this kind of bug.
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Michael Hanselmann [Fri, 8 Feb 2013 09:52:26 +0000 (10:52 +0100)]
baserlib: Fix two mistakes in docstring
The method names were wrong due to copy & paste.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Iustin Pop [Thu, 7 Feb 2013 13:32:49 +0000 (14:32 +0100)]
Workaround hlint behaviour with no warnings/errors
When hlint sees a perfectly nice code tree, it will skip generating
the reports (both stdout and html). This means that usually the old
report will remain in place, so it makes development harder, as the
html file is out of sync with the tree.
To workaround this, we generate an empty/minimal file in this case.
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Iustin Pop [Thu, 7 Feb 2013 13:22:01 +0000 (14:22 +0100)]
Remove use of 'head' and add hlint warning for it
Since 'head' is unsafe to use in most cases, this patch removes its
use from most of the code, adds a lint warning for it (and for tail as
well), and adds override annotations in the few cases where it's
actually OK to use it (mainly when using head over the result of
functions which guarantee to return a non-empty list by documentation,
not type).
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Helga Velroyen <helgav@google.com>
Guido Trotter [Wed, 6 Feb 2013 13:11:35 +0000 (14:11 +0100)]
Add release date for 2.7.0 beta1
Signed-off-by: Guido Trotter <ultrotter@google.com>
Reviewed-by: Michele Tartara <mtartara@google.com>
Guido Trotter [Mon, 4 Feb 2013 14:28:41 +0000 (15:28 +0100)]
Version bump for 2.7.0~beta1
Also update the documentation target versions and the cfgupgrade tool to
recognize 2.6 and upgrade to 2.7
Signed-off-by: Guido Trotter <ultrotter@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Guido Trotter [Wed, 6 Feb 2013 10:28:12 +0000 (11:28 +0100)]
Update hooks.rst for Ganeti 2.7
- The migrate instance hook now also executes on the primary node in
the "pre" phase.
- Instance hooks now get full network information on each nic, if a
nic's network is set.
Signed-off-by: Guido Trotter <ultrotter@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Iustin Pop [Tue, 5 Feb 2013 15:26:04 +0000 (16:26 +0100)]
Redirect output for gnt-* list/list-fields commands
This enabled the redirection; QA output after this patch should become
much much smaller (on a 'quick' QA, we are left with ~0.5MB output on
stdout and 64MB redirected output).
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Iustin Pop [Tue, 5 Feb 2013 15:24:05 +0000 (16:24 +0100)]
Add function to execute QA commands with redirected output
Some QA commands generate non-trivial output: for a full QA, the gnt-*
list commands generate more than 300MB of data. To make the QA logs
more parseable by humans, we need support for redirecting output of
commands to a different place.
This patch adds a 'AssertRedirectedCommand' that does this,
redirecting the output to a (fixed) log file in the Ganeti log
directory.
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Iustin Pop [Tue, 5 Feb 2013 15:22:00 +0000 (16:22 +0100)]
Implement option to skip logging of QA commands
This patch adds an optional kwarg that allows skipping the "Command:
…" line in QA output. This is helpful if we only need to run some
maintenance actions, that are QA-related and not Ganeti-related.
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Iustin Pop [Tue, 5 Feb 2013 13:04:14 +0000 (14:04 +0100)]
Fix typo in a comment
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Michele Tartara <mtartara@google.com>
Iustin Pop [Mon, 4 Feb 2013 13:52:43 +0000 (14:52 +0100)]
Add some more Haskell/Python equivalence tests
This would have caught the log file problem fixed in the previous
patch (
9411474b), for example. Also we test user/group equivalence,
name only.
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Iustin Pop [Mon, 4 Feb 2013 13:34:33 +0000 (14:34 +0100)]
Fix Haskell log file naming after virtual cluster changes
Commit
3329f4de changed the Haskell log file from constants to
functions, but introduced a bug: it uses now the daemon name instead
of the correct log file, which means "ganeti-confd.log" instead of
"conf-daemon.log".
In order to fix this, we need to abstract the log file base (in
constants.py) into a separate set of constants, so that we can reuse
it in the Haskell code.
This fixes issue 343.
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Bernardo Dal Seno [Fri, 1 Feb 2013 17:32:42 +0000 (18:32 +0100)]
QA: Clean up after "instance-remove-drbd-offline" test
This test used to leave a node with orphan logical volumes and unused DRBD
minors. Now, the expected leftovers are cleaned up after the test, and
cluster-verify is run.
Signed-off-by: Bernardo Dal Seno <bdalseno@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Iustin Pop [Mon, 4 Feb 2013 10:12:23 +0000 (11:12 +0100)]
Switch KVM to multi-error verify results
This uses the new _FormatVerifyResults helper function to return
multiple errors.
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Iustin Pop [Mon, 4 Feb 2013 09:57:22 +0000 (10:57 +0100)]
Make LXC fail verification if cgroup is not mounted
Since LXC now relies on cgroup memory limits to enforce memory, let's
make hypervisor verification (and thus cluster-verify) return errors
when the cgroup filesystem is not mounted.
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Iustin Pop [Mon, 4 Feb 2013 10:10:14 +0000 (11:10 +0100)]
Add a helper function for hypervisor verification
This will allow easier multi-error results from hypervisors; right
now, we only report the first error, which is not nice.
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Guido Trotter [Sat, 2 Feb 2013 12:06:27 +0000 (13:06 +0100)]
hv_lxc: fix whitespace errors
The latest lxc patches included a few whitespace style errors, that make
lint fail. This patch fixes those.
Signed-off-by: Guido Trotter <ultrotter@google.com>
Reviewed-by: Helga Velroyen <helgav@google.com>
Guido Trotter [Sat, 2 Feb 2013 11:38:49 +0000 (12:38 +0100)]
s/nic/NIC/ in manpages
For consistency, let's make sure NICs are capitalized always in the same
way.
Signed-off-by: Guido Trotter <ultrotter@google.com>
Reviewed-by: Helga Velroyen <helgav@google.com>
Faidon Liambotis [Sun, 23 Dec 2012 16:14:25 +0000 (18:14 +0200)]
LXC: add support for the memory controller
Add support for the memory resource controller, useful to actually place
memory limits on instances.
Support is still optional, in case the kernel doesn't have it compiled
in, or -in the case of Debian- has it dependent on a kernel command-line
switch (cgroup_enable=memory specifically).
Signed-off-by: Faidon Liambotis <paravoid@debian.org>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Faidon Liambotis [Sun, 23 Dec 2012 16:14:24 +0000 (18:14 +0200)]
LXC: adapt hv for newer lxc userspace tools
Currently hv_lxc depends on the behavior and output of older LXC tools,
which have since changed, making it unable to function in current
distributions (e.g. Debian wheezy).
Adapt the tools and expectation for the output and make it into a
working state again, at least for LXC 0.8.0.
LXC tools seem to be split into two categories: the actual, binary lxc
tools, plus a set of shell scripts to provide a higher-level interface.
Ganeti doesn't need the latter and the shell scripts make some
assumptions (like /var/lib/lxc) so remove the only reference to such a
shell script (lxc-ls).
While at it, remove a few comments about "current (Spring 2010)
distributions" that do not apply anymore.
This is a backwards-incompatible change, meaning it won't work on
systems with older LXC userspace. However, hv_lxc is experimental anyway
and there's virtually no documentation about it in the tree.
Signed-off-by: Faidon Liambotis <paravoid@debian.org>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Michele Tartara [Fri, 1 Feb 2013 13:46:04 +0000 (14:46 +0100)]
Fix typo in ganeti-noded man page
Add a missing "in".
Signed-off-by: Michele Tartara <mtartara@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Bernardo Dal Seno [Mon, 28 Jan 2013 16:26:40 +0000 (17:26 +0100)]
QA: Run instance tests with different cluster configurations
Instance tests are run with or without the exclusive-storage flag set. More
configurations can be added easily.
Signed-off-by: Bernardo Dal Seno <bdalseno@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Bernardo Dal Seno [Sat, 26 Jan 2013 01:40:03 +0000 (02:40 +0100)]
QA: Run cluster-verify after instance tests
We want to make sure that instance operations don't leave the cluster in a
bad state. The "instance-remove-drbd-offline" test leaves some debris
behind, so it's been moved to the last position.
Signed-off-by: Bernardo Dal Seno <bdalseno@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Bernardo Dal Seno [Wed, 23 Jan 2013 16:23:48 +0000 (17:23 +0100)]
QA: Refactored launching of the various instance tests
The code launching instance tests for "plain" and "drbd" templates has been
unified. In this way it's easier to add more templates, and to re-use the same
tests with different configurations.
Signed-off-by: Bernardo Dal Seno <bdalseno@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Bernardo Dal Seno [Fri, 25 Jan 2013 20:39:38 +0000 (21:39 +0100)]
QA: Use lists of nodes as argument to instance tests
Some instance test functions took two node arguments, some took one, and
some took two but the second argument could be None. This patch makes such
functions uniform by using a list of nodes as an argument. This simplifies
the following refactoring.
No test logic has been changed.
Signed-off-by: Bernardo Dal Seno <bdalseno@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Bernardo Dal Seno [Fri, 25 Jan 2013 20:01:23 +0000 (21:01 +0100)]
QA: Instance tests check the configuration before running
Instance test functions check the current configuration, and they will run
the actual tests only if the configuration supports them. This will be
used for refactoring in following patches.
Signed-off-by: Bernardo Dal Seno <bdalseno@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Bernardo Dal Seno [Fri, 25 Jan 2013 18:06:40 +0000 (19:06 +0100)]
QA: Added functions to allocate/free N nodes at once
These make possible to simplify the logic of tests requiring more
nodes. Used in the following patches.
Signed-off-by: Bernardo Dal Seno <bdalseno@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Bernardo Dal Seno [Mon, 28 Jan 2013 12:55:50 +0000 (13:55 +0100)]
QA: Added exclusive_storage to qa_config
QA configuration now tracks the state of the exclusive_storage flag at
cluster level. This will be used to selectively enable tests according to
the configuration.
Also, it's now possible to specify the initial value of the
exclusive_storage flag in the configuration file.
Signed-off-by: Bernardo Dal Seno <bdalseno@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Bernardo Dal Seno [Mon, 28 Jan 2013 15:46:23 +0000 (16:46 +0100)]
QA: Better initialization of a global dictionary
The global 'cfg' variable is initialized to an empty dictionary, so there
is no more need to disable some pylint checks.
Signed-off-by: Bernardo Dal Seno <bdalseno@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Bernardo Dal Seno [Tue, 22 Jan 2013 16:41:12 +0000 (17:41 +0100)]
QA: Added disk template to config
The disk templates used by the instances are tracked in the QA
configuration. This will be used to selectively enable tests according to
the configuration.
Signed-off-by: Bernardo Dal Seno <bdalseno@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Bernardo Dal Seno [Tue, 29 Jan 2013 17:11:31 +0000 (18:11 +0100)]
QA cleanup: Removed instance-disk-failure test
The test was broken, out of sync with the rest of the code, and prone to
crashes. Until someone does a better job, it's better to remove the
test. This simplifies further refactoring.
Signed-off-by: Bernardo Dal Seno <bdalseno@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Bernardo Dal Seno [Sat, 26 Jan 2013 02:38:10 +0000 (03:38 +0100)]
QA fix: TestInstanceExportWithRemove() updates configuration
When the instance is removed from the cluster by this test, it's also freed
in the QA configuration.
Signed-off-by: Bernardo Dal Seno <bdalseno@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Bernardo Dal Seno [Mon, 21 Jan 2013 13:58:55 +0000 (14:58 +0100)]
QA: Cluster-verify reports shared PVs with exclusive storage
Exclusive storage forbids sharing PVs between unrelated LVs. This is a test
that cluster-verify correctly report such cases.
Signed-off-by: Bernardo Dal Seno <bdalseno@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Bernardo Dal Seno [Wed, 30 Jan 2013 21:44:24 +0000 (22:44 +0100)]
QA: Added constants for LVM volumes
The LVM volume group becomes a configurable parameter, and a prefix for
logical volume names used in tests is introduced as a constant.
Signed-off-by: Bernardo Dal Seno <bdalseno@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Bernardo Dal Seno [Fri, 18 Jan 2013 20:00:21 +0000 (21:00 +0100)]
QA: Templates incompatible with exclusive storage reported
Cluster-verify should report instances whose disk template is not
compatible with the exlusive storage setting.
Signed-off-by: Bernardo Dal Seno <bdalseno@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>