Skip to content

Commit

Permalink
saved current state;
Browse files Browse the repository at this point in the history
  • Loading branch information
F1ash committed Apr 19, 2015
1 parent a07ec56 commit 6c33043
Show file tree
Hide file tree
Showing 15 changed files with 81 additions and 49 deletions.
2 changes: 1 addition & 1 deletion CMakeLists.txt.user
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 3.3.2, 2015-04-18T16:03:51. -->
<!-- Written by QtCreator 3.3.2, 2015-04-19T11:06:36. -->
<qtcreator>
<data>
<variable>EnvironmentId</variable>
Expand Down
10 changes: 5 additions & 5 deletions src/task_warehouse/task_warehouse.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -130,8 +130,8 @@ void TaskWareHouse::addNewTask(virConnectPtr _conn, QStringList &_taskDesc, virC
if ( NULL!=cThread ) {
_taskDesc.removeFirst();
//qDebug()<<ACT<<_taskDesc;
connect(cThread, SIGNAL(errorMsg(QString)),
this, SLOT(msgRepeater(QString)));
connect(cThread, SIGNAL(errorMsg(QString&)),
this, SLOT(msgRepeater(QString&)));
connect(cThread, SIGNAL(resultData(Result)),
this, SLOT(taskResultReceiver(Result)));
cThread->setCurrentWorkConnect(
Expand All @@ -145,7 +145,7 @@ void TaskWareHouse::closeEvent(QCloseEvent *ev)
{
ev->ignore();
}
void TaskWareHouse::msgRepeater(QString msg)
void TaskWareHouse::msgRepeater(QString &msg)
{
QString time = QTime::currentTime().toString();
//QString title = QString("Connect '%1'").arg(currConnName);
Expand All @@ -169,8 +169,8 @@ void TaskWareHouse::taskResultReceiver(Result data)
threadPool->value(_number));
if ( NULL!=cThread ) {
//qDebug()<<_number<<"delete";
disconnect(cThread, SIGNAL(errorMsg(QString)),
this, SLOT(msgRepeater(QString)));
disconnect(cThread, SIGNAL(errorMsg(QString&)),
this, SLOT(msgRepeater(QString&)));
disconnect(cThread, SIGNAL(resultData(Result)),
this, SLOT(taskResultReceiver(Result)));
threadPool->value(_number)->quit();
Expand Down
2 changes: 1 addition & 1 deletion src/task_warehouse/task_warehouse.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ public slots:

private slots:
void closeEvent(QCloseEvent*);
void msgRepeater(QString);
void msgRepeater(QString&);
void taskResultReceiver(Result);
void setNewTooltip(QListWidgetItem*);
};
Expand Down
13 changes: 8 additions & 5 deletions src/virt_objects/control_thread.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -46,16 +46,19 @@ void ControlThread::sendConnErrors()
{
virtErrors = virConnGetLastError(currWorkConnect);
if ( virtErrors!=NULL && virtErrors->code>0 ) {
emit errorMsg( QString("VirtError(%1) : %2").arg(virtErrors->code)
.arg(QString().fromUtf8(virtErrors->message)) );
QString msg = QString("VirtError(%1) : %2").arg(virtErrors->code)
.arg(QString().fromUtf8(virtErrors->message));
emit errorMsg( msg );
virResetError(virtErrors);
} else sendGlobalErrors();
}
void ControlThread::sendGlobalErrors()
{
virtErrors = virGetLastError();
if ( virtErrors!=NULL && virtErrors->code>0 )
emit errorMsg( QString("VirtError(%1) : %2").arg(virtErrors->code)
.arg(QString().fromUtf8(virtErrors->message)) );
if ( virtErrors!=NULL && virtErrors->code>0 ) {
QString msg = QString("VirtError(%1) : %2").arg(virtErrors->code)
.arg(QString().fromUtf8(virtErrors->message));
emit errorMsg( msg );
};
virResetLastError();
}
4 changes: 2 additions & 2 deletions src/virt_objects/control_thread.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,21 +23,21 @@ class ControlThread : public QThread
virErrorPtr virtErrors;

signals:
void errorMsg(QString);
void errorMsg(QString&);
void resultData(Result);

public slots:
bool setCurrentWorkConnect(
virConnectPtr,
uint i=0,
QString _name="");
void stop();

void sendConnErrors();
void sendGlobalErrors();

virtual void execAction(Actions, QStringList);
virtual void run();
virtual void stop();
};

#endif // CONTROL_THREAD_H
2 changes: 1 addition & 1 deletion src/virt_objects/virt_connect/conn_alive_thread.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -239,7 +239,7 @@ int ConnAliveThread::domEventCallback(virConnectPtr _conn, virDomainPtr dom, in
{
ConnAliveThread *obj = static_cast<ConnAliveThread*>(opaque);
QString msg;
msg = QString("EVENT: <b>'%1'</b> Domain %2 %3\n")
msg = QString("<font color='blue'><b>EVENT</b></font>: <b>'%1'</b> Domain %2 %3\n")
.arg(virDomainGetName(dom))
.arg(obj->eventToString(event))
.arg(obj->eventDetailToString(event, detail));
Expand Down
6 changes: 4 additions & 2 deletions src/virt_objects/virt_domain/domain_control_thread.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -188,7 +188,8 @@ Result DomControlThread::createDomain()
QFile f;
f.setFileName(path);
if ( !f.open(QIODevice::ReadOnly) ) {
emit errorMsg( QString("File \"%1\"\nnot opened.").arg(path) );
QString msg = QString("File \"%1\"\nnot opened.").arg(path);
emit errorMsg( msg );
return result;
};
xmlData = f.readAll();
Expand All @@ -213,7 +214,8 @@ Result DomControlThread::defineDomain()
QFile f;
f.setFileName(path);
if ( !f.open(QIODevice::ReadOnly) ) {
emit errorMsg( QString("File \"%1\"\nnot opened.").arg(path) );
QString msg = QString("File \"%1\"\nnot opened.").arg(path);
emit errorMsg( msg );
return result;
};
xmlData = f.readAll();
Expand Down
3 changes: 2 additions & 1 deletion src/virt_objects/virt_entity_control.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@ void VirtEntityControl::msgRepeater(QString msg)
{
QString time = QTime::currentTime().toString();
QString title = QString("Connect '%1'").arg(currConnName);
QString currMsg = QString("<b>%1 %2:</b><br>ACTION: %3").arg(time).arg(title).arg(msg);
QString currMsg = QString("<b>%1 %2:</b><br><font color='green'><b>ACTION</b></font>: %3")
.arg(time).arg(title).arg(msg);
emit entityMsg(currMsg);
}
6 changes: 4 additions & 2 deletions src/virt_objects/virt_network/net_control_thread.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,8 @@ Result NetControlThread::createNetwork()
QFile f;
f.setFileName(path);
if ( !f.open(QIODevice::ReadOnly) ) {
emit errorMsg( QString("File \"%1\"\nnot opened.").arg(path) );
QString msg = QString("File \"%1\"\nnot opened.").arg(path);
emit errorMsg( msg );
return result;
};
xmlData = f.readAll();
Expand All @@ -130,7 +131,8 @@ Result NetControlThread::defineNetwork()
QFile f;
f.setFileName(path);
if ( !f.open(QIODevice::ReadOnly) ) {
emit errorMsg( QString("File \"%1\"\nnot opened.").arg(path) );
QString msg = QString("File \"%1\"\nnot opened.").arg(path);
emit errorMsg( msg );
return result;
};
xmlData = f.readAll();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,8 @@ Result StoragePoolControlThread::createStoragePool()
QFile f;
f.setFileName(path);
if ( !f.open(QIODevice::ReadOnly) ) {
emit errorMsg( QString("File \"%1\"\nnot opened.").arg(path) );
QString msg = QString("File \"%1\"\nnot opened.").arg(path);
emit errorMsg( msg );
result.result = false;
return result;
};
Expand Down Expand Up @@ -144,7 +145,8 @@ Result StoragePoolControlThread::defineStoragePool()
QFile f;
f.setFileName(path);
if ( !f.open(QIODevice::ReadOnly) ) {
emit errorMsg( QString("File \"%1\"\nnot opened.").arg(path) );
QString msg = QString("File \"%1\"\nnot opened.").arg(path);
emit errorMsg( msg );
result.result = false;
return result;
};
Expand Down
17 changes: 12 additions & 5 deletions src/virt_objects/virt_storage_vol/storage_vol_control_thread.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,8 @@ Result StorageVolControlThread::createStorageVol()
QFile f;
f.setFileName(path);
if ( !f.open(QIODevice::ReadOnly) ) {
emit errorMsg( QString("File \"%1\"\nnot opened.").arg(path) );
QString msg = QString("File \"%1\"\nnot opened.").arg(path);
emit errorMsg( msg );
result.result = false;
return result;
};
Expand Down Expand Up @@ -247,7 +248,11 @@ Result StorageVolControlThread::downloadStorageVol()
saved = f->write(buf, got);
//qDebug()<<"got<>saved"<<got<<saved<<step;
if ( saved+1 ) length += saved;
else emit errorMsg( QString("WriteError after (%2): %1 bytes").arg(length).arg(step) );
else {
QString msg = QString("WriteError after (%2): %1 bytes")
.arg(length).arg(step);
emit errorMsg( msg );
};
};
virStreamFinish(stream);
};
Expand Down Expand Up @@ -284,7 +289,8 @@ Result StorageVolControlThread::resizeStorageVol()
// See for: <a href='https://bugzilla.redhat.com/show_bug.cgi?id=1021802'>Red Hat Bugzilla #1021802</a>
if ( ret<0 ) {
sendConnErrors();
emit errorMsg("ResizeError: Maybe <a href='https://bugzilla.redhat.com/show_bug.cgi?id=1021802'>Red Hat Bugzilla #1021802</a>");
QString msg("ResizeError: Maybe <a href='https://bugzilla.redhat.com/show_bug.cgi?id=1021802'>Red Hat Bugzilla #1021802</a>");
emit errorMsg(msg);
} else resized = true;
virStorageVolFree(storageVol);
} else sendConnErrors();
Expand Down Expand Up @@ -326,8 +332,9 @@ Result StorageVolControlThread::uploadStorageVol()
got = f->read(buf, BLOCK_SIZE);
if (got == 0) break;
if ( got<0 ) {
emit errorMsg( QString("ReadError after (%2): %1 bytes")
.arg(length).arg(step) );
QString msg = QString("ReadError after (%2): %1 bytes")
.arg(length).arg(step);
emit errorMsg( msg );
} else {
saved = virStreamSend(stream, buf, got);
if (saved < 0) {
Expand Down
17 changes: 13 additions & 4 deletions src/vm_viewer/lxc/lxc_viewer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -29,20 +29,24 @@ LXC_Viewer::LXC_Viewer(
}
LXC_Viewer::~LXC_Viewer()
{
//qDebug()<<"LXC_Viewer destroy:";
qDebug()<<"LXC_Viewer destroy:";
if ( NULL!=viewerThread ) {
disconnect(viewerThread, SIGNAL(termEOF()),
this, SLOT(startCloseProcess()));
disconnect(viewerThread, SIGNAL(errorMsg(QString&)),
this, SLOT(sendErrMsg(QString&)));
qDebug()<<"viewer thread disconnected";
delete viewerThread;
viewerThread = NULL;
qDebug()<<"viewer thread deleted";
};
QString msg, key;
msg = QString("In '<b>%1</b>': Display destroyed.")
.arg(domain);
sendErrMsg(msg);
key = QString("%1_%2").arg(connName).arg(domain);
emit finished(key);
//qDebug()<<"LXC_Viewer destroyed";
qDebug()<<"LXC_Viewer destroyed";
}

/* public slots */
Expand Down Expand Up @@ -89,6 +93,8 @@ void LXC_Viewer::setTerminalParameters()
viewerThread, SLOT(sendDataToVMachine(const char*,int)));
connect(viewerThread, SIGNAL(termEOF()),
this, SLOT(startCloseProcess()));
connect(viewerThread, SIGNAL(errorMsg(QString&)),
this, SLOT(sendErrMsg(QString&)));
viewerThread->start();
if ( viewerThread->keep_alive ) {
QString msg = QString("In '<b>%1</b>': Stream Registation success. \
Expand All @@ -112,7 +118,10 @@ PTY opened. Terminal is active.").arg(domain);
}
void LXC_Viewer::closeEvent(QCloseEvent *ev)
{
viewerThread->stop();
ev->ignore();
this->deleteLater();
qDebug()<<"closeEvent";
if ( NULL!=viewerThread ) {
viewerThread->stop();
this->deleteLater();
};
}
37 changes: 20 additions & 17 deletions src/vm_viewer/lxc/lxc_viewer_thread.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,14 @@ LXC_ViewerThread::LXC_ViewerThread(QObject *parent) :
}
LXC_ViewerThread::~LXC_ViewerThread()
{
closeStream();
bool closed = wait(60000);
qDebug()<<"delete thread:"<<closed;
if (!closed) {
setTerminationEnabled(true);
terminate();
closed = wait(60000);
qDebug()<<"delete thread:"<<closed;
};
}

/* public slots */
Expand All @@ -26,13 +33,6 @@ void LXC_ViewerThread::run()
sendConnErrors();
keep_alive = false;
} else {
/*
* Older servers did not support either flag,
* and also did not forbid simultaneous clients on a console,
* with potentially confusing results.
* When passing @flags of 0 in order to support a wider range of server versions,
* it is up to the client to ensure mutual exclusion.
*/
int ret = -1;
QString msg;
if ( ret=virDomainOpenConsole( domainPtr, NULL, stream, VIR_DOMAIN_CONSOLE_SAFE)+1 ) {
Expand All @@ -49,18 +49,20 @@ void LXC_ViewerThread::run()
emit errorMsg(msg);
sendConnErrors();
};
//qDebug()<<msg<<"msg";
if ( ret<0 ) {
keep_alive = false;
} else if ( registerStreamEvents()<0 ) {
keep_alive = false;
};
};
//qDebug()<<keep_alive<<stream;
while (keep_alive) {
msleep(100);
};
}
void LXC_ViewerThread::stop()
{
if ( isRunning() ) closeStream();
}

