ganeti-github.git
4 years agoChange gnt version suffix from alpha1 to beta1 v2.16.0beta1
BSRK Aditya [Tue, 28 Jul 2015 08:57:48 +0000 (10:57 +0200)]
Change gnt version suffix from alpha1 to beta1

Signed-off-by: BSRK Aditya <bsrk@google.com>
Signed-off-by: Klaus Aehlig <aehlig@google.com>
Reviewed-by: Klaus Aehlig <aehlig@google.com>

4 years agoEntered the date for 2.16 beta1 release in NEWS
BSRK Aditya [Tue, 28 Jul 2015 08:57:47 +0000 (10:57 +0200)]
Entered the date for 2.16 beta1 release in NEWS

Signed-off-by: BSRK Aditya <bsrk@google.com>
Signed-off-by: Klaus Aehlig <aehlig@google.com>
Reviewed-by: Klaus Aehlig <aehlig@google.com>

4 years agoDocument changes in allocation strategy
Klaus Aehlig [Mon, 27 Jul 2015 12:54:26 +0000 (14:54 +0200)]
Document changes in allocation strategy

As hail's preference for groups changes, document it as an incompatible
change.

Signed-off-by: Klaus Aehlig <aehlig@google.com>
Reviewed-by: Petr Pudlak <pudlak@google.com>

4 years agoIn multi-group allocation think about the whole cluster
Klaus Aehlig [Mon, 27 Jul 2015 12:45:43 +0000 (14:45 +0200)]
In multi-group allocation think about the whole cluster

When choosing a group for allocating a new instance, not only
consider how balanced the group of the new instance would be,
but look at the overall balancedness of the cluster.

The net effect of this change is that hail will prefer the most
empty group and not (as it is now) the most balanced node group.
This will keep the overall cluster more balanced.

Signed-off-by: Klaus Aehlig <aehlig@google.com>
Reviewed-by: Petr Pudlak <pudlak@google.com>

4 years agoMerge branch 'stable-2.15' into stable-2.16
Klaus Aehlig [Mon, 27 Jul 2015 12:19:05 +0000 (14:19 +0200)]
Merge branch 'stable-2.15' into stable-2.16

* stable-2.15
  Fix rollover condition in xenload

* stable-2.14
  Revert 2.12-specific downgrade action on 2.14

* stable-2.13
  Add ``--no-ssh-key-check`` to manpage of renew-crypto
  Redistribute master key on downgrade
  Use ssconf port map when handling SSH keys
  Make node_daemon_setup use common functions
  Add docstring to certificate verification

* stable-2.12
  Also provide default arguments for mond
  Support sphinx 1.3
  Make documentation for -H serial_console more explicit

* stable-2.11
  (no changes)

* stable-2.10
  Fix typo in secondary
  When hinting to do gnt-instance info, show the instance
  Update gnt-network example in admin page

Signed-off-by: Klaus Aehlig <aehlig@google.com>
Reviewed-by: Petr Pudlak <pudlak@google.com>

4 years agoMerge branch 'stable-2.14' into stable-2.15
Klaus Aehlig [Mon, 27 Jul 2015 09:07:36 +0000 (11:07 +0200)]
Merge branch 'stable-2.14' into stable-2.15

* stable-2.14
  Revert 2.12-specific downgrade action on 2.14

* stable-2.13
  Add ``--no-ssh-key-check`` to manpage of renew-crypto
  Redistribute master key on downgrade
  Use ssconf port map when handling SSH keys
  Make node_daemon_setup use common functions
  Add docstring to certificate verification

* stable-2.12
  Also provide default arguments for mond
  Support sphinx 1.3
  Make documentation for -H serial_console more explicit

* stable-2.11
  (no changes)

* stable-2.10
  Fix typo in secondary
  When hinting to do gnt-instance info, show the instance
  Update gnt-network example in admin page

Signed-off-by: Klaus Aehlig <aehlig@google.com>
Reviewed-by: Petr Pudlak <pudlak@google.com>

4 years agoRevert 2.12-specific downgrade action on 2.14
Klaus Aehlig [Fri, 24 Jul 2015 16:02:16 +0000 (18:02 +0200)]
Revert 2.12-specific downgrade action on 2.14

Commit 930cbbd introduced an action (reunifying nodes'
SSH keys) specific to the downgrade from 2.13 to 2.12.
By means of merge, this change accidentally made it into
2.13 (as it was conflict-free on a textual level). Undo
this now, as 2.13 does have individual ssh keys.

Signed-off-by: Klaus Aehlig <aehlig@google.com>
Reviewed-by: Hrvoje Ribicic <riba@google.com>

4 years agoMerge branch 'stable-2.13' into stable-2.14
Klaus Aehlig [Fri, 24 Jul 2015 12:22:21 +0000 (14:22 +0200)]
Merge branch 'stable-2.13' into stable-2.14

* stable-2.13
  Add ``--no-ssh-key-check`` to manpage of renew-crypto
  Redistribute master key on downgrade
  Use ssconf port map when handling SSH keys
  Make node_daemon_setup use common functions
  Add docstring to certificate verification

* stable-2.12
  Also provide default arguments for mond
  Support sphinx 1.3
  Make documentation for -H serial_console more explicit

* stable-2.11
  (no changes)

* stable-2.10
  Fix typo in secondary
  When hinting to do gnt-instance info, show the instance
  Update gnt-network example in admin page

Conflicts:
lib/cmdlib/cluster/verify.py: follow code move

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

4 years agoFix rollover condition in xenload
Klaus Aehlig [Fri, 24 Jul 2015 11:25:25 +0000 (13:25 +0200)]
Fix rollover condition in xenload

The Xen CPU data collector gets as raw data accumulated CPU usage
since an arbitrary start date. If the value gets too large, the
counter rolls over. The XenCpuLoad collector is aware of this
happening and adjusts the observed values accordingly. However,
the condition for detecting a rollover was wrong: on an rollover,
the value strictly goes down. The value can stay the same over
an interval, e.g., for very idle guests; not that the accuracy
of the reported accumulated value can be as coarse as a whole
CPU second.

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

4 years agoMerge branch 'stable-2.12' into stable-2.13
Klaus Aehlig [Fri, 24 Jul 2015 11:01:53 +0000 (13:01 +0200)]
Merge branch 'stable-2.12' into stable-2.13

* stable-2.12
  Also provide default arguments for mond
  Support sphinx 1.3
  Make documentation for -H serial_console more explicit

* stable-2.11
  (no changes)

* stable-2.10
  Fix typo in secondary
  When hinting to do gnt-instance info, show the instance
  Update gnt-network example in admin page

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

4 years agoAlso provide default arguments for mond
Klaus Aehlig [Fri, 24 Jul 2015 10:38:41 +0000 (12:38 +0200)]
Also provide default arguments for mond

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

4 years agoMerge branch 'stable-2.11' into stable-2.12
Klaus Aehlig [Fri, 24 Jul 2015 09:17:09 +0000 (11:17 +0200)]
Merge branch 'stable-2.11' into stable-2.12

* stable-2.11
  (no changes)

* stable-2.10
  Fix typo in secondary
  When hinting to do gnt-instance info, show the instance
  Update gnt-network example in admin page

Conflicts:
lib/cmdlib/instance_storage.py: trivial

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

4 years agoMerge branch 'stable-2.10' into stable-2.11
Klaus Aehlig [Thu, 23 Jul 2015 17:22:39 +0000 (19:22 +0200)]
Merge branch 'stable-2.10' into stable-2.11

* stable-2.10
  Fix typo in secondary
  When hinting to do gnt-instance info, show the instance
  Update gnt-network example in admin page

