Ejemplo n.º 1
0
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
    )
Ejemplo n.º 2
0
    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()

Ejemplo n.º 3
0
                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()