diff --git a/django_code/apps/cloudmanager/migrations/0014_alter_ingress_data_namespace.py b/django_code/apps/cloudmanager/migrations/0014_alter_ingress_data_namespace.py new file mode 100644 index 0000000..e79d9ee --- /dev/null +++ b/django_code/apps/cloudmanager/migrations/0014_alter_ingress_data_namespace.py @@ -0,0 +1,18 @@ +# Generated by Django 4.2.30 on 2026-09-21 21:06 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('cloudmanager', '0013_ingress_data'), + ] + + operations = [ + migrations.AlterField( + model_name='ingress_data', + name='namespace', + field=models.CharField(blank=True, max_length=100, null=True), + ), + ] diff --git a/django_code/apps/cloudmanager/models.py b/django_code/apps/cloudmanager/models.py index 7fb7cc4..8691124 100644 --- a/django_code/apps/cloudmanager/models.py +++ b/django_code/apps/cloudmanager/models.py @@ -67,4 +67,4 @@ class Namespace_Data(models.Model): class Ingress_Data(models.Model): url = models.CharField(max_length=100) - namespace = models.ForeignKey(Namespace_Data,null=True, blank=True, on_delete=models.SET_NULL) + namespace = models.CharField(max_length=100,null=True, blank=True) diff --git a/django_code/apps/cloudmanager/urls.py b/django_code/apps/cloudmanager/urls.py index c8869f0..677f76e 100644 --- a/django_code/apps/cloudmanager/urls.py +++ b/django_code/apps/cloudmanager/urls.py @@ -16,7 +16,7 @@ Including another URLconf """ from django.urls import path -from .views import hello,import_namespace_view,retrieve_and_apply_view,scale_up_gui,scale_down_gui +from .views import hello,import_namespace_view,retrieve_and_apply_view,scale_up_gui,scale_down_gui,add_ingress,delete_ingress urlpatterns = [ @@ -26,4 +26,8 @@ urlpatterns = [ path('retrieve_and_apply_view', retrieve_and_apply_view, name='retrieve_and_apply_view'), path('scale_up//', scale_up_gui), path('scale_down//', scale_down_gui), + path('add_ingress', add_ingress), + path('delete_ingress', delete_ingress), + + ] diff --git a/django_code/apps/cloudmanager/views.py b/django_code/apps/cloudmanager/views.py index c888453..3c1d218 100644 --- a/django_code/apps/cloudmanager/views.py +++ b/django_code/apps/cloudmanager/views.py @@ -2,10 +2,12 @@ from django.http import HttpResponse from django.shortcuts import render from datetime import timedelta from django.utils import timezone +from django.views.decorators.csrf import csrf_exempt +from django.http import JsonResponse from .utils import import_namespace,retrieve_and_apply from apps.kubernetes_connection.utils import scale_up,scale_down -from .models import Deployment_Data +from .models import Deployment_Data,Ingress_Data def hello(request): list_schedule = ['schedule1','schedule2'] @@ -32,3 +34,37 @@ def scale_down_gui(request,namespace_name,deploy_name): scale_down(namespace_name=namespace_name,deploy_name=deploy_name) return render(request, 'dashboard/shutdown.html', {'namespace': namespace_name, 'deployment': deploy_name, 'url': 'https://namespace.com'}) + +@csrf_exempt +def add_ingress(request): + url = request.POST.get('url') + namespace = request.POST.get('namespace') + print("URL: "+str(url)) + print("NS: "+str(namespace)) + + try: + Ingress_Data.objects.update_or_create(url=url,namespace=namespace) + except Exception as exception: + return JsonResponse({"status": "error","reason":str(exception)}) + + return JsonResponse({"status": "added","url":str(url),"namespace":str(namespace)}) + +@csrf_exempt +def delete_ingress(request): + url = request.POST.get('url') + namespace = request.POST.get('namespace') + print("URL: "+str(url)) + print("NS: "+str(namespace)) + + try: + ingress_object = Ingress_Data.objects.filter(url=url,namespace=namespace) + except Exception as exception: + return JsonResponse({"status": "error","reason":str(exception)}) + + try: + ingress_object.delete() + except Exception as exception: + return JsonResponse({"status": "error","reason":str(exception)}) + + return JsonResponse({"status": "deleted","url":str(url),"namespace":str(namespace)}) + \ No newline at end of file