Fixing issue 82
Fixing old issue 44
This commit is contained in:
parent
f6447abf59
commit
2d814d43e8
109
indefero/scripts/calculateforgecron.php
Normal file
109
indefero/scripts/calculateforgecron.php
Normal file
@ -0,0 +1,109 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get a forge size.
|
||||||
|
*
|
||||||
|
* @return array Associative array with the size of each element
|
||||||
|
*/
|
||||||
|
function IDF_Views_Admin_getForgeSize($force=false)
|
||||||
|
{
|
||||||
|
$conf = new IDF_Gconf();
|
||||||
|
$conf->setModel((object) array('_model'=>'IDF_Forge', 'id'=> 1));
|
||||||
|
$res = array();
|
||||||
|
$res['repositories'] = 0;
|
||||||
|
foreach (Pluf::factory('IDF_Project')->getList() as $prj) {
|
||||||
|
$size = $prj->getRepositorySize($force);
|
||||||
|
if ($size != -1) {
|
||||||
|
$res['repositories'] += $size;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$last_eval = $conf->getVal('downloads_size_check_date', 0);
|
||||||
|
if (Pluf::f('idf_no_size_check', false) or
|
||||||
|
(!$force and $last_eval > time()-172800)) {
|
||||||
|
$res['downloads'] = $conf->getVal('downloads_size', 0);
|
||||||
|
} else {
|
||||||
|
$conf->setVal('downloads_size_check_date', time());
|
||||||
|
$total = 0;
|
||||||
|
foreach(Pluf::factory("IDF_Upload")->getList() as $issuefile)
|
||||||
|
{
|
||||||
|
$total += $issuefile->filesize;
|
||||||
|
}
|
||||||
|
$res['downloads'] = $total;
|
||||||
|
$conf->setVal('downloads_size', $res['downloads']);
|
||||||
|
}
|
||||||
|
$last_eval = $conf->getVal('attachments_size_check_date', 0);
|
||||||
|
if (Pluf::f('idf_no_size_check', false) or
|
||||||
|
(!$force and $last_eval > time()-172800)) {
|
||||||
|
$res['attachments'] = $conf->getVal('attachments_size', 0);
|
||||||
|
} else {
|
||||||
|
$total = 0;
|
||||||
|
foreach(Pluf::factory("IDF_IssueFile")->getList() as $issuefile)
|
||||||
|
{
|
||||||
|
$total += $issuefile->filesize;
|
||||||
|
}
|
||||||
|
$res['attachments'] = $total;
|
||||||
|
$conf->setVal('attachments_size_check_date', time());
|
||||||
|
$conf->setVal('attachments_size', $res['attachments']);
|
||||||
|
}
|
||||||
|
$last_eval = $conf->getVal('database_size_check_date', 0);
|
||||||
|
if (Pluf::f('idf_no_size_check', false) or
|
||||||
|
(!$force and $last_eval > time()-172800)) {
|
||||||
|
$res['database'] = $conf->getVal('database_size', 0);
|
||||||
|
} else {
|
||||||
|
$conf->setVal('database_size_check_date', time());
|
||||||
|
$res['database'] = IDF_Views_Admin_getForgeDbSize();
|
||||||
|
$conf->setVal('database_size', $res['database']);
|
||||||
|
}
|
||||||
|
$res['total'] = $res['repositories'] + $res['downloads'] + $res['attachments'] + $res['database'];
|
||||||
|
return $res;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the database size as given by the database.
|
||||||
|
*
|
||||||
|
* @return int Database size
|
||||||
|
*/
|
||||||
|
function IDF_Views_Admin_getForgeDbSize()
|
||||||
|
{
|
||||||
|
$db = Pluf::db();
|
||||||
|
if (Pluf::f('db_engine') == 'SQLite') {
|
||||||
|
return filesize(Pluf::f('db_database'));
|
||||||
|
}
|
||||||
|
switch (Pluf::f('db_engine')) {
|
||||||
|
case 'PostgreSQL':
|
||||||
|
$sql = 'SELECT relname, pg_total_relation_size(CAST(relname AS
|
||||||
|
TEXT)) AS size FROM pg_class AS pgc, pg_namespace AS pgn
|
||||||
|
WHERE pg_table_is_visible(pgc.oid) IS TRUE AND relkind = \'r\'
|
||||||
|
AND pgc.relnamespace = pgn.oid
|
||||||
|
AND pgn.nspname NOT IN (\'information_schema\', \'pg_catalog\')';
|
||||||
|
break;
|
||||||
|
case 'MySQL':
|
||||||
|
default:
|
||||||
|
$sql = 'SHOW TABLE STATUS FROM `'.Pluf::f('db_database').'`';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
$rs = $db->select($sql);
|
||||||
|
$total = 0;
|
||||||
|
switch (Pluf::f('db_engine')) {
|
||||||
|
case 'PostgreSQL':
|
||||||
|
foreach ($rs as $table) {
|
||||||
|
$total += $table['size'];
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 'MySQL':
|
||||||
|
default:
|
||||||
|
foreach ($rs as $table) {
|
||||||
|
$total += $table['Data_length'] + $table['Index_length'];
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return $total;
|
||||||
|
}
|
||||||
|
|
||||||
|
require dirname(__FILE__).'/../src/IDF/conf/path.php';
|
||||||
|
require 'Pluf.php';
|
||||||
|
Pluf::start(dirname(__FILE__).'/../src/IDF/conf/idf.php');
|
||||||
|
|
||||||
|
Pluf_Dispatcher::loadControllers(Pluf::f('idf_views'));
|
||||||
|
|
||||||
|
IDF_Views_Admin_getForgeSize(true);
|
@ -628,14 +628,16 @@ function IDF_Views_Admin_getForgeSize($force=false)
|
|||||||
}
|
}
|
||||||
$last_eval = $conf->getVal('downloads_size_check_date', 0);
|
$last_eval = $conf->getVal('downloads_size_check_date', 0);
|
||||||
if (Pluf::f('idf_no_size_check', false) or
|
if (Pluf::f('idf_no_size_check', false) or
|
||||||
(!$force and $last_eval > time()-172800)) {
|
(!$force and $last_eval > time()-172800)) {
|
||||||
$res['downloads'] = $conf->getVal('downloads_size', 0);
|
$res['downloads'] = $conf->getVal('downloads_size', 0);
|
||||||
} else {
|
} else {
|
||||||
$conf->setVal('downloads_size_check_date', time());
|
$conf->setVal('downloads_size_check_date', time());
|
||||||
$cmd = Pluf::f('idf_exec_cmd_prefix', '').'du -sk '
|
$total = 0;
|
||||||
.escapeshellarg(Pluf::f('upload_path'));
|
foreach(Pluf::factory("IDF_Upload")->getList() as $issuefile)
|
||||||
$out = explode(' ', shell_exec($cmd), 2);
|
{
|
||||||
$res['downloads'] = $out[0]*1024;
|
$total += $issuefile->filesize;
|
||||||
|
}
|
||||||
|
$res['downloads'] = $total;
|
||||||
$conf->setVal('downloads_size', $res['downloads']);
|
$conf->setVal('downloads_size', $res['downloads']);
|
||||||
}
|
}
|
||||||
$last_eval = $conf->getVal('attachments_size_check_date', 0);
|
$last_eval = $conf->getVal('attachments_size_check_date', 0);
|
||||||
@ -643,11 +645,13 @@ function IDF_Views_Admin_getForgeSize($force=false)
|
|||||||
(!$force and $last_eval > time()-172800)) {
|
(!$force and $last_eval > time()-172800)) {
|
||||||
$res['attachments'] = $conf->getVal('attachments_size', 0);
|
$res['attachments'] = $conf->getVal('attachments_size', 0);
|
||||||
} else {
|
} else {
|
||||||
|
$total = 0;
|
||||||
|
foreach(Pluf::factory("IDF_IssueFile")->getList() as $issuefile)
|
||||||
|
{
|
||||||
|
$total += $issuefile->filesize;
|
||||||
|
}
|
||||||
|
$res['attachments'] = $total;
|
||||||
$conf->setVal('attachments_size_check_date', time());
|
$conf->setVal('attachments_size_check_date', time());
|
||||||
$cmd = Pluf::f('idf_exec_cmd_prefix', '').'du -sk '
|
|
||||||
.escapeshellarg(Pluf::f('upload_path'));
|
|
||||||
$out = explode(' ', shell_exec($cmd), 2);
|
|
||||||
$res['attachments'] = $out[0]*1024;
|
|
||||||
$conf->setVal('attachments_size', $res['attachments']);
|
$conf->setVal('attachments_size', $res['attachments']);
|
||||||
}
|
}
|
||||||
$last_eval = $conf->getVal('database_size_check_date', 0);
|
$last_eval = $conf->getVal('database_size_check_date', 0);
|
||||||
|
Loading…
Reference in New Issue
Block a user