Fix server redundancy tests

This commit is contained in:
Chocobozzz 2018-11-15 10:07:44 +01:00
parent 2fbe7f1933
commit 742ddee1f1
No known key found for this signature in database
GPG Key ID: 583A612D890159BE
3 changed files with 17 additions and 11 deletions

View File

@ -185,11 +185,12 @@ export class VideosRedundancyScheduler extends AbstractScheduler {
} }
private async isTooHeavy (redundancy: VideosRedundancy, filesToDuplicate: VideoFileModel[]) { private async isTooHeavy (redundancy: VideosRedundancy, filesToDuplicate: VideoFileModel[]) {
const maxSize = redundancy.size - this.getTotalFileSizes(filesToDuplicate) const maxSize = redundancy.size
const totalDuplicated = await VideoRedundancyModel.getTotalDuplicated(redundancy.strategy) const totalDuplicated = await VideoRedundancyModel.getTotalDuplicated(redundancy.strategy)
const totalWillDuplicate = totalDuplicated + this.getTotalFileSizes(filesToDuplicate)
return totalDuplicated > maxSize return totalWillDuplicate > maxSize
} }
private buildNewExpiration (expiresAfterMs: number) { private buildNewExpiration (expiresAfterMs: number) {

View File

@ -293,6 +293,11 @@ export class VideoRedundancyModel extends Model<VideoRedundancyModel> {
} }
return VideoFileModel.sum('size', options as any) // FIXME: typings return VideoFileModel.sum('size', options as any) // FIXME: typings
.then(v => {
if (!v || isNaN(v)) return 0
return v
})
} }
static async listLocalExpired () { static async listLocalExpired () {

View File

@ -54,7 +54,7 @@ async function runServers (strategy: VideoRedundancyStrategy, additionalParams:
immutableAssign({ immutableAssign({
min_lifetime: '1 hour', min_lifetime: '1 hour',
strategy: strategy, strategy: strategy,
size: '100KB' size: '200KB'
}, additionalParams) }, additionalParams)
] ]
} }
@ -111,8 +111,8 @@ async function checkStatsWith2Webseed (strategy: VideoRedundancyStrategy) {
const stat = data.videosRedundancy[0] const stat = data.videosRedundancy[0]
expect(stat.strategy).to.equal(strategy) expect(stat.strategy).to.equal(strategy)
expect(stat.totalSize).to.equal(102400) expect(stat.totalSize).to.equal(204800)
expect(stat.totalUsed).to.be.at.least(1).and.below(102401) expect(stat.totalUsed).to.be.at.least(1).and.below(204800)
expect(stat.totalVideoFiles).to.equal(4) expect(stat.totalVideoFiles).to.equal(4)
expect(stat.totalVideos).to.equal(1) expect(stat.totalVideos).to.equal(1)
} }
@ -125,7 +125,7 @@ async function checkStatsWith1Webseed (strategy: VideoRedundancyStrategy) {
const stat = data.videosRedundancy[0] const stat = data.videosRedundancy[0]
expect(stat.strategy).to.equal(strategy) expect(stat.strategy).to.equal(strategy)
expect(stat.totalSize).to.equal(102400) expect(stat.totalSize).to.equal(204800)
expect(stat.totalUsed).to.equal(0) expect(stat.totalUsed).to.equal(0)
expect(stat.totalVideoFiles).to.equal(0) expect(stat.totalVideoFiles).to.equal(0)
expect(stat.totalVideos).to.equal(0) expect(stat.totalVideos).to.equal(0)
@ -223,7 +223,7 @@ describe('Test videos redundancy', function () {
return enableRedundancyOnServer1() return enableRedundancyOnServer1()
}) })
it('Should have 2 webseed on the first video', async function () { it('Should have 2 webseeds on the first video', async function () {
this.timeout(40000) this.timeout(40000)
await waitJobs(servers) await waitJobs(servers)
@ -270,7 +270,7 @@ describe('Test videos redundancy', function () {
return enableRedundancyOnServer1() return enableRedundancyOnServer1()
}) })
it('Should have 2 webseed on the first video', async function () { it('Should have 2 webseeds on the first video', async function () {
this.timeout(40000) this.timeout(40000)
await waitJobs(servers) await waitJobs(servers)
@ -338,7 +338,7 @@ describe('Test videos redundancy', function () {
await waitJobs(servers) await waitJobs(servers)
}) })
it('Should have 2 webseed on the first video', async function () { it('Should have 2 webseeds on the first video', async function () {
this.timeout(40000) this.timeout(40000)
await waitJobs(servers) await waitJobs(servers)
@ -399,7 +399,7 @@ describe('Test videos redundancy', function () {
await enableRedundancyOnServer1() await enableRedundancyOnServer1()
}) })
it('Should still have 2 webseeds after 10 seconds', async function () { it('Should still have 2 webseedss after 10 seconds', async function () {
this.timeout(40000) this.timeout(40000)
await wait(10000) await wait(10000)
@ -451,7 +451,7 @@ describe('Test videos redundancy', function () {
video2Server2UUID = res.body.video.uuid video2Server2UUID = res.body.video.uuid
}) })
it('Should cache video 2 webseed on the first video', async function () { it('Should cache video 2 webseeds on the first video', async function () {
this.timeout(120000) this.timeout(120000)
await waitJobs(servers) await waitJobs(servers)