Add the ability to blacklist v2 for specific versions
This commit is contained in:
parent
4a84388f15
commit
766d60493f
7 changed files with 97 additions and 2 deletions
|
@ -3,6 +3,7 @@ import logging
|
|||
from flask import Blueprint, make_response, url_for, request, jsonify
|
||||
from functools import wraps
|
||||
from urlparse import urlparse
|
||||
from semantic_version import Spec
|
||||
|
||||
import features
|
||||
|
||||
|
@ -13,8 +14,10 @@ from auth.auth_context import get_grant_context
|
|||
from auth.permissions import (ReadRepositoryPermission, ModifyRepositoryPermission,
|
||||
AdministerRepositoryPermission)
|
||||
from data import model
|
||||
from app import app
|
||||
from util.http import abort
|
||||
from util.saas.metricqueue import time_blueprint
|
||||
from util.registry.dockerver import docker_version
|
||||
from auth.registry_jwt_auth import process_registry_jwt_auth, get_auth_headers
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
@ -75,6 +78,14 @@ def route_show_if(value):
|
|||
@process_registry_jwt_auth
|
||||
@anon_allowed
|
||||
def v2_support_enabled():
|
||||
docker_ver = docker_version(request.user_agent.string)
|
||||
|
||||
# Check if our version is one of the blacklisted versions, if we can't
|
||||
# identify the version (None) we will fail open and assume that it is
|
||||
# newer and therefore should not be blacklisted.
|
||||
if Spec(app.config['BLACKLIST_V2_SPEC']).match(docker_ver) and docker_ver is not None:
|
||||
abort(404)
|
||||
|
||||
response = make_response('true', 200)
|
||||
|
||||
if get_grant_context() is None:
|
||||
|
|
Reference in a new issue