I already did that. ;)<div>Now I&#39;m getting another error:</div><div><br></div><div><div>In [1]: cluster.run_plugin(&quot;shortreadplugin&quot;,&quot;myfirstcluster&quot;,cfg)</div><div>&gt;&gt;&gt; Using private key /Users/dante/.ec2/bioc-keypair.pem.rsa (rsa)</div>
<div>---------------------------------------------------------------------------</div><div>AttributeError                            Traceback (most recent call last)</div><div><br></div><div>/Library/Python/2.6/site-packages/StarCluster-0.91-py2.6.egg/starcluster/cli.pyc in &lt;module&gt;()</div>
<div>----&gt; 1 </div><div>      2 </div><div>      3 </div><div>      4 </div><div>      5 </div><div><br></div><div>/Library/Python/2.6/site-packages/StarCluster-0.91-py2.6.egg/starcluster/cluster.pyc in run_plugin(plugin_name, cluster_tag, cfg)</div>
<div>    175     plugins = {}</div><div>    176     plugins[plugin_name] = plug</div><div>--&gt; 177     plugins = cl.load_plugins(plugins)</div><div>    178     master = cl.master_node</div><div>    179     for p in plugins:</div>
<div><br></div><div>/Library/Python/2.6/site-packages/StarCluster-0.91-py2.6.egg/starcluster/cluster.pyc in load_plugins(self, plugins)</div><div>    314         plugs = []</div><div>    315         for plugin in plugins:</div>
<div>--&gt; 316             setup_class = plugin.get(&#39;setup_class&#39;)</div><div>    317             plugin_name = plugin.get(&#39;__name__&#39;)</div><div>    318             mod_name = &#39;.&#39;.join(setup_class.split(&#39;.&#39;)[:-1])</div>
<div><br></div><div>AttributeError: &#39;str&#39; object has no attribute &#39;get&#39;</div><div><br></div><div>Hmm....</div><div>Dan</div><div><br></div><br><div class="gmail_quote">On Sat, Oct 30, 2010 at 11:27 AM, Marc Resnick <span dir="ltr">&lt;<a href="mailto:mresnick@mit.edu">mresnick@mit.edu</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Yes, that&#39;s the bug I told Justin about this Summer... I think I<br>
patched it, but he may have forgotten to pull from my fork.<br>
<br>
You can fix it by editing the run_plugin method, and replacing<br>
<div class="im"><br>
 cl = get_cluster(cluster_tag)<br>
<br>
</div>with<br>
<br>
 cl = get_cluster(cluster_tag, cfg)<br>
<font color="#888888"><br>
<br>
<br>
Marc<br>
</font><div><div></div><div class="h5"><br>
<br>
On Sat, Oct 30, 2010 at 2:20 PM, Dan Tenenbaum &lt;<a href="mailto:dtenenba@fhcrc.org">dtenenba@fhcrc.org</a>&gt; wrote:<br>
&gt; Hi Marc,<br>
&gt; I am running 0.91.<br>
&gt; I was doing a couple things wrong. I figured them out but I am still having<br>
&gt; this problem.<br>
&gt; One thing I did wrong was have the<br>
&gt; plugins=shortreadplugin<br>
&gt; line under the global section; it needed to be under the<br>
&gt; [cluster smallcluster]<br>
&gt; section.<br>
&gt; When I start the cluster now, I can see the output from my plugin:<br>
&gt;&gt;&gt;&gt; Running plugin shortreadplugin<br>
&gt;&gt;&gt;&gt; about to echo<br>
&gt; But, when I run the shell and put in this command:<br>
&gt; cluster.run_plugin(&quot;shortreadplugin&quot;,&quot;myfirstcluster&quot;,cfg)<br>
&gt; I get the same error described below.<br>
&gt; Dan<br>
&gt;<br>
&gt; On Sat, Oct 30, 2010 at 11:11 AM, Marc Resnick &lt;<a href="mailto:mresnick@mit.edu">mresnick@mit.edu</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; Hey Dan,<br>
&gt;&gt;<br>
&gt;&gt; Are you running the latest version? I saw that bug a few months ago, I<br>
&gt;&gt; thought I remember Justin fixing it.<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; Marc<br>
&gt;&gt;<br>
&gt;&gt; On Sat, Oct 30, 2010 at 2:00 PM, Dan Tenenbaum &lt;<a href="mailto:dtenenba@fhcrc.org">dtenenba@fhcrc.org</a>&gt; wrote:<br>
&gt;&gt; &gt; Hi,<br>
&gt;&gt; &gt; I am not much of a python programmer and I&#39;m trying to figure out the<br>
&gt;&gt; &gt; plugin<br>
&gt;&gt; &gt; system.<br>
&gt;&gt; &gt; I created a ~/.starcluster/plugins directory and put a file in it called<br>
&gt;&gt; &gt; shortread.py.<br>
&gt;&gt; &gt; Here are its contents:<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; from starcluster.clustersetup import ClusterSetup<br>
&gt;&gt; &gt; from starcluster.logger import log<br>
&gt;&gt; &gt; class ShortReadPlugin(ClusterSetup):<br>
&gt;&gt; &gt;      def __init__(self, arg1):<br>
&gt;&gt; &gt;           self.arg1 = arg1<br>
&gt;&gt; &gt;           <a href="http://log.info" target="_blank">log.info</a>(&#39;arg1 = %s&#39; % arg1)<br>
&gt;&gt; &gt;      def run(self, nodes, master, user, user_shell, volumes):<br>
&gt;&gt; &gt;          <a href="http://log.info" target="_blank">log.info</a>(&quot;about to echo&quot;)<br>
&gt;&gt; &gt;          master.ssh.execute(&quot;echo &#39;hey&#39;&quot;)<br>
&gt;&gt; &gt; As you can see, it&#39;s just a test.<br>
&gt;&gt; &gt; In my config, I put this at the bottom:<br>
&gt;&gt; &gt; [plugin shortreadplugin]<br>
&gt;&gt; &gt; SETUP_CLASS = ShortReadPlugin<br>
&gt;&gt; &gt; arg1=foo<br>
&gt;&gt; &gt; And above in the [global] section I put:<br>
&gt;&gt; &gt; plugins=shortreadplugin<br>
&gt;&gt; &gt; I&#39;m a bit confused about whether this is right because in your example:<br>
&gt;&gt; &gt; <a href="http://web.mit.edu/stardev/cluster/docs/plugins.html" target="_blank">http://web.mit.edu/stardev/cluster/docs/plugins.html</a><br>
&gt;&gt; &gt; ...you have the SETUP_CLASS as ubuntu.PackageInstaller. I&#39;m not sure<br>
&gt;&gt; &gt; where<br>
&gt;&gt; &gt; the &quot;ubuntu&quot; fits into this. Is it like java where I need to have a<br>
&gt;&gt; &gt; folder<br>
&gt;&gt; &gt; called ubuntu where the class resides?<br>
&gt;&gt; &gt; Anyway, I fired up my cluster and went to test this with &quot;starcluster<br>
&gt;&gt; &gt; shell&quot;<br>
&gt;&gt; &gt; and got the following output:<br>
&gt;&gt; &gt; In [5]: cluster.run_plugin(&#39;shortreadplugin&#39;, &#39;myfirstcluster&#39;, cfg)<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; ---------------------------------------------------------------------------<br>
&gt;&gt; &gt; TypeError                                 Traceback (most recent call<br>
&gt;&gt; &gt; last)<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; /Library/Python/2.6/site-packages/StarCluster-0.91-py2.6.egg/starcluster/cli.pyc<br>
&gt;&gt; &gt; in &lt;module&gt;()<br>
&gt;&gt; &gt; ----&gt; 1<br>
&gt;&gt; &gt;       2<br>
&gt;&gt; &gt;       3<br>
&gt;&gt; &gt;       4<br>
&gt;&gt; &gt;       5<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; /Library/Python/2.6/site-packages/StarCluster-0.91-py2.6.egg/starcluster/cluster.pyc<br>
&gt;&gt; &gt; in run_plugin(plugin_name, cluster_tag, cfg)<br>
&gt;&gt; &gt;     170 def run_plugin(plugin_name, cluster_tag, cfg):<br>
&gt;&gt; &gt;     171     ec2 = cfg.get_easy_ec2()<br>
&gt;&gt; &gt; --&gt; 172     cl = get_cluster(cluster_tag)<br>
&gt;&gt; &gt;     173     cl.load_receipt()<br>
&gt;&gt; &gt;     174     plug = cfg.get_plugin(plugin_name)<br>
&gt;&gt; &gt; TypeError: get_cluster() takes exactly 2 arguments (1 given)<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; It&#39;s hard for me to understand what&#39;s happening here. I of course am not<br>
&gt;&gt; &gt; calling get_cluster directly. Is there a bug in run_plugin() or is there<br>
&gt;&gt; &gt; something wrong in my setup, or both?<br>
&gt;&gt; &gt; Thanks<br>
&gt;&gt; &gt; Dan<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; _______________________________________________<br>
&gt;&gt; &gt; StarCluster mailing list<br>
&gt;&gt; &gt; <a href="mailto:StarCluster@mit.edu">StarCluster@mit.edu</a><br>
&gt;&gt; &gt; <a href="http://mailman.mit.edu/mailman/listinfo/starcluster" target="_blank">http://mailman.mit.edu/mailman/listinfo/starcluster</a><br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt;<br>
&gt;<br>
&gt;<br>
<br>
</div></div></blockquote></div><br></div>