Создание обработчика REST для любой из конечных точек REST Splunk - PullRequest
0 голосов
/ 13 февраля 2020

Как создать постоянный (или любой в этом отношении) REST HANDLER для любой заданной (встроенной) конечной точки API SPLUNK REST? Как использовать PersistentServerConnectionApplication class?

Я прошел https://gist.github.com/LukeMurphey/238004c8976804a8e79570d22721fd99, но не могу понять, с чего начать и как его создать.

1 Ответ

0 голосов
/ 14 февраля 2020

За несколько лет Джеймс Эрвин провел отличную презентацию .conf о обработчиках REST: go, https://conf.splunk.com/files/2016/slides/extending-splunks-rest-api-for-fun-and-profit.pdf

Пример кода доступен по https://github.com/jrervin/splunk-rest-examples

Пример эха Джеймса довольно прост. Убедитесь, что вы также обратите внимание на дополнения, которые необходимы в web.conf и restmap.conf.

import os
import sys

if sys.platform == "win32":
    import msvcrt
    # Binary mode is required for persistent mode on Windows.
    msvcrt.setmode(sys.stdin.fileno(), os.O_BINARY)
    msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY)
    msvcrt.setmode(sys.stderr.fileno(), os.O_BINARY)

from splunk.persistconn.application import PersistentServerConnectionApplication


class EchoHandler(PersistentServerConnectionApplication):
    def __init__(self, command_line, command_arg):
        PersistentServerConnectionApplication.__init__(self)

    def handle(self, in_string):
        return {'payload': in_string,  # Payload of the request.
                'status': 200          # HTTP status code
        }

Предложите вам просто получить копию своего приложения и развернуть его, подтвердить, что все работает, затем изменить если для вашего конкретного случая использования.

...