This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "FusionForge".
The branch, master has been updated
via 20251b685ca66319b686d210489f8e2b72979587 (commit)
from 9c0a01157e381a3fc31d8799f277341fc2cfbabb (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
https://scm.fusionforge.org/anonscm/gitweb/?p=fusionforge/fusionforge.git;a=commitdiff;h=20251b685ca66319b686d210489f8e2b72979587
commit 20251b685ca66319b686d210489f8e2b72979587
Author: Franck Villaume <[email protected]>
Date: Tue Jun 18 22:29:34 2019 +0200
quota_management: prepare the compute cronjob. fix HTML syntax. implement
basic compute for FRS support
diff --git
a/src/plugins/quota_management/common/quota_managementPlugin.class.php
b/src/plugins/quota_management/common/quota_managementPlugin.class.php
index bf7037d..072f9e0 100644
--- a/src/plugins/quota_management/common/quota_managementPlugin.class.php
+++ b/src/plugins/quota_management/common/quota_managementPlugin.class.php
@@ -24,6 +24,9 @@
*/
class quota_managementPlugin extends Plugin {
+
+ var $data_array;
+
function __construct() {
parent::__construct();
$this->name = "quota_management";
@@ -37,19 +40,17 @@ to monitor disk and database usage per user, project.");
}
function CallHook($hookname, &$params) {
- global $use_quota_managementplugin, $G_SESSION, $HTML;
$returned = false;
switch ($hookname) {
case "project_admin_plugins": {
// this displays the link in the project admin
options page to it's quota_management administration
- echo
util_make_link('/plugins/quota_management/index.php?group_id='.$params['group_id'].'&type=projectadmin',
- _('View the Quota Management
Administration'));
- echo '<br />';
+ echo html_e('p', array(),
util_make_link('/plugins/'.$this->name.'/?type=projectadmin&group_id='.$params['group_id'],
+ _('Quota Management
Administration')));
$returned = true;
break;
}
case "site_admin_option_hook": {
- echo '<li>'.$this->getAdminOptionLink().'</li>';
+ echo html_e('li', array(),
$this->getAdminOptionLink());
$returned = true;
break;
}
@@ -77,6 +78,32 @@ to monitor disk and database usage per user, project.");
return "$size";
}
+ function getDataArray($group_id) {
+ $res = db_query_params('select * from plugin_quota_management
WHERE group_id = $1', array($group_id));
+ $this->data_array = db_fetch_array($res);
+ }
+
+ function getFTPSize($group_id) {
+ if (!isset($this->data_array['ftp_usage'])) {
+ $this->getDataArray($group_id);
+ }
+ return $this->data_array['ftp_usage'];
+ }
+
+ function getHomeSize($group_id) {
+ if (!isset($this->data_array['home_usage'])) {
+ $this->getDataArray($group_id);
+ }
+ return $this->data_array['home_usage'];
+ }
+
+ function getQuota($group_id, $quota_type) {
+ if (!isset($this->data_array[$quota_type])) {
+ $this->getDataArray($group_id);
+ }
+ return $this->data_array[$quota_type];
+ }
+
function getHeader($type, $group_id = 0) {
switch ($type) {
case 'globaladmin': {
@@ -101,13 +128,13 @@ to monitor disk and database usage per user, project.");
}
function getDocumentsSizeForProject($group_id) {
- return db_query_params('SELECT doc_data.group_id,
SUM(doc_data_version.filesize) as size,
SUM(octet_length(doc_data_version.data_words)) as size1,
count(doc_data_version.serial_id) as nb
- FROM doc_data, doc_data_version WHERE
doc_data.docid = doc_data_version.docid AND doc_data.group_id = $1 GROUP BY
doc_data.group_id',
+ return db_query_params('SELECT SUM(doc_data_version.filesize)
as size, SUM(octet_length(doc_data_version.data_words)) as size1,
count(doc_data_version.serial_id) as nb
+ FROM doc_data, doc_data_version WHERE
doc_data.docid = doc_data_version.docid AND doc_data.group_id = $1',
array($group_id));
}
function getTrackerSizeForProject($group_id) {
- return db_query_params('select
SUM(octet_length(artifact.summary)+octet_length(artifact.details)+octet_length(artifact_message.body)+artifact_file.filesize)
as size, count(artifact_group_list.group_artifact_id) as nb
+ return db_query_params('SELECT
SUM(octet_length(artifact.summary)+octet_length(artifact.details)+octet_length(artifact_message.body)+artifact_file.filesize)
as size, count(artifact_group_list.group_artifact_id) as nb
FROM artifact, artifact_group_list,
artifact_message, artifact_file
WHERE artifact.group_artifact_id =
artifact_group_list.group_artifact_id
AND artifact.artifact_id =
artifact_message.artifact_id
@@ -115,6 +142,15 @@ to monitor disk and database usage per user, project.");
AND group_id = $1',
array($group_id));
}
+
+ function getFRSSizeForProject($group_id) {
+ return db_query_params('SELECT
SUM(octet_length(frs_package.name)+octet_length(frs_release.name)+octet_length(frs_release.notes)+octet_length(frs_release.changes)+frs_file.file_size)
as size, count(frs_package.package_id) as nb
+ FROM frs_package, frs_release, frs_file
+ WHERE frs_package.package_id =
frs_release.package_id
+ AND frs_release.release_id =
frs_file.release_id
+ AND group_id = $1',
+ array($group_id));
+ }
}
// Local Variables:
diff --git
a/src/plugins/quota_management/db/20190618_quota_management-add_storage_columns_for_compute.sql
b/src/plugins/quota_management/db/20190618_quota_management-add_storage_columns_for_compute.sql
new file mode 100644
index 0000000..e39ea9f
--- /dev/null
+++
b/src/plugins/quota_management/db/20190618_quota_management-add_storage_columns_for_compute.sql
@@ -0,0 +1,2 @@
+ALTER TABLE plugin_quota_management ADD COLUMN home_usage INT DEFAULT 0;
+ALTER TABLE plugin_quota_management ADD COLUMN ftp_usage INT DEFAULT 0;
diff --git a/src/plugins/quota_management/view/quota_project.php
b/src/plugins/quota_management/view/quota_project.php
index 65b1192..21f40b7 100644
--- a/src/plugins/quota_management/view/quota_project.php
+++ b/src/plugins/quota_management/view/quota_project.php
@@ -106,9 +106,20 @@ if ($group->usesTracker()) {
$quotas[] = $q;
}
+if ($group->usesFRS()) {
+ $res_db = $quota_management->getFRSSizeForProject($group_id);
+ $q["name"] = _('FRS');
+ $q["nb"] = 0; $q["size"] = 0;
+ if (db_numrows($res_db) > 0) {
+ $e = db_fetch_array($res_db);
+ $q["nb"] = $e["nb"];
+ $q["size"] = $e["size"];
+ }
+ $quotas[] = $q;
+}
+
$quotas_disk = array();
-// espace disque
// disk_total_space
$_quota_block_size = trim(shell_exec('echo $BLOCK_SIZE')) + 0;
if ($_quota_block_size == 0) $_quota_block_size = 1024;
@@ -128,18 +139,8 @@ $quota_tot_other = 0;
$quota_tot_1 = 0;
$quota_tot_scm = 0;
-$upload_dir = forge_get_config('upload_dir') . $group->getUnixName();
-$ftp_dir = forge_get_config('ftp_upload_dir')."/pub/".$group->getUnixName();
-$group_dir = forge_get_config('groupdir_prefix') . "/" . $group->getUnixName();
-
-$q["name"] = _('Download project directory');
-$q["path"] = "$upload_dir";
-$q["quota_label"] = _('Without quota control');
-$q["size"] = $quota_management->get_dir_size("$upload_dir");
-$quota_tot_other += $q["size"];
-$quotas_disk[] = $q;
-
if (forge_get_config('use_shell')) {
+ $group_dir = forge_get_config('groupdir_prefix') . "/" .
$group->getUnixName();
$q["name"] = _('Home project directory');
$q["path"] = "$group_dir"; $q["size"] =
$quota_management->get_dir_size("$group_dir");
$q["quota_label"] = _('With ftp and home quota control');
@@ -148,6 +149,7 @@ if (forge_get_config('use_shell')) {
}
if ($group->usesFTP()) {
+ $ftp_dir =
forge_get_config('ftp_upload_dir')."/pub/".$group->getUnixName();
$q["name"] = _('FTP project directory');
$q["path"] = "$ftp_dir"; $q["size"] =
$quota_management->get_dir_size("$ftp_dir");
$q["quota_label"] = _('With ftp and home quota control');
@@ -159,14 +161,14 @@ plugin_hook_by_reference('quota_display', $quotas_disk);
?>
-<table width="500px" cellpadding="2" cellspacing="0" border="0">
+<table width="500" cellpadding="2" cellspacing="0" border="0">
<tr style="font-weight:bold">
- <td colspan="3" style="border-top:thick solid #808080"
align="center"><?php echo _('Database'); ?></td>
+ <td colspan="3" style="border-top:thick solid #808080;
text-align: center"><?php echo _('Database'); ?></td>
</tr>
<tr style="font-weight:bold">
<td style="border-top:thin solid #808080"><?php echo _('quota
type'); ?></td>
- <td style="border-top:thin solid #808080" align="right"><?php
echo _('quantity'); ?></td>
- <td style="border-top:thin solid #808080" align="right"><?php
echo _('size'); ?></td>
+ <td style="border-top:thin solid #808080; text-align:
right"><?php echo _('quantity'); ?></td>
+ <td style="border-top:thin solid #808080; text-align:
right"><?php echo _('size'); ?></td>
</tr>
<?php
$sizetot = 0;
@@ -176,8 +178,8 @@ foreach ($quotas as $q) {
?>
<tr>
<td style="border-top:thin solid #808080"><?php
echo $q["name"]; ?></td>
- <td style="border-top:thin solid #808080"
align="right"><?php echo $q["nb"]; ?></td>
- <td style="border-top:thin solid #808080"
align="right"><?php echo human_readable_bytes($q["size"]); ?></td>
+ <td style="border-top:thin solid #808080;
text-align: right"><?php echo $q["nb"]; ?></td>
+ <td style="border-top:thin solid #808080;
text-align: right"><?php echo human_readable_bytes($q["size"]); ?></td>
</tr>
<?php
}
@@ -188,16 +190,17 @@ foreach ($quotas as $q) {
<?php echo _('Total'); ?>
</td>
<td style="border-top:thick solid #808080;border-bottom:thick
solid #808080"> </td>
- <td style="border-top:thick solid #808080;border-bottom:thick
solid #808080" align="right">
+ <td style="border-top:thick solid #808080;border-bottom:thick
solid #808080; text-align: right">
<?php echo human_readable_bytes($sizetot); ?>
</td>
</tr>
</table>
<br />
<br />
-<table width="500px" cellpadding="2" cellspacing="0" border="0">
+<?php if (count($quotas_disk) > 0) { ?>
+<table width="500" cellpadding="2" cellspacing="0" border="0">
<tr style="font-weight:bold">
- <td colspan="3" style="border-top:thick solid #808080"
align="center">
+ <td colspan="3" style="border-top:thick solid #808080;
text-align: center">
<?php echo _('Disk space'); ?>
</td>
</tr>
@@ -205,8 +208,8 @@ foreach ($quotas as $q) {
<td style="border-top:thin solid #808080">
<?php echo _('quota type'); ?>
</td>
- <td style="border-top:thin solid #808080"
align="right"> </td>
- <td style="border-top:thin solid #808080" align="right">
+ <td style="border-top:thin solid #808080; text-align:
right"> </td>
+ <td style="border-top:thin solid #808080; text-align: right">
<?php echo _('size'); ?>
</td>
</tr>
@@ -218,10 +221,10 @@ foreach ($quotas_disk as $q) {
?>
<tr>
<td style="border-top:thin solid #808080"><?php echo
$q["name"]; ?></td>
- <td style="border-top:thin solid #808080" align="right">
+ <td style="border-top:thin solid #808080; text-align: right">
<?php echo $q["quota_label"]; ?>
</td>
- <td style="border-top:thin solid #808080" align="right">
+ <td style="border-top:thin solid #808080; text-align: right">
<?php echo human_readable_bytes($q["size"]); ?>
</td>
</tr>
@@ -232,7 +235,7 @@ foreach ($quotas_disk as $q) {
<tr style="font-weight:bold">
<td style="border-top:thick solid #808080;border-bottom:thick
solid #808080"><?php echo _('Total'); ?></td>
<td style="border-top:thick solid #808080;border-bottom:thick
solid #808080"> </td>
- <td style="border-top:thick solid #808080;border-bottom:thick
solid #808080" align="right">
+ <td style="border-top:thick solid #808080;border-bottom:thick
solid #808080; text-align: right">
<?php echo human_readable_bytes($sizetot); ?>
</td>
</tr>
@@ -241,6 +244,7 @@ foreach ($quotas_disk as $q) {
<br />
<?php
+}
$color1 = "#ffffff";
$color2 = "#ffffff";
$msg1 = " ";
@@ -256,21 +260,21 @@ if (($quota_tot_scm+0) > ($qs+0) && ($qs+0) > 0) {
}
?>
-<table width="500px" cellpadding="2" cellspacing="0" border="0">
+<table width="500" cellpadding="2" cellspacing="0" border="0">
<tr style="font-weight:bold">
- <td colspan="4" style="border-top:thick solid #808080"
align="center"><?php echo _('Quota disk management'); ?></td>
+ <td colspan="4" style="border-top:thick solid #808080;
text-align: center"><?php echo _('Quota disk management'); ?></td>
</tr>
<tr style="font-weight:bold">
<td style="border-top:thin solid #808080">
<?php echo _('Quota settings'); ?>
</td>
- <td style="border-top:thin solid #808080;font-weight:bold"
align="right">
+ <td style="border-top:thin solid #808080;font-weight:bold;
text-align: right">
</td>
- <td style="border-top:thin solid #808080" align="right">
+ <td style="border-top:thin solid #808080; text-align: right">
<?php echo _('Quota soft'); ?>
</td>
- <td style="border-top:thin solid #808080" align="right">
+ <td style="border-top:thin solid #808080; text-align: right">
<?php echo _('Quota hard'); ?>
</td>
</tr>
@@ -278,10 +282,10 @@ if (($quota_tot_scm+0) > ($qs+0) && ($qs+0) > 0) {
<td style="border-top:thin solid #808080">
<?php echo _('Home, Ftp'); ?>
</td>
- <td style="border-top:thin solid
#808080;font-weight:bold;color:red" align="right">
+ <td style="border-top:thin solid
#808080;font-weight:bold;color:red; text-align: right">
<?php echo $msg1; ?>
</td>
- <td style="border-top:thin solid #808080" align="right">
+ <td style="border-top:thin solid #808080; text-align: right">
<?php
if ($quota_soft == 0) {
echo "---";
@@ -291,7 +295,7 @@ if (($quota_tot_scm+0) > ($qs+0) && ($qs+0) > 0) {
}
?>
</td>
- <td style="border-top:thin solid #808080" align="right">
+ <td style="border-top:thin solid #808080; text-align: right">
<?php
if ($quota_hard == 0) {
echo "---";
@@ -307,10 +311,10 @@ if (($quota_tot_scm+0) > ($qs+0) && ($qs+0) > 0) {
<td style="border-top:thin solid #808080">
<?php echo _('SCM'); ?>
</td>
- <td style="border-top:thin solid
#808080;font-weight:bold;color:red" align="right">
+ <td style="border-top:thin solid
#808080;font-weight:bold;color:red; text-align: right">
<?php echo $msg2; ?>
</td>
- <td style="border-top:thin solid #808080" align="right">
+ <td style="border-top:thin solid #808080; text-align: right">
<?php
if ($quota_soft == 0) {
echo "---";
@@ -320,7 +324,7 @@ if (($quota_tot_scm+0) > ($qs+0) && ($qs+0) > 0) {
}
?>
</td>
- <td style="border-top:thin solid #808080" align="right">
+ <td style="border-top:thin solid #808080; text-align: right">
<?php
if ($quota_hard == 0) {
echo "---";
@@ -333,7 +337,7 @@ if (($quota_tot_scm+0) > ($qs+0) && ($qs+0) > 0) {
</tr>
<?php } ?>
<tr style="font-weight:bold">
- <td colspan="4" style="border-top:thick solid #808080"
align="center"> </td>
+ <td colspan="4" style="border-top:thick solid
#808080"> </td>
</tr>
</table>
<?php project_admin_footer();
-----------------------------------------------------------------------
Summary of changes:
.../common/quota_managementPlugin.class.php | 52 +++++++++++---
..._management-add_storage_columns_for_compute.sql | 2 +
.../quota_management/view/quota_project.php | 80 ++++++++++++----------
3 files changed, 88 insertions(+), 46 deletions(-)
create mode 100644
src/plugins/quota_management/db/20190618_quota_management-add_storage_columns_for_compute.sql
hooks/post-receive
--
FusionForge
_______________________________________________
Fusionforge-commits mailing list
[email protected]
http://lists.fusionforge.org/cgi-bin/mailman/listinfo/fusionforge-commits