提交 49c5a5bd 编写于 作者: S Sandeep Somavarapu

ext management - do not sync

上级 8c0e1b42
...@@ -19,7 +19,6 @@ import { areSameExtensions } from 'vs/platform/extensionManagement/common/extens ...@@ -19,7 +19,6 @@ import { areSameExtensions } from 'vs/platform/extensionManagement/common/extens
import { localize } from 'vs/nls'; import { localize } from 'vs/nls';
import { isUIExtension } from 'vs/workbench/services/extensions/node/extensionsUtil'; import { isUIExtension } from 'vs/workbench/services/extensions/node/extensionsUtil';
import { registerSingleton } from 'vs/platform/instantiation/common/extensions'; import { registerSingleton } from 'vs/platform/instantiation/common/extensions';
import { IRemoteAgentService } from 'vs/workbench/services/remote/common/remoteAgentService';
export class MultiExtensionManagementService extends Disposable implements IExtensionManagementService { export class MultiExtensionManagementService extends Disposable implements IExtensionManagementService {
...@@ -35,8 +34,7 @@ export class MultiExtensionManagementService extends Disposable implements IExte ...@@ -35,8 +34,7 @@ export class MultiExtensionManagementService extends Disposable implements IExte
constructor( constructor(
@IExtensionManagementServerService private readonly extensionManagementServerService: IExtensionManagementServerService, @IExtensionManagementServerService private readonly extensionManagementServerService: IExtensionManagementServerService,
@IExtensionGalleryService private readonly extensionGalleryService: IExtensionGalleryService, @IExtensionGalleryService private readonly extensionGalleryService: IExtensionGalleryService,
@IConfigurationService private readonly configurationService: IConfigurationService, @IConfigurationService private readonly configurationService: IConfigurationService
@IRemoteAgentService private readonly remoteAgentService: IRemoteAgentService
) { ) {
super(); super();
this.servers = this.extensionManagementServerService.remoteExtensionManagementServer ? [this.extensionManagementServerService.localExtensionManagementServer, this.extensionManagementServerService.remoteExtensionManagementServer] : [this.extensionManagementServerService.localExtensionManagementServer]; this.servers = this.extensionManagementServerService.remoteExtensionManagementServer ? [this.extensionManagementServerService.localExtensionManagementServer, this.extensionManagementServerService.remoteExtensionManagementServer] : [this.extensionManagementServerService.localExtensionManagementServer];
...@@ -58,8 +56,7 @@ export class MultiExtensionManagementService extends Disposable implements IExte ...@@ -58,8 +56,7 @@ export class MultiExtensionManagementService extends Disposable implements IExte
if (!server) { if (!server) {
return Promise.reject(`Invalid location ${extension.location.toString()}`); return Promise.reject(`Invalid location ${extension.location.toString()}`);
} }
const syncExtensions = await this.hasToSyncExtensions(); if (isLanguagePackExtension(extension.manifest)) {
if (syncExtensions || isLanguagePackExtension(extension.manifest)) {
return this.uninstallEverywhere(extension, force); return this.uninstallEverywhere(extension, force);
} }
return this.uninstallInServer(extension, server, force); return this.uninstallInServer(extension, server, force);
...@@ -134,9 +131,8 @@ export class MultiExtensionManagementService extends Disposable implements IExte ...@@ -134,9 +131,8 @@ export class MultiExtensionManagementService extends Disposable implements IExte
async install(vsix: URI): Promise<IExtensionIdentifier> { async install(vsix: URI): Promise<IExtensionIdentifier> {
if (this.extensionManagementServerService.remoteExtensionManagementServer) { if (this.extensionManagementServerService.remoteExtensionManagementServer) {
const syncExtensions = await this.hasToSyncExtensions();
const manifest = await getManifest(vsix.fsPath); const manifest = await getManifest(vsix.fsPath);
if (syncExtensions || isLanguagePackExtension(manifest)) { if (isLanguagePackExtension(manifest)) {
// Install on both servers // Install on both servers
const [extensionIdentifier] = await Promise.all(this.servers.map(server => server.extensionManagementService.install(vsix))); const [extensionIdentifier] = await Promise.all(this.servers.map(server => server.extensionManagementService.install(vsix)));
return extensionIdentifier; return extensionIdentifier;
...@@ -156,9 +152,9 @@ export class MultiExtensionManagementService extends Disposable implements IExte ...@@ -156,9 +152,9 @@ export class MultiExtensionManagementService extends Disposable implements IExte
async installFromGallery(gallery: IGalleryExtension): Promise<void> { async installFromGallery(gallery: IGalleryExtension): Promise<void> {
if (this.extensionManagementServerService.remoteExtensionManagementServer) { if (this.extensionManagementServerService.remoteExtensionManagementServer) {
const [manifest, syncExtensions] = await Promise.all([this.extensionGalleryService.getManifest(gallery, CancellationToken.None), this.hasToSyncExtensions()]); const manifest = await this.extensionGalleryService.getManifest(gallery, CancellationToken.None);
if (manifest) { if (manifest) {
if (syncExtensions || isLanguagePackExtension(manifest)) { if (isLanguagePackExtension(manifest)) {
// Install on both servers // Install on both servers
return Promise.all(this.servers.map(server => server.extensionManagementService.installFromGallery(gallery))).then(() => undefined); return Promise.all(this.servers.map(server => server.extensionManagementService.installFromGallery(gallery))).then(() => undefined);
} }
...@@ -199,17 +195,6 @@ export class MultiExtensionManagementService extends Disposable implements IExte ...@@ -199,17 +195,6 @@ export class MultiExtensionManagementService extends Disposable implements IExte
private getServer(extension: ILocalExtension): IExtensionManagementServer | null { private getServer(extension: ILocalExtension): IExtensionManagementServer | null {
return this.extensionManagementServerService.getExtensionManagementServer(extension.location); return this.extensionManagementServerService.getExtensionManagementServer(extension.location);
} }
private async hasToSyncExtensions(): Promise<boolean> {
if (!this.extensionManagementServerService.remoteExtensionManagementServer) {
return false;
}
const remoteEnv = await this.remoteAgentService.getEnvironment();
if (!remoteEnv) {
return false;
}
return remoteEnv.syncExtensions;
}
} }
registerSingleton(IExtensionManagementService, MultiExtensionManagementService); registerSingleton(IExtensionManagementService, MultiExtensionManagementService);
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册