From f474a519dc08df47c96ead9e0216912582def4f7 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Fri, 26 May 2023 09:03:50 +0200 Subject: Specify runner name when unregistering the runner --- packages/peertube-runner/peertube-runner.ts | 1 + packages/peertube-runner/register/register.ts | 1 + packages/peertube-runner/server/server.ts | 15 ++++++++------- packages/peertube-runner/shared/ipc/ipc-client.ts | 1 + packages/peertube-runner/shared/ipc/ipc-server.ts | 2 +- .../shared/ipc/shared/ipc-request.model.ts | 2 +- 6 files changed, 13 insertions(+), 9 deletions(-) (limited to 'packages/peertube-runner') diff --git a/packages/peertube-runner/peertube-runner.ts b/packages/peertube-runner/peertube-runner.ts index 858d85e6a..32586c4d9 100644 --- a/packages/peertube-runner/peertube-runner.ts +++ b/packages/peertube-runner/peertube-runner.ts @@ -55,6 +55,7 @@ program.command('register') program.command('unregister') .description('Unregister the runner from PeerTube instance') .requiredOption('--url ', 'PeerTube instance URL', parseUrl) + .requiredOption('--runner-name ', 'Runner name') .action(async options => { try { await unregisterRunner(options) diff --git a/packages/peertube-runner/register/register.ts b/packages/peertube-runner/register/register.ts index a69390933..ca1bf0f5a 100644 --- a/packages/peertube-runner/register/register.ts +++ b/packages/peertube-runner/register/register.ts @@ -16,6 +16,7 @@ export async function registerRunner (options: { export async function unregisterRunner (options: { url: string + runnerName: string }) { const client = new IPCClient() await client.run() diff --git a/packages/peertube-runner/server/server.ts b/packages/peertube-runner/server/server.ts index 087405dfe..e76131c74 100644 --- a/packages/peertube-runner/server/server.ts +++ b/packages/peertube-runner/server/server.ts @@ -121,27 +121,28 @@ export class RunnerServer { async unregisterRunner (options: { url: string + runnerName: string }) { - const { url } = options + const { url, runnerName } = options - const server = this.servers.find(s => s.url === url) + const server = this.servers.find(s => s.url === url && s.runnerName === runnerName) if (!server) { - logger.error(`Unknown server ${url} to unregister`) + logger.error(`Unknown server ${url} - ${runnerName} to unregister`) return } - logger.info(`Unregistering runner ${server.runnerName} on ${url}...`) + logger.info(`Unregistering runner ${runnerName} on ${url}...`) try { await server.runners.unregister({ runnerToken: server.runnerToken }) } catch (err) { - logger.error({ err }, `Cannot unregister runner ${server.runnerName} on ${url}`) + logger.error({ err }, `Cannot unregister runner ${runnerName} on ${url}`) } this.unloadServer(server) await this.saveRegisteredInstancesInConf() - logger.info(`Unregistered runner ${server.runnerName} on ${server.url}`) + logger.info(`Unregistered runner ${runnerName} on ${url}`) } private unloadServer (server: PeerTubeServer) { @@ -195,7 +196,7 @@ export class RunnerServer { if (code === ServerErrorCode.UNKNOWN_RUNNER_TOKEN) { logger.error({ err }, `Unregistering ${server.url} as the runner token ${server.runnerToken} is invalid`) - await this.unregisterRunner({ url: server.url }) + await this.unregisterRunner({ url: server.url, runnerName: server.runnerName }) return } diff --git a/packages/peertube-runner/shared/ipc/ipc-client.ts b/packages/peertube-runner/shared/ipc/ipc-client.ts index db8d7f1bf..f8e72f97f 100644 --- a/packages/peertube-runner/shared/ipc/ipc-client.ts +++ b/packages/peertube-runner/shared/ipc/ipc-client.ts @@ -47,6 +47,7 @@ export class IPCClient { async askUnregister (options: { url: string + runnerName: string }) { const req: IPCRequest = { type: 'unregister', diff --git a/packages/peertube-runner/shared/ipc/ipc-server.ts b/packages/peertube-runner/shared/ipc/ipc-server.ts index 922dc93e5..4b67d01ae 100644 --- a/packages/peertube-runner/shared/ipc/ipc-server.ts +++ b/packages/peertube-runner/shared/ipc/ipc-server.ts @@ -40,7 +40,7 @@ export class IPCServer { return undefined case 'unregister': - await this.runnerServer.unregisterRunner({ url: req.url }) + await this.runnerServer.unregisterRunner(pick(req, [ 'url', 'runnerName' ])) return undefined case 'list-registered': diff --git a/packages/peertube-runner/shared/ipc/shared/ipc-request.model.ts b/packages/peertube-runner/shared/ipc/shared/ipc-request.model.ts index 0f733cdfe..352808c74 100644 --- a/packages/peertube-runner/shared/ipc/shared/ipc-request.model.ts +++ b/packages/peertube-runner/shared/ipc/shared/ipc-request.model.ts @@ -11,5 +11,5 @@ export type IPCRequestRegister = { runnerDescription?: string } -export type IPCRequestUnregister = { type: 'unregister', url: string } +export type IPCRequestUnregister = { type: 'unregister', url: string, runnerName: string } export type IPCRequestListRegistered = { type: 'list-registered' } -- cgit v1.2.3