source: lliurex-remote-installer/trunk/fuentes/lliurex-remote-installer-server.install/usr/share/n4d/python-plugins/LliureXRemoteInstaller.py @ 4737

Last change on this file since 4737 was 4737, checked in by daduve, 4 years ago

Adding update option to GUI

File size: 20.1 KB
Line 
1import subprocess
2import os
3import os.path
4import shutil
5import re
6from urllib2 import urlopen
7
8class LliureXRemoteInstaller:
9       
10        N4D_VAR="LLX_REMOTE_INSTALLER"
11        initial_dict={'deb': {'url': 'http://server/llx-remote/', 'packages': []}, 'sh': {'url': 'http://server/llx-remote/', 'packages': []}, 'apt': {'Mirror':{'url':'mirror', 'packages': []},'LliureX':{'url':'lliurex', 'packages': []}},'update':{'activate':'False', 'url':'Mirror', 'version':'0','datetime':'0'}}
12       
13        #VALOR VARIABLE DEL REPO ADDAPLICATION_SOURCES
14        dir_sources="/etc/apt/sources.list.d/"
15        file_sources="llxremoteinstaller_sources.list"
16        file_sources=str(dir_sources)+str(file_sources)
17       
18       
19        #VALORES DE LOS DICCIONARIOS
20        DEB='deb'
21        APT='apt'
22        SH='sh'
23        LIST='packages'
24        URL='url'
25        UPDATE='update'
26        SHARE_DIRECTORY='/var/www/llx-remote'
27        MIRROR_DIRECTORY='/net/mirror/llx16'
28        NET_MIRROR_DIRECTORY='http://lliurex.net/xenial'
29        TIMESTAMP_DIRECTORY='/pool/main/l/lliurex-version-timestamp/'
30       
31       
32        def __init__(self):
33                pass
34               
35        #def __init__
36       
37        def test_var (self,namevar=None,user=None,passwd=None):
38                try:
39                        print "------------------------------------"
40                        print "Lliurex Remote Installer Test Var"
41                        print "------------------------------------"
42                        import xmlrpclib as x
43                        ppa_lliurex=False
44                        ppa_mirror=False
45                        c=x.ServerProxy("https://server:9779")
46                        u=(user,passwd)
47                        VALOR=c.get_variable(u,"VariablesManager",namevar)
48                        #print VALOR
49                        if not os.path.exists(self.SHARE_DIRECTORY):
50                                os.makedirs(self.SHARE_DIRECTORY)
51                                #proc=subprocess.Popen(["LANGUAGE=en_EN; chown 775 %s; sudo setfacl -m g:adm:rwx -d -m g:adm:rwx %s" %self.SHARE_DIRECTORY],shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE).communicate()[0]
52                                #proc.wait()
53                                os.system("chmod 775 %s"%self.SHARE_DIRECTORY)
54                                os.system("setfacl -m g:adm:rwx -d -m g:adm:rwx %s"%self.SHARE_DIRECTORY)
55                                print "[LLXRemoteInstaller] (test_var) New directory to shared files is created: %s"%(self.SHARE_DIRECTORY)
56                        else:
57                                print "[LLXRemoteInstaller] (test_var) Directory to shared files exists: %s"%(self.SHARE_DIRECTORY)
58                                os.system("setfacl -m g:adm:rwx -d -m g:adm:rwx %s"%self.SHARE_DIRECTORY)
59                                #os.chmod(self.SHARE_DIRECTORY, 755)
60                        print "[LLXRemoteInstaller] (test_var) Value for variable %s: %s"%(namevar,VALOR)
61                        if  VALOR in ["",None,'None']:
62                                objects["VariablesManager"].add_variable(namevar,self.initial_dict,"",namevar,[],False,False)
63                                COMMENT = ("[LLXRemoteInstaller] (test_var) Added variable %s to VariablesManager" %namevar)
64                                print ("%s" %COMMENT)
65                                return [True,str(COMMENT)]
66                        else:
67                                for x in VALOR[self.APT]:
68                                        if x in ["LliureX"]:
69                                                ppa_lliurex=True
70                                        elif x in ["Mirror"]:
71                                                ppa_mirror=True
72                                if not ppa_lliurex:
73                                        print "No tiene lliurex.net"
74                                        VALOR[self.APT].update({'LliureX':{'url':'lliurex', 'packages': []}})
75                                        objects["VariablesManager"].set_variable(namevar,VALOR)
76                                if not ppa_mirror:
77                                        print "No tiene mirror"
78                                        VALOR[self.APT].update({'Mirror':{'url':'mirror', 'packages': []}})
79                                        objects["VariablesManager"].set_variable(namevar,VALOR)
80                                try:
81                                        exists=VALOR[self.UPDATE]
82                                except Exception as e:
83                                        print "[LLXRemoteInstaller] (test_var) Creating new values to variable[update]......."
84                                        VALOR[self.UPDATE]={}
85                                        VALOR[self.UPDATE]['activate']='False'
86                                        VALOR[self.UPDATE]['url']='mirror'
87                                        VALOR[self.UPDATE]['version']='0'
88                                        VALOR[self.UPDATE]['datetime']='0'
89                                        objects["VariablesManager"].set_variable(namevar,VALOR)
90                                COMMENT=("[LLXRemoteInstaller] (test_var) %s Variable exists in your system, it hasn't been created again" %namevar)
91                                print ("%s" %COMMENT)
92                                return [True,str(COMMENT)]
93                               
94                except Exception as e:
95                        return [False,str(e)]
96                       
97        #def_test_var
98       
99       
100        def reset_var (self,namevar=None):
101                try:
102                       
103                        import xmlrpclib as x
104                        c=x.ServerProxy("https://server:9779")
105                        data=None
106                        objects["VariablesManager"].set_variable(namevar,data)
107                        COMMENT=("[LLXRemoteInstaller] (reset_var) %s has been updated" %namevar)
108                        print ("%s" %COMMENT)
109                        return [True,str(COMMENT)]
110                               
111                except Exception as e:
112                        return [False,str(e)]
113               
114        #def_reset_var
115
116        def mirror_version(self):
117                try:
118                        mirror_version_exists=objects["LliurexVersion"].lliurex_version("-m")
119                        version='False'
120                        if mirror_version_exists[0]:
121                                if mirror_version_exists[1]=='True':
122                                        DIRECTORY=self.MIRROR_DIRECTORY+self.TIMESTAMP_DIRECTORY
123                                        lst=os.listdir(DIRECTORY)
124                                        lst_ordered=sorted([f for f in lst])
125                                        version=re.search(r'\_(.*)\_', lst_ordered[-1]).group(1)
126                                       
127                        return [True,version]
128                except Exception as e:
129                        return [False,str(e)]
130        #def_mirror_version
131       
132       
133        def net_mirror_version(self):
134                try:
135                       
136                        DIRECTORY=self.NET_MIRROR_DIRECTORY+self.TIMESTAMP_DIRECTORY
137                        urlpath =urlopen(DIRECTORY)
138                        net_mirror_info= urlpath.read().decode('utf-8')
139                        info=re.findall('<a href="?\'?([^"\'>]*)deb', net_mirror_info)
140                        lst_ordered=sorted([f for f in info])
141                        version=re.search(r'\_(.*)\_', lst_ordered[-1]).group(1)
142                                       
143                        return [True,version]
144                except Exception as e:
145                        return [False,str(e)]
146        #def_mirror_version
147
148        def update_var_dict (self,namevar=None,dict={},user=None,passwd=None):
149                try:
150                        print "[LLXRemoteInstaller] (update_var_list) Test if_exists variable %s"%namevar
151                        if self.test_var(namevar,user, passwd)[0]:
152                                print "[LLXRemoteInstaller] (update_var_list) Variable %s is now in your system"%namevar
153                                import xmlrpclib as x
154                                c=x.ServerProxy("https://server:9779")
155                                if objects["VariablesManager"].set_variable(namevar,dict)[0]:
156                                        COMMENT="[LLXRemoteInstaller] (update_var_list) %s has been updated with this list of APP %s" %(namevar,dict)
157                                        print ("%s" %COMMENT)
158                                        return [True,str(COMMENT)]
159                        else:
160                                COMMENT="[LLXRemoteInstaller] (update_var_list) Cannot updated variable"
161                                print ("%s" %COMMENT)
162                                return [False,str(COMMENT)]
163                               
164                except Exception as e:
165                        return [False,str(e)]
166               
167        #def_add_list
168       
169       
170        def update2version (self,Mirror=False):
171                try:
172                        update_version="Ninguna"
173                        if Mirror:
174                                update_version=subprocess.Popen(["LANGUAGE=en_EN; find /net/mirror/llx16/pool/main/l/lliurex-version-timestamp -name 'lliurex-version-timestamp*.deb' | tail -n 1 | cut -d_ -f2" ],shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE).communicate()[0]
175                        else:
176                                pass
177                       
178                       
179                        COMMENT="Update_version is: %s" %update_version
180                        print ("%s" %COMMENT)   
181                        return [True,str(COMMENT)]     
182                       
183                except Exception as e:
184                        return [False,str(e)]
185               
186        #def_update2version
187       
188       
189       
190        def app_repo_exist (self,app=None):
191                try:
192                        #exist=os.system("LANGUAGE=en_EN; apt-cache policy %s | grep -i candidate" %app)
193                        exist=subprocess.Popen(["LANGUAGE=en_EN; apt-cache policy %s | grep -i candidate" %app],shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE).communicate()[0]
194                        print ("[LLXRemoteInstaller] (app_repo_exist) APP candidate in your repo is: %s"%exist)
195                        if exist == None or exist == "":
196                                COMMENT="[LLXRemoteInstaller] (app_repo_exist) APP: %s doesn't exist in your repository, you can't add it to install list" %app
197                                print ("%s" %COMMENT)
198                                return [False,str(COMMENT)]
199                        else:
200                                COMMENT="[LLXRemoteInstaller] (app_repo_exist) APP: %s is avaiable from your repo, it has been added to your install list" %app
201                                print ("%s" %COMMENT)
202                                return [True,str(COMMENT)]
203                               
204                except Exception as e:
205                        return [False,str(e)]
206               
207        #def_app_repo_exist
208       
209       
210       
211        def app_deb_exist (self,app=None, url=None):
212                try:
213                        url_all=str(url)+str(app)
214                        print ("[LLXRemoteInstaller] (app_deb_exist) VAR URL_ALL: %s"%url_all)
215                        import urllib
216                        if urllib.urlopen(url_all).code == 200:
217                                COMMENT="[LLXRemoteInstaller](app_deb_exist) APP: %s is avaiable and added to list to install it" %app
218                                print ("%s" %COMMENT)
219                                return [True,str(COMMENT)]
220                        else:
221                                COMMENT="[LLXRemoteInstaller] (app_deb_exist) Can't find APP: %s to download it from URL %s, you can't added to install it" %(app,url)
222                                print ("%s" %COMMENT)
223                                return [False,str(COMMENT)]
224                               
225                except Exception as e:
226                        return [False,str(e)]
227               
228        #def_app_deb_exist
229       
230       
231       
232        def repo_add (self,sources_private=None):
233                try:
234                        if sources_private not in ["",None,[]]:
235                                COMMENT="[LLXRemoteInstaller](repo_add) REPO IS PARTICULAR %s" %sources_private
236                                print ("%s" %COMMENT)
237                                print "[LLXRemoteInstaller](repo_add) Creating new file %s" %self.file_sources
238                                mode = 'a' if os.path.exists(self.file_sources) else 'w'
239                                f_used=open(self.file_sources,mode)
240                                print "open(%s,%s)"%(self.file_sources,mode)
241                                f_used.write(sources_private+'\n')
242                                f_used.close()
243                                print "[LLXRemoteInstaller](repo_add) File created now read it" 
244                                #NOW READ THE NEW SOURCES.LIST
245                                sources=[]
246                                file=open(self.file_sources)
247                                f=file.read().splitlines()
248                                for line in f:
249                                        sources.append(line)
250                                        print "[LLXRemoteInstaller](repo_add) Line added: %s" %line
251                                file.close()
252                       
253                        COMMENT="[LLXRemoteInstaller](repo_add) Your repo LLXRemoteInstaller has new lines %s"%sources 
254                        print ("%s" %COMMENT)
255                        return [True,str(COMMENT),sources]
256       
257                               
258                except Exception as e:
259                        print e
260                        return [False,str(e)]
261               
262        #def_repo_update
263       
264        def remove_file (self,file=None):
265                try:
266                       
267                        COMMENT="[LLXRemoteInstaller](remove_file) Reemoving file %s"%file     
268                        print ("%s" %COMMENT)
269                        if os.path.exists(file):
270                                #print "Borrandoooooooooooooooooooooooooooooo"
271                                os.remove(file)
272                       
273                                COMMENT="[LLXRemoteInstaller](remove_file) File %s has been deleted from server"%file
274                                print ("%s" %COMMENT)
275                                return [True,str(COMMENT)]
276                        else:
277                                COMMENT="[LLXRemoteInstaller](remove_file) ERROR: Cannot delete file %s from server"%file
278                                print ("%s" %COMMENT)
279                                return [False,str(COMMENT)]
280                       
281                except Exception as e:
282                        return [False,str(e)]
283               
284        #def_repo_restore
285       
286        def repo_restore (self,file=None):
287                try:
288                       
289                        COMMENT="[LLXRemoteInstaller](repo_restore) Repo %s to test APT Aplications is deleted and restore to initial state"%file       
290                        print ("%s" %COMMENT)
291                        if os.path.exists(file):
292                                #print "Borrandoooooooooooooooooooooooooooooo"
293                                os.remove(file)
294                               
295                        self.repo_update()
296                       
297                        COMMENT="[LLXRemoteInstaller](repo_restore) Repo from AddApplications has deleted"     
298                        print ("%s" %COMMENT)
299                        return [True,str(COMMENT)]
300                       
301                except Exception as e:
302                        return [False,str(e)]
303               
304        #def_repo_restore
305       
306       
307        def repo_update (self):
308                try:
309                        COMMENT="[LLXRemoteInstaller](repo_restore) Actualizando los indices, espera........"
310                        print ("%s" %COMMENT)
311                        proc = subprocess.Popen('apt-get update', shell=True, stdin=None, stdout=open("/dev/null", "w"), stderr=None, executable="/bin/bash")
312                        proc.wait()
313                        COMMENT="[LLXRemoteInstaller](repo_restore) Se han actualizado los indices"
314                        print ("%s" %COMMENT)
315                        return [True,str(COMMENT)]
316                       
317                except Exception as e:
318                        return [False,str(e)]
319               
320        #def_repo_restore
321       
322       
323        def test_apt_list (self,dict=None):
324               
325                try:
326                        list_apt=[]
327                        list_apt_ok=[]
328                        list_apt_testing=[]
329                        restore=False
330                        ubuntu=["deb http://archive.ubuntu.com/ubuntu xenial main restricted universe multiverse","deb http://archive.ubuntu.com/ubuntu xenial-security main restricted universe multiverse","deb http://archive.ubuntu.com/ubuntu xenial-updates main restricted universe multiverse"]
331                        lliurex_net=["deb http://lliurex.net/xenial xenial main restricted universe multiverse","deb http://lliurex.net/xenial xenial-security main restricted universe multiverse","deb http://lliurex.net/xenial xenial-updates main restricted universe multiverse"]
332                        lliurex_mirror=["deb http://mirror/llx16 xenial main restricted universe multiverse","deb http://mirror/llx16 xenial-security main restricted universe multiverse","deb http://mirror/llx16 xenial-updates main restricted universe multiverse"]
333                        for x in dict[self.APT]:
334                                print "[LLXRemoteInstaller](test_apt_list) Comprobando el PPA: %s"%x
335                                #print "[LLXRemoteInstaller](dict_ok) Comprobando el listado de APP: %s"%list_apt
336                                url=dict[self.APT][x][self.URL]
337                                list_apt_testing=dict[self.APT][x][self.LIST]
338                                if url not in ["",None] and list_apt_testing not in ["",[],None]:
339                                        for line in ubuntu:
340                                                self.repo_add(line)
341                                        if x in ["LliureX"]:
342                                                for line in lliurex_net:
343                                                        self.repo_add(line)
344                                                COMMENT="[LLXRemoteInstaller](test_apt_list) Repo esta ADDED"
345                                                print COMMENT
346                                                list_apt=list_apt+list_apt_testing
347                                                restore=True
348                                                print "[LLXRemoteInstaller](test_apt_list) Anyadimos las APT del repo anterior, nueva lista: %s"%(list_apt)
349                                        elif x in ["Mirror"]:
350                                                for line in lliurex_mirror:
351                                                        self.repo_add(line)
352                                                COMMENT="[LLXRemoteInstaller](test_apt_list) Repo esta ADDED"
353                                                print COMMENT
354                                                list_apt=list_apt+list_apt_testing
355                                                restore=True
356                                                print "[LLXRemoteInstaller](test_apt_list) Anyadimos las APT del repo anterior, nueva lista: %s"%(list_apt)
357                                        else:
358                                                if self.repo_add(url)[0]:
359                                                        COMMENT="[LLXRemoteInstaller](test_apt_list) Repo esta ADDED"
360                                                        print COMMENT
361                                                        list_apt=list_apt+list_apt_testing
362                                                        restore=True
363                                                        print "[LLXRemoteInstaller](test_apt_list) Anyadimos las APT del repo anterior, nueva lista: %s"%(list_apt)
364                                                else:
365                                                        self.repo_restore(self.file_sources)
366                                                        COMMENT="[LLXRemoteInstaller](test_apt_list) Repo no se puede ADDED - PROBLEM"
367                                                        return [False,list_apt,COMMENT]
368                       
369                        if list_apt not in ["",None,[]] :
370                                if self.repo_update()[0]:
371                                        for app in list_apt:
372                                                print "[LLXRemoteInstaller](test_apt_list) Comprobando si es avaiable el APT: %s"%app
373                                                if self.app_repo_exist(app)[0]:
374                                                        list_apt_ok.append(app)
375                                        list_apt=list_apt_ok
376                                        COMMENT="[LLXRemoteInstaller](test_apt_list) El listado de APT disponibles en el repo es: %s"%(list_apt)
377                                        print COMMENT
378                                else:
379                                        self.repo_restore(self.file_sources)
380                                        COMMENT="[LLXRemoteInstaller](test_apt_list) No se puede actualizar el repo - PROBLEM"
381                                        return [False,list_apt,COMMENT]
382                                       
383                               
384                        else:
385                                COMMENT="[LLXRemoteInstaller](test_apt_list) No hacemos nada con este REPO esta vacio de contenido"
386                                print COMMENT
387                               
388                        #UPDATE DICT
389                        list_apt_deleted=[]
390                        for x in dict[self.APT]:
391                                list_apt_testing=[]
392                                for app in dict[self.APT][x][self.LIST]:
393                                        if app in list_apt:
394                                                list_apt_testing.append(app)
395                                        else:
396                                                list_apt_deleted.append(app)
397                                dict[self.APT][x][self.LIST]=list_apt_testing
398                               
399                        #Solo hago un update y restore del sources si este ha sido cambiado anteriormente.
400                        if restore:     
401                                self.repo_restore(self.file_sources)
402                        return [True,dict,list_apt,list_apt_deleted,COMMENT]
403                       
404                except Exception as e:
405                        return [False,str(e)]
406               
407               
408        #def test_apt_list
409       
410        def test_deb_list (self,dict=None):
411               
412                try:
413               
414                        #TEST DE LOS DEBS
415                        list_debs=dict[self.DEB][self.LIST]
416                        url=dict[self.DEB][self.URL]
417                        #url=self.SHARE_DIRECTORY
418                        print "[LLXRemoteInstaller](test_deb_list) El listado de DEBS es %s i lo comprobaremos en la URL: %s"%(list_debs,url)
419                        list_debs_ok=[]
420                        list_debs_fail=[]
421                        for app in list_debs:
422                                print "[LLXRemoteInstaller](test_deb_list) Comprobando si es avaiable el DEB: %s"%app
423                                if self.app_deb_exist(app,url)[0]:
424                                        list_debs_ok.append(app)
425                                else:
426                                        list_debs_fail.append(app)
427                        list_debs=list_debs_ok
428                        dict[self.DEB][self.LIST]=list_debs
429                        print "[LLXRemoteInstaller](test_deb_list) Listado avaiable de DEBS: %s"%list_debs_ok
430                        print "[LLXRemoteInstaller](test_deb_list) Listado Unavaiable de DEBS: %s"%list_debs_fail
431                        return [True,dict,list_debs_ok,list_debs_fail]
432                except Exception as e:
433                        return [False,str(e)]
434               
435               
436        #def test_deb_list
437       
438        def test_list (self,dict=None,type=None):
439               
440                try:
441               
442                        #TEST DE LOS DEBS
443                        list_debs=dict[type][self.LIST]
444                        url=dict[type][self.URL]
445                        #url=self.SHARE_DIRECTORY
446                        print "[LLXRemoteInstaller](test_list) El listado de SH es %s y lo comprobaremos en la URL: %s"%(list_debs,url)
447                        list_debs_ok=[]
448                        list_debs_fail=[]
449                        list_tupla_ok=[]
450                        for app_tupla in list_debs:
451                                app=app_tupla[0]
452                                md5=app_tupla[1]
453                                print "[LLXRemoteInstaller](test_list) Comprobando si es avaiable el SH: %s"%app
454                                if self.app_deb_exist(app,url)[0]:
455                                        list_debs_ok.append(app)
456                                        list_tupla_ok.append([app,md5])
457                                else:
458                                        list_debs_fail.append(app)
459                        list_debs=list_tupla_ok
460                        dict[type][self.LIST]=list_debs
461                        print "[LLXRemoteInstaller](test_list) Listado avaiable de SH: %s"%list_debs_ok
462                        print "[LLXRemoteInstaller](test_list) Listado Unavaiable de SH: %s"%list_debs_fail
463                        return [True,dict,list_debs_ok,list_debs_fail]
464                except Exception as e:
465                        return [False,str(e)]
466               
467               
468        #def test_deb_list
469       
470       
471                #initial_dict={'deb': {'url': 'http://server/llx-remote/', 'packages': []}, 'update':{'activate':'False', 'url':'Mirror', 'version':'0'}}
472
473       
474       
475       
476        def dict_ok (self, dict={}):
477                try:
478                        if os.path.exists(self.file_sources):
479                                os.remove(self.file_sources)
480                        COMMENT="[LLXRemoteInstaller](dict_ok) Comprobando la lista de la GUI........"
481                        print ("%s" %COMMENT)
482                       
483                        #TEST DEL UPDATE
484                        activate_update=dict[self.UPDATE]['activate']
485                        url_update=dict[self.UPDATE][self.URL]
486                        version_update=dict[self.UPDATE]['version']
487                        datetime_update=dict[self.UPDATE]['datetime']
488                       
489                        print "[LLXRemoteInstaller](dict_ok) El update posee activate:%s - url:%s - version:%s - datetime:%s  "%(activate_update,url_update,version_update,datetime_update)
490                        if activate_update or url_update or  version_update or datetime_update == None:
491                                dict[self.UPDATE]['activate']='False'
492                               
493                        print "[LLXRemoteInstaller](dict_ok) Finalmente UPDATE posee activate:%s - url:%s - version:%s - datetime:%s  "%(activate_update,url_update,version_update,datetime_update)
494                       
495                       
496                        #TEST DE LOS DEBS
497                        list_debs=dict[self.DEB][self.LIST]
498                        #url=dict[self.DEB][self.URL]
499                       
500                        print "[LLXRemoteInstaller](dict_ok) El listado de DEBS es %s i lo comprobaremos en la URL: %s"%(list_debs,url)
501                        list_debs_ok=[]
502                        for app in list_debs:
503                                print "[LLXRemoteInstaller](dict_ok) Comprobando si es avaiable el DEB: %s"%app
504                                if self.app_deb_exist(app,url)[0]:
505                                        list_debs_ok.append(app)
506                        list_debs=list_debs_ok
507                        dict[self.DEB][self.LIST]=list_debs
508                        print "[LLXRemoteInstaller](dict_ok) El listado de DEBS disponibles es: %s"%list_debs
509                       
510                        #TEST DE LOS SH
511                        list_sh=dict[self.SH][self.LIST]
512                        url=dict[self.SH][self.URL]
513                        print "[LLXRemoteInstaller](dict_ok) El listado de SCRIPTS es %s i lo comprobaremos en la URL: %s"%(list_debs,url)
514                        list_sh_ok=[]
515                        for app_tupla in list_sh:
516                                app=app_tupla[0]
517                                md5=app_tupla[1]
518                                print "[LLXRemoteInstaller](dict_ok) Comprobando si es avaiable el SCRIPTS: %s"%app
519                                if self.app_deb_exist(app,url)[0]:
520                                        list_sh_ok.append([app,md5])
521                        list_sh=list_sh_ok
522                        dict[self.SH][self.LIST]=list_sh
523                        print "[LLXRemoteInstaller](dict_ok) El listado de SCRIPTS disponibles es: %s"%list_sh
524                       
525                       
526                        list_apt_resume=[]
527                        #TEST DE LAS APT
528                        for x in dict[self.APT]:
529                                list_apt=None
530                                list_apt_ok=[]
531                                print "[LLXRemoteInstaller](dict_ok) Comprobando el PPA: %s"%x
532                                list_apt=dict[self.APT][x][self.LIST]
533                                #print "[LLXRemoteInstaller](dict_ok) Comprobando el listado de APP: %s"%list_apt
534                                url=dict[self.APT][x][self.URL]
535                                print "[LLXRemoteInstaller](dict_ok) El listado de APT es %s lo comprobaremos en la URL: %s"%(list_apt,url)
536                               
537                                if list_apt not in ["",None,[]] or url not in ["",None]:
538                                        #print "entro aqui dos"
539                                        if self.repo_add(url)[0]:
540                                                print "[LLXRemoteInstaller](dict_ok) Repo esta ADDED"
541                                                if self.repo_update()[0]:
542                                                        print "[LLXRemoteInstaller](dict_ok) Repo is UPDATED"
543                                                        pass
544                                                else:
545                                                        return [False,"false el repo_update"]
546                                                        #return [False,self.repo_update()[1]]
547                                        else:
548                                                #return [False,self.repo_add()[1]]
549                                                return [False,"false el repo_add"]
550                                       
551                                        for app in list_apt:
552                                                print "[LLXRemoteInstaller](dict_ok) Comprobando si es avaiable el APT: %s"%app
553                                                if self.app_repo_exist(app)[0]:
554                                                        list_apt_ok.append(app)
555                                                        list_apt_resume.append(app)
556                                        list_apt=list_apt_ok
557                                        dict[self.APT][x][self.LIST]=list_apt
558                                        print "[LLXRemoteInstaller](dict_ok) El listado de APT disponibles en el repo %s es: %s"%(x,list_apt)
559                                else:
560                                        print "[LLXRemoteInstaller](dict_ok) No hacemos nada con este REPO %s esta vacio de contenido"%x
561                       
562                        self.repo_restore(self.file_sources)   
563                        COMMENT="[LLXRemoteInstaller](dict_ok) El listado de disponibles es ** DEBS: %s  ** SH: %s  **  APT: %s"%(list_debs,list_sh,list_apt_resume)
564                        print ("%s" %COMMENT)
565                        return [True,str(COMMENT),dict,list_apt_resume]
566                       
567                except Exception as e:
568                        return [False,str(e)]
569               
570        #def_dict_ok
571       
Note: See TracBrowser for help on using the repository browser.