This function will parse the raw syslog data, dynamically create the
        topic according to the topic specified by the user (if specified) and
        decide whether to send the syslog data as an event on the master bus,
        based on the constraints given by the user.

        :param data: The raw syslog event data which is to be parsed.
        :param host: The IP of the host from where syslog is forwarded.
        :param port: Port of the junos device from which the data is sent
        :param options: kwargs provided by the user in the configuration file.
        :return: The result dictionary which contains the data and the topic,
                 if the event is to be sent on the bus.

def parseData(self, data, host, port, options):
        '''
        This function will parse the raw syslog data, dynamically create the
        topic according to the topic specified by the user (if specified) and
        decide whether to send the syslog data as an event on the master bus,
        based on the constraints given by the user.

        :param data: The raw syslog event data which is to be parsed.
        :param host: The IP of the host from where syslog is forwarded.
        :param port: Port of the junos device from which the data is sent
        :param options: kwargs provided by the user in the configuration file.
        :return: The result dictionary which contains the data and the topic,
                 if the event is to be sent on the bus.

        '''
        data = self.obj.parse(data)
        data['hostip'] = host
        log.debug(
            'Junos Syslog - received %s from %s, sent from port %s',
            data, host, port
        )

        send_this_event = True
        for key in options:
            if key in data:
                if isinstance(options[key], (six.string_types, int)):
                    if six.text_type(options[key]) != six.text_type(data[key]):
                        send_this_event = False
                        break
                elif isinstance(options[key], list):
                    for opt in options[key]:
                        if six.text_type(opt) == six.text_type(data[key]):
                            break
                    else:
                        send_this_event = False
                        break
                else:
                    raise Exception(
                        'Arguments in config not specified properly')
            else:
                raise Exception(
                    'Please check the arguments given to junos engine in the\
                     configuration file')

        if send_this_event:
            if 'event' in data:
                topic = 'jnpr/syslog'

                for i in range(2, len(self.title)):
                    topic += '/' + six.text_type(data[self.title[i]])
                    log.debug(
                        'Junos Syslog - sending this event on the bus: %s from %s',
                        data, host
                    )
                result = {'send': True, 'data': data, 'topic': topic}
                return result
            else:
                raise Exception(
                    'The incoming event data could not be parsed properly.')
        else:
            result = {'send': False}
            return result