Signed-off-by: Klaus Aehlig <aehlig@google.com>
Reviewed-by: Hrvoje Ribicic <riba@google.com>

4 years agoFix typo in secondary
Thomas Vander Stichele [Tue, 21 Jul 2015 08:33:50 +0000 (10:33 +0200)]
Fix typo in secondary

Signed-off-by: Thomas Vander Stichele <thomasvs@google.com>
Signed-off-by: Klaus Aehlig <aehlig@google.com>
Reviewed-by: Klaus Aehlig <aehlig@google.com>

4 years agoWhen hinting to do gnt-instance info, show the instance
Thomas Vander Stichele [Mon, 20 Jul 2015 20:24:59 +0000 (16:24 -0400)]
When hinting to do gnt-instance info, show the instance

Signed-off-by: Thomas Vander Stichele <thomasvs@google.com>
Signed-off-by: Klaus Aehlig <aehlig@google.com>
Reviewed-by: Klaus Aehlig <aehlig@google.com>

4 years agoAdd ``--no-ssh-key-check`` to manpage of renew-crypto
Helga Velroyen [Wed, 22 Jul 2015 09:23:40 +0000 (11:23 +0200)]
Add ``--no-ssh-key-check`` to manpage of renew-crypto

The option was implemented a while ago, but was missing
in the man page of gnt-cluster renew-crypto so far.

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

4 years agoUpdate gnt-network example in admin page
Klaus Aehlig [Thu, 23 Jul 2015 10:38:14 +0000 (12:38 +0200)]
Update gnt-network example in admin page

Commit 2243b133 changed the syntax of the gnt-network command.
Mode and link are no longer passed as positional arguments, but
instead as named parameters in the --nic-parameters option.
However, the example in the admin page was not updated. Do this
now.

Signed-off-by: Klaus Aehlig <aehlig@google.com>
Reviewed-by: Hrvoje Ribicic <riba@google.com>

4 years agoFix rst markup in design-2.16.rst
Klaus Aehlig [Wed, 22 Jul 2015 14:21:49 +0000 (16:21 +0200)]
Fix rst markup in design-2.16.rst

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

4 years agoSupport sphinx 1.3
Klaus Aehlig [Tue, 21 Jul 2015 10:46:57 +0000 (12:46 +0200)]
Support sphinx 1.3

First, enable_manpages is now required to be a bool; fortunately,
we set it via the environment in conf.py anyway, so no need to
pass it as an option as well. Also, the default template has been
renamed to classic; so branch on the sphinx version to choose the
correct name. Fixes issue #1119.

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

4 years agoMake documentation for -H serial_console more explicit
Lisa Velden [Tue, 21 Jul 2015 12:34:42 +0000 (14:34 +0200)]
Make documentation for -H serial_console more explicit

Mention that apart from enabling the emulation of a serial port in KVM
"console=ttyS0,<serial_speed>" is appended to the end of kernel_args.

Signed-off-by: Lisa Velden <velden@google.com>
Reviewed-by: Klaus Aehlig <aehlig@google.com>

4 years agoUpdate documentation versions for 2.16 release
BSRK Aditya [Tue, 21 Jul 2015 11:07:11 +0000 (13:07 +0200)]
Update documentation versions for 2.16 release

Also added doc/design-2.16.rst, which lists the
designs that were implemented or partially implemented.

Also updated NEWS file.

Signed-off-by: BSRK Aditya <bsrk@google.com>
Signed-off-by: Klaus Aehlig <aehlig@google.com>
Reviewed-by: Klaus Aehlig <aehlig@google.com>

4 years agoRedistribute master key on downgrade
Helga Velroyen [Fri, 17 Jul 2015 13:03:43 +0000 (15:03 +0200)]
Redistribute master key on downgrade

When downgrading from 2.13 to 2.12, the SSH key pair of
each node needs to be replaced by the master's SSH key
pair. If that is not done, any node added after the
downgrade will not be reachable if the master is failed
over to one of the original non-master nodes.

This patch fixes Issue 1008. However, what is not cleaned
up is the nodes' authorized_keys file. This will need
significantly more effort, but this patch at least fixes
the user-impacting issue.

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

4 years agoUse ssconf port map when handling SSH keys
Helga Velroyen [Fri, 17 Jul 2015 07:53:19 +0000 (09:53 +0200)]
Use ssconf port map when handling SSH keys

Recently, the SSH port information was added to ssconf
file. This patch makes use of it when adding, removing,
or renewing SSH keys. The main benefit of it is to reduce
the signature of the backend functions and thus the RPC
load.

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

4 years agoMake node_daemon_setup use common functions
Helga Velroyen [Fri, 17 Jul 2015 07:44:12 +0000 (09:44 +0200)]
Make node_daemon_setup use common functions

This patch makes the node_daemon_setup tool use some of
the recently introduced functions in the tools/common.py.
By doing that, this also cleans up the correct usage of
cluster name constants.

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

4 years agoAdd docstring to certificate verification
Helga Velroyen [Fri, 17 Jul 2015 07:35:40 +0000 (09:35 +0200)]
Add docstring to certificate verification

This adds a bit of documentation to one of the
certificate verification methods to distinguish
them better. This got only apparent after the
merge of 2.12 to 2.13.

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

5 years agoMerge branch 'stable-2.15' into stable-2.16
Klaus Aehlig [Thu, 16 Jul 2015 13:43:58 +0000 (15:43 +0200)]
Merge branch 'stable-2.15' into stable-2.16

* stable-2.15
  (no changes)

* stable-2.14
  Do not version generate file tools/ssl-update
  Revision bump for 2.14.1
  Update NEWS for 2.14.1

* stable-2.13
  NEWS: move 2.13.0 beta/rc to their place
  Document data collector options
  Correct NEWS file entry
  Revision bump for 2.13.2
  Update the NEWS file for 2.13.2

* stable-2.12
  Bugfix in checkInstanceMove function in Cluster.hs
  Revision bump for 2.12.5
  Update the NEWS file for 2.12.5
  Update Xen documentation in install.rst
  Clarify need for the migration_port Xen param

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

5 years agoMerge branch 'stable-2.14' into stable-2.15
Klaus Aehlig [Thu, 16 Jul 2015 12:36:36 +0000 (14:36 +0200)]
Merge branch 'stable-2.14' into stable-2.15

* stable-2.14
  Do not version generate file tools/ssl-update
  Revision bump for 2.14.1
  Update NEWS for 2.14.1

* stable-2.13
  NEWS: move 2.13.0 beta/rc to their place
  Document data collector options
  Correct NEWS file entry
  Revision bump for 2.13.2
  Update the NEWS file for 2.13.2

* stable-2.12
  Bugfix in checkInstanceMove function in Cluster.hs
  Revision bump for 2.12.5
  Update the NEWS file for 2.12.5
  Update Xen documentation in install.rst
  Clarify need for the migration_port Xen param

Conflicts:
NEWS: take all additions
configure.ac: keep all version information
    from stable-2.15

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

5 years agoMerge branch 'stable-2.13' into stable-2.14
Klaus Aehlig [Thu, 16 Jul 2015 10:46:45 +0000 (12:46 +0200)]
Merge branch 'stable-2.13' into stable-2.14

* stable-2.13
  NEWS: move 2.13.0 beta/rc to their place
  Document data collector options
  Correct NEWS file entry
  Revision bump for 2.13.2
  Update the NEWS file for 2.13.2

* stable-2.12
  Bugfix in checkInstanceMove function in Cluster.hs
  Revision bump for 2.12.5
  Update the NEWS file for 2.12.5
  Update Xen documentation in install.rst
  Clarify need for the migration_port Xen param

