def _build_host_livestate(self, host_name, livestate):
        # pylint: disable=no-self-use, too-many-locals
        """Build and notify the external command for an host livestate

        PROCESS_HOST_CHECK_RESULT;<host_name>;<status_code>;<plugin_output>

        :param host_name: the concerned host name
        :param livestate: livestate dictionary
        :return: external command line
        """
        state = livestate.get('state', 'UP').upper()
        output = livestate.get('output', '')
        long_output = livestate.get('long_output', '')
        perf_data = livestate.get('perf_data', '')
        try:
            timestamp = int(livestate.get('timestamp', 'ABC'))
        except ValueError:
            timestamp = None

        host_state_to_id = {
            "UP": 0,
            "DOWN": 1,
            "UNREACHABLE": 2
        }
        parameters = '%s;%s' % (host_state_to_id.get(state, 3), output)
        if long_output and perf_data:
            parameters = '%s|%s\n%s' % (parameters, perf_data, long_output)
        elif long_output:
            parameters = '%s\n%s' % (parameters, long_output)
        elif perf_data:
            parameters = '%s|%s' % (parameters, perf_data)

        command_line = 'PROCESS_HOST_CHECK_RESULT;%s;%s' % (host_name, parameters)
        if timestamp is not None:
            command_line = '[%d] %s' % (timestamp, command_line)
        else:
            command_line = '[%d] %s' % (int(time.time()), command_line)

        return command_line
Build and notify the external command for an host livestate

        PROCESS_HOST_CHECK_RESULT;<host_name>;<status_code>;<plugin_output>

        :param host_name: the concerned host name
        :param livestate: livestate dictionary
        :return: external command line