diff --git a/deadlock-plugins/deadlock-extension/src/core/controller.ts b/deadlock-plugins/deadlock-extension/src/core/controller.ts index eb8f402acebc0342cd9f967ec0ac272559cd5901..6e9c4473fd962ff5154be5a44493bb7627b90977 100644 --- a/deadlock-plugins/deadlock-extension/src/core/controller.ts +++ b/deadlock-plugins/deadlock-extension/src/core/controller.ts @@ -7,7 +7,7 @@ import KeycloakOAuth2DeviceFlowConnection from './keycloakOAuth2DeviceFlowConnec import ApiService from './api.service'; import { GiteaPublicProperties } from '../model/giteaPublicProperties.model'; import { MissionDevContainer } from './mission/missionDevContainer'; -import { extensionError, extensionLog as log } from '../recorder/utils/log'; +import { extensionError, extensionLog as log, extensionWarn } from '../recorder/utils/log'; import { commands, ExtensionContext, Uri, window } from 'vscode'; import { createSshKeyFiles } from './sshKeyManager'; import { emptyDirectories, removeFilesOrDirectories } from '../recorder/utils/workdir'; @@ -132,9 +132,24 @@ export default class Controller { } public async disconnect() { - await removeFilesOrDirectories(`${userSshKeyFolderPath}/id_rsa`, `${userSshKeyFolderPath}/id_rsa.pub`); - await emptyDirectories(missionWorkdir); - await this.extensionStore.clear(); + try { + await removeFilesOrDirectories(`${userSshKeyFolderPath}/id_rsa`, `${userSshKeyFolderPath}/id_rsa.pub`); + } catch (e) { + extensionWarn('Could not remove ssh key files'); + extensionWarn(e); + } + try { + await emptyDirectories(missionWorkdir); + } catch (e) { + extensionWarn('Could not empty mission workdir'); + extensionWarn(e); + } + try { + await this.extensionStore.clear(); + } catch (e) { + extensionWarn('Could not clear extension store'); + extensionWarn(e); + } this.quickSetupView.isAlreadyConnected = false; } diff --git a/deadlock-plugins/deadlock-extension/src/core/mission/missionDevContainer.ts b/deadlock-plugins/deadlock-extension/src/core/mission/missionDevContainer.ts index f1959c9404fac4d6dfef6b2df200301c0f82d615..0dddfb60b0b3e96a7d31cf43ac2eeab878a58280 100644 --- a/deadlock-plugins/deadlock-extension/src/core/mission/missionDevContainer.ts +++ b/deadlock-plugins/deadlock-extension/src/core/mission/missionDevContainer.ts @@ -90,18 +90,20 @@ export class MissionDevContainer { return this.currentUser.id !== this.user.id; } - private createUserChallengeJsonFile() { + private async createUserChallengeJsonFile() { return writeFile( `${this.dirs.config}/user-challenge.json`, (() => { + const username = this.user.id.split('-').join(''); const userChallengeJson: UserMission = { giteaHost: this.giteaProperties.sshHost, + userId: this.user.id, giteaSshPort: this.giteaProperties.sshPort, - username: this.user.id.split('-').join(''), - email: `${this.user.id.split('-').join('')}@deadlock.io`, + username, + email: `${username}@deadlock.io`, missionId: this.missionId, missionVersion: this.missionVersion, - remoteGitUsername: this.user.id.split('-').join(''), + remoteGitUsername: username, currentUserDetails: this.currentUser.details, currentUserId: this.currentUser.id, remoteUserDetails: this.user.details, diff --git a/deadlock-plugins/deadlock-extension/src/core/mission/model/userMission.ts b/deadlock-plugins/deadlock-extension/src/core/mission/model/userMission.ts index ea53d0aa6b4de688fd308619c3af13a5e54796ff..063223991ec168e14fe2feb0a44130cead1d8683 100644 --- a/deadlock-plugins/deadlock-extension/src/core/mission/model/userMission.ts +++ b/deadlock-plugins/deadlock-extension/src/core/mission/model/userMission.ts @@ -1,6 +1,7 @@ interface UserMission { giteaHost: string; giteaSshPort: number; + userId: string; username: string; currentUserId: string; email: string; diff --git a/deadlock-plugins/deadlock-extension/src/view/quickSetupView.ts b/deadlock-plugins/deadlock-extension/src/view/quickSetupView.ts index c64d69c15078a49c43a39503f3fa7416b6d91896..7610ca20533dafa02126fc298cddd22e84ad7a8a 100644 --- a/deadlock-plugins/deadlock-extension/src/view/quickSetupView.ts +++ b/deadlock-plugins/deadlock-extension/src/view/quickSetupView.ts @@ -70,7 +70,7 @@ export default class QuickSetupView extends WebviewBase { ) { return ` <div class="deadlock-getting-started-card"> - <vscode-checkbox ${isChecked ? 'checked' : ''} readonly> </vscode-checkbox> + <vscode-checkbox ${isChecked ? 'checked ' : ''}readonly></vscode-checkbox> <div class="card-body"> <div class="card-title"> ${title} @@ -78,7 +78,7 @@ export default class QuickSetupView extends WebviewBase { <div class="card-description"> ${description} </div> - <vscode-button ${isDisabled ? 'disabled' : ''} onclick="${ + <vscode-button${isDisabled ? ' disabled' : ''} onclick="${ button.onClickFunctionName }(${callbackArgs})">${button.name}</vscode-button> </div>