2020-10-09 Fred Gleason <fredg@paravelsystems.com>

* Added an index to the 'GPIO_EVENTS.EVENT_DATETIME' field.
	* Incremented the database version to 342.
	* Implemented the '--verbose' switch for rdmaint(8).

Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
This commit is contained in:
Fred Gleason 2020-10-09 15:43:45 -04:00
parent 910be74180
commit 410de24139
8 changed files with 83 additions and 7 deletions

View File

@ -20442,3 +20442,7 @@
asserted after exiting when handling schedule import errors.
2020-10-09 Fred Gleason <fredg@paravelsystems.com>
* Updated rdservice(8) to use standard exit code defines.
2020-10-09 Fred Gleason <fredg@paravelsystems.com>
* Added an index to the 'GPIO_EVENTS.EVENT_DATETIME' field.
* Incremented the database version to 342.
* Implemented the '--verbose' switch for rdmaint(8).

View File

@ -24,7 +24,7 @@
/*
* Current Database Version
*/
#define RD_VERSION_DATABASE 341
#define RD_VERSION_DATABASE 342
#endif // DBVERSION_H

View File

@ -632,4 +632,9 @@
#define RD_EXIT_NO_PERMS 11 // Insufficient permissions
#define RD_EXIT_REPORT_FAILED 12 // Report generation failed
/*
* Shelf life for GPIO event records
*/
#define RD_GPIO_EVENT_DAYS 30
#endif // RD_H

View File

@ -40,6 +40,15 @@ bool MainObject::RevertSchema(int cur_schema,int set_schema,QString *err_msg)
// NEW SCHEMA REVERSIONS GO HERE...
//
// Revert 342
//
if((cur_schema==342)&&(set_schema<cur_schema)) {
DropIndex("GPIO_EVENTS","EVENT_DATETIME_IDX");
WriteSchemaVersion(--cur_schema);
}
//
// Revert 341
//
@ -47,6 +56,7 @@ bool MainObject::RevertSchema(int cur_schema,int set_schema,QString *err_msg)
DropColumn("IMPORTER_LINES","FILE_LINE");
DropColumn("IMPORTER_LINES","LINK_START_TIME");
DropColumn("IMPORTER_LINES","LINK_LENGTH");
WriteSchemaVersion(--cur_schema);
}

View File

@ -161,7 +161,7 @@ void MainObject::InitializeSchemaMap() {
global_version_map["3.2"]=311;
global_version_map["3.3"]=314;
global_version_map["3.4"]=317;
global_version_map["3.5"]=341;
global_version_map["3.5"]=342;
}

View File

@ -10363,6 +10363,16 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg)
WriteSchemaVersion(++cur_schema);
}
if((cur_schema<342)&&(set_schema>cur_schema)) {
sql=
QString("create index EVENT_DATETIME_IDX on GPIO_EVENTS(EVENT_DATETIME)");
if(!RDSqlQuery::apply(sql,err_msg)) {
return false;
}
WriteSchemaVersion(++cur_schema);
}
// NEW SCHEMA UPDATES GO HERE...

View File

@ -120,6 +120,8 @@ void MainObject::RunSystemMaintenance()
q=new RDSqlQuery(sql);
delete q;
PrintMessage("Starting System Maintenance");
PurgeCuts();
PurgeLogs();
PurgeElr();
@ -127,6 +129,8 @@ void MainObject::RunSystemMaintenance()
PurgeWebapiAuths();
PurgeStacks();
RehashCuts();
PrintMessage("Finished System Maintenance");
}
@ -138,6 +142,8 @@ void MainObject::RunLocalMaintenance()
void MainObject::PurgeCuts()
{
PrintMessage("Starting PurgeCuts()");
QString sql;
RDSqlQuery *q;
RDSqlQuery *q1;
@ -188,11 +194,15 @@ void MainObject::PurgeCuts()
delete q1;
}
delete q;
PrintMessage("Completed PurgeCuts()");
}
void MainObject::PurgeLogs()
{
PrintMessage("Starting PurgeLogs()");
QString sql;
RDSqlQuery *q;
QDateTime dt=QDateTime(QDate::currentDate(),QTime::currentTime());
@ -210,11 +220,15 @@ void MainObject::PurgeLogs()
delete log;
}
delete q;
PrintMessage("Completed PurgeLogs()");
}
void MainObject::PurgeElr()
{
PrintMessage("Starting PurgeElr()");
QString sql;
RDSqlQuery *q;
QDateTime dt=QDateTime(QDate::currentDate(),QTime::currentTime());
@ -233,11 +247,15 @@ void MainObject::PurgeElr()
RDSqlQuery::apply(sql);
}
delete q;
PrintMessage("Completed PurgeElr()");
}
void MainObject::PurgeDropboxes()
{
PrintMessage("Starting PurgeDropboxes()");
QString sql;
RDSqlQuery *q;
RDSqlQuery *q1;
@ -259,35 +277,46 @@ void MainObject::PurgeDropboxes()
}
}
delete q;
PrintMessage("Completed PurgeDropboxes()");
}
void MainObject::PurgeGpioEvents()
{
PrintMessage("Starting PurgeGpioEvents()");
QString sql;
RDSqlQuery *q;
sql=QString("delete from GPIO_EVENTS where ")+
"EVENT_DATETIME<\""+
QDate::currentDate().addDays(-30).toString("yyyy-MM-dd")+" 00:00:00\"";
q=new RDSqlQuery(sql);
delete q;
QDate::currentDate().addDays(-RD_GPIO_EVENT_DAYS).toString("yyyy-MM-dd")+" 00:00:00\"";
printf("SQL: %s\n",sql.toUtf8().constData());
RDSqlQuery::apply(sql);
PrintMessage("Starting Completed GpioEvents()");
}
void MainObject::PurgeWebapiAuths()
{
PrintMessage("Starting PurgeWebapiAuths()");
QString sql;
RDSqlQuery *q;
sql=QString("delete from WEBAPI_AUTHS where EXPIRATION_DATETIME<now()");
q=new RDSqlQuery(sql);
delete q;
PrintMessage("Completed PurgeWebapiAuths()");
}
void MainObject::PurgeStacks()
{
PrintMessage("Starting PurgeStacks()");
QString sql;
RDSqlQuery *q;
RDSqlQuery *q1;
@ -348,11 +377,15 @@ void MainObject::PurgeStacks()
delete q1;
}
delete q;
PrintMessage("Completed PurgeStacks()");
}
void MainObject::RehashCuts()
{
PrintMessage("Starting RehashCuts()");
QString sql;
RDSqlQuery *q;
RDRehash::ErrorCode err;
@ -377,9 +410,22 @@ void MainObject::RehashCuts()
sleep(1);
}
delete q;
PrintMessage("Completed RehashCuts()");
}
void MainObject::PrintMessage(const QString &msg) const
{
if(maint_verbose) {
printf("%s: %s\n",
QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss").
toUtf8().constData(),
msg.toUtf8().constData());
}
}
int main(int argc,char *argv[])
{
QApplication a(argc,argv,false);

View File

@ -45,6 +45,7 @@ class MainObject : public QObject
void PurgeWebapiAuths();
void PurgeStacks();
void RehashCuts();
void PrintMessage(const QString &msg) const;
bool maint_verbose;
bool maint_system;
};