Dimitris Aragiorgis [Tue, 8 Jan 2013 17:38:16 +0000 (19:38 +0200)]
Add machine version in kvm runtime file
kvm -M ? returns the supported machines (e.g. pc-1.1).
Add _GetDefaultMachineVersion() function to get the default value.
Upon kvm runtime file creation (this is in _GenerateKVMRuntime() invoked
only in StartInstance()) append this info in kvm_cmd. During
live migration the -incoming kvm process is started based on this file.
In case of different KVM versions between source and target nodes
there is a possibility (e.g. due to a kvm bug) for migration to fail silently.
This patch forces the target node to emulate the same machine version
used by running process. If KVM on target node does not support it
the -incoming kvm process will crash and migration will be aborted.
Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Michele Tartara [Thu, 10 Jan 2013 11:29:13 +0000 (11:29 +0000)]
Fix typo in the DRBD parser types file
A missing letter has been added to a docstring.
Signed-off-by: Michele Tartara <mtartara@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Michael Hanselmann [Mon, 7 Jan 2013 18:53:31 +0000 (19:53 +0100)]
Add script to check man page references
This script checks for some of the most obvious mistakes when formatting
man page references (which should have the form “**ganeti**\(7)”). While
this works now, it is very hard to avoid ambiguities (e.g. references
within verbatim blocks) when using regular expressions.
Also fixes a typo in Makefile.am by replacing “harcoded” with
“hardcoded”.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Michael Hanselmann [Mon, 7 Jan 2013 18:44:58 +0000 (19:44 +0100)]
man: Man page reference cleanup
Sphinx is stricter than pandoc when parsing reST and does not allow an
opening parenthesis to directly follow inline markup. [1] describes the
rules. A backslash, as described in [2], can be used to separate the
two.
Additionally, there were different forms for referring to man pages.
Sometimes it was a plain “ganeti(7)”, sometimes “**ganeti**(7)” and
other times “**ganeti(7)**” (of course with different names and
numbers).
Commit
7acbda7b added a new paragraph and used the Sphinx-specific
“:manpage:…” markup, which isn't supported by pandoc. It is replaced
with a standard reference.
[1]
http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html#
inline-markup-recognition-rules
[2]
http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html#
character-level-inline-markup
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Dato Simó [Wed, 9 Jan 2013 17:04:31 +0000 (17:04 +0000)]
test/Utils.hs: fix capitalization in docstring comment
Signed-off-by: Dato Simó <dato@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Guido Trotter [Wed, 9 Jan 2013 16:31:39 +0000 (17:31 +0100)]
Merge branch 'devel-2.6'
* devel-2.6:
Add utility to format dictionary as key=value strings
Remove fixed FIXME
QA: Support master-netdev and default NIC parameters
QA: Do not pass "--bridge" to "gnt-cluster init"
Signed-off-by: Guido Trotter <ultrotter@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Guido Trotter [Wed, 9 Jan 2013 16:12:16 +0000 (17:12 +0100)]
Merge branch 'stable-2.6' into devel-2.6
* stable-2.6:
Add utility to format dictionary as key=value strings
Remove fixed FIXME
QA: Support master-netdev and default NIC parameters
QA: Do not pass "--bridge" to "gnt-cluster init"
Signed-off-by: Guido Trotter <ultrotter@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Michael Hanselmann [Thu, 20 Dec 2012 14:40:47 +0000 (15:40 +0100)]
Add utility to format dictionary as key=value strings
This will be used in QA to format network interface parameters.
This is a cherry-pick of master commit
eac9b7b8
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Michael Hanselmann [Tue, 8 Jan 2013 15:21:02 +0000 (16:21 +0100)]
More documentation and man page fixes
- Include numbers in man page references
- Use “:manpage:” where appropriate
- Don't escape underscore in verbatim text (e.g. “``always_failover``)
as it would show up in the generated man page
- Quote whole paths, not just build-time part
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Guido Trotter [Wed, 9 Jan 2013 15:15:40 +0000 (16:15 +0100)]
Remove fixed FIXME
This was fixed in stable-2.6, commit 053c356
Signed-off-by: Guido Trotter <ultrotter@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Guido Trotter [Wed, 9 Jan 2013 15:15:40 +0000 (16:15 +0100)]
Remove fixed FIXME
This was fixed in stable-2.6, commit 053c356
Signed-off-by: Guido Trotter <ultrotter@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Michael Hanselmann [Thu, 20 Dec 2012 14:46:06 +0000 (15:46 +0100)]
QA: Support master-netdev and default NIC parameters
Requested in issue 337.
The parameter “bridge” was not documented and is therefore silently
replaced with “master-netdev”. A note is added to “qa-sample.json”
describing how comments work.
This is a cherry-pick of master commit
3601d488464d85531a5a42c263ae2c021a8023c1
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Michael Hanselmann [Thu, 20 Dec 2012 14:21:39 +0000 (15:21 +0100)]
QA: Do not pass "--bridge" to "gnt-cluster init"
Commit ec0652a (June 2009) removed the option.
This is a cherry-pick of master commit
784537390cd5b1c4f5f8fb9401a62eb23acce39b
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Michael Hanselmann [Wed, 9 Jan 2013 11:56:06 +0000 (12:56 +0100)]
Makefile: Fix list of directories
Commit dbee5c9 had a wrong path.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Helga Velroyen <helgav@google.com>
Michael Hanselmann [Tue, 8 Jan 2013 13:26:26 +0000 (14:26 +0100)]
Highlight external links in HTML documentation
Based on MediaWiki's monobook skin.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Bernardo Dal Seno [Fri, 14 Dec 2012 01:30:19 +0000 (02:30 +0100)]
Unit tests for bdev and utils.lvm
Also amended a comment of a tested method.
The tests are for methods introduced in commit
63c73073 (LVM disk creation
uses dedicated PVs).
Signed-off-by: Bernardo Dal Seno <bdalseno@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Michele Tartara [Fri, 4 Jan 2013 16:48:35 +0000 (17:48 +0100)]
Update the monitoring agent design document
This commit updates the design document of the monitoring agent according
to what has already been discussed in various meetings and email threads.
Signed-off-by: Michele Tartara <mtartara@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Michele Tartara [Tue, 8 Jan 2013 12:45:08 +0000 (12:45 +0000)]
Support instance-minor pairing in the DRBD collector
This commits enables the DRBD data collector to use the Confd client to
gather information about the pairing between DRBD minors and instances.
For testing purposes, the DRBD data collector now requires either zero
or two parameters: one is the DRBD file, one is the pairings file.
When no parameter is passed, the collector is in "production mode" and takes
the data from /proc/drbd and from the Confd client.
The shell tests of mon-collector are updated accordingly.
Signed-off-by: Michele Tartara <mtartara@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Michele Tartara [Thu, 3 Jan 2013 15:49:01 +0000 (15:49 +0000)]
Support integrating instance information in the DRBD parser
This commit modifies the DRBD parser and its data structures to include
information about the instance a DRBD minor belongs to.
Test files have been updated as well, to support the new field in the data
structures.
Signed-off-by: Michele Tartara <mtartara@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Michael Hanselmann [Tue, 8 Jan 2013 14:24:20 +0000 (15:24 +0100)]
NEWS: Add missing parenthesis
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Michele Tartara <mtartara@google.com>
Michael Hanselmann [Tue, 8 Jan 2013 10:53:39 +0000 (11:53 +0100)]
Add footer.rst as a dependency for all man pages
Commit 6aff051 removed an intermediate step, but forgot to add
“footer.rst” as a direct dependency.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Yiannis Tsiouris [Sun, 30 Dec 2012 15:36:44 +0000 (17:36 +0200)]
Update name of test/htest in doc/devnotes.rst
Update the docs after the rename of 'test/hs/test' to
'test/hs/htest'. This must have been forgotten in
3e16567e.
Signed-off-by: Yiannis Tsiouris <gtsiour@softlab.ntua.gr>
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Iustin Pop [Sun, 30 Dec 2012 15:50:36 +0000 (16:50 +0100)]
Remove some obsolete entries from .gitignore
Found while doing the previous .dot file changes and wondering what's
this "doc/*.in" stuff… it looks like these were obsoleted over the
years by not paying attention on cleanup patches:
- doc/build: obsoleted by commit
13de7d59
- doc/*.in: obsoleted by commit
2ab2b9f5
- doc/html: was always a directory since its introduction in commit
d17e74b, mark it as so
- devel/clean-cluster: was introduced with initial .gitignore addition
(commit 7a47c58), but we don't actually generate it
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Iustin Pop [Mon, 31 Dec 2012 12:37:56 +0000 (13:37 +0100)]
Inline the standalone dot files
This removes entirely the standalone dot files by inlining them in the
RST documents - as they weren't referenced from more than one document
either way.
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Iustin Pop [Sun, 30 Dec 2012 15:42:07 +0000 (16:42 +0100)]
Stop manually building images out of dot files
The first dot files we added way back in the 2.0 release are managed
manually: we build the .pngs ourselves, track them in .gitingore,
etc. Since then, we have switched to allow sphinx to build/manage them
itself, so it makes sense to cleanup the build system and covert
everything to this simpler method.
This patch simply converts from "image: x.png" to "graphviz: x.dot",
as an externally-referenced dot file, and removes all the custom
makefile rules for png conversion. The next patch will bring the
conversion further (by inlining then).
Additionally, while checking that the patch doesn't change the html
output, I saw that the use of "shape=diamond" with non-trivial labels
results in very ugly diagrams; so we split the question in such
decision boxes to make them more reasonably looking.
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Iustin Pop [Sun, 30 Dec 2012 15:27:58 +0000 (16:27 +0100)]
Rearrange tags in gnt-cluster/gnt-node
This patch makes the gnt-cluster and gnt-node man page more consistent
with the other man pages, where the tag commands are listed in a
separate section at the end.
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Iustin Pop [Sun, 30 Dec 2012 15:19:47 +0000 (16:19 +0100)]
Enable a table of contents for the html version of man pages
This makes the (very dull) html version of the man pages a bit more
readable, until such a time that we can switch over to sphinx fully.
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Iustin Pop [Sun, 30 Dec 2012 15:06:08 +0000 (16:06 +0100)]
Remove intermediate footer.man/footer.html files
I don't remember why I introduced these when switching to pandoc, but
they are not absolutely needed. Instead of pre-generating them (which
might save some trivial cpu time), we can simply pass footer.rst as an
additional input file to pandoc.
The advantage in doing so is that semantic information is preserved;
when pre-generating and including them as-is, the entire structure is
lost, as pandoc won't reinterpret them, so things like a potential
table of contents will simply ignore the footer.
The patch also adds a new target to rebuild all man pages (both groff
and html formats), for testing changes to the pages easier.
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Iustin Pop [Sun, 30 Dec 2012 02:18:48 +0000 (03:18 +0100)]
Improve a bit Haskell library recommended versions
The hinotify library was missing any versions, and finding one that
works with ghc 6.12 (base 4.2.x) was not obvious. The
test-framework-quickcheck2 recommended version didn't actually work
with the test-framework version, so fix that as well.
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Iustin Pop [Sat, 29 Dec 2012 17:59:24 +0000 (18:59 +0100)]
Convert gnt-os man page to sections
As Constantinos observed, the gnt-os man page is not consistent with the
others. This patch adds the missing sections.
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Iustin Pop [Sat, 29 Dec 2012 11:09:31 +0000 (12:09 +0100)]
Fix "Tags" section capitalisation in the man pages
"Tags" is a section, not a command, so let's title-case it (as opposed
to all upper-case). Furthermore, the RST markup was wrong for the
gnt-network man page.
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Iustin Pop [Sat, 29 Dec 2012 11:02:10 +0000 (12:02 +0100)]
Fix a couple of bugs in the gnt-instance man page
The "list-fields" and "change-group" commands were mistakenly listed
as sections; we also rename the "Recovery" section to match better its
content.
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Michele Tartara [Tue, 8 Jan 2013 08:49:08 +0000 (08:49 +0000)]
Fix a bug in the generation of completion information
Completion information for multi-command binaries were not generated in
the correct way, so the build-bash-complation script failed when such a
binary was actually found.
This commit fixes this issue, and a related docstring typo as well.
Signed-off-by: Michele Tartara <mtartara@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Michael Hanselmann [Mon, 7 Jan 2013 16:59:12 +0000 (17:59 +0100)]
Add small webserver for development
When working on documentation it can be helpful to use a browser. In
some environments it's not possible to access the files directly from a
graphical browser. This trivial webserver exports all files in the
current directory and unlike alternatives such as thttpd, doesn't check
for world-readable permissions.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Michael Hanselmann [Mon, 7 Jan 2013 16:48:39 +0000 (17:48 +0100)]
man pages: Lowercase name for syntax highlighting
When the man pages' reST is built using Sphinx, “bash” must be used
instead of “Bash”. Pandoc works with both.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Michael Hanselmann [Mon, 7 Jan 2013 15:03:05 +0000 (16:03 +0100)]
Add "use_locking" parameter to network query opcode
This was extracted from a patch by Dimitris Aragiorgis with the subject
“Add locking to _NetworkQuery”. The rest of the patch did no longer
apply and will require more work.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Michael Hanselmann [Mon, 7 Jan 2013 13:56:24 +0000 (14:56 +0100)]
Makefile.am: Add missing space
Commit acaf3ca missed this space before a backslash.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Michele Tartara [Fri, 4 Jan 2013 09:45:51 +0000 (09:45 +0000)]
Fix the installation location of mon-collector
The mon-collector binary was erroneously installed twice: once in
/usr/bin/ and once in /usr/lib/ganeti/.
With this modification, it is now installed in /usr/lib/ganeti/ only,
as intended.
In order to do this in a proper way, some parts of the Makefile.am where
refactored.
Signed-off-by: Michele Tartara <mtartara@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Michele Tartara [Thu, 3 Jan 2013 15:36:56 +0000 (16:36 +0100)]
Improve the reception of replies in the confd client
If a received reply is valid and there is still no valid reply,
keep it, no matter how new it is.
Signed-off-by: Michele Tartara <mtartara@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Constantinos Venetsanopoulos [Fri, 28 Dec 2012 14:19:00 +0000 (16:19 +0200)]
Document the ExtStorage `SetInfo' functionality
Small updates to the extstorage design document and interface.
Signed-off-by: Constantinos Venetsanopoulos <cven@grnet.gr>
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Constantinos Venetsanopoulos [Fri, 28 Dec 2012 14:29:43 +0000 (16:29 +0200)]
gnt-storage man page: make commands sub-sections
This makes the man page more consistent with the others (except
gnt-os, that is).
Signed-off-by: Constantinos Venetsanopoulos <cven@grnet.gr>
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Iustin Pop [Thu, 27 Dec 2012 14:59:38 +0000 (15:59 +0100)]
Fix a bad data type in Hcheck.hs
While trying to understand why some code was not being tested, I
realised that we have a bad data type in Hcheck.hs.
We have "data Level = GroupLvl | ClusterLvl", but then we need to pass
the group name/index as well, so we have functions that look like the
following:
f :: Level -> Maybe String -> …
f GroupLvl (Just gname) = …
f GroupLvl Nothing = … -- never used
f ClusterLvl _ = … -- wrong, since a (Just x) could be passed
It's clear that we just need to move the group name in the "GroupLvl"
constructor, and simplify the call chain.
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Iustin Pop [Thu, 27 Dec 2012 14:06:11 +0000 (15:06 +0100)]
Move src/Ganeti/HTools/Program.hs to Program/Main.hs
This removes one more tab conflict; this is the last module in our
code where we have both x.hs and x/.
Furthermore, we collapse all actual code into the new Main.hs module,
leaving the htools.hs basically empty (will allow better testing in
the future).
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Iustin Pop [Wed, 26 Dec 2012 14:01:21 +0000 (15:01 +0100)]
A bit more name cleanup
- gen-coverage → gen-py-coverage
- coverage-htools.tix → coverage-hs.tix
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Iustin Pop [Wed, 26 Dec 2012 13:19:54 +0000 (14:19 +0100)]
Split the hs-check test rule
Currently, both the unit test and the shell tests are run (manually)
from this rule. This has two downsides: you can't (compile and) run
just one of them easily, and make can't run them in parallel.
By splitting the rules, we can both of the above easily.
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Iustin Pop [Wed, 26 Dec 2012 12:52:24 +0000 (13:52 +0100)]
Remove duplicate test file functions
This patch unifies the functions that generated the tree
reorganisation discussion in the first place :)
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Iustin Pop [Wed, 26 Dec 2012 12:43:30 +0000 (13:43 +0100)]
Rename test/hs/test to htest
The current base name of 'test' means that this binary will generate
profiling, coverage, etc. files with the name 'test.*', result in
tab-completion conflicts with the test directory. Let's slightly
change its base name for typing easiness.
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Iustin Pop [Wed, 26 Dec 2012 12:36:03 +0000 (13:36 +0100)]
Move htest/ files under the test/ tree
htest/data becomes test/data/htools (basically reverting commit
8feabc89), and htest/* becomes test/hs/*.
Most changes beside the rename are trivial s/…/…, with the exception
of autotools/run-in-tempdir, which needed some more changes now that
test/ is not just Python files:
- test/py is still being copied
- test/hs moves from individual symlinks to entire dir symlink
- test/data is symlinked in its entirety
Checked with make distcheck, pep8 and pylint, so at least VPATH builds
are OK.
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Iustin Pop [Tue, 25 Dec 2012 23:15:05 +0000 (00:15 +0100)]
Move python test files to test/py
This is the first step of the test files reorganisation: moving test/*
(except test/data) to new directory test/py/.
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Iustin Pop [Wed, 26 Dec 2012 12:10:23 +0000 (13:10 +0100)]
Return master ip script output in case of failure
Currently only the exit code is returned, which is somewhat pointless:
for failures, we already know it's ≠ 0, so we don't have enough
information (reported on the mailing list). By logging the output as
well (if any), the user will have more information available for
debugging.
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Iustin Pop [Tue, 25 Dec 2012 19:18:14 +0000 (20:18 +0100)]
Replace htools→hs in configure/makefile rules
This continues the cleanup of the 'htools' name, by replacing 'htools'
with 'hs' in configure and makefile rules.
There is still 'WANT_HTOOLS' left as it is correct, but some of the
conditionals in Makefile.am will need some cleanup (in a different
patch).
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Iustin Pop [Mon, 24 Dec 2012 22:16:05 +0000 (23:16 +0100)]
Fix LUInstanceRecreateDisks with iallocator
Recent iallocator changes (commit
fb60bc6a, “iallocator: Add node
whitelist”) broke the parameter validation for LUInstanceRecreateDisks
(the other LUs were manually fixed already):
$ gnt-instance recreate-disks -I hail --dry-run instance3
Failure: prerequisites not met for this operation:
error type: wrong_input, error details:
Request is missing 'node_whitelist' parameter
By just defining the new parameter, the LU works normally (“INFO:
Selected nodes for instance instance3 via iallocator hail: node2”).
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Iustin Pop [Mon, 24 Dec 2012 21:56:09 +0000 (22:56 +0100)]
Fix dependency on built python sources for hs-check
Since we call into Python for opcodes and other type compatibility
checks, we need to ensure that the python sources are
built. Otherwise, full parallel make might or might not break,
depending on timing.
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Iustin Pop [Mon, 24 Dec 2012 16:51:17 +0000 (17:51 +0100)]
Rename htools/ to src/
Per offline discussions, this is the first patch of the
renames. Tested with "make distcheck", seems to work fine.
The only change outside of the renaming is a bit of simplification in
the .gitignore rules; otherwise, simply s/htools/src/.
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Iustin Pop [Sat, 22 Dec 2012 00:19:37 +0000 (01:19 +0100)]
Optimise autotools/run-in-tempdir
I made a mistake when adding support for htools to run-in-tempdir, by
needlessly copying the htools binaries, when it's enough to link
them. The copying is only really needed for python code, so we change
the Haskell binaries to linking and also a few other directories.
Difference:
- before: 0.8s, 95MB copied
- after: 0.6s, 6.2MB copied
And, by the way, can't wait for Python 2.6 as minimum supported
version…
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Iustin Pop [Sat, 22 Dec 2012 16:52:15 +0000 (17:52 +0100)]
Fix building of Constants.hs w.r.t .pyc files
Unless this is run under run-in-tempdir, it will create as usual the
.pyc files.
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Constantinos Venetsanopoulos [Fri, 30 Mar 2012 08:41:37 +0000 (11:41 +0300)]
Add ExtStorage related man pages
* ganeti-extstorage-interface man page
* gnt-storage man page
Signed-off-by: Constantinos Venetsanopoulos <cven@grnet.gr>
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Constantinos Venetsanopoulos [Wed, 28 Mar 2012 09:32:56 +0000 (12:32 +0300)]
Add the gnt-storage client
Add a new client called 'gnt-storage'.
The client interacts with the ExtStorage interface, similarly to
the way gnt-os interacts with the OS interface.
For now, only two commands are supported: 'info' and 'diagnose'.
'diagnose' calculates the node status of each provider on each node,
similarly to gnt-os diagnose. Furthermore, for every provider, it
calculates it's nodegroup validity for each nodegroup. This is done
inside the LU and not the client (marked as 'TODO' for the global
validity of gnt-os diagnose).
In the future, gnt-storage can be used to manage storage pools,
or even be extended to diagnose other storage types supported by
Ganeti, such as lvm, drbd (INT_MIRROR) or rbd (EXT_MIRROR).
Signed-off-by: Constantinos Venetsanopoulos <cven@grnet.gr>
Signed-off-by: Iustin Pop <iustin@google.com>
[iustin@google.com: fixed Haskell compatibility and style fixes]
Reviewed-by: Iustin Pop <iustin@google.com>
Iustin Pop [Fri, 21 Dec 2012 16:34:17 +0000 (17:34 +0100)]
Extend the hcheck shell tests
This adds a few new hcheck tests, to extend the coverage.
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Iustin Pop [Fri, 21 Dec 2012 16:14:20 +0000 (17:14 +0100)]
Extend the hbal shell tests
After this patch, almost all of hbal except the actual Luxi execution
is being covered by unit- or shelltests.
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Iustin Pop [Fri, 21 Dec 2012 19:25:13 +0000 (20:25 +0100)]
Merge branch 'devel-2.6'
* devel-2.6:
Final update of NEWS file for 2.6.2 and version bump
Fix job completion with big job queues
confd: reduce noise during normal config reload
Change hbal handling of !auto_balance instances
Small corrections in man pages
Fix gnt-instance(8) w.r.t. growable disk templates
Stop verifying opcode results in dry_run mode
Update NEWS for 2.6.2
Fix TypeError when unsetting OS parameters
cmdlib.py: don't use GetHypervisor
Conflicts:
NEWS (trivial, integrated the 2.6.2 news)
autotools/build-bash-completion (trivial: pathutils)
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Bernardo Dal Seno <bdalseno@google.com>
Iustin Pop [Fri, 21 Dec 2012 18:25:46 +0000 (19:25 +0100)]
Fix build breakage after exclusive storage commits
This fixes:
htest/Test/Ganeti/Rpc.hs:50:14:
Couldn't match expected type `Rpc.RpcCallNodeInfo'
against inferred type `Data.Map.Map String Bool
-> Rpc.RpcCallNodeInfo'
In the first argument of `(<$>)', namely `Rpc.RpcCallNodeInfo'
In the first argument of `(<*>)', namely
`Rpc.RpcCallNodeInfo <$> arbitrary'
by adding the new parameter (empty map for now), and also:
ganeti/constants.py:432:5: E123 closing bracket does not match
indentation of opening bracket's line
By switching to 2-char indentation and (for consistency) also replaces
frozenset(…) with our unique checker (UniqueFrozenset).
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Bernardo Dal Seno <bdalseno@google.com>
Iustin Pop [Fri, 21 Dec 2012 17:50:21 +0000 (18:50 +0100)]
Merge branch 'stable-2.6' into devel-2.6
No conflicts, really trivial.
* stable-2.6:
Final update of NEWS file for 2.6.2 and version bump
Fix job completion with big job queues
confd: reduce noise during normal config reload
Change hbal handling of !auto_balance instances
Small corrections in man pages
Fix gnt-instance(8) w.r.t. growable disk templates
Stop verifying opcode results in dry_run mode
Update NEWS for 2.6.2
Fix TypeError when unsetting OS parameters
cmdlib.py: don't use GetHypervisor
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Bernardo Dal Seno [Thu, 29 Nov 2012 18:35:31 +0000 (19:35 +0100)]
LUs raise an error if they cannot handle exclusive_storage
This happens when the exclusive_storage flag is set, and the requested
operation is incompatible with the flag or not yet supported.
Signed-off-by: Bernardo Dal Seno <bdalseno@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Bernardo Dal Seno [Fri, 7 Dec 2012 18:17:00 +0000 (19:17 +0100)]
Refactor checks for a new template in LUInstanceSetParams
All the checks have been moved to a private method, so as to make
CheckPrereq() smaller and more readable (pylint was complaining about it).
Signed-off-by: Bernardo Dal Seno <bdalseno@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Bernardo Dal Seno [Wed, 28 Nov 2012 12:47:41 +0000 (13:47 +0100)]
Free disk space reporting follows exclusive storage rules
When exclusive_storage is set, nodes report only the space that could be
used to create new disk according to the rules set in the
design-partitioned doc (i.e., non-empty disks are ignored and the space
reserved for rounding/overhead is not reported).
Signed-off-by: Bernardo Dal Seno <bdalseno@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Bernardo Dal Seno [Mon, 10 Dec 2012 22:27:03 +0000 (23:27 +0100)]
Call node_info RPCs with the exclusive_storage flag
The flag is read from the configuration and passed to the RPC.
Signed-off-by: Bernardo Dal Seno <bdalseno@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Bernardo Dal Seno [Mon, 10 Dec 2012 03:30:03 +0000 (04:30 +0100)]
Add exclusive_storage parameter to node_info RPC
The flag is passed to the low-level functions that need it, but it's not
yet used. Also, RPCs get just a default value for now.
Signed-off-by: Bernardo Dal Seno <bdalseno@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Michael Hanselmann [Thu, 20 Dec 2012 14:46:06 +0000 (15:46 +0100)]
QA: Support master-netdev and default NIC parameters
Requested in issue 337.
The parameter “bridge” was not documented and is therefore silently
replaced with “master-netdev”. A note is added to “qa-sample.json”
describing how comments work.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Michael Hanselmann [Thu, 20 Dec 2012 14:21:39 +0000 (15:21 +0100)]
QA: Do not pass "--bridge" to "gnt-cluster init"
Commit ec0652a (June 2009) removed the option.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Michael Hanselmann [Fri, 21 Dec 2012 13:44:52 +0000 (14:44 +0100)]
gnt-* list-fields: Show friendly field type
For people writing query filters (documented in ganeti(7)) knowing a field's
type can be useful.
$ gnt-instance list-fields name be/memory
Name Type Title Description
name Text Instance Instance name
be/memory Storage size ConfigMaxMem The "maxmem" backend parameter
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Iustin Pop [Fri, 21 Dec 2012 11:56:59 +0000 (12:56 +0100)]
Fix build after addition of 'empty-cluster.data'
Of course I forgot to add this to TEST_FILES… and only distcheck
catches it.
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Michele Tartara <mtartara@google.com>
Michael Hanselmann [Fri, 21 Dec 2012 13:26:20 +0000 (14:26 +0100)]
Improve assertion message in LUClusterVerifyGroup
In issue 240 this assertion fails. While reproducing was not possible
with the master branch, having a more verbose message can't hurt.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Michael Hanselmann [Thu, 20 Dec 2012 13:09:09 +0000 (14:09 +0100)]
gnt-network(8): Reorder commands
Hiding the “connect” and “disconnect” commands below the tag operations
isn't good. The same is done in “gnt-instance.rst”.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Michael Hanselmann [Thu, 20 Dec 2012 13:08:24 +0000 (14:08 +0100)]
gnt-network(8): Re-add editor settings and re-wrap
Commit a04cc7a added “gnt-network.rst”, but didn't copy the editor
settings from another reST file.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Bernardo Dal Seno [Wed, 21 Nov 2012 19:37:00 +0000 (20:37 +0100)]
LVM disk creation uses dedicated PVs
When exclusive_storage is set, PVs are allocated according to the
design-partitioned design doc.
Signed-off-by: Bernardo Dal Seno <bdalseno@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Bernardo Dal Seno [Mon, 10 Dec 2012 22:12:39 +0000 (23:12 +0100)]
Call blockdev_create RPCs with the exclusive_storage flag
The flag is read from the configuration and passed to the RPC.
Signed-off-by: Bernardo Dal Seno <bdalseno@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Bernardo Dal Seno [Mon, 10 Dec 2012 01:12:26 +0000 (02:12 +0100)]
Add exclusive_storage parameter to blockdev_create RPC
The flag is passed to the low-level functions that need it, but it's not
yet used.
Signed-off-by: Bernardo Dal Seno <bdalseno@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Bernardo Dal Seno [Wed, 21 Nov 2012 13:32:31 +0000 (14:32 +0100)]
Added class to contain information about a PV
This makes the code more readable and easier to upgrade.
bdev.LogicalVolume.GetPVInfo and the code that depends on it have been
refactored to use the new class.
utils.CheckVolumeGroupSize() has been moved to lib/utils/lvm.py, where more
functions will be added.
Signed-off-by: Bernardo Dal Seno <bdalseno@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Iustin Pop [Thu, 20 Dec 2012 18:52:07 +0000 (19:52 +0100)]
Add htest/hroller to .gitignore
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Iustin Pop [Thu, 20 Dec 2012 18:52:06 +0000 (19:52 +0100)]
Extend hroller shell tests
Currently only --help and --version are tested; the patch extends this
with testing parsing of an empty cluster, of a cluster with one group,
and other command line behaviours.
It also adds testing for --help-completion for all htools binaries.
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Michele Tartara [Fri, 21 Dec 2012 10:11:03 +0000 (10:11 +0000)]
Silence erroneous hlint warning
This patch adds an ignore for an hlint warning that wants camelcase to be used
in the name of a "case" test.
But if camelcase is used, it is not a valid test name anymore.
Signed-off-by: Michele Tartara <mtartara@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Michael Hanselmann [Thu, 20 Dec 2012 12:57:20 +0000 (13:57 +0100)]
opcodes: Common parameter for target groups
Also add a missing parenthesis at the end.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Michael Hanselmann [Thu, 20 Dec 2012 13:06:26 +0000 (14:06 +0100)]
gnt-network: Fix CLI issues with node groups
The original implementation reserved the name “all” to specify all node
groups. That would prevent the use of a node group actually named “all”.
This patch changes the order and definition of the command line
arguments for “gnt-network connect” and “… disconnect” to have the
group(s) as the last argument(s). If no groups are specified all groups
are used.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Michael Hanselmann [Thu, 20 Dec 2012 13:08:47 +0000 (14:08 +0100)]
gnt-network(8): Remove "rename"
It is not implemented after all.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Michael Hanselmann [Thu, 20 Dec 2012 11:28:54 +0000 (12:28 +0100)]
gnt-network CLI improvements
- Use unpacking instead of addressing indivdual list items
- Add “--submit” and “--priority” support where possible
- Re-use LUXI client where possible
- Fixed some typos
There is still an issue that a node group named “all” can not be
connected or disconnected. More changes are needed for that.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Michael Hanselmann [Thu, 20 Dec 2012 11:01:24 +0000 (12:01 +0100)]
Improve network query algorithm
Similar to commit 572a277. Directly iterate over “self.wanted” instead
of iterating through all networks and checking if they're wanted.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Michael Hanselmann [Thu, 20 Dec 2012 11:01:08 +0000 (12:01 +0100)]
Change network error text
This error is thrown if a network name already exists, not if the
network itself (e.g. “1.2.3.0/24”) is defined.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Michael Hanselmann [Thu, 20 Dec 2012 11:00:44 +0000 (12:00 +0100)]
Format network field "group_list" in client
The field is now a list of tuples containing the group name, mode and
link.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Dimitris Aragiorgis [Thu, 20 Dec 2012 14:16:39 +0000 (16:16 +0200)]
Fix iallocator for nodegroups with no tags
_ComputeNodeGroupData() raises error if a group has no tags
when list(gdata.tags) is invoked. Use “gdata.GetTags()” instead.
Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Iustin Pop [Thu, 20 Dec 2012 16:29:46 +0000 (17:29 +0100)]
Replace custom strip newlines in UUID generation
Since now rStripSpace lives in Utils.hs, we can use it directly (as
UUIDs shouldn't contain spaces anyway).
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Michele Tartara <mtartara@google.com>
Michele Tartara [Fri, 14 Dec 2012 14:32:34 +0000 (14:32 +0000)]
Add Confd client to the Haskell code base
The client queries all the master candidates in parallel, until the minimum
number of replies, defined in the constant file, is received.
A timeout prevents the waiting from being of indefinite length.
The reply to be returned to the function that made the query is decided
according to the Confd design document.
Signed-off-by: Michele Tartara <mtartara@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Michele Tartara [Tue, 18 Dec 2012 14:51:09 +0000 (14:51 +0000)]
Add function to fetch the list of master candidates
This commits adds to the Haskell codebase a function to fetch the list of
IPs of the master candidates from the SSConf database.
Signed-off-by: Michele Tartara <mtartara@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Michele Tartara [Mon, 17 Dec 2012 16:10:28 +0000 (16:10 +0000)]
Add the parseReply function to the Confd utils
This function will be used by the Haskell Confd client to parse the replies
it receives from the server.
Unit test is included as well.
Signed-off-by: Michele Tartara <mtartara@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Michele Tartara [Mon, 17 Dec 2012 14:51:11 +0000 (14:51 +0000)]
Rename the Confd utils parseMessage function to parseRequest
With the upcoming implementation of the Haskell Confd client, requests will
no longer be the only kind of message to be parsed, therefore the parsing
function for requests is being renamed to be more specific, and to better fit
with the upcoming parseReply.
Signed-off-by: Michele Tartara <mtartara@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Michele Tartara [Mon, 17 Dec 2012 14:34:17 +0000 (15:34 +0100)]
Make the parseRequest function more general
The parseRequest function of the Confd utils can be used to parse both request
(in the server) and reply (in the client, soon to be implemented) signed
messages.
This patch changes the signature of the function to allow this, and its name
accordingly.
A unit test is updated as well.
Signed-off-by: Michele Tartara <mtartara@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Michele Tartara [Thu, 20 Dec 2012 09:03:15 +0000 (09:03 +0000)]
Add function for generating UUIDs in the Haskell codebase
Its first use will be to generate the salt for ConfD requests of the Haskell
client, as in the Python client.
Unit test added as well.
Signed-off-by: Michele Tartara <mtartara@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Michele Tartara [Tue, 11 Dec 2012 11:11:12 +0000 (12:11 +0100)]
Move Confd getCurrentTime to Utils
The Confd server implementation has a getCurrentTime function.
This commit moves it to the Utils.hs file of Confd, so that it will be
available to be used by the future Confd client as well.
Signed-off-by: Michele Tartara <mtartara@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Iustin Pop [Thu, 20 Dec 2012 15:43:38 +0000 (16:43 +0100)]
Fixup too-long-line in Objects.hs
Sorry, didn't see this before pushing the previous commit (
277a2ec9).
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Constantinos Venetsanopoulos [Fri, 7 Sep 2012 10:15:40 +0000 (13:15 +0300)]
ExtStorage support in htools
This just adds new constructors for the disk template and related
types, enabling the Ext storage.
Signed-off-by: Constantinos Venetsanopoulos <cven@grnet.gr>
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>