class CmdShell(CmdBase): """ shell Load an interactive IPython shell configured for starcluster development The following objects are automatically available at the prompt: cfg - starcluster.config.StarClusterConfig instance ec2 - starcluster.awsutils.EasyEC2 instance s3 - starcluster.awsutils.EasyS3 instance All starcluster modules are automatically imported in the IPython session along with the boto and paramiko modules """ names = ['shell', 'sh'] def execute(self, args): local_ns = dict(cfg=self.cfg, ec2=self.ec2, s3=self.s3, cm=self.cm) import starcluster local_ns.update(dict(starcluster=starcluster)) modules = [(starcluster.__name__ + '.' + i, i) \ for i in starcluster.__all__] modules += [('boto', 'boto'), ('paramiko', 'paramiko')] for fullname, modname in modules: log.info('Importing module %s' % modname) try: __import__(fullname) local_ns[modname] = sys.modules[fullname] except ImportError, e: log.error("Error loading module %s: %s" % (modname, e)) utils.ipy_shell(local_ns=local_ns)
'ipcontroller-client.json') if cl.master_node.ssh.isfile(json): log.info("Fetching connector file from cluster...") os.makedirs(ipcluster_dir) cl.master_node.ssh.get(json, local_json) else: self.parser.error( "IPython json file %s does not exist locally or on " "the cluster. Make sure the ipcluster plugin has " "been executed and completed successfully.") key_location = cl.master_node.key_location self._add_to_known_hosts(cl.master_node) log.info("Loading parallel IPython client and view") rc = Client(local_json, sshkey=key_location, packer='pickle') local_ns['Client'] = Client local_ns['ipcluster'] = cl local_ns['ipclient'] = rc local_ns['ipview'] = rc[:] modules = [(starcluster.__name__ + '.' + module, module) for module in starcluster.__all__] modules += [('boto', 'boto'), ('paramiko', 'paramiko'), ('workerpool', 'workerpool'), ('jinja2', 'jinja2')] for fullname, modname in modules: log.info('Importing module %s' % modname) try: __import__(fullname) local_ns[modname] = sys.modules[fullname] except ImportError, e: log.error("Error loading module %s: %s" % (modname, e)) utils.ipy_shell(local_ns=local_ns)
'ipcontroller-client.json') if cl.master_node.ssh.isfile(json): log.info("Fetching connector file from cluster...") os.makedirs(ipcluster_dir) cl.master_node.ssh.get(json, local_json) else: self.parser.error( "IPython json file %s does not exist locally or on " "the cluster. Make sure the ipcluster plugin has " "been executed and completed successfully.") key_location = cl.master_node.key_location self._add_to_known_hosts(cl.master_node) log.info("Loading parallel IPython client and view") rc = Client(local_json, sshkey=key_location, packer='pickle') local_ns['Client'] = Client local_ns['ipcluster'] = cl local_ns['ipclient'] = rc local_ns['ipview'] = rc[:] modules = [(starcluster.__name__ + '.' + module, module) for module in starcluster.__all__] modules += [('boto', 'boto'), ('ssh', 'ssh'), ('workerpool', 'workerpool'), ('jinja2', 'jinja2')] for fullname, modname in modules: log.info('Importing module %s' % modname) try: __import__(fullname) local_ns[modname] = sys.modules[fullname] except ImportError, e: log.error("Error loading module %s: %s" % (modname, e)) utils.ipy_shell(local_ns=local_ns)