]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/controllers/api/server/redundancy.ts
Fix redundancy remove on host redundancy update
[github/Chocobozzz/PeerTube.git] / server / controllers / api / server / redundancy.ts
index 1ced0759e9d0a2d4558f415b5ae22621a07a3993..e36c8d2db44fbfa748f36833e863709a715ab946 100644 (file)
@@ -1,5 +1,10 @@
 import * as express from 'express'
+import { JobQueue } from '@server/lib/job-queue'
+import { VideoRedundancyModel } from '@server/models/redundancy/video-redundancy'
+import { HttpStatusCode } from '../../../../shared/models/http/http-error-codes'
 import { UserRight } from '../../../../shared/models/users'
+import { logger } from '../../../helpers/logger'
+import { removeRedundanciesOfServer, removeVideoRedundancy } from '../../../lib/redundancy'
 import {
   asyncMiddleware,
   authenticate,
@@ -10,15 +15,11 @@ import {
   videoRedundanciesSortValidator
 } from '../../../middlewares'
 import {
-  listVideoRedundanciesValidator,
-  updateServerRedundancyValidator,
   addVideoRedundancyValidator,
-  removeVideoRedundancyValidator
+  listVideoRedundanciesValidator,
+  removeVideoRedundancyValidator,
+  updateServerRedundancyValidator
 } from '../../../middlewares/validators/redundancy'
-import { removeRedundanciesOfServer, removeVideoRedundancy } from '../../../lib/redundancy'
-import { logger } from '../../../helpers/logger'
-import { VideoRedundancyModel } from '@server/models/redundancy/video-redundancy'
-import { JobQueue } from '@server/lib/job-queue'
 
 const serverRedundancyRouter = express.Router()
 
@@ -89,13 +90,13 @@ async function addVideoRedundancy (req: express.Request, res: express.Response)
     payload
   })
 
-  return res.sendStatus(204)
+  return res.status(HttpStatusCode.NO_CONTENT_204).end()
 }
 
 async function removeVideoRedundancyController (req: express.Request, res: express.Response) {
   await removeVideoRedundancy(res.locals.videoRedundancy)
 
-  return res.sendStatus(204)
+  return res.status(HttpStatusCode.NO_CONTENT_204).end()
 }
 
 async function updateRedundancy (req: express.Request, res: express.Response) {
@@ -105,9 +106,11 @@ async function updateRedundancy (req: express.Request, res: express.Response) {
 
   await server.save()
 
-  // Async, could be long
-  removeRedundanciesOfServer(server.id)
-    .catch(err => logger.error('Cannot remove redundancy of %s.', server.host, { err }))
+  if (server.redundancyAllowed !== true) {
+    // Async, could be long
+    removeRedundanciesOfServer(server.id)
+      .catch(err => logger.error('Cannot remove redundancy of %s.', server.host, { err }))
+  }
 
-  return res.sendStatus(204)
+  return res.status(HttpStatusCode.NO_CONTENT_204).end()
 }