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 30) +++ b/bk_manager/trunk/ui/MainWindow.py (revision 31) @@ -33,10 +33,50 @@ Se usa para inicializar ciertos parametros para pruebas """ self.txtDpath.setText('/home/ricardoar/optional/STORAGE/EW_DRIFTS') - self.txtRpath.setText('/home/ricardoar/optional/STORAGE/prueba1_jro_backup_manager') + self.txtRpath.setText('/home/ricardoar/optional/STORAGE/prueba2_jro_backup_manager') self.txtElabel.setText('EW_DRIFTS') self.statusDpath = False self.statusRpath = False + + + #Deteccion de los dispositvos de grabacion + + #var_cmd="wodim --devices | grep /dev/ | awk -F\' '{print $2}'" #Funciona en consola pero no en python ¿? + var_cmd="wodim --devices | grep /dev/ | awk '{print $2}' | awk -F= '{print $2}'" + var_output = commands.getstatusoutput(var_cmd) + if var_output[0] != 0: + self.txtInfo.setText("No se pudo encontrar los dispositivos de grabacion, output_error:" + str(var_output)) + else: + self.txtInfo.append("dispositivos encontrados") + var_devices = var_output[1].split('\n') + + var_tmp=[] + for i in range(0, 4): + if i < len(var_devices): + var_len = len(var_devices[i]) + var_tmp.append(var_devices[i][1:var_len - 1]) + else: + var_tmp.append('') + + #Se escriben los dispostivos correspodientes, si existen + self.txtDeviceA.setText(str(var_tmp[0])) + self.txtDeviceB.setText(str(var_tmp[1])) + self.txtDeviceC.setText(str(var_tmp[2])) + self.txtDeviceD.setText(str(var_tmp[3])) + #Se desactivan los que no existen + if len(var_tmp[0]) == 0 : + self.chkDevA.setChecked(False) + self.chkDevA.setEnabled(False) + if len(var_tmp[1]) == 0 : + self.chkDevB.setChecked(False) + self.chkDevB.setEnabled(False) + if len(var_tmp[2]) == 0 : + self.chkDevC.setChecked(False) + self.chkDevC.setEnabled(False) + if len(var_tmp[3]) == 0 : + self.chkDevD.setChecked(False) + self.chkDevD.setEnabled(False) + def write(self, txt): """ @@ -221,7 +261,7 @@ @pyqtSignature("") def on_btnGbkp_clicked(self): """ - Cuando se presiona el boton Generate Bkp + Cuando se presiona el boton btnGbkp """ #Verifica que las rutas sean validas @@ -233,13 +273,9 @@ return #Crea las carpetas en la ruta del proyecto y verifica que se crearon correctamente - var_Rpath=self.txtRpath.text() var_dirs='/{gpath,iso,ppath}' var_cmd="mkdir -p "+str(var_Rpath)+str(var_dirs) - - self.txtInfo.append(var_cmd) - var_output=commands.getstatusoutput(var_cmd)[0] if var_output != 0: self.txtInfo.append("No se pudieron crear los directorios, output_error:" + str(var_output)) @@ -247,65 +283,55 @@ else: self.txtInfo.append('Carpetas creadas correctamente') - + #Cargando variables con los parametros + var_Dpath=self.txtDpath.text() + var_Rpath=self.txtRpath.text() + var_Rpath_ppath=var_Rpath+"/ppath" #Ruta de los archivos a grabar var_sublist=[] for i in self.var_list[self.lstStartDay.currentIndex():self.lstStartDay.currentIndex() + self.lstStopDay.currentIndex()+1]: - self.txtInfo.append(i) var_sublist.append(i) - - #Cargando variables con los parametros de busqueda - var_Dpath=self.txtDpath.text() + if len(var_sublist) == 0: + self.txtInfo.append("No existen archivos encontrados") + return + #self.txtInfo.append('elementos: '+str(len(var_sublist))) + + var_Dtype=self.txtDtype.text() - + var_Dcapacity=float(self.txtDcapacity.text())*1024 #tamaño en KB + + #Busca los archivos con los parametros de busqueda var_files_list=[] for var_doy in var_sublist: var_cmd="find " + str(var_Dpath) + " -name ?"+var_doy+"???."+ str(var_Dtype) var_output=commands.getstatusoutput(var_cmd)[1] for var_file in var_output.split(): - var_files_list.append(var_file) - - var_Dcapacity=float(self.txtDcapacity.text())*1024 #tamaño en KB - self.txtInfo.append(str(var_Dcapacity)) - -# self.txtInfo.append('Lista de archivos') -# var_n=0 -# for i in var_files_list: - #self.txtInfo.append(str(os.path.getsize(i)/1024)+'KB') - #self.txtInfo.append(i) - #var_n += 1 - #self.txtInfo.append(str(var_n)) - - #lista de archivos a grabar en archivos . - - #Ruta de los archivos a grabar - var_Rpath=self.txtRpath.text() - var_Rpath_ppath=var_Rpath+"/ppath" - var_Dpath=self.txtDpath.text() - - var_n=0 - var_n_files=0 - var_tmp=0 + var_files_list.append(var_file) #Almacena cada archivo en la lista + + # + #Genera la lista de archivos .dat que contienen los archivos a grabar en cada DVD + # + var_n=0 #Se usa para contar el numero de archivos a grabar en el DVD +# var_n_files=0 + var_tmp=0 # var_files_list_2=[] - self.txtInfo.append(str(len(var_files_list))) - - for i in var_files_list: - var_size_i=os.path.getsize(i)/1024+1 #tamaño en KB, se suma 1 KB para evitar problemas al momento de sumar - var_tmp += var_size_i - + + for i in var_files_list: #Se asignan en i los archivos de la lista + var_size_i=os.path.getsize(i)/1024+1 #tamaño en KB del archivo de la lista, se suma 1 KB para evitar problemas al momento de sumar + var_tmp += var_size_i #Se acumulan el tamaño de los archivos de la lista + + #Si el tamaño acumulado es mayor que el de el DVD if var_tmp > var_Dcapacity: var_tmp -= var_size_i #se quita el tamaño sumado para mostrar el tamaño real - #muestra info - self.txtInfo.append(str(len(var_files_list_2))+" size:"+str(var_tmp)) - - #se crea un archivo con numeral en el sufijo, y se añaden la lista de archivos + #se crea un archivo con numeral en el sufijo y extension .dat var_file = open(var_Rpath_ppath+"/"+self.txtElabel.text()+"_"+str(var_n)+".dat","w") + #Se añade la lista de archivos a grabar en el DVD al archivo .dat for line in var_files_list_2: var_file.write(line.split(var_Dpath)[1]+'=') var_file.write(line+'\n') var_file.close() - var_n_files += len(var_files_list_2) - var_tmp = var_size_i +# var_n_files += len(var_files_list_2) + var_tmp = var_size_i #Se asigna a la variable el tamaño del archivo actual var_files_list_2=[] var_files_list_2.append(i) var_n += 1 @@ -322,11 +348,11 @@ var_file.write(line+'\n') var_file.close() - var_n_files += len(var_files_list_2) - self.txtInfo.append(str(var_n_files)) +# var_n_files += len(var_files_list_2) + + #Se deshabilita el Tab Parameters y el boton btnGbkp self.tabParameters.setEnabled(False) self.btnGbkp.setEnabled(False) - self.txtDtype.setText('tipo INV') @pyqtSignature("") @@ -369,4 +395,27 @@ """ self.tabParameters.setEnabled(True) self.btnGbkp.setEnabled(True) - + + @pyqtSignature("") + def on_btnTdevA_clicked(self): + var_dev = str(self.txtDeviceA.text()) + var_cmd = 'eject ' + var_dev + '; eject -t ' + var_dev + commands.getstatusoutput(var_cmd) + + @pyqtSignature("") + def on_btnTdevB_clicked(self): + var_dev = str(self.txtDeviceB.text()) + var_cmd = 'eject ' + var_dev + '; eject -t ' + var_dev + commands.getstatusoutput(var_cmd) + + @pyqtSignature("") + def on_btnTdevC_clicked(self): + var_dev = str(self.txtDeviceC.text()) + var_cmd = 'eject ' + var_dev + '; eject -t ' + var_dev + commands.getstatusoutput(var_cmd) + + @pyqtSignature("") + def on_btnTdevD_clicked(self): + var_dev = str(self.txtDeviceD.text()) + var_cmd = 'eject ' + var_dev + '; eject -t ' + var_dev + commands.getstatusoutput(var_cmd) Index: bk_manager/trunk/ui/MainWindow.ui =================================================================== diff --git a/bk_manager/trunk/ui/MainWindow.ui b/bk_manager/trunk/ui/MainWindow.ui --- a/bk_manager/trunk/ui/MainWindow.ui (revision 30) +++ b/bk_manager/trunk/ui/MainWindow.ui (revision 31) @@ -27,7 +27,7 @@ - 1 + 0 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 30) +++ b/bk_manager/trunk/ui/Ui_MainWindow.py (revision 31) @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file '/home/ricardoar/principal/JRO_SVN/eric4/jro_backup_manager/ui/MainWindow.ui' # -# Created: Tue May 4 12:02:35 2010 +# Created: Tue May 4 16:05:06 2010 # by: PyQt4 UI code generator 4.7.3 # # WARNING! All changes made in this file will be lost! @@ -451,7 +451,7 @@ self.menubar.addAction(self.menuHelp.menuAction()) self.retranslateUi(MainWindow) - self.tabWidget.setCurrentIndex(1) + self.tabWidget.setCurrentIndex(0) self.lstDcapacity.setCurrentIndex(2) QtCore.QObject.connect(self.chkSequentially, QtCore.SIGNAL("clicked()"), self.chkSimultaneously.toggle) QtCore.QObject.connect(self.chkSimultaneously, QtCore.SIGNAL("clicked()"), self.chkSequentially.toggle)