Conflicts:
NEWS: take all additions
configure.ac: keep stable-2.14 version/revision

Signed-off-by: Klaus Aehlig <aehlig@google.com>
Reviewed-by: Petr Pudlak <pudlak@google.com>

5 years agoNEWS: move 2.13.0 beta/rc to their place
Klaus Aehlig [Thu, 16 Jul 2015 09:24:31 +0000 (11:24 +0200)]
NEWS: move 2.13.0 beta/rc to their place

Apparently during merges in the past, the NEWS entries
for 2.13.0 rc1 and 2.13.0 beta1 ended up between the entries
for 2.12.4 and 2.12.3. Move them to their rightful place now.

Signed-off-by: Klaus Aehlig <aehlig@google.com>
Reviewed-by: Petr Pudlak <pudlak@google.com>

5 years agoMerge branch 'stable-2.12' into stable-2.13
Klaus Aehlig [Thu, 16 Jul 2015 09:07:44 +0000 (11:07 +0200)]
Merge branch 'stable-2.12' into stable-2.13

* stable-2.12
  Bugfix in checkInstanceMove function in Cluster.hs
  Revision bump for 2.12.5
  Update the NEWS file for 2.12.5
  Update Xen documentation in install.rst
  Clarify need for the migration_port Xen param

Conflicts:
NEWS: take both new entries
configure.ac: keep version and revision of stable-2.13

Signed-off-by: Klaus Aehlig <aehlig@google.com>
Reviewed-by: Petr Pudlak <pudlak@google.com>

5 years agoBugfix in checkInstanceMove function in Cluster.hs
Oleg Ponomarev [Wed, 15 Jul 2015 17:46:14 +0000 (20:46 +0300)]
Bugfix in checkInstanceMove function in Cluster.hs

checkInstanceMove function tries all possible moves of single instance
in order to found an optimal move. When option --no-disk-moves is
enabled, current implementation tries only Failover move while
FailoverToAny is a suitable move too. This patch fixes the bug.

Signed-off-by: Oleg Ponomarev <onponomarev@gmail.com>
Signed-off-by: Klaus Aehlig <aehlig@google.com>
Reviewed-by: Klaus Aehlig <aehlig@google.com>

5 years agoDocument data collector options
Klaus Aehlig [Mon, 13 Jul 2015 15:33:32 +0000 (17:33 +0200)]
Document data collector options

The options --enabled-data-collectors and --data-collector-interval have
been added to gnt-cluster modify quite a while ago on stable-2.13. However
they have never been documented in the man page. Do so now.

Signed-off-by: Klaus Aehlig <aehlig@google.com>
Reviewed-by: Petr Pudlak <pudlak@google.com>

5 years agoRevision bump for 2.12.5 v2.12.5
Petr Pudlak [Mon, 13 Jul 2015 14:02:16 +0000 (16:02 +0200)]
Revision bump for 2.12.5

Signed-off-by: Petr Pudlak <pudlak@google.com>
Reviewed-by: Hrvoje Ribicic <riba@google.com>

5 years agoUpdate the NEWS file for 2.12.5
Petr Pudlak [Mon, 13 Jul 2015 14:00:57 +0000 (16:00 +0200)]
Update the NEWS file for 2.12.5

... mentioning all the changes.

Signed-off-by: Petr Pudlak <pudlak@google.com>
Reviewed-by: Hrvoje Ribicic <riba@google.com>

5 years agoCorrect NEWS file entry
Hrvoje Ribicic [Mon, 13 Jul 2015 13:22:49 +0000 (15:22 +0200)]
Correct NEWS file entry

Signed-off-by: Hrvoje Ribicic <riba@google.com>
Reviewed-by: Petr Pudlak <pudlak@google.com>

5 years agoDo not version generate file tools/ssl-update
Klaus Aehlig [Mon, 13 Jul 2015 12:07:55 +0000 (14:07 +0200)]
Do not version generate file tools/ssl-update

...which happend to be added by accident by
merge 6d9446fafbbb90b64b6. Remove it now.

Signed-off-by: Klaus Aehlig <aehlig@google.com>
Reviewed-by: Petr Pudlak <pudlak@google.com>

5 years agoUpdate Xen documentation in install.rst
Hrvoje Ribicic [Mon, 13 Jul 2015 10:14:50 +0000 (10:14 +0000)]
Update Xen documentation in install.rst

The Xen documentation in install.rst was out of date, describing
xm-specific changes at the point where 2.12 is mostly used with xl.
This patch removes xm-specific migration steps, references the official
Xen wiki instead of replicating information from it, removes the
VNC setup settings that are outdated for xl and probably for xm, and
slightly rewrites the documentation.

Signed-off-by: Hrvoje Ribicic <riba@google.com>
Reviewed-by: Klaus Aehlig <aehlig@google.com>

5 years agoClarify need for the migration_port Xen param
Hrvoje Ribicic [Mon, 13 Jul 2015 10:14:17 +0000 (10:14 +0000)]
Clarify need for the migration_port Xen param

... depending on which toolstack is used.

Signed-off-by: Hrvoje Ribicic <riba@google.com>
Reviewed-by: Klaus Aehlig <aehlig@google.com>

5 years agoRevision bump for 2.13.2 v2.13.2
Hrvoje Ribicic [Mon, 13 Jul 2015 11:30:41 +0000 (11:30 +0000)]
Revision bump for 2.13.2

Signed-off-by: Hrvoje Ribicic <riba@google.com>
Reviewed-by: Klaus Aehlig <aehlig@google.com>

5 years agoUpdate the NEWS file for 2.13.2
Hrvoje Ribicic [Mon, 13 Jul 2015 11:30:10 +0000 (11:30 +0000)]
Update the NEWS file for 2.13.2

... mentioning all the changes.

Signed-off-by: Hrvoje Ribicic <riba@google.com>
Reviewed-by: Klaus Aehlig <aehlig@google.com>

5 years agoAdd clarifications to repair design and support restarts
Klaus Aehlig [Thu, 25 Jun 2015 09:54:03 +0000 (11:54 +0200)]
Add clarifications to repair design and support restarts

Support restarting of failed repair events, by allowing unconditional
forgetting of a failed event.  Also, rename it to maintenance daemon
to emphasize that it does more than just coordinating repairs.

Signed-off-by: Andrew King <ahking@google.com>
Signed-off-by: Klaus Aehlig <aehlig@google.com>
Reviewed-by: Petr Pudlak <pudlak@google.com>

5 years agoUse correct path for job file inspection
Lisa Velden [Thu, 9 Jul 2015 15:03:57 +0000 (17:03 +0200)]
Use correct path for job file inspection

Determine the job file path with qa_utils.MakeNodePath, so that we
get the correct path, even for vcluster.

Signed-off-by: Lisa Velden <velden@google.com>
Reviewed-by: Klaus Aehlig <aehlig@google.com>

5 years agoImprove speed of iterateAlloc by a trying two step sizes
Klaus Aehlig [Thu, 9 Jul 2015 13:21:33 +0000 (15:21 +0200)]
Improve speed of iterateAlloc by a trying two step sizes

Currently, iterateAlloc tries one guess on the remaining capacity
and falls back to small steps if that guess turns out to be too
optimistic. In the typical case, that the allocation is bound by
memory that initial guess works quite well; however, in some cases
other requirements limit the amount of instances allocatable on a
cluster. Instead of immediately giving up in this case, try smaller
guess-and-verify steps to avoid having to check for global N+1 redundancy
too often.

Signed-off-by: Klaus Aehlig <aehlig@google.com>
Reviewed-by: Petr Pudlak <pudlak@google.com>

