##// END OF EJS Templates
***
ralonso -
r30:31
parent child
Show More
@@ -33,10 +33,50
33 33 Se usa para inicializar ciertos parametros para pruebas
34 34 """
35 35 self.txtDpath.setText('/home/ricardoar/optional/STORAGE/EW_DRIFTS')
36 self.txtRpath.setText('/home/ricardoar/optional/STORAGE/prueba1_jro_backup_manager')
36 self.txtRpath.setText('/home/ricardoar/optional/STORAGE/prueba2_jro_backup_manager')
37 37 self.txtElabel.setText('EW_DRIFTS')
38 38 self.statusDpath = False
39 39 self.statusRpath = False
40
41
42 #Deteccion de los dispositvos de grabacion
43
44 #var_cmd="wodim --devices | grep /dev/ | awk -F\' '{print $2}'" #Funciona en consola pero no en python ¿?
45 var_cmd="wodim --devices | grep /dev/ | awk '{print $2}' | awk -F= '{print $2}'"
46 var_output = commands.getstatusoutput(var_cmd)
47 if var_output[0] != 0:
48 self.txtInfo.setText("No se pudo encontrar los dispositivos de grabacion, output_error:" + str(var_output))
49 else:
50 self.txtInfo.append("dispositivos encontrados")
51 var_devices = var_output[1].split('\n')
52
53 var_tmp=[]
54 for i in range(0, 4):
55 if i < len(var_devices):
56 var_len = len(var_devices[i])
57 var_tmp.append(var_devices[i][1:var_len - 1])
58 else:
59 var_tmp.append('')
60
61 #Se escriben los dispostivos correspodientes, si existen
62 self.txtDeviceA.setText(str(var_tmp[0]))
63 self.txtDeviceB.setText(str(var_tmp[1]))
64 self.txtDeviceC.setText(str(var_tmp[2]))
65 self.txtDeviceD.setText(str(var_tmp[3]))
66 #Se desactivan los que no existen
67 if len(var_tmp[0]) == 0 :
68 self.chkDevA.setChecked(False)
69 self.chkDevA.setEnabled(False)
70 if len(var_tmp[1]) == 0 :
71 self.chkDevB.setChecked(False)
72 self.chkDevB.setEnabled(False)
73 if len(var_tmp[2]) == 0 :
74 self.chkDevC.setChecked(False)
75 self.chkDevC.setEnabled(False)
76 if len(var_tmp[3]) == 0 :
77 self.chkDevD.setChecked(False)
78 self.chkDevD.setEnabled(False)
79
40 80
41 81 def write(self, txt):
42 82 """
@@ -221,7 +261,7
221 261 @pyqtSignature("")
222 262 def on_btnGbkp_clicked(self):
223 263 """
224 Cuando se presiona el boton Generate Bkp
264 Cuando se presiona el boton btnGbkp
225 265 """
226 266
227 267 #Verifica que las rutas sean validas
@@ -233,13 +273,9
233 273 return
234 274
235 275 #Crea las carpetas en la ruta del proyecto y verifica que se crearon correctamente
236
237 276 var_Rpath=self.txtRpath.text()
238 277 var_dirs='/{gpath,iso,ppath}'
239 278 var_cmd="mkdir -p "+str(var_Rpath)+str(var_dirs)
240
241 self.txtInfo.append(var_cmd)
242
243 279 var_output=commands.getstatusoutput(var_cmd)[0]
244 280 if var_output != 0:
245 281 self.txtInfo.append("No se pudieron crear los directorios, output_error:" + str(var_output))
@@ -247,65 +283,55
247 283 else:
248 284 self.txtInfo.append('Carpetas creadas correctamente')
249 285
250
286 #Cargando variables con los parametros
287 var_Dpath=self.txtDpath.text()
288 var_Rpath=self.txtRpath.text()
289 var_Rpath_ppath=var_Rpath+"/ppath" #Ruta de los archivos a grabar
251 290 var_sublist=[]
252 291 for i in self.var_list[self.lstStartDay.currentIndex():self.lstStartDay.currentIndex() + self.lstStopDay.currentIndex()+1]:
253 self.txtInfo.append(i)
254 292 var_sublist.append(i)
255
256 #Cargando variables con los parametros de busqueda
257 var_Dpath=self.txtDpath.text()
293 if len(var_sublist) == 0:
294 self.txtInfo.append("No existen archivos encontrados")
295 return
296 #self.txtInfo.append('elementos: '+str(len(var_sublist)))
297
298
258 299 var_Dtype=self.txtDtype.text()
259
300 var_Dcapacity=float(self.txtDcapacity.text())*1024 #tamaño en KB
301
302 #Busca los archivos con los parametros de busqueda
260 303 var_files_list=[]
261 304 for var_doy in var_sublist:
262 305 var_cmd="find " + str(var_Dpath) + " -name ?"+var_doy+"???."+ str(var_Dtype)
263 306 var_output=commands.getstatusoutput(var_cmd)[1]
264 307 for var_file in var_output.split():
265 var_files_list.append(var_file)
266
267 var_Dcapacity=float(self.txtDcapacity.text())*1024 #tamaño en KB
268 self.txtInfo.append(str(var_Dcapacity))
269
270 # self.txtInfo.append('Lista de archivos')
271 # var_n=0
272 # for i in var_files_list:
273 #self.txtInfo.append(str(os.path.getsize(i)/1024)+'KB')
274 #self.txtInfo.append(i)
275 #var_n += 1
276 #self.txtInfo.append(str(var_n))
277
278 #lista de archivos a grabar en archivos .
279
280 #Ruta de los archivos a grabar
281 var_Rpath=self.txtRpath.text()
282 var_Rpath_ppath=var_Rpath+"/ppath"
283 var_Dpath=self.txtDpath.text()
284
285 var_n=0
286 var_n_files=0
287 var_tmp=0
308 var_files_list.append(var_file) #Almacena cada archivo en la lista
309
310 #
311 #Genera la lista de archivos .dat que contienen los archivos a grabar en cada DVD
312 #
313 var_n=0 #Se usa para contar el numero de archivos a grabar en el DVD
314 # var_n_files=0
315 var_tmp=0 #
288 316 var_files_list_2=[]
289 self.txtInfo.append(str(len(var_files_list)))
290
291 for i in var_files_list:
292 var_size_i=os.path.getsize(i)/1024+1 #tamaño en KB, se suma 1 KB para evitar problemas al momento de sumar
293 var_tmp += var_size_i
294
317
318 for i in var_files_list: #Se asignan en i los archivos de la lista
319 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
320 var_tmp += var_size_i #Se acumulan el tamaño de los archivos de la lista
321
322 #Si el tamaño acumulado es mayor que el de el DVD
295 323 if var_tmp > var_Dcapacity:
296 324 var_tmp -= var_size_i #se quita el tamaño sumado para mostrar el tamaño real
297 #muestra info
298 self.txtInfo.append(str(len(var_files_list_2))+" size:"+str(var_tmp))
299
300 #se crea un archivo con numeral en el sufijo, y se añaden la lista de archivos
325 #se crea un archivo con numeral en el sufijo y extension .dat
301 326 var_file = open(var_Rpath_ppath+"/"+self.txtElabel.text()+"_"+str(var_n)+".dat","w")
327 #Se añade la lista de archivos a grabar en el DVD al archivo .dat
302 328 for line in var_files_list_2:
303 329 var_file.write(line.split(var_Dpath)[1]+'=')
304 330 var_file.write(line+'\n')
305 331 var_file.close()
306 332
307 var_n_files += len(var_files_list_2)
308 var_tmp = var_size_i
333 # var_n_files += len(var_files_list_2)
334 var_tmp = var_size_i #Se asigna a la variable el tamaño del archivo actual
309 335 var_files_list_2=[]
310 336 var_files_list_2.append(i)
311 337 var_n += 1
@@ -322,11 +348,11
322 348 var_file.write(line+'\n')
323 349 var_file.close()
324 350
325 var_n_files += len(var_files_list_2)
326 self.txtInfo.append(str(var_n_files))
351 # var_n_files += len(var_files_list_2)
352
353 #Se deshabilita el Tab Parameters y el boton btnGbkp
327 354 self.tabParameters.setEnabled(False)
328 355 self.btnGbkp.setEnabled(False)
329 self.txtDtype.setText('tipo INV')
330 356
331 357
332 358 @pyqtSignature("")
@@ -369,4 +395,27
369 395 """
370 396 self.tabParameters.setEnabled(True)
371 397 self.btnGbkp.setEnabled(True)
372
398
399 @pyqtSignature("")
400 def on_btnTdevA_clicked(self):
401 var_dev = str(self.txtDeviceA.text())
402 var_cmd = 'eject ' + var_dev + '; eject -t ' + var_dev
403 commands.getstatusoutput(var_cmd)
404
405 @pyqtSignature("")
406 def on_btnTdevB_clicked(self):
407 var_dev = str(self.txtDeviceB.text())
408 var_cmd = 'eject ' + var_dev + '; eject -t ' + var_dev
409 commands.getstatusoutput(var_cmd)
410
411 @pyqtSignature("")
412 def on_btnTdevC_clicked(self):
413 var_dev = str(self.txtDeviceC.text())
414 var_cmd = 'eject ' + var_dev + '; eject -t ' + var_dev
415 commands.getstatusoutput(var_cmd)
416
417 @pyqtSignature("")
418 def on_btnTdevD_clicked(self):
419 var_dev = str(self.txtDeviceD.text())
420 var_cmd = 'eject ' + var_dev + '; eject -t ' + var_dev
421 commands.getstatusoutput(var_cmd)
@@ -27,7 +27,7
27 27 </sizepolicy>
28 28 </property>
29 29 <property name="currentIndex">
30 <number>1</number>
30 <number>0</number>
31 31 </property>
32 32 <widget class="QWidget" name="tabParameters">
33 33 <property name="enabled">
@@ -2,7 +2,7
2 2
3 3 # Form implementation generated from reading ui file '/home/ricardoar/principal/JRO_SVN/eric4/jro_backup_manager/ui/MainWindow.ui'
4 4 #
5 # Created: Tue May 4 12:02:35 2010
5 # Created: Tue May 4 16:05:06 2010
6 6 # by: PyQt4 UI code generator 4.7.3
7 7 #
8 8 # WARNING! All changes made in this file will be lost!
@@ -451,7 +451,7
451 451 self.menubar.addAction(self.menuHelp.menuAction())
452 452
453 453 self.retranslateUi(MainWindow)
454 self.tabWidget.setCurrentIndex(1)
454 self.tabWidget.setCurrentIndex(0)
455 455 self.lstDcapacity.setCurrentIndex(2)
456 456 QtCore.QObject.connect(self.chkSequentially, QtCore.SIGNAL("clicked()"), self.chkSimultaneously.toggle)
457 457 QtCore.QObject.connect(self.chkSimultaneously, QtCore.SIGNAL("clicked()"), self.chkSequentially.toggle)
General Comments 0
You need to be logged in to leave comments. Login now