Ejemplo n.º 1
0
def test_load_config():
    args = {'config_file': 'efsync/test/efsync.yaml'}
    res = load_config(args)
    assert isinstance(res, dict)

    args = 'efsync/test/efsync.yaml'
    res = load_config(args)
    assert isinstance(res, dict)

    args = {'aws_profile': profile, 'aws_region': region}
    res = load_config(args)
    assert isinstance(res, dict)
Ejemplo n.º 2
0
def test_ec2_instance():
    args = 'efsync/test/efsync.yaml'
    config = load_config(args)
    security_id = create_secruity_group(config['bt3'])
    config['security_group'] = security_id
    assert len(security_id) > 0
    config['default_sec_id'] = get_security_group_id(config['bt3'], 'default')
    config['key'] = create_ssh_key(config['bt3'], key_name)
    # start ec2
    ins_id = create_ec2_instance(config)
    config['instance_id'] = ins_id
    assert len(ins_id) > 0
    res = terminate_ec2_instance(bt3=config['bt3'],
                                 instance_id=config['instance_id'])
    assert res == True
    res = delete_iam_profile(config)
    assert res == True
    res = delete_ssh_key(config['bt3'], config['key']['name'])
    assert res == True
    res = delete_secruity_group(config['bt3'], config['security_group'])
    assert res == True
Ejemplo n.º 3
0
def test_custom_waiter():
    args = 'efsync/test/efsync.yaml'
    config = load_config(args)
    res = custom_waiter(config, 'i-0924fcb5b23576a9f')
Ejemplo n.º 4
0
def test_delete_iam_profile():
    args = 'efsync/test/efsync.yaml'
    config = load_config(args)

    res = delete_iam_profile(config)
    assert res == True
Ejemplo n.º 5
0
def test_create_iam_profile():
    args = 'efsync/test/efsync.yaml'
    config = load_config(args)
    res = create_iam_profile(config)
    assert isinstance(res, dict)
Ejemplo n.º 6
0
def efsync(input_args):
    try:
        start = time.time()
        logger.info('starting....')
        #
        # load config
        #
        logger.info('loading config')
        config = load_config(input_args)
        #
        # creates security_group
        #
        logger.info(f"creating security group")
        try:
            config['security_group'] = create_secruity_group(config['bt3'])
        except Exception as e:
            raise (e)
        #
        # get default security group
        #
        logger.info(f"loading default security group")
        try:
            config['default_sec_id'] = get_security_group_id(
                config['bt3'], 'default')
        except Exception as e:
            raise (e)

        #
        # creating ssh key for scp in memory
        #
        logger.info('creating ssh key for scp in memory')
        try:
            config['key'] = create_ssh_key(config['bt3'],
                                           config['ec2_key_name'])
        except Exception as e:
            raise (e)

        #
        # starts ec2 instance in vpc with security group and ssh key
        #
        logger.info(
            f"starting ec2 instance with security group {config['security_group']} and subnet_Id {config['subnet_Id']}"
        )
        config['instance_id'] = create_ec2_instance(config)

        #
        # copy all files with scp from local directory to ec2 mounted efs
        #
        #
        if 'file_dir' in config and 'file_dir_on_ec2' in config:
            logger.info(
                f"coping files from {config['file_dir']} to /home/ec2-user/efs/{config['file_dir_on_ec2']} "
            )
            copy_files_to_ec2(config)
        #
        # stopping and deleting every ressource
        #
        # ec2
        logger.info(
            f"stopping ec2 instance with instance id {config['instance_id']}")
        terminate_ec2_instance(bt3=config['bt3'],
                               instance_id=config['instance_id'])
        # iam profile
        logger.info(f"deleting iam profile")
        delete_iam_profile(config)
        # ssh key
        logger.info(f"deleting ssh key")
        delete_ssh_key(config['bt3'], config['key']['name'])
        # security group
        logger.info(f"deleting security group")
        delete_secruity_group(config['bt3'], config['security_group'])

        logger.info(
            f'#################### finished after {round(time.time()-start,2)/60} minutes ####################'
        )
        return True
    except Exception as e:
        err = repr(e)
        logger.error(err)
        try:
            if 'instance_id' in config:
                terminate_ec2_instance(bt3=config['bt3'],
                                       instance_id=config['instance_id'])
            delete_iam_profile(config)
            delete_ssh_key(config['bt3'], config['key']['name'])
            delete_secruity_group(config['bt3'], config['security_group'])
        except Exception as e:
            raise (e)
        raise (err)