Splunk Dev

How can I import croniter in my modular input?

prabhasgupte
Communicator

I want to accept data input interval as cron entry and process it in my modular input.
I am referring this REST API Modular Input app (https://splunkbase.splunk.com/app/1546/) for that. It uses croniter to get next run time of job.

However, I am not being able to import croniter into my modular input script.
I have croniter egg file at SPLUNK_HOME/etc/apps/TA-myta/bin/croniter-0.3.8-py2.7.egg
I have also explicitly added SPLUNK_HOME/etc/apps/TA-myta/bin/croniter-0.3.8-py2.7.egg to sys.path (not needed, but added as an attempt to make it work.)
However, when I try to import croniter, I get ImportError.

How can I fix this?

My code to the point of failure looks as follows. I always get into except block and never see "ready to go":
import sys
from datetime import datetime

import splunk.clilib.cli_common as scc
import splunk.entity as entity

logger = logging.getLogger('TA-myta')

TA_ROOT = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))

egg_dir = TA_ROOT + "/bin/croniter-0.3.8-py2.7.egg"
sys.path.append(egg_dir)
try:
    from croniter import croniter
except:
    logger.error("could not import croniter. Exiting.")
    exit(0)

logger.info("ready to go")

Edit 1:
The splunkd.log has following lines:

03-22-2017 16:27:30.105 +0530 ERROR ExecProcessor - message from "python /opt/splunk/etc/apps/TA-myta/bin/myta.py" ImportError: No module named dateutil.relativedelta
03-22-2017 16:28:30.264 +0530 ERROR ExecProcessor - message from "python /opt/splunk/etc/apps/TA-myta/bin/myta.py" Traceback (most recent call last):
03-22-2017 16:28:30.264 +0530 ERROR ExecProcessor - message from "python /opt/splunk/etc/apps/TA-myta/bin/myta.py"   File "/opt/splunk/etc/apps/TA-myta/bin/myta.py", line 39, in <module>
03-22-2017 16:28:30.265 +0530 ERROR ExecProcessor - message from "python /opt/splunk/etc/apps/TA-myta/bin/myta.py"     from croniter import croniter
03-22-2017 16:28:30.265 +0530 ERROR ExecProcessor - message from "python /opt/splunk/etc/apps/TA-myta/bin/myta.py"   File "/opt/splunk/etc/apps/TA-myta/bin/croniter-0.3.8-py2.7.egg/croniter/__init__.py", line 3, in <module>
03-22-2017 16:28:30.265 +0530 ERROR ExecProcessor - message from "python /opt/splunk/etc/apps/TA-myta/bin/myta.py"     import abc
03-22-2017 16:28:30.265 +0530 ERROR ExecProcessor - message from "python /opt/splunk/etc/apps/TA-myta/bin/myta.py"   File "/opt/splunk/etc/apps/TA-myta/bin/croniter-0.3.8-py2.7.egg/croniter/croniter.py", line 8, in <module>
0 Karma
1 Solution

prabhasgupte
Communicator

Never mind! Got it working!!

I needed to add and import eggs for python_dateutil and six - as dependencies for croniter.

View solution in original post

0 Karma

prabhasgupte
Communicator

Never mind! Got it working!!

I needed to add and import eggs for python_dateutil and six - as dependencies for croniter.

0 Karma
Get Updates on the Splunk Community!

Upcoming Webinar: Unmasking Insider Threats with Slunk Enterprise Security’s UEBA

Join us on Wed, Dec 10. at 10AM PST / 1PM EST for a live webinar and demo with Splunk experts! Discover how ...

.conf25 technical session recap of Observability for Gen AI: Monitoring LLM ...

If you’re unfamiliar, .conf is Splunk’s premier event where the Splunk community, customers, partners, and ...

A Season of Skills: New Splunk Courses to Light Up Your Learning Journey

There’s something special about this time of year—maybe it’s the glow of the holidays, maybe it’s the ...