Splunk Search

How can I retrieve a value from local .conf file and use it inside a python script lookup?

RiccardoV
Communicator

Hi guys,

I have a value inside a local personalized .conf file (/Splunk/etc/apps/$app/local), ie:

[stanza-name]
value-name = value

How can I retrieve this value and use it inside a python lookup script (stored in /Splunk/etc/apps/$app/bin)?

thanks,

0 Karma
1 Solution

RiccardoV
Communicator

I find the answer looking into the google-maps splunk plugin.
I recycle and modify a little that function:

import os
import sys
from splunk.clilib import cli_common as cli

def getSelfConfStanza(stanza):
    appdir = os.path.dirname(os.path.dirname(__file__))
    apikeyconfpath = os.path.join(appdir, "default", "file.conf")
    apikeyconf = cli.readConfFile(apikeyconfpath)
    localconfpath = os.path.join(appdir, "local", "file.conf")
    if os.path.exists(localconfpath):
        localconf = cli.readConfFile(localconfpath)
        for name, content in localconf.items():
            if name in apikeyconf:
                apikeyconf[name].update(content)
            else:
                apikeyconf[name] = content
return apikeyconf[stanza]

Now you can access your configuration:

stanza = getSelfConfStanza("yourStanzaName")
value = stanza['yourValueKey']

View solution in original post

RiccardoV
Communicator

I find the answer looking into the google-maps splunk plugin.
I recycle and modify a little that function:

import os
import sys
from splunk.clilib import cli_common as cli

def getSelfConfStanza(stanza):
    appdir = os.path.dirname(os.path.dirname(__file__))
    apikeyconfpath = os.path.join(appdir, "default", "file.conf")
    apikeyconf = cli.readConfFile(apikeyconfpath)
    localconfpath = os.path.join(appdir, "local", "file.conf")
    if os.path.exists(localconfpath):
        localconf = cli.readConfFile(localconfpath)
        for name, content in localconf.items():
            if name in apikeyconf:
                apikeyconf[name].update(content)
            else:
                apikeyconf[name] = content
return apikeyconf[stanza]

Now you can access your configuration:

stanza = getSelfConfStanza("yourStanzaName")
value = stanza['yourValueKey']

Snehalg176
Loves-to-Learn Everything

Hi @RiccardoV ,

Is there any documentation on library "splunk.clilib" or on module "cli_common" ? Also, can you please let me know if there is any method to write contents to the config file that we are reading through command line ?

0 Karma

SanjayReddy
SplunkTrust
SplunkTrust


Hi  @Snehalg176 

I’m a Community Moderator in the Splunk Community. Thanks for contributing as a member in the forum!

This question was posted 10 years ago and might not get the attention you need for your own question to be answered. I suggest you please post a brand new question so your issue can get more visibility. To increase your chances of getting help from the community, follow these guidelines in the Splunk Answers User Manual when creating your post.

0 Karma
Get Updates on the Splunk Community!

Index This | When is October more than just the tenth month?

October 2025 Edition  Hayyy Splunk Education Enthusiasts and the Eternally Curious!   We’re back with this ...

Observe and Secure All Apps with Splunk

  Join Us for Our Next Tech Talk: Observe and Secure All Apps with SplunkAs organizations continue to innovate ...

What’s New & Next in Splunk SOAR

 Security teams today are dealing with more alerts, more tools, and more pressure than ever.  Join us for an ...