mirror of
https://github.com/fusionpbx/fusionpbx.git
synced 2026-01-06 11:43:50 +00:00
Update database_maintenance (#7037)
This commit is contained in:
@@ -443,6 +443,14 @@
|
||||
$apps[$x]['default_settings'][$y]['default_setting_value'] = "#d4d4d4";
|
||||
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false";
|
||||
$apps[$x]['default_settings'][$y]['default_setting_description'] = "";
|
||||
$y++;
|
||||
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "b4cc1590-68fe-4eee-bf79-982b2ae626bd";
|
||||
$apps[$x]['default_settings'][$y]['default_setting_category'] = "cdr";
|
||||
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "database_retention_days";
|
||||
$apps[$x]['default_settings'][$y]['default_setting_name'] = "numeric";
|
||||
$apps[$x]['default_settings'][$y]['default_setting_value'] = "730";
|
||||
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true";
|
||||
$apps[$x]['default_settings'][$y]['default_setting_description'] = "Number of days maintenance application will retain logs in the database.";
|
||||
|
||||
//schema details
|
||||
$y=0;
|
||||
|
||||
@@ -2074,7 +2074,6 @@ if (!class_exists('xml_cdr')) {
|
||||
*/
|
||||
public static function database_maintenance(settings $settings): void {
|
||||
//set table name for query
|
||||
// $table = self::TABLE;
|
||||
$table = 'xml_cdr';
|
||||
|
||||
//get a database connection
|
||||
@@ -2087,31 +2086,31 @@ if (!class_exists('xml_cdr')) {
|
||||
//get domain settings
|
||||
$domain_settings = new settings(['database' => $database, 'domain_uuid' => $domain_uuid]);
|
||||
|
||||
//get the retention days for xml cdr table
|
||||
$xml_cdr_retention_days = $domain_settings->get('maintenance', self::class . '_database_retention_days', '');
|
||||
//get the retention days for xml cdr table using 'cdr' and 'database_retention_days'
|
||||
$xml_cdr_retention_days = $domain_settings->get('cdr', 'database_retention_days', '');
|
||||
|
||||
//get the retention days for xml cdr flow table
|
||||
if ($database->table_exists('xml_cdr_flow')) {
|
||||
$xml_cdr_flow_retention_days = $domain_settings->get('maintenance', 'xml_cdr_flow_database_retention_days', $xml_cdr_retention_days);
|
||||
$xml_cdr_flow_retention_days = $domain_settings->get('cdr', 'flow_database_retention_days', $xml_cdr_retention_days);
|
||||
} else {
|
||||
$xml_cdr_flow_retention_days = null;
|
||||
}
|
||||
|
||||
//get the retention days for xml cdr json table
|
||||
if ($database->table_exists('xml_cdr_json')) {
|
||||
$xml_cdr_json_retention_days = $domain_settings->get('maintenance', 'xml_cdr_json_database_retention_days', $xml_cdr_retention_days);
|
||||
$xml_cdr_json_retention_days = $domain_settings->get('cdr', 'json_database_retention_days', $xml_cdr_retention_days);
|
||||
} else {
|
||||
$xml_cdr_json_retention_days = null;
|
||||
}
|
||||
|
||||
//get the retention days for xml cdr logs table
|
||||
if ($database->table_exists('xml_cdr_logs')) {
|
||||
$xml_cdr_logs_retention_days = $domain_settings->get('maintenance', 'xml_cdr_logs_database_retention_days', $xml_cdr_retention_days);
|
||||
$xml_cdr_logs_retention_days = $domain_settings->get('cdr', 'logs_database_retention_days', $xml_cdr_retention_days);
|
||||
} else {
|
||||
$xml_cdr_logs_retention_days = null;
|
||||
}
|
||||
|
||||
//ensure we have a retention days
|
||||
//ensure we have retention days
|
||||
if (!empty($xml_cdr_retention_days) && is_numeric($xml_cdr_retention_days)) {
|
||||
|
||||
//clear out old xml_cdr records
|
||||
@@ -2127,7 +2126,7 @@ if (!class_exists('xml_cdr')) {
|
||||
}
|
||||
|
||||
//clear out old xml_cdr_flow records
|
||||
if ($xml_cdr_flow_retention_days !== null) {
|
||||
if (!empty($xml_cdr_flow_retention_days)) {
|
||||
$sql = "delete from v_xml_cdr_flow WHERE insert_date < NOW() - INTERVAL '{$xml_cdr_flow_retention_days} days'"
|
||||
. " and domain_uuid = '{$domain_uuid}";
|
||||
$database->execute($sql);
|
||||
@@ -2141,7 +2140,7 @@ if (!class_exists('xml_cdr')) {
|
||||
}
|
||||
|
||||
//clear out old xml_cdr_json records
|
||||
if ($xml_cdr_json_retention_days !== null) {
|
||||
if (!empty($xml_cdr_json_retention_days)) {
|
||||
$sql = "DELETE FROM v_xml_cdr_json WHERE insert_date < NOW() - INTERVAL '{$xml_cdr_json_retention_days} days'"
|
||||
. " and domain_uuid = '{$domain_uuid}";
|
||||
$database->execute($sql);
|
||||
@@ -2155,7 +2154,7 @@ if (!class_exists('xml_cdr')) {
|
||||
}
|
||||
|
||||
//clear out old xml_cdr_logs records
|
||||
if ($xml_cdr_logs_retention_days !== null) {
|
||||
if (!empty($xml_cdr_logs_retention_days)) {
|
||||
$sql = "DELETE FROM v_xml_cdr_logs WHERE insert_date < NOW() - INTERVAL '{$xml_cdr_logs_retention_days} days'"
|
||||
. " and domain_uuid = '{$domain_uuid}'";
|
||||
$database->execute($sql);
|
||||
@@ -2174,6 +2173,14 @@ if (!class_exists('xml_cdr')) {
|
||||
maintenance_service::log_flush();
|
||||
}
|
||||
|
||||
/**
|
||||
* Return CDR for the default settings category name instead of using the class name xml_cdr
|
||||
* @return string Returns 'CDR' for the name
|
||||
*/
|
||||
public static function database_maintenance_category(): string {
|
||||
return "cdr";
|
||||
}
|
||||
|
||||
} //class
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user