starcluster.commands.sshnode

Package starcluster :: Package commands :: Module sshnode |
[hide private]
[frames] | no frames]

# Source Code for Module starcluster.commands.sshnode

     1  #!/usr/bin/env python
     2  import sys
     3  from completers import NodeCompleter
     4
     5
     6 -class CmdSshNode(NodeCompleter):
     7      """
     8      sshnode <cluster> <node> [<remote-command>]
     9
    10      SSH to a cluster node
    11
    12      Examples:
    13
    14          $ starcluster sshnode mycluster master
    15          $ starcluster sshnode mycluster node001
    16          ...
    17
    18      or same thing in shorthand:
    19
    20          $ starcluster sshnode mycluster 0
    21          $ starcluster sshnode mycluster 1
    22          ...
    23
    24      You can also execute commands without directly logging in:
    25
    26          $ starcluster sshnode mycluster node001 'cat /etc/hosts'
    27      """
    28      names = ['sshnode', 'sn']
    29
    30 -    def addopts(self, parser):
    31          parser.add_option("-u", "--user", dest="user", action="store",
    32                            type="string", default='root',
    33                            help="login as USER (defaults to root)")
    34
    35 -    def execute(self, args):
    36          if len(args) < 2:
    37              self.parser.error(
    38                  "please specify a cluster and node to connect to")
    39          scluster = args[0]
    40          node = args[1]
    41          cmd = ' '.join(args[2:])
    42          retval = self.cm.ssh_to_cluster_node(scluster, node,
    43                                               user=self.opts.user, command=cmd)
    44          if cmd and retval is not None:
    45              sys.exit(retval)
    46