5 years agoRevision bump for 2.14.1 v2.14.1
Klaus Aehlig [Thu, 9 Jul 2015 14:54:38 +0000 (16:54 +0200)]
Revision bump for 2.14.1

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

5 years agoUpdate NEWS for 2.14.1
Klaus Aehlig [Thu, 9 Jul 2015 14:54:20 +0000 (16:54 +0200)]
Update NEWS for 2.14.1

Mention particularly the changes related to xl support and
the changes to the SSL certificate handling.

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

5 years agoMerge branch 'stable-2.15' into master
Petr Pudlak [Thu, 9 Jul 2015 12:45:43 +0000 (14:45 +0200)]
Merge branch 'stable-2.15' into master

* stable-2.15
  (no changes)

* stable-2.14
  Move _ValidateConfig to the verify.py submodule
  Fix building of shell command in export
  Add test showing a bug in location score calculation
  Bugfix for cluster location score calculation

* stable-2.13
  Properly get rid of all watcher jobs
  Move stdout_of to qa_utils
  Describe --no-verify-disks option in watcher man page
  Make disk verification optional

* stable-2.12
  Tell git to ignore tools/ssl-update
  Use 'exclude_daemons' option for master only
  Disable superfluous restarting of daemons
  Add tests exercising the "crashed" state handling
  Add proper handling of the "crashed" Xen state
  Handle SSL setup when downgrading
  Write SSH ports to ssconf files
  Noded: Consider certificate chain in callback
  Cluster-keys-replacement: update documentation
  Backend: Use timestamp as serial no for server cert
  UPGRADE: add note about 2.12.5
  NEWS: Mention issue 1094
  man: mention changes in renew-crypto
  Verify: warn about self-signed client certs
  Bootstrap: validate SSL setup before starting noded
  Clean up configuration of curl request
  Renew-crypto: remove superflous copying of node certs
  Renew-crypto: propagate verbose and debug option
  Noded: log the certificate and digest on noded startup
  QA: reload rapi cert after renew crypto
  Prepare-node-join: use common functions
  Renew-crypto: remove dead code
  Init: add master client certificate to configuration
  Renew-crypto: rebuild digest map of all nodes
  Noded: make "bootstrap" a constant
  node-daemon-setup: generate client certificate
  tools: Move (Re)GenerateClientCert to common
  Renew cluster and client certificates together
  Init: create the master's client cert in bootstrap
  Renew client certs using ssl_update tool
  Run functions while (some) daemons are stopped
  Back up old client.pem files
  Introduce ssl_update tool
  x509 function for creating signed certs
  Add tools/common.py from 2.13
  Consider ECDSA in SSH setup
  Update documentation of watcher and RAPI daemon
  Watcher: add option for setting RAPI IP
  When connecting to Metad fails, log the full stack trace
  Set up the Metad client with allow_non_master
  Set up the configuration client properly on non-masters
  Add the 'allow_non_master' option to the WConfd RPC client
  Add the option to disable master checks to the RPC client
  Add 'allow_non_master' to the Luxi test transport class too
  Add 'allow_non_master' to FdTransport for compatibility
  Properly document all constructor arguments of Transport
  Allow the Transport class to be used for non-master nodes
  Don't define the set of all daemons twice

* stable-2.11
  Fix capitalization of TestCase
  Trigger renew-crypto on downgrade to 2.11

Conflicts:
Makefile.am
lib/ssconf.py
src/Ganeti/Constants.hs
src/Ganeti/Ssconf.hs
test/hs/shelltests/htools-hbal.test

Resolutions:
Makefile.am
  keep all the Haskell test data files
lib/ssconf.py
  keep the auto-generated list of valid keys from master
src/Ganeti/Constants.hs
  merge the ssconf entry for ssh ports to the list of valid keys
src/Ganeti/Ssconf.hs
  keep the generated list of constructors from master
test/hs/shelltests/htools-hbal.test
  keep all tests

Signed-off-by: Petr Pudlak <pudlak@google.com>
Reviewed-by: Klaus Aehlig <aehlig@google.com>

5 years agoMerge branch 'stable-2.14' into stable-2.15
Petr Pudlak [Thu, 9 Jul 2015 11:15:00 +0000 (13:15 +0200)]
Merge branch 'stable-2.14' into stable-2.15

* stable-2.14
  Move _ValidateConfig to the verify.py submodule
  Fix building of shell command in export
  Add test showing a bug in location score calculation
  Bugfix for cluster location score calculation

* stable-2.13
  Properly get rid of all watcher jobs
  Move stdout_of to qa_utils
  Describe --no-verify-disks option in watcher man page
  Make disk verification optional

* stable-2.12
  Tell git to ignore tools/ssl-update
  Use 'exclude_daemons' option for master only
  Disable superfluous restarting of daemons
  Add tests exercising the "crashed" state handling
  Add proper handling of the "crashed" Xen state
  Handle SSL setup when downgrading
  Write SSH ports to ssconf files
  Noded: Consider certificate chain in callback
  Cluster-keys-replacement: update documentation
  Backend: Use timestamp as serial no for server cert
  UPGRADE: add note about 2.12.5
  NEWS: Mention issue 1094
  man: mention changes in renew-crypto
  Verify: warn about self-signed client certs
  Bootstrap: validate SSL setup before starting noded
  Clean up configuration of curl request
  Renew-crypto: remove superflous copying of node certs
  Renew-crypto: propagate verbose and debug option
  Noded: log the certificate and digest on noded startup
  QA: reload rapi cert after renew crypto
  Prepare-node-join: use common functions
  Renew-crypto: remove dead code
  Init: add master client certificate to configuration
  Renew-crypto: rebuild digest map of all nodes
  Noded: make "bootstrap" a constant
  node-daemon-setup: generate client certificate
  tools: Move (Re)GenerateClientCert to common
  Renew cluster and client certificates together
  Init: create the master's client cert in bootstrap
  Renew client certs using ssl_update tool
  Run functions while (some) daemons are stopped
  Back up old client.pem files
  Introduce ssl_update tool
  x509 function for creating signed certs
  Add tools/common.py from 2.13
  Consider ECDSA in SSH setup
  Update documentation of watcher and RAPI daemon
  Watcher: add option for setting RAPI IP
  When connecting to Metad fails, log the full stack trace
  Set up the Metad client with allow_non_master
  Set up the configuration client properly on non-masters
  Add the 'allow_non_master' option to the WConfd RPC client
  Add the option to disable master checks to the RPC client
  Add 'allow_non_master' to the Luxi test transport class too
  Add 'allow_non_master' to FdTransport for compatibility
  Properly document all constructor arguments of Transport
  Allow the Transport class to be used for non-master nodes
  Don't define the set of all daemons twice

* stable-2.11
  Fix capitalization of TestCase
  Trigger renew-crypto on downgrade to 2.11

Conflicts:
lib/backend.py
src/Ganeti/HTools/Cluster.hs
test/hs/shelltests/htools-hbal.test

Resolutions:
lib/backend.py
          keep the improved 2.15 communication mechanism with Metad
src/Ganeti/HTools/Cluster.hs
          propagate changes from [fb0c774be7e] to .../Cluster/Moves.hs
test/hs/shelltests/htools-hbal.test
          keep tests from both versions

Signed-off-by: Petr Pudlak <pudlak@google.com>
Reviewed-by: Klaus Aehlig <aehlig@google.com>

5 years agoUpdate hbal man page
Oleg Ponomarev [Wed, 8 Jul 2015 19:11:47 +0000 (22:11 +0300)]
Update hbal man page

Add description of the second common-failure location tag component
to the hbal manpage.

Signed-off-by: Oleg Ponomarev <onponomarev@gmail.com>
Signed-off-by: Klaus Aehlig <aehlig@google.com>
Reviewed-by: Klaus Aehlig <aehlig@google.com>