/* private slots */
int LXC_ViewerThread::registerStreamEvents()
Expand All @@ -83,7 +85,7 @@ int LXC_ViewerThread::unregisterStreamEvents()
}
void LXC_ViewerThread::freeData(void *opaque)
{
if ( opaque!=NULL ) {
if ( NULL!=opaque ) {
void *data = opaque;
free(data);
}
Expand Down Expand Up @@ -111,6 +113,7 @@ void LXC_ViewerThread::updateStreamEvents(virStreamPtr _stream, int type)
}
void LXC_ViewerThread::sendDataToDisplay(virStreamPtr _stream)
{
if ( NULL==_stream ) return;
QString msg;
char buff[BLOCK_SIZE];
memset( buff, '\0', BLOCK_SIZE );
Expand All @@ -123,10 +126,10 @@ void LXC_ViewerThread::sendDataToDisplay(virStreamPtr _stream)
// Received EOF from stream, closing
closeStream();
write(ptySlaveFd, "\nEOF...", 7);
msg = QString("In '<b>%1</b>': EOF.");
msg = QString("In '<b>%1</b>': EOF.").arg(domain);
emit errorMsg(msg);
emit termEOF();
//qDebug()<<"EOF emited";
qDebug()<<"EOF emited";
return;
case -1:
// Error stream
Expand Down Expand Up @@ -158,8 +161,8 @@ void LXC_ViewerThread::sendDataToVMachine(const char *buff, int got)
}
void LXC_ViewerThread::closeStream()
{
//qDebug()<<"stream close:";
if ( stream!=NULL ) {
qDebug()<<"stream close:";
if ( NULL!=stream ) {
if ( virStreamEventUpdateCallback(
stream,
VIR_STREAM_EVENT_READABLE |
Expand All @@ -171,8 +174,8 @@ void LXC_ViewerThread::closeStream()
if ( virStreamFinish(stream)+1 )
virStreamFree(stream);
stream = NULL;
//qDebug()<<"stream closed";
qDebug()<<"stream closed";
};
//qDebug()<<"stream closed already";
qDebug()<<"stream closed already";
keep_alive = false;
}
1 change: 1 addition & 0 deletions src/vm_viewer/lxc/lxc_viewer_thread.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ class LXC_ViewerThread : public ControlThread
public slots:
void setData(QString&, virDomainPtr, int);
void run();
void stop();
int registerStreamEvents();
void sendDataToVMachine(const char*, int);

Expand Down
4 changes: 3 additions & 1 deletion src/vm_viewer/vm_viewer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,8 @@ void VM_Viewer::sendErrMsg(QString &msg)
{
QString time = QTime::currentTime().toString();
QString title = QString("Connect '%1'").arg(connName);
QString errMsg = QString("<b>%1 %2:</b><br>%3").arg(time).arg(title).arg(msg);
QString errMsg = QString("<b>%1 %2:</b><br><font color='blue'><b>EVENT</b></font>: %3")
.arg(time).arg(title).arg(msg);
emit errorMsg(errMsg);
}

Expand Down Expand Up @@ -149,6 +150,7 @@ void VM_Viewer::resendExecMethod(const QStringList &method)
}
void VM_Viewer::startCloseProcess()
{
qDebug()<<"startCloseProcess";
killTimerId = startTimer(PERIOD);
statusBar()->show();
//qDebug()<<killTimerId<<"killTimer";
Expand Down

0 comments on commit 6c33043

Please sign in to comment.