Add and test control plane configuration #21
1 changed files with 25 additions and 1 deletions
|
@ -1,4 +1,4 @@
|
|||
from django.contrib import admin
|
||||
from django.contrib import admin, messages
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from servala.core.forms import ControlPlaneAdminForm
|
||||
|
@ -116,6 +116,7 @@ class ControlPlaneAdmin(admin.ModelAdmin):
|
|||
list_filter = ("cloud_provider",)
|
||||
search_fields = ("name", "description", "k8s_api_endpoint")
|
||||
autocomplete_fields = ("cloud_provider",)
|
||||
actions = ["test_kubernetes_connection"]
|
||||
|
||||
fieldsets = (
|
||||
(
|
||||
|
@ -137,6 +138,29 @@ class ControlPlaneAdmin(admin.ModelAdmin):
|
|||
# Exclude the original api_credentials field as we're using our custom fields
|
||||
return ["api_credentials"]
|
||||
|
||||
def response_change(self, request, obj):
|
||||
result = super().response_change(request, obj)
|
||||
if "_save_and_test" in request.POST:
|
||||
success, message = obj.test_connection()
|
||||
if success:
|
||||
messages.success(request, message)
|
||||
else:
|
||||
messages.warning(request, message)
|
||||
return result
|
||||
|
||||
def test_kubernetes_connection(self, request, queryset):
|
||||
"""Admin action to test Kubernetes connection for selected control planes"""
|
||||
for control_plane in queryset:
|
||||
success, message = control_plane.test_connection()
|
||||
message = f"{control_plane.name}: {message}"
|
||||
|
||||
if success:
|
||||
messages.success(request, message)
|
||||
else:
|
||||
messages.warning(request, message)
|
||||
|
||||
test_kubernetes_connection.short_description = _("Test Kubernetes connection")
|
||||
|
||||
|
||||
@admin.register(Plan)
|
||||
class PlanAdmin(admin.ModelAdmin):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue