From 4f32a9c5e49e67eb3300d0da47732a0294ea1993 Mon Sep 17 00:00:00 2001 From: Aleh Zasypkin Date: Tue, 31 Jul 2018 19:53:18 +0200 Subject: [PATCH] Make core fail if legacy fails to start. --- src/core/cli/apply_config_overrides.ts | 5 --- .../server/legacy_compat/legacy_service.ts | 33 ++++++++++--------- 2 files changed, 17 insertions(+), 21 deletions(-) diff --git a/src/core/cli/apply_config_overrides.ts b/src/core/cli/apply_config_overrides.ts index a7e9b59ff0d14db..219e0be9b1a58ef 100644 --- a/src/core/cli/apply_config_overrides.ts +++ b/src/core/cli/apply_config_overrides.ts @@ -140,11 +140,6 @@ function* getUnknownArgsOverrides( ) { // Merge unknown CLI args into config. for (const unknownArgKey of args.getUnknownOptions(argv, installationFeatures)) { - // Include only arguments that looks like config keys (with `.` as a separator). - if (!unknownArgKey.includes('.')) { - continue; - } - try { yield [unknownArgKey, JSON.parse(argv[unknownArgKey])]; } catch (e) { diff --git a/src/core/server/legacy_compat/legacy_service.ts b/src/core/server/legacy_compat/legacy_service.ts index f80506e375a782a..5eaf1759076e3a5 100644 --- a/src/core/server/legacy_compat/legacy_service.ts +++ b/src/core/server/legacy_compat/legacy_service.ts @@ -59,7 +59,7 @@ interface LegacyServiceOptions { export class LegacyService implements CoreService { private readonly log: Logger; private kbnServer?: LegacyKbnServer; - private kbnServerSubscription?: Subscription; + private rawConfigSubscription?: Subscription; private readonly connection$: BehaviorSubject = new BehaviorSubject(null); constructor( @@ -76,35 +76,36 @@ export class LegacyService implements CoreService { public async start() { this.log.debug('Starting legacy service'); - this.kbnServerSubscription = k$(this.configService.getConfig$())( - map(async rawConfig => { + this.rawConfigSubscription = this.configService.getConfig$().subscribe({ + next: rawConfig => { if (this.kbnServer !== undefined) { this.kbnServer.applyLoggingConfiguration(rawConfig.getRaw()); - return this.kbnServer; } + }, + error: err => this.log.error(err), + }); + const kbnServerPromise = await k$(this.configService.getConfig$())( + map(rawConfig => { if (this.options.isDevClusterMaster) { return this.createClusterManager(rawConfig); } return this.createKbnServer(rawConfig); - }) - ).subscribe({ - next: async kbnServerPromise => { - this.kbnServer = await kbnServerPromise; + }), + first(), + toPromise() + ); - await this.kbnServer.listen(); - }, - error: err => this.log.error(err), - }); + this.kbnServer = await kbnServerPromise; } public async stop() { this.log.debug('Stopping legacy service'); - if (this.kbnServerSubscription !== undefined) { - this.kbnServerSubscription.unsubscribe(); - this.kbnServerSubscription = undefined; + if (this.rawConfigSubscription !== undefined) { + this.rawConfigSubscription.unsubscribe(); + this.rawConfigSubscription = undefined; } if (this.kbnServer !== undefined) { @@ -202,7 +203,7 @@ export class LegacyService implements CoreService { require(REPL_PATH).startRepl(this.kbnServer); } - await kbnServer.ready(); + await kbnServer.listen(); return kbnServer; }