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

Move buildEsQuery to a package #23345

Merged
merged 42 commits into from
Nov 22, 2018
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
e27ba53
fix: move buildEsQuery to utils
lukasolson Sep 19, 2018
1308202
fix: tests that I broke
lukasolson Sep 21, 2018
0480b9c
Merge branch 'master' into fix/filtersEverywhere
lukasolson Sep 24, 2018
72fbe52
Merge branch 'master' into fix/filtersEverywhere
lukasolson Oct 1, 2018
7c93a4b
fix: add back link to the docs
lukasolson Oct 1, 2018
391060f
fix: don't export from ui/ and link to utils
lukasolson Oct 2, 2018
fb63b64
Merge branch 'master' into fix/filtersEverywhere
lukasolson Oct 17, 2018
dafa660
Merge branch 'master' into fix/filtersEverywhere
lukasolson Oct 17, 2018
a96841a
fix: move to a package
lukasolson Oct 18, 2018
09a69ed
fix: move error to errors.js
lukasolson Oct 18, 2018
844037d
Merge branch 'master' into fix/filtersEverywhere
lukasolson Oct 18, 2018
96f133f
fix: paths for peg task
lukasolson Oct 18, 2018
a2fb932
Merge branch 'master' into fix/filtersEverywhere
lukasolson Oct 18, 2018
8f2480c
fix: update reference to kuery
lukasolson Oct 19, 2018
63d230d
fix: build step for transpilation
lukasolson Oct 22, 2018
3884518
fix: add typescript declaration file
lukasolson Oct 22, 2018
cb0aea2
Merge branch 'master' into fix/filtersEverywhere
lukasolson Oct 23, 2018
0a0a6d6
Merge branch 'master' into fix/filtersEverywhere
lukasolson Nov 2, 2018
09e4331
Merge branch 'master' into fix/filtersEverywhere
lukasolson Nov 2, 2018
b783ea9
fix: test
lukasolson Nov 2, 2018
36b4259
tmp: debug individual tests
lukasolson Nov 5, 2018
f124678
debug: add debug stuff for reporting tests
lukasolson Nov 5, 2018
d8bfa36
try to debug test
lukasolson Nov 6, 2018
414c311
Merge branch 'master' into fix/filtersEverywhere
lukasolson Nov 7, 2018
a13a749
Merge branch 'master' into fix/filtersEverywhere
lukasolson Nov 12, 2018
4fbac25
Merge branch 'master' into lukasolson/fix/filtersEverywhere
markov00 Nov 13, 2018
887c97a
Testing splitting reporting jobs in two
markov00 Nov 13, 2018
103ee2b
Testing splitting each job
markov00 Nov 13, 2018
d1d0970
Fix ci yaml
markov00 Nov 13, 2018
59f978f
Skipping job to check failing test
markov00 Nov 13, 2018
e36d7ab
debug - adding a catch to jobResponseHandler on report
markov00 Nov 14, 2018
f0149b1
Testing a different job and enabling verbose mode
markov00 Nov 14, 2018
99a8bc0
Testing verbose on phantom_api skipping other CI tests
markov00 Nov 14, 2018
245f72c
Fix script mode
markov00 Nov 14, 2018
991d46f
fix: try running tests in chromium
lukasolson Nov 14, 2018
04f5e37
fix: move out of devDependencies
lukasolson Nov 15, 2018
9fd38fe
fix: remove commented test
lukasolson Nov 15, 2018
7db5961
Revert "fix: try running tests in chromium"
lukasolson Nov 15, 2018
df364f0
Revert testing changes
markov00 Nov 19, 2018
408ddb4
Merge branch 'master' into pr/23345
markov00 Nov 19, 2018
ffa8657
Fixing build for phantomjs
markov00 Nov 20, 2018
ee4ddc2
Revert CI configuration to master. Remove verbose logging for tests
markov00 Nov 20, 2018
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
4 changes: 2 additions & 2 deletions .eslintignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ bower_components
/src/fixtures/vislib/mock_data
/src/ui/public/angular-bootstrap
/src/ui/public/flot-charts
/src/ui/public/kuery/ast/kuery.js
/src/ui/public/kuery/ast/legacy_kuery.js
/src/utils/kuery/ast/kuery.js
/src/utils/kuery/ast/legacy_kuery.js
Copy link
Contributor

