diff options
Diffstat (limited to 'packages')
6 files changed, 13 insertions, 9 deletions
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') | |||
55 | program.command('unregister') | 55 | program.command('unregister') |
56 | .description('Unregister the runner from PeerTube instance') | 56 | .description('Unregister the runner from PeerTube instance') |
57 | .requiredOption('--url <url>', 'PeerTube instance URL', parseUrl) | 57 | .requiredOption('--url <url>', 'PeerTube instance URL', parseUrl) |
58 | .requiredOption('--runner-name <name>', 'Runner name') | ||
58 | .action(async options => { | 59 | .action(async options => { |
59 | try { | 60 | try { |
60 | await unregisterRunner(options) | 61 | 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: { | |||
16 | 16 | ||
17 | export async function unregisterRunner (options: { | 17 | export async function unregisterRunner (options: { |
18 | url: string | 18 | url: string |
19 | runnerName: string | ||
19 | }) { | 20 | }) { |
20 | const client = new IPCClient() | 21 | const client = new IPCClient() |
21 | await client.run() | 22 | 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 { | |||
121 | 121 | ||
122 | async unregisterRunner (options: { | 122 | async unregisterRunner (options: { |
123 | url: string | 123 | url: string |
124 | runnerName: string | ||
124 | }) { | 125 | }) { |
125 | const { url } = options | 126 | const { url, runnerName } = options |
126 | 127 | ||
127 | const server = this.servers.find(s => s.url === url) | 128 | const server = this.servers.find(s => s.url === url && s.runnerName === runnerName) |
128 | if (!server) { | 129 | if (!server) { |
129 | logger.error(`Unknown server ${url} to unregister`) | 130 | logger.error(`Unknown server ${url} - ${runnerName} to unregister`) |
130 | return | 131 | return |
131 | } | 132 | } |
132 | 133 | ||
133 | logger.info(`Unregistering runner ${server.runnerName} on ${url}...`) | 134 | logger.info(`Unregistering runner ${runnerName} on ${url}...`) |
134 | 135 | ||
135 | try { | 136 | try { |
136 | await server.runners.unregister({ runnerToken: server.runnerToken }) | 137 | await server.runners.unregister({ runnerToken: server.runnerToken }) |
137 | } catch (err) { | 138 | } catch (err) { |
138 | logger.error({ err }, `Cannot unregister runner ${server.runnerName} on ${url}`) | 139 | logger.error({ err }, `Cannot unregister runner ${runnerName} on ${url}`) |
139 | } | 140 | } |
140 | 141 | ||
141 | this.unloadServer(server) | 142 | this.unloadServer(server) |
142 | await this.saveRegisteredInstancesInConf() | 143 | await this.saveRegisteredInstancesInConf() |
143 | 144 | ||
144 | logger.info(`Unregistered runner ${server.runnerName} on ${server.url}`) | 145 | logger.info(`Unregistered runner ${runnerName} on ${url}`) |
145 | } | 146 | } |
146 | 147 | ||
147 | private unloadServer (server: PeerTubeServer) { | 148 | private unloadServer (server: PeerTubeServer) { |
@@ -195,7 +196,7 @@ export class RunnerServer { | |||
195 | if (code === ServerErrorCode.UNKNOWN_RUNNER_TOKEN) { | 196 | if (code === ServerErrorCode.UNKNOWN_RUNNER_TOKEN) { |
196 | logger.error({ err }, `Unregistering ${server.url} as the runner token ${server.runnerToken} is invalid`) | 197 | logger.error({ err }, `Unregistering ${server.url} as the runner token ${server.runnerToken} is invalid`) |
197 | 198 | ||
198 | await this.unregisterRunner({ url: server.url }) | 199 | await this.unregisterRunner({ url: server.url, runnerName: server.runnerName }) |
199 | return | 200 | return |
200 | } | 201 | } |
201 | 202 | ||
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 { | |||
47 | 47 | ||
48 | async askUnregister (options: { | 48 | async askUnregister (options: { |
49 | url: string | 49 | url: string |
50 | runnerName: string | ||
50 | }) { | 51 | }) { |
51 | const req: IPCRequest = { | 52 | const req: IPCRequest = { |
52 | type: 'unregister', | 53 | 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 { | |||
40 | return undefined | 40 | return undefined |
41 | 41 | ||
42 | case 'unregister': | 42 | case 'unregister': |
43 | await this.runnerServer.unregisterRunner({ url: req.url }) | 43 | await this.runnerServer.unregisterRunner(pick(req, [ 'url', 'runnerName' ])) |
44 | return undefined | 44 | return undefined |
45 | 45 | ||
46 | case 'list-registered': | 46 | 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 = { | |||
11 | runnerDescription?: string | 11 | runnerDescription?: string |
12 | } | 12 | } |
13 | 13 | ||
14 | export type IPCRequestUnregister = { type: 'unregister', url: string } | 14 | export type IPCRequestUnregister = { type: 'unregister', url: string, runnerName: string } |
15 | export type IPCRequestListRegistered = { type: 'list-registered' } | 15 | export type IPCRequestListRegistered = { type: 'list-registered' } |