mirror of
https://github.com/ElvishArtisan/rivendell.git
synced 2025-06-03 01:22:42 +02:00
Fixed QSqlDatabase warnings
This commit is contained in:
parent
bec85018a3
commit
74739cad2e
@ -42,100 +42,96 @@ bool CreateDb::create(QWidget *parent,QString *err_str,RDConfig *rd_config)
|
||||
//
|
||||
// Open Database
|
||||
//
|
||||
if (!db.isOpen()){
|
||||
db=QSqlDatabase::addDatabase(rd_config->mysqlDriver(),"createDb");
|
||||
if(!db.isValid()) {
|
||||
*err_str+= QString(QObject::tr("Couldn't initialize MySql driver!"));
|
||||
return true;
|
||||
}
|
||||
db.setHostName(db_host);
|
||||
db.setDatabaseName("mysql");
|
||||
db.setUserName(db_user);
|
||||
db.setPassword(db_pass);
|
||||
if(!db.open()) {
|
||||
*err_str+=QString(QObject::tr("Couldn't open MySQL connection on"))+
|
||||
" \""+db_host+"\".";
|
||||
db.removeDatabase(db.connectionName());
|
||||
db.close();
|
||||
return true;
|
||||
}
|
||||
QSqlDatabase db=QSqlDatabase::addDatabase(rd_config->mysqlDriver(),"createDb");
|
||||
if(!db.isValid()) {
|
||||
*err_str+= QString(QObject::tr("Couldn't initialize MySql driver!"));
|
||||
return true;
|
||||
}
|
||||
|
||||
QSqlQuery *q;
|
||||
db.setHostName(db_host);
|
||||
db.setDatabaseName("mysql");
|
||||
db.setUserName(db_user);
|
||||
db.setPassword(db_pass);
|
||||
if(!db.open()) {
|
||||
*err_str+=QString().sprintf("Couldn't open MySQL connection on %s",(const char *)db_host);
|
||||
return true;
|
||||
}
|
||||
|
||||
sql=QString().sprintf("drop database if exists `%s`",(const char *)db_name);
|
||||
q=new QSqlQuery(sql,db);
|
||||
if (!q->isActive()) {
|
||||
*err_str+=QString(QObject::tr("Could not remove old database"));
|
||||
return true;
|
||||
}
|
||||
delete q;
|
||||
QSqlQuery *q;
|
||||
|
||||
sql=QString().sprintf("create database if not exists `%s`",(const char *)db_name);
|
||||
q=new QSqlQuery(sql,db);
|
||||
if (!q->isActive()) {
|
||||
*err_str+=QString(QObject::tr("Could not create new database"));
|
||||
return true;
|
||||
}
|
||||
delete q;
|
||||
sql=QString().sprintf("drop database if exists `%s`",(const char *)db_name);
|
||||
q=new QSqlQuery(sql,db);
|
||||
if (!q->isActive()) {
|
||||
*err_str+=QString(QObject::tr("Could not remove old database"));
|
||||
return true;
|
||||
}
|
||||
delete q;
|
||||
|
||||
//
|
||||
// Drop any existing 'rduser'@'%' and 'rduser'@'localhost' users
|
||||
//
|
||||
sql=QString().sprintf("drop user '%s'@'%%'",(const char *)rd_config->mysqlUsername());
|
||||
q=new QSqlQuery(sql,db);
|
||||
delete q;
|
||||
sql=QString().sprintf("drop user '%s'@'localhost'",(const char *)rd_config->mysqlUsername());
|
||||
q=new QSqlQuery(sql,db);
|
||||
delete q;
|
||||
sql=QString().sprintf("create database if not exists `%s`",(const char *)db_name);
|
||||
q=new QSqlQuery(sql,db);
|
||||
if (!q->isActive()) {
|
||||
*err_str+=QString(QObject::tr("Could not create new database"));
|
||||
return true;
|
||||
}
|
||||
delete q;
|
||||
|
||||
sql=QString("flush privileges");
|
||||
q=new QSqlQuery(sql,db);
|
||||
delete q;
|
||||
//
|
||||
// Drop any existing 'rduser'@'%' and 'rduser'@'localhost' users
|
||||
//
|
||||
sql=QString().sprintf("drop user '%s'@'%%'",(const char *)rd_config->mysqlUsername());
|
||||
q=new QSqlQuery(sql,db);
|
||||
delete q;
|
||||
sql=QString().sprintf("drop user '%s'@'localhost'",(const char *)rd_config->mysqlUsername());
|
||||
q=new QSqlQuery(sql,db);
|
||||
delete q;
|
||||
|
||||
sql=QString().sprintf("create user '%s'@'%%' identified by \"%s\"",
|
||||
(const char *)rd_config->mysqlUsername(),(const char *)rd_config->mysqlPassword());
|
||||
q=new QSqlQuery(sql,db);
|
||||
if (!q->isActive()) {
|
||||
*err_str+=QString().sprintf("Could not create user: '%s'@'%%'",(const char *)sql);
|
||||
return true;
|
||||
}
|
||||
delete q;
|
||||
sql=QString("flush privileges");
|
||||
q=new QSqlQuery(sql,db);
|
||||
delete q;
|
||||
|
||||
sql=QString().sprintf("create user '%s'@'localhost' identified by \"%s\"",
|
||||
(const char *)rd_config->mysqlUsername(),(const char *)rd_config->mysqlPassword());
|
||||
q=new QSqlQuery(sql,db);
|
||||
if (!q->isActive()) {
|
||||
*err_str+=QString().sprintf("Could not create user: '%s'@'localhost'",(const char *)sql);
|
||||
return true;
|
||||
}
|
||||
delete q;
|
||||
sql=QString().sprintf("create user '%s'@'%%' identified by \"%s\"",
|
||||
(const char *)rd_config->mysqlUsername(),(const char *)rd_config->mysqlPassword());
|
||||
q=new QSqlQuery(sql,db);
|
||||
if (!q->isActive()) {
|
||||
*err_str+=QString().sprintf("Could not create user: '%s'@'%%'",(const char *)sql);
|
||||
return true;
|
||||
}
|
||||
delete q;
|
||||
|
||||
sql=QString().sprintf("grant SELECT, INSERT, UPDATE, DELETE, CREATE, DROP,\
|
||||
INDEX, ALTER, LOCK TABLES on %s.* to %s",
|
||||
(const char *)db_name, (const char *)rd_config->mysqlUsername());
|
||||
q=new QSqlQuery(sql,db);
|
||||
if (!q->isActive()) {
|
||||
*err_str+=QString().sprintf("Could not set permissions: %s",(const char *)sql);
|
||||
return true;
|
||||
}
|
||||
delete q;
|
||||
sql=QString().sprintf("create user '%s'@'localhost' identified by \"%s\"",
|
||||
(const char *)rd_config->mysqlUsername(),(const char *)rd_config->mysqlPassword());
|
||||
q=new QSqlQuery(sql,db);
|
||||
if (!q->isActive()) {
|
||||
*err_str+=QString().sprintf("Could not create user: '%s'@'localhost'",(const char *)sql);
|
||||
return true;
|
||||
}
|
||||
delete q;
|
||||
|
||||
sql=QString("flush privileges");
|
||||
q=new QSqlQuery(sql,db);
|
||||
delete q;
|
||||
sql=QString().sprintf("grant SELECT, INSERT, UPDATE, DELETE, CREATE, DROP,\
|
||||
INDEX, ALTER, LOCK TABLES on %s.* to %s",
|
||||
(const char *)db_name, (const char *)rd_config->mysqlUsername());
|
||||
q=new QSqlQuery(sql,db);
|
||||
if (!q->isActive()) {
|
||||
*err_str+=QString().sprintf("Could not set permissions: %s",(const char *)sql);
|
||||
return true;
|
||||
}
|
||||
delete q;
|
||||
|
||||
QProcess rddbmgrProcess(parent);
|
||||
QStringList args;
|
||||
args << QString("--create");
|
||||
QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
|
||||
rddbmgrProcess.start(QString(RD_PREFIX)+"/sbin/rddbmgr",args);
|
||||
rddbmgrProcess.waitForFinished();
|
||||
QApplication::restoreOverrideCursor();
|
||||
if (rddbmgrProcess.exitCode()) {
|
||||
*err_str+=QString().sprintf("Failed to create %s database. Rddbmgr exit code=%d",
|
||||
(const char *)db_name,rddbmgrProcess.exitCode());
|
||||
return true;
|
||||
}
|
||||
sql=QString("flush privileges");
|
||||
q=new QSqlQuery(sql,db);
|
||||
delete q;
|
||||
|
||||
QProcess rddbmgrProcess(parent);
|
||||
QStringList args;
|
||||
args << QString("--create");
|
||||
QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
|
||||
rddbmgrProcess.start(QString(RD_PREFIX)+"/sbin/rddbmgr",args);
|
||||
rddbmgrProcess.waitForFinished();
|
||||
QApplication::restoreOverrideCursor();
|
||||
if (rddbmgrProcess.exitCode()) {
|
||||
*err_str+=QString().sprintf("Failed to create %s database. Rddbmgr exit code=%d",
|
||||
(const char *)db_name,rddbmgrProcess.exitCode());
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
@ -143,14 +139,16 @@ bool CreateDb::create(QWidget *parent,QString *err_str,RDConfig *rd_config)
|
||||
|
||||
CreateDb::~CreateDb()
|
||||
{
|
||||
if(db.isOpen()) {
|
||||
db.removeDatabase(db_name);
|
||||
{
|
||||
QSqlDatabase db=QSqlDatabase::database("createDb");
|
||||
db.close();
|
||||
}
|
||||
QSqlDatabase::removeDatabase("createDb");
|
||||
}
|
||||
|
||||
bool CreateDb::isOpen()
|
||||
{
|
||||
QSqlDatabase db=QSqlDatabase::database("createDb");
|
||||
return db.isOpen();
|
||||
}
|
||||
|
||||
|
@ -39,7 +39,6 @@ class CreateDb
|
||||
QString db_name;
|
||||
QString db_user;
|
||||
QString db_pass;
|
||||
QSqlDatabase db;
|
||||
};
|
||||
|
||||
#endif // CREATEDB_H
|
||||
|
@ -31,43 +31,41 @@ Db::Db(QString *err_str,RDConfig *config)
|
||||
//
|
||||
// Open Database
|
||||
//
|
||||
if (!db.isOpen()){
|
||||
db=QSqlDatabase::addDatabase(config->mysqlDriver());
|
||||
if(!db.isValid()) {
|
||||
*err_str+= QString(QObject::tr("Couldn't initialize MySql driver!"));
|
||||
return;
|
||||
}
|
||||
db.setHostName(config->mysqlHostname());
|
||||
db.setDatabaseName(config->mysqlDbname());
|
||||
db.setUserName(config->mysqlUsername());
|
||||
db.setPassword(config->mysqlPassword());
|
||||
if(!db.open()) {
|
||||
*err_str+=QString(QObject::tr("Couldn't open MySQL connection on"))+
|
||||
" \""+config->mysqlHostname()+"\".";
|
||||
db.removeDatabase(config->mysqlDbname());
|
||||
db.close();
|
||||
return;
|
||||
}
|
||||
|
||||
q=new QSqlQuery("select DB from VERSION");
|
||||
if(q->first()) {
|
||||
db_schema=q->value(0).toUInt();
|
||||
}
|
||||
delete q;
|
||||
QSqlDatabase db=QSqlDatabase::addDatabase(config->mysqlDriver(),"Rivendell");
|
||||
if(!db.isValid()) {
|
||||
*err_str+= QString(QObject::tr("Couldn't initialize MySql driver!"));
|
||||
return;
|
||||
}
|
||||
db.setHostName(config->mysqlHostname());
|
||||
db.setDatabaseName(config->mysqlDbname());
|
||||
db.setUserName(config->mysqlUsername());
|
||||
db.setPassword(config->mysqlPassword());
|
||||
if(!db.open()) {
|
||||
*err_str+=QString().sprintf("Couldn't open MySQL connection on %s",
|
||||
(const char *)config->mysqlHostname());
|
||||
return;
|
||||
}
|
||||
|
||||
q=new QSqlQuery("select DB from VERSION",db);
|
||||
if(q->first()) {
|
||||
db_schema=q->value(0).toUInt();
|
||||
}
|
||||
delete q;
|
||||
}
|
||||
|
||||
|
||||
Db::~Db()
|
||||
{
|
||||
if(db.isOpen()) {
|
||||
// db.removeDatabase(config->mysqlDbname());
|
||||
{
|
||||
QSqlDatabase db=QSqlDatabase::database("Rivendell");
|
||||
db.close();
|
||||
}
|
||||
QSqlDatabase::removeDatabase("Rivendell");
|
||||
}
|
||||
|
||||
bool Db::isOpen()
|
||||
{
|
||||
QSqlDatabase db=QSqlDatabase::database("Rivendell");
|
||||
return db.isOpen();
|
||||
}
|
||||
|
||||
|
@ -34,7 +34,6 @@ class Db
|
||||
unsigned schema();
|
||||
|
||||
private:
|
||||
QSqlDatabase db;
|
||||
unsigned db_schema;
|
||||
};
|
||||
|
||||
|
@ -176,13 +176,12 @@ void MainWidget::updateLabels()
|
||||
db = new Db(&err_msg,rd_config);
|
||||
|
||||
if (!db->isOpen()) {
|
||||
label_schema->setVisible(false);
|
||||
label_schema->setText("DB Version: unknown");
|
||||
db_backup_button->setEnabled(false);
|
||||
db_restore_button->setEnabled(false);
|
||||
}
|
||||
else {
|
||||
label_schema->setText(QString().sprintf("DB Version: %d",db->schema()));
|
||||
label_schema->setVisible(true);
|
||||
db_backup_button->setEnabled(true);
|
||||
db_restore_button->setEnabled(true);
|
||||
}
|
||||
@ -211,7 +210,10 @@ void MainWidget::createData()
|
||||
|
||||
mysql_login=new MySqlLogin(msg,&hostname,&dbname,&admin_name,&admin_pwd);
|
||||
|
||||
mysql_login->exec();
|
||||
if(mysql_login->exec()) {
|
||||
delete mysql_login;
|
||||
return;
|
||||
}
|
||||
|
||||
delete mysql_login;
|
||||
|
||||
@ -231,11 +233,11 @@ void MainWidget::createData()
|
||||
QMessageBox::information(this,tr("Success"),tr("A new database has been successfully created."));
|
||||
}
|
||||
|
||||
delete db_create;
|
||||
startDaemons();
|
||||
|
||||
updateLabels();
|
||||
|
||||
startDaemons();
|
||||
delete db_create;
|
||||
}
|
||||
|
||||
|
||||
@ -346,24 +348,52 @@ void MainWidget::resizeEvent(QResizeEvent *e)
|
||||
}
|
||||
|
||||
|
||||
int MainWidget::statusDaemons(QString service)
|
||||
{
|
||||
QProcess statusProcess(this);
|
||||
QStringList args;
|
||||
args << "status" << service;
|
||||
statusProcess.start("systemctl", args);
|
||||
statusProcess.waitForFinished();
|
||||
return statusProcess.exitCode();
|
||||
}
|
||||
|
||||
void MainWidget::stopDaemons()
|
||||
{
|
||||
QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
|
||||
if(!statusDaemons("rivendell")) {
|
||||
QProcess stopProcess(this);
|
||||
QStringList args;
|
||||
args << "stop" << "rivendell";
|
||||
stopProcess.start("systemctl", args);
|
||||
stopProcess.waitForFinished();
|
||||
if (!stopProcess.exitCode()) {
|
||||
db_daemon_start_needed=true;
|
||||
}
|
||||
}
|
||||
QApplication::restoreOverrideCursor();
|
||||
#if 0
|
||||
if(system("/usr/bin/systemctl status rivendell")==0) {
|
||||
QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
|
||||
system("/usr/bin/systemctl stop rivendell");
|
||||
QApplication::restoreOverrideCursor();
|
||||
db_daemon_start_needed=true;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
void MainWidget::startDaemons()
|
||||
{
|
||||
if(db_daemon_start_needed) {
|
||||
QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
|
||||
system("/usr/bin/systemctl start rivendell");
|
||||
QApplication::restoreOverrideCursor();
|
||||
QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
|
||||
if(statusDaemons("rivendell")) {
|
||||
QProcess startProcess(this);
|
||||
QStringList args;
|
||||
args << "start" << "rivendell";
|
||||
startProcess.start("systemctl", args);
|
||||
startProcess.waitForFinished();
|
||||
}
|
||||
QApplication::restoreOverrideCursor();
|
||||
}
|
||||
|
||||
|
||||
|
@ -46,6 +46,7 @@ class MainWidget : public QWidget
|
||||
QSizePolicy sizePolicy() const;
|
||||
|
||||
private slots:
|
||||
int statusDaemons(QString service);
|
||||
void stopDaemons();
|
||||
void startDaemons();
|
||||
void createData();
|
||||
|
Loading…
x
Reference in New Issue
Block a user