Re: [galaxy-dev] Bug: Galaxy Tool Shed dependency communication via HTTP GET method

2013-09-14 Thread Richard Burhans

Folks,

After checking a little closer last night, I have one clarification.
The Tool Shed does use POSTs as well as GETs, but even when it's
POSTing, the encoded dictionaries (encoded_repo_info_dicts) are part
of the query string.  The encoded_repo_info_dicts should probably
become part of the POSTed data.

-rico

On Sep 12, 2013, at 3:55 PM, Richard Burhans wrote:


When installing Galaxy Tool Shed repositories into a local Galaxy
instance, tool shed dependecies are exchanged as an encoded python
dictionary via the HTTP GET method.

If a tool shed repository contains enough dependencies, the length
of this encoded dictionary can become extremely long.  In my case,
it became long enough for my Apache server to choke on it:

  [Wed Sep 11 15:34:53 2013] [error] [client XXX.XXX.XXX.XXX]  
request failed: URI too long (longer than 8190)


The HTTP standard does not place a limit on the length of a URI,
but the de facto limit is 2000 characters.  See the following
stackoverflow answer:

  http://stackoverflow.com/a/417184

I would recommend either:
  1) communicating toolshed dependencies via an HTTP POST
  2) redesigning tool shed - instance communications

As a stopgap measure, I've modified lib/tool_shed/util/ 
encoding_util.py

to use a more compact encoding scheme.  I'm attaching a copy in
case someone else runs into the same problem.

-ricoencoding_util.py


___
Please keep all replies on the list by using reply all
in your mail client.  To manage your subscriptions to this
and other Galaxy lists, please use the interface at:
 http://lists.bx.psu.edu/

To search Galaxy mailing lists use the unified search at:
 http://galaxyproject.org/search/mailinglists/


Re: [galaxy-dev] Conditional and validator: refresh_on_change without validation

2013-09-14 Thread Jeremy Goecks
You're not missing anything; using validators is the right way for checking 
parameter values. However, the page refreshes + validation errors is certainly 
less than ideal for usability. We're in the process of transitioning tool forms 
to a JavaScript-based framework so that full page refreshes (and associated 
validation checks) are no longer necessary.

J.

On Sep 11, 2013, at 4:26 AM, Kahlke Tim wrote:

 Hi
 
 I'm using the validator tag for simple sanity checks of a tool input. But I 
 realized that any conditional in the form will automatically call 
 refresh_on_change which also validates all fields and prints errror messages. 
 
 So questioin: is there a more galaxy-like way of checking input parameters? I 
 am aware of the possibility to do sanity checks through custom code 
 (http://wiki.galaxyproject.org/Admin/Tools/Custom%20Code) but the page states 
 it should only be done if there is no other way.
 
 Regards,
 Tim
 ___
 Please keep all replies on the list by using reply all
 in your mail client.  To manage your subscriptions to this
 and other Galaxy lists, please use the interface at:
  http://lists.bx.psu.edu/
 
 To search Galaxy mailing lists use the unified search at:
  http://galaxyproject.org/search/mailinglists/

___
Please keep all replies on the list by using reply all
in your mail client.  To manage your subscriptions to this
and other Galaxy lists, please use the interface at:
  http://lists.bx.psu.edu/

To search Galaxy mailing lists use the unified search at:
  http://galaxyproject.org/search/mailinglists/

Re: [galaxy-dev] Geek question re HTTP POST and Galaxy

2013-09-14 Thread Jeremy Goecks
Take a look at the histories controller (histories.py) for an example + 
documentation on how Galaxy realizes a RESTful interface. In short, you'll want 
to implement different methods for create, read, update, and delete. Kwds are 
miscellaneous parameters included in a request that are not explicitly 
specified in a method signature.

Good luck,
J.

On Sep 13, 2013, at 7:52 PM, Ted Goldstein, Ph.D. wrote:

 I've been knocking my head over this all afternoon and I was hoping to buy a 
 vowel, use a lifeline, whatever.
 
 I'm trying to use the Ember JS  framework (which is very nice) for some 
 extensions.  It relies heavily on a REST model using the same method with all 
 of the HTTP forms including 
 
 ActionHTTP Verb   URL
 Find  GET /people/123
 Find All  GET /people
 UpdatePUT /people/123  (with the HTTP payload packed with the 
 JSON content)
 CreatePOST/people
 DeleteDELETE  /people/123
 
 How can I make an API function that responds to all five forms and what 
 should be in buildapp.py?
 
 All of the code in Galaxy currently uses the kwd (keyword) parameter. But 
 there are no keywords here.
 
 Confused,
 Ted
 
 
 ___
 Please keep all replies on the list by using reply all
 in your mail client.  To manage your subscriptions to this
 and other Galaxy lists, please use the interface at:
  http://lists.bx.psu.edu/
 
 To search Galaxy mailing lists use the unified search at:
  http://galaxyproject.org/search/mailinglists/


___
Please keep all replies on the list by using reply all
in your mail client.  To manage your subscriptions to this
and other Galaxy lists, please use the interface at:
  http://lists.bx.psu.edu/

To search Galaxy mailing lists use the unified search at:
  http://galaxyproject.org/search/mailinglists/


Re: [galaxy-dev] Geek question re HTTP POST and Galaxy

2013-09-14 Thread Ted Goldstein
Sweet! 
Thanks
Ted

On Sep 14, 2013, at 11:04 AM, Jeremy Goecks jeremy.goe...@emory.edu wrote:

 Take a look at the histories controller (histories.py) for an example + 
 documentation on how Galaxy realizes a RESTful interface. In short, you'll 
 want to implement different methods for create, read, update, and delete. 
 Kwds are miscellaneous parameters included in a request that are not 
 explicitly specified in a method signature.
 
 Good luck,
 J.
 
 On Sep 13, 2013, at 7:52 PM, Ted Goldstein, Ph.D. wrote:
 
 I've been knocking my head over this all afternoon and I was hoping to buy a 
 vowel, use a lifeline, whatever.
 
 I'm trying to use the Ember JS  framework (which is very nice) for some 
 extensions.  It relies heavily on a REST model using the same method with 
 all of the HTTP forms including 
 
 Action   HTTP Verb   URL
 Find GET /people/123
 Find All GET /people
 Update   PUT /people/123  (with the HTTP payload packed with the 
 JSON content)
 Create   POST/people
 Delete   DELETE  /people/123
 
 How can I make an API function that responds to all five forms and what 
 should be in buildapp.py?
 
 All of the code in Galaxy currently uses the kwd (keyword) parameter. But 
 there are no keywords here.
 
 Confused,
 Ted
 
 
 ___
 Please keep all replies on the list by using reply all
 in your mail client.  To manage your subscriptions to this
 and other Galaxy lists, please use the interface at:
 http://lists.bx.psu.edu/
 
 To search Galaxy mailing lists use the unified search at:
 http://galaxyproject.org/search/mailinglists/
 


___
Please keep all replies on the list by using reply all
in your mail client.  To manage your subscriptions to this
and other Galaxy lists, please use the interface at:
  http://lists.bx.psu.edu/

To search Galaxy mailing lists use the unified search at:
  http://galaxyproject.org/search/mailinglists/