From 05640a3258889801a47abaacd61de39d2a85b8f4 Mon Sep 17 00:00:00 2001
From: archana <archanid@users.noreply.github.com>
Date: Fri, 18 May 2018 14:09:38 -0500
Subject: [PATCH] Revert "Option to run kibana from build for CI" (#19224)

* Revert "[DOCS] Removes redundant index.asciidoc files (#19192)"

This reverts commit d11b5aae9a463426a83ca3b79892b7ddf3275246.

* Revert "[typescript] add typescript support for the server and browser (#19104)"

This reverts commit c6112067fcb53a3bd01c32362a1d701904a2e1f1.

* Revert "Option to run kibana from build for CI (#19125)"

This reverts commit 596986030348ec7705bc5fbb3d090297bf154899.
---
 .../src/functional_tests/cli/run_tests_cli.js | 10 ++----
 .../functional_tests/cli/start_servers_cli.js |  8 ++---
 .../functional_tests/lib/run_kibana_server.js | 32 ++++--------------
 .../kbn-test/src/functional_tests/tasks.js    | 31 +++++++----------
 .../lib/config/schema.js                      |  6 +---
 test/api_integration/config.js                | 15 ++++-----
 test/common/config.js                         | 33 ++++++++-----------
 test/functional/config.js                     | 11 +++----
 x-pack/test/api_integration/config.js         |  2 +-
 x-pack/test/functional/config.js              | 21 +++++-------
 x-pack/test/saml_api_integration/config.js    | 15 ++++-----
 11 files changed, 62 insertions(+), 122 deletions(-)

diff --git a/packages/kbn-test/src/functional_tests/cli/run_tests_cli.js b/packages/kbn-test/src/functional_tests/cli/run_tests_cli.js
index 2348ce7c9b6f8..e77b07a5a1b6c 100644
--- a/packages/kbn-test/src/functional_tests/cli/run_tests_cli.js
+++ b/packages/kbn-test/src/functional_tests/cli/run_tests_cli.js
@@ -12,9 +12,7 @@ import { runTests } from '../../';
  *                                       if no config option is passed
  */
 export async function runTestsCli(defaultConfigPaths) {
-  const { configs, help, bail, log, installDir } = processArgs(
-    defaultConfigPaths
-  );
+  const { configs, help, bail, log } = processArgs(defaultConfigPaths);
 
   if (help) return displayHelp();
 
@@ -26,7 +24,7 @@ export async function runTestsCli(defaultConfigPaths) {
   }
 
   try {
-    await runTests(configs, { bail, log, installDir });
+    await runTests(configs, { bail, log });
   } catch (err) {
     log.error('FATAL ERROR');
     log.error(err);
@@ -52,7 +50,6 @@ function processArgs(defaultConfigPaths) {
     log,
     help: options.help,
     bail: options.bail,
-    installDir: options['kibana-install-dir'],
     rest: options._,
   };
 }
@@ -67,9 +64,6 @@ function displayHelp() {
     --config      Option to pass in a config
                   Can pass in multiple configs with
                   --config file1 --config file2 --config file3
-    --kibana-install-dir
-                  Run Kibana from an existing install directory
-                  Default: run from source
     --bail        Stop the test run at the first failure
     --help        Display this menu and exit
 
diff --git a/packages/kbn-test/src/functional_tests/cli/start_servers_cli.js b/packages/kbn-test/src/functional_tests/cli/start_servers_cli.js
index 9927f3a5c217e..b1621a0958075 100644
--- a/packages/kbn-test/src/functional_tests/cli/start_servers_cli.js
+++ b/packages/kbn-test/src/functional_tests/cli/start_servers_cli.js
@@ -9,7 +9,7 @@ import { startServers } from '../../';
  * @param {string} configPath path to config
  */
 export async function startServersCli(defaultConfigPath) {
-  const { config, log, help, installDir } = processArgv(defaultConfigPath);
+  const { config, log, help } = processArgv(defaultConfigPath);
 
   if (help) return displayHelp();
 
@@ -21,7 +21,7 @@ export async function startServersCli(defaultConfigPath) {
   }
 
   try {
-    await startServers(config, { log, installDir });
+    await startServers(config, { log });
   } catch (err) {
     log.error('FATAL ERROR');
     log.error(err);
@@ -50,7 +50,6 @@ function processArgv(defaultConfigPath) {
   return {
     config,
     log,
-    installDir: options.kibanaInstallDir,
     help: options.help,
     rest: options._,
   };
@@ -64,9 +63,6 @@ function displayHelp() {
     Usage:  node scripts/functional_tests_server [options]
 
     --config      Option to pass in a config
-    --kibana-install-dir
-                  Run Kibana from an existing install directory
-                  Default: run from source
     --help        Display this menu and exit
 
     Log level options:
diff --git a/packages/kbn-test/src/functional_tests/lib/run_kibana_server.js b/packages/kbn-test/src/functional_tests/lib/run_kibana_server.js
index 5f79f88605938..5b747bf9d8be2 100644
--- a/packages/kbn-test/src/functional_tests/lib/run_kibana_server.js
+++ b/packages/kbn-test/src/functional_tests/lib/run_kibana_server.js
@@ -1,37 +1,17 @@
-import { resolve } from 'path';
 import { KIBANA_ROOT, KIBANA_EXEC, KIBANA_EXEC_PATH } from './paths';
 
-export async function runKibanaServer({ procs, config, options }) {
-  const { installDir } = options;
+export async function runKibanaServer({ procs, config }) {
+  const cliArgs = config.get('kibanaServerArgs') || [];
 
+  // start the kibana server and wait for it to log "Server running" before resolving
   await procs.run('kibana', {
-    cmd: getKibanaCmd(installDir),
-    args: getCliArgs(config, installDir),
+    cmd: KIBANA_EXEC,
+    args: [KIBANA_EXEC_PATH, ...cliArgs],
     env: {
       FORCE_COLOR: 1,
       ...process.env,
     },
-    cwd: installDir || KIBANA_ROOT,
+    cwd: KIBANA_ROOT,
     wait: /Server running/,
   });
 }
-
-function getKibanaCmd(installDir) {
-  if (installDir) {
-    return process.platform.startsWith('win')
-      ? resolve(installDir, 'bin/kibana.bat')
-      : resolve(installDir, 'bin/kibana');
-  }
-
-  return KIBANA_EXEC;
-}
-
-function getCliArgs(config, installDir) {
-  const buildArgs = config.get('kbnTestServer.buildArgs') || [];
-  const sourceArgs = config.get('kbnTestServer.sourceArgs') || [];
-  const serverArgs = config.get('kbnTestServer.serverArgs') || [];
-
-  return installDir
-    ? [...serverArgs, ...buildArgs]
-    : [KIBANA_EXEC_PATH, ...serverArgs, ...sourceArgs];
-}
diff --git a/packages/kbn-test/src/functional_tests/tasks.js b/packages/kbn-test/src/functional_tests/tasks.js
index 9ac7c835e500d..9d83734ee482d 100644
--- a/packages/kbn-test/src/functional_tests/tasks.js
+++ b/packages/kbn-test/src/functional_tests/tasks.js
@@ -22,36 +22,29 @@ in another terminal session by running this command from this directory:
 
 /**
  * Run servers and tests for each config
- * @param {string[]} configPaths         Array of paths to configs
- * @param {object}   options             Optional
- * @param {Log}      options.log         Optional logger
- * @param {string}   options.installDir  Optional installation dir
- *                                       from which to run Kibana
- * @param {boolean}  options.bail  Whether to exit test run at the first failure
+ * @param {string[]} configPaths   Array of paths to configs
+ * @param {boolean}  bail          Whether to exit test run at the first failure
+ * @param {Log}      log           Optional logger
  */
-export async function runTests(configPaths, options) {
+export async function runTests(configPaths, { bail, log }) {
   for (const configPath of configPaths) {
-    await runSingleConfig(resolve(process.cwd(), configPath), options);
+    await runSingleConfig(resolve(process.cwd(), configPath), { bail, log });
   }
 }
 
 /**
  * Start only servers using single config
- * @param {string}  configPath          Path to a config file
- * @param {object}  options             Optional
- * @param {Log}     options.log         Optional logger
- * @param {string}  options.installDir  Optional installation dir
- *                                      from which to run Kibana
+ * @param {string}  configPath   Path to a config file
+ * @param {Log}     log          Optional logger
  */
-export async function startServers(configPath, options) {
-  const { log } = options;
+export async function startServers(configPath, { log }) {
   configPath = resolve(process.cwd(), configPath);
 
   await withProcRunner(log, async procs => {
     const config = await readConfigFile(log, configPath);
 
     const es = await runElasticsearch({ config, log });
-    await runKibanaServer({ procs, config, options });
+    await runKibanaServer({ procs, config, log });
 
     // wait for 5 seconds of silence before logging the
     // success message so that it doesn't get buried
@@ -74,14 +67,12 @@ async function silence(milliseconds, { log }) {
 /*
  * Start servers and run tests for single config
  */
-async function runSingleConfig(configPath, options) {
-  const { bail, log } = options;
-
+async function runSingleConfig(configPath, { bail, log }) {
   await withProcRunner(log, async procs => {
     const config = await readConfigFile(log, configPath);
 
     const es = await runElasticsearch({ config, log });
-    await runKibanaServer({ procs, config, options });
+    await runKibanaServer({ procs, config });
 
     // Note: When solving how to incorporate functional_test_runner
     // clean this up
diff --git a/src/functional_test_runner/lib/config/schema.js b/src/functional_test_runner/lib/config/schema.js
index f204bd6a03653..52d84597b53b0 100644
--- a/src/functional_test_runner/lib/config/schema.js
+++ b/src/functional_test_runner/lib/config/schema.js
@@ -94,11 +94,7 @@ export const schema = Joi.object().keys({
     serverArgs: Joi.array(),
   }).default(),
 
-  kbnTestServer: Joi.object().keys({
-    buildArgs: Joi.array(),
-    sourceArgs: Joi.array(),
-    serverArgs: Joi.array(),
-  }).default(),
+  kibanaServerArgs: Joi.array(),
 
   // env allows generic data, but should be removed
   env: Joi.object().default(),
diff --git a/test/api_integration/config.js b/test/api_integration/config.js
index f0ae52539a164..80f480ea9c81e 100644
--- a/test/api_integration/config.js
+++ b/test/api_integration/config.js
@@ -26,14 +26,11 @@ export default async function ({ readConfigFile }) {
     },
     env: commonConfig.get('env'),
     esTestCluster: commonConfig.get('esTestCluster'),
-    kbnTestServer: {
-      ...functionalConfig.get('kbnTestServer'),
-      serverArgs: [
-        ...functionalConfig.get('kbnTestServer.serverArgs'),
-        '--optimize.enabled=false',
-        '--elasticsearch.healthCheck.delay=3600000',
-        '--server.xsrf.disableProtection=true',
-      ],
-    },
+    kibanaServerArgs: [
+      ...functionalConfig.get('kibanaServerArgs'),
+      '--optimize.enabled=false',
+      '--elasticsearch.healthCheck.delay=3600000',
+      '--server.xsrf.disableProtection=true',
+    ],
   };
 }
diff --git a/test/common/config.js b/test/common/config.js
index cbae6662aa300..d10681e244353 100644
--- a/test/common/config.js
+++ b/test/common/config.js
@@ -23,25 +23,20 @@ export default function () {
       ],
     },
 
-    kbnTestServer: {
-      buildArgs: [ '--optimize.useBundleCache=true' ],
-      sourceArgs: [
-        '--no-base-path',
-        `--optimize.bundleDir=${OPTIMIZE_BUNDLE_DIR}`,
-      ],
-      serverArgs: [
-        '--env=development',
-        '--logging.json=false',
-        `--server.port=${kbnTestConfig.getPort()}`,
-        `--optimize.watchPort=${kbnTestConfig.getPort()}`,
-        '--optimize.watchPrebuild=true',
-        '--status.allowAnonymous=true',
-        '--optimize.enabled=true',
-        `--elasticsearch.url=${formatUrl(servers.elasticsearch)}`,
-        `--elasticsearch.username=${servers.elasticsearch.username}`,
-        `--elasticsearch.password=${servers.elasticsearch.password}`,
-      ],
-    },
+    kibanaServerArgs: [
+      '--env=development',
+      '--logging.json=false',
+      '--no-base-path',
+      `--server.port=${kbnTestConfig.getPort()}`,
+      `--optimize.watchPort=${kbnTestConfig.getPort()}`,
+      '--optimize.watchPrebuild=true',
+      '--status.allowAnonymous=true',
+      '--optimize.enabled=true',
+      `--optimize.bundleDir=${OPTIMIZE_BUNDLE_DIR}`,
+      `--elasticsearch.url=${formatUrl(servers.elasticsearch)}`,
+      `--elasticsearch.username=${servers.elasticsearch.username}`,
+      `--elasticsearch.password=${servers.elasticsearch.password}`,
+    ],
 
     services: {
       kibanaServer: KibanaServerProvider,
diff --git a/test/functional/config.js b/test/functional/config.js
index 8ab4b364e78c3..a14f37b6ca755 100644
--- a/test/functional/config.js
+++ b/test/functional/config.js
@@ -87,13 +87,10 @@ export default async function ({ readConfigFile }) {
 
     esTestCluster: commonConfig.get('esTestCluster'),
 
-    kbnTestServer: {
-      ...commonConfig.get('kbnTestServer'),
-      serverArgs: [
-        ...commonConfig.get('kbnTestServer.serverArgs'),
-        '--oss',
-      ],
-    },
+    kibanaServerArgs: [
+      ...commonConfig.get('kibanaServerArgs'),
+      '--oss',
+    ],
 
     apps: {
       status_page: {
diff --git a/x-pack/test/api_integration/config.js b/x-pack/test/api_integration/config.js
index 23b8622e60012..2a28fe73bc3a9 100644
--- a/x-pack/test/api_integration/config.js
+++ b/x-pack/test/api_integration/config.js
@@ -28,7 +28,7 @@ export default async function ({ readConfigFile }) {
       reportName: 'X-Pack API Integration Tests',
     },
     env: xPackFunctionalTestsConfig.get('env'),
-    kbnTestServer: xPackFunctionalTestsConfig.get('kbnTestServer'),
+    kibanaServerArgs: xPackFunctionalTestsConfig.get('kibanaServerArgs'),
     esTestCluster: xPackFunctionalTestsConfig.get('esTestCluster'),
   };
 }
diff --git a/x-pack/test/functional/config.js b/x-pack/test/functional/config.js
index 267d33b5d9865..75a18126f1cca 100644
--- a/x-pack/test/functional/config.js
+++ b/x-pack/test/functional/config.js
@@ -157,18 +157,15 @@ export default async function ({ readConfigFile }) {
       ],
     },
 
-    kbnTestServer: {
-      ...kibanaCommonConfig.get('kbnTestServer'),
-      serverArgs: [
-        ...kibanaCommonConfig.get('kbnTestServer.serverArgs'),
-        `--server.uuid=${env.kibana.server.uuid}`,
-        `--server.port=${servers.kibana.port}`,
-        `--elasticsearch.url=${formatUrl(servers.elasticsearch)}`,
-        '--xpack.monitoring.kibana.collection.enabled=false',
-        '--xpack.xpack_main.telemetry.enabled=false',
-        '--xpack.security.encryptionKey="wuGNaIhoMpk5sO4UBxgr3NyW1sFcLgIf"', // server restarts should not invalidate active sessions
-      ],
-    },
+    kibanaServerArgs: [
+      ...kibanaCommonConfig.get('kibanaServerArgs'),
+      `--server.uuid=${env.kibana.server.uuid}`,
+      `--server.port=${servers.kibana.port}`,
+      `--elasticsearch.url=${formatUrl(servers.elasticsearch)}`,
+      '--xpack.monitoring.kibana.collection.enabled=false',
+      '--xpack.xpack_main.telemetry.enabled=false',
+      '--xpack.security.encryptionKey="wuGNaIhoMpk5sO4UBxgr3NyW1sFcLgIf"', // server restarts should not invalidate active sessions
+    ],
 
     // the apps section defines the urls that
     // `PageObjects.common.navigateTo(appKey)` will use.
diff --git a/x-pack/test/saml_api_integration/config.js b/x-pack/test/saml_api_integration/config.js
index a278c28ace2b7..c5b7abcf4479e 100644
--- a/x-pack/test/saml_api_integration/config.js
+++ b/x-pack/test/saml_api_integration/config.js
@@ -42,14 +42,11 @@ export default async function ({ readConfigFile }) {
       ],
     },
 
-    kbnTestServer: {
-      ...xPackAPITestsConfig.get('kbnTestServer'),
-      serverArgs: [
-        ...xPackAPITestsConfig.get('kbnTestServer.serverArgs'),
-        '--optimize.enabled=false',
-        '--server.xsrf.whitelist=[\"/api/security/v1/saml\"]',
-        '--xpack.security.authProviders=[\"saml\"]',
-      ],
-    },
+    kibanaServerArgs: [
+      ...xPackAPITestsConfig.get('kibanaServerArgs'),
+      '--optimize.enabled=false',
+      '--server.xsrf.whitelist=[\"/api/security/v1/saml\"]',
+      '--xpack.security.authProviders=[\"saml\"]',
+    ],
   };
 }