mirror of https://github.com/Chocobozzz/PeerTube
Fix redundancy remove on host redundancy update
parent
5a298a5a3d
commit
7b6cf83e33
|
@ -106,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.status(HttpStatusCode.NO_CONTENT_204).end()
|
||||
}
|
||||
|
|
|
@ -470,16 +470,34 @@ export class VideoRedundancyModel extends Model<Partial<AttributesOnly<VideoRedu
|
|||
|
||||
const query = {
|
||||
where: {
|
||||
actorId: actor.id
|
||||
[Op.and]: [
|
||||
{
|
||||
actorId: actor.id
|
||||
},
|
||||
{
|
||||
[Op.or]: [
|
||||
{
|
||||
'$VideoStreamingPlaylist.id$': {
|
||||
[Op.ne]: null
|
||||
}
|
||||
},
|
||||
{
|
||||
'$VideoFile.id$': {
|
||||
[Op.ne]: null
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
include: [
|
||||
{
|
||||
model: VideoFileModel,
|
||||
model: VideoFileModel.unscoped(),
|
||||
required: false,
|
||||
include: [ buildVideoInclude() ]
|
||||
},
|
||||
{
|
||||
model: VideoStreamingPlaylistModel,
|
||||
model: VideoStreamingPlaylistModel.unscoped(),
|
||||
required: false,
|
||||
include: [ buildVideoInclude() ]
|
||||
}
|
||||
|
|
|
@ -49,7 +49,7 @@ async function checkMagnetWebseeds (file: VideoFile, baseWebseeds: string[], ser
|
|||
}
|
||||
}
|
||||
|
||||
async function createSingleServers (strategy: VideoRedundancyStrategy | null, additionalParams: any = {}, withWebtorrent = true) {
|
||||
async function createServers (strategy: VideoRedundancyStrategy | null, additionalParams: any = {}, withWebtorrent = true) {
|
||||
const strategies: any[] = []
|
||||
|
||||
if (strategy !== null) {
|
||||
|
@ -309,7 +309,7 @@ describe('Test videos redundancy', function () {
|
|||
before(function () {
|
||||
this.timeout(120000)
|
||||
|
||||
return createSingleServers(strategy)
|
||||
return createServers(strategy)
|
||||
})
|
||||
|
||||
it('Should have 1 webseed on the first video', async function () {
|
||||
|
@ -359,7 +359,7 @@ describe('Test videos redundancy', function () {
|
|||
before(function () {
|
||||
this.timeout(120000)
|
||||
|
||||
return createSingleServers(strategy)
|
||||
return createServers(strategy)
|
||||
})
|
||||
|
||||
it('Should have 1 webseed on the first video', async function () {
|
||||
|
@ -384,7 +384,20 @@ describe('Test videos redundancy', function () {
|
|||
await checkStatsWith1Redundancy(strategy)
|
||||
})
|
||||
|
||||
it('Should unfollow on server 1 and remove duplicated videos', async function () {
|
||||
it('Should unfollow server 3 and keep duplicated videos', async function () {
|
||||
this.timeout(80000)
|
||||
|
||||
await servers[0].follows.unfollow({ target: servers[2] })
|
||||
|
||||
await waitJobs(servers)
|
||||
await wait(5000)
|
||||
|
||||
await check2Webseeds()
|
||||
await check1PlaylistRedundancies()
|
||||
await checkStatsWith1Redundancy(strategy)
|
||||
})
|
||||
|
||||
it('Should unfollow server 2 and remove duplicated videos', async function () {
|
||||
this.timeout(80000)
|
||||
|
||||
await servers[0].follows.unfollow({ target: servers[1] })
|
||||
|
@ -409,7 +422,7 @@ describe('Test videos redundancy', function () {
|
|||
before(function () {
|
||||
this.timeout(120000)
|
||||
|
||||
return createSingleServers(strategy, { min_views: 3 })
|
||||
return createServers(strategy, { min_views: 3 })
|
||||
})
|
||||
|
||||
it('Should have 1 webseed on the first video', async function () {
|
||||
|
@ -480,7 +493,7 @@ describe('Test videos redundancy', function () {
|
|||
before(async function () {
|
||||
this.timeout(120000)
|
||||
|
||||
await createSingleServers(strategy, { min_views: 3 }, false)
|
||||
await createServers(strategy, { min_views: 3 }, false)
|
||||
})
|
||||
|
||||
it('Should have 0 playlist redundancy on the first video', async function () {
|
||||
|
@ -542,7 +555,7 @@ describe('Test videos redundancy', function () {
|
|||
before(function () {
|
||||
this.timeout(120000)
|
||||
|
||||
return createSingleServers(null)
|
||||
return createServers(null)
|
||||
})
|
||||
|
||||
it('Should have 1 webseed on the first video', async function () {
|
||||
|
@ -621,7 +634,7 @@ describe('Test videos redundancy', function () {
|
|||
before(async function () {
|
||||
this.timeout(120000)
|
||||
|
||||
await createSingleServers(strategy, { min_lifetime: '7 seconds', min_views: 0 })
|
||||
await createServers(strategy, { min_lifetime: '7 seconds', min_views: 0 })
|
||||
|
||||
await enableRedundancyOnServer1()
|
||||
})
|
||||
|
@ -663,7 +676,7 @@ describe('Test videos redundancy', function () {
|
|||
before(async function () {
|
||||
this.timeout(120000)
|
||||
|
||||
await createSingleServers(strategy, { min_lifetime: '7 seconds', min_views: 0 })
|
||||
await createServers(strategy, { min_lifetime: '7 seconds', min_views: 0 })
|
||||
|
||||
await enableRedundancyOnServer1()
|
||||
|
||||
|
|
Loading…
Reference in New Issue