Skip to content
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

[Index details page] Implement index actions #164741

Merged
merged 10 commits into from
Aug 28, 2023

Conversation

yuliacech
Copy link
Contributor

@yuliacech yuliacech commented Aug 24, 2023

Summary

Addresses #164546

Follow up to #163521 and #163955

This PR re-implements index actions in the context menu on the index details page. The actions are implemented without redux which is used in the old index details flyout (to be removed when this work is complete) and in the indices list. The PR introduces a declaration file to list all props of the component IndexActionsContextMenu written in JS. There is also a new component ManageIndexButton that implements index actions specifically to be executed on the new index details page. In the future most of the code in the component ManageIndexButton can be re-used when more refactorings will be made (switching to TS and not using redux in the indices list).

All index actions are async and I added a loading indicator to the context menu button to indicate that requests are in flight updating the index.

Screen recordings

Screen.Recording.2023-08-25.at.21.10.02.mov

Add/remove ILM policy actions with a confirmation modal

Screen.Recording.2023-08-25.at.21.10.27.mov

How to test

  1. Add xpack.index_management.dev.enableIndexDetailsPage: true to your /config/kibana.dev.yml file
  2. Start ES and Kibana with yarn es snapshot and yarn start
  3. Add several indices to test with the command PUT /test_index in Dev Tools Console
  4. Navigate to Index Management and click the name of any index
  5. Check index actions:
  • Close index
  • Open index
  • Force merge index
  • Refresh index
  • Clear index cache
  • Flush index
  • Unfreeze index (not sure how to add a frozen index)
  • Delete index
  • ILM: add lifecycle policy
  • ILM: remove lifecycle policy
  • ILM: retry lifecycle policy (add any built-in policy and wait a couple of minutes until the rollover fails)

Checklist

<EuiSpacer size="l" />
<div>
<pre>{JSON.stringify(index, null, 2)}</pre>
</div>
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

dev display: to be deleted when tabs contents are implemented

@yuliacech yuliacech marked this pull request as ready for review August 25, 2023 18:44
@yuliacech yuliacech requested a review from a team as a code owner August 25, 2023 18:44
@yuliacech yuliacech added Feature:Index Management Index and index templates UI Team:Kibana Management Dev Tools, Index Management, Upgrade Assistant, ILM, Ingest Node Pipelines, and more release_note:skip Skip the PR/issue when compiling release notes v8.11.0 labels Aug 25, 2023
@elasticmachine
Copy link
Contributor

Pinging @elastic/platform-deployment-management (Team:Deployment Management)

@kibana-ci
Copy link
Collaborator

💚 Build Succeeded

Metrics [docs]

Module Count

Fewer modules leads to a faster build time

id before after diff
indexManagement 498 497 -1

Public APIs missing comments

Total count of every public API that lacks a comment. Target amount is 0. Run node scripts/build_api_docs --plugin [yourplugin] --stats comments for more detailed information.

id before after diff
indexManagement 177 186 +9

Async chunks

Total size of all lazy-loaded chunks that will be downloaded as the user navigates the app

id before after diff
indexManagement 523.6KB 526.9KB +3.3KB
Unknown metric groups

API count

id before after diff
indexManagement 182 191 +9

History

To update your PR or re-run it, just comment with:
@elasticmachine merge upstream

Copy link
Contributor

@alisonelizabeth alisonelizabeth left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome work! Code LGTM. Verified all of the actions, with the exception of unfreeze. It looks like frozen indices were deprecated in 7.14, so we should probably open up a follow-up issue to remove this functionality from the UI.

expect(testBed.routerMock.history.push).toHaveBeenCalledWith('/indices');
});

