From 7a2232efe4bb165b7efc48569990ba1c91ef5f7d Mon Sep 17 00:00:00 2001 From: Rodrigo Rodriguez Date: Mon, 26 Oct 2020 20:18:38 -0300 Subject: [PATCH] fix(all): Bug fix in startup on a blank environment. --- .../services/AzureDeployerService.ts | 2 +- packages/boot.gbot/settings.json | 1 + .../core.gbapp/services/GBImporterService.ts | 6 +++++- src/app.ts | 20 +++++++++++++++---- 4 files changed, 23 insertions(+), 6 deletions(-) diff --git a/packages/azuredeployer.gbapp/services/AzureDeployerService.ts b/packages/azuredeployer.gbapp/services/AzureDeployerService.ts index 49e0a3360..cc9f7524c 100644 --- a/packages/azuredeployer.gbapp/services/AzureDeployerService.ts +++ b/packages/azuredeployer.gbapp/services/AzureDeployerService.ts @@ -388,7 +388,7 @@ export class AzureDeployerService implements IGBInstallationDeployer { GBLog.info(`Deploying Bot Storage...`); const administratorLogin = `sa${GBAdminService.getRndReadableIdentifier()}`; const administratorPassword = GBAdminService.getRndPassword(); - const storageServer = `${name.toLowerCase()}-storage-server`; + const storageServer = `${name.toLowerCase()}-storage-server2`; const storageName = `${name}-storage`; await this.createStorageServer(name, storageServer, administratorLogin, administratorPassword, storageServer, instance.cloudLocation diff --git a/packages/boot.gbot/settings.json b/packages/boot.gbot/settings.json index 6917287f9..204b7d092 100644 --- a/packages/boot.gbot/settings.json +++ b/packages/boot.gbot/settings.json @@ -3,5 +3,6 @@ "searchScore": ".45", "nlpScore": ".80", "nlpVsSearch": ".4", + "state":"active", "autoPackageSync": "gbdialog, gbot, gbtheme" } diff --git a/packages/core.gbapp/services/GBImporterService.ts b/packages/core.gbapp/services/GBImporterService.ts index 47f007c42..0dfba07d2 100644 --- a/packages/core.gbapp/services/GBImporterService.ts +++ b/packages/core.gbapp/services/GBImporterService.ts @@ -53,7 +53,8 @@ export class GBImporter { this.core = core; } - public async importIfNotExistsBotPackage(botId: string, packageName: string, localPath: string) { + public async importIfNotExistsBotPackage(botId: string, + packageName: string, localPath: string, additionalInstance: IGBInstance = null) { const settingsJson = JSON.parse(fs.readFileSync(urlJoin(localPath, 'settings.json'), 'utf8')); if (botId === undefined) { botId = settingsJson.botId; @@ -86,6 +87,9 @@ export class GBImporter { if (instance != null && instance.botId === null) { console.log(`Null BotId after load instance with botId: ${botId}.`); } + else{ + instance = additionalInstance; + } return await this.createOrUpdateInstanceInternal(instance, botId, localPath, settingsJson); } diff --git a/src/app.ts b/src/app.ts index 162192df1..d97f2331d 100644 --- a/src/app.ts +++ b/src/app.ts @@ -137,7 +137,8 @@ export class GBServer { await core.initStorage(); } catch (error) { GBLog.verbose(`Error initializing storage: ${error}`); - await core.createBootInstance(core, azureDeployer, GBServer.globals.publicAddress); + GBServer.globals.bootInstance = + await core.createBootInstance(core, azureDeployer, GBServer.globals.publicAddress); await core.initStorage(); } @@ -149,14 +150,25 @@ export class GBServer { GBServer.globals.sysPackages = await core.loadSysPackages(core); await core.checkStorage(azureDeployer); await deployer.deployPackages(core, server, GBServer.globals.appPackages); - - // Loads boot bot and other instances. - + + GBLog.info(`Publishing instances...`); let instances: IGBInstance[] = await core.loadAllInstances( core, azureDeployer, GBServer.globals.publicAddress ); + + if (instances.length === 0) { + const instance = await importer.importIfNotExistsBotPackage( + GBConfigService.get('BOT_ID'), + 'boot.gbot', + 'packages/boot.gbot', + GBServer.globals.bootInstance + ); + await deployer.deployBotFull(instance, GBServer.globals.publicAddress); + instances.push(instance); + } + GBServer.globals.bootInstance = instances[0]; // Builds minimal service infrastructure.