Skip to content

Commit

Permalink
new(admin.gbapp): New command /publish unifing undeployPackage and de…
Browse files Browse the repository at this point in the history
…ployPackage.
  • Loading branch information
rodrigorodriguez committed May 12, 2020
1 parent 31ea0e5 commit cd146ed
Show file tree
Hide file tree
Showing 4 changed files with 66 additions and 23 deletions.
46 changes: 35 additions & 11 deletions packages/admin.gbapp/dialogs/AdminDialog.ts
Original file line number Diff line number Diff line change
Expand Up @@ -102,17 +102,11 @@ export class AdminDialog extends IGBDialog {

if (text === 'quit') {
return await step.replaceDialog('/');
} else if (cmdName === 'deployPackage') {
} else if (cmdName === 'deployPackage' || cmdName === 'dp') {
await GBAdminService.deployPackageCommand(min, text, deployer);

return await step.replaceDialog('/admin', { firstRun: false });
} else if (cmdName === 'dp') {
let BOT_NAME = text;
let address = `https://pragmatismo.sharepoint.com/sites/bots /Shared%20Documents/Rascunho/${BOT_NAME}/${BOT_NAME}.gbai/${BOT_NAME}.gbkb`;
await GBAdminService.deployPackageCommand(min, address, deployer);

return await step.replaceDialog('/admin', { firstRun: false });
} else if (cmdName === 'redeployPackage') {
} else if (cmdName === 'redeployPackage' || cmdName === 'rp') {
await step.context.sendActivity('The package is being *unloaded*...');
await GBAdminService.undeployPackageCommand(text, min);
await step.context.sendActivity('Now, *deploying* package...');
Expand All @@ -121,12 +115,12 @@ export class AdminDialog extends IGBDialog {
await GBAdminService.rebuildIndexPackageCommand(min, deployer);
await step.context.sendActivity('Finished importing of that .gbkb package. Thanks.');
return await step.replaceDialog('/admin', { firstRun: false });
} else if (cmdName === 'undeployPackage') {
} else if (cmdName === 'undeployPackage' || cmdName === 'up') {
await step.context.sendActivity('The package is being *undeployed*...');
await GBAdminService.undeployPackageCommand(text, min);
await step.context.sendActivity('Package *undeployed*.');
return await step.replaceDialog('/admin', { firstRun: false });
} else if (cmdName === 'rebuildIndex') {
} else if (cmdName === 'rebuildIndex' || cmdName === 'ri') {
await GBAdminService.rebuildIndexPackageCommand(min, deployer);

return await step.replaceDialog('/admin', { firstRun: false });
Expand Down Expand Up @@ -154,8 +148,38 @@ export class AdminDialog extends IGBDialog {

])
);

min.dialogs.add(
new WaterfallDialog('/publish', [
async step => {
const locale = step.context.activity.locale;
await step.context.sendActivity(Messages[locale].working('Publishing from WhatsApp'));
let unknownCommand = false;

try {

const cmd1 = `deployPackage ${process.env.STORAGE_SITE} /${process.env.STORAGE_LIBRARY}/${min.instance.botId}.gbai/${min.instance.botId}.gbkb`;

await step.context.sendActivity('Publishing your .gbkb and .gbdialog packages...');
if (await (deployer as any).getStoragePackageByName(min.instance.instanceId, `${min.instance.botId}.gbkb`) !== null) { // TODO: Move to interface.
const cmd2 = `undeployPackage ${min.instance.botId}.gbkb`;
await GBAdminService.undeployPackageCommand(cmd2, min);
}
await GBAdminService.deployPackageCommand(min, cmd1, deployer);
await step.context.sendActivity('Package deployed. Just need to rebuild the index... Doing it right now.');
await GBAdminService.rebuildIndexPackageCommand(min, deployer);
await step.context.sendActivity('Finished importing of all your packages. Thanks.');
return await step.replaceDialog('/ask', { firstRun: false });

} catch (error) {
await step.context.sendActivity(error.message);
}
await step.replaceDialog('/ask', { isReturning: true });

}]));
}