5 years agoAdd test for the common-failure exclusion tags
Oleg Ponomarev [Wed, 8 Jul 2015 19:11:46 +0000 (22:11 +0300)]
Add test for the common-failure exclusion tags

Initial configuration contains the situation in which two DNS providers
are located on the nodes sharing the same power source. Hbal should
optimize this placement by simple failover.

Signed-off-by: Oleg Ponomarev <onponomarev@gmail.com>
Signed-off-by: Klaus Aehlig <aehlig@google.com>
Reviewed-by: Klaus Aehlig <aehlig@google.com>

5 years agoImplement common-failure exclusion tags
Oleg Ponomarev [Wed, 8 Jul 2015 19:11:45 +0000 (22:11 +0300)]
Implement common-failure exclusion tags

According to the design-location document (Improving location awareness)
cluster metric is extended by the component

- The number of pairs of exclusion tags and common-failure tags where
  there exist at least two instances with the given exclusion tag with
  the primary node having the given common-failure tag.

Also this patch fixes Statistics.hs test in order to work with new
Statistics because the test is broken by the changes in Statistics.hs.

Signed-off-by: Oleg Ponomarev <onponomarev@gmail.com>
Signed-off-by: Klaus Aehlig <aehlig@google.com>
Reviewed-by: Klaus Aehlig <aehlig@google.com>

5 years agoMerge branch 'stable-2.13' into stable-2.14
Klaus Aehlig [Thu, 9 Jul 2015 09:17:26 +0000 (11:17 +0200)]
Merge branch 'stable-2.13' into stable-2.14

* stable-2.13
  Properly get rid of all watcher jobs
  Move stdout_of to qa_utils

* stable-2.12
  Tell git to ignore tools/ssl-update
  Use 'exclude_daemons' option for master only
  Disable superfluous restarting of daemons
  Add tests exercising the "crashed" state handling
  Add proper handling of the "crashed" Xen state

* stable-2.11
  Fix capitalization of TestCase
  Trigger renew-crypto on downgrade to 2.11

Signed-off-by: Klaus Aehlig <aehlig@google.com>
Reviewed-by: Petr Pudlak <pudlak@google.com>

5 years agoMove _ValidateConfig to the verify.py submodule
Petr Pudlak [Thu, 9 Jul 2015 08:40:14 +0000 (10:40 +0200)]
Move _ValidateConfig to the verify.py submodule

.. in order to get the size of config/__init__ under 3600 lines again.

Signed-off-by: Petr Pudlak <pudlak@google.com>
Reviewed-by: Klaus Aehlig <aehlig@google.com>

5 years agoMerge branch 'stable-2.13' into stable-2.14
Petr Pudlak [Wed, 8 Jul 2015 16:19:03 +0000 (18:19 +0200)]
Merge branch 'stable-2.13' into stable-2.14

* stable-2.13
  Describe --no-verify-disks option in watcher man page
  Make disk verification optional

* stable-2.12
  Handle SSL setup when downgrading
  Write SSH ports to ssconf files
  Noded: Consider certificate chain in callback
  Cluster-keys-replacement: update documentation
  Backend: Use timestamp as serial no for server cert
  UPGRADE: add note about 2.12.5
  NEWS: Mention issue 1094
  man: mention changes in renew-crypto
  Verify: warn about self-signed client certs
  Bootstrap: validate SSL setup before starting noded
  Clean up configuration of curl request
  Renew-crypto: remove superflous copying of node certs
  Renew-crypto: propagate verbose and debug option
  Noded: log the certificate and digest on noded startup
  QA: reload rapi cert after renew crypto
  Prepare-node-join: use common functions
  Renew-crypto: remove dead code
  Init: add master client certificate to configuration
  Renew-crypto: rebuild digest map of all nodes
  Noded: make "bootstrap" a constant
  node-daemon-setup: generate client certificate
  tools: Move (Re)GenerateClientCert to common
  Renew cluster and client certificates together
  Init: create the master's client cert in bootstrap
  Renew client certs using ssl_update tool
  Run functions while (some) daemons are stopped
  Back up old client.pem files
  Introduce ssl_update tool
  x509 function for creating signed certs
  Add tools/common.py from 2.13
  Consider ECDSA in SSH setup
  Update documentation of watcher and RAPI daemon
  Watcher: add option for setting RAPI IP
  When connecting to Metad fails, log the full stack trace
  Set up the Metad client with allow_non_master
  Set up the configuration client properly on non-masters
  Add the 'allow_non_master' option to the WConfd RPC client
  Add the option to disable master checks to the RPC client
  Add 'allow_non_master' to the Luxi test transport class too
  Add 'allow_non_master' to FdTransport for compatibility
  Properly document all constructor arguments of Transport
  Allow the Transport class to be used for non-master nodes
  Don't define the set of all daemons twice

Conflicts:
Makefile.am
lib/cmdlib/cluster/verify.py
lib/config/__init__.py
tools/cfgupgrade

Resolution:
Makefile.am
          - keep newly added files from both branches
lib/cmdlib/cluster/verify.py
          - propagate relevant changes from/lib/cmdlib/cluster.py to
            lib/cmdlib/cluster/__init__.py
lib/config/__init__.py
          - include methods added in stable-2.13
          - temporarily disable the warning for too many lines
tools/cfgupgrade
          - propagate changes to lib/tools/cfgupgrade.py

Signed-off-by: Petr Pudlak <pudlak@google.com>
Reviewed-by: Helga Velroyen <helgav@google.com>

5 years agoMerge branch 'stable-2.12' into stable-2.13
Klaus Aehlig [Wed, 8 Jul 2015 16:09:30 +0000 (18:09 +0200)]
Merge branch 'stable-2.12' into stable-2.13

* stable-2.12
  Tell git to ignore tools/ssl-update
  Use 'exclude_daemons' option for master only
  Disable superfluous restarting of daemons
  Add tests exercising the "crashed" state handling
  Add proper handling of the "crashed" Xen state

* stable-2.11
  Fix capitalization of TestCase
  Trigger renew-crypto on downgrade to 2.11

Conflicts:
.gitignore: use all additions

Signed-off-by: Klaus Aehlig <aehlig@google.com>
Reviewed-by: Petr Pudlak <pudlak@google.com>

5 years agoProperly get rid of all watcher jobs
Klaus Aehlig [Wed, 8 Jul 2015 15:28:44 +0000 (17:28 +0200)]
Properly get rid of all watcher jobs

