示例#1
0

# Run before all to setup the test environment.
def before_all():
    print("Configuring LDAP")
    S3PyCliTest('Before_all').before_all()


# Run before all to setup the test environment.
before_all()

# Set basic properties
Config.config_file = "pathstyle.s3cfg"
S3ClientConfig.pathstyle = False
S3ClientConfig.ldapuser = '******'
S3ClientConfig.ldappasswd = LdapInfo.get_ldap_admin_pwd()

# Config files used by scheduler and processor
origional_bgdelete_config_file = os.path.join(
    os.path.dirname(__file__), 's3_background_delete_config_test.yaml')
bgdelete_config_dir = os.path.join('/', 'opt', 'seagate', 'cortx', 's3',
                                   's3backgrounddelete')
bgdelete_config_file = os.path.join(bgdelete_config_dir, 'config.yaml')
backup_bgdelete_config_file = os.path.join(bgdelete_config_dir,
                                           'backup_config.yaml')


# Update S3 Background delete config file with account access key and secretKey.
def load_and_update_config(access_key_value, secret_key_value):
    # Update config file
    if os.path.isfile(bgdelete_config_file):
def account_tests():
    account_args = {}
    account_args['AccountName'] = 's3test'
    account_args['Email'] = '*****@*****.**'
    account_args['ldapuser'] = '******'
    account_args['ldappasswd'] = LdapInfo.get_ldap_admin_pwd()

    # CREATE

    AuthTest("Set LDAP_ADD_ENTRY_FAIL fault point").inject_fault(
        "LDAP_ADD_ENTRY_FAIL", "FAIL_ONCE", 0).execute_test()
    test_msg = "Create account s3test should fail if save account details fails"
    auth_test = AuthTest(test_msg)
    auth_test.create_account(**account_args).execute_test(negative_case=True)
    AuthTest("Reset LDAP_ADD_ENTRY_FAIL fault point").reset_fault(
        "LDAP_ADD_ENTRY_FAIL").execute_test()
    auth_test.command_response_should_have("Account wasn't created.")
    LdapOps().delete_account("s3test")

    AuthTest("Set LDAP_ADD_ENTRY_FAIL fault point").inject_fault(
        "LDAP_ADD_ENTRY_FAIL", "SKIP_FIRST_N_TIMES", 1).execute_test()
    test_msg = "Create account s3test should fail when create user ou fails"
    auth_test = AuthTest(test_msg)
    auth_test.create_account(**account_args).execute_test(negative_case=True)
    AuthTest("Reset LDAP_ADD_ENTRY_FAIL fault point").reset_fault(
        "LDAP_ADD_ENTRY_FAIL").execute_test()
    auth_test.command_response_should_have("Account wasn't created.")
    LdapOps().delete_account("s3test")

    AuthTest("Set LDAP_ADD_ENTRY_FAIL fault point").inject_fault(
        "LDAP_ADD_ENTRY_FAIL", "SKIP_FIRST_N_TIMES", 2).execute_test()
    test_msg = "Create account s3test should fail when create role ou fails"
    auth_test = AuthTest(test_msg)
    auth_test.create_account(**account_args).execute_test(negative_case=True)
    AuthTest("Reset LDAP_ADD_ENTRY_FAIL fault point").reset_fault(
        "LDAP_ADD_ENTRY_FAIL").execute_test()
    auth_test.command_response_should_have("Account wasn't created.")
    LdapOps().delete_account("s3test")

    AuthTest("Set LDAP_ADD_ENTRY_FAIL fault point").inject_fault(
        "LDAP_ADD_ENTRY_FAIL", "SKIP_FIRST_N_TIMES", 3).execute_test()
    test_msg = "Create account s3test should fail when create groups ou fails"
    auth_test = AuthTest(test_msg)
    auth_test.create_account(**account_args).execute_test(negative_case=True)
    AuthTest("Reset LDAP_ADD_ENTRY_FAIL fault point").reset_fault(
        "LDAP_ADD_ENTRY_FAIL").execute_test()
    auth_test.command_response_should_have("Account wasn't created.")
    LdapOps().delete_account("s3test")

    AuthTest("Set LDAP_ADD_ENTRY_FAIL fault point").inject_fault(
        "LDAP_ADD_ENTRY_FAIL", "SKIP_FIRST_N_TIMES", 4).execute_test()
    test_msg = "Create account s3test should fail when create policy ou fails"

    auth_test = AuthTest(test_msg)
    auth_test.create_account(**account_args).execute_test(negative_case=True)
    AuthTest("Reset LDAP_ADD_ENTRY_FAIL fault point").reset_fault(
        "LDAP_ADD_ENTRY_FAIL").execute_test()
    auth_test.command_response_should_have("Account wasn't created.")
    LdapOps().delete_account("s3test")

    AuthTest("Set LDAP_ADD_ENTRY_FAIL fault point").inject_fault(
        "LDAP_ADD_ENTRY_FAIL", "SKIP_FIRST_N_TIMES", 5).execute_test()
    test_msg = "Create account s3test should fail when create root user account fails"
    auth_test = AuthTest(test_msg)
    auth_test.create_account(**account_args).execute_test(negative_case=True)
    AuthTest("Reset LDAP_ADD_ENTRY_FAIL fault point").reset_fault(
        "LDAP_ADD_ENTRY_FAIL").execute_test()
    auth_test.command_response_should_have("Account wasn't created.")
    LdapOps().delete_account("s3test")

    AuthTest("Set LDAP_ADD_ENTRY_FAIL fault point").inject_fault(
        "LDAP_ADD_ENTRY_FAIL", "SKIP_FIRST_N_TIMES", 6).execute_test()
    test_msg = "Create account s3test should fail when create access key for root user account fails"
    auth_test = AuthTest(test_msg)
    auth_test.create_account(**account_args).execute_test(negative_case=True)
    AuthTest("Reset LDAP_ADD_ENTRY_FAIL fault point").reset_fault(
        "LDAP_ADD_ENTRY_FAIL").execute_test()
    auth_test.command_response_should_have("Account wasn't created.")
    LdapOps().delete_account("s3test")

    # Create Account
    test_msg = "Create account s3test"
    account_response_pattern = "AccountId = [\w-]*, CanonicalId = [\w-]*, RootUserName = [\w+=,.@-]*, AccessKeyId = [\w-]*, SecretKey = [\w/+]*$"
    auth_test = AuthTest(test_msg)
    result = auth_test.create_account(**account_args).execute_test()
    result.command_should_match_pattern(account_response_pattern)
    account_response_elements = get_response_elements(result.status.stdout)
    # Set S3ClientConfig with root credentials
    S3ClientConfig.access_key_id = account_response_elements['AccessKeyId']
    S3ClientConfig.secret_key = account_response_elements['SecretKey']
    # Add the access key id for clean up
    access_key_id.append(account_response_elements['AccessKeyId'])

    test_msg = "Create account s3test should fail if the account already exist"
    auth_test = AuthTest(test_msg)
    auth_test.create_account(**account_args).execute_test(negative_case=True)\
            .command_response_should_have("The request was rejected because it attempted to create an account that already exists.")

    # LIST
    test_msg = "List accounts"
    accounts_response_pattern = "AccountName = [\w-]*, AccountId = [\w-]*, CanonicalId = [\w-]*, Email = [\w.@]*"
    auth_test = AuthTest(test_msg)
    auth_test.list_account(**account_args).execute_test()\
            .command_should_match_pattern(accounts_response_pattern)

    # Fail to search account while creating account
    AuthTest("Set LDAP_SEARCH_FAIL fault point").inject_fault(
        "LDAP_SEARCH_FAIL", "FAIL_ALWAYS", 0).execute_test()
    test_msg = "Create account s3test should fail if search account fails"
    auth_test = AuthTest(test_msg)
    auth_test.create_account(**account_args).execute_test(negative_case=True)\
            .command_response_should_have("Account wasn't created.")
    test_msg = "List accounts should fail if search accounts fails"
    auth_list_test = AuthTest(test_msg)
    auth_list_test.list_account(**account_args).execute_test(
        negative_case=True)
    AuthTest("Reset LDAP_SEARCH_FAIL fault point").reset_fault(
        "LDAP_SEARCH_FAIL").execute_test()
    auth_list_test.command_response_should_have("Failed to list accounts!")

    # Fail to get attrubutes of searched account while creating account
    AuthTest("Set LDAP_GET_ATTR_FAIL fault point").inject_fault(
        "LDAP_GET_ATTR_FAIL", "FAIL_ALWAYS", 0).execute_test()
    test_msg = "Create account s3test should fail if find attributes of searched account fails"
    auth_test = AuthTest(test_msg)
    auth_test.create_account(**account_args).execute_test(negative_case=True)\
            .command_response_should_have("Account wasn't created.")
    test_msg = "List accounts should fail if find attributes of searched account fails"
    auth_list_test = AuthTest(test_msg)
    auth_list_test.list_account(**account_args).execute_test(
        negative_case=True)
    AuthTest("Reset LDAP_GET_ATTR_FAIL fault point").reset_fault(
        "LDAP_GET_ATTR_FAIL").execute_test()
    auth_list_test.command_response_should_have("Failed to list accounts!")
