diff options
Diffstat (limited to 'deps/rabbitmq_trust_store/examples/rabbitmq_trust_store_django/rabbitmq_trust_store_django/trust_store')
5 files changed, 63 insertions, 0 deletions
diff --git a/deps/rabbitmq_trust_store/examples/rabbitmq_trust_store_django/rabbitmq_trust_store_django/trust_store/__init__.py b/deps/rabbitmq_trust_store/examples/rabbitmq_trust_store_django/rabbitmq_trust_store_django/trust_store/__init__.py new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/deps/rabbitmq_trust_store/examples/rabbitmq_trust_store_django/rabbitmq_trust_store_django/trust_store/__init__.py diff --git a/deps/rabbitmq_trust_store/examples/rabbitmq_trust_store_django/rabbitmq_trust_store_django/trust_store/apps.py b/deps/rabbitmq_trust_store/examples/rabbitmq_trust_store_django/rabbitmq_trust_store_django/trust_store/apps.py new file mode 100644 index 0000000000..b7eb12104b --- /dev/null +++ b/deps/rabbitmq_trust_store/examples/rabbitmq_trust_store_django/rabbitmq_trust_store_django/trust_store/apps.py @@ -0,0 +1,7 @@ +from __future__ import unicode_literals + +from django.apps import AppConfig + + +class TrustStoreConfig(AppConfig): + name = 'trust_store' diff --git a/deps/rabbitmq_trust_store/examples/rabbitmq_trust_store_django/rabbitmq_trust_store_django/trust_store/tests.py b/deps/rabbitmq_trust_store/examples/rabbitmq_trust_store_django/rabbitmq_trust_store_django/trust_store/tests.py new file mode 100644 index 0000000000..7ce503c2dd --- /dev/null +++ b/deps/rabbitmq_trust_store/examples/rabbitmq_trust_store_django/rabbitmq_trust_store_django/trust_store/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/deps/rabbitmq_trust_store/examples/rabbitmq_trust_store_django/rabbitmq_trust_store_django/trust_store/urls.py b/deps/rabbitmq_trust_store/examples/rabbitmq_trust_store_django/rabbitmq_trust_store_django/trust_store/urls.py new file mode 100644 index 0000000000..67d18f88ee --- /dev/null +++ b/deps/rabbitmq_trust_store/examples/rabbitmq_trust_store_django/rabbitmq_trust_store_django/trust_store/urls.py @@ -0,0 +1,7 @@ +from django.conf.urls import url + +from . import views + +urlpatterns = [ + url(r'^$', views.index, name='index'), +]
\ No newline at end of file diff --git a/deps/rabbitmq_trust_store/examples/rabbitmq_trust_store_django/rabbitmq_trust_store_django/trust_store/views.py b/deps/rabbitmq_trust_store/examples/rabbitmq_trust_store_django/rabbitmq_trust_store_django/trust_store/views.py new file mode 100644 index 0000000000..2e69e63cf5 --- /dev/null +++ b/deps/rabbitmq_trust_store/examples/rabbitmq_trust_store_django/rabbitmq_trust_store_django/trust_store/views.py @@ -0,0 +1,46 @@ +import logging +import os + +from django.shortcuts import render +from django.http import HttpResponse, JsonResponse +from django.conf import settings +from django.views.decorators.http import last_modified +from datetime import datetime + +logger = logging.getLogger(__name__) + +def latest_dir_change(request): + timestamp = os.stat(cert_directory()).st_mtime + dt = datetime.fromtimestamp(timestamp) + logger.debug('latest_dir_change: %s', dt) + return dt + +@last_modified(latest_dir_change) +def index(request): + request.META + directory = cert_directory() + certs = {'certificates': [file_object(file) for file in pem_files(directory)]} + return JsonResponse(certs) + +def cert_directory(): + return os.path.join(settings.BASE_DIR, "certs") + +def pem_files(directory): + files = os.listdir(directory) + return [os.path.join(directory, file) for file in files if is_pem(file)] + +def is_pem(file): + return 'pem' == os.path.splitext(file)[1][1:] + +def file_object(file): + return {'id': file_id(file), 'path': path_for_file(file)} + + +def file_id(file): + mtime = str(int(os.stat(file).st_mtime)) + basename = os.path.basename(file) + return basename + ':' + mtime + +def path_for_file(file): + basename = os.path.basename(file) + return "/certs/" + basename |