diff --git a/packages/kbn-test/src/functional_tests/lib/run_elasticsearch.js b/packages/kbn-test/src/functional_tests/lib/run_elasticsearch.js deleted file mode 100644 index 3d174791fffc..000000000000 --- a/packages/kbn-test/src/functional_tests/lib/run_elasticsearch.js +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Licensed to Elasticsearch B.V. under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch B.V. licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import { resolve } from 'path'; -import { KIBANA_ROOT } from './paths'; -import { createLegacyEsTestCluster } from '../../legacy_es'; - -import { setupUsers, DEFAULT_SUPERUSER_PASS } from './auth'; - -export async function runElasticsearch({ config, options }) { - const { log, esFrom } = options; - const ssl = config.get('esTestCluster.ssl'); - const license = config.get('esTestCluster.license'); - const esArgs = config.get('esTestCluster.serverArgs'); - const esEnvVars = config.get('esTestCluster.serverEnvVars'); - const isSecurityEnabled = esArgs.includes('xpack.security.enabled=true'); - - const cluster = createLegacyEsTestCluster({ - port: config.get('servers.elasticsearch.port'), - password: isSecurityEnabled - ? DEFAULT_SUPERUSER_PASS - : config.get('servers.elasticsearch.password'), - license, - log, - basePath: resolve(KIBANA_ROOT, '.es'), - esFrom: esFrom || config.get('esTestCluster.from'), - dataArchive: config.get('esTestCluster.dataArchive'), - esArgs, - esEnvVars, - ssl, - }); - - await cluster.start(); - - if (isSecurityEnabled) { - await setupUsers({ - log, - esPort: config.get('servers.elasticsearch.port'), - updates: [config.get('servers.elasticsearch'), config.get('servers.kibana')], - protocol: config.get('servers.elasticsearch').protocol, - caPath: getRelativeCertificateAuthorityPath(config.get('kbnTestServer.serverArgs')), - }); - } - - return cluster; -} - -function getRelativeCertificateAuthorityPath(esConfig = []) { - const caConfig = esConfig.find( - (config) => config.indexOf('--elasticsearch.ssl.certificateAuthorities') === 0 - ); - return caConfig ? caConfig.split('=')[1] : undefined; -} diff --git a/packages/kbn-test/src/functional_tests/cli/index.js b/packages/osd-test/src/functional_tests/cli/index.js similarity index 100% rename from packages/kbn-test/src/functional_tests/cli/index.js rename to packages/osd-test/src/functional_tests/cli/index.js diff --git a/packages/kbn-test/src/functional_tests/cli/run_tests/__snapshots__/args.test.js.snap b/packages/osd-test/src/functional_tests/cli/run_tests/__snapshots__/args.test.js.snap similarity index 100% rename from packages/kbn-test/src/functional_tests/cli/run_tests/__snapshots__/args.test.js.snap rename to packages/osd-test/src/functional_tests/cli/run_tests/__snapshots__/args.test.js.snap diff --git a/packages/kbn-test/src/functional_tests/cli/run_tests/__snapshots__/cli.test.js.snap b/packages/osd-test/src/functional_tests/cli/run_tests/__snapshots__/cli.test.js.snap similarity index 100% rename from packages/kbn-test/src/functional_tests/cli/run_tests/__snapshots__/cli.test.js.snap rename to packages/osd-test/src/functional_tests/cli/run_tests/__snapshots__/cli.test.js.snap diff --git a/packages/kbn-test/src/functional_tests/cli/run_tests/args.js b/packages/osd-test/src/functional_tests/cli/run_tests/args.js similarity index 87% rename from packages/kbn-test/src/functional_tests/cli/run_tests/args.js rename to packages/osd-test/src/functional_tests/cli/run_tests/args.js index 94d510915d8e..270dff5afd78 100644 --- a/packages/kbn-test/src/functional_tests/cli/run_tests/args.js +++ b/packages/osd-test/src/functional_tests/cli/run_tests/args.js @@ -20,7 +20,7 @@ import { resolve } from 'path'; import dedent from 'dedent'; -import { ToolingLog, pickLevelFromFlags } from '@kbn/dev-utils'; +import { ToolingLog, pickLevelFromFlags } from '@osd/dev-utils'; const options = { help: { desc: 'Display this menu and exit.' }, @@ -28,15 +28,15 @@ const options = { arg: '', desc: 'Pass in a config. Can pass in multiple configs.', }, - esFrom: { + opensearchFrom: { arg: '', choices: ['snapshot', 'source'], - desc: 'Build Elasticsearch from source or run from snapshot.', - defaultHelp: 'Default: $TEST_ES_FROM or snapshot', + desc: 'Build OpenSearch from source or run from snapshot.', + defaultHelp: 'Default: $TEST_OPENSEARCH_FROM or snapshot', }, - 'kibana-install-dir': { + 'opensearch-dashboards-install-dir': { arg: '', - desc: 'Run Kibana from existing install directory instead of from source.', + desc: 'Run Opensearch Dashboards from existing install directory instead of from source.', }, bail: { desc: 'Stop the test run at the first failure.' }, grep: { @@ -114,13 +114,13 @@ export function processOptions(userOptions, defaultConfigPaths) { } } - if (!userOptions.esFrom) { - userOptions.esFrom = process.env.TEST_ES_FROM || 'snapshot'; + if (!userOptions.opensearchFrom) { + userOptions.opensearchFrom = process.env.TEST_OPENSEARCH_FROM || 'snapshot'; } - if (userOptions['kibana-install-dir']) { - userOptions.installDir = userOptions['kibana-install-dir']; - delete userOptions['kibana-install-dir']; + if (userOptions['opensearch-dashboards-install-dir']) { + userOptions.installDir = userOptions['opensearch-dashboards-install-dir']; + delete userOptions['opensearch-dashboards-install-dir']; } userOptions.suiteFiles = { @@ -151,7 +151,7 @@ export function processOptions(userOptions, defaultConfigPaths) { ...userOptions, configs: configs.map((c) => resolve(c)), createLogger, - extraKbnOpts: userOptions._, + extraOsdOpts: userOptions._, }; } diff --git a/packages/kbn-test/src/functional_tests/cli/run_tests/args.test.js b/packages/osd-test/src/functional_tests/cli/run_tests/args.test.js similarity index 75% rename from packages/kbn-test/src/functional_tests/cli/run_tests/args.test.js rename to packages/osd-test/src/functional_tests/cli/run_tests/args.test.js index 35e4cef5b3a6..6b27dcfc3560 100644 --- a/packages/kbn-test/src/functional_tests/cli/run_tests/args.test.js +++ b/packages/osd-test/src/functional_tests/cli/run_tests/args.test.js @@ -18,16 +18,16 @@ */ import { displayHelp, processOptions } from './args'; -import { createAbsolutePathSerializer } from '@kbn/dev-utils'; +import { createAbsolutePathSerializer } from '@osd/dev-utils'; expect.addSnapshotSerializer(createAbsolutePathSerializer(process.cwd())); -const INITIAL_TEST_ES_FROM = process.env.TEST_ES_FROM; +const INITIAL_TEST_OPENSEARCH_FROM = process.env.TEST_OPENSEARCH_FROM; beforeEach(() => { - process.env.TEST_ES_FROM = 'snapshot'; + process.env.TEST_OPENSEARCH_FROM = 'snapshot'; }); afterEach(() => { - process.env.TEST_ES_FROM = INITIAL_TEST_ES_FROM; + process.env.TEST_OPENSEARCH_FROM = INITIAL_TEST_OPENSEARCH_FROM; }); describe('display help for run tests CLI', () => { @@ -60,15 +60,15 @@ describe('process options for run tests CLI', () => { }).toThrow('functional_tests: invalid argument [peanut] to option [bail]'); }); - it('accepts string value for kibana-install-dir', () => { - const options = processOptions({ 'kibana-install-dir': 'foo' }, ['foo']); + it('accepts string value for opensearch-dashboards-install-dir', () => { + const options = processOptions({ 'opensearch-dashboards-install-dir': 'foo' }, ['foo']); expect(options).toMatchSnapshot(); }); - it('rejects boolean value for kibana-install-dir', () => { + it('rejects boolean value for opensearch-dashboards-install-dir', () => { expect(() => { - processOptions({ 'kibana-install-dir': true }, ['foo']); - }).toThrow('functional_tests: invalid argument [true] to option [kibana-install-dir]'); + processOptions({ 'opensearch-dashboards-install-dir': true }, ['foo']); + }).toThrow('functional_tests: invalid argument [true] to option [opensearch-dashboards-install-dir]'); }); it('accepts boolean value for updateBaselines', () => { @@ -76,27 +76,27 @@ describe('process options for run tests CLI', () => { expect(options).toMatchSnapshot(); }); - it('accepts source value for esFrom', () => { - const options = processOptions({ esFrom: 'source' }, ['foo']); + it('accepts source value for opensearchFrom', () => { + const options = processOptions({ opensearchFrom: 'source' }, ['foo']); expect(options).toMatchSnapshot(); }); - it('accepts source value for $TEST_ES_FROM', () => { - process.env.TEST_ES_FROM = 'source'; + it('accepts source value for $TEST_OPENSEARCH_FROM', () => { + process.env.TEST_OPENSEARCH_FROM = 'source'; const options = processOptions({}, ['foo']); expect(options).toMatchSnapshot(); }); - it('prioritizes source flag over $TEST_ES_FROM', () => { - process.env.TEST_ES_FROM = 'source'; - const options = processOptions({ esFrom: 'snapshot' }, ['foo']); + it('prioritizes source flag over $TEST_OPENSEARCH_FROM', () => { + process.env.TEST_OPENSEARCH_FROM = 'source'; + const options = processOptions({ opensearchFrom: 'snapshot' }, ['foo']); expect(options).toMatchSnapshot(); }); - it('rejects non-enum value for esFrom', () => { + it('rejects non-enum value for opensearchFrom', () => { expect(() => { - processOptions({ esFrom: 'butter' }, ['foo']); - }).toThrow('functional_tests: invalid argument [butter] to option [esFrom]'); + processOptions({ opensearchFrom: 'butter' }, ['foo']); + }).toThrow('functional_tests: invalid argument [butter] to option [opensearchFrom]'); }); it('accepts value for grep', () => { diff --git a/packages/kbn-test/src/functional_tests/cli/run_tests/cli.js b/packages/osd-test/src/functional_tests/cli/run_tests/cli.js similarity index 100% rename from packages/kbn-test/src/functional_tests/cli/run_tests/cli.js rename to packages/osd-test/src/functional_tests/cli/run_tests/cli.js diff --git a/packages/kbn-test/src/functional_tests/cli/run_tests/cli.test.js b/packages/osd-test/src/functional_tests/cli/run_tests/cli.test.js similarity index 88% rename from packages/kbn-test/src/functional_tests/cli/run_tests/cli.test.js rename to packages/osd-test/src/functional_tests/cli/run_tests/cli.test.js index 97b74a3b2b54..4606ba48316e 100644 --- a/packages/kbn-test/src/functional_tests/cli/run_tests/cli.test.js +++ b/packages/osd-test/src/functional_tests/cli/run_tests/cli.test.js @@ -42,7 +42,7 @@ describe('run tests CLI', () => { cwd: jest.fn(), env: { ...originalObjects.process.env, - TEST_ES_FROM: 'snapshot', + TEST_OPENSEARCH_FROM: 'snapshot', }, }; @@ -60,7 +60,7 @@ describe('run tests CLI', () => { global.process.argv = [...argvMock]; global.process.env = { ...originalObjects.process.env, - TEST_ES_FROM: 'snapshot', + TEST_OPENSEARCH_FROM: 'snapshot', }; jest.resetAllMocks(); }); @@ -100,16 +100,16 @@ describe('run tests CLI', () => { checkMockConsoleLogSnapshot(logMock); }); - it('accepts string value for kibana-install-dir', async () => { - global.process.argv.push('--kibana-install-dir', 'foo'); + it('accepts string value for opensearch-dashboards-install-dir', async () => { + global.process.argv.push('--opensearch-dashboards-install-dir', 'foo'); await runTestsCli(['foo']); expect(exitMock).not.toHaveBeenCalled(); }); - it('rejects boolean value for kibana-install-dir', async () => { - global.process.argv.push('--kibana-install-dir'); + it('rejects boolean value for opensearch-dashboards-install-dir', async () => { + global.process.argv.push('--opensearch-dashboards-install-dir'); await runTestsCli(['foo']); @@ -125,16 +125,16 @@ describe('run tests CLI', () => { expect(exitMock).not.toHaveBeenCalledWith(); }); - it('accepts source value for esFrom', async () => { - global.process.argv.push('--esFrom', 'source'); + it('accepts source value for opensearchFrom', async () => { + global.process.argv.push('--opensearchFrom', 'source'); await runTestsCli(['foo']); expect(exitMock).not.toHaveBeenCalled(); }); - it('rejects non-enum value for esFrom', async () => { - global.process.argv.push('--esFrom', 'butter'); + it('rejects non-enum value for opensearchFrom', async () => { + global.process.argv.push('--opensearchFrom', 'butter'); await runTestsCli(['foo']); diff --git a/packages/kbn-test/src/functional_tests/cli/start_servers/__snapshots__/args.test.js.snap b/packages/osd-test/src/functional_tests/cli/start_servers/__snapshots__/args.test.js.snap similarity index 100% rename from packages/kbn-test/src/functional_tests/cli/start_servers/__snapshots__/args.test.js.snap rename to packages/osd-test/src/functional_tests/cli/start_servers/__snapshots__/args.test.js.snap diff --git a/packages/kbn-test/src/functional_tests/cli/start_servers/__snapshots__/cli.test.js.snap b/packages/osd-test/src/functional_tests/cli/start_servers/__snapshots__/cli.test.js.snap similarity index 100% rename from packages/kbn-test/src/functional_tests/cli/start_servers/__snapshots__/cli.test.js.snap rename to packages/osd-test/src/functional_tests/cli/start_servers/__snapshots__/cli.test.js.snap diff --git a/packages/kbn-test/src/functional_tests/cli/start_servers/args.js b/packages/osd-test/src/functional_tests/cli/start_servers/args.js similarity index 81% rename from packages/kbn-test/src/functional_tests/cli/start_servers/args.js rename to packages/osd-test/src/functional_tests/cli/start_servers/args.js index e604e86de8b3..f5a8d6fe2bb8 100644 --- a/packages/kbn-test/src/functional_tests/cli/start_servers/args.js +++ b/packages/osd-test/src/functional_tests/cli/start_servers/args.js @@ -20,7 +20,7 @@ import { resolve } from 'path'; import dedent from 'dedent'; -import { ToolingLog, pickLevelFromFlags } from '@kbn/dev-utils'; +import { ToolingLog, pickLevelFromFlags } from '@osd/dev-utils'; const options = { help: { desc: 'Display this menu and exit.' }, @@ -28,14 +28,14 @@ const options = { arg: '', desc: 'Pass in a config', }, - esFrom: { + opensearchFrom: { arg: '', - desc: 'Build Elasticsearch from source, snapshot or path to existing install dir.', - defaultHelp: 'Default: $TEST_ES_FROM or snapshot', + desc: 'Build OpenSearch from source, snapshot or path to existing install dir.', + defaultHelp: 'Default: $TEST_OPENSEARCH_FROM or snapshot', }, - 'kibana-install-dir': { + 'opensearch-dashboards-install-dir': { arg: '', - desc: 'Run Kibana from existing install directory instead of from source.', + desc: 'Run Opensearch Dashboards from existing install directory instead of from source.', }, verbose: { desc: 'Log everything.' }, debug: { desc: 'Run in debug mode.' }, @@ -81,13 +81,13 @@ export function processOptions(userOptions, defaultConfigPath) { throw new Error(`functional_tests_server: config is required`); } - if (!userOptions.esFrom) { - userOptions.esFrom = process.env.TEST_ES_FROM || 'snapshot'; + if (!userOptions.opensearchFrom) { + userOptions.opensearchFrom = process.env.TEST_OPENSEARCH_FROM || 'snapshot'; } - if (userOptions['kibana-install-dir']) { - userOptions.installDir = userOptions['kibana-install-dir']; - delete userOptions['kibana-install-dir']; + if (userOptions['opensearch-dashboards-install-dir']) { + userOptions.installDir = userOptions['opensearch-dashboards-install-dir']; + delete userOptions['opensearch-dashboards-install-dir']; } function createLogger() { @@ -101,7 +101,7 @@ export function processOptions(userOptions, defaultConfigPath) { ...userOptions, config: resolve(config), createLogger, - extraKbnOpts: userOptions._, + extraOsdOpts: userOptions._, }; } diff --git a/packages/kbn-test/src/functional_tests/cli/start_servers/args.test.js b/packages/osd-test/src/functional_tests/cli/start_servers/args.test.js similarity index 75% rename from packages/kbn-test/src/functional_tests/cli/start_servers/args.test.js rename to packages/osd-test/src/functional_tests/cli/start_servers/args.test.js index 0c842c8c7df4..d257f9572c32 100644 --- a/packages/kbn-test/src/functional_tests/cli/start_servers/args.test.js +++ b/packages/osd-test/src/functional_tests/cli/start_servers/args.test.js @@ -18,16 +18,16 @@ */ import { displayHelp, processOptions } from './args'; -import { createAbsolutePathSerializer } from '@kbn/dev-utils'; +import { createAbsolutePathSerializer } from '@osd/dev-utils'; expect.addSnapshotSerializer(createAbsolutePathSerializer(process.cwd())); -const INITIAL_TEST_ES_FROM = process.env.TEST_ES_FROM; +const INITIAL_TEST_OPENSEARCH_FROM = process.env.TEST_OPENSEARCH_FROM; beforeEach(() => { - process.env.TEST_ES_FROM = 'snapshot'; + process.env.TEST_OPENSEARCH_FROM = 'snapshot'; }); afterEach(() => { - process.env.TEST_ES_FROM = INITIAL_TEST_ES_FROM; + process.env.TEST_OPENSEARCH_FROM = INITIAL_TEST_OPENSEARCH_FROM; }); describe('display help for start servers CLI', () => { @@ -60,31 +60,31 @@ describe('process options for start servers CLI', () => { }).toThrow('functional_tests_server: invalid option [bail]'); }); - it('accepts string value for kibana-install-dir', () => { - const options = processOptions({ 'kibana-install-dir': 'foo' }, 'foo'); + it('accepts string value for opensearch-dashboards-install-dir', () => { + const options = processOptions({ 'opensearch-dashboards-install-dir': 'foo' }, 'foo'); expect(options).toMatchSnapshot(); }); - it('rejects boolean value for kibana-install-dir', () => { + it('rejects boolean value for opensearch-dashboards-install-dir', () => { expect(() => { - processOptions({ 'kibana-install-dir': true }, 'foo'); - }).toThrow('functional_tests_server: invalid argument [true] to option [kibana-install-dir]'); + processOptions({ 'opensearch-dashboards-install-dir': true }, 'foo'); + }).toThrow('functional_tests_server: invalid argument [true] to option [opensearch-dashboards-install-dir]'); }); - it('accepts source value for esFrom', () => { - const options = processOptions({ esFrom: 'source' }, 'foo'); + it('accepts source value for opensearchFrom', () => { + const options = processOptions({ opensearchFrom: 'source' }, 'foo'); expect(options).toMatchSnapshot(); }); - it('accepts source value for $TEST_ES_FROM', () => { - process.env.TEST_ES_FROM = 'source'; + it('accepts source value for $TEST_OPENSEARCH_FROM', () => { + process.env.TEST_OPENSEARCH_FROM = 'source'; const options = processOptions({}, 'foo'); expect(options).toMatchSnapshot(); }); - it('prioritizes source flag over $TEST_ES_FROM', () => { - process.env.TEST_ES_FROM = 'source'; - const options = processOptions({ esFrom: 'snapshot' }, 'foo'); + it('prioritizes source flag over $TEST_OPENSEARCH_FROM', () => { + process.env.TEST_OPENSEARCH_FROM = 'source'; + const options = processOptions({ opensearchFrom: 'snapshot' }, 'foo'); expect(options).toMatchSnapshot(); }); diff --git a/packages/kbn-test/src/functional_tests/cli/start_servers/cli.js b/packages/osd-test/src/functional_tests/cli/start_servers/cli.js similarity index 100% rename from packages/kbn-test/src/functional_tests/cli/start_servers/cli.js rename to packages/osd-test/src/functional_tests/cli/start_servers/cli.js diff --git a/packages/kbn-test/src/functional_tests/cli/start_servers/cli.test.js b/packages/osd-test/src/functional_tests/cli/start_servers/cli.test.js similarity index 90% rename from packages/kbn-test/src/functional_tests/cli/start_servers/cli.test.js rename to packages/osd-test/src/functional_tests/cli/start_servers/cli.test.js index 3ceecb280662..6331c6de2031 100644 --- a/packages/kbn-test/src/functional_tests/cli/start_servers/cli.test.js +++ b/packages/osd-test/src/functional_tests/cli/start_servers/cli.test.js @@ -42,7 +42,7 @@ describe('start servers CLI', () => { cwd: jest.fn(), env: { ...originalObjects.process.env, - TEST_ES_FROM: 'snapshot', + TEST_OPENSEARCH_FROM: 'snapshot', }, }; @@ -60,7 +60,7 @@ describe('start servers CLI', () => { global.process.argv = [...argvMock]; global.process.env = { ...originalObjects.process.env, - TEST_ES_FROM: 'snapshot', + TEST_OPENSEARCH_FROM: 'snapshot', }; jest.resetAllMocks(); }); @@ -100,16 +100,16 @@ describe('start servers CLI', () => { checkMockConsoleLogSnapshot(logMock); }); - it('accepts string value for kibana-install-dir', async () => { - global.process.argv.push('--kibana-install-dir', 'foo'); + it('accepts string value for opensearch-dashboards-install-dir', async () => { + global.process.argv.push('--opensearch-dashboards-install-dir', 'foo'); await startServersCli('foo'); expect(exitMock).not.toHaveBeenCalled(); }); - it('rejects boolean value for kibana-install-dir', async () => { - global.process.argv.push('--kibana-install-dir'); + it('rejects boolean value for opensearch-dashboards-install-dir', async () => { + global.process.argv.push('--opensearch-dashboards-install-dir'); await startServersCli('foo'); @@ -126,8 +126,8 @@ describe('start servers CLI', () => { checkMockConsoleLogSnapshot(logMock); }); - it('accepts source value for esFrom', async () => { - global.process.argv.push('--esFrom', 'source'); + it('accepts source value for opensearchFrom', async () => { + global.process.argv.push('--opensearchFrom', 'source'); await startServersCli('foo'); diff --git a/packages/kbn-test/src/functional_tests/lib/__snapshots__/run_cli.test.js.snap b/packages/osd-test/src/functional_tests/lib/__snapshots__/run_cli.test.js.snap similarity index 100% rename from packages/kbn-test/src/functional_tests/lib/__snapshots__/run_cli.test.js.snap rename to packages/osd-test/src/functional_tests/lib/__snapshots__/run_cli.test.js.snap diff --git a/packages/kbn-test/src/functional_tests/lib/auth.js b/packages/osd-test/src/functional_tests/lib/auth.js similarity index 86% rename from packages/kbn-test/src/functional_tests/lib/auth.js rename to packages/osd-test/src/functional_tests/lib/auth.js index 358b16c562b1..bef24a340774 100644 --- a/packages/kbn-test/src/functional_tests/lib/auth.js +++ b/packages/osd-test/src/functional_tests/lib/auth.js @@ -82,26 +82,26 @@ async function updateCredentials({ throw new Error(`${statusCode} response, expected 200 -- ${JSON.stringify(body)}`); } -export async function setupUsers({ log, esPort, updates, protocol = 'http', caPath }) { - // track the current credentials for the `elastic` user as +export async function setupUsers({ log, opensearchPort, updates, protocol = 'http', caPath }) { + // track the current credentials for the `opensearch` user as // they will likely change as we apply updates - let auth = `elastic:${DEFAULT_SUPERUSER_PASS}`; + let auth = `opensearch:${DEFAULT_SUPERUSER_PASS}`; const caCert = caPath && (await readFile(caPath)); for (const { username, password, roles } of updates) { // If working with a built-in user, just change the password - if (['logstash_system', 'elastic', 'kibana'].includes(username)) { - await updateCredentials({ port: esPort, auth, username, password, protocol, caCert }); + if (['logstash_system', 'opensearch', 'opensearchDashboards'].includes(username)) { + await updateCredentials({ port: opensearchPort, auth, username, password, protocol, caCert }); log.info('setting %j user password to %j', username, password); // If not a builtin user, add them } else { - await insertUser({ port: esPort, auth, username, password, roles, protocol, caCert }); + await insertUser({ port: opensearchPort, auth, username, password, roles, protocol, caCert }); log.info('Added %j user with password to %j', username, password); } - if (username === 'elastic') { - auth = `elastic:${password}`; + if (username === 'opensearch') { + auth = `opensearch:${password}`; } } } diff --git a/packages/kbn-test/src/functional_tests/lib/babel_register_for_test_plugins.js b/packages/osd-test/src/functional_tests/lib/babel_register_for_test_plugins.js similarity index 92% rename from packages/kbn-test/src/functional_tests/lib/babel_register_for_test_plugins.js rename to packages/osd-test/src/functional_tests/lib/babel_register_for_test_plugins.js index 44ff579411bd..a66cdeba492b 100644 --- a/packages/kbn-test/src/functional_tests/lib/babel_register_for_test_plugins.js +++ b/packages/osd-test/src/functional_tests/lib/babel_register_for_test_plugins.js @@ -19,7 +19,7 @@ const Path = require('path'); -const { REPO_ROOT } = require('@kbn/dev-utils'); +const { REPO_ROOT } = require('@osd/dev-utils'); // modifies all future calls to require() to automatically // compile the required source with babel @@ -34,6 +34,6 @@ require('@babel/register')({ Path.resolve(REPO_ROOT, 'x-pack/plugins/task_manager/server/config.ts'), ], babelrc: false, - presets: [require.resolve('@kbn/babel-preset/node_preset')], + presets: [require.resolve('@osd/babel-preset/node_preset')], extensions: ['.js', '.ts', '.tsx'], }); diff --git a/packages/kbn-test/src/functional_tests/lib/index.js b/packages/osd-test/src/functional_tests/lib/index.js similarity index 77% rename from packages/kbn-test/src/functional_tests/lib/index.js rename to packages/osd-test/src/functional_tests/lib/index.js index ec381b56b069..096034f31a13 100644 --- a/packages/kbn-test/src/functional_tests/lib/index.js +++ b/packages/osd-test/src/functional_tests/lib/index.js @@ -17,8 +17,8 @@ * under the License. */ -export { runKibanaServer } from './run_kibana_server'; -export { runElasticsearch } from './run_elasticsearch'; +export { runOpenSearchDashboardsServer } from './run_opensearch_dashboards_server'; +export { runOpenSearch } from './run_opensearch'; export { runFtr, hasTests, assertNoneExcluded } from './run_ftr'; -export { KIBANA_ROOT, KIBANA_FTR_SCRIPT, FUNCTIONAL_CONFIG_PATH, API_CONFIG_PATH } from './paths'; +export { OPENSEARCH_DASHBOARDS_ROOT, OPENSEARCH_DASHBOARDS_FTR_SCRIPT, FUNCTIONAL_CONFIG_PATH, API_CONFIG_PATH } from './paths'; export { runCli } from './run_cli'; diff --git a/packages/kbn-test/src/functional_tests/lib/paths.js b/packages/osd-test/src/functional_tests/lib/paths.js similarity index 67% rename from packages/kbn-test/src/functional_tests/lib/paths.js rename to packages/osd-test/src/functional_tests/lib/paths.js index 9ede5a105b08..a83dc635bcde 100644 --- a/packages/kbn-test/src/functional_tests/lib/paths.js +++ b/packages/osd-test/src/functional_tests/lib/paths.js @@ -25,10 +25,10 @@ function resolveRelative(path) { return relative(process.cwd(), resolve(path)); } -export const KIBANA_EXEC = 'node'; -export const KIBANA_EXEC_PATH = resolveRelative('scripts/kibana'); -export const KIBANA_ROOT = resolve(__dirname, '../../../../../'); -export const KIBANA_FTR_SCRIPT = resolve(KIBANA_ROOT, 'scripts/functional_test_runner'); +export const OPENSEARCH_DASHBOARDS_EXEC = 'node'; +export const OPENSEARCH_DASHBOARDS_EXEC_PATH = resolveRelative('scripts/opensearch_dashboards'); +export const OPENSEARCH_DASHBOARDS_ROOT = resolve(__dirname, '../../../../../'); +export const OPENSEARCH_DASHBOARDS_FTR_SCRIPT = resolve(OPENSEARCH_DASHBOARDS_ROOT, 'scripts/functional_test_runner'); export const PROJECT_ROOT = resolve(__dirname, '../../../../../../'); -export const FUNCTIONAL_CONFIG_PATH = resolve(KIBANA_ROOT, 'test/functional/config'); -export const API_CONFIG_PATH = resolve(KIBANA_ROOT, 'test/api_integration/config'); +export const FUNCTIONAL_CONFIG_PATH = resolve(OPENSEARCH_DASHBOARDS_ROOT, 'test/functional/config'); +export const API_CONFIG_PATH = resolve(OPENSEARCH_DASHBOARDS_ROOT, 'test/api_integration/config'); diff --git a/packages/kbn-test/src/functional_tests/lib/run_cli.js b/packages/osd-test/src/functional_tests/lib/run_cli.js similarity index 100% rename from packages/kbn-test/src/functional_tests/lib/run_cli.js rename to packages/osd-test/src/functional_tests/lib/run_cli.js diff --git a/packages/kbn-test/src/functional_tests/lib/run_cli.test.js b/packages/osd-test/src/functional_tests/lib/run_cli.test.js similarity index 100% rename from packages/kbn-test/src/functional_tests/lib/run_cli.test.js rename to packages/osd-test/src/functional_tests/lib/run_cli.test.js diff --git a/packages/kbn-test/src/functional_tests/lib/run_ftr.js b/packages/osd-test/src/functional_tests/lib/run_ftr.js similarity index 99% rename from packages/kbn-test/src/functional_tests/lib/run_ftr.js rename to packages/osd-test/src/functional_tests/lib/run_ftr.js index 14883ac977c4..bf49b78ed717 100644 --- a/packages/kbn-test/src/functional_tests/lib/run_ftr.js +++ b/packages/osd-test/src/functional_tests/lib/run_ftr.js @@ -33,7 +33,7 @@ async function createFtr({ bail: !!bail, grep, }, - kbnTestServer: { + osdTestServer: { installDir, }, updateBaselines, diff --git a/packages/osd-test/src/functional_tests/lib/run_opensearch.js b/packages/osd-test/src/functional_tests/lib/run_opensearch.js new file mode 100644 index 000000000000..77239e64222d --- /dev/null +++ b/packages/osd-test/src/functional_tests/lib/run_opensearch.js @@ -0,0 +1,69 @@ +/* + * Licensed to opensearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. opensearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import { resolve } from 'path'; +import { OPENSEARCH_DASHBOARDS_ROOT } from './paths'; +import { createLegacyOpenSearchTestCluster } from '../../legacy_opensearch'; + +import { setupUsers, DEFAULT_SUPERUSER_PASS } from './auth'; + +export async function runOpenSearch({ config, options }) { + const { log, opensearchFrom } = options; + const ssl = config.get('opensearchTestCluster.ssl'); + const license = config.get('opensearchTestCluster.license'); + const opensearchArgs = config.get('opensearchTestCluster.serverArgs'); + const opensearchEnvVars = config.get('opensearchTestCluster.serverEnvVars'); + const isSecurityEnabled = opensearchArgs.includes('xpack.security.enabled=true'); + + const cluster = createLegacyOpenSearchTestCluster({ + port: config.get('servers.opensearch.port'), + password: isSecurityEnabled + ? DEFAULT_SUPERUSER_PASS + : config.get('servers.opensearch.password'), + license, + log, + basePath: resolve(OPENSEARCH_DASHBOARDS_ROOT, '.opensearch'), + opensearchFrom: opensearchFrom || config.get('opensearchTestCluster.from'), + dataArchive: config.get('opensearchTestCluster.dataArchive'), + opensearchArgs, + opensearchEnvVars, + ssl, + }); + + await cluster.start(); + + if (isSecurityEnabled) { + await setupUsers({ + log, + opensearchPort: config.get('servers.opensearch.port'), + updates: [config.get('servers.opensearch'), config.get('servers.opensearchDashboards')], + protocol: config.get('servers.opensearch').protocol, + caPath: getRelativeCertificateAuthorityPath(config.get('osdTestServer.serverArgs')), + }); + } + + return cluster; +} + +function getRelativeCertificateAuthorityPath(opensearchConfig = []) { + const caConfig = opensearchConfig.find( + (config) => config.indexOf('--opensearch.ssl.certificateAuthorities') === 0 + ); + return caConfig ? caConfig.split('=')[1] : undefined; +} diff --git a/packages/kbn-test/src/functional_tests/lib/run_kibana_server.js b/packages/osd-test/src/functional_tests/lib/run_opensearch_dashboards_server.js similarity index 73% rename from packages/kbn-test/src/functional_tests/lib/run_kibana_server.js rename to packages/osd-test/src/functional_tests/lib/run_opensearch_dashboards_server.js index e7ec99467ecf..c45709787769 100644 --- a/packages/kbn-test/src/functional_tests/lib/run_kibana_server.js +++ b/packages/osd-test/src/functional_tests/lib/run_opensearch_dashboards_server.js @@ -18,7 +18,7 @@ */ import { resolve, relative } from 'path'; -import { KIBANA_ROOT, KIBANA_EXEC, KIBANA_EXEC_PATH } from './paths'; +import { OPENSEARCH_DASHBOARDS_ROOT, OPENSEARCH_DASHBOARDS_EXEC, OPENSEARCH_DASHBOARDS_EXEC_PATH } from './paths'; function extendNodeOptions(installDir) { if (!installDir) { @@ -37,48 +37,48 @@ function extendNodeOptions(installDir) { }; } -export async function runKibanaServer({ procs, config, options }) { +export async function runOpenSearchDashboardsServer({ procs, config, options }) { const { installDir } = options; - await procs.run('kibana', { - cmd: getKibanaCmd(installDir), + await procs.run('opensearch-dashboards', { + cmd: getOpenSearchDashboardsCmd(installDir), args: filterCliArgs(collectCliArgs(config, options)), env: { FORCE_COLOR: 1, ...process.env, ...extendNodeOptions(installDir), }, - cwd: installDir || KIBANA_ROOT, + cwd: installDir || OPENSEARCH_DASHBOARDS_ROOT, wait: /http server running/, }); } -function getKibanaCmd(installDir) { +function getOpenSearchDashboardsCmd(installDir) { if (installDir) { return process.platform.startsWith('win') - ? resolve(installDir, 'bin/kibana.bat') - : resolve(installDir, 'bin/kibana'); + ? resolve(installDir, 'bin/opensearch_dashboards.bat') + : resolve(installDir, 'bin/opensearch_dashboards'); } - return KIBANA_EXEC; + return OPENSEARCH_DASHBOARDS_EXEC; } /** - * When installDir is passed, we run from a built version of Kibana, + * When installDir is passed, we run from a built version of Opensearch Dashboards, * which uses different command line arguments. If installDir is not * passed, we run from source code. We also allow passing in extra - * Kibana server options, so we tack those on here. + * Opensearch Dashboards server options, so we tack those on here. */ -function collectCliArgs(config, { installDir, extraKbnOpts }) { - const buildArgs = config.get('kbnTestServer.buildArgs') || []; - const sourceArgs = config.get('kbnTestServer.sourceArgs') || []; - const serverArgs = config.get('kbnTestServer.serverArgs') || []; +function collectCliArgs(config, { installDir, extraOsdOpts }) { + const buildArgs = config.get('osdTestServer.buildArgs') || []; + const sourceArgs = config.get('osdTestServer.sourceArgs') || []; + const serverArgs = config.get('osdTestServer.serverArgs') || []; return pipe( serverArgs, (args) => (installDir ? args.filter((a) => a !== '--oss') : args), - (args) => (installDir ? [...buildArgs, ...args] : [KIBANA_EXEC_PATH, ...sourceArgs, ...args]), - (args) => args.concat(extraKbnOpts || []) + (args) => (installDir ? [...buildArgs, ...args] : [OPENSEARCH_DASHBOARDS_EXEC_PATH, ...sourceArgs, ...args]), + (args) => args.concat(extraOsdOpts || []) ); } @@ -119,7 +119,7 @@ function pipe(arr, ...fns) { /** * Checks whether a specific parameter is allowed to appear multiple - * times in the Kibana parameters. + * times in the Opensearch Dashboards parameters. */ function allowsDuplicate(val) { return ['--plugin-path'].includes(val.split('=')[0]); diff --git a/packages/kbn-test/src/functional_tests/tasks.js b/packages/osd-test/src/functional_tests/tasks.js similarity index 73% rename from packages/kbn-test/src/functional_tests/tasks.js rename to packages/osd-test/src/functional_tests/tasks.js index 7d4fc84d47bd..7e42d8b3499c 100644 --- a/packages/kbn-test/src/functional_tests/tasks.js +++ b/packages/osd-test/src/functional_tests/tasks.js @@ -20,30 +20,30 @@ import { relative } from 'path'; import * as Rx from 'rxjs'; import { startWith, switchMap, take } from 'rxjs/operators'; -import { withProcRunner } from '@kbn/dev-utils'; +import { withProcRunner } from '@osd/dev-utils'; import dedent from 'dedent'; import { - runElasticsearch, - runKibanaServer, + runOpenSearch, + runOpenSearchDashboardsServer, runFtr, assertNoneExcluded, hasTests, - KIBANA_FTR_SCRIPT, + OPENSEARCH_DASHBOARDS_FTR_SCRIPT, } from './lib'; import { readConfigFile } from '../functional_test_runner/lib'; const makeSuccessMessage = (options) => { - const installDirFlag = options.installDir ? ` --kibana-install-dir=${options.installDir}` : ''; + const installDirFlag = options.installDir ? ` --opensearch-dashboards-install-dir=${options.installDir}` : ''; return ( '\n\n' + dedent` - Elasticsearch and Kibana are ready for functional testing. Start the functional tests + OpenSearch and Opensearch Dashboards are ready for functional testing. Start the functional tests in another terminal session by running this command from this directory: - node ${relative(process.cwd(), KIBANA_FTR_SCRIPT)}${installDirFlag} + node ${relative(process.cwd(), OPENSEARCH_DASHBOARDS_FTR_SCRIPT)}${installDirFlag} ` + '\n\n' ); @@ -54,18 +54,18 @@ const makeSuccessMessage = (options) => { * @param {object} options Optional * @property {string[]} options.configs Array of paths to configs * @property {function} options.log An instance of the ToolingLog - * @property {string} options.installDir Optional installation dir from which to run Kibana + * @property {string} options.installDir Optional installation dir from which to run Opensearch Dashboards * @property {boolean} options.bail Whether to exit test run at the first failure - * @property {string} options.esFrom Optionally run from source instead of snapshot + * @property {string} options.opensearchFrom Optionally run from source instead of snapshot */ export async function runTests(options) { - if (!process.env.KBN_NP_PLUGINS_BUILT) { + if (!process.env.OSD_NP_PLUGINS_BUILT) { const log = options.createLogger(); log.warning('❗️❗️❗️'); log.warning('❗️❗️❗️'); log.warning('❗️❗️❗️'); log.warning( - " Don't forget to use `node scripts/build_kibana_platform_plugins` to build plugins you plan on testing" + " Don't forget to use `node scripts/build_opensearch_dashboards_platform_plugins` to build plugins you plan on testing" ); log.warning('❗️❗️❗️'); log.warning('❗️❗️❗️'); @@ -95,17 +95,17 @@ export async function runTests(options) { await withProcRunner(log, async (procs) => { const config = await readConfigFile(log, configPath); - let es; + let opensearch; try { - es = await runElasticsearch({ config, options: opts }); - await runKibanaServer({ procs, config, options: opts }); + opensearch = await runOpenSearch({ config, options: opts }); + await runOpenSearchDashboardsServer({ procs, config, options: opts }); await runFtr({ configPath, options: opts }); } finally { try { - await procs.stop('kibana'); + await procs.stop('opensearch-dashboards'); } finally { - if (es) { - await es.cleanup(); + if (opensearch) { + await opensearch.cleanup(); } } } @@ -118,8 +118,8 @@ export async function runTests(options) { * @param {object} options Optional * @property {string} options.config Path to a config file * @property {function} options.log An instance of the ToolingLog - * @property {string} options.installDir Optional installation dir from which to run Kibana - * @property {string} options.esFrom Optionally run from source instead of snapshot + * @property {string} options.installDir Optional installation dir from which to run Opensearch Dashboards + * @property {string} options.opensearchFrom Optionally run from source instead of snapshot */ export async function startServers(options) { const log = options.createLogger(); @@ -131,14 +131,14 @@ export async function startServers(options) { await withProcRunner(log, async (procs) => { const config = await readConfigFile(log, options.config); - const es = await runElasticsearch({ config, options: opts }); - await runKibanaServer({ + const opensearch = await runOpenSearch({ config, options: opts }); + await runOpenSearchDashboardsServer({ procs, config, options: { ...opts, - extraKbnOpts: [ - ...options.extraKbnOpts, + extraOsdOpts: [ + ...options.extraOsdOpts, ...(options.installDir ? [] : ['--dev', '--no-dev-config']), ], }, @@ -150,7 +150,7 @@ export async function startServers(options) { log.success(makeSuccessMessage(options)); await procs.waitForAllToStop(); - await es.cleanup(); + await opensearch.cleanup(); }); } diff --git a/packages/kbn-test/src/functional_tests/test_helpers.js b/packages/osd-test/src/functional_tests/test_helpers.js similarity index 100% rename from packages/kbn-test/src/functional_tests/test_helpers.js rename to packages/osd-test/src/functional_tests/test_helpers.js