def test_delete_live_aws_access_keys_stores_secret_when_deleting_account(core_session, cloud_provider_ec2_account_config, live_aws_cloud_provider, secret_cleaner, user):
    cloud_provider_id, test_deleted_provider, _populate_iam_user_with_access_keys = live_aws_cloud_provider

    account_id = _populate_iam_user_with_access_keys(user)

    secret_name = f"aws_cloud_provider_api_{guid()}"

    result, success = ResourceManager.del_multiple_accounts(core_session, [account_id], save_passwords=True, secret_name=secret_name, run_sync=True)
    assert success, "Api did not complete successfully for bulk account delete MSG: " + result

    secret_file_contents = ResourceManager.fetch_and_delete_secret(core_session, secret_name, secret_cleaner)

    iam_user = cloud_provider_ec2_account_config[user]
    access_key_1 = iam_user['access_key_1']
    access_key_2 = iam_user['access_key_2']

    cloud_account_id = cloud_provider_ec2_account_config['id']

    assert cloud_account_id in secret_file_contents, f"Cloud Account ID absent from secret file {secret_file_contents}"

    assert account_id in secret_file_contents, f"Account ID absent from secret file {secret_file_contents}"
    assert access_key_1['id'] in secret_file_contents, f"Access key absent from secret file {secret_file_contents}"
    assert access_key_1['secret'] in secret_file_contents, f"Access key secret absent from secret file {secret_file_contents}"
    assert access_key_2['id'] in secret_file_contents, f"Access key 2 absent from secret file {secret_file_contents}"
    assert access_key_1['secret'] in secret_file_contents, f"Access key 2 secret absent from secret file {secret_file_contents}"
    def delete_cloud_provider_return_secret(self, secret_cleaner):
        cloud_id = CloudProviderManager.get_cloud_provider_id_by_cloud_account_id(self.session, self.account_id, retries=1)
        secret_name = f"apisecret{guid()}"
        result, success = CloudProviderManager.delete_cloud_providers(self.session, [cloud_id], run_sync=True,
                                                                      save_passwords=True, secret_name=secret_name)
        assert success, f"Failed to delete cloud providers {cloud_id}"

        secret_file_contents = ResourceManager.fetch_and_delete_secret(self.session, secret_name, secret_cleaner)

        if cloud_id in self.cleaner:
            self.cleaner.remove(cloud_id)
        self.already_cleaned = True

        return secret_file_contents
def test_delete_live_aws_access_keys_stores_secret_when_deleting_provider(core_session, cloud_provider_ec2_account_config, live_aws_cloud_provider, secret_cleaner, user):
    cloud_provider_id, test_deleted_provider, _populate_iam_user_with_access_keys = live_aws_cloud_provider

    account_id = _populate_iam_user_with_access_keys(user)

    secret_name = f"aws_cloud_provider_api_{guid()}"

    result, success = CloudProviderManager.delete_cloud_providers(core_session, [cloud_provider_id], run_sync=True, save_passwords=True, secret_name=secret_name)
    assert success, f"Failed to delete cloud providers {cloud_provider_id}"
    test_deleted_provider()

    secret_file_contents = ResourceManager.fetch_and_delete_secret(core_session, secret_name, secret_cleaner)

    iam_user = cloud_provider_ec2_account_config[user]
    access_key_1 = iam_user['access_key_1']
    access_key_2 = iam_user['access_key_2']

    assert account_id in secret_file_contents, f"Account ID absent from secret file {secret_file_contents}"
    assert access_key_1['id'] in secret_file_contents, f"Access key absent from secret file {secret_file_contents}"
    assert access_key_1['secret'] in secret_file_contents, f"Access key secret absent from secret file {secret_file_contents}"
    assert access_key_2['id'] in secret_file_contents, f"Access key 2 absent from secret file {secret_file_contents}"
    assert access_key_1['secret'] in secret_file_contents, f"Access key 2 secret absent from secret file {secret_file_contents}"