Hello Splunkers,
I am developing an app containing a Custom Generating Search Command. (I think the Generating part is irrelevant for this case)
I need my custom command to get the user who executed this search.
Following the page below, I got to this code, which returns the wrong user:
http://dev.splunk.com/view/python-sdk/SP-CAAAEJ6#currentuser
from splunklib.searchcommands import GeneratingCommand, dispatch, Configuration
from splunklib import client
@Configuration(streaming=True, local=True)
class MyCommand(GeneratingCommand):
def generate(self):
service = client.connect(username='fixed_user', password='fixed_password')
user = service.username # user is fixed_user, not the current user
yield {'_time': time.time(),'_raw': user}
dispatch(MyCommand, sys.argv, sys.stdin, sys.stdout, __name__)
When I execute the search | mycommand
on Splunk Web, I get fixed_user
, not the current logged user.
How can my custom command know which user is calling it?
You can make use of self which is passed into generate(self):
user = self._metadata.searchinfo.username
You can make use of self which is passed into generate(self):
user = self._metadata.searchinfo.username