mirror of
https://github.com/ansible/awx.git
synced 2026-03-25 12:55:04 -02:30
add "added_in_api_version" metadata to OPTIONS requests
This commit is contained in:
@@ -165,6 +165,7 @@ class APIView(views.APIView):
|
|||||||
'new_in_300': getattr(self, 'new_in_300', False),
|
'new_in_300': getattr(self, 'new_in_300', False),
|
||||||
'new_in_310': getattr(self, 'new_in_310', False),
|
'new_in_310': getattr(self, 'new_in_310', False),
|
||||||
'new_in_320': getattr(self, 'new_in_320', False),
|
'new_in_320': getattr(self, 'new_in_320', False),
|
||||||
|
'new_in_api_v2': getattr(self, 'new_in_api_v2', False),
|
||||||
'deprecated': getattr(self, 'deprecated', False),
|
'deprecated': getattr(self, 'deprecated', False),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -186,6 +186,14 @@ class Metadata(metadata.SimpleMetadata):
|
|||||||
break
|
break
|
||||||
metadata['added_in_version'] = added_in_version
|
metadata['added_in_version'] = added_in_version
|
||||||
|
|
||||||
|
# Add API version number in which view was added to Tower.
|
||||||
|
added_in_api_version = 'v1'
|
||||||
|
for version in ('v2',):
|
||||||
|
if getattr(view, 'new_in_api_%s' % version, False):
|
||||||
|
added_in_api_version = version
|
||||||
|
break
|
||||||
|
metadata['added_in_api_version'] = added_in_api_version
|
||||||
|
|
||||||
# Add type(s) handled by this view/serializer.
|
# Add type(s) handled by this view/serializer.
|
||||||
if hasattr(view, 'get_serializer'):
|
if hasattr(view, 'get_serializer'):
|
||||||
serializer = view.get_serializer()
|
serializer = view.get_serializer()
|
||||||
|
|||||||
4
awx/api/templates/api/api_v2_root_view.md
Normal file
4
awx/api/templates/api/api_v2_root_view.md
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
Version 2 of the Ansible Tower REST API.
|
||||||
|
|
||||||
|
Make a GET request to this resource to obtain a list of all child resources
|
||||||
|
available via the API.
|
||||||
@@ -340,7 +340,7 @@ activity_stream_urls = patterns('awx.api.views',
|
|||||||
)
|
)
|
||||||
|
|
||||||
v1_urls = patterns('awx.api.views',
|
v1_urls = patterns('awx.api.views',
|
||||||
url(r'^$', 'api_version_root_view'),
|
url(r'^$', 'api_v1_root_view'),
|
||||||
url(r'^ping/$', 'api_v1_ping_view'),
|
url(r'^ping/$', 'api_v1_ping_view'),
|
||||||
url(r'^config/$', 'api_v1_config_view'),
|
url(r'^config/$', 'api_v1_config_view'),
|
||||||
url(r'^auth/$', 'auth_view'),
|
url(r'^auth/$', 'auth_view'),
|
||||||
@@ -384,7 +384,7 @@ v1_urls = patterns('awx.api.views',
|
|||||||
)
|
)
|
||||||
|
|
||||||
v2_urls = patterns('awx.api.views',
|
v2_urls = patterns('awx.api.views',
|
||||||
url(r'^$', 'api_version_root_view'),
|
url(r'^$', 'api_v2_root_view'),
|
||||||
url(r'^credential_types/', include(credential_type_urls)),
|
url(r'^credential_types/', include(credential_type_urls)),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -134,8 +134,8 @@ class ApiRootView(APIView):
|
|||||||
def get(self, request, format=None):
|
def get(self, request, format=None):
|
||||||
''' list supported API versions '''
|
''' list supported API versions '''
|
||||||
|
|
||||||
v1 = reverse('api:api_version_root_view', kwargs={'version': 'v1'})
|
v1 = reverse('api:api_v1_root_view', kwargs={'version': 'v1'})
|
||||||
v2 = reverse('api:api_version_root_view', kwargs={'version': 'v2'})
|
v2 = reverse('api:api_v2_root_view', kwargs={'version': 'v2'})
|
||||||
data = dict(
|
data = dict(
|
||||||
description = _('Ansible Tower REST API'),
|
description = _('Ansible Tower REST API'),
|
||||||
current_version = v2,
|
current_version = v2,
|
||||||
@@ -150,7 +150,6 @@ class ApiRootView(APIView):
|
|||||||
class ApiVersionRootView(APIView):
|
class ApiVersionRootView(APIView):
|
||||||
|
|
||||||
authentication_classes = []
|
authentication_classes = []
|
||||||
view_name = _('Version')
|
|
||||||
permission_classes = (AllowAny,)
|
permission_classes = (AllowAny,)
|
||||||
|
|
||||||
def get(self, request, format=None):
|
def get(self, request, format=None):
|
||||||
@@ -197,6 +196,16 @@ class ApiVersionRootView(APIView):
|
|||||||
return Response(data)
|
return Response(data)
|
||||||
|
|
||||||
|
|
||||||
|
class ApiV1RootView(ApiVersionRootView):
|
||||||
|
view_name = _('Version 1')
|
||||||
|
|
||||||
|
|
||||||
|
class ApiV2RootView(ApiVersionRootView):
|
||||||
|
view_name = _('Version 2')
|
||||||
|
new_in_320 = True
|
||||||
|
new_in_api_v2 = True
|
||||||
|
|
||||||
|
|
||||||
class ApiV1PingView(APIView):
|
class ApiV1PingView(APIView):
|
||||||
"""A simple view that reports very basic information about this Tower
|
"""A simple view that reports very basic information about this Tower
|
||||||
instance, which is acceptable to be public information.
|
instance, which is acceptable to be public information.
|
||||||
@@ -1482,6 +1491,7 @@ class CredentialTypeList(ListCreateAPIView):
|
|||||||
model = CredentialType
|
model = CredentialType
|
||||||
serializer_class = CredentialTypeSerializer
|
serializer_class = CredentialTypeSerializer
|
||||||
new_in_320 = True
|
new_in_320 = True
|
||||||
|
new_in_api_v2 = True
|
||||||
|
|
||||||
|
|
||||||
class CredentialTypeDetail(RetrieveUpdateDestroyAPIView):
|
class CredentialTypeDetail(RetrieveUpdateDestroyAPIView):
|
||||||
@@ -1489,6 +1499,7 @@ class CredentialTypeDetail(RetrieveUpdateDestroyAPIView):
|
|||||||
model = CredentialType
|
model = CredentialType
|
||||||
serializer_class = CredentialTypeSerializer
|
serializer_class = CredentialTypeSerializer
|
||||||
new_in_320 = True
|
new_in_320 = True
|
||||||
|
new_in_api_v2 = True
|
||||||
|
|
||||||
|
|
||||||
class CredentialList(ListCreateAPIView):
|
class CredentialList(ListCreateAPIView):
|
||||||
|
|||||||
Reference in New Issue
Block a user