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.

51 lines
1.5 KiB

import reserved_instance.reserved_instance_const as const
from reserved_instance.reserved_instance_utilization_calculator import RIUtilizationCalculator
import splunk.Intersplunk as intersplunk
import traceback
import cp_aws_bin.utils.app_util as util
TENANCY = 'tenancy'
PLATFORM = 'platform'
RI_INFO = 'RI_info'
INSTANCE_INFO = 'run_instance_info'
TOTAL_HOURS = 'total_hours'
DELETE_KEYS = [INSTANCE_INFO, RI_INFO, TOTAL_HOURS]
logger = util.get_logger()
def cal_utilization(search_results):
output_results = []
for line in search_results:
total_hours = float(line[TOTAL_HOURS])
tenancy = line[TENANCY]
platform = line[PLATFORM]
calculator = RIUtilizationCalculator(total_hours, line[RI_INFO], line[INSTANCE_INFO], platform, tenancy)
calculator.cal_utilization()
results = calculator.get_results()
line.update(results)
for key in DELETE_KEYS:
if key in line:
del line[key]
output_results.append(line)
return output_results
def main():
try:
search_results, dummy_results, settings = intersplunk.getOrganizedResults()
if len(search_results) > 0:
output_results = cal_utilization(search_results)
intersplunk.outputResults(output_results, fields=list(output_results[0].keys()))
except:
stack = traceback.format_exc()
results = intersplunk.generateErrorResults("Error : Traceback: " + str(stack))
intersplunk.outputResults(results)
if __name__ == "__main__":
main()