mirror of https://github.com/Chocobozzz/PeerTube
Fix redundancy totalVideos stats
parent
660d11e91e
commit
ebdb612458
|
@ -11,7 +11,6 @@ import { getServerActor } from '../../helpers/utils'
|
|||
import { sendCreateCacheFile, sendUpdateCacheFile } from '../activitypub/send'
|
||||
import { VideoModel } from '../../models/video/video'
|
||||
import { getVideoCacheFileActivityPubUrl } from '../activitypub/url'
|
||||
import { isTestInstance } from '../../helpers/core-utils'
|
||||
import { removeVideoRedundancy } from '../redundancy'
|
||||
|
||||
export class VideosRedundancyScheduler extends AbstractScheduler {
|
||||
|
|
|
@ -286,8 +286,8 @@ export class VideoRedundancyModel extends Model<VideoRedundancyModel> {
|
|||
raw: true,
|
||||
attributes: [
|
||||
[ Sequelize.fn('COALESCE', Sequelize.fn('SUM', Sequelize.col('VideoFile.size')), '0'), 'totalUsed' ],
|
||||
[ Sequelize.fn('COUNT', Sequelize.fn('DISTINCT', 'videoId')), 'totalVideos' ],
|
||||
[ Sequelize.fn('COUNT', 'videoFileId'), 'totalVideoFiles' ]
|
||||
[ Sequelize.fn('COUNT', Sequelize.fn('DISTINCT', Sequelize.col('videoId'))), 'totalVideos' ],
|
||||
[ Sequelize.fn('COUNT', Sequelize.col('videoFileId')), 'totalVideoFiles' ]
|
||||
],
|
||||
where: {
|
||||
strategy,
|
||||
|
|
|
@ -9,7 +9,7 @@ import {
|
|||
getFollowingListPaginationAndSort,
|
||||
getVideo,
|
||||
immutableAssign,
|
||||
killallServers,
|
||||
killallServers, makeGetRequest,
|
||||
root,
|
||||
ServerInfo,
|
||||
setAccessTokensToServers,
|
||||
|
@ -147,11 +147,22 @@ async function check2Webseeds (strategy: VideoRedundancyStrategy, videoUUID?: st
|
|||
}
|
||||
}
|
||||
|
||||
const files = await readdir(join(root(), 'test1', 'videos'))
|
||||
expect(files).to.have.lengthOf(4)
|
||||
for (const url of [ 'http://localhost:9001', 'http://localhost:9002' ]) {
|
||||
await makeGetRequest({
|
||||
url,
|
||||
statusCodeExpected: 200,
|
||||
path: '/static/webseed/' + videoUUID,
|
||||
contentType: null
|
||||
})
|
||||
}
|
||||
|
||||
for (const resolution of [ 240, 360, 480, 720 ]) {
|
||||
expect(files.find(f => f === `${videoUUID}-${resolution}.mp4`)).to.not.be.undefined
|
||||
for (const directory of [ 'test1', 'test2' ]) {
|
||||
const files = await readdir(join(root(), directory, 'videos'))
|
||||
expect(files).to.have.length.at.least(4)
|
||||
|
||||
for (const resolution of [ 240, 360, 480, 720 ]) {
|
||||
expect(files.find(f => f === `${videoUUID}-${resolution}.mp4`)).to.not.be.undefined
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -7,20 +7,20 @@ function makeGetRequest (options: {
|
|||
path: string,
|
||||
query?: any,
|
||||
token?: string,
|
||||
statusCodeExpected?: number
|
||||
statusCodeExpected?: number,
|
||||
contentType?: string
|
||||
}) {
|
||||
if (!options.statusCodeExpected) options.statusCodeExpected = 400
|
||||
if (options.contentType === undefined) options.contentType = 'application/json'
|
||||
|
||||
const req = request(options.url)
|
||||
.get(options.path)
|
||||
.set('Accept', 'application/json')
|
||||
|
||||
if (options.contentType) req.set('Accept', options.contentType)
|
||||
if (options.token) req.set('Authorization', 'Bearer ' + options.token)
|
||||
if (options.query) req.query(options.query)
|
||||
|
||||
return req
|
||||
.expect('Content-Type', /json/)
|
||||
.expect(options.statusCodeExpected)
|
||||
return req.expect(options.statusCodeExpected)
|
||||
}
|
||||
|
||||
function makeDeleteRequest (options: {
|
||||
|
|
Loading…
Reference in New Issue