示例#3
0
    JCloudTest('Jcloud cannot upload file to nonexistent bucket').put_object(
        "seagate-bucket/test/3kfile", "3kfile",
        3000).execute_test(negative_case=True).command_should_fail(
        ).command_error_should_have("The specified bucket does not exist")

    JCloudTest('Jcloud can verify object existence').head_object(
        "seagatebucket", "test/3kfile").execute_test().command_is_successful(
        ).command_response_should_have('test/3kfile')

    # ************ cross account tests ********
    account_args = {}
    account_args['AccountName'] = 's3secondaccount'
    account_args['Email'] = '*****@*****.**'
    account_args['ldapuser'] = '******'
    account_args['ldappasswd'] = LdapInfo.get_ldap_admin_pwd()
    test_msg = "Create account s3secondaccount"
    s3secondaccount_response_pattern = "AccountId = [\w-]*, CanonicalId = [\w-]*, RootUserName = [\w+=,.@-]*, AccessKeyId = [\w-]*, SecretKey = [\w/+]*$"
    auth_test = AuthTest(test_msg)
    result = auth_test.create_account(**account_args).execute_test()
    result.command_should_match_pattern(s3secondaccount_response_pattern)
    s3secondaccount_response_elements = get_response_elements(
        result.status.stdout)
    s3secondaccount_canonicalid = s3secondaccount_response_elements[
        'CanonicalId']
    s3secondaccount_displayname = 's3secondaccount'

    # ************ Create bucket in s3secondaccount account************
    S3ClientConfig.access_key_id = s3secondaccount_response_elements[
        'AccessKeyId']
    S3ClientConfig.secret_key = s3secondaccount_response_elements['SecretKey']