Modifications à SFTP suite aux essais à Angrignon

This commit is contained in:
jfmartel 2023-11-30 14:26:40 -05:00
parent 9bb392673f
commit f70e09eda7
5 changed files with 23 additions and 8 deletions

View File

@ -117,6 +117,7 @@ NETWORK_SHARE_DOMAIN=metro
#Adresse du serveur
#SFTP_SERVER_ADDRESS=127.0.0.1
#Répertoire de destination sur le serveur (doit finir par un "/")
#SFTP_DESTINATION=
#SFTP_DESTINATION=/Transfert$/vers_corpo/CT/
#----------------------------------
@ -129,6 +130,6 @@ SFTP_LOGIN=zonetest
SFTP_PASSWORD=zonetest
#Adresse du serveur
SFTP_SERVER_ADDRESS=127.0.0.1
#Répertoire de destination sur le serveur (doit finir par un "/")
SFTP_DESTINATION=/home/zonetest/DevZT/test/
#Répertoire de destination sur le serveur. Doit être vide pour le client SFTP.
SFTP_DESTINATION=

1
password Normal file
View File

@ -0,0 +1 @@
zonetest

View File

@ -1,3 +1,3 @@
put ./Trains/LOGZT1_2023-11-27-07-28-45-323.bin /home/zonetest/DevZT/test/CVRT-D-LOGZT1_2023-11-27-07-28-45-323.bin
put ./LOG/LogZT.txt /home/zonetest/DevZT/test/CVRT-LogZT.txt
put ./ING/IngLog.txt /home/zonetest/DevZT/test/CVRT-IngLog.txt
put ./Trains/LOGZT1_2023-11-30-14-20-10-677.bin CVRT-D-LOGZT1_2023-11-30-14-20-10-677.bin
put ./LOG/LogZT.txt CVRT-LogZT.txt
put ./ING/IngLog.txt CVRT-IngLog.txt

View File

@ -32,6 +32,18 @@ int CSFTPServerManager::InitFTPServerManager(bool EnableSFTPClient, QString SFTP
mTransferProcess = new QProcess(this);
connect(mTransferProcess,SIGNAL(finished(int,QProcess::ExitStatus)),this,SLOT(ProcessFinished(int,QProcess::ExitStatus)));
QFile *PWDFile = new QFile("./password");
if(PWDFile->open(QFile::ReadWrite | QFile::Truncate | QFile::Text | QFile::Unbuffered) == false)
{
qDebug("Imposible d'ouvrir le fichier password");
PWDFile->close();
delete PWDFile;
}
PWDFile->write(qPrintable(SFTPPassword));
PWDFile->close();
delete PWDFile;
return RET_OK;
}
@ -97,7 +109,7 @@ int CSFTPServerManager::TransferTrainLogToSFTPServer(QString FileName, bool Dete
SFTPBatchFile->close();
delete SFTPBatchFile;
Cmd = QString ("sshpass -p \"%1\" sftp -oBatchMode=no -b ./sftpbatch %2@%3").arg(mSFTPPassword).arg(mSFTPLogin).arg(mSFTPServerAddress);
Cmd = QString ("sshpass -f ./password sftp -oBatchMode=no -b ./sftpbatch %1@%2").arg(mSFTPLogin).arg(mSFTPServerAddress);
#endif
@ -124,7 +136,8 @@ void CSFTPServerManager::NewTrainFileSaved(QString Filename, bool Detection)
void CSFTPServerManager::ProcessFinished(int ExitCode, QProcess::ExitStatus ExitStatus)
{
CEngLog::instance()->AddLogString(QString("Process SFTP terminé. Exit code: %1 || Exit status: %2 || Output: %3 || Erreur: %4 || stdout: %5").arg(ExitCode).arg(ExitStatus).arg(qPrintable(mTransferProcess->readAllStandardOutput())).arg(qPrintable(mTransferProcess->readAllStandardError())).arg(qPrintable(mTransferProcess->readAll())));
// qDebug("stdout: %s",qPrintable(mTransferProcess->readAll()));
mProcessTimer->stop();
// qDebug("stdout: %s",qPrintable(mTransferProcess->readAll()));
}
void CSFTPServerManager::ProcessTimerExpired()

View File

@ -6,7 +6,7 @@
#include <QTimer>
//#define USE_SCP
#define SFTP_PROCESS_TIMEOUT 2000 //millisecs
#define SFTP_PROCESS_TIMEOUT 60000 //60s -- Le délai typique est de 45 secondes pour compléter le transfert.
class CSFTPServerManager : public QObject
{