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 = repository_util.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].")
def reset_metadata_on_installed_repositories(self, trans, payload, **kwd): """ PUT /api/tool_shed_repositories/reset_metadata_on_installed_repositories Resets all metadata on all repositories installed into Galaxy in an "orderly fashion". :param key: the API key of the Galaxy admin user. """ start_time = strftime("%Y-%m-%d %H:%M:%S") results = dict(start_time=start_time, successful_count=0, unsuccessful_count=0, repository_status=[]) # Make sure the current user's API key proves he is an admin user in this Galaxy instance. if not trans.user_is_admin: raise HTTPForbidden( detail= 'You are not authorized to reset metadata on repositories installed into this Galaxy instance.' ) irmm = InstalledRepositoryMetadataManager(self.app) query = irmm.get_query_for_setting_metadata_on_repositories( order=False) # Now reset metadata on all remaining repositories. for repository in query: try: irmm.set_repository(repository) irmm.reset_all_metadata_on_installed_repository() irmm_invalid_file_tups = irmm.get_invalid_file_tups() if irmm_invalid_file_tups: message = tool_util.generate_message_for_invalid_tools( self.app, irmm_invalid_file_tups, repository, None, as_html=False) results['unsuccessful_count'] += 1 else: message = "Successfully reset metadata on repository %s owned by %s" % \ (str(repository.name), str(repository.owner)) results['successful_count'] += 1 except Exception as e: message = "Error resetting metadata on repository %s owned by %s: %s" % \ (str(repository.name), str(repository.owner), util.unicodify(e)) results['unsuccessful_count'] += 1 results['repository_status'].append(message) stop_time = strftime("%Y-%m-%d %H:%M:%S") results['stop_time'] = stop_time return json.dumps(results, sort_keys=True, indent=4)
def reset_metadata_on_installed_repositories( self, trans, payload, **kwd ): """ PUT /api/tool_shed_repositories/reset_metadata_on_installed_repositories Resets all metadata on all repositories installed into Galaxy in an "orderly fashion". :param key: the API key of the Galaxy admin user. """ start_time = strftime( "%Y-%m-%d %H:%M:%S" ) results = dict( start_time=start_time, successful_count=0, unsuccessful_count=0, repository_status=[] ) # Make sure the current user's API key proves he is an admin user in this Galaxy instance. if not trans.user_is_admin(): raise HTTPForbidden( detail='You are not authorized to reset metadata on repositories installed into this Galaxy instance.' ) irmm = InstalledRepositoryMetadataManager( self.app ) query = irmm.get_query_for_setting_metadata_on_repositories( order=False ) # Now reset metadata on all remaining repositories. for repository in query: try: irmm.set_repository( repository ) irmm.reset_all_metadata_on_installed_repository() irmm_invalid_file_tups = irmm.get_invalid_file_tups() if irmm_invalid_file_tups: message = tool_util.generate_message_for_invalid_tools( self.app, irmm_invalid_file_tups, repository, None, as_html=False ) results[ 'unsuccessful_count' ] += 1 else: message = "Successfully reset metadata on repository %s owned by %s" % \ ( str( repository.name ), str( repository.owner ) ) results[ 'successful_count' ] += 1 except Exception as e: message = "Error resetting metadata on repository %s owned by %s: %s" % \ ( str( repository.name ), str( repository.owner ), str( e ) ) results[ 'unsuccessful_count' ] += 1 results[ 'repository_status' ].append( message ) stop_time = strftime( "%Y-%m-%d %H:%M:%S" ) results[ 'stop_time' ] = stop_time return json.dumps( results, sort_keys=True, indent=4 )