Hi Nicola,
             I've merged your changes into my version of the galaxy code 
(slightly older than galaxy-central) I believe, however, I get the following 
error when I try and execute your script:

Traceback (most recent call last):
  File "get_wfs.py", line 13, in <module>
    common.post(api_key, 'http://barium-rbh:9100/extras/api/workflows/import', 
  File "/home/galaxy/milxcloud/scripts/api/common.py", line 48, in post
    return simplejson.loads( urllib2.urlopen( req ).read() )
  File "/usr/lib/python2.7/urllib2.py", line 126, in urlopen
    return _opener.open(url, data, timeout)
  File "/usr/lib/python2.7/urllib2.py", line 406, in open
    response = meth(req, response)
  File "/usr/lib/python2.7/urllib2.py", line 519, in http_response
    'http', request, response, code, msg, hdrs)
  File "/usr/lib/python2.7/urllib2.py", line 444, in error
    return self._call_chain(*args)
  File "/usr/lib/python2.7/urllib2.py", line 378, in _call_chain
    result = func(*args)
  File "/usr/lib/python2.7/urllib2.py", line 527, in http_error_default
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
urllib2.HTTPError: HTTP Error 500: Internal Server Error

so I printed out the some lines in common.py 

def post( api_key, url, data ):
    # Do the actual POST.
    url = make_url( api_key, url )
    print "URL is %s" % url

>>> URL is 
>>> http://barium-rbh:9100/extras/api/workflows/import?key=34ee80757f0d03de36e33a1676d245e4

the script is:
import sys
#sys.path.insert(1, 'milxcloud/scripts/api')
import common
api_key = '34ee80757f0d03de36e33a1676d245e4'
workflows = common.get(api_key, 
print workflows
published_workflow_ids = [str(workflow[u'id']) for workflow in workflows if 
print published_workflow_ids

for pw_id in published_workflow_ids:
    data = {}
    data['workflow_id'] = pw_id
    common.post(api_key, 'http://barium-rbh:9100/extras/api/workflows/import', 

and I run it from ~/scripts/api

The output from the script is :
python get_wfs.py 
[{'name': 'SUVR', 'tags': [], 'url': '/extras/api/workflows/f2db41e1fa331b3e', 
'published': True, 'model_class': 'StoredWorkflow', 'id': 'f2db41e1fa331b3e'}, 
{'name': 'processSUVRData', 'tags': [], 'url': 
'/extras/api/workflows/f597429621d6eb2b', 'published': True, 'model_class': 
'StoredWorkflow', 'id': 'f597429621d6eb2b'}]
['f2db41e1fa331b3e', 'f597429621d6eb2b']
URL is 

Any ideas why the import maybe failing?


From: Nicola Soranzo [sora...@crs4.it]
Sent: Monday, January 20, 2014 9:03 PM
To: Burdett, Neil (CCI, Herston - RBWH)
Cc: galaxy-dev@lists.bx.psu.edu
Subject: Re: Import workflows via API

Hi Neil,
to import all published workflows you can use a script like this:

import sys
sys.path.insert(1, 'galaxy-central/scripts/api')
import common
api_key = 'YOUR_USER_API_KEY'
workflows = common.get(api_key,
published_workflow_ids = [str(workflow[u'id']) for workflow in
workflows if bool(workflow[u'published'])]
for pw_id in published_workflow_ids:
     data['workflow_id'] = pw_id
     common.post(api_key, 'http://YOUR_SERVER/api/workflows/import',


Il 2014-01-19 03:12 neil.burd...@csiro.au ha scritto:
> Hi Nicola,
>                 that is exactly what I'm looking for, however, how do
> I execute the script/tool? I would like to import all published
> workflows. What is the name of the script to run and the arguments ?
> Can you give an example please?
> Thanks again
> Neil
> Date: Fri, 17 Jan 2014 11:36:03 +0100
> From: Nicola Soranzo <sora...@crs4.it>
> To: <galaxy-dev@lists.bx.psu.edu>
> Subject: Re: [galaxy-dev] Import workflows via API
> Message-ID: <d834d247437269704a26e8bbf8f67...@crs4.it>
> Content-Type: text/plain; charset=UTF-8; format=flowed
> Il 2014-01-17 06:45 neil.burd...@csiro.au ha scritto:
>> Hi,
>>  I execute workflows via the API. However, if I want another user to
>> use my workflows, I can publish my workflows, but the new user then
>> has to go on to the web browser and import this workflow.
>> Is there a method/script which I can call via the API which can
>> import
>> all available (published) workflows so the user doesn't have to
>> click
>> a button on the web browser "import workflow" ?
>> Thanks for any help
> Hi Neil,
> you are very lucky, just yesterday my pull request implementing
> exactly
> this has been merged in galaxy-central:
> https://bitbucket.org/galaxy/galaxy-central/pull-request/298/api-display-and-import-workflows-shared-by/diff
> and is also available in BioBlend thanks to my colleague Simone Leo:
> https://github.com/afgane/bioblend/pull/51
> Best,
> Nicola
> --
> Nicola Soranzo, Ph.D.
> Bioinformatics Program, CRS4
> Loc. Piscina Manna, 09010 Pula (CA), Italy
> http://www.bioinformatica.crs4.it/

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:

To search Galaxy mailing lists use the unified search at:

Reply via email to