Our tests running via RunWithLocks strictly depend on no
watcher jobs interfering. Therefore they pause the watcher;
unfortunately, there still is a race: the watcher only checks
the pause status upon its invocation, but submits jobs later
in its run time. Therefore not only pause it (doesn't hurt),
but also add a filter to reject all its jobs, and then wait
for all running jobs to terminate.

Signed-off-by: Klaus Aehlig <aehlig@google.com>
Reviewed-by: Petr Pudlak <pudlak@google.com>

5 years agoMove stdout_of to qa_utils
Klaus Aehlig [Wed, 8 Jul 2015 15:28:43 +0000 (17:28 +0200)]
Move stdout_of to qa_utils

...so that it can be used outside the filter test as well.

Signed-off-by: Klaus Aehlig <aehlig@google.com>
Reviewed-by: Petr Pudlak <pudlak@google.com>

5 years agoMerge branch 'stable-2.11' into stable-2.12
Klaus Aehlig [Wed, 8 Jul 2015 15:36:24 +0000 (17:36 +0200)]
Merge branch 'stable-2.11' into stable-2.12

* stable-2.11
  Fix capitalization of TestCase
  Trigger renew-crypto on downgrade to 2.11

Conflicts:
tools/post-upgrade: use 2.12 condition on when to run the hook

Signed-off-by: Klaus Aehlig <aehlig@google.com>
Reviewed-by: Petr Pudlak <pudlak@google.com>

5 years agoTell git to ignore tools/ssl-update
Klaus Aehlig [Wed, 8 Jul 2015 14:38:32 +0000 (16:38 +0200)]
Tell git to ignore tools/ssl-update

This tools was recently added, but not added to .gitignore. Do
so now.

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

5 years agoAdd QA test for secret parameter transmission
Lisa Velden [Fri, 3 Jul 2015 11:49:48 +0000 (13:49 +0200)]
Add QA test for secret parameter transmission

This test is done with the newly introduced opcode 'gnt-debug
test-osparams'. Redaction of secret parameters within the job file is
also tested again with this opcode.

Signed-off-by: Lisa Velden <velden@google.com>
Reviewed-by: Hrvoje Ribicic <riba@google.com>

5 years agoAdd OpTestOsParams to filterSecretParameters
Lisa Velden [Fri, 3 Jul 2015 11:43:10 +0000 (13:43 +0200)]
Add OpTestOsParams to filterSecretParameters

The opcde OpTestOsParams for gnt-debug test-osparams has to be added
to the list of opcodes which can contain secret parameters. This is
necessary to determine the secret parameters that are handed over in
the last step of forking a job process.

Signed-off-by: Lisa Velden <velden@google.com>
Reviewed-by: Hrvoje Ribicic <riba@google.com>

5 years agoExclude OpTestOsParams opcode from RAPI
Lisa Velden [Mon, 6 Jul 2015 11:37:46 +0000 (13:37 +0200)]
Exclude OpTestOsParams opcode from RAPI

Signed-off-by: Lisa Velden <velden@google.com>
Reviewed-by: Hrvoje Ribicic <riba@google.com>

5 years agoTest arbitrary gnt-debug test-osparams commands
Lisa Velden [Mon, 6 Jul 2015 11:36:07 +0000 (13:36 +0200)]
Test arbitrary gnt-debug test-osparams commands

Signed-off-by: Lisa Velden <velden@google.com>
Reviewed-by: Hrvoje Ribicic <riba@google.com>

5 years agoAdd new command gnt-debug test-osparams
Lisa Velden [Fri, 3 Jul 2015 11:37:38 +0000 (13:37 +0200)]
Add new command gnt-debug test-osparams

which takes secret parameters with --os-secret-parameters and writes
them to stdout. This command can be used to test the transmission of
secret parameters.

Signed-off-by: Lisa Velden <velden@google.com>
Reviewed-by: Hrvoje Ribicic <riba@google.com>

5 years agoAdd QA test to test redaction of secret parameters
Lisa Velden [Mon, 6 Jul 2015 13:37:14 +0000 (15:37 +0200)]
Add QA test to test redaction of secret parameters

Test if secret parameter values for instance create jobs are
redacted in job files.

Signed-off-by: Lisa Velden <velden@google.com>
Reviewed-by: Hrvoje Ribicic <riba@google.com>

5 years agoUse 'exclude_daemons' option for master only
Helga Velroyen [Thu, 2 Jul 2015 13:07:12 +0000 (15:07 +0200)]
Use 'exclude_daemons' option for master only

During 'gnt-cluster renew-crypto --new-cluster-certificate'
or '... --new-node-certficates' all daemons are shutdown,
except for wconfd and noded. So far, noded was not shutdown
on all nodes, although it is only necessary on the master.
This patch makes sure that the 'exclude_daemons' flag only
applies to the master, as all interesting operations will
only need them there.

Signed-off-by: Helga Velroyen <helgav@google.com>
Reviewed-by: Petr Pudlak <pudlak@google.com>

5 years agoDisable superfluous restarting of daemons
Helga Velroyen [Thu, 2 Jul 2015 12:42:20 +0000 (14:42 +0200)]
Disable superfluous restarting of daemons

This patch fixes a little glitch where the Ganeti
daemons were stopped and started unnecessarily if
only the cluster certficate was renewed but nothing
else.

Signed-off-by: Helga Velroyen <helgav@google.com>
Reviewed-by: Petr Pudlak <pudlak@google.com>

5 years agoAdd tests exercising the "crashed" state handling
Hrvoje Ribicic [Mon, 6 Jul 2015 17:23:31 +0000 (17:23 +0000)]
Add tests exercising the "crashed" state handling

This patch adds a few tests that make sure the state is handled
properly, using examples taken from a running cluster.

Signed-off-by: Hrvoje Ribicic <riba@google.com>
Reviewed-by: Helga Velroyen <helgav@google.com>

5 years agoAdd proper handling of the "crashed" Xen state
Hrvoje Ribicic [Mon, 6 Jul 2015 17:17:41 +0000 (17:17 +0000)]
Add proper handling of the "crashed" Xen state

Whenever an instance would enter the crashed state due to kernel issues
or other horrible problems, Ganeti would not be able to interpret the
data and would report strange and incomprehensible errors. This patch
fixes this by adding proper handling for the "crashed" state.

Signed-off-by: Hrvoje Ribicic <riba@google.com>
Reviewed-by: Helga Velroyen <helgav@google.com>

5 years agoAdd a test that WConfd uses all ssconf keys
Petr Pudlak [Mon, 6 Jul 2015 15:49:21 +0000 (17:49 +0200)]
Add a test that WConfd uses all ssconf keys

.. when creating a map to be distributed to the master candidates.

Signed-off-by: Petr Pudlak <pudlak@google.com>
Reviewed-by: Helga Velroyen <helgav@google.com>

5 years agoMove `Arbitrary ConfigData` to the Objects test module
Petr Pudlak [Mon, 6 Jul 2015 15:48:27 +0000 (17:48 +0200)]
Move `Arbitrary ConfigData` to the Objects test module

.. where it belongs, as ConfigData is defined in Ganeti.Objects.

Signed-off-by: Petr Pudlak <pudlak@google.com>
Reviewed-by: Helga Velroyen <helgav@google.com>

5 years agoGenerate the SSKey data type from the ssconf constants
Petr Pudlak [Mon, 6 Jul 2015 15:47:29 +0000 (17:47 +0200)]
Generate the SSKey data type from the ssconf constants

In particular, the constructor names are derived from the list of all
valid ssconf keys.

Signed-off-by: Petr Pudlak <pudlak@google.com>
Reviewed-by: Helga Velroyen <helgav@google.com>

5 years agoTHH: Add a helper for computing ssconf constructor names
Petr Pudlak [Mon, 6 Jul 2015 15:46:04 +0000 (17:46 +0200)]
THH: Add a helper for computing ssconf constructor names

Signed-off-by: Petr Pudlak <pudlak@google.com>
Reviewed-by: Helga Velroyen <helgav@google.com>

5 years agoUse the constant with valid ssconf keys in lib/ssconf.py
Petr Pudlak [Mon, 6 Jul 2015 15:45:17 +0000 (17:45 +0200)]
Use the constant with valid ssconf keys in lib/ssconf.py

.. removing the original hard-coded list.

Signed-off-by: Petr Pudlak <pudlak@google.com>
Reviewed-by: Helga Velroyen <helgav@google.com>

5 years agoAdd a constant listing all possible ssconf keys
Petr Pudlak [Mon, 6 Jul 2015 15:42:29 +0000 (17:42 +0200)]
Add a constant listing all possible ssconf keys

.. available for both Python and Haskell

Signed-off-by: Petr Pudlak <pudlak@google.com>
Reviewed-by: Helga Velroyen <helgav@google.com>

5 years agoAdd a Monoid instance for FrozenSet
Petr Pudlak [Mon, 6 Jul 2015 15:39:55 +0000 (17:39 +0200)]
Add a Monoid instance for FrozenSet

.. so that it's easier to combine the values together.

Signed-off-by: Petr Pudlak <pudlak@google.com>
Reviewed-by: Helga Velroyen <helgav@google.com>

5 years agoFix building of shell command in export
Klaus Aehlig [Tue, 7 Jul 2015 11:45:10 +0000 (13:45 +0200)]
Fix building of shell command in export

Commit 3d835f7d made two incorrect assumptions that
lead to instance moves failing for plain instances.
- The Import/Export interface is available at the level
  of block devices, not (as was assumed in the said
  commit) at the level of configuration objects.
- The Import/Export functions provide an argv vector
  not a single string; also the quoted version thereof
  is not a parameter so be substituted into a shell
  template (the quoted string does contain several
  characters with special meaning to the shell, e.g.,
  spaces).
Fix this now.

Signed-off-by: Klaus Aehlig <aehlig@google.com>
Reviewed-by: Hrvoje Ribicic <riba@google.com>

5 years agoMerge branch 'stable-2.12' into stable-2.13
Helga Velroyen [Tue, 7 Jul 2015 09:52:47 +0000 (11:52 +0200)]
Merge branch 'stable-2.12' into stable-2.13

* stable-2.12
  Handle SSL setup when downgrading
  Write SSH ports to ssconf files
  Noded: Consider certificate chain in callback
  Cluster-keys-replacement: update documentation
  Backend: Use timestamp as serial no for server cert
  UPGRADE: add note about 2.12.5
  NEWS: Mention issue 1094
  man: mention changes in renew-crypto
  Verify: warn about self-signed client certs
  Bootstrap: validate SSL setup before starting noded
  Clean up configuration of curl request
  Renew-crypto: remove superflous copying of node certs
  Renew-crypto: propagate verbose and debug option
  Noded: log the certificate and digest on noded startup
  QA: reload rapi cert after renew crypto
  Prepare-node-join: use common functions
  Renew-crypto: remove dead code
  Init: add master client certificate to configuration
  Renew-crypto: rebuild digest map of all nodes
  Noded: make "bootstrap" a constant
  node-daemon-setup: generate client certificate
  tools: Move (Re)GenerateClientCert to common
  Renew cluster and client certificates together
  Init: create the master's client cert in bootstrap
  Renew client certs using ssl_update tool
  Run functions while (some) daemons are stopped
  Back up old client.pem files
  Introduce ssl_update tool
  x509 function for creating signed certs
  Add tools/common.py from 2.13
  Consider ECDSA in SSH setup
  Update documentation of watcher and RAPI daemon
  Watcher: add option for setting RAPI IP
  When connecting to Metad fails, log the full stack trace
  Set up the Metad client with allow_non_master
  Set up the configuration client properly on non-masters
  Add the 'allow_non_master' option to the WConfd RPC client
  Add the option to disable master checks to the RPC client
  Add 'allow_non_master' to the Luxi test transport class too
  Add 'allow_non_master' to FdTransport for compatibility
  Properly document all constructor arguments of Transport
  Allow the Transport class to be used for non-master nodes
  Don't define the set of all daemons twice

Conflicts:
  Makefile.am
  NEWS
  UPGRADE
  lib/client/gnt_cluster.py
  lib/cmdlib/cluster.py
  lib/tools/common.py
  lib/tools/prepare_node_join.py
  lib/watcher/__init__.py
  man/ganeti-watcher.rst
  src/Ganeti/OpCodes.hs
  test/hs/Test/Ganeti/OpCodes.hs
  test/py/cmdlib/cluster_unittest.py
  test/py/ganeti.tools.prepare_node_join_unittest.py
  tools/cfgupgrade

Resolutions:
  Makefile.am:
    add ssl_update and ssh_update
  NEWS:
    add new sections from 2.12 and 2.13
  UPGRADE:
    add notes for both 2.12 and 2.13
  lib/client/gnt_cluster.py:
    add all new options to RenewCluster, remove version-specific
    downgrade code
  lib/tools/common.py:
    split the two mismatching versions of _VerifyCertificate
    and VerifyCertificate up into [_]VerifyCertifcate{Soft,Strong}
    and update usages accordingly
  lib/tools/prepare_node_join.py
    update usage of correct VerifyCertificate function
  lib/watcher/__init__.py
    add both new options, --rapi-ip and --no-verify-disks
  man/ganeti-watcher.rst
    update docs for both new options (see above)
  src/Ganeti/OpCodes.hs
    add all new options to OpRenewCrypto
  test/hs/Test/Ganeti/OpCodes.hs
    add enough 'arbitrary' for all new options of OpRenewCrypto
  test/py/cmdlib/cluster_unittest.py
    use changes from 2.12
  test/py/ganeti.tools.prepare_node_join_unittest.py
    remove tests that were moved to common_unittest.py
  tools/cfgupgrade
    use only downgrade code of 2.13

Signed-off-by: Helga Velroyen <helgav@google.com>
Reviewed-by: Petr Pudlak <pudlak@google.com>

5 years agoDescribe --no-verify-disks option in watcher man page
Klaus Aehlig [Mon, 6 Jul 2015 10:54:46 +0000 (12:54 +0200)]
Describe --no-verify-disks option in watcher man page

While there, also mention that it does more than checking
for rebooted nodes.

Signed-off-by: Klaus Aehlig <aehlig@google.com>
Reviewed-by: Petr Pudlak <pudlak@google.com>

5 years agoMake disk verification optional
Klaus Aehlig [Mon, 6 Jul 2015 10:35:17 +0000 (12:35 +0200)]
Make disk verification optional

In some setups, verification of disks can take a long
time, whereas it is still desirable to run the other
watcher operations more regularly. Hence support this
use case by providing an option to not run disk verification,
allowing for more elaborate cron schedules. Fixes issue 1090.

Signed-off-by: Klaus Aehlig <aehlig@google.com>
Reviewed-by: Petr Pudlak <pudlak@google.com>

5 years agoHandle SSL setup when downgrading
Helga Velroyen [Wed, 1 Jul 2015 08:45:02 +0000 (10:45 +0200)]
Handle SSL setup when downgrading

This patch will handle the downgrade of the SSL setup
from 2.12 to 2.11. Essentially, all client.pem and
ssconf_master_candidates_certs files will be deleted.
This will kick the cluster in a pre-2.11 mode wrt to
SSL and result in a nagging message to re-run
'gnt-cluster renew-crypto' when as output of 'gnt-cluster
verify'.

Signed-off-by: Helga Velroyen <helgav@google.com>
Reviewed-by: Petr Pudlak <pudlak@google.com>

5 years agoWrite SSH ports to ssconf files
Helga Velroyen [Tue, 30 Jun 2015 08:48:11 +0000 (10:48 +0200)]
Write SSH ports to ssconf files

For the downgrading of the SSL setup from 2.12 to 2.11, we
need to be able to SSH into machines while no daemons are
running. Unfortunately currently the only way to obtain
custom-configured SSH ports is by queries. In order to
access this information with daemons being shutdown, this
patch adds the SSH port information to an ssconf file.

This will also be used to simplify some backend calls for
the *SSH* handling in 2.13.

Signed-off-by: Helga Velroyen <helgav@google.com>
Reviewed-by: Petr Pudlak <pudlak@google.com>

5 years agoNoded: Consider certificate chain in callback
Helga Velroyen [Wed, 24 Jun 2015 12:19:17 +0000 (14:19 +0200)]
Noded: Consider certificate chain in callback

This patch significantly changes the callback that is
called upon receiving an incoming SSL connection. Since
this callback is called not only with the certificate
that the client sends, but also (in some implementations)
with the entire certificate chain of the client
certificate.

In our case, the certficate chain contains
the client certificate and the server certificate as
the one that signed the client certificate. This means
that we have to accept the server certificate, but only
if we receive it with the 'depth' greater than 0, meaning
that this is part of the chain and not the actual
certificate. If the depth value is 0, we can be sure
to have received the actual certficate and match it
against the list of master candidate certificates as
before.

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

5 years agoCluster-keys-replacement: update documentation
Helga Velroyen [Wed, 24 Jun 2015 12:03:03 +0000 (14:03 +0200)]
Cluster-keys-replacement: update documentation

This patch updates the cluster-keys-replacement document
which assists user about how to replace the crypto keys
for their cluster. This now reflects the changes wrt
server/client certificates.

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

5 years agoBackend: Use timestamp as serial no for server cert
Helga Velroyen [Wed, 24 Jun 2015 11:27:30 +0000 (13:27 +0200)]
Backend: Use timestamp as serial no for server cert

So far, all of Ganeti's server certificates had the serial
number '1'. While this works, it makes it hard to
distinguish situations where the certificate is
renewed from those where it wasn't. This patch uses
a timestamp as serial number.

While this is still not stricly according to the SSL RFC,
it is at least a number that is stricly growing and we
can be sure that no two different server certificates
will have the same serial number.

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

5 years agoUPGRADE: add note about 2.12.5
Helga Velroyen [Wed, 24 Jun 2015 11:22:02 +0000 (13:22 +0200)]
UPGRADE: add note about 2.12.5

This patch adds comments to the upgrade documentation
to advise users to rerun renew-crypto if they update
to 2.12.5.

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

5 years agoNEWS: Mention issue 1094
Helga Velroyen [Wed, 24 Jun 2015 11:19:46 +0000 (13:19 +0200)]
NEWS: Mention issue 1094

This patch updates the NEWS file to advise users to rerun
renew-crypto after an update to 2.12.5.

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

5 years agoman: mention changes in renew-crypto
Helga Velroyen [Wed, 24 Jun 2015 11:17:19 +0000 (13:17 +0200)]
man: mention changes in renew-crypto

This updates the gnt-cluster man page wrt to the changes
about server and client certificates and how they affect
the operation 'gnt-cluster renew-crypto'.

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

5 years agoVerify: warn about self-signed client certs
Helga Velroyen [Wed, 24 Jun 2015 09:56:23 +0000 (11:56 +0200)]
Verify: warn about self-signed client certs

Since from this patch series on, there should be no
self-sigend certificates in a cluster anymore, add
a warning to cluster-verify to nag people to renew
their certificates.

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

5 years agoBootstrap: validate SSL setup before starting noded
Helga Velroyen [Mon, 22 Jun 2015 13:01:04 +0000 (15:01 +0200)]
Bootstrap: validate SSL setup before starting noded

This patch adds a few checks which ensure that all
files necessary for proper SSL communication are
in place before noded is started on the master node.

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

5 years agoClean up configuration of curl request
Helga Velroyen [Mon, 22 Jun 2015 12:43:12 +0000 (14:43 +0200)]
Clean up configuration of curl request

This is a small patch cleaning up some thing in the
composition of the pycurl object for RPC calls.
For example, it removes some superfluous 'str' and
increases the logging level to warning when the
server cert is used.

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

5 years agoRenew-crypto: remove superflous copying of node certs
Helga Velroyen [Mon, 22 Jun 2015 08:59:09 +0000 (10:59 +0200)]
Renew-crypto: remove superflous copying of node certs

Since now the server certificates are copied in their
own dedicated function, remove adding their file name
in the general function for renewing crypto tokens.

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

5 years agoRenew-crypto: propagate verbose and debug option
Helga Velroyen [Fri, 19 Jun 2015 11:36:06 +0000 (13:36 +0200)]
Renew-crypto: propagate verbose and debug option

This patch enables the user to add --debug and/or --verbose
to the call of 'renew-crypto'. This way, more output is
shown to debug SSL problems easier.

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

5 years agoNoded: log the certificate and digest on noded startup
Helga Velroyen [Fri, 19 Jun 2015 09:52:36 +0000 (11:52 +0200)]
Noded: log the certificate and digest on noded startup

This patch adds logging of the filename and the digest of the
certificate which is loaded by noded on startup. This will
help debugging SSL problems as it will make clear whether or
not the noded is still using a stale/replaced/old server
certificate after a renewal.

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

5 years agoQA: reload rapi cert after renew crypto
Helga Velroyen [Thu, 18 Jun 2015 13:52:30 +0000 (15:52 +0200)]
QA: reload rapi cert after renew crypto

When running the QA, we copy the rapi certficate to the
machine which steers the QA to use it later in the QA
for testing RAPI calls. However, before we get to that
part of the QA, the rapi certificate is replaced when
'gnt-renew crypto' is called.

This patch makes sure that the new rapi certificate is
copied to the steering machine so that later RAPI calls
do not fail. It remains mysterious how this worked before.

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

5 years agoPrepare-node-join: use common functions
Helga Velroyen [Tue, 16 Jun 2015 15:46:04 +0000 (17:46 +0200)]
Prepare-node-join: use common functions

This patch makes prepare_node_join use some of the functions
that were moved to tools/common.py. The respective unittests
are removed, because they are already tested in
common_unittest.py.

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

5 years agoRenew-crypto: remove dead code
Helga Velroyen [Tue, 16 Jun 2015 15:35:46 +0000 (17:35 +0200)]
Renew-crypto: remove dead code

This patch removes the code for renewing the master
nodes' client certificate using SSL. This is no longer
needed, as the master nodes' certificate is created
in gnt_cluster.py already.

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

5 years agoInit: add master client certificate to configuration
Helga Velroyen [Tue, 16 Jun 2015 14:17:27 +0000 (16:17 +0200)]
Init: add master client certificate to configuration

This patch adds a few steps to bootstrap.py. After the
creation of the server (cluster) certificate and the
master node's client certificate, the digest of that
client certificate is added to the configuration and
by an update of the configuraiton written to the
ssconf_master_candidates_certs file.

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

5 years agoRenew-crypto: rebuild digest map of all nodes
Helga Velroyen [Tue, 16 Jun 2015 12:40:12 +0000 (14:40 +0200)]
Renew-crypto: rebuild digest map of all nodes

During a renew-crypto operation, all nodes will create
new client certificates. Afterwards, the fingerprints
(digests) of the master candidate nodes needs to be
collected and added to the configuration. This is done
by an RPC call, which will succeed as the master
node's certficate digest was propagated to the nodes
before.

This also removes two unittest which are no longer
necessary, because there will be no RPC call from
the master to itself anymore.

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

5 years agoNoded: make "bootstrap" a constant
Helga Velroyen [Tue, 16 Jun 2015 12:24:11 +0000 (14:24 +0200)]
Noded: make "bootstrap" a constant

Noded uses the constant "bootstrap" when starting
without client certificates. This patch moves the
constant to Constants.hs.

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

5 years agonode-daemon-setup: generate client certificate
Helga Velroyen [Mon, 15 Jun 2015 14:43:24 +0000 (16:43 +0200)]
node-daemon-setup: generate client certificate

So far, the client certificate of a node that is added
to the cluster was created in LUNodeAdd using an RPC
call. This is now simplified by creating the certificate
already in tools/node_daemon_setup.py and only retrieving
its fingerprint by RPC to add it to the configuration.

This simplifies the backend function from only reading
the fingerprint instead of creating the certificate.

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