diff --git a/splunklib/client.py b/splunklib/client.py index 21d27a6e0..860f0c859 100644 --- a/splunklib/client.py +++ b/splunklib/client.py @@ -724,7 +724,7 @@ class Endpoint(object): """ def __init__(self, service, path): self.service = service - self.path = path if path.endswith('/') else path + '/' + self.path = path def get(self, path_segment="", owner=None, app=None, sharing=None, **query): """Performs a GET operation on the path segment relative to this endpoint. @@ -782,6 +782,8 @@ def get(self, path_segment="", owner=None, app=None, sharing=None, **query): if path_segment.startswith('/'): path = path_segment else: + if not self.path.endswith('/') and path_segment != "": + self.path = self.path + '/' path = self.service._abspath(self.path + path_segment, owner=owner, app=app, sharing=sharing) # ^-- This was "%s%s" % (self.path, path_segment). @@ -842,6 +844,8 @@ def post(self, path_segment="", owner=None, app=None, sharing=None, **query): if path_segment.startswith('/'): path = path_segment else: + if not self.path.endswith('/') and path_segment != "": + self.path = self.path + '/' path = self.service._abspath(self.path + path_segment, owner=owner, app=app, sharing=sharing) return self.service.post(path, owner=owner, app=app, sharing=sharing, **query) diff --git a/tests/test_service.py b/tests/test_service.py index df78f54f7..d1fa89118 100755 --- a/tests/test_service.py +++ b/tests/test_service.py @@ -167,6 +167,16 @@ def _create_unauthenticated_service(self): 'scheme': self.opts.kwargs['scheme'] }) + #To check the HEC event endpoint using Endpoint instance + def test_hec_event(self): + import json + service_hec = client.connect(host='localhost', scheme='https', port=8088, + token="11111111-1111-1111-1111-1111111111113") + event_collector_endpoint = client.Endpoint(service_hec, "/services/collector/event") + msg = {"index": "main", "event": "Hello World"} + response = event_collector_endpoint.post("", body=json.dumps(msg)) + self.assertEqual(response.status,200) + class TestCookieAuthentication(unittest.TestCase): def setUp(self):