private static setupSecurityDialogs(min: GBMinInstance) {
min.dialogs.add(
new WaterfallDialog('/setupSecurity', [
Expand Down Expand Up @@ -200,7 +224,7 @@ export class AdminDialog extends IGBDialog {
const locale = step.context.activity.locale;
const buf = Buffer.alloc(16);
const state = `${min.instance.instanceId}${crypto.randomFillSync(buf).toString('hex')}`;

min.adminService.setValue(min.instance.instanceId, 'AntiCSRFAttackState', state);

const url = `https://login.microsoftonline.com/${
Expand Down
17 changes: 6 additions & 11 deletions packages/admin.gbapp/services/GBAdminService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -65,17 +65,6 @@ export class GBAdminService implements IGBAdminService {
this.core = core;
}

public async publish(min: GBMinInstance, packageName: string, republish: boolean) {
if (republish) {
GBLog.info('The package is being *unloaded*...');
let packageNameOnly = Path.basename(packageName);
await GBAdminService.undeployPackageCommand(`undeployPackage ${packageNameOnly}`, min);
}
GBLog.info('Now, *deploying* package...');
await GBAdminService.deployPackageCommand(min, `deployPackage ${packageName}`, min.deployService);
GBLog.info('Finished importing of that .gbkb package.');
}

public static generateUuid(): string {
return msRestAzure.generateUuid();
}
Expand Down Expand Up @@ -168,6 +157,12 @@ export class GBAdminService implements IGBAdminService {
}

public async acquireElevatedToken(instanceId: number): Promise<string> {

// TODO: Use boot bot as base for authentication.

let botId = GBConfigService.get('BOT_ID');
instanceId = (await this.core.loadInstanceByBotId(botId)).instanceId;

return new Promise<string>(async (resolve, reject) => {
const instance = await this.core.loadInstanceById(instanceId);

Expand Down
2 changes: 1 addition & 1 deletion packages/core.gbapp/services/GBMinService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -212,7 +212,7 @@ export class GBMinService {
// Install default BASIC module.


this.deployer.deployPackage(min, 'packages/default.gbdialog');
// this.deployer.deployPackage(min, 'packages/default.gbdialog');


// Call the loadBot context.activity for all packages.
Expand Down
24 changes: 24 additions & 0 deletions rodriguez.env
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
ADDITIONAL_DEPLOY_PATH=
ADMIN_PASS=1Y&g5$g7^h4$f%y2s#F
BOT_ID=dev-rodriguez
CLOUD_SUBSCRIPTIONID=bc3f465a-dfe1-4e13-a5a8-1695309abf90
CLOUD_LOCATION=westus
CLOUD_GROUP=dev-rodriguez
CLOUD_USERNAME=dev-rodriguez@pragmatismo.io
CLOUD_PASSWORD=d&7Q6%3^x3dv3@#T
MARKETPLACE_ID=9563978a-5c6d-4b4f-928b-411c66b08632
MARKETPLACE_SECRET=obm.IC2lR*feXUBnq4A*-PcneAx8N1sZ
STORAGE_DIALECT=mssql
STORAGE_SERVER=dev-rodriguez-storage-server.database.windows.net
STORAGE_NAME=dev-rodriguez-storage
STORAGE_USERNAME=sanreaeffbpuydq
STORAGE_PASSWORD=CGF#x%c#4I68
STORAGE_SYNC=false
GBAPP_DISABLE_COMPILE=true
NLP_AUTHORING_KEY=59c157d348614cceaf041c1e06c65656
GBAPP_DISABLE_COMPILE=false
PRIVACY_STORE_MESSAGES=
DEFAULT_KB=
SAAS_WWWROOT=C:\Users\admin230489\Sources\GBO.gbai\saas.gbapp\wwwroot
SAAS_SHAREPOINT_SITE_ID=02c7bfc9-6643-43b6-b8ff-b8c3d7c84916
SAAS_SHAREPOINT_LIBRARY_ID=Online

0 comments on commit cd146ed

Please sign in to comment.