def run(self): ctx = ServiceContext() config = ctx.getConfigService() queue = ctx.getQueueService() self.schema = avro.schema.parse(avro_schema) constructor="KafkaConsumer(%s,group_id=%s,bootstrap_servers=%s)" topics = config.get("Input Plugin: kafka_collector","kafka_topics") group_id = config.get("Input Plugin: kafka_collector","kafka_groupid") bootstrap_server = config.get("Message","kafka_broker") str = constructor % (topics,group_id,bootstrap_server) self.consumer = eval(str) for msg in self.consumer: value = bytearray(msg.value) topic = msg.topic bytes_reader = io.BytesIO(value[5:]) decoder = avro.io.BinaryDecoder(bytes_reader) reader = avro.io.DatumReader(self.schema) kafkamsg = reader.read(decoder) try: jsondata = json.loads(kafkamsg['rawdata']) eventType = jsondata["eventName"] jsondata['topic'] = topic queue.put(EventFactory.getEvent(eventType,jsondata)) except InputError,e: self.error(str(e)) except:
def checksvc(accountid): ctx = ServiceContext() queue = ctx.getQueueService() map = {"accountId":accountid,"eventName":"TENANT_CHECK"} event = EventFactory.getEvent("TENANT_CHECK",map) queue.put(event) logger.info("trigger account(%s) tenant check" % accountid)
def checksvc(accountid): ctx = ServiceContext() queue = ctx.getQueueService() map = {"accountId": accountid, "eventName": "TENANT_CHECK"} event = EventFactory.getEvent("TENANT_CHECK", map) queue.put(event) logger.info("trigger account(%s) tenant check" % accountid)
def run(self): ctx = ServiceContext() queue = ctx.getQueueService() self._initializeschema() self._initializeconsumer() for msg in self.consumer: value = bytearray(msg.value) topic = msg.topic bytes_reader = io.BytesIO(value[5:]) decoder = avro.io.BinaryDecoder(bytes_reader) reader = avro.io.DatumReader(self.schema) kafkamsg = reader.read(decoder) try: jsondata = json.loads(kafkamsg['rawdata']) eventType = jsondata["eventName"] jsondata['topic'] = topic print EventFactory.getEvent(eventType,jsondata) queue.put(EventFactory.getEvent(eventType,jsondata)) except: self.error("has excetpion when resovle kafka message.")
def handleTenant_SAEnable(*args,**kwargs): event = kwargs["sender"] session = kwargs["session"] accountId = event.accountId if accountId == None: logger.error("accountId is None, ignore the invalid request") return try: account = session.query(Tenant).filter(Tenant.id == accountId).one() logger.error("<%s> account is in db , need to clean.") return except NoResultFound: tenant = Tenant() tenant.id = accountId tenant.name = "TBD" tenant.state = Tenant_Sate.PACKAGE_ACTIVATE session.add(tenant) session.flush() inventory = DMSInventoryManager() try: inventory.start() services = inventory.getservice(accountId) except: logger.error("get account <%s> service from zookeeper failed" % accountId) return mgr = ModelManager() for svc in services: model_svc = mgr.getsvfdefbyname(svc) servcie = createRuntimeService(model_svc,tenant.id) session.add(servcie) session.flush() for svc in services: nodes = inventory.getinstancebyservice(accountId,svc) for node in nodes: node["topic"] = "dms.event.rundeck" msg_event = EventFactory.getEvent("CREATE_VM",node) tenant.getSM().trigger("create_vm",tenant = tenant,payload=msg_event) session.commit() inventory.stop()
def run(self): ctx = ServiceContext() queue = ctx.getQueueService() config = ctx.getConfigService() constructor = "KafkaConsumer(%s,group_id=%s,bootstrap_servers=%s)" topics = config.get("Input Plugin: event_collector", "event_topic") group_id = config.get("Input Plugin: event_collector", "event_groupid") bootstrap_server = config.get("Message", "kafka_broker") str = constructor % (topics, group_id, bootstrap_server) self.consumer = eval(str) for msg in self.consumer: # value = bytearray(msg.value) topic = msg.topic try: jsondata = json.loads(msg.value) eventType = jsondata["eventName"] jsondata['topic'] = topic queue.put(EventFactory.getEvent(eventType, jsondata)) except IndexError, e: self.error(e)
def run(self): ctx = ServiceContext() queue = ctx.getQueueService() config = ctx.getConfigService() constructor="KafkaConsumer(%s,group_id=%s,bootstrap_servers=%s)" topics = config.get("Input Plugin: event_collector","event_topic") group_id = config.get("Input Plugin: event_collector","event_groupid") bootstrap_server = config.get("Message","kafka_broker") str = constructor % (topics,group_id,bootstrap_server) self.consumer = eval(str) for msg in self.consumer: # value = bytearray(msg.value) topic = msg.topic try: jsondata = json.loads(msg.value) eventType = jsondata["eventName"] jsondata['topic'] = topic queue.put(EventFactory.getEvent(eventType,jsondata)) except IndexError,e: self.error(e)