Index: bk_manager/trunk/functions/functions.py =================================================================== diff --git a/bk_manager/trunk/functions/functions.py b/bk_manager/trunk/functions/functions.py --- a/bk_manager/trunk/functions/functions.py (revision 84) +++ b/bk_manager/trunk/functions/functions.py (revision 85) @@ -308,6 +308,11 @@ var_cmd = "cp -rfv "+var_output[1] .split()[-1]+"/ "+var_Rpath_tmpdata+"/" return var_cmd +def cmd_manual_check(var_data_dir, var_TDpath): + + var_cmd = "cp -rfv "+var_data_dir+"/ "+var_TDpath+"/" + return var_cmd + def remove_iso(self): var_Rpath_iso=self.var_Rpath+"/iso" Index: bk_manager/trunk/functions/functions2.py =================================================================== diff --git a/bk_manager/trunk/functions/functions2.py b/bk_manager/trunk/functions/functions2.py --- a/bk_manager/trunk/functions/functions2.py (revision 84) +++ b/bk_manager/trunk/functions/functions2.py (revision 85) @@ -80,6 +80,23 @@ return var_dev_sr +#----------------------------------- expulsa los dispositivos de grabacion -------------------------------------------- +def mounted_devices(): + var_output=commands.getstatusoutput('df -hT | grep tmpfs') + + if var_output[0] != 0: + return "FATAL ERROR" + + else: + if len(var_output[1]) == 0: + return "FATAL ERROR" + + list_dirs = [] + for var_dir in var_output[1].split('\n'): + list_dirs.append(var_dir.split()[-1]) + + return list_dirs + #----------------------------------- listado de los dispositivos de grabacion seleccionados -------------------------------------------- @@ -222,7 +239,7 @@ #---------------------------------------------- Actualiza estado en los labels ------------------------------------------------------- -def update_message(type, message, self, index=0, ): +def update_message(type, message, self, index=0): if index == 0: var_index = ( ( (self.var_disc_n - 1) * self.var_Copys) + (self.var_copy_n - 1) - self.var_burned_discs ) % len(self.var_devices) else: Index: bk_manager/trunk/ui/MainWindow.py =================================================================== diff --git a/bk_manager/trunk/ui/MainWindow.py b/bk_manager/trunk/ui/MainWindow.py --- a/bk_manager/trunk/ui/MainWindow.py (revision 84) +++ b/bk_manager/trunk/ui/MainWindow.py (revision 85) @@ -43,6 +43,7 @@ self.var_real_burn = True self.var_real_check = True self.var_real_eject = True + self.var_real_manual_check = True self.var_real_show_cmd = True else: @@ -50,8 +51,9 @@ self.var_real_detect_devices = False self.var_real_iso = False self.var_real_burn = False - self.var_real_check = True + self.var_real_check = False self.var_real_eject = False + self.var_real_manual_check = False self.var_real_show_cmd = True if self.var_real_detect_devices == True: @@ -121,6 +123,10 @@ self.connect(self.process_check, QtCore.SIGNAL('readyReadStandardError()'), self.readError_check) self.connect(self.process_check, QtCore.SIGNAL('finished(int,QProcess::ExitStatus)'), self.finished_check) + self.process_manual_check = QtCore.QProcess() + self.connect(self.process_manual_check, QtCore.SIGNAL('readyReadStandardOutput()'), self.readOuput_manual_check) + self.connect(self.process_manual_check, QtCore.SIGNAL('readyReadStandardError()'), self.readError_manual_check) + self.connect(self.process_manual_check, QtCore.SIGNAL('finished(int,QProcess::ExitStatus)'), self.finished_manual_check) def changeParameters(self): dlg=QtGui.QDialog() @@ -485,6 +491,50 @@ functions.is_last_disc_and_copy(self) +#----------------------------------------------------- Funciones del proceso de verificacion manual --------------------------------------------------------------- + + def readOuput_manual_check(self): + self.txtProgress.setText("stdout check: " + QtCore.QString(self.process_manual_check.readAllStandardOutput())) + + def readError_manual_check(self): + self.txtProgress.setText("stderr check: " + QtCore.QString(self.process_manual_check.readAllStandardError())) + + def finished_manual_check(self): + self.txtProgress.clear() + + if not(self.bool_state_manual_check): + return + + if self.process_manual_check.exitCode() == 0: + self.txtInfo.append("--------Complete checking, disc: "+str(self.var_n_check_dirs + 1)) + functions2.update_message(2, "CHECKED", self, index=self.var_n_check_dirs) + + else: + self.txtInfo.append("#######Error checking, disc: "+str(self.var_n_check_dirs + 1) + +", code "+QtCore.QString(self.process_manual_check.exitCode())) + functions2.update_message(2, "ERROR", self, index=self.var_n_check_dirs) + + #borrar el contenido de tmpdata + var_tmpdata=self.var_Rpath+"/tmpdata" + + bool_return = functions.remove_dir(var_tmpdata, self) + if not(bool_return): + self.txtInfo.append("Error deleting directory: "+var_tmpdata) + self.bool_state_burning = False + return + + bool_return = functions.make_dir(var_tmpdata, self) + if not(bool_return): + self.txtInfo.append("Error creating directory:"+ var_tmpdata) + self.bool_state_burning = False + return + + if self.var_n_check_dirs >= len(self.list_check_dirs) : + self.bool_state_manual_check = False + return + + self.var_n_check_dirs +=1 + self.manual_check() #============================================================================== @@ -656,6 +706,8 @@ self.var_TDpath= str(QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly)) self.txtTDpath.setText(self.var_TDpath) self.statusTDpath = functions.dir_exists(self.var_TDpath, self) + if self.statusTDpath: + self.btnCHstart.setEnabled(True) @pyqtSignature("") @@ -663,4 +715,44 @@ """ Slot documentation goes here. """ - pass + list_dirs = functions2.mounted_devices() + if list_dirs == "FATAL ERROR": + self.txtInfo.append("ERROR") + return + + for i in list_dirs: + self.txtInfo.append(i) + + self.list_check_dirs = list_dirs #contiene los directorios donde estan montados los discos a verificar + self.var_n_check_dirs = 0 + self.bool_state_manual_check = True + + self.btnTDpath.setEnabled(False) #Deshabilito el boton que permite cambiar la ruta de verificacion + self.btnCHstart.setText("STOP") #Cambio el texto del boton + + self.function_manual_check() + + + def function_manual_check(self): + + #Verificacion de los discos + if self.bool_state_manual_check == True: + + self.txtInfo.append("-----------manually checking disc: "+self.var_n_check_dirs + +" data"+self.list_check_dirs[self.var_n_check_dirs]) + + functions2.update_message(2, "CHECKING", self, index=self.var_n_check_dirs) + + var_data_dir = self.list_check_dirs[self.var_n_check_dirs] #Carpeta donde esta montado el disco actual + + var_cmd = functions.cmd_manual_check(var_data_dir, self.var_TDpath) + + if self.var_real_show_cmd == True: + self.txtInfo.append("CMD: "+var_cmd) + + if self.var_real_manual_check == False: + self.txtInfo.append('**function_manual_check') + var_cmd="echo 'function_manual_check'" + + self.process_manual_check.start(var_cmd) + Index: bk_manager/trunk/ui/Ui_About.py =================================================================== diff --git a/bk_manager/trunk/ui/Ui_About.py b/bk_manager/trunk/ui/Ui_About.py --- a/bk_manager/trunk/ui/Ui_About.py (revision 84) +++ b/bk_manager/trunk/ui/Ui_About.py (revision 85) @@ -2,8 +2,8 @@ # Form implementation generated from reading ui file '/home/ricardoar/JRO_SVN/eric4/jro_backup_manager/ui/About.ui' # -# Created: Tue May 25 00:54:30 2010 -# by: PyQt4 UI code generator 4.7.2 +# Created: Wed May 26 16:31:58 2010 +# by: PyQt4 UI code generator 4.6 # # WARNING! All changes made in this file will be lost! Index: bk_manager/trunk/ui/Ui_MainWindow.py =================================================================== diff --git a/bk_manager/trunk/ui/Ui_MainWindow.py b/bk_manager/trunk/ui/Ui_MainWindow.py --- a/bk_manager/trunk/ui/Ui_MainWindow.py (revision 84) +++ b/bk_manager/trunk/ui/Ui_MainWindow.py (revision 85) @@ -2,8 +2,8 @@ # Form implementation generated from reading ui file '/home/ricardoar/JRO_SVN/eric4/jro_backup_manager/ui/MainWindow.ui' # -# Created: Tue May 25 00:54:29 2010 -# by: PyQt4 UI code generator 4.7.2 +# Created: Wed May 26 16:31:57 2010 +# by: PyQt4 UI code generator 4.6 # # WARNING! All changes made in this file will be lost! @@ -12,7 +12,7 @@ class Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") - MainWindow.resize(621, 717) + MainWindow.resize(824, 717) self.centralwidget = QtGui.QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") self.verticalLayout = QtGui.QVBoxLayout(self.centralwidget) @@ -458,6 +458,7 @@ self.horizontalLayout_17.addItem(spacerItem13) self.txtTDpath = QtGui.QLineEdit(self.tabStatus) self.txtTDpath.setEnabled(False) + self.txtTDpath.setReadOnly(True) self.txtTDpath.setObjectName("txtTDpath") self.horizontalLayout_17.addWidget(self.txtTDpath) self.btnTDpath = QtGui.QPushButton(self.tabStatus) @@ -576,7 +577,7 @@ self.verticalLayout.addLayout(self.horizontalLayout_2) MainWindow.setCentralWidget(self.centralwidget) self.menubar = QtGui.QMenuBar(MainWindow) - self.menubar.setGeometry(QtCore.QRect(0, 0, 621, 21)) + self.menubar.setGeometry(QtCore.QRect(0, 0, 824, 25)) self.menubar.setObjectName("menubar") self.menuFile = QtGui.QMenu(self.menubar) self.menuFile.setObjectName("menuFile") @@ -603,7 +604,7 @@ self.menubar.addAction(self.menuHelp.menuAction()) self.retranslateUi(MainWindow) - self.tabWidget.setCurrentIndex(0) + self.tabWidget.setCurrentIndex(2) self.lstDcapacity.setCurrentIndex(2) QtCore.QObject.connect(self.actionQuit, QtCore.SIGNAL("triggered()"), MainWindow.close) QtCore.QObject.connect(self.chkCheck, QtCore.SIGNAL("toggled(bool)"), self.txtTDpath.setEnabled) Index: bk_manager/trunk/ui/Ui_Parameters.py =================================================================== diff --git a/bk_manager/trunk/ui/Ui_Parameters.py b/bk_manager/trunk/ui/Ui_Parameters.py --- a/bk_manager/trunk/ui/Ui_Parameters.py (revision 84) +++ b/bk_manager/trunk/ui/Ui_Parameters.py (revision 85) @@ -2,8 +2,8 @@ # Form implementation generated from reading ui file '/home/ricardoar/JRO_SVN/eric4/jro_backup_manager/ui/Parameters.ui' # -# Created: Tue May 25 00:54:30 2010 -# by: PyQt4 UI code generator 4.7.2 +# Created: Wed May 26 16:31:58 2010 +# by: PyQt4 UI code generator 4.6 # # WARNING! All changes made in this file will be lost!