-
Notifications
You must be signed in to change notification settings - Fork 8.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Fleet] RBAC - Add API integration tests for bulk endpoints proceed in batches #191643
Labels
Team:Fleet
Team label for Observability Data Collection Fleet team
Comments
jillguyonnet
added
the
Team:Fleet
Team label for Observability Data Collection Fleet team
label
Aug 28, 2024
Pinging @elastic/fleet (Team:Fleet) |
2 tasks
jillguyonnet
added a commit
that referenced
this issue
Aug 30, 2024
## Summary Closes #185040 Followup to: #188507 #189519 #190069 This PR contains the last required changed for making Fleet agents write APIs space aware: * Implement space awareness in the following endpoints: * `POST /agents/{agentId}/unenroll` * `POST /agents/{agentId}/request_diagnostics` * `POST /agents/bulk_unenroll` * `POST /agents/bulk_request_diagnostics` * Fix a bug in `POST /agents/bulk_update_agent_tags` where the space id was not passed. * Simply the setting of the `namespaces` property when creating agent actions when the space id is known. * Rename `currentNamespace` to `currentSpaceId` where appropriate (see comment below). * Add API integration tests and consolidate existing ones. ~⚠️ At the time of writing, I would like there to be more tests covering bulk query processing in batches, which are currently lacking. I have experienced difficulties getting those tests to pass consistently.~ Filed [followup issue](#191643) for those. ### A note on terminology As pointed out in #191083 (comment), it seems that the terms "namespace" and "space id" are occasionally used interchangeably in some parts of the codebase to refer to a Kibana space. For instance, documents in Fleet indices (agents, agent policies, agent actions...) [possess a `namespaces` property](elastic/elasticsearch#108363) to track the spaces they belong to. The current space id is also returned using the Saved Object client's `getCurrentNamespace` function. However, "namespace" is also a datastream property. In the Agent policy settings UI, the "Spaces" property (which will be linked to the saved object's `namespaces` property) is above the "Default namespace" property, which relates to the integration's data streams: <img width="1916" alt="Screenshot 2024-08-26 at 14 51 10" src="https://github.com/user-attachments/assets/fe2a0948-3387-4a93-96dc-90fc5cf1a683"> This should not be a source of major issues, but is best clarified for future reference. In this PR, I've replaced some occurrences of `namespace` with `spaceId` where appropriate to try to maximise the use of the latter. ### Testing * This PR should be put through the Flaky Test Runner prior to merging (I will kick the job). * Manual testing should also be performed for the new endpoints mentioned above. ### Checklist - [x] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios - [x] [Flaky Test Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was used on any tests changed --------- Co-authored-by: Elastic Machine <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
With #185040 the agents write APIs were made space-aware. As part of this change, a number of API integration tests were added, mostly in https://github.com/elastic/kibana/blob/main/x-pack/test/fleet_api_integration/apis/space_awareness/agents.ts.
However, these tests don't adequately cover the case of certain bulk queries when these are processed in batches. These test cases should be added for bulk endpoints that can result in batch processing.
Example
When a kuery is passed to
POST /agents/bulk_reassign
and the number of agents to be processed is higher than the batch size, a task is kicked off:kibana/x-pack/plugins/fleet/server/services/agents/reassign.ts
Lines 133 to 148 in 97b5479
The snippet below is a WIP test case that aims to cover this scenario. Note that it only worked intermittently (usually the first run on a fresh setup passed and the following ones timed out).
Note: looking at the ES logs, it seems that the tasks are retried forever after a test fails.
The text was updated successfully, but these errors were encountered: