import sys
from ganeti.cli import *
+from ganeti import bootstrap
from ganeti import opcodes
from ganeti import utils
from ganeti import constants
cmd.append("--debug")
elif options.verbose:
cmd.append("--verbose")
+ if options.ssh_key_check:
+ cmd.append("--no-ssh-key-check")
cmd.extend(nodes)
# read the cluster name from the master
output = cl.QueryConfigValues(['cluster_name'])
+ cluster_name = output[0]
- if not readd:
+ if not readd and opts.node_setup:
ToStderr("-- WARNING -- \n"
"Performing this operation is going to replace the ssh daemon"
" keypair\n"
if opts.node_setup:
_RunSetupSSH(opts, [node])
+ bootstrap.SetupNodeDaemon(cluster_name, node, opts.ssh_key_check)
+
op = opcodes.OpAddNode(node_name=args[0], secondary_ip=sip,
readd=opts.readd)
SubmitOpCode(op, opts=opts)
commands = {
'add': (
AddNode, [ArgHost(min=1, max=1)],
- [SECONDARY_IP_OPT, READD_OPT, NONODE_SETUP_OPT, VERBOSE_OPT],
- "[-s ip] [--readd] [--no-node-setup] [--verbose] "
+ [SECONDARY_IP_OPT, READD_OPT, NOSSH_KEYCHECK_OPT, NONODE_SETUP_OPT,
+ VERBOSE_OPT],
+ "[-s ip] [--readd] [--no-ssh-key-check] [--no-node-setup] [--verbose] "
" <node_name>",
"Add a node to the cluster"),
'evacuate': (
_InvokeDaemonUtil(transport, "reload-ssh-keys")
-def SetupNodeDaemon(transport):
- """Sets the node daemon up on the other side.
-
- @param transport: The paramiko transport instance
-
- """
- noded_cert = utils.ReadFile(constants.NODED_CERT_FILE)
-
- sftp = transport.open_sftp_client()
- _WriteSftpFile(sftp, constants.NODED_CERT_FILE, 0400, noded_cert)
-
- _InvokeDaemonUtil(transport, "start %s" % constants.NODED)
-
-
def ParseOptions():
"""Parses options passed to program.
try:
try:
SetupSSH(transport)
- SetupNodeDaemon(transport)
except errors.GenericError, err:
logging.error("While doing setup on host %s an error occured: %s",
host, err)