Loading
Ensure datatypes match on dragging elements into FormData
This is pretty common source of cheetah templating issues where tool authors assume (orrectly, IMO) only datatypes allowed in the format attribute of an input dataset are allowed. Here's a hypothetical example: ``` # set index = $input.cram_index # set index = $input.cram_index ln -s '$index' input.index ``` This is going to fail if a user drag e.g. a txt dataset into the input. For anything but the valid datatypes this is going to fail. Another way things can fail is if an input datatypes should contain extra files, but doesn't, for instance in https://sentry.galaxyproject.org/share/issue/73d7bd51dd2d418e96d563f0ac2383f0/: ``` Exception: __action_for_transfer called on non-existent file - [None] File "galaxy/jobs/runners/pulsar.py", line 446, in queue_job external_job_id = pulsar_submit_job(client, client_job_description, remote_job_config) File "pulsar/client/staging/up.py", line 39, in submit_job file_stager = FileStager(client, client_job_description, job_config) File "pulsar/client/staging/up.py", line 148, in __init__ self.__upload_input_files() File "pulsar/client/staging/up.py", line 264, in __upload_input_files self.__upload_input_metadata_file(client_input.action_source) File "pulsar/client/staging/up.py", line 287, in __upload_input_metadata_file self.transfer_tracker.handle_transfer_source(input_action_source, path_type.INPUT, name=remote_name) File "pulsar/client/staging/up.py", line 495, in handle_transfer_source action = self.__action_for_transfer(source, type, contents) File "pulsar/client/staging/up.py", line 551, in __action_for_transfer raise Exception(message) ``` Fixes https://github.com/galaxyproject/galaxy/issues/8202 We can now easily change datatypes in batch if necessary, this shouldn't be an argument to not properly implement datatype filtering.