Skip to content

Commit

Permalink
Hago que RootKongApi sea un singleton
Browse files Browse the repository at this point in the history
    refs:#147

    refs:#147
  • Loading branch information
alejandrosobko committed Oct 16, 2018
1 parent 183b81a commit 50cd682
Show file tree
Hide file tree
Showing 4 changed files with 9 additions and 10 deletions.
8 changes: 5 additions & 3 deletions api_management/apps/api_registry/admin.py
@@ -1,6 +1,7 @@
from django.contrib import admin
from django.core.checks import messages
from django.core.exceptions import ValidationError
from solo.admin import SingletonModelAdmin

from .models import KongApi, TokenRequest, KongApiPluginHttpLog, \
KongApiPluginRateLimiting, KongApiPluginJwt, \
Expand Down Expand Up @@ -141,7 +142,8 @@ class KongConsumerAdmin(admin.ModelAdmin):
)


@admin.register(RootKongApi)
class RootKongApiAdmin(admin.ModelAdmin):
list_display = ['upstream_url', 'hosts']
class RootKongAdmin(SingletonModelAdmin):
exclude = ['kong_id']


admin.site.register(RootKongApi, RootKongAdmin)
9 changes: 2 additions & 7 deletions api_management/apps/api_registry/models.py
Expand Up @@ -9,6 +9,7 @@
from django.db.models.signals import pre_delete, pre_save, post_save
from django.dispatch import receiver
from django.urls import reverse
from solo.models import SingletonModel

from api_management.apps.api_registry.helpers import kong_client_using_settings
from api_management.apps.api_registry.mixins import KongConsumerChildMixin
Expand Down Expand Up @@ -521,19 +522,13 @@ def config(self):
}


class RootKongApi(KongObject):
class RootKongApi(SingletonModel, KongObject):
upstream_url = models.URLField(blank=False)
hosts = models.CharField(max_length=200, validators=[HostsValidator()], blank=False)

def __str__(self):
return "Root Kong Api"

# this is to not create multiples RootKongApi models
def save(self, force_insert=False, force_update=False, using=None,
update_fields=None):
if RootKongApi.objects.first() is None:
super(RootKongApi, self).save(force_insert, force_update, using, update_fields)

def create_kong(self, kong_client):
response = kong_client.apis.create(name='root-api',
upstream_url=self.upstream_url,
Expand Down
1 change: 1 addition & 0 deletions conf/settings/base.py
Expand Up @@ -57,6 +57,7 @@
'django_filters',
'axes',
'admin_honeypot',
'solo.apps.SoloAppConfig',
]

LOCAL_APPS = [
Expand Down
1 change: 1 addition & 0 deletions requirements/base.txt
Expand Up @@ -4,6 +4,7 @@ django-extensions==1.9.9
djangorestframework==3.7.7
django-rq==1.0.1
django-filter==1.1.0
django-solo==1.1.3

requests>=2.18.4
django-axes==4.1.0
Expand Down

0 comments on commit 50cd682

Please sign in to comment.