import os
+import logging
from ganeti import utils
from ganeti import errors
def _BuildSshOptions(self, batch, ask_key, use_cluster_key,
strict_host_check):
+ """Builds a list with needed SSH options.
+
+ @param batch: same as ssh's batch option
+ @param ask_key: allows ssh to ask for key confirmation; this
+ parameter conflicts with the batch one
+ @param use_cluster_key: if True, use the cluster name as the
+ HostKeyAlias name
+ @param strict_host_check: this makes the host key checking strict
+
+ @rtype: list
+ @return: the list of options ready to use in L{utils.RunCmd}
+
+ """
options = [
"-oEscapeChar=none",
"-oHashKnownHosts=no",
output = retval.output
if output:
msg += ": %s" % output
+ else:
+ msg += ": %s (no output)" % retval.fail_reason
+ logging.error("Command %s failed: %s" % (retval.cmd, msg))
return False, msg
remotehostname = retval.stdout.strip()
"""Writes the cluster-wide equally known_hosts file.
"""
- utils.WriteFile(file_name, mode=0700,
+ utils.WriteFile(file_name, mode=0600,
data="%s ssh-rsa %s\n" % (cfg.GetClusterName(),
cfg.GetHostKey()))