Skip to content

Commit

Permalink
Merge branch 'master' into more-slack-alerts
Browse files Browse the repository at this point in the history
  • Loading branch information
elasticmachine committed May 14, 2020
2 parents a78f5c7 + 8652bed commit cea6143
Show file tree
Hide file tree
Showing 7 changed files with 77 additions and 46 deletions.
29 changes: 13 additions & 16 deletions packages/kbn-es/src/utils/native_realm.js
Original file line number Diff line number Diff line change
Expand Up @@ -76,10 +76,6 @@ exports.NativeRealm = class NativeRealm {
}

const reservedUsers = await this.getReservedUsers();
if (!reservedUsers || reservedUsers.length < 1) {
throw new Error('no reserved users found, unable to set native realm passwords');
}

await Promise.all(
reservedUsers.map(async user => {
await this.setPassword(user, options[`password.${user}`]);
Expand All @@ -88,16 +84,18 @@ exports.NativeRealm = class NativeRealm {
}

async getReservedUsers() {
const users = await this._autoRetry(async () => {
return await this._client.security.getUser();
});
return await this._autoRetry(async () => {
const resp = await this._client.security.getUser();
const usernames = Object.keys(resp.body).filter(
user => resp.body[user].metadata._reserved === true
);

return Object.keys(users.body).reduce((acc, user) => {
if (users.body[user].metadata._reserved === true) {
acc.push(user);
if (!usernames?.length) {
throw new Error('no reserved users found, unable to set native realm passwords');
}
return acc;
}, []);

return usernames;
});
}

async isSecurityEnabled() {
Expand Down Expand Up @@ -125,10 +123,9 @@ exports.NativeRealm = class NativeRealm {
throw error;
}

this._log.warning(
'assuming [elastic] user not available yet, waiting 1.5 seconds and trying again'
);
await new Promise(resolve => setTimeout(resolve, 1500));
const sec = 1.5 * attempt;
this._log.warning(`assuming ES isn't initialized completely, trying again in ${sec} seconds`);
await new Promise(resolve => setTimeout(resolve, sec * 1000));
return await this._autoRetry(fn, attempt + 1);
}
}
Expand Down
3 changes: 2 additions & 1 deletion test/functional/apps/visualize/_tsvb_chart.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,8 @@ export default function({ getService, getPageObjects }: FtrProviderContext) {
const security = getService('security');
const PageObjects = getPageObjects(['visualize', 'visualBuilder', 'timePicker', 'visChart']);

describe('visual builder', function describeIndexTests() {
// FLAKY: https://github.com/elastic/kibana/issues/43150
describe.skip('visual builder', function describeIndexTests() {
this.tags('includeFirefox');
beforeEach(async () => {
await security.testUser.setRoles(['kibana_admin', 'test_logstash_reader']);
Expand Down
43 changes: 35 additions & 8 deletions x-pack/plugins/lens/public/app_plugin/app.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,12 @@ describe('Lens App', () => {
storage: Storage;
docId?: string;
docStorage: SavedObjectStore;
redirectTo: (id?: string, returnToOrigin?: boolean, newlyCreated?: boolean) => void;
redirectTo: (
id?: string,
returnToOrigin?: boolean,
originatingApp?: string | undefined,
newlyCreated?: boolean
) => void;
originatingApp: string | undefined;
}> {
return ({
Expand Down Expand Up @@ -140,7 +145,14 @@ describe('Lens App', () => {
load: jest.fn(),
save: jest.fn(),
},
redirectTo: jest.fn((id?: string, returnToOrigin?: boolean, newlyCreated?: boolean) => {}),
redirectTo: jest.fn(
(
id?: string,
returnToOrigin?: boolean,
originatingApp?: string | undefined,
newlyCreated?: boolean
) => {}
),
} as unknown) as jest.Mocked<{
navigation: typeof navigationStartMock;
editorFrame: EditorFrameInstance;
Expand All @@ -149,7 +161,12 @@ describe('Lens App', () => {
storage: Storage;
docId?: string;
docStorage: SavedObjectStore;
redirectTo: (id?: string, returnToOrigin?: boolean, newlyCreated?: boolean) => void;
redirectTo: (
id?: string,
returnToOrigin?: boolean,
originatingApp?: string | undefined,
newlyCreated?: boolean
) => void;
originatingApp: string | undefined;
}>;
}
Expand Down Expand Up @@ -348,7 +365,12 @@ describe('Lens App', () => {
storage: Storage;
docId?: string;
docStorage: SavedObjectStore;
redirectTo: (id?: string, returnToOrigin?: boolean, newlyCreated?: boolean) => void;
redirectTo: (
id?: string,
returnToOrigin?: boolean,
originatingApp?: string | undefined,
newlyCreated?: boolean
) => void;
originatingApp: string | undefined;
}>;

Expand Down Expand Up @@ -521,7 +543,7 @@ describe('Lens App', () => {
expression: 'kibana 3',
});

expect(args.redirectTo).toHaveBeenCalledWith('aaa', undefined, true);
expect(args.redirectTo).toHaveBeenCalledWith('aaa', undefined, undefined, true);

inst.setProps({ docId: 'aaa' });

Expand All @@ -541,7 +563,7 @@ describe('Lens App', () => {
expression: 'kibana 3',
});

expect(args.redirectTo).toHaveBeenCalledWith('aaa', undefined, true);
expect(args.redirectTo).toHaveBeenCalledWith('aaa', undefined, undefined, true);

inst.setProps({ docId: 'aaa' });

Expand Down Expand Up @@ -609,7 +631,7 @@ describe('Lens App', () => {
title: 'hello there',
});

expect(args.redirectTo).toHaveBeenCalledWith('aaa', true, true);
expect(args.redirectTo).toHaveBeenCalledWith('aaa', true, undefined, true);
});

it('saves app filters and does not save pinned filters', async () => {
Expand Down Expand Up @@ -677,7 +699,12 @@ describe('Lens App', () => {
storage: Storage;
docId?: string;
docStorage: SavedObjectStore;
redirectTo: (id?: string, returnToOrigin?: boolean, newlyCreated?: boolean) => void;
redirectTo: (
id?: string,
returnToOrigin?: boolean,
originatingApp?: string | undefined,
newlyCreated?: boolean
) => void;
}>;

beforeEach(() => {
Expand Down
23 changes: 15 additions & 8 deletions x-pack/plugins/lens/public/app_plugin/app.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ interface State {
isLoading: boolean;
isSaveModalVisible: boolean;
indexPatternsForTopNav: IndexPatternInstance[];
originatingApp: string | undefined;
persistedDoc?: Document;
lastKnownDoc?: Document;

Expand All @@ -54,7 +55,7 @@ export function App({
docId,
docStorage,
redirectTo,
originatingApp,
originatingAppFromUrl,
navigation,
}: {
editorFrame: EditorFrameInstance;
Expand All @@ -64,8 +65,13 @@ export function App({
storage: IStorageWrapper;
docId?: string;
docStorage: SavedObjectStore;
redirectTo: (id?: string, returnToOrigin?: boolean, newlyCreated?: boolean) => void;
originatingApp?: string | undefined;
redirectTo: (
id?: string,
returnToOrigin?: boolean,
originatingApp?: string | undefined,
newlyCreated?: boolean
) => void;
originatingAppFromUrl?: string | undefined;
}) {
const language =
storage.get('kibana.userQueryLanguage') || core.uiSettings.get('search:queryLanguage');
Expand All @@ -77,6 +83,7 @@ export function App({
isSaveModalVisible: false,
indexPatternsForTopNav: [],
query: { query: '', language },
originatingApp: originatingAppFromUrl,
dateRange: {
fromDate: currentRange.from,
toDate: currentRange.to,
Expand Down Expand Up @@ -229,7 +236,7 @@ export function App({
lastKnownDoc: newDoc,
}));
if (docId !== id || saveProps.returnToOrigin) {
redirectTo(id, saveProps.returnToOrigin, newlyCreated);
redirectTo(id, saveProps.returnToOrigin, state.originatingApp, newlyCreated);
}
})
.catch(e => {
Expand Down Expand Up @@ -269,7 +276,7 @@ export function App({
<div className="lnsApp__header">
<TopNavMenu
config={[
...(!!originatingApp && lastKnownDoc?.id
...(!!state.originatingApp && lastKnownDoc?.id
? [
{
label: i18n.translate('xpack.lens.app.saveAndReturn', {
Expand All @@ -294,14 +301,14 @@ export function App({
: []),
{
label:
lastKnownDoc?.id && !!originatingApp
lastKnownDoc?.id && !!state.originatingApp
? i18n.translate('xpack.lens.app.saveAs', {
defaultMessage: 'Save as',
})
: i18n.translate('xpack.lens.app.save', {
defaultMessage: 'Save',
}),
emphasize: !originatingApp || !lastKnownDoc?.id,
emphasize: !state.originatingApp || !lastKnownDoc?.id,
run: () => {
if (isSaveable && lastKnownDoc) {
setState(s => ({ ...s, isSaveModalVisible: true }));
Expand Down Expand Up @@ -422,7 +429,7 @@ export function App({
</div>
{lastKnownDoc && state.isSaveModalVisible && (
<SavedObjectSaveModalOrigin
originatingApp={originatingApp}
originatingApp={state.originatingApp}
onSave={props => runSave(props)}
onClose={() => setState(s => ({ ...s, isSaveModalVisible: false }))}
documentInfo={{
Expand Down
17 changes: 8 additions & 9 deletions x-pack/plugins/lens/public/app_plugin/mounter.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -47,15 +47,11 @@ export async function mountApp(
);
const redirectTo = (
routeProps: RouteComponentProps<{ id?: string }>,
originatingApp: string,
id?: string,
returnToOrigin?: boolean,
originatingApp?: string,
newlyCreated?: boolean
) => {
if (!!originatingApp && !returnToOrigin) {
removeQueryParam(routeProps.history, 'embeddableOriginatingApp');
}

if (!id) {
routeProps.history.push('/');
} else if (!originatingApp) {
Expand All @@ -78,7 +74,10 @@ export async function mountApp(
const renderEditor = (routeProps: RouteComponentProps<{ id?: string }>) => {
trackUiEvent('loaded');
const urlParams = parse(routeProps.location.search) as Record<string, string>;
const originatingApp = urlParams.embeddableOriginatingApp;
const originatingAppFromUrl = urlParams.embeddableOriginatingApp;
if (urlParams.embeddableOriginatingApp) {
removeQueryParam(routeProps.history, 'embeddableOriginatingApp');
}

return (
<App
Expand All @@ -89,10 +88,10 @@ export async function mountApp(
storage={new Storage(localStorage)}
docId={routeProps.match.params.id}
docStorage={new SavedObjectIndexStore(savedObjectsClient)}
redirectTo={(id, returnToOrigin, newlyCreated) =>
redirectTo(routeProps, originatingApp, id, returnToOrigin, newlyCreated)
redirectTo={(id, returnToOrigin, originatingApp, newlyCreated) =>
redirectTo(routeProps, id, returnToOrigin, originatingApp, newlyCreated)
}
originatingApp={originatingApp}
originatingAppFromUrl={originatingAppFromUrl}
/>
);
};
Expand Down
3 changes: 1 addition & 2 deletions x-pack/test/functional/apps/dashboard/_async_dashboard.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,7 @@ export default function({ getService, getPageObjects }: FtrProviderContext) {
'timePicker',
]);

// FLAKY: https://github.com/elastic/kibana/issues/65949
describe.skip('sample data dashboard', function describeIndexTests() {
describe('sample data dashboard', function describeIndexTests() {
before(async () => {
await PageObjects.common.sleep(5000);
await PageObjects.common.navigateToUrl('home', '/tutorial_directory/sampleData', {
Expand Down
5 changes: 3 additions & 2 deletions x-pack/test/functional_endpoint/apps/endpoint/policy_list.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@ export default function({ getPageObjects, getService }: FtrProviderContext) {
const testSubjects = getService('testSubjects');
const policyTestResources = getService('policyTestResources');

describe('When on the Endpoint Policy List', function() {
// FLAKY: https://github.com/elastic/kibana/issues/66579
describe.skip('When on the Endpoint Policy List', function() {
this.tags(['ciGroup7']);
before(async () => {
await pageObjects.common.navigateToUrlWithBrowserHistory('endpoint', '/policy');
Expand Down Expand Up @@ -46,7 +47,7 @@ export default function({ getPageObjects, getService }: FtrProviderContext) {
expect(noItemsFoundMessage).to.equal('No items found');
});

describe('and policies exists', () => {
xdescribe('and policies exists', () => {
let policyInfo: PolicyTestResourceInfo;

before(async () => {
Expand Down

0 comments on commit cea6143

Please sign in to comment.