Пример #1
0
def sendEmail(results, settings):
    keywords, argvals = splunk.Intersplunk.getKeywordsAndOptions()

    if not ("graceful" in argvals):
        argvals["graceful"] = 0

    if getarg(argvals, "to") == None:
        return dcu.getErrorResults(
            results,
            argvals["graceful"],
            'missing required argument: to. Please specify at least on email recipient as: "[email protected]"',
        )

    if "subject" in argvals and "_ScheduledView__" in argvals["subject"]:
        argvals["subject"] = argvals["subject"].replace("_ScheduledView__", "")

    if len(results) == 0:
        msgText = "No results."
    else:
        format = getarg(argvals, "format", "html").lower()

        # always attach in CSV format
        if not toBool(getarg(argvals, "inline", "true")):
            format = "csv"
        else:
            # if inlining results render _time to something user readable
            renderTime(results)

        # see if we need to sort fields by widht (in text mode only)
        width_sort_columns = toBool(argvals.get("width_sort_columns", "true"))

        if format == "raw":
            msgText = generateRawResults(results)
        elif format == "html":
            msgText = generateHTMLResults(results)
        elif format == "csv":
            msgText = generateCSVResults(results)
        else:
            msgText = generateTextResults(results, width_sort_columns)

    try:
        #       if not toBool(getarg(argvals, "sendresults", "false") ):
        #           msgText=''

        mail(argvals, settings, msgText)
    except Exception, e:
        # import traceback
        # stack   = traceback.format_exc()
        results = dcu.getErrorResults(
            results, argvals["graceful"], str(e) + " while sending mail to: " + getarg(argvals, "to")
        )
Пример #2
0
def sendEmail(results, settings):
    keywords, argvals = splunk.Intersplunk.getKeywordsAndOptions() 

    if not ('graceful' in argvals):
        argvals['graceful'] = 0

    if getarg(argvals, "to") == None:
        return dcu.getErrorResults(results, argvals['graceful'], "missing required argument: to. Please specify at least on email recipient as: \"[email protected]\"")

    if 'subject' in argvals and '_ScheduledView__' in argvals['subject']:
        argvals['subject'] = argvals['subject'].replace('_ScheduledView__', '')

    if len(results) == 0:
        msgText = "No results."
    else:
        format = getarg(argvals, "format", "html").lower()
        
        # always attach in CSV format
        if not toBool(getarg(argvals, "inline", "true") ):
           format = "csv"
        else:
	   # if inlining results render _time to something user readable
           renderTime(results)           
      
        # see if we need to sort fields by widht (in text mode only) 
        width_sort_columns = toBool(argvals.get("width_sort_columns", "true"))
 
        if format == "raw":
            msgText = generateRawResults(results)
        elif format == "html":
            msgText = generateHTMLResults(results)
        elif format =="csv":
            msgText = generateCSVResults(results)        
        else:
            msgText = generateTextResults(results, width_sort_columns)

    try:
#       if not toBool(getarg(argvals, "sendresults", "false") ):
#           msgText=''

        mail(argvals, settings, msgText)
    except Exception, e:
        #import traceback
        #stack   = traceback.format_exc()
        results = dcu.getErrorResults(results, argvals['graceful'], str(e) + ' while sending mail to: ' + getarg(argvals, "to"))
Пример #3
0
    if len(str) == 0:
        return str
    if str.startswith("'") and str.endswith("'"):
        str = str[1:-1]
    if str.startswith('"') and str.endswith('"'):
        str = str[1:-1]
    return str


results, dummyresults, settings = splunk.Intersplunk.getOrganizedResults()
keywords, args = splunk.Intersplunk.getKeywordsAndOptions(
)  # args = dcu.getArgValues()

if (len(sys.argv) < 5):
    results = dcu.getErrorResults(
        results, graceful,
        'Usage: createrss <path = rss path> <name = name/title of the rss item> <link = rss item link> <descr = rss item description> <count = maximum number of items> [graceful = (1|0)]'
    )
    splunk.Intersplunk.outputResults(results)
    sys.exit()

path = trimQuotes(args["path"]) if "path" in args else ""
name = trimQuotes(args["name"]) if "name" in args else ""
link = trimQuotes(args["link"]) if "link" in args else ""
desc = trimQuotes(args["descr"]) if "descr" in args else ""
thresh = int(args["count"]) if "count" in args else 100

graceful = 0
if ("graceful" in args):
    graceful = int(args["graceful"])

# ensure nothing dangerous
Пример #4
0
    #attachments must be added before body so body can inlclude errors cause by attachments
    buildAttachments(settings, ssContent, resultsWithRenderedTime, emailMix,
                     jobCount)
    buildPlainTextBody(ssContent, resultsWithRenderedTime, settings, emailAlt,
                       jobCount)
    buildHTMLBody(ssContent, resultsWithRenderedTime, settings, emailAlt,
                  jobCount)
    buildHeaders(argvals, ssContent, emailMix, sid, serverInfoContent)

    try:
        mail(emailMix, argvals, ssContent)
    except Exception, e:
        errorMessage = str(e) + ' while sending mail to: ' + ssContent.get(
            "action.email.to")
        logger.error(errorMessage)
        results = dcu.getErrorResults(results, ssContent['graceful'],
                                      errorMessage)
    return results


def buildSafeMergedValues(ssContent, results, serverInfoContent, jobContent,
                          results_file):
    mergedObject = {}
    #namespace the keys
    for key, value in jobContent.iteritems():
        mergedObject['token.job.' + key] = value
    mergedObject['token.search_id'] = jobContent.get('sid')

    for key, value in ssContent.iteritems():
        mergedObject['token.' + key] = value

    mergedObject['token.name'] = ssContent.get('name')
Пример #5
0
            
def trimQuotes(str):
   if len(str) == 0:
      return str
   if str.startswith("'") and str.endswith("'"):
      str = str[1:-1]
   if str.startswith('"') and str.endswith('"'):       
      str = str[1:-1]
   return str        


results,dummyresults,settings = splunk.Intersplunk.getOrganizedResults()
keywords, args = splunk.Intersplunk.getKeywordsAndOptions() # args = dcu.getArgValues()

if(len(sys.argv) < 5):
    results = dcu.getErrorResults(results, graceful, 'Usage: createrss <path = rss path> <name = name/title of the rss item> <link = rss item link> <descr = rss item description> <count = maximum number of items> [graceful = (1|0)]')
    splunk.Intersplunk.outputResults( results )
    sys.exit()
  
path   = trimQuotes(args["path"] )  if "path"  in args  else ""
name   = trimQuotes(args["name"] )  if "name"  in args  else ""
link   = trimQuotes(args["link"] )  if "link"  in args  else ""
desc   = trimQuotes(args["descr"])  if "descr" in args  else ""
thresh = int(args["count"]) if "count" in args  else 100

graceful  = 0
if("graceful" in args):
    graceful = int(args["graceful"])

# ensure nothing dangerous
if ".." in path or "/" in path or "\\" in path:
Пример #6
0
    setUserCrendentials(argvals, settings)

    #build all the different email components
    jobCount = getJobCount(jobContent)
    #attachments must be added before body so body can inlclude errors cause by attachments
    buildAttachments(settings, ssContent, resultsWithRenderedTime, emailMix, jobCount)
    buildPlainTextBody(ssContent, resultsWithRenderedTime, settings, emailAlt, jobCount)
    buildHTMLBody(ssContent, resultsWithRenderedTime, settings, emailAlt, jobCount)
    buildHeaders(argvals, ssContent, emailMix, sid, serverInfoContent)

    try:
        mail(emailMix, argvals, ssContent)
    except Exception, e:
        errorMessage = str(e) + ' while sending mail to: ' + ssContent.get("action.email.to")
        logger.error(errorMessage)
        results = dcu.getErrorResults(results, ssContent['graceful'], errorMessage)
    return results

def buildSafeMergedValues(ssContent, results, serverInfoContent, jobContent, results_file):
    mergedObject = {}
     #namespace the keys
    for key, value in jobContent.iteritems():
        mergedObject['token.job.'+key] = value
    mergedObject['token.search_id'] = jobContent.get('sid')

    for key, value in ssContent.iteritems():
        mergedObject['token.'+key] = value

    mergedObject['token.name'] = ssContent.get('name')
    mergedObject['token.app'] = ssContent.get('app')
    mergedObject['token.owner'] = ssContent.get('owner')