You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

63 lines
1.5 KiB

import sys
import splunk.Intersplunk as intersplunk
from recommendation_task.unused_sg_task import UnusedSecurityGroupTask
from recommendation_task.ec2_usage_task import EC2UsageTask
from recommendation_task.elb_usage_task import ElbUsageTask
results = []
# stores Task constructors
task_pool = {
'unused_sg': UnusedSecurityGroupTask,
'ec2_usage': EC2UsageTask,
'elb_usage': ElbUsageTask
}
# labels for tasks, shown in results
task_labels = {
'unused_sg': 'Unused Security Groups',
'ec2_usage': 'Upgrade/Downgrade EC2 Instances',
'elb_usage': 'Unused ELBs'
}
# results of spl
results = []
# execute task
def _execute_task(task_name, session_key):
Task = task_pool[task_name]
task = Task(session_key)
task.pre_execute()
output = task.execute()
task.post_execute()
results.append({
'Task Name': task_labels[task_name],
'Task Result': output
})
try:
# get session key
results,dummyresults,settings = intersplunk.getOrganizedResults()
session_key = settings['sessionKey']
# execute tasks
if len(sys.argv) == 1:
for name in task_pool:
_execute_task(name, session_key)
else:
for name in sys.argv:
name = name.lower()
if name in task_pool:
_execute_task(name, session_key)
except:
import traceback
stack = traceback.format_exc()
results = intersplunk.generateErrorResults("Error : Traceback: " + str(stack))
intersplunk.outputResults(results)