def test_bulk_account_delete_does_not_generate_secret_when_told_not_to( clean_bulk_delete_systems_and_accounts, core_session, list_of_created_systems): batch1 = ResourceManager.add_multiple_systems_with_accounts( core_session, 1, 4, list_of_created_systems) batch2 = ResourceManager.add_multiple_systems_with_accounts( core_session, 2, 3, list_of_created_systems) all_systems, all_accounts = DataManipulation.aggregate_lists_in_dict_values( [batch1, batch2]) secret_name = "TestSecret-" + str( ResourceManager.time_mark_in_hours()) + "-" + guid() sql_query = 'SELECT * FROM VaultAccount WHERE ' + ' OR '.join( ('VaultAccount.ID = "' + str(n) + '"' for n in list(all_accounts))) ResourceManager.del_multiple_accounts_by_query(core_session, sql_query, False, secret_name) ResourceManager.wait_for_secret_to_exist_or_timeout(core_session, secret_name, intervals_to_wait=60) # set low intervals to wait, since secret should not be generated secret_id = RedrockController.get_secret_id_by_name( core_session, secret_name) assert secret_id is None, "Secret not found!" assert len(ResourceManager.get_multi_added_account_ids(core_session, all_systems)) == 0, \ "Expected zero remaining added accounts remain"
def test_bulk_account_delete_generates_secret( clean_bulk_delete_systems_and_accounts, core_session, list_of_created_systems, secret_cleaner): batch1 = ResourceManager.add_multiple_systems_with_accounts( core_session, 1, 4, list_of_created_systems) batch2 = ResourceManager.add_multiple_systems_with_accounts( core_session, 2, 3, list_of_created_systems) all_systems, all_accounts = DataManipulation.aggregate_lists_in_dict_values( [batch1, batch2]) secret_name = "TestSecret-" + str( ResourceManager.time_mark_in_hours()) + "-" + guid() sql_query = 'SELECT * FROM VaultAccount WHERE ' + ' OR '.join( ('VaultAccount.ID = "' + str(n) + '"' for n in list(all_accounts))) ResourceManager.del_multiple_accounts_by_query(core_session, sql_query, True, secret_name) ResourceManager.wait_for_secret_to_exist_or_timeout( core_session, secret_name) secret_id = RedrockController.get_secret_id_by_name( core_session, secret_name) assert secret_id is not None, "Secret not found" secret_cleaner.append(secret_id) assert len( ResourceManager.get_multi_added_account_ids( core_session, all_systems)) == 0, "Expected zero added accounts remain"
def test_bulk_account_delete_by_sql_query_only_deletes_correct_accounts_fast_track( clean_bulk_delete_systems_and_accounts, core_session, list_of_created_systems): batch = ResourceManager.add_multiple_systems_with_accounts( core_session, 2, 12, list_of_created_systems) all_systems, all_accounts = DataManipulation.aggregate_lists_in_dict_values( [batch]) delete_ids, keep_ids = DataManipulation.shuffle_and_split_into_two_lists( all_accounts) sql_query = 'SELECT * FROM VaultAccount WHERE ' + ' OR '.join( ('VaultAccount.ID = "' + str(n) + '"' for n in list(delete_ids))) result, success = ResourceManager.del_multiple_accounts_by_query( core_session, sql_query, run_sync=True) assert success, "del_multiple_accounts_by_query failed " + result assert set(ResourceManager.get_multi_added_system_ids(core_session, all_systems).values()) == set(all_systems), \ "Wrong set of added systems found" assert set(ResourceManager.get_multi_added_account_ids(core_session, all_systems)) == set(keep_ids), \ "Wrong set of added accounts found" user_info = core_session.get_current_session_user_info().json()['Result'] username = user_info['Name'] start_type = 'Cloud.Core.AsyncOperation.BulkAccountDelete.StartQuery.Multi' end_type = 'Cloud.Core.AsyncOperation.BulkAccountDelete.Success.Multi' start_message = f'{username} initiated delete of multiple accounts' end_message = f'{username} successfully deleted {len(delete_ids)} accounts' RedrockController.expect_event_message_by_type(core_session, start_type, start_message) RedrockController.expect_event_message_by_type(core_session, end_type, end_message)
def test_bulk_account_by_api_set_correct_accounts( clean_bulk_delete_systems_and_accounts, core_session, list_of_created_systems, core_admin_ui): batch = ResourceManager.add_multiple_systems_with_accounts( core_session, 2, 2, list_of_created_systems) all_systems, all_accounts = DataManipulation.aggregate_lists_in_dict_values( [batch]) delete_ids, keep_ids = DataManipulation.shuffle_and_split_into_two_lists( all_accounts) some_set_name = "ApiSet" + guid() success, set_id = SetsManager.create_manual_collection( core_session, some_set_name, "VaultAccount", None) assert success, "Did not create collection" SetsManager.update_members_collection(core_session, 'add', list(delete_ids), 'VaultAccount', set_id) filters = SetsManager.get_object_collection_and_filter_by_name( core_session, some_set_name, "VaultAccount")['Filters'] result, success = ResourceManager.del_multiple_accounts_by_query( core_session, filters) assert success, "del_multiple_accounts_by_query failed " + result SetsManager.delete_collection(core_session, set_id) assert set( ResourceManager.get_multi_added_system_ids( core_session, all_systems).values()) == set( all_systems), "Wrong set of added systems found" assert set( ResourceManager.get_multi_added_account_ids( core_session, all_systems)) == set(keep_ids), "Wrong set of added accounts found"