Merge branch 'stable-2.16' into stable-2.17 stable-2.17
authorBrian Foley <bpfoley@google.com>
Fri, 16 Dec 2016 17:23:46 +0000 (17:23 +0000)
committerBrian Foley <bpfoley@google.com>
Fri, 16 Dec 2016 17:40:55 +0000 (17:40 +0000)
* stable-2.15
  Fix gnt-instance console instance unpausing for xl toolstack
  Disable pylint too-many-nested-blocks in _RunCmdPipe
  Reduce nesting in import-export ProcessChildIO
  Reduce nesting in LUOobCommand.Exec
  Reduce nesting in LUInstanceCreate.RunOsScripts
  Reduce nesting in RemoveNodeSshKeyBulk key calculation
  Reduce nesting in RemoveNodeSshKeyBulk ssh logic
  Reduce nesting in gnt-cluster VerifyDisks missing disk loop
  Reduce nesting in _CheckVLANArguments
  Reduce nesting in StartDaemon
  Disable pylint bad-continuation warning
  Disable pylint superfluous-parens warning
  Disable pylint redefined-variable-type warning
  Disable pylint too-many-branches warnings
  Disable pylint broad-except warnings
  Disable incorrect pylint assigning-non-slot warning
  Quell pylint unbalanced-tuple-unpacking warning
  Cleanup: Use new-style classes everywhere
  Quell pylint socket.timeout warning
  Quell the pylint wrong-import-order warnings
  Quell cell-var-from-loop warning
  Use default value lambda param to avoid cell-var-from-loop
  Quell too-many-boolean-expressions
  Remove pylint tests removed in pylint 2.0
  Quell trailing newline
  Quell bad-whitespace warning
  Quell consider-using-enumerate warning
  Disable pylint unsubscriptable-object warning
  Disable pylint bare-except warning
  Disable unwanted pylint wrong-import-position warnings
  Disable pylint unused-wildcard-import warning
  Disable incorrect pylint not-callable warning
  Disable pylint unpacking-non-sequence warning
  Disable pylint misplaced-comparison-constant warning
  Disable incorect pylint simplify-if-statement warning
  Disable pylint eval-used warning
  Disable pylint invalid-name warning
  Disable pylint import-self warning
  Disable some pylint unused-import warnings
  Replace deprecated pylint >=0.27 pragma with new form
  Delete old warning disables removed from pylint 1.6
  Fix pylint >1.4 pycurl no-member warnings
  Cleanup: Remove unused/duplicate module/fn import
  Cleanup: Fix unidiomatic-typecheck
  Cleanup: Remove some unneeded pylint disables
  Cleanup: Iterate dict rather than key list
  Cleanup: Remove unused format key
  Cleanup: StartInstance and RebootInstance return None
  Cleanup: Fix for/else with no break in AddAuthorizedKeys
  Cleanup: Replace map/filters with list comprehensions
  Cleanup: del is a statement not a function
  Cleanup: Use FOO not in BAR instead of not FOO in BAR
  Cleanup: Simplify boolean assignment
  Cleanup: Remove some unnecessary if (...) parens
  Fix invalid variable error for file-based disks
  FIX: Refactor DiagnoseOS to use a loop, not an inner fn
  FIX: Set INSTANCE_NICn_NETWORK_NAME only if net is defined
  StartInstance restores instance state if running
  Allow migrate --cleanup to adopt an instance
  Make migrate --cleanup more robust
  Make finalize_migration_{src,dst} a single op
  Make FinalizeMigration{Src,Dst} more robust
  Fix instance state detection in _Shutdowninstance
  Code cleanup in hypervisor backend
  Fix for incorrect parsing of DRBD versions
  Fix for instance reinstall not updating config
  Change a few errors to report names, not UUIDs
  Give atomicWriteFile temp filenames a more distinct pattern
  LV check failure should print instance name
  Add ganeti-noded and ganeti-rapi --max-clients options
  Disable logging CallRPCMethod timings in non-debug configs
  568 Update hv_kvm to handle output from qemu >= 1.6.0
  Improve cluster verify ssh key errors
  Fix inconsistent spaces vs tabs indent in makefile

* stable-2.13
  Bugfix: migrate needs HypervisorClass, not an instance

Fix easy merge conflict in lib/backend.py -- dead code removed in 2.15

Signed-off-by: Brian Foley <bpfoley@google.com>
Reviewed-by: Federico Pareschi <morg@google.com>

26 files changed:
1  2 
Makefile.am
lib/backend.py
lib/bootstrap.py
lib/cli.py
lib/cli_opts.py
lib/client/gnt_cluster.py
lib/cmdlib/cluster/__init__.py
lib/cmdlib/cluster/verify.py
lib/cmdlib/common.py
lib/cmdlib/misc.py
lib/config/__init__.py
lib/masterd/iallocator.py
lib/objects.py
lib/rpc_defs.py
lib/server/noded.py
lib/ssh.py
lib/tools/common.py
lib/tools/node_cleanup.py
lib/utils/process.py
lib/utils/retry.py
lib/watcher/__init__.py
src/Ganeti/THH/PyRPC.hs
src/Ganeti/Utils/Atomic.hs
test/py/testutils/config_mock.py
tools/cluster-merge
tools/move-instance

diff --cc Makefile.am
Simple merge
diff --cc lib/backend.py
@@@ -1914,17 -1903,21 +1919,21 @@@ def RemoveNodeSshKeyBulk(node_list
          error_msg_final = ("When removing the key of node '%s', updating the"
                             " SSH key files of node '%s' failed. Last error"
                             " was: %s.")
-         if node in potential_master_candidates:
-           logging.debug("Updating key setup of potential master candidate node"
-                         " %s.", node)
+         if node in potential_master_candidates or from_authorized_keys:
+           if node in potential_master_candidates:
+             node_desc = "potential master candidate"
+           else:
+             node_desc = "normal"
+           logging.debug("Updating key setup of %s node %s.", node_desc, node)
            try:
 +            backoff = 5  # seconds
              utils.RetryByNumberOfTimes(
 -                constants.SSHS_MAX_RETRIES,
 -                errors.SshUpdateError,
 +                constants.SSHS_MAX_RETRIES, backoff, errors.SshUpdateError,
                  run_cmd_fn, cluster_name, node, pathutils.SSH_UPDATE,
                  ssh_port, pot_mc_data,
 -                debug=False, verbose=False, use_cluster_key=False,
 -                ask_key=False, strict_host_check=False)
 +                debug=ssh_update_debug, verbose=ssh_update_verbose,
 +                use_cluster_key=False, ask_key=False, strict_host_check=False)
            except errors.SshUpdateError as last_exception:
              error_msg = error_msg_final % (
                  node_info.name, node, last_exception)
Simple merge
diff --cc lib/cli.py
Simple merge
diff --cc lib/cli_opts.py
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc lib/objects.py
Simple merge
diff --cc lib/rpc_defs.py
Simple merge
Simple merge
diff --cc lib/ssh.py
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge