コード例 #1
0
def disable_alert(commandParameters, channel):
	if(len(commandParameters) > 1):
		Splunk.disableAlert(commandParameters[0], int(commandParameters[1]))
		HipChat.postNotification("{} disabled for {} minutes".format(commandParameters[0], commandParameters[1]), channel)
	else:
		Splunk.disableAlert(commandParameters[0])
		HipChat.postNotification("{} disabled".format(commandParameters[0]), channel)
コード例 #2
0
def list_apps(commandParameters, channel):
	if(len(commandParameters) > 0):
		results = Splunk.listAppNames(commandParameters[0])
	else:
		results = Splunk.listAppNames()
	results = eval(results)
	HipChat.postNotification(Util.formatArray(results), channel)
コード例 #3
0
def list_saved_searches(commandParameters, channel):
	"""  """
	if(len(commandParameters) > 0):
		results = Splunk.listSavedSearches(commandParameters[0])
	else:
		results = Splunk.listSavedSearches()
	HipChat.postNotification(str(results), channel)
コード例 #4
0
def list_dashboards(commandParameters, channel):
	if(len(commandParameters) > 1):
		results = Splunk.listDashboardNames(commandParameters[0], commandParameters[1])
	else:
		results = Splunk.listDashboardNames(commandParameters[0])
	results = eval(results)
	HipChat.postNotification(Util.formatArray(results), channel)
コード例 #5
0
def list_disabled_alerts(commandParameters, channel):
	if(len(commandParameters) > 0):
		results = Splunk.listDisabledAlerts(commandParameters[0])
	else:
		results = Splunk.listDisabledAlerts()
	results = eval(results)
	HipChat.postNotification(Util.formatArray(results), channel)
コード例 #6
0
def connect_to(commandParameters, channel):
	global enviroment
	
	if commandParameters[0].upper() == "ITEST":
		enviroment = commandParameters[0].upper()
		BASE_URL = "https://splunk-itest.ercot.com:8089"
		USERNAME = os.environ.get('SPLUNK_USERNAME')
		PASSWORD = os.environ.get('SPLUNK_PASSWORD')
		
		Splunk.connect(BASE_URL, USERNAME, PASSWORD)
		HipChat.postNotification("Connected to ITest", channel)
		
	elif commandParameters[0].upper() == "LOCAL":
		enviroment = commandParameters[0].upper()
		BASE_URL = "https://localhost:8089"
		USERNAME = os.environ.get('SPLUNK_LOCAL_USERNAME')
		PASSWORD = os.environ.get('SPLUNK_LOCAL_PASSWORD')
		
		Splunk.connect(BASE_URL, USERNAME, PASSWORD)
		HipChat.postNotification("Connected to Local", channel)
コード例 #7
0
ファイル: wrapper.py プロジェクト: brogerm/outlook-splunk-bot
def listDisabledAlerts(params):
	if len(params) > 0:
		return splunk.listDisabledAlerts(params[0])
	else:
		return splunk.listDisabledAlerts()
コード例 #8
0
ファイル: wrapper.py プロジェクト: brogerm/outlook-splunk-bot
def listDashboardNames(params):
	if len(params) == 2:
		return splunk.listDashboardNames(params[0],params[1])
	else:
		return splunk.listDashboardNames(params[0])
コード例 #9
0
def get_dashboard(commandParameters, channel):
	HipChat.postNotification("Getting dashboard {} from {}".format(commandParameters[1], commandParameters[0]), channel)
	Splunk.getDashboardPdf(commandParameters[0], commandParameters[1])
	pdfName = commandParameters[0] + "_" + commandParameters[1]
	pdfPath = 'pdf_files/{}.pdf'.format(pdfName)
	HipChat.postFile(pdfPath, channel)
コード例 #10
0
def run_search(commandParameters, channel):
	results = Splunk.runSearch(commandParameters[0])
	results = eval(results)
	table = Util.formatResultsAsHTMLTable(results)
	HipChat.postNotification(table, channel, format = 'html')
コード例 #11
0
ファイル: wrapper.py プロジェクト: brogerm/outlook-splunk-bot
def listDashboardInputs(params):
	return splunk.listDashboardInputs(params[0],params[1])		
コード例 #12
0
#!/usr/bin/python
from http.server import BaseHTTPRequestHandler,HTTPServer
from urllib.parse import urlparse
import RESTSplunkMethods as splunk
import wrapper
import helper
import os

