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

[7.x] [ILM] Fix replicas not showing (#92782) #92854

Merged
merged 1 commit into from
Feb 25, 2021
Merged
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
Original file line number Diff line number Diff line change
Expand Up @@ -222,12 +222,10 @@ export const setup = async (arg?: {
const createSearchableSnapshotActions = (phase: Phases) => {
const fieldSelector = `searchableSnapshotField-${phase}`;
const licenseCalloutSelector = `${fieldSelector}.searchableSnapshotDisabledDueToLicense`;
const rolloverCalloutSelector = `${fieldSelector}.searchableSnapshotFieldsNoRolloverCallout`;
const toggleSelector = `${fieldSelector}.searchableSnapshotToggle`;

const toggleSearchableSnapshot = createFormToggleAction(toggleSelector);
return {
searchableSnapshotDisabledDueToRollover: () => exists(rolloverCalloutSelector),
searchableSnapshotDisabled: () =>
exists(licenseCalloutSelector) && find(licenseCalloutSelector).props().disabled === true,
searchableSnapshotsExists: () => exists(fieldSelector),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -405,6 +405,7 @@ describe('<EditPolicy />', () => {
await actions.cold.setMinAgeUnits('s');
await actions.cold.setDataAllocation('node_attrs');
await actions.cold.setSelectedNodeAttribute('test:123');
await actions.cold.setSearchableSnapshot('my-repo');
await actions.cold.setReplicas('123');
await actions.cold.setFreeze(true);
await actions.cold.setIndexPriority('123');
Expand All @@ -426,6 +427,9 @@ describe('<EditPolicy />', () => {
},
},
"freeze": Object {},
"searchable_snapshot": Object {
"snapshot_repository": "my-repo",
},
"set_priority": Object {
"priority": 123,
},
Expand All @@ -445,19 +449,6 @@ describe('<EditPolicy />', () => {
}
`);
});

// Setting searchable snapshot field disables setting replicas so we test this separately
test('setting searchable snapshot', async () => {
const { actions } = testBed;
await actions.cold.enable(true);
await actions.cold.setSearchableSnapshot('my-repo');
await actions.savePolicy();
const latestRequest2 = server.requests[server.requests.length - 1];
const entirePolicy2 = JSON.parse(JSON.parse(latestRequest2.requestBody).body);
expect(entirePolicy2.phases.cold.actions.searchable_snapshot.snapshot_repository).toEqual(
'my-repo'
);
});
});
});

Expand Down Expand Up @@ -844,14 +835,15 @@ describe('<EditPolicy />', () => {
const { component } = testBed;
component.update();
});
test('hiding and disabling searchable snapshot field', async () => {
test('hides fields in hot phase', async () => {
const { actions } = testBed;
await actions.hot.toggleDefaultRollover(false);
await actions.hot.toggleRollover(false);
await actions.cold.enable(true);

expect(actions.hot.forceMergeFieldExists()).toBeFalsy();
expect(actions.hot.shrinkExists()).toBeFalsy();
expect(actions.hot.searchableSnapshotsExists()).toBeFalsy();
expect(actions.cold.searchableSnapshotDisabledDueToRollover()).toBeTruthy();
expect(actions.hot.readonlyExists()).toBeFalsy();
});

test('hiding rollover tip on minimum age', async () => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,9 @@
import React, { FunctionComponent } from 'react';
import { FormattedMessage } from '@kbn/i18n/react';
import { i18n } from '@kbn/i18n';
import { get } from 'lodash';

import { EuiTextColor } from '@elastic/eui';

import { useFormData } from '../../../../../../shared_imports';

import { useConfigurationIssues } from '../../../form';

import { LearnMoreLink, ToggleFieldWithDescribedFormRow } from '../../';
Expand All @@ -36,23 +33,12 @@ const i18nTexts = {
},
};

const formFieldPaths = {
enabled: '_meta.cold.enabled',
searchableSnapshot: 'phases.cold.actions.searchable_snapshot.snapshot_repository',
};

export const ColdPhase: FunctionComponent = () => {
const { isUsingSearchableSnapshotInHotPhase } = useConfigurationIssues();

const [formData] = useFormData({
watch: [formFieldPaths.searchableSnapshot],
});

const showReplicasField = get(formData, formFieldPaths.searchableSnapshot) == null;

return (
<Phase phase="cold" topLevelSettings={<SearchableSnapshotField phase="cold" />}>
{showReplicasField && <ReplicasField phase="cold" />}
<ReplicasField phase="cold" />

{/* Freeze section */}
{!isUsingSearchableSnapshotInHotPhase && (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ export const SearchableSnapshotField: FunctionComponent<Props> = ({ phase }) =>
services: { cloud },
} = useKibana();
const { getUrlForApp, policy, license, isNewPolicy } = useEditPolicyContext();
const { isUsingSearchableSnapshotInHotPhase, isUsingRollover } = useConfigurationIssues();
const { isUsingSearchableSnapshotInHotPhase } = useConfigurationIssues();

const searchableSnapshotPath = `phases.${phase}.actions.searchable_snapshot.snapshot_repository`;

Expand All @@ -62,10 +62,8 @@ export const SearchableSnapshotField: FunctionComponent<Props> = ({ phase }) =>
const isColdPhase = phase === 'cold';
const isDisabledDueToLicense = !license.canUseSearchableSnapshot();
const isDisabledInColdDueToHotPhase = isColdPhase && isUsingSearchableSnapshotInHotPhase;
const isDisabledInColdDueToRollover = isColdPhase && !isUsingRollover;

const isDisabled =
isDisabledDueToLicense || isDisabledInColdDueToHotPhase || isDisabledInColdDueToRollover;
const isDisabled = isDisabledDueToLicense || isDisabledInColdDueToHotPhase;

const [isFieldToggleChecked, setIsFieldToggleChecked] = useState(() =>
Boolean(
Expand Down Expand Up @@ -294,20 +292,6 @@ export const SearchableSnapshotField: FunctionComponent<Props> = ({ phase }) =>
)}
/>
);
} else if (isDisabledInColdDueToRollover) {
infoCallout = (
<EuiCallOut
size="s"
data-test-subj="searchableSnapshotFieldsNoRolloverCallout"
title={i18n.translate(
'xpack.indexLifecycleMgmt.editPolicy.searchableSnapshotNoRolloverCalloutBody',
{
defaultMessage:
'Cannot create a searchable snapshot when rollover is disabled in the hot phase.',
}
)}
/>
);
}

return infoCallout ? (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,22 +33,22 @@ export const WarmPhase: FunctionComponent = () => {
const { isUsingSearchableSnapshotInHotPhase } = useConfigurationIssues();

return (
<Phase phase={'warm'}>
<ReplicasField phase={'warm'} />
<Phase phase="warm">
<ReplicasField phase="warm" />

{!isUsingSearchableSnapshotInHotPhase && <ShrinkField phase={'warm'} />}
{!isUsingSearchableSnapshotInHotPhase && <ShrinkField phase="warm" />}

{!isUsingSearchableSnapshotInHotPhase && <ForcemergeField phase={'warm'} />}
{!isUsingSearchableSnapshotInHotPhase && <ForcemergeField phase="warm" />}

<ReadonlyField phase={'warm'} />
<ReadonlyField phase="warm" />

{/* Data tier allocation section */}
<DataTierAllocationField
description={i18nTexts.dataTierAllocation.description}
phase={'warm'}
phase="warm"
/>

<IndexPriorityField phase={'warm'} />
<IndexPriorityField phase="warm" />
</Phase>
);
};
1 change: 0 additions & 1 deletion x-pack/plugins/translations/translations/ja-JP.json
Original file line number Diff line number Diff line change
Expand Up @@ -9466,7 +9466,6 @@
"xpack.indexLifecycleMgmt.editPolicy.searchableSnapshotFieldTitle": "検索可能スナップショット",
"xpack.indexLifecycleMgmt.editPolicy.searchableSnapshotLicenseCalloutBody": "検索可能なスナップショットを作成するには、エンタープライズライセンスが必要です。",
"xpack.indexLifecycleMgmt.editPolicy.searchableSnapshotLicenseCalloutTitle": "エンタープライズライセンスが必要です",
"xpack.indexLifecycleMgmt.editPolicy.searchableSnapshotNoRolloverCalloutBody": "ロールオーバーがホットフェーズで無効な時には、検索可能なスナップショットを作成できません。",
"xpack.indexLifecycleMgmt.editPolicy.searchableSnapshotRepoRequiredError": "スナップショットリポジトリ名が必要です。",
"xpack.indexLifecycleMgmt.editPolicy.searchableSnapshotsToggleLabel": "検索可能スナップショットを作成",
"xpack.indexLifecycleMgmt.editPolicy.showPolicyJsonButto": "リクエストを表示",
Expand Down
1 change: 0 additions & 1 deletion x-pack/plugins/translations/translations/zh-CN.json
Original file line number Diff line number Diff line change
Expand Up @@ -9490,7 +9490,6 @@
"xpack.indexLifecycleMgmt.editPolicy.searchableSnapshotFieldTitle": "可搜索快照",
"xpack.indexLifecycleMgmt.editPolicy.searchableSnapshotLicenseCalloutBody": "要创建可搜索快照,需要企业许可证。",
"xpack.indexLifecycleMgmt.editPolicy.searchableSnapshotLicenseCalloutTitle": "需要企业许可证",
"xpack.indexLifecycleMgmt.editPolicy.searchableSnapshotNoRolloverCalloutBody": "在热阶段禁用滚动更新后,无法创建可搜索快照。",
"xpack.indexLifecycleMgmt.editPolicy.searchableSnapshotRepoRequiredError": "快照存储库名称必填。",
"xpack.indexLifecycleMgmt.editPolicy.searchableSnapshotsToggleLabel": "创建可搜索快照",
"xpack.indexLifecycleMgmt.editPolicy.showPolicyJsonButto": "显示请求",
Expand Down