Fix redundancy remove on host redundancy update
This commit is contained in:
parent
5a298a5a3d
commit
7b6cf83e33
|
@ -106,9 +106,11 @@ async function updateRedundancy (req: express.Request, res: express.Response) {
|
||||||
|
|
||||||
await server.save()
|
await server.save()
|
||||||
|
|
||||||
|
if (server.redundancyAllowed !== true) {
|
||||||
// Async, could be long
|
// Async, could be long
|
||||||
removeRedundanciesOfServer(server.id)
|
removeRedundanciesOfServer(server.id)
|
||||||
.catch(err => logger.error('Cannot remove redundancy of %s.', server.host, { err }))
|
.catch(err => logger.error('Cannot remove redundancy of %s.', server.host, { err }))
|
||||||
|
}
|
||||||
|
|
||||||
return res.status(HttpStatusCode.NO_CONTENT_204).end()
|
return res.status(HttpStatusCode.NO_CONTENT_204).end()
|
||||||
}
|
}
|
||||||
|
|
|
@ -470,16 +470,34 @@ export class VideoRedundancyModel extends Model<Partial<AttributesOnly<VideoRedu
|
||||||
|
|
||||||
const query = {
|
const query = {
|
||||||
where: {
|
where: {
|
||||||
|
[Op.and]: [
|
||||||
|
{
|
||||||
actorId: actor.id
|
actorId: actor.id
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
[Op.or]: [
|
||||||
|
{
|
||||||
|
'$VideoStreamingPlaylist.id$': {
|
||||||
|
[Op.ne]: null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'$VideoFile.id$': {
|
||||||
|
[Op.ne]: null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
include: [
|
include: [
|
||||||
{
|
{
|
||||||
model: VideoFileModel,
|
model: VideoFileModel.unscoped(),
|
||||||
required: false,
|
required: false,
|
||||||
include: [ buildVideoInclude() ]
|
include: [ buildVideoInclude() ]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
model: VideoStreamingPlaylistModel,
|
model: VideoStreamingPlaylistModel.unscoped(),
|
||||||
required: false,
|
required: false,
|
||||||
include: [ buildVideoInclude() ]
|
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[] = []
|
const strategies: any[] = []
|
||||||
|
|
||||||
if (strategy !== null) {
|
if (strategy !== null) {
|
||||||
|
@ -309,7 +309,7 @@ describe('Test videos redundancy', function () {
|
||||||
before(function () {
|
before(function () {
|
||||||
this.timeout(120000)
|
this.timeout(120000)
|
||||||
|
|
||||||
return createSingleServers(strategy)
|
return createServers(strategy)
|
||||||
})
|
})
|
||||||
|
|
||||||
it('Should have 1 webseed on the first video', async function () {
|
it('Should have 1 webseed on the first video', async function () {
|
||||||
|
@ -359,7 +359,7 @@ describe('Test videos redundancy', function () {
|
||||||
before(function () {
|
before(function () {
|
||||||
this.timeout(120000)
|
this.timeout(120000)
|
||||||
|
|
||||||
return createSingleServers(strategy)
|
return createServers(strategy)
|
||||||
})
|
})
|
||||||
|
|
||||||
it('Should have 1 webseed on the first video', async function () {
|
it('Should have 1 webseed on the first video', async function () {
|
||||||
|
@ -384,7 +384,20 @@ describe('Test videos redundancy', function () {
|
||||||
await checkStatsWith1Redundancy(strategy)
|
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)
|
this.timeout(80000)
|
||||||
|
|
||||||
await servers[0].follows.unfollow({ target: servers[1] })
|
await servers[0].follows.unfollow({ target: servers[1] })
|
||||||
|
@ -409,7 +422,7 @@ describe('Test videos redundancy', function () {
|
||||||
before(function () {
|
before(function () {
|
||||||
this.timeout(120000)
|
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 () {
|
it('Should have 1 webseed on the first video', async function () {
|
||||||
|
@ -480,7 +493,7 @@ describe('Test videos redundancy', function () {
|
||||||
before(async function () {
|
before(async function () {
|
||||||
this.timeout(120000)
|
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 () {
|
it('Should have 0 playlist redundancy on the first video', async function () {
|
||||||
|
@ -542,7 +555,7 @@ describe('Test videos redundancy', function () {
|
||||||
before(function () {
|
before(function () {
|
||||||
this.timeout(120000)
|
this.timeout(120000)
|
||||||
|
|
||||||
return createSingleServers(null)
|
return createServers(null)
|
||||||
})
|
})
|
||||||
|
|
||||||
it('Should have 1 webseed on the first video', async function () {
|
it('Should have 1 webseed on the first video', async function () {
|
||||||
|
@ -621,7 +634,7 @@ describe('Test videos redundancy', function () {
|
||||||
before(async function () {
|
before(async function () {
|
||||||
this.timeout(120000)
|
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()
|
await enableRedundancyOnServer1()
|
||||||
})
|
})
|
||||||
|
@ -663,7 +676,7 @@ describe('Test videos redundancy', function () {
|
||||||
before(async function () {
|
before(async function () {
|
||||||
this.timeout(120000)
|
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()
|
await enableRedundancyOnServer1()
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue