mirror of
https://github.com/ZwareBear/awx.git
synced 2026-03-25 18:23:37 -05:00
Credentials now have a required CredentialType, which defines inputs (i.e., username, password) and injectors (i.e., assign the username to SOME_ENV_VARIABLE at job runtime) This commit only implements the model changes necessary to support the new inputs model, and includes code for the credential serializer that allows backwards-compatible support for /api/v1/credentials/; tasks.py still needs to be updated to actually respect CredentialType injectors. This change *will* break the UI for credentials (because it needs to be updated to use the new v2 endpoint). see: #5877 see: #5876 see: #5805
43 lines
1.5 KiB
Python
43 lines
1.5 KiB
Python
# Copyright (c) 2017 Ansible by Red Hat
|
|
# All Rights Reserved.
|
|
|
|
from django.conf import settings
|
|
|
|
from rest_framework.reverse import reverse as drf_reverse
|
|
from rest_framework.versioning import URLPathVersioning as BaseVersioning
|
|
|
|
|
|
def get_request_version(request):
|
|
"""
|
|
The API version of a request as an integer i.e., 1 or 2
|
|
"""
|
|
version = settings.REST_FRAMEWORK['DEFAULT_VERSION']
|
|
if request and hasattr(request, 'version'):
|
|
version = request.version
|
|
return int(version.lstrip('v'))
|
|
|
|
|
|
def reverse(viewname, args=None, kwargs=None, request=None, format=None, **extra):
|
|
if request is None or getattr(request, 'version', None) is None:
|
|
# We need the "current request" to determine the correct version to
|
|
# prepend to reverse URLs. If there is no "current request", assume
|
|
# the latest API version.
|
|
if kwargs is None:
|
|
kwargs = {}
|
|
if 'version' not in kwargs:
|
|
kwargs['version'] = settings.REST_FRAMEWORK['DEFAULT_VERSION']
|
|
return drf_reverse(viewname, args, kwargs, request, format, **extra)
|
|
|
|
|
|
class URLPathVersioning(BaseVersioning):
|
|
|
|
def reverse(self, viewname, args=None, kwargs=None, request=None, format=None, **extra):
|
|
if request.version is not None:
|
|
kwargs = {} if (kwargs is None) else kwargs
|
|
kwargs[self.version_param] = request.version
|
|
request = None
|
|
|
|
return super(BaseVersioning, self).reverse(
|
|
viewname, args, kwargs, request, format, **extra
|
|
)
|