def get_repository_revision_install_info( self, trans, name, owner, changeset_revision, **kwd ): """ GET /api/repositories/get_repository_revision_install_info :param name: the name of the Repository :param owner: the owner of the Repository :param changeset_revision: the changeset_revision of the RepositoryMetadata object associated with the Repository Returns a list of the following dictionaries:: - a dictionary defining the Repository. For example: { "deleted": false, "deprecated": false, "description": "add_column hello", "id": "f9cad7b01a472135", "long_description": "add_column hello", "name": "add_column", "owner": "test", "private": false, "times_downloaded": 6, "url": "/api/repositories/f9cad7b01a472135", "user_id": "f9cad7b01a472135" } - a dictionary defining the Repository revision (RepositoryMetadata). For example: { "changeset_revision": "3a08cc21466f", "downloadable": true, "has_repository_dependencies": false, "has_repository_dependencies_only_if_compiling_contained_td": false, "id": "f9cad7b01a472135", "includes_datatypes": false, "includes_tool_dependencies": false, "includes_tools": true, "includes_tools_for_display_in_tool_panel": true, "includes_workflows": false, "malicious": false, "repository_id": "f9cad7b01a472135", "url": "/api/repository_revisions/f9cad7b01a472135" } - a dictionary including the additional information required to install the repository. For example: { "add_column": [ "add_column hello", "http://test@localhost:9009/repos/test/add_column", "3a08cc21466f", "1", "test", {}, {} ] } """ # Example URL: # http://<xyz>/api/repositories/get_repository_revision_install_info?name=<n>&owner=<o>&changeset_revision=<cr> if name and owner and changeset_revision: # Get the repository information. repository = suc.get_repository_by_name_and_owner( trans.app, name, owner ) if repository is None: log.debug( 'Cannot locate repository %s owned by %s' % ( str( name ), str( owner ) ) ) return {}, {}, {} encoded_repository_id = trans.security.encode_id( repository.id ) repository_dict = repository.to_dict( view='element', value_mapper=self.__get_value_mapper( trans ) ) repository_dict[ 'url' ] = web.url_for( controller='repositories', action='show', id=encoded_repository_id ) # Get the repository_metadata information. repository_metadata = suc.get_repository_metadata_by_changeset_revision( trans.app, encoded_repository_id, changeset_revision ) if repository_metadata is None: # The changeset_revision column in the repository_metadata table has been updated with a new # value value, so find the changeset_revision to which we need to update. repo = hg_util.get_repo_for_repository( trans.app, repository=repository, repo_path=None, create=False ) new_changeset_revision = suc.get_next_downloadable_changeset_revision( repository, repo, changeset_revision ) repository_metadata = suc.get_repository_metadata_by_changeset_revision( trans.app, encoded_repository_id, new_changeset_revision ) changeset_revision = new_changeset_revision if repository_metadata is not None: encoded_repository_metadata_id = trans.security.encode_id( repository_metadata.id ) repository_metadata_dict = repository_metadata.to_dict( view='collection', value_mapper=self.__get_value_mapper( trans ) ) repository_metadata_dict[ 'url' ] = web.url_for( controller='repository_revisions', action='show', id=encoded_repository_metadata_id ) # Get the repo_info_dict for installing the repository. repo_info_dict, \ includes_tools, \ includes_tool_dependencies, \ includes_tools_for_display_in_tool_panel, \ has_repository_dependencies, \ has_repository_dependencies_only_if_compiling_contained_td = \ repository_util.get_repo_info_dict( trans.app, trans.user, encoded_repository_id, changeset_revision ) return repository_dict, repository_metadata_dict, repo_info_dict else: log.debug( "Unable to locate repository_metadata record for repository id %s and changeset_revision %s" % \ ( str( repository.id ), str( changeset_revision ) ) ) return repository_dict, {}, {} else: debug_msg = "Error in the Tool Shed repositories API in get_repository_revision_install_info: " debug_msg += "Invalid name %s or owner %s or changeset_revision %s received." % \ ( str( name ), str( owner ), str( changeset_revision ) ) log.debug( debug_msg ) return {}, {}, {}
def show_tools(self, trans, id, changeset, **kwd): repository_metadata = metadata_util.get_repository_metadata_by_changeset_revision(self.app, id, changeset) if repository_metadata is not None: encoded_repository_metadata_id = trans.security.encode_id(repository_metadata.id) repository_metadata_dict = repository_metadata.to_dict( view="collection", value_mapper=self.__get_value_mapper(trans) ) repository_metadata_dict["url"] = web.url_for( controller="repository_revisions", action="show", id=encoded_repository_metadata_id ) if "tools" in repository_metadata.metadata: repository_metadata_dict["valid_tools"] = repository_metadata.metadata["tools"] # Get the repo_info_dict for installing the repository. repo_info_dict, includes_tools, includes_tool_dependencies, includes_tools_for_display_in_tool_panel, has_repository_dependencies, has_repository_dependencies_only_if_compiling_contained_td = repository_util.get_repo_info_dict( self.app, trans.user, id, changeset ) return repository_metadata_dict else: log.debug( "Unable to locate repository_metadata record for repository id %s and changeset_revision %s" % (str(id), str(changeset)) ) return {}
def get_repository_revision_install_info(self, trans, name, owner, changeset_revision, **kwd): """ GET /api/repositories/get_repository_revision_install_info :param name: the name of the Repository :param owner: the owner of the Repository :param changeset_revision: the changeset_revision of the RepositoryMetadata object associated with the Repository Returns a list of the following dictionaries:: - a dictionary defining the Repository. For example: { "deleted": false, "deprecated": false, "description": "add_column hello", "id": "f9cad7b01a472135", "long_description": "add_column hello", "name": "add_column", "owner": "test", "private": false, "times_downloaded": 6, "url": "/api/repositories/f9cad7b01a472135", "user_id": "f9cad7b01a472135" } - a dictionary defining the Repository revision (RepositoryMetadata). For example: { "changeset_revision": "3a08cc21466f", "downloadable": true, "has_repository_dependencies": false, "has_repository_dependencies_only_if_compiling_contained_td": false, "id": "f9cad7b01a472135", "includes_datatypes": false, "includes_tool_dependencies": false, "includes_tools": true, "includes_tools_for_display_in_tool_panel": true, "includes_workflows": false, "malicious": false, "repository_id": "f9cad7b01a472135", "url": "/api/repository_revisions/f9cad7b01a472135" } - a dictionary including the additional information required to install the repository. For example: { "add_column": [ "add_column hello", "http://test@localhost:9009/repos/test/add_column", "3a08cc21466f", "1", "test", {}, {} ] } """ # Example URL: # http://<xyz>/api/repositories/get_repository_revision_install_info?name=<n>&owner=<o>&changeset_revision=<cr> if name and owner and changeset_revision: # Get the repository information. repository = suc.get_repository_by_name_and_owner( trans.app, name, owner) if repository is None: log.debug('Cannot locate repository %s owned by %s' % (str(name), str(owner))) return {}, {}, {} encoded_repository_id = trans.security.encode_id(repository.id) repository_dict = repository.to_dict( view='element', value_mapper=self.__get_value_mapper(trans)) repository_dict['url'] = web.url_for(controller='repositories', action='show', id=encoded_repository_id) # Get the repository_metadata information. repository_metadata = suc.get_repository_metadata_by_changeset_revision( trans.app, encoded_repository_id, changeset_revision) if repository_metadata is None: # The changeset_revision column in the repository_metadata table has been updated with a new # value value, so find the changeset_revision to which we need to update. repo = hg_util.get_repo_for_repository(trans.app, repository=repository, repo_path=None, create=False) new_changeset_revision = suc.get_next_downloadable_changeset_revision( repository, repo, changeset_revision) repository_metadata = suc.get_repository_metadata_by_changeset_revision( trans.app, encoded_repository_id, new_changeset_revision) changeset_revision = new_changeset_revision if repository_metadata is not None: encoded_repository_metadata_id = trans.security.encode_id( repository_metadata.id) repository_metadata_dict = repository_metadata.to_dict( view='collection', value_mapper=self.__get_value_mapper(trans)) repository_metadata_dict['url'] = web.url_for( controller='repository_revisions', action='show', id=encoded_repository_metadata_id) # Get the repo_info_dict for installing the repository. repo_info_dict, \ includes_tools, \ includes_tool_dependencies, \ includes_tools_for_display_in_tool_panel, \ has_repository_dependencies, \ has_repository_dependencies_only_if_compiling_contained_td = \ repository_util.get_repo_info_dict( trans.app, trans.user, encoded_repository_id, changeset_revision ) return repository_dict, repository_metadata_dict, repo_info_dict else: log.debug( "Unable to locate repository_metadata record for repository id %s and changeset_revision %s" % \ ( str( repository.id ), str( changeset_revision ) ) ) return repository_dict, {}, {} else: debug_msg = "Error in the Tool Shed repositories API in get_repository_revision_install_info: " debug_msg += "Invalid name %s or owner %s or changeset_revision %s received." % \ ( str( name ), str( owner ), str( changeset_revision ) ) log.debug(debug_msg) return {}, {}, {}
def get_repository_revision_install_info(self, trans, name, owner, changeset_revision, **kwd): """ GET /api/repositories/get_repository_revision_install_info :param name: the name of the Repository :param owner: the owner of the Repository :param changeset_revision: the changeset_revision of the RepositoryMetadata object associated with the Repository Returns a list of the following dictionaries:: - a dictionary defining the Repository. For example: { "deleted": false, "deprecated": false, "description": "add_column hello", "id": "f9cad7b01a472135", "long_description": "add_column hello", "name": "add_column", "owner": "test", "private": false, "times_downloaded": 6, "url": "/api/repositories/f9cad7b01a472135", "user_id": "f9cad7b01a472135" } - a dictionary defining the Repository revision (RepositoryMetadata). For example: { "changeset_revision": "3a08cc21466f", "downloadable": true, "has_repository_dependencies": false, "has_repository_dependencies_only_if_compiling_contained_td": false, "id": "f9cad7b01a472135", "includes_datatypes": false, "includes_tool_dependencies": false, "includes_tools": true, "includes_tools_for_display_in_tool_panel": true, "includes_workflows": false, "malicious": false, "repository_id": "f9cad7b01a472135", "url": "/api/repository_revisions/f9cad7b01a472135", "valid_tools": [{u'add_to_tool_panel': True, u'description': u'data on any column using simple expressions', u'guid': u'localhost:9009/repos/enis/sample_repo_1/Filter1/2.2.0', u'id': u'Filter1', u'name': u'Filter', u'requirements': [], u'tests': [{u'inputs': [[u'input', u'1.bed'], [u'cond', u"c1=='chr22'"]], u'name': u'Test-1', u'outputs': [[u'out_file1', u'filter1_test1.bed']], u'required_files': [u'1.bed', u'filter1_test1.bed']}], u'tool_config': u'database/community_files/000/repo_1/filtering.xml', u'tool_type': u'default', u'version': u'2.2.0', u'version_string_cmd': None}] } - a dictionary including the additional information required to install the repository. For example: { "add_column": [ "add_column hello", "http://test@localhost:9009/repos/test/add_column", "3a08cc21466f", "1", "test", {}, {} ] } """ # Example URL: # http://<xyz>/api/repositories/get_repository_revision_install_info?name=<n>&owner=<o>&changeset_revision=<cr> if name and owner and changeset_revision: # Get the repository information. repository = repository_util.get_repository_by_name_and_owner(self.app, name, owner) if repository is None: log.debug("Cannot locate repository %s owned by %s" % (str(name), str(owner))) return {}, {}, {} encoded_repository_id = trans.security.encode_id(repository.id) repository_dict = repository.to_dict(view="element", value_mapper=self.__get_value_mapper(trans)) repository_dict["url"] = web.url_for(controller="repositories", action="show", id=encoded_repository_id) # Get the repository_metadata information. repository_metadata = metadata_util.get_repository_metadata_by_changeset_revision( self.app, encoded_repository_id, changeset_revision ) if repository_metadata is None: # The changeset_revision column in the repository_metadata table has been updated with a new # value value, so find the changeset_revision to which we need to update. repo = hg_util.get_repo_for_repository(self.app, repository=repository, repo_path=None, create=False) new_changeset_revision = metadata_util.get_next_downloadable_changeset_revision( repository, repo, changeset_revision ) repository_metadata = metadata_util.get_repository_metadata_by_changeset_revision( self.app, encoded_repository_id, new_changeset_revision ) changeset_revision = new_changeset_revision if repository_metadata is not None: encoded_repository_metadata_id = trans.security.encode_id(repository_metadata.id) repository_metadata_dict = repository_metadata.to_dict( view="collection", value_mapper=self.__get_value_mapper(trans) ) repository_metadata_dict["url"] = web.url_for( controller="repository_revisions", action="show", id=encoded_repository_metadata_id ) if "tools" in repository_metadata.metadata: repository_metadata_dict["valid_tools"] = repository_metadata.metadata["tools"] # Get the repo_info_dict for installing the repository. repo_info_dict, includes_tools, includes_tool_dependencies, includes_tools_for_display_in_tool_panel, has_repository_dependencies, has_repository_dependencies_only_if_compiling_contained_td = repository_util.get_repo_info_dict( self.app, trans.user, encoded_repository_id, changeset_revision ) return repository_dict, repository_metadata_dict, repo_info_dict else: log.debug( "Unable to locate repository_metadata record for repository id %s and changeset_revision %s" % (str(repository.id), str(changeset_revision)) ) return repository_dict, {}, {} else: debug_msg = "Error in the Tool Shed repositories API in get_repository_revision_install_info: " debug_msg += "Invalid name %s or owner %s or changeset_revision %s received." % ( str(name), str(owner), str(changeset_revision), ) log.debug(debug_msg) return {}, {}, {}