Merge pull request #11537 from jbradberry/enhancements-for-meshviz-endpoint

Enhancements for meshviz endpoint
This commit is contained in:
Jeff Bradberry
2022-01-13 16:42:21 -05:00
committed by GitHub
6 changed files with 19 additions and 5 deletions

View File

@@ -243,7 +243,7 @@ class IsSystemAdminOrAuditor(permissions.BasePermission):
""" """
def has_permission(self, request, view): def has_permission(self, request, view):
if not request.user: if not (request.user and request.user.is_authenticated):
return False return False
if request.method == 'GET': if request.method == 'GET':
return request.user.is_superuser or request.user.is_system_auditor return request.user.is_superuser or request.user.is_system_auditor

View File

@@ -1,17 +1,19 @@
# Copyright (c) 2018 Red Hat, Inc. # Copyright (c) 2018 Red Hat, Inc.
# All Rights Reserved. # All Rights Reserved.
from awx.main.models import InstanceLink, Instance
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from awx.api.generics import APIView, Response from awx.api.generics import APIView, Response
from awx.api.permissions import IsSystemAdminOrAuditor
from awx.api.serializers import InstanceLinkSerializer, InstanceNodeSerializer from awx.api.serializers import InstanceLinkSerializer, InstanceNodeSerializer
from awx.main.models import InstanceLink, Instance
class MeshVisualizer(APIView): class MeshVisualizer(APIView):
name = _("Mesh Visualizer") name = _("Mesh Visualizer")
permission_classes = (IsSystemAdminOrAuditor,)
swagger_topic = "System Configuration"
def get(self, request, format=None): def get(self, request, format=None):

View File

@@ -123,7 +123,7 @@ class ApiVersionRootView(APIView):
data['workflow_approvals'] = reverse('api:workflow_approval_list', request=request) data['workflow_approvals'] = reverse('api:workflow_approval_list', request=request)
data['workflow_job_template_nodes'] = reverse('api:workflow_job_template_node_list', request=request) data['workflow_job_template_nodes'] = reverse('api:workflow_job_template_node_list', request=request)
data['workflow_job_nodes'] = reverse('api:workflow_job_node_list', request=request) data['workflow_job_nodes'] = reverse('api:workflow_job_node_list', request=request)
data['mesh_visualizer_view'] = reverse('api:mesh_visualizer_view', request=request) data['mesh_visualizer'] = reverse('api:mesh_visualizer_view', request=request)
return Response(data) return Response(data)

View File

@@ -0,0 +1,11 @@
from awxkit.api.resources import resources
from . import base
from . import page
class MeshVisualizer(base.Base):
pass
page.register_page(resources.mesh_visualizer, MeshVisualizer)

View File

@@ -116,6 +116,7 @@ class Resources(object):
_labels = 'labels/' _labels = 'labels/'
_me = 'me/' _me = 'me/'
_metrics = 'metrics/' _metrics = 'metrics/'
_mesh_visualizer = 'mesh_visualizer/'
_notification = r'notifications/\d+/' _notification = r'notifications/\d+/'
_notification_template = r'notification_templates/\d+/' _notification_template = r'notification_templates/\d+/'
_notification_template_any = r'\w+/\d+/notification_templates_any/\d+/' _notification_template_any = r'\w+/\d+/notification_templates_any/\d+/'

View File

@@ -11,7 +11,7 @@ from awxkit.cli.format import FORMATTERS, format_response, add_authentication_ar
from awxkit.cli.utils import CustomRegistryMeta, cprint from awxkit.cli.utils import CustomRegistryMeta, cprint
CONTROL_RESOURCES = ['ping', 'config', 'me', 'metrics'] CONTROL_RESOURCES = ['ping', 'config', 'me', 'metrics', 'mesh_visualizer']
DEPRECATED_RESOURCES = { DEPRECATED_RESOURCES = {
'ad_hoc_commands': 'ad_hoc', 'ad_hoc_commands': 'ad_hoc',