summaryrefslogtreecommitdiff
path: root/src/orchestration/vmb_handler.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/orchestration/vmb_handler.py')
-rw-r--r--src/orchestration/vmb_handler.py52
1 files changed, 52 insertions, 0 deletions
diff --git a/src/orchestration/vmb_handler.py b/src/orchestration/vmb_handler.py
new file mode 100644
index 0000000..fc003f2
--- /dev/null
+++ b/src/orchestration/vmb_handler.py
@@ -0,0 +1,52 @@
+import django
+
+from django.conf import settings
+from django.core.exceptions import AppRegistryNotReady
+from django.db import transaction
+import logging
+from logging.handlers import QueueHandler
+
+from .vmb_producer import VMBProducer
+
+try:
+ django.setup()
+ from .models import ImageSync, CentralToRemoteMap, RemoteRegionSetup
+except django.core.exceptions.AppRegistryNotReady as exp:
+ pass
+
+class VMBHandler():
+
+ def __init__(self, loggerQueue, vmbQueue, coordinateQueue):
+ self.loggerQueue = loggerQueue
+ self.vmbQueue = vmbQueue
+ self.coordinateQueue = coordinateQueue
+
+ def run(self):
+ qh = QueueHandler(self.loggerQueue)
+ self.logger = logging.getLogger()
+ self.logger.addHandler(qh)
+ self.logger.setLevel(logging.DEBUG)
+ self.vmbProducer = VMBProducer()
+
+ self.logger.info("VMBHandler started...")
+ while True:
+ #self.logger.info("--------------------------")
+ item = self.vmbQueue.get()
+ self._send_message(item)
+
+ def _send_message(self, item):
+ message = item['message']
+ if message == 'ImageStatus':
+ images_status_message = item['payload']
+ self.vmbProducer.images_status(images_status_message)
+ self.coordinateQueue.put("Done")
+ if message == 'Kubeconfig':
+ kubeconfig_message = item['payload']
+ self.vmbProducer.kubeconfig(kubeconfig_message)
+ if message == 'Namespace':
+ namespace_message = item['payload']
+ self.vmbProducer.namespace_creation(namespace_message)
+ if message == 'ClusterStatus':
+ cluster_status_message = item['payload']
+ self.vmbProducer.cluster_status(cluster_status_message)
+ return