Exemplo n.º 1
0
 def reset_metadata_on_selected_installed_repositories(self, trans, **kwd):
     repository_ids = util.listify(kwd.get("repository_ids"))
     if repository_ids:
         irmm = InstalledRepositoryMetadataManager(self.app)
         failed = []
         successful = []
         for repository_id in repository_ids:
             try:
                 repository = get_installed_tool_shed_repository(
                     self.app, repository_id)
                 irmm.set_repository(repository)
                 irmm.reset_all_metadata_on_installed_repository()
                 if irmm.invalid_file_tups:
                     failed.append(repository_id)
                 else:
                     successful.append(repository_id)
             except Exception:
                 failed.append(repository_id)
         if successful:
             message = "Successful reset of metadata for %s." % len(
                 successful)
             if failed:
                 message += " Failed for %s." % len(failed)
         elif failed:
             message = "Failed to reset metadata for %s." % len(failed)
         return dict(message=message, successful=successful, failed=failed)
     else:
         raise exceptions.MessageException(
             "Please specify repository ids [repository_ids].")
Exemplo n.º 2
0
 def reset_metadata_on_selected_repositories(self, user, **kwd):
     """
     Inspect the repository changelog to reset metadata for all appropriate changeset revisions.
     This method is called from both Galaxy and the Tool Shed.
     """
     repository_ids = util.listify(kwd.get('repository_ids', None))
     message = ''
     status = 'done'
     if repository_ids:
         successful_count = 0
         unsuccessful_count = 0
         for repository_id in repository_ids:
             try:
                 repository = get_installed_tool_shed_repository(
                     self.app, repository_id)
                 self.set_repository(repository)
                 self.reset_all_metadata_on_installed_repository()
                 if self.invalid_file_tups:
                     message = generate_message_for_invalid_tools(
                         self.app,
                         self.invalid_file_tups,
                         repository,
                         None,
                         as_html=False)
                     log.debug(message)
                     unsuccessful_count += 1
                 else:
                     log.debug(
                         "Successfully reset metadata on repository %s owned by %s"
                         % (str(repository.name), str(repository.owner)))
                     successful_count += 1
             except Exception:
                 log.exception(
                     "Error attempting to reset metadata on repository %s",
                     str(repository.name))
                 unsuccessful_count += 1
         message = "Successfully reset metadata on %d %s.  " % \
             (successful_count, inflector.cond_plural(successful_count, "repository"))
         if unsuccessful_count:
             message += "Error setting metadata on %d %s - see the paster log for details.  " % \
                 (unsuccessful_count, inflector.cond_plural(unsuccessful_count, "repository"))
     else:
         message = 'Select at least one repository to on which to reset all metadata.'
         status = 'error'
     return message, status