# 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!")
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']