|
@@
-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)
|