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 django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
from servala.core.forms import ControlPlaneAdminForm
|
from servala.core.forms import ControlPlaneAdminForm
|
||||||
|
@ -116,6 +116,7 @@ class ControlPlaneAdmin(admin.ModelAdmin):
|
||||||
list_filter = ("cloud_provider",)
|
list_filter = ("cloud_provider",)
|
||||||
search_fields = ("name", "description", "k8s_api_endpoint")
|
search_fields = ("name", "description", "k8s_api_endpoint")
|
||||||
autocomplete_fields = ("cloud_provider",)
|
autocomplete_fields = ("cloud_provider",)
|
||||||
|
actions = ["test_kubernetes_connection"]
|
||||||
|
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
(
|
(
|
||||||
|
@ -137,6 +138,29 @@ class ControlPlaneAdmin(admin.ModelAdmin):
|
||||||
# Exclude the original api_credentials field as we're using our custom fields
|
# Exclude the original api_credentials field as we're using our custom fields
|
||||||
return ["api_credentials"]
|
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)
|
@admin.register(Plan)
|
||||||
class PlanAdmin(admin.ModelAdmin):
|
class PlanAdmin(admin.ModelAdmin):
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue