[StarCluster] plugin shell help

Dan Tenenbaum dtenenba at fhcrc.org
Sat Oct 30 14:45:48 EDT 2010


Keeping this on the list.
BTW, the new cluster.py has no syntax errors, so something else must be
happening.
Dan


On Sat, Oct 30, 2010 at 11:44 AM, Dan Tenenbaum <dtenenba at fhcrc.org> wrote:

> Thanks. That gave me a different error, below.
> The first time this happened, I did:
> sudo easy_install iptools, but it is still happening.
>
> Dan
>
> $ starcluster shell
> Leopard libedit detected.
> ERROR: An unexpected error occurred while tokenizing input
> The following traceback may be corrupted or invalid
> The error message is: ('EOF in multi-line statement', (405, 0))
>
> ---------------------------------------------------------------------------
> ImportError                               Traceback (most recent call last)
>
> /Library/Python/2.6/site-packages/StarCluster-0.91-py2.6.egg/EGG-INFO/scripts/starcluster
> in <module>()
>       3 __requires__ = 'StarCluster==0.91'
>       4 import pkg_resources
> ----> 5 pkg_resources.run_script('StarCluster==0.91', 'starcluster')
>       6
>       7
>
> /System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/pkg_resources.pyc
> in run_script(self, requires, script_name)
>     440         ns.clear()
>     441         ns['__name__'] = name
> --> 442         self.require(requires)[0].run_script(script_name, ns)
>     443
>     444
>
> /System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/pkg_resources.pyc
> in run_script(self, script_name, namespace)
>    1165             )
>    1166             script_code =
> compile(script_text,script_filename,'exec')
> -> 1167             exec script_code in namespace, namespace
>    1168
>    1169     def _has(self, path):
>
> /Library/Python/2.6/site-packages/StarCluster-0.91-py2.6.egg/EGG-INFO/scripts/starcluster
> in <module>()
>       1
> ----> 2 #!/usr/bin/python
>
>       3 # EASY-INSTALL-SCRIPT: 'StarCluster==0.91','starcluster'
>
>       4 __requires__ = 'StarCluster==0.91'
>       5 import pkg_resources
>       6 pkg_resources.run_script('StarCluster==0.91', 'starcluster')
>
> /Users/dante/.starcluster/build/bdist.macosx-10.6-universal/egg/starcluster/cli.py
> in <module>()
>      36
>      37
> ---> 38
>      39
>      40
>
> /Users/dante/.starcluster/build/bdist.macosx-10.6-universal/egg/starcluster/cluster.py
> in <module>()
>      10
>      11
> ---> 12
>      13
>      14
>
> ImportError: cannot import name iptools
>
>
> On Sat, Oct 30, 2010 at 11:38 AM, Marc Resnick <mresnick at mit.edu> wrote:
>
>> The version here
>>
>> http://github.com/jtriley/StarCluster/blob/experimental/starcluster/cluster.py
>> may have those bugs fixed, as I remember that one as well.
>>
>>
>> Marc
>>
>> On Sat, Oct 30, 2010 at 2:31 PM, Dan Tenenbaum <dtenenba at fhcrc.org>
>> wrote:
>> > I already did that. ;)
>> > Now I'm getting another error:
>> > In [1]: cluster.run_plugin("shortreadplugin","myfirstcluster",cfg)
>> >>>> Using private key /Users/dante/.ec2/bioc-keypair.pem.rsa (rsa)
>> >
>> ---------------------------------------------------------------------------
>> > AttributeError                            Traceback (most recent call
>> last)
>> >
>> /Library/Python/2.6/site-packages/StarCluster-0.91-py2.6.egg/starcluster/cli.pyc
>> > in <module>()
>> > ----> 1
>> >       2
>> >       3
>> >       4
>> >       5
>> >
>> /Library/Python/2.6/site-packages/StarCluster-0.91-py2.6.egg/starcluster/cluster.pyc
>> > in run_plugin(plugin_name, cluster_tag, cfg)
>> >     175     plugins = {}
>> >     176     plugins[plugin_name] = plug
>> > --> 177     plugins = cl.load_plugins(plugins)
>> >     178     master = cl.master_node
>> >     179     for p in plugins:
>> >
>> /Library/Python/2.6/site-packages/StarCluster-0.91-py2.6.egg/starcluster/cluster.pyc
>> > in load_plugins(self, plugins)
>> >     314         plugs = []
>> >     315         for plugin in plugins:
>> > --> 316             setup_class = plugin.get('setup_class')
>> >     317             plugin_name = plugin.get('__name__')
>> >     318             mod_name = '.'.join(setup_class.split('.')[:-1])
>> > AttributeError: 'str' object has no attribute 'get'
>> > Hmm....
>> > Dan
>> >
>> > On Sat, Oct 30, 2010 at 11:27 AM, Marc Resnick <mresnick at mit.edu>
>> wrote:
>> >>
>> >> Yes, that's the bug I told Justin about this Summer... I think I
>> >> patched it, but he may have forgotten to pull from my fork.
>> >>
>> >> You can fix it by editing the run_plugin method, and replacing
>> >>
>> >>  cl = get_cluster(cluster_tag)
>> >>
>> >> with
>> >>
>> >>  cl = get_cluster(cluster_tag, cfg)
>> >>
>> >>
>> >>
>> >> Marc
>> >>
>> >>
>> >> On Sat, Oct 30, 2010 at 2:20 PM, Dan Tenenbaum <dtenenba at fhcrc.org>
>> wrote:
>> >> > Hi Marc,
>> >> > I am running 0.91.
>> >> > I was doing a couple things wrong. I figured them out but I am still
>> >> > having
>> >> > this problem.
>> >> > One thing I did wrong was have the
>> >> > plugins=shortreadplugin
>> >> > line under the global section; it needed to be under the
>> >> > [cluster smallcluster]
>> >> > section.
>> >> > When I start the cluster now, I can see the output from my plugin:
>> >> >>>> Running plugin shortreadplugin
>> >> >>>> about to echo
>> >> > But, when I run the shell and put in this command:
>> >> > cluster.run_plugin("shortreadplugin","myfirstcluster",cfg)
>> >> > I get the same error described below.
>> >> > Dan
>> >> >
>> >> > On Sat, Oct 30, 2010 at 11:11 AM, Marc Resnick <mresnick at mit.edu>
>> wrote:
>> >> >>
>> >> >> Hey Dan,
>> >> >>
>> >> >> Are you running the latest version? I saw that bug a few months ago,
>> I
>> >> >> thought I remember Justin fixing it.
>> >> >>
>> >> >>
>> >> >> Marc
>> >> >>
>> >> >> On Sat, Oct 30, 2010 at 2:00 PM, Dan Tenenbaum <dtenenba at fhcrc.org>
>> >> >> wrote:
>> >> >> > Hi,
>> >> >> > I am not much of a python programmer and I'm trying to figure out
>> the
>> >> >> > plugin
>> >> >> > system.
>> >> >> > I created a ~/.starcluster/plugins directory and put a file in it
>> >> >> > called
>> >> >> > shortread.py.
>> >> >> > Here are its contents:
>> >> >> >
>> >> >> > from starcluster.clustersetup import ClusterSetup
>> >> >> > from starcluster.logger import log
>> >> >> > class ShortReadPlugin(ClusterSetup):
>> >> >> >      def __init__(self, arg1):
>> >> >> >           self.arg1 = arg1
>> >> >> >           log.info('arg1 = %s' % arg1)
>> >> >> >      def run(self, nodes, master, user, user_shell, volumes):
>> >> >> >          log.info("about to echo")
>> >> >> >          master.ssh.execute("echo 'hey'")
>> >> >> > As you can see, it's just a test.
>> >> >> > In my config, I put this at the bottom:
>> >> >> > [plugin shortreadplugin]
>> >> >> > SETUP_CLASS = ShortReadPlugin
>> >> >> > arg1=foo
>> >> >> > And above in the [global] section I put:
>> >> >> > plugins=shortreadplugin
>> >> >> > I'm a bit confused about whether this is right because in your
>> >> >> > example:
>> >> >> > http://web.mit.edu/stardev/cluster/docs/plugins.html
>> >> >> > ...you have the SETUP_CLASS as ubuntu.PackageInstaller. I'm not
>> sure
>> >> >> > where
>> >> >> > the "ubuntu" fits into this. Is it like java where I need to have
>> a
>> >> >> > folder
>> >> >> > called ubuntu where the class resides?
>> >> >> > Anyway, I fired up my cluster and went to test this with
>> "starcluster
>> >> >> > shell"
>> >> >> > and got the following output:
>> >> >> > In [5]: cluster.run_plugin('shortreadplugin', 'myfirstcluster',
>> cfg)
>> >> >> >
>> >> >> >
>> >> >> >
>> ---------------------------------------------------------------------------
>> >> >> > TypeError                                 Traceback (most recent
>> call
>> >> >> > last)
>> >> >> >
>> >> >> >
>> >> >> >
>> /Library/Python/2.6/site-packages/StarCluster-0.91-py2.6.egg/starcluster/cli.pyc
>> >> >> > in <module>()
>> >> >> > ----> 1
>> >> >> >       2
>> >> >> >       3
>> >> >> >       4
>> >> >> >       5
>> >> >> >
>> >> >> >
>> >> >> >
>> /Library/Python/2.6/site-packages/StarCluster-0.91-py2.6.egg/starcluster/cluster.pyc
>> >> >> > in run_plugin(plugin_name, cluster_tag, cfg)
>> >> >> >     170 def run_plugin(plugin_name, cluster_tag, cfg):
>> >> >> >     171     ec2 = cfg.get_easy_ec2()
>> >> >> > --> 172     cl = get_cluster(cluster_tag)
>> >> >> >     173     cl.load_receipt()
>> >> >> >     174     plug = cfg.get_plugin(plugin_name)
>> >> >> > TypeError: get_cluster() takes exactly 2 arguments (1 given)
>> >> >> >
>> >> >> > It's hard for me to understand what's happening here. I of course
>> am
>> >> >> > not
>> >> >> > calling get_cluster directly. Is there a bug in run_plugin() or is
>> >> >> > there
>> >> >> > something wrong in my setup, or both?
>> >> >> > Thanks
>> >> >> > Dan
>> >> >> >
>> >> >> > _______________________________________________
>> >> >> > StarCluster mailing list
>> >> >> > StarCluster at mit.edu
>> >> >> > http://mailman.mit.edu/mailman/listinfo/starcluster
>> >> >> >
>> >> >> >
>> >> >>
>> >> >
>> >> >
>> >>
>> >
>> >
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.mit.edu/pipermail/starcluster/attachments/20101030/f1eca113/attachment.htm


More information about the StarCluster mailing list