Update database_maintenance (#7037)

This commit is contained in:
frytimo
2024-07-05 20:37:50 -03:00
committed by GitHub
parent 9ec26f0244
commit 0ea012c494
2 changed files with 25 additions and 10 deletions

View File

@@ -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;

View File

@@ -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
}