starcluster.commands.shell

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

# Source Code for Module starcluster.commands.shell

     1  #!/usr/bin/env python
     2  import sys
     3
     4  import starcluster
     5  from starcluster import utils
     6  from starcluster.logger import log
     7
     8  from base import CmdBase
     9
    10
    11 -class CmdShell(CmdBase):
    12      """
    13      shell
    14
    15      Load an interactive IPython shell configured for starcluster development
    16
    17      The following objects are automatically available at the prompt:
    18
    19          cfg - starcluster.config.StarClusterConfig instance
    20          ec2 - starcluster.awsutils.EasyEC2 instance
    21          s3 - starcluster.awsutils.EasyS3 instance
    22
    23      All starcluster modules are automatically imported in the IPython session
    24      along with the boto and paramiko modules
    25      """
    26      names = ['shell', 'sh']
    27
    28 -    def execute(self, args):
    29          local_ns = dict(cfg=self.cfg, ec2=self.ec2, s3=self.s3, cm=self.cm,
    30                          starcluster=starcluster)
    31          modules = [(starcluster.__name__ + '.' + module, module) \
    32                     for module in starcluster.__all__]
    33          modules += [('boto', 'boto'), ('paramiko', 'paramiko'),
    34                      ('workerpool', 'workerpool'), ('jinja2', 'jinja2')]
    35          for fullname, modname in modules:
    36              log.info('Importing module %s' % modname)
    37              try:
    38                  __import__(fullname)
    39                  local_ns[modname] = sys.modules[fullname]
    40              except ImportError, e:
    41                  log.error("Error loading module %s: %s" % (modname, e))
    42          utils.ipy_shell(local_ns=local_ns)
    43