mirror of
https://github.com/n8n-io/n8n.git
synced 2025-03-05 20:50:17 -08:00
refactor(core): Simplify license autorenewal on leadership transition (#13503)
This commit is contained in:
parent
b984deac3b
commit
288cce6370
|
@ -285,20 +285,4 @@ describe('License', () => {
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('reinit', () => {
|
|
||||||
it('should reinitialize license manager', async () => {
|
|
||||||
const license = new License(mockLogger(), mock(), mock(), mock(), mock());
|
|
||||||
await license.init();
|
|
||||||
|
|
||||||
const initSpy = jest.spyOn(license, 'init');
|
|
||||||
|
|
||||||
await license.reinit();
|
|
||||||
|
|
||||||
expect(initSpy).toHaveBeenCalledWith({ forceRecreate: true });
|
|
||||||
|
|
||||||
expect(LicenseManager.prototype.reset).toHaveBeenCalled();
|
|
||||||
expect(LicenseManager.prototype.initialize).toHaveBeenCalled();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
|
@ -263,11 +263,11 @@ export class Start extends BaseCommand {
|
||||||
|
|
||||||
orchestrationService.multiMainSetup
|
orchestrationService.multiMainSetup
|
||||||
.on('leader-stepdown', async () => {
|
.on('leader-stepdown', async () => {
|
||||||
await this.license.reinit(); // to disable renewal
|
this.license.disableAutoRenewals();
|
||||||
await this.activeWorkflowManager.removeAllTriggerAndPollerBasedWorkflows();
|
await this.activeWorkflowManager.removeAllTriggerAndPollerBasedWorkflows();
|
||||||
})
|
})
|
||||||
.on('leader-takeover', async () => {
|
.on('leader-takeover', async () => {
|
||||||
await this.license.reinit(); // to enable renewal
|
this.license.enableAutoRenewals();
|
||||||
await this.activeWorkflowManager.addAllTriggerAndPollerBasedWorkflows();
|
await this.activeWorkflowManager.addAllTriggerAndPollerBasedWorkflows();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -381,14 +381,6 @@ export class License {
|
||||||
return this.getUsersLimit() === UNLIMITED_LICENSE_QUOTA;
|
return this.getUsersLimit() === UNLIMITED_LICENSE_QUOTA;
|
||||||
}
|
}
|
||||||
|
|
||||||
async reinit() {
|
|
||||||
if (this.manager) {
|
|
||||||
await this.manager.reset();
|
|
||||||
}
|
|
||||||
await this.init({ forceRecreate: true });
|
|
||||||
this.logger.debug('License reinitialized');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Ensures that the instance is licensed for multi-main setup if multi-main mode is enabled
|
* Ensures that the instance is licensed for multi-main setup if multi-main mode is enabled
|
||||||
*/
|
*/
|
||||||
|
@ -429,4 +421,12 @@ export class License {
|
||||||
Container.get(ObjectStoreService).setReadonly(true);
|
Container.get(ObjectStoreService).setReadonly(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
enableAutoRenewals() {
|
||||||
|
this.manager?.enableAutoRenewals();
|
||||||
|
}
|
||||||
|
|
||||||
|
disableAutoRenewals() {
|
||||||
|
this.manager?.disableAutoRenewals();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue