'Return a list of of tuples defining tool_shed_repository objects (whose status can be anything) required by the
received repository.  The returned list defines the entire repository dependency tree.  This method is called
only from Galaxy.'

def get_repository_dependency_tups_for_installed_repository(self, repository, dependency_tups=None, status=None):

    if (dependency_tups is None):
        dependency_tups = []
    repository_tup = self.get_repository_tuple_for_installed_repository_manager(repository)
    for rrda in repository.required_repositories:
        repository_dependency = rrda.repository_dependency
        required_repository = repository_dependency.repository
        if ((status is None) or (required_repository.status == status)):
            required_repository_tup = self.get_repository_tuple_for_installed_repository_manager(required_repository)
            if (required_repository_tup == repository_tup):
                continue
            if (required_repository_tup not in dependency_tups):
                dependency_tups.append(required_repository_tup)
                return self.get_repository_dependency_tups_for_installed_repository(required_repository, dependency_tups=dependency_tups)
    return dependency_tups
