def prepare_archives(): config = Config() dir_to_save = config.get_home_dir() + "aws/" dir_to_archive = config.get_home_dir() + static.JOB_ROOT_DIR distutils.archive_util.make_archive( dir_to_save + static.JOB_BASE_NAME, static.ARCHIVE_FORMAT, root_dir=dir_to_archive ) dir_to_archive = config.get_home_dir() + static.RC_ROOT_DIR distutils.archive_util.make_archive( dir_to_save + static.RC_BASE_NAME, static.ARCHIVE_FORMAT, root_dir=dir_to_archive )
parser.add_argument('-i', '--id', type=str, help='Instance ID') parser.add_argument('-e', '--eid', type=int, help='Environment ID') return parser.parse_args() def test(): config = Config('100') instance_id = 'i-3029b47b' instance = aws_ec2.get_instance(config,instance_id) pprint(vars(instance)) if __name__ == '__main__': args = parse_args() config = Config() logger = logging.getLogger(__name__) logger.setLevel(logging.DEBUG) formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s") handler = logging.FileHandler(config.get_home_dir() + "utils.log") handler.setFormatter(formatter) logger.addHandler(handler) if args.operation == 'get_log': if not args.id: print 'Need to specify instance ID to retrieve the log' else: print aws_utils.get_console_log(args.id) if args.operation == 'test': test()
return datetime.datetime.now() > next_scale_allowed return False def is_downscaling_allowed(): return datetime.datetime.now() > next_scale_allowed if __name__ == '__main__': config = Config() args = parse_args() validate_args(args,config) config.env_id = str(args.eid) logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', level=logging.INFO, filename=config.get_home_dir() + 'monitor.log') logger = logging.getLogger(__name__) while True: #Autoscaling avg_cpu = aws_cw.get_avg_cpu_utilization_percentage_for_environment(config) percentage, num = avg_cpu.get_average_percentage() logger.info('Current CPU utilization for the environment %s is %.2f percent (%d instances)' % (config.env_id, percentage, num)) if percentage > static.AUTOSCALE_CPU_PERCENTAGE_UP: if not args.noscale: if scale.scaling_up_possible(config): if is_upscaling_allowed(config, avg_cpu): threading.Thread(target=scale.scale_up, args=(config,)).start()