3
3
produced by SMRT Portal.
4
4
"""
5
5
import logging , urllib2 , re , shutil
6
+ from string import Template
7
+ from galaxy .util import json
8
+
6
9
from data_transfer import *
7
10
8
11
log = logging .getLogger ( __name__ )
@@ -18,9 +21,16 @@ def create_job( self, trans, **kwd ):
18
21
sample = kwd [ 'sample' ]
19
22
smrt_job_id = kwd [ 'secondary_analysis_job_id' ]
20
23
external_service = sample .request .type .get_external_service ( 'pacific_biosciences_smrt_portal' )
24
+ external_service .load_data_transfer_settings ( trans )
25
+ http_configs = external_service .data_transfer [ trans .model .ExternalService .data_transfer_protocol .HTTP ]
26
+ if not http_configs [ 'automatic_transfer' ]:
27
+ raise Exception ( "Manual data transfer using http is not yet supported." )
21
28
smrt_host = external_service .form_values .content [ 'host' ]
22
- external_service_type_id = external_service .external_service_type_id
23
- external_service_type = self .app .external_service_types .all_external_service_types [ external_service_type_id ]
29
+ external_service_type = external_service .get_external_service_type ( trans )
30
+ # TODO: is there a better way to store the protocol?
31
+ # external_service_type.data_transfer looks somethng like
32
+ # {'http': <galaxy.sample_tracking.data_transfer.HttpDataTransferFactory object at 0x1064239d0>}
33
+ protocol = external_service_type .data_transfer .keys ()[0 ]
24
34
results = {}
25
35
for k , v in external_service .form_values .content .items ():
26
36
match = self .dataset_name_re .match ( k ) or self .dataset_datatype_re .match ( k )
@@ -42,6 +52,7 @@ def create_job( self, trans, **kwd ):
42
52
self .sa_session .add (sample )
43
53
self .sa_session .flush ()
44
54
params = { 'type' : 'init_transfer' ,
55
+ 'protocol' : protocol ,
45
56
'sample_id' : sample .id ,
46
57
'results' : results ,
47
58
'smrt_host' : smrt_host ,
@@ -50,6 +61,7 @@ def create_job( self, trans, **kwd ):
50
61
self ._associate_untransferred_datasets_with_sample ( sample , external_service , results )
51
62
elif 'transfer_job_id' in kwd :
52
63
params = { 'type' : 'finish_transfer' ,
64
+ 'protocol' : kwd [ 'result' ][ 'protocol' ],
53
65
'sample_id' : kwd [ 'sample_id' ],
54
66
'result' : kwd [ 'result' ],
55
67
'transfer_job_id' : kwd [ 'transfer_job_id' ] }
0 commit comments