mirror of
https://github.com/Microsoft/vscode
synced 2024-10-13 06:48:17 +00:00
#90112 Turn off sync when this server error happen
This commit is contained in:
parent
e374e95680
commit
3dc9649504
|
@ -130,6 +130,7 @@ export enum UserDataSyncErrorCode {
|
|||
Rejected = 'Rejected',
|
||||
TooLarge = 'TooLarge',
|
||||
TooManyFailures = 'TooManyFailures',
|
||||
NoRef = 'NoRef',
|
||||
Unknown = 'Unknown',
|
||||
}
|
||||
|
||||
|
|
|
@ -49,12 +49,12 @@ export class UserDataSyncStoreService extends Disposable implements IUserDataSyn
|
|||
}
|
||||
|
||||
if (!isSuccess(context)) {
|
||||
throw new Error('Server returned ' + context.res.statusCode);
|
||||
throw new UserDataSyncStoreError('Server returned ' + context.res.statusCode, UserDataSyncErrorCode.Unknown, source);
|
||||
}
|
||||
|
||||
const ref = context.res.headers['etag'];
|
||||
if (!ref) {
|
||||
throw new Error('Server did not return the ref');
|
||||
throw new UserDataSyncStoreError('Server did not return the ref', UserDataSyncErrorCode.NoRef, source);
|
||||
}
|
||||
const content = await asText(context);
|
||||
return { ref, content };
|
||||
|
@ -74,12 +74,12 @@ export class UserDataSyncStoreService extends Disposable implements IUserDataSyn
|
|||
const context = await this.request({ type: 'POST', url, data, headers }, source, CancellationToken.None);
|
||||
|
||||
if (!isSuccess(context)) {
|
||||
throw new Error('Server returned ' + context.res.statusCode);
|
||||
throw new UserDataSyncStoreError('Server returned ' + context.res.statusCode, UserDataSyncErrorCode.Unknown, source);
|
||||
}
|
||||
|
||||
const newRef = context.res.headers['etag'];
|
||||
if (!newRef) {
|
||||
throw new Error('Server did not return the ref');
|
||||
throw new UserDataSyncStoreError('Server did not return the ref', UserDataSyncErrorCode.NoRef, source);
|
||||
}
|
||||
return newRef;
|
||||
}
|
||||
|
@ -95,14 +95,14 @@ export class UserDataSyncStoreService extends Disposable implements IUserDataSyn
|
|||
const context = await this.request({ type: 'DELETE', url, headers }, undefined, CancellationToken.None);
|
||||
|
||||
if (!isSuccess(context)) {
|
||||
throw new Error('Server returned ' + context.res.statusCode);
|
||||
throw new UserDataSyncStoreError('Server returned ' + context.res.statusCode, UserDataSyncErrorCode.Unknown);
|
||||
}
|
||||
}
|
||||
|
||||
private async request(options: IRequestOptions, source: SyncSource | undefined, token: CancellationToken): Promise<IRequestContext> {
|
||||
const authToken = await this.authTokenService.getToken();
|
||||
if (!authToken) {
|
||||
throw new Error('No Auth Token Available.');
|
||||
throw new UserDataSyncStoreError('No Auth Token Available', UserDataSyncErrorCode.Unauthroized, source);
|
||||
}
|
||||
options.headers = options.headers || {};
|
||||
options.headers['authorization'] = `Bearer ${authToken}`;
|
||||
|
|
|
@ -23,7 +23,6 @@ import { IDialogService } from 'vs/platform/dialogs/common/dialogs';
|
|||
import { IQuickInputService } from 'vs/platform/quickinput/common/quickInput';
|
||||
import { isWeb } from 'vs/base/common/platform';
|
||||
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
|
||||
import { UserDataAutoSyncService } from 'vs/workbench/contrib/userDataSync/browser/userDataAutoSyncService';
|
||||
import { UserDataSyncTrigger } from 'vs/workbench/contrib/userDataSync/browser/userDataSyncTrigger';
|
||||
import { timeout } from 'vs/base/common/async';
|
||||
import { IOutputService } from 'vs/workbench/contrib/output/common/output';
|
||||
|
@ -118,9 +117,7 @@ export class UserDataSyncWorkbenchContribution extends Disposable implements IWo
|
|||
this._register(userDataAutoSyncService.onError(({ code, source }) => this.onAutoSyncError(code, source)));
|
||||
this.registerActions();
|
||||
this.initializeActiveAccount().then(_ => {
|
||||
if (isWeb) {
|
||||
this._register(instantiationService.createInstance(UserDataAutoSyncService));
|
||||
} else {
|
||||
if (!isWeb) {
|
||||
this._register(instantiationService.createInstance(UserDataSyncTrigger).onDidTriggerSync(() => userDataAutoSyncService.triggerAutoSync()));
|
||||
}
|
||||
});
|
||||
|
|
|
@ -69,7 +69,7 @@ import { UserDataSyncStoreService } from 'vs/platform/userDataSync/common/userDa
|
|||
import { UserDataSyncService } from 'vs/platform/userDataSync/common/userDataSyncService';
|
||||
import { SettingsSynchroniser } from 'vs/platform/userDataSync/common/settingsSync';
|
||||
import { UserDataAuthTokenService } from 'vs/platform/userDataSync/common/userDataAuthTokenService';
|
||||
import { UserDataAutoSyncService } from 'vs/platform/userDataSync/common/userDataAutoSyncService';
|
||||
import { UserDataAutoSyncService } from 'vs/workbench/contrib/userDataSync/browser/userDataAutoSyncService';
|
||||
import { AccessibilityService } from 'vs/platform/accessibility/common/accessibilityService';
|
||||
|
||||
registerSingleton(IExtensionManagementService, ExtensionManagementService);
|
||||
|
|
Loading…
Reference in a new issue