it(`unfreezes a frozen index`, async () => {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we can remove this functionality (separate PR is OK). AFAICT frozen indices and the unfreeze/freeze APIs were deprecated in 7.14 (docs).

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agree, I created an issue to track this work.

@yuliacech
Copy link
Contributor Author

Thanks a lot for the review, @alisonelizabeth!

@yuliacech yuliacech merged commit 84b683b into elastic:main Aug 28, 2023
22 of 23 checks passed
@kibanamachine kibanamachine added the backport:skip This commit does not require backporting label Aug 28, 2023
Ikuni17 pushed a commit that referenced this pull request Sep 27, 2023
## Summary
This PR removes the feature flag and enables the new index details page
by default. The index details page was implemented in following PRs:
- #163521
- #163955
- #164741
- #165027
- #165038
- #165456

In this PR we completely remove now obsolete code for the old index
details flyout: react components and corresponding redux code. All
related tests are updated and cleaned up. The config value for Index
Management plugin `xpack.index_management.dev.enableIndexDetailsPage` is
deprecated as unused and can be removed in v9.0.


### How to test
1. Start ES and Kibana with `yarn es snapshot` and `yarn start`
3. Navigate to Index Management and create an index
4. Click the index name in the table and check the tabs of the details
page
### Screenshots
#### Stateful
Overview 
<img width="1387" alt="Screenshot 2023-09-27 at 14 41 57"
src="https://github.com/elastic/kibana/assets/6585477/e58b15e7-d10c-4473-873c-d0f128392404">


Mappings
<img width="1392" alt="Screenshot 2023-09-27 at 14 42 05"
src="https://github.com/elastic/kibana/assets/6585477/441157cb-5a26-47c3-8da0-b4df51ebec5d">


Settings 
<img width="1385" alt="Screenshot 2023-09-27 at 14 42 13"
src="https://github.com/elastic/kibana/assets/6585477/da66a2eb-1f21-44c1-9356-484c66caab88">


Statistics
<img width="1380" alt="Screenshot 2023-09-27 at 14 42 22"
src="https://github.com/elastic/kibana/assets/6585477/ec93d85c-e754-4c21-88ab-0124dc114fc9">


Error loading data
<img width="1333" alt="Screenshot 2023-09-26 at 19 05 37"
src="https://github.com/elastic/kibana/assets/6585477/fc1804b3-6aa0-4019-bae6-e7bb40113b28">
<img width="1327" alt="Screenshot 2023-09-26 at 19 06 07"
src="https://github.com/elastic/kibana/assets/6585477/ca711697-cc74-4ba8-b17c-ec9b01f3026e">
<img width="1329" alt="Screenshot 2023-09-26 at 19 06 28"
src="https://github.com/elastic/kibana/assets/6585477/0cb46b09-8542-452a-8845-40d060057e95">
<img width="1331" alt="Screenshot 2023-09-26 at 19 06 48"
src="https://github.com/elastic/kibana/assets/6585477/87de8d3d-b6e5-4e8f-b27c-18a1c6e950d8">


Error saving index settings
<img width="1332" alt="Screenshot 2023-09-26 at 19 07 31"
src="https://github.com/elastic/kibana/assets/6585477/e6e4b3d0-c237-4d0a-995a-4562bc78f88e">


### Serverless
Overview 
<img width="1336" alt="Screenshot 2023-09-26 at 19 51 47"
src="https://github.com/elastic/kibana/assets/6585477/6c76c23b-4be6-4ab3-ae1d-c7ae751e100d">


Mappings
<img width="1336" alt="Screenshot 2023-09-26 at 19 23 51"
src="https://github.com/elastic/kibana/assets/6585477/625fa703-506f-4389-9df0-86441a655074">


Settings
<img width="1332" alt="Screenshot 2023-09-26 at 19 24 02"
src="https://github.com/elastic/kibana/assets/6585477/c496ab09-f2db-4c1b-9fb6-1e9b64b1c142">


# Release note
Index details can now be viewed on a new index details page in Index
Management.
<img width="1387" alt="Screenshot 2023-09-27 at 14 41 57"
src="https://github.com/elastic/kibana/assets/6585477/b90c706d-8b15-49e4-8f6a-cb66f3ed1822">

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
@yuliacech yuliacech deleted the im/details_page/index_actions branch February 15, 2024 12:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backport:skip This commit does not require backporting Feature:Index Management Index and index templates UI release_note:skip Skip the PR/issue when compiling release notes Team:Kibana Management Dev Tools, Index Management, Upgrade Assistant, ILM, Ingest Node Pipelines, and more v8.11.0
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants