Esempio n. 1
0
    def save(self, app, action, host_app=None, **params):
        ''' save the posted setup content '''

        user = cherrypy.session['user']['name']

        mon = MonitorInput.all()
        mon = mon.filter_by_app(app)

        scripted = ScriptedInput.all()
        scripted = scripted.filter_by_app(app)

        for m in mon:
            disabled = normBool(params.get(m.name + '.disabled'))
            if disabled:
                m.disable()
            else:
                m.enable()
            m.share_global()

        for s in scripted:
            disabled = normBool(params.get(s.name + '.disabled'))
            if disabled:
                s.disable()
            else:
                s.enable()
            s.share_global()
            interval = params.get(s.name + '.interval')
            if interval:
                s.interval = interval
                try:
                    if not s.passive_save():
                        logger.error(m.errors)
                        return self.render_template(
                            '/%s:/templates/setup_show.html' \
                                % host_app,
                            dict(app=app,
                                 errors=s,
                                 scripted=scripted,
                                 mon=mon)
                        )
                except splunk.AuthorizationFailed:
                    raise cherrypy.HTTPRedirect(
                        self._redirect(host_app, app, 'unauthorized'))
                except Exception, ex:
                    logger.info(ex)
                    raise cherrypy.HTTPRedirect(
                        self._redirect(host_app, app, 'failure'))
Esempio n. 2
0
    def save(self, app, action, host_app=None, **params):
        ''' save the posted setup content '''

        user = cherrypy.session['user']['name'] 

        mon = MonitorInput.all()
        mon = mon.filter_by_app(app)
  
        scripted = ScriptedInput.all()
        scripted = scripted.filter_by_app(app)
            
        for m in mon:
            disabled = normBool(params.get(m.name + '.disabled'))
            if disabled:
                m.disable()
            else:
                m.enable()
            m.share_global()

        for s in scripted:
            disabled = normBool(params.get(s.name + '.disabled'))
            if disabled:
                s.disable()
            else:
                s.enable()
            s.share_global()
            interval = params.get(s.name + '.interval')
            if interval:
                s.interval = interval
                try:
                    if not s.passive_save():
                        logger.error(m.errors)
                        return self.render_template(
                            '/%s:/templates/setup_show.html' \
                                % host_app,
                            dict(app=app, 
                                 errors=s,
                                 scripted=scripted, 
                                 mon=mon)
                        )
                except splunk.AuthorizationFailed:
                    raise cherrypy.HTTPRedirect(self._redirect(host_app, app, 'unauthorized'))
                except Exception, ex:
                    logger.info(ex)
                    raise cherrypy.HTTPRedirect(self._redirect(host_app, app, 'failure'))
Esempio n. 3
0
 def __init__(self, scheme_args, args=None, sleep_interval=5, logger_name='python_modular_input', logger_level=None):
     """
     Set up the modular input.
     
     Arguments:
     scheme_args -- The scheme args indicating the run-time mode of the input
     args -- A list of Field instances for validating the arguments
     sleep_interval -- How often to sleep between runs
     logger_name -- The logger name to append to the logger
     """
     
     # Setup defaults
     default_scheme_args = {
                            "use_external_validation" : "true",
                            "streaming_mode" : "xml",
                            "use_single_instance" : True
     }
     
     scheme_args = dict(default_scheme_args.items() + scheme_args.items())
     
     # Set the scheme arguments.
     for arg in scheme_args:
         setattr(self, arg, self._is_valid_param(arg, scheme_args.get(arg)))
           
     # Convert over the use_single_instance argument to a boolean
     self.use_single_instance = normBool(self.use_single_instance)
     
     if args is None:
         self.args = []
     else:
         self.args = args[:]
         
     if sleep_interval > 0:
         self.sleep_interval = sleep_interval
     else:
         self.sleep_interval = 5
         
     # Create the document used for sending events to Splunk through
     self.document = self._create_document()
     
     # Make a lock for controlling access to underlying functions
     self.lock = RLock()
     
     # Initialize the logger level
     if logger_level is None:
         self.logger_level = logging.INFO
     else:
         self.logger_level = logger_level
     
     # Check and save the logger name
     self._logger = None
     
     if logger_name is None or len(logger_name) == 0:
         raise Exception("Logger name cannot be empty")
     
     self.logger_name = logger_name
    def save(self, app, action, **params):
        ''' save the posted setup content '''

        host_app = cherrypy.request.path_info.split('/')[3]
        user = cherrypy.session['user']['name'] 

        win = WinEventLogInput.get(WinEventLogInput.build_id('localhost', host_app, user))
        evt_logs = params.get('winevtlogs')

	if evt_logs:

            win.logs = evt_logs 

	    if normBool(win.disabled):
                win.enable()
	    try:
	        win.edit()
            except Exception, ex:
                logger.exception(ex)
	        raise cherrypy.HTTPRedirect(self._redirect(host_app, app, 'failure'))
Esempio n. 5
0
    def save(self, app, action, **params):
        ''' save the posted setup content '''

        host_app = cherrypy.request.path_info.split('/')[3]
        user = cherrypy.session['user']['name']

        win = WinEventLogInput.get(
            WinEventLogInput.build_id('localhost', host_app, user))
        evt_logs = params.get('winevtlogs')

        if evt_logs:

            win.logs = evt_logs

            if normBool(win.disabled):
                win.enable()
            try:
                win.edit()
            except Exception, ex:
                logger.exception(ex)
                raise cherrypy.HTTPRedirect(
                    self._redirect(host_app, app, 'failure'))
Esempio n. 6
0
            if normBool(win.disabled):
                win.enable()
            try:
                win.edit()
            except Exception, ex:
                logger.exception(ex)
                raise cherrypy.HTTPRedirect(
                    self._redirect(host_app, app, 'failure'))
        else:
            win.disable()

        mon = MonitorInput.all()
        mon = mon.filter_by_app(app)

        for m in mon:
            disabled = normBool(params.get(m.name + '.disabled'))
            if disabled:
                m.disable()
            else:
                m.enable()
            m.share_global()

        self.update_distsearch(host_app,
                               normBool(params.get('optimize_dist_search')))

        logger.debug('Splunk Version = %s' % self._get_version())
        if self._get_version() <= LooseVersion('4.2.2'):
            temp_app = bundle.getConf('app',
                                      namespace=host_app,
                                      owner='nobody')
            temp_app['install']['is_configured'] = 'true'
	    if normBool(win.disabled):
                win.enable()
	    try:
	        win.edit()
            except Exception, ex:
                logger.exception(ex)
	        raise cherrypy.HTTPRedirect(self._redirect(host_app, app, 'failure'))
	else:
            win.disable()

        mon = MonitorInput.all()
        mon = mon.filter_by_app(app)
  
        for m in mon:
            disabled = normBool(params.get(m.name + '.disabled'))
            if disabled:
                m.disable()
            else:
                m.enable()
            m.share_global()

        self.update_distsearch(host_app, normBool(params.get('optimize_dist_search')))

        logger.debug('Splunk Version = %s' % self._get_version())
        if self._get_version() <= LooseVersion('4.2.2'):
            temp_app = bundle.getConf('app', namespace=host_app, owner='nobody') 
            temp_app['install']['is_configured'] = 'true'
        else:
            this_app = App.get(App.build_id(host_app, host_app, user))
            this_app.is_configured = True