Example #1
0
    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:
Example #2
0
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)
Example #3
0
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)
Example #4
0
    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.")
Example #5
0
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()
Example #6
0
    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)
Example #7
0
    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)