예제 #1
0
def origin_update_pending(apiurl, origin_project, package, target_project,
                          policy, supersede, frequency):
    apiurl_remote, project_remote = project_remote_apiurl(
        apiurl, origin_project)
    request_actions = request_action_list_source(apiurl_remote,
                                                 project_remote,
                                                 package,
                                                 include_release=True)
    for request, action in sorted(request_actions,
                                  key=lambda i: i[0].reqid,
                                  reverse=True):
        reviews_not_allowed = reviews_filter_allowed(
            reviews_remaining(request, True),
            policy['pending_submission_allowed_reviews_update'])
        if len(reviews_not_allowed):
            continue

        identifier = request_remote_identifier(apiurl, apiurl_remote,
                                               request.reqid)
        message = 'Newer pending source available from package origin. See {}.'.format(
            identifier)
        src_project = project_remote_prefixed(apiurl, apiurl_remote,
                                              action.src_project)
        return request_create_submit(apiurl,
                                     src_project,
                                     action.src_package,
                                     target_project,
                                     package,
                                     message=message,
                                     revision=action.src_rev,
                                     supersede=supersede,
                                     frequency=frequency)

    return False
예제 #2
0
    def get(apiurl, project):
        """Cached version for directly accessing project config."""
        # Properly handle loading the config for interconnect projects.
        from osclib.core import project_remote_apiurl
        apiurl_remote, project_remote = project_remote_apiurl(apiurl, project)

        Config(apiurl_remote, project_remote)
        return conf.config.get(project_remote, [])
예제 #3
0
    def get(apiurl, project):
        """Cached version for directly accessing project config."""
        # Properly handle loading the config for interconnect projects.
        from osclib.core import project_remote_apiurl
        apiurl_remote, project_remote = project_remote_apiurl(apiurl, project)

        Config(apiurl_remote, project_remote)
        return conf.config.get(project_remote, [])
예제 #4
0
def project_source_pending(apiurl, project, package, source_hash):
    apiurl_remote, project_remote = project_remote_apiurl(apiurl, project)
    requests = get_request_list(apiurl_remote, project_remote, package, None, ['new', 'review'], 'submit')
    for request in requests:
        for action in request.actions:
            source_hash_consider = package_source_hash(
                apiurl_remote, action.src_project, action.src_package, action.src_rev)

            project_source_log('pending', project, source_hash_consider, source_hash)
            if source_hash_consider == source_hash:
                return PendingRequestInfo(
                    request_remote_identifier(apiurl, apiurl_remote, request.reqid),
                    reviews_remaining(request))

    return False
예제 #5
0
def project_source_pending(apiurl, project, package, source_hash):
    apiurl_remote, project_remote = project_remote_apiurl(apiurl, project)
    requests = get_request_list(apiurl_remote, project_remote, package, None, ['new', 'review'], 'submit')
    for request in requests:
        for action in request.actions:
            source_hash_consider = package_source_hash(
                apiurl_remote, action.src_project, action.src_package, action.src_rev)

            project_source_log('pending', project, source_hash_consider, source_hash)
            if source_hash_consider == source_hash:
                return PendingRequestInfo(
                    request_remote_identifier(apiurl, apiurl_remote, request.reqid),
                    reviews_remaining(request))

    return False
예제 #6
0
def project_source_pending(apiurl, project, package, source_hash):
    apiurl_remote, project_remote = project_remote_apiurl(apiurl, project)
    request_actions = request_action_list_source(apiurl_remote,
                                                 project_remote,
                                                 package,
                                                 states=['new', 'review'],
                                                 include_release=True)
    for request, action in request_actions:
        source_hash_consider = package_source_hash(apiurl_remote,
                                                   action.src_project,
                                                   action.src_package,
                                                   action.src_rev)

        project_source_log('pending', project, source_hash_consider,
                           source_hash)
        if source_hash_consider == source_hash:
            return PendingRequestInfo(
                request_remote_identifier(apiurl, apiurl_remote,
                                          request.reqid),
                reviews_remaining(request, True))

    return False