Skip to content

Commit 4a1d31a

Browse files
authored
Merge pull request #413 from splunk/default-kvstore-owner-nobody
Default kvstore owner to nobody
2 parents e6caf2c + bc20898 commit 4a1d31a

File tree

4 files changed

+28
-5
lines changed

4 files changed

+28
-5
lines changed

splunklib/client.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -403,6 +403,7 @@ class Service(_BaseService):
403403
def __init__(self, **kwargs):
404404
super(Service, self).__init__(**kwargs)
405405
self._splunk_version = None
406+
self._kvstore_owner = None
406407

407408
@property
408409
def apps(self):
@@ -675,12 +676,34 @@ def splunk_version(self):
675676
self._splunk_version = tuple([int(p) for p in self.info['version'].split('.')])
676677
return self._splunk_version
677678

679+
@property
680+
def kvstore_owner(self):
681+
"""Returns the KVStore owner for this instance of Splunk.
682+
683+
By default is the kvstore owner is not set, it will return "nobody"
684+
:return: A string with the KVStore owner.
685+
"""
686+
if self._kvstore_owner is None:
687+
self._kvstore_owner = "nobody"
688+
return self._kvstore_owner
689+
690+
@kvstore_owner.setter
691+
def kvstore_owner(self, value):
692+
"""
693+
kvstore is refreshed, when the owner value is changed
694+
"""
695+
self._kvstore_owner = value
696+
self.kvstore
697+
678698
@property
679699
def kvstore(self):
680700
"""Returns the collection of KV Store collections.
681701
702+
sets the owner for the namespace, before retrieving the KVStore Collection
703+
682704
:return: A :class:`KVStoreCollections` collection of :class:`KVStoreCollection` entities.
683705
"""
706+
self.namespace['owner'] = self.kvstore_owner
684707
return KVStoreCollections(self)
685708

686709
@property

tests/test_kvstore_batch.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
class KVStoreBatchTestCase(testlib.SDKTestCase):
2727
def setUp(self):
2828
super(KVStoreBatchTestCase, self).setUp()
29-
self.service.namespace['owner'] = 'nobody'
29+
#self.service.namespace['owner'] = 'nobody'
3030
self.service.namespace['app'] = 'search'
3131
confs = self.service.kvstore
3232
if ('test' in confs):

tests/test_kvstore_conf.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,16 +25,16 @@
2525
class KVStoreConfTestCase(testlib.SDKTestCase):
2626
def setUp(self):
2727
super(KVStoreConfTestCase, self).setUp()
28-
self.service.namespace['owner'] = 'nobody'
28+
#self.service.namespace['owner'] = 'nobody'
2929
self.service.namespace['app'] = 'search'
3030
self.confs = self.service.kvstore
3131
if ('test' in self.confs):
3232
self.confs['test'].delete()
3333

3434
def test_owner_restriction(self):
35-
self.service.namespace['owner'] = 'admin'
35+
self.service.kvstore_owner = 'admin'
3636
self.assertRaises(client.HTTPError, lambda: self.confs.list())
37-
self.service.namespace['owner'] = 'nobody'
37+
self.service.kvstore_owner = 'nobody'
3838

3939
def test_create_delete_collection(self):
4040
self.confs.create('test')

tests/test_kvstore_data.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
class KVStoreDataTestCase(testlib.SDKTestCase):
2828
def setUp(self):
2929
super(KVStoreDataTestCase, self).setUp()
30-
self.service.namespace['owner'] = 'nobody'
30+
#self.service.namespace['owner'] = 'nobody'
3131
self.service.namespace['app'] = 'search'
3232
self.confs = self.service.kvstore
3333
if ('test' in self.confs):

0 commit comments

Comments
 (0)