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