Choose a reason for hiding this comment

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

Out of interest: why are we ignoring those two files for linting? :)

Copy link
Member Author

Choose a reason for hiding this comment

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

They're generated by PEG

/test/fixtures/scenarios
/src/core_plugins/console/public/webpackShims
/src/core_plugins/console/public/tests/webpackShims
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,7 @@

import _ from 'lodash';
import { FilterManager } from './filter_manager.js';
import { buildPhraseFilter } from 'ui/filter_manager/lib/phrase';
import { buildPhrasesFilter } from 'ui/filter_manager/lib/phrases';
import { buildPhraseFilter, buildPhrasesFilter } from '../../../../../utils/filters';

export class PhraseFilterManager extends FilterManager {
constructor(controlId, fieldName, indexPattern, queryFilter) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@

import _ from 'lodash';
import { FilterManager } from './filter_manager.js';
import { buildRangeFilter } from 'ui/filter_manager/lib/range';
import { buildRangeFilter } from '../../../../../utils/filters';

// Convert slider value into ES range filter
function toRange(sliderValue) {
Expand Down
2 changes: 1 addition & 1 deletion src/core_plugins/vega/public/vega_view/vega_base_view.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ import * as vegaLite from 'vega-lite';
import { Utils } from '../data_model/utils';
import { VISUALIZATION_COLORS } from '@elastic/eui';
import { TooltipHandler } from './vega_tooltip';
import { buildQueryFilter } from 'ui/filter_manager/lib';
import { buildQueryFilter } from '../../../../utils/filters';

vega.scheme('elastic', VISUALIZATION_COLORS);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,7 @@
*/

import _ from 'lodash';
import { buildExistsFilter } from '../../filter_manager/lib/exists';
import { buildPhrasesFilter } from '../../filter_manager/lib/phrases';
import { buildExistsFilter, buildPhrasesFilter } from '../../../../utils/filters';
import { buildQueryFromFilters } from '../../courier';

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
*/

import moment from 'moment';
import { buildRangeFilter } from '../../../filter_manager/lib/range';
import { buildRangeFilter } from '../../../../../utils/filters';

export function createFilterDateHistogram(agg, key) {
const start = moment(key);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@

import chrome from '../../../chrome';
import { dateRange } from '../../../utils/date_range';
import { buildRangeFilter } from '../../../filter_manager/lib/range';
import { buildRangeFilter } from '../../../../../utils/filters';

const config = chrome.getUiSettingsClient();

Expand Down
2 changes: 1 addition & 1 deletion src/ui/public/agg_types/buckets/create_filter/filters.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
* under the License.
*/

import { buildQueryFilter } from '../../../filter_manager/lib/query';
import { buildQueryFilter } from '../../../../../utils/filters';
import _ from 'lodash';

export function createFilterFilters(aggConfig, key) {
Expand Down
2 changes: 1 addition & 1 deletion src/ui/public/agg_types/buckets/create_filter/histogram.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
* under the License.
*/

import { buildRangeFilter } from '../../../filter_manager/lib/range';
import { buildRangeFilter } from '../../../../../utils/filters';

export function createFilterHistogram(aggConfig, key) {
const value = parseInt(key, 10);
Expand Down
2 changes: 1 addition & 1 deletion src/ui/public/agg_types/buckets/create_filter/ip_range.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
*/

import { CidrMask } from '../../../utils/cidr_mask';
import { buildRangeFilter } from '../../../filter_manager/lib/range';
import { buildRangeFilter } from '../../../../../utils/filters';

export function createFilterIpRange(aggConfig, key) {
let range;
Expand Down
2 changes: 1 addition & 1 deletion src/ui/public/agg_types/buckets/create_filter/range.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
* under the License.
*/

import { buildRangeFilter } from '../../../filter_manager/lib/range';
import { buildRangeFilter } from '../../../../../utils/filters';

export function createFilterRange(aggConfig, key) {
return buildRangeFilter(
Expand Down
4 changes: 1 addition & 3 deletions src/ui/public/agg_types/buckets/create_filter/terms.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,7 @@
* under the License.
*/

import { buildPhraseFilter } from '../../../filter_manager/lib/phrase';
import { buildPhrasesFilter } from '../../../filter_manager/lib/phrases';
import { buildExistsFilter } from '../../../filter_manager/lib/exists';
import { buildPhraseFilter, buildPhrasesFilter, buildExistsFilter } from '../../../../../utils/filters';

export function createFilterTerms(aggConfig, key, params) {
const field = aggConfig.params.field;
Expand Down
4 changes: 3 additions & 1 deletion src/ui/public/agg_types/buckets/filters.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ import { createFilterFilters } from './create_filter/filters';
import { decorateQuery, luceneStringToDsl } from '../../courier';
import filtersTemplate from '../controls/filters.html';

import chrome from 'ui/chrome';

export const filtersBucketAgg = new BucketAggType({
name: 'filters',
title: 'Filters',
Expand Down Expand Up @@ -53,7 +55,7 @@ export const filtersBucketAgg = new BucketAggType({
return;
}

decorateQuery(query);
decorateQuery(query, chrome.getUiSettingsClient());

const matchAllLabel = (filter.input.query === '' && _.has(query, 'match_all')) ? '*' : '';
const label = filter.label || matchAllLabel || _.get(query, 'query_string.query') || angular.toJson(query);
Expand Down
9 changes: 6 additions & 3 deletions src/ui/public/courier/search_source/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@
*/

export { SearchSourceProvider } from './search_source';
export { migrateFilter } from './migrate_filter';
export { decorateQuery } from './decorate_query';
export { buildQueryFromFilters, luceneStringToDsl } from './build_query';
export {
migrateFilter,
decorateQuery,
buildQueryFromFilters,
luceneStringToDsl
} from '../../../../utils/es_query';
Copy link
Contributor

Choose a reason for hiding this comment

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

Do we even need to export these from here now are can existing users of this module just import the functions from the new directory?

Copy link
Member Author

Choose a reason for hiding this comment

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

We could, it just seemed like fewer changes to do it this way rather than go through each of the imports and change them. I'm open to changing this if you think it makes sense.

Copy link
Contributor

Choose a reason for hiding this comment

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

Maybe I missed some, but it looked to me like the imports had already been changed. Intellij's refactoring tools should handle it. I'd just rip the band aid off cleanly so folks in the future aren't confused about where they should be importing from.

Copy link
Member Author

Choose a reason for hiding this comment

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

Made the change. Wasn't even bad at all

9 changes: 7 additions & 2 deletions src/ui/public/courier/search_source/search_source.js
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,8 @@ import { searchRequestQueue } from '../search_request_queue';
import { FetchSoonProvider } from '../fetch';
import { FieldWildcardProvider } from '../../field_wildcard';
import { getHighlightRequest } from '../../../../core_plugins/kibana/common/highlight';
import { BuildESQueryProvider } from './build_query';
import { BuildESQueryProvider } from '../../../../utils/es_query';
import { KbnError } from '../../errors';

const FIELDS = [
'type',
Expand Down Expand Up @@ -601,7 +602,11 @@ export function SearchSourceProvider(Promise, Private, config) {
_.set(flatData.body, '_source.includes', remainingFields);
}

flatData.body.query = buildESQuery(flatData.index, flatData.query, flatData.filters);
try {
flatData.body.query = buildESQuery(flatData.index, flatData.query, flatData.filters);
} catch (e) {
throw new KbnError(e.message, KbnError);
Copy link
Contributor

Choose a reason for hiding this comment

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

Ok now that I see this, I'm assuming that's why you removed the wildcard error type?

}

if (flatData.highlightAll != null) {
if (flatData.highlightAll && flatData.body.query) {
Expand Down
2 changes: 1 addition & 1 deletion src/ui/public/filter_editor/filter_editor.js
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ import {
areIndexPatternsProvided,
isFilterPinned
} from './lib/filter_editor_utils';
import * as filterBuilder from '../filter_manager/lib';
import * as filterBuilder from '../../../utils/filters';
import { keyMap } from '../utils/key_map';

const module = uiModules.get('kibana');
Expand Down
2 changes: 1 addition & 1 deletion src/ui/public/filter_manager/__tests__/filter_manager.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ import expect from 'expect.js';
import ngMock from 'ng_mock';
import { FilterManagerProvider } from '..';
import { FilterBarQueryFilterProvider } from '../../filter_bar/query_filter';
import { getPhraseScript } from '../lib/phrase';
import { getPhraseScript } from '../../../../utils/filters';
let queryFilter;
let filterManager;
let appState;
Expand Down
2 changes: 1 addition & 1 deletion src/ui/public/filter_manager/filter_manager.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@

import _ from 'lodash';
import { FilterBarQueryFilterProvider } from '../filter_bar/query_filter';
import { getPhraseScript } from './lib/phrase';
import { getPhraseScript } from '../../../utils/filters';

// Adds a filter to a passed state
export function FilterManagerProvider(Private) {
Expand Down
4 changes: 1 addition & 3 deletions src/ui/public/kuery/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,4 @@
* under the License.
*/

export * from './ast';
export * from './filter_migration';
export * from './node_types';
export * from '../../../utils/kuery';
Copy link
Contributor

Choose a reason for hiding this comment

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

Can we just delete this module now?

Copy link
Member Author

Choose a reason for hiding this comment

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

Same comment as above, we could, but we'd have to update all of the references, which is fine by me if you think it's best.

2 changes: 1 addition & 1 deletion src/ui/public/utils/brush_event.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@

import _ from 'lodash';
import moment from 'moment';
import { buildRangeFilter } from '../filter_manager/lib/range';
import { buildRangeFilter } from '../../../utils/filters';
import { timefilter } from 'ui/timefilter';

export function onBrushEvent(event, $state) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
{
"id": "logstash-*",
"title": "logstash-*",
"fields": [
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,25 +18,22 @@
*/

import { BuildESQueryProvider } from '../build_es_query';
import StubbedLogstashIndexPatternProvider from 'fixtures/stubbed_logstash_index_pattern';
import ngMock from 'ng_mock';
import { expectDeepEqual } from '../../../../../../test_utils/expect_deep_equal.js';
import { fromKueryExpression, toElasticsearchQuery } from '../../../../kuery';
import indexPattern from '../../__tests__/index_pattern_response.json';
import { expectDeepEqual } from '../../../test_utils/expect_deep_equal';
import { fromKueryExpression, toElasticsearchQuery } from '../../../utils/kuery';
import { luceneStringToDsl } from '../lucene_string_to_dsl';
import { decorateQuery } from '../../decorate_query';
import { decorateQuery } from '../decorate_query';

let indexPattern;
let buildEsQuery;

describe('build query', function () {
const configStub = { get: () => ({}) };
const privateStub = fn => fn(configStub);

describe('build query', function () {
describe('buildESQuery', function () {

beforeEach(ngMock.module('kibana'));
beforeEach(ngMock.inject(function (Private) {
indexPattern = Private(StubbedLogstashIndexPatternProvider);
buildEsQuery = Private(BuildESQueryProvider);
}));
beforeEach(() => {
buildEsQuery = privateStub(BuildESQueryProvider);
});

it('should return the parameters of an Elasticsearch bool query', function () {
const result = buildEsQuery();
Expand Down Expand Up @@ -66,7 +63,7 @@ describe('build query', function () {
const expectedResult = {
bool: {
must: [
decorateQuery(luceneStringToDsl('bar:baz')),
decorateQuery(luceneStringToDsl('bar:baz'), configStub),
{ match_all: {} },
],
filter: [
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,19 +18,19 @@
*/

import expect from 'expect.js';
import chrome from '../../../chrome';
import { decorateQuery } from '../decorate_query';

const config = chrome.getUiSettingsClient();
describe('Query decorator', function () {
const configStub = {
get: () => ({ analyze_wildcard: true })
};

describe('Query decorator', function () {
it('should be a function', function () {
expect(decorateQuery).to.be.a(Function);
});

it('should merge in the query string options', function () {
config.set('query:queryString:options', { analyze_wildcard: true });
const decoratedQuery = decorateQuery({ query_string: { query: '*' } });
const decoratedQuery = decorateQuery({ query_string: { query: '*' } }, configStub);
expect(decoratedQuery).to.eql({ query_string: { query: '*', analyze_wildcard: true } });
});
});
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,10 @@
*/

import { buildQueryFromFilters } from '../from_filters';
import ngMock from 'ng_mock';
import { expectDeepEqual } from '../../../../../../test_utils/expect_deep_equal.js';
import { expectDeepEqual } from '../../../test_utils/expect_deep_equal';

describe('build query', function () {
describe('buildQueryFromFilters', function () {
beforeEach(ngMock.module('kibana'));

it('should return the parameters of an Elasticsearch bool query', function () {
const result = buildQueryFromFilters([]);
const expected = {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,24 +18,15 @@
*/

import { buildQueryFromKuery } from '../from_kuery';
import StubbedLogstashIndexPatternProvider from 'fixtures/stubbed_logstash_index_pattern';
import ngMock from 'ng_mock';
import { expectDeepEqual } from '../../../../../../test_utils/expect_deep_equal.js';
import indexPattern from '../../__tests__/index_pattern_response.json';
import { expectDeepEqual } from '../../../test_utils/expect_deep_equal';
import expect from 'expect.js';
import { fromKueryExpression, toElasticsearchQuery } from '../../../../kuery';

let indexPattern;
import { fromKueryExpression, toElasticsearchQuery } from '../../../utils/kuery';

describe('build query', function () {
const configStub = { get: () => true };

describe('buildQueryFromKuery', function () {

beforeEach(ngMock.module('kibana'));
beforeEach(ngMock.inject(function (Private) {
indexPattern = Private(StubbedLogstashIndexPatternProvider);
}));

it('should return the parameters of an Elasticsearch bool query', function () {
const result = buildQueryFromKuery(null, [], configStub);
const expected = {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,11 @@
*/

import { buildQueryFromLucene } from '../from_lucene';
import { decorateQuery } from '../../decorate_query';
import { expectDeepEqual } from '../../../../../../test_utils/expect_deep_equal';
import { decorateQuery } from '../decorate_query';
import { expectDeepEqual } from '../../../test_utils/expect_deep_equal';
import { luceneStringToDsl } from '../lucene_string_to_dsl';

const configStub = { get: () => ({}) };

describe('build query', function () {

Expand All @@ -46,11 +47,11 @@ describe('build query', function () {

const expectedESQueries = queries.map(
(query) => {
return decorateQuery(luceneStringToDsl(query.query));
return decorateQuery(luceneStringToDsl(query.query), configStub);
}
);

const result = buildQueryFromLucene(queries, decorateQuery);
const result = buildQueryFromLucene(queries, configStub);

expectDeepEqual(result.must, expectedESQueries);
});
Expand All @@ -60,7 +61,7 @@ describe('build query', function () {
{ query: { match_all: {} }, language: 'lucene' },
];

const result = buildQueryFromLucene(queries, decorateQuery);
const result = buildQueryFromLucene(queries, configStub);

expectDeepEqual(result.must, [queries[0].query]);
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
*/

import { luceneStringToDsl } from '../lucene_string_to_dsl';
import { expectDeepEqual } from '../../../../../../test_utils/expect_deep_equal.js';
import { expectDeepEqual } from '../../../test_utils/expect_deep_equal';
import expect from 'expect.js';

describe('build query', function () {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
*/

import { groupBy, has } from 'lodash';
import { decorateQuery } from '../decorate_query';
import { buildQueryFromKuery } from './from_kuery';
import { buildQueryFromFilters } from './from_filters';
import { buildQueryFromLucene } from './from_lucene';
Expand All @@ -35,7 +34,7 @@ export function BuildESQueryProvider(config) {
const queriesByLanguage = groupBy(validQueries, 'language');

const kueryQuery = buildQueryFromKuery(indexPattern, queriesByLanguage.kuery, config);
const luceneQuery = buildQueryFromLucene(queriesByLanguage.lucene, decorateQuery);
const luceneQuery = buildQueryFromLucene(queriesByLanguage.lucene, config);
const filterQuery = buildQueryFromFilters(filters, indexPattern);

return {
Expand Down
Loading