Revision 7b8ba235 lib/bootstrap.py

b/lib/bootstrap.py
700 700
                    " the node: %s", msg)
701 701

  
702 702

  
703
def SetupNodeDaemon(cluster_name, node, ssh_key_check):
703
def SetupNodeDaemon(opts, cluster_name, node):
704 704
  """Add a node to the cluster.
705 705

  
706 706
  This function must be called before the actual opcode, and will ssh
......
709 709

  
710 710
  @param cluster_name: the cluster name
711 711
  @param node: the name of the new node
712
  @param ssh_key_check: whether to do a strict key check
713 712

  
714 713
  """
715
  sstore = ssconf.SimpleStore()
716
  family = sstore.GetPrimaryIPFamily()
717
  sshrunner = ssh.SshRunner(cluster_name,
718
                            ipv6=(family == netutils.IP6Address.family))
719

  
720
  # set up inter-node password and certificate and restarts the node daemon
721
  # and then connect with ssh to set password and start ganeti-noded
722
  # note that all the below variables are sanitized at this point,
723
  # either by being constants or by the checks above
724
  sshrunner.CopyFileToNode(node, pathutils.NODED_CERT_FILE)
725
  sshrunner.CopyFileToNode(node, pathutils.RAPI_CERT_FILE)
726
  sshrunner.CopyFileToNode(node, pathutils.SPICE_CERT_FILE)
727
  sshrunner.CopyFileToNode(node, pathutils.SPICE_CACERT_FILE)
728
  sshrunner.CopyFileToNode(node, pathutils.CONFD_HMAC_KEY)
729
  for filename in sstore.GetFileList():
730
    sshrunner.CopyFileToNode(node, filename)
731
  mycommand = ("%s stop-all; %s start %s" %
732
               (pathutils.DAEMON_UTIL, pathutils.DAEMON_UTIL, constants.NODED))
733

  
734
  result = sshrunner.Run(node, constants.SSH_LOGIN_USER, mycommand, batch=False,
735
                         ask_key=ssh_key_check,
736
                         use_cluster_key=True,
737
                         strict_host_check=ssh_key_check)
738
  if result.failed:
739
    raise errors.OpExecError("Remote command on node %s, error: %s,"
740
                             " output: %s" %
741
                             (node, result.fail_reason, result.output))
714
  data = {
715
    constants.NDS_CLUSTER_NAME: cluster_name,
716
    constants.NDS_NODE_DAEMON_CERTIFICATE:
717
      utils.ReadFile(pathutils.NODED_CERT_FILE),
718
    constants.NDS_SSCONF: ssconf.SimpleStore().ReadAll(),
719
    constants.NDS_START_NODE_DAEMON: True,
720
    }
721

  
722
  RunNodeSetupCmd(cluster_name, node, pathutils.NODE_DAEMON_SETUP,
723
                  opts.debug, opts.verbose,
724
                  True, opts.ssh_key_check, opts.ssh_key_check, data)
742 725

  
743 726
  _WaitForNodeDaemon(node)
744 727

  

Also available in: Unified diff