PORT_NUMBER = 8080
baseurl = 'https://localhost:8089'
username = os.environ.get('SPLUNK_USERNAME_LOCAL')
password = os.environ.get('SPLUNK_PASSWORD_LOCAL')

splunk.connect(baseurl, username, password)

def toCamelCase(str):
	str = str.lower()
	components = str.split(' ')
	# Capitalize the first letter of each component except the first one
	# with the 'title' method and join them together.
	return components[0] + ''.join(x.title() for x in components[1:])

# This class will handle any incoming request from the browser 
class myHandler(BaseHTTPRequestHandler):
	
	# Handler for POST requests
	def do_POST(self):
		contentLength = int(self.headers['Content-Length']) # <--- Gets the size of data
		postBody = (self.rfile.read(contentLength)).decode('utf-8') # <--- Gets the data itself
		
		# Extract the command and the parameters from the postBody
コード例 #13
0
def run_saved_search(commandParameters, channel):
	results = Splunk.runSavedSearch(commandParameters[0])
	HipChat.postNotification(str(results), channel)
コード例 #14
0
ファイル: wrapper.py プロジェクト: brogerm/outlook-splunk-bot
def getDashboardPdf(params):
	if len(params) == 3:
		return splunk.getDashboardPdf(params[0],params[1], params[2])
	else:
		return splunk.getDashboardPdf(params[0],params[1])
コード例 #15
0
ファイル: wrapper.py プロジェクト: brogerm/outlook-splunk-bot
def runSearch(params):
	return splunk.runSearch(params[0])
コード例 #16
0
ファイル: wrapper.py プロジェクト: brogerm/outlook-splunk-bot
def getReportPdf(params):
	return splunk.getReportPdf(params[0])
コード例 #17
0
ファイル: wrapper.py プロジェクト: brogerm/outlook-splunk-bot
def enableAlert(params):
	return splunk.enableAlert(params[0])
コード例 #18
0
ファイル: wrapper.py プロジェクト: brogerm/outlook-splunk-bot
def listSavedSearches(params):
	if len(params) > 0:
		return splunk.listSavedSearches(params[0])
	else:
		return splunk.listSavedSearches()
コード例 #19
0
ファイル: wrapper.py プロジェクト: brogerm/outlook-splunk-bot
def disableAlert(params):
	if len(params) == 2:
		return splunk.disableAlert(params[0],params[1])
	else:
		return splunk.disableAlert(params[0])
コード例 #20
0
ファイル: wrapper.py プロジェクト: brogerm/outlook-splunk-bot
def getSearchPdf(params):
	return splunk.getSearchPdf(params[0])
コード例 #21
0
def enable_alert(commandParameters, channel):
	Splunk.enableAlert(commandParameters[0])
	HipChat.postNotification("{} enabled".format(commandParameters[0]), channel)
コード例 #22
0
ファイル: wrapper.py プロジェクト: brogerm/outlook-splunk-bot
def rescheduleAlert(params):
	return splunk.rescheduleAlert(params[0],params[1])
コード例 #23
0
ファイル: wrapper.py プロジェクト: brogerm/outlook-splunk-bot
def listAppNames(params):
	if len(params) > 0:
		return splunk.listAppNames(params[0])
	else:
		return splunk.listAppNames()
コード例 #24
0
SPLUNK_BASE_URL = "https://splunk-itest.ercot.com:8089"
USERNAME = os.environ.get('SPLUNK_USERNAME')
PASSWORD = os.environ.get('SPLUNK_PASSWORD')

#the room of hipchat that is watched is a variable set in SimpleHipChat

#constants
RTM_READ_DELAY = 5 #second delay between reading from RTM

if __name__ == "__main__":
	HipChat.connect(HIPCHAT_BOT_TOKEN, HIPCHAT_HOST)
	#Trigger is the character that triggers command parsing
	trigger = '!'
	print("\nSplunkBot connected to HipChat")
	
	Splunk.connect(SPLUNK_BASE_URL, USERNAME, PASSWORD)
	
	while True:
		try:
			#return messages from chat that start with the trigger
			command, channel = Command.parseBotCommands(HipChat.getEvents(), trigger)
			
			if command:
				try:
					Splunk.checkConnection()
					print(command)
					Command.handleCommand(command, channel)
				except Exception:
					HipChat.postNotification("Error Running Command: {}".format(command), channel)
					print("\nError Running Command: {}\n".format(command))
					traceback.print_exc()