Ejemplo n.º 1
0
    def updateRepository(self, repo, provider=None):
        """A method to update repositories for test purposes"""

        handler = Repositories()

        if provider is None:
            handler.select_provider(repo)
        else:
            handler.provider = provider

        handler.update_repository(repo)
Ejemplo n.º 2
0
def repository_update():
    """Update metadata of a set of repositories."""

    # Safeguard
    if request.method == 'POST':
        request_json = request.get_json()

        repo = None
        label = None

        if request_json is not None:
            repo = request_json.get('repolist')
            label = request_json.get('repolabel')

        # Repository api lib
        handler = Repositories()

        if repo is not None and label is None:
            repo_list = handler.get_repositories(repo)
        elif label is not None and repo is None:
            repo_list = handler.get_repositories_by_label(label)
        else:
            repo_list = handler.get_all_repositories()

        # Return list of updated repositories
        resp = []

        if repo_list is not None:

            cache.clear()

            for repo in repo_list:
                handler.select_provider(repo)
                ret = handler.update_repository(repo)

                if ret is not None and ret > 0:
                    resp.append(repo.name)

            return Response(json.dumps({'repositories': resp}), status=200, mimetype='application/json')
        else:
            raise InvalidAPIUsage('No repositories configured', status_code=400)

    else:
        raise InvalidAPIUsage('Invalid request method', status_code=400)