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

[8.0] [8.0] [UA] - Add warning to accept for reindex (#122249) #122630

Closed
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 0 additions & 6 deletions x-pack/plugins/translations/translations/ja-JP.json
Original file line number Diff line number Diff line change
Expand Up @@ -26423,18 +26423,12 @@
"xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexButton.runReindexLabel": "再インデックスの開始",
"xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexButton.tryAgainLabel": "再試行",
"xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexDescription": "再インデックス中はインデックスが読み取り専用です。再インデックスが完了するまでは、ドキュメントの追加、更新、削除ができません。新しいクラスターを再インデックスする必要がある場合は、再インデックスAPIを使用します。{docsLink}",
"xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingChecklist.aliasSwapStepTitle": "元のインデックスをエイリアスと交換します。",
"xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingChecklist.cancelButton.cancelLabel": "キャンセル",
"xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingChecklist.cancelButton.cancelledLabel": "キャンセル済み",
"xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingChecklist.cancelButton.cancellingLabel": "キャンセル中…",
"xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingChecklist.cancelButton.errorLabel": "キャンセルできませんでした",
"xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingChecklist.cancelledTitle": "再インデックスはキャンセルされました。",
"xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingChecklist.createIndexStepTitle": "新しいインデックスを作成します。",
"xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingChecklist.inProgress.aliasSwapStepTitle": "元のインデックスをエイリアスと交換しています。",
"xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingChecklist.inProgress.createIndexStepTitle": "新しいインデックスを作成しています。",
"xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingChecklist.inProgress.readonlyStepTitle": "元のインデックスを読み取り専用に設定しています。",
"xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingChecklist.inProgress.reindexingDocumentsStepTitle": "ドキュメントを再インデックスしています。",
"xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingChecklist.readonlyStepTitle": "元のインデックスを読み取り専用に設定します。",
"xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingChecklist.reindexingDocumentsStepTitle": "ドキュメントのインデックスを作成します。",
"xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingChecklistTitle": "プロセスを再インデックス中",
"xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingFailedCalloutTitle": "再インデックスエラー",
Expand Down
6 changes: 0 additions & 6 deletions x-pack/plugins/translations/translations/zh-CN.json
Original file line number Diff line number Diff line change
Expand Up @@ -26878,18 +26878,12 @@
"xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexButton.runReindexLabel": "启动重新索引",
"xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexButton.tryAgainLabel": "重试",
"xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexDescription": "重新索引期间,索引将处于只读状态。在重新索引完成之前,您无法添加、更新或删除文档。如果需要重新索引到新集群,请使用重新索引 API。{docsLink}",
"xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingChecklist.aliasSwapStepTitle": "交换具有别名的原始索引。",
"xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingChecklist.cancelButton.cancelLabel": "取消",
"xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingChecklist.cancelButton.cancelledLabel": "已取消",
"xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingChecklist.cancelButton.cancellingLabel": "正在取消……",
"xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingChecklist.cancelButton.errorLabel": "无法取消",
"xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingChecklist.cancelledTitle": "重新索引已取消。",
"xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingChecklist.createIndexStepTitle": "创建新索引。",
"xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingChecklist.inProgress.aliasSwapStepTitle": "正在交换具有别名的原始索引。",
"xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingChecklist.inProgress.createIndexStepTitle": "正在创建新索引。",
"xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingChecklist.inProgress.readonlyStepTitle": "正在将原始索引设置为只读。",
"xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingChecklist.inProgress.reindexingDocumentsStepTitle": "正在重新索引文档。",
"xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingChecklist.readonlyStepTitle": "将原始索引设置为只读。",
"xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingChecklist.reindexingDocumentsStepTitle": "索引文档。",
"xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingChecklistTitle": "重新索引过程",
"xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingFailedCalloutTitle": "重新索引错误",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,16 @@ describe('Default deprecation flyout', () => {
jobId: MOCK_JOB_ID,
status: 'idle',
});
httpRequestsMockHelpers.setReindexStatusResponse({
reindexOp: null,
warnings: [],
hasRequiredPrivileges: true,
meta: {
indexName: 'foo',
reindexName: 'reindexed-foo',
aliases: [],
},
});

await act(async () => {
testBed = await setupElasticsearchPage({ isReadOnlyMode: false });
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,16 @@ describe('ES deprecations table', () => {
jobId: MOCK_JOB_ID,
status: 'idle',
});
httpRequestsMockHelpers.setReindexStatusResponse({
reindexOp: null,
warnings: [],
hasRequiredPrivileges: true,
meta: {
indexName: 'foo',
reindexName: 'reindexed-foo',
aliases: [],
},
});

await act(async () => {
testBed = await setupElasticsearchPage({ isReadOnlyMode: false });
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,16 @@ describe('Index settings deprecation flyout', () => {
jobId: MOCK_JOB_ID,
status: 'idle',
});
httpRequestsMockHelpers.setReindexStatusResponse({
reindexOp: null,
warnings: [],
hasRequiredPrivileges: true,
meta: {
indexName: 'foo',
reindexName: 'reindexed-foo',
aliases: [],
},
});

await act(async () => {
testBed = await setupElasticsearchPage({ isReadOnlyMode: false });
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,16 @@ describe('Machine learning deprecation flyout', () => {
jobId: MOCK_JOB_ID,
status: 'idle',
});
httpRequestsMockHelpers.setReindexStatusResponse({
reindexOp: null,
warnings: [],
hasRequiredPrivileges: true,
meta: {
indexName: 'foo',
reindexName: 'reindexed-foo',
aliases: [],
},
});

await act(async () => {
testBed = await setupElasticsearchPage({ isReadOnlyMode: false });
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,28 @@

import { act } from 'react-dom/test-utils';

import { ReindexStatus, ReindexStep, ReindexStatusResponse } from '../../../common/types';
import { setupEnvironment } from '../helpers';
import { ElasticsearchTestBed, setupElasticsearchPage } from './es_deprecations.helpers';
import { esDeprecationsMockResponse, MOCK_SNAPSHOT_ID, MOCK_JOB_ID } from './mocked_responses';
import { ReindexStatus, ReindexStep } from '../../../common/types';

const defaultReindexStatusMeta: ReindexStatusResponse['meta'] = {
indexName: 'foo',
reindexName: 'reindexed-foo',
aliases: [],
};

// Note: The reindexing flyout UX is subject to change; more tests should be added here once functionality is built out
describe('Reindex deprecation flyout', () => {
let testBed: ElasticsearchTestBed;
const { server, httpRequestsMockHelpers } = setupEnvironment();

beforeAll(() => {
jest.useFakeTimers();
});

afterAll(() => {
jest.useRealTimers();
server.restore();
});

Expand All @@ -29,6 +40,16 @@ describe('Reindex deprecation flyout', () => {
jobId: MOCK_JOB_ID,
status: 'idle',
});
httpRequestsMockHelpers.setReindexStatusResponse({
reindexOp: null,
warnings: [],
hasRequiredPrivileges: true,
meta: {
indexName: 'foo',
reindexName: 'reindexed-foo',
aliases: [],
},
});

await act(async () => {
testBed = await setupElasticsearchPage({ isReadOnlyMode: false });
Expand All @@ -54,6 +75,7 @@ describe('Reindex deprecation flyout', () => {
reindexOp: null,
warnings: [],
hasRequiredPrivileges: true,
meta: defaultReindexStatusMeta,
});

await act(async () => {
Expand Down Expand Up @@ -113,6 +135,7 @@ describe('Reindex deprecation flyout', () => {
},
warnings: [],
hasRequiredPrivileges: true,
meta: defaultReindexStatusMeta,
});

await act(async () => {
Expand All @@ -137,6 +160,7 @@ describe('Reindex deprecation flyout', () => {
},
warnings: [],
hasRequiredPrivileges: true,
meta: defaultReindexStatusMeta,
});

await act(async () => {
Expand All @@ -148,7 +172,7 @@ describe('Reindex deprecation flyout', () => {

await actions.table.clickDeprecationRowAt('reindex', 0);

expect(find('reindexChecklistTitle').text()).toEqual('Reindexing in progress… 31%');
expect(find('reindexChecklistTitle').text()).toEqual('Reindexing in progress… 30%');
expect(exists('cancelReindexingDocumentsButton')).toBe(true);
});

Expand All @@ -161,6 +185,7 @@ describe('Reindex deprecation flyout', () => {
},
warnings: [],
hasRequiredPrivileges: true,
meta: defaultReindexStatusMeta,
});

await act(async () => {
Expand All @@ -172,7 +197,7 @@ describe('Reindex deprecation flyout', () => {

await actions.table.clickDeprecationRowAt('reindex', 0);

expect(find('reindexChecklistTitle').text()).toEqual('Reindexing in progress… 95%');
expect(find('reindexChecklistTitle').text()).toEqual('Reindexing in progress… 90%');
expect(exists('cancelReindexingDocumentsButton')).toBe(false);
});

Expand All @@ -185,19 +210,30 @@ describe('Reindex deprecation flyout', () => {
},
warnings: [],
hasRequiredPrivileges: true,
meta: defaultReindexStatusMeta,
});

await act(async () => {
testBed = await setupElasticsearchPage({ isReadOnlyMode: false });
});

testBed.component.update();
const { actions, find, exists } = testBed;
const { actions, find, exists, component } = testBed;
component.update();

await actions.table.clickDeprecationRowAt('reindex', 0);

expect(find('reindexChecklistTitle').text()).toEqual('Reindexing process');
expect(find('reindexChecklistTitle').text()).toEqual('Reindexing in progress… 95%');
expect(exists('cancelReindexingDocumentsButton')).toBe(false);

// We have put in place a "fake" fifth step to delete the original index
// In reality that was done in the last step (when the alias was created),
// but for the user we will display it as a separate reindex step
await act(async () => {
jest.advanceTimersByTime(1000);
});
component.update();

expect(find('reindexChecklistTitle').text()).toEqual('Reindexing process');
});
});
});
18 changes: 17 additions & 1 deletion x-pack/plugins/upgrade_assistant/common/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ export enum ReindexStep {
reindexStarted = 40,
reindexCompleted = 50,
aliasCreated = 60,
originalIndexDeleted = 70,
existingAliasesUpdated = 80,
}

export enum ReindexStatus {
Expand All @@ -41,7 +43,20 @@ export enum ReindexStatus {
fetchFailed,
}

export interface ReindexStatusResponse {
meta: {
indexName: string;
reindexName: string;
// Array of aliases pointing to the index being reindexed
aliases: string[];
};
warnings?: ReindexWarning[];
reindexOp?: ReindexOperation;
hasRequiredPrivileges?: boolean;
}

export const REINDEX_OP_TYPE = 'upgrade-assistant-reindex-operation';

export interface QueueSettings extends SavedObjectAttributes {
/**
* A Unix timestamp of when the reindex operation was enqueued.
Expand Down Expand Up @@ -106,7 +121,8 @@ export interface ReindexOperation extends SavedObjectAttributes {
export type ReindexSavedObject = SavedObject<ReindexOperation>;

// 7.0 -> 8.0 warnings
export type ReindexWarningTypes = 'customTypeName' | 'indexSetting';
export type ReindexWarningTypes = 'customTypeName' | 'indexSetting' | 'replaceIndexWithAlias';

export interface ReindexWarning {
warningType: ReindexWarningTypes;
/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
* 2.0.
*/

import React, { useEffect, createContext, useContext } from 'react';
import React, { createContext, useContext } from 'react';

import { ApiService } from '../../../../lib/api';
import { useReindexStatus, ReindexState } from './use_reindex_state';
Expand Down Expand Up @@ -37,16 +37,11 @@ export const ReindexStatusProvider: React.FunctionComponent<Props> = ({
indexName,
children,
}) => {
const { reindexState, startReindex, cancelReindex, updateStatus } = useReindexStatus({
const { reindexState, startReindex, cancelReindex } = useReindexStatus({
indexName,
api,
});

useEffect(() => {
updateStatus();
// eslint-disable-next-line react-hooks/exhaustive-deps
}, []);

return (
<ReindexContext.Provider
value={{
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,11 @@ describe('ChecklistFlyout', () => {
errorMessage: null,
reindexWarnings: [],
hasRequiredPrivileges: true,
meta: {
indexName: 'myIndex',
reindexName: 'reindexed-myIndex',
aliases: [],
},
} as ReindexState,
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ export const ReindexFlyout: React.FunctionComponent<ReindexFlyoutProps> = ({
const flyoutContents = showWarningsStep ? (
<WarningsFlyoutStep
warnings={reindexState.reindexWarnings ?? []}
meta={reindexState.meta}
hideWarningsStep={() => setShowWarningsStep(false)}
continueReindex={() => {
setShowWarningsStep(false);
Expand Down
Loading