Changeset 4763
- Timestamp:
- May 15, 2017, 4:33:39 PM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
lliurex-remote-installer/trunk/fuentes/lliurex-remote-installer-client.install/usr/share/n4d/python-plugins/LliurexRemoteInstallerClient.py
r4610 r4763 5 5 import apt.debfile 6 6 import types 7 import datetime 8 import threading 7 9 8 10 class LliureXRemoteInstallerClient: … … 23 25 LIST='packages' 24 26 URL='url' 27 UPDATE='update' 25 28 26 29 #Essential package for provides … … 31 34 32 35 def __init__(self): 33 self.dbg= 036 self.dbg=1 34 37 pass 35 38 #def __init__ … … 39 42 40 43 def _debug(self,message): 41 if self.dbg== 1:44 if self.dbg==0: 42 45 print("RemoteInstallerClient: "+str(message)) 43 46 self._log(message) … … 59 62 if options["controlled"]: 60 63 if os.system("host server")==0: 61 objects["LliureXRemoteInstallerClient"].test_system() 64 try: 65 t=threading.Thread(target=self.test_system) 66 t.daemon=True 67 t.start() 68 except Exception as e: 69 print e 70 62 71 #def startup 63 72 … … 133 142 # if VALOR in [None,'','None']: 134 143 if not VALOR: 135 list_dict=[self.APT,self.DEB,self.SH ]136 VALOR=self.create_dict ([self.APT,self.DEB,self.SH ])[2]144 list_dict=[self.APT,self.DEB,self.SH,self.UPDATE] 145 VALOR=self.create_dict ([self.APT,self.DEB,self.SH,self.UPDATE])[2] 137 146 if objects["VariablesManager"].add_variable(namevar,VALOR,"",namevar,[],False,False)[0]: 138 147 COMMENT = ("[LLXRemoteInstallerClient] (test_var) Added variable %s to VariablesManager with valor %s" %(namevar,VALOR)) … … 596 605 return(result_sh) 597 606 #def sh_test 607 608 609 610 611 def update_test(self,appDict,dictOrig): 612 613 self._debug("update_test") 614 updated="False" 615 #Get dict values 616 try: 617 updateDict=appDict[self.UPDATE] 618 except: 619 self._debug("Update Test: Creating new dictionary") 620 version_installed=subprocess.Popen(["lliurex-version -n"],shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE).communicate()[0] 621 version_installed=version_installed.split()[0] 622 updateDict={'version':version_installed,'datetime':"None",'url':"Mirror"} 623 624 self._debug("Update Test: Continue......") 625 626 version_installed=subprocess.Popen(["lliurex-version -n"],shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE).communicate()[0] 627 version_installed=version_installed.split()[0] 628 version_programed=appDict[self.UPDATE]['version'] 629 630 self._debug("Update Test: Version installed %s"%version_installed) 631 self._debug("Update Test: Version programed %s"%version_programed) 632 633 if ( version_installed < version_programed ): 634 #actualizo repos y updateo 635 if appDict[self.UPDATE]['url']=='Lliurex.net': 636 self._debug("(update_test) Updating your system to Lliurex.net, please wait........") 637 #proc = subprocess.Popen(["lliurex-upgrade -u -r"],shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE).communicate() 638 #ret=os.system("http_proxy=http://proxy:3128 /usr/sbin/lliurex-upgrade -u -r 2>/dev/null 1>/dev/null") 639 #ret=int(ret) 640 proc = subprocess.Popen('http_proxy=http://proxy:3128 /usr/sbin/lliurex-upgrade -u -r', shell=True, stdin=None, stdout=open("/dev/null", "w"), stderr=None, executable="/bin/bash") 641 proc.wait() 642 date=datetime.datetime.now() 643 date_update=date.strftime("%d-%m-%Y %H:%M:%S") 644 print ("Actualizacion terminada...... %s"%date_update) 645 if proc.returncode == 1: 646 print "Fallo actulalizacion" 647 else: 648 proc = subprocess.Popen('http_proxy=http://proxy:3128 /usr/sbin/lliurex-upgrade -u', shell=True, stdin=None, stdout=open("/dev/null", "w"), stderr=None, executable="/bin/bash") 649 proc.wait() 650 date=datetime.datetime.now() 651 date_update=date.strftime("%d-%m-%Y %H:%M:%S") 652 print ("Actualizacion terminada...... %s"%date_update) 653 if proc.returncode == 1: 654 print "Fallo actulalizacion" 655 656 updated="True" 657 update_url=appDict[self.UPDATE]['url'] 658 new_version=subprocess.Popen(["lliurex-version -n"],shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE).communicate()[0] 659 new_version=new_version.split()[0] 660 date=datetime.datetime.now() 661 date_update=date.strftime("%d-%m-%Y %H:%M") 662 updateDict={'version':new_version,'datetime':date_update,'url':update_url} 663 664 self._debug("Update Test: New dict %s"%updateDict) 665 666 return [updateDict, updated] 667 668 #def deb_test 669 670 598 671 599 672 def _refine_apt_repoList(self,appDict,dictOrig): … … 675 748 #def apt_test 676 749 677 def _update_results(self,dict_orig,result_deb,result_sh,result_apt ):750 def _update_results(self,dict_orig,result_deb,result_sh,result_apt,result_update,updated): 678 751 if not dict_orig: 679 752 #Create dict if doesn't exists 680 753 self._debug("[LLXRemoteInstallerClient](test_system) Creando el diccionario.......") 681 dict_new=self.create_dict ([self.APT,self.DEB,self.SH ])[2]754 dict_new=self.create_dict ([self.APT,self.DEB,self.SH,self.UPDATE])[2] 682 755 dict_new[self.APT]=list(result_apt) 683 756 dict_new[self.DEB]=list(result_deb[2]) 684 757 dict_new[self.SH]=list(result_sh[2]) 758 dict_new[self.UPDATE]=result_update 685 759 self.update_var_dict (self.N4D_INSTALLED,dict_new,"localhost") 686 760 else: 687 761 #Update dict 762 try: 763 updateDict=dict_orig[self.UPDATE] 764 except: 765 self._debug("Update Result: Creating new dictionarie") 766 version_installed=subprocess.Popen(["lliurex-version -n"],shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE).communicate()[0] 767 version_installed=version_installed.split()[0] 768 updateDict={'version':version_installed,'datetime':"None",'url':"Mirror"} 769 dict_orig[self.UPDATE]=[] 770 dict_orig[self.UPDATE]=updateDict 771 772 688 773 dict_new=dict_orig 689 log="[LLXRemoteInstallerClient](test_system) Will add APT: %s ** DEBS: %s ** SH: %s "%(result_apt,result_deb[2],result_sh[2])774 log="[LLXRemoteInstallerClient](test_system) Will add APT: %s ** DEBS: %s ** SH: %s ** UPDATE: %s "%(result_apt,result_deb[2],result_sh[2],result_update) 690 775 self._debug(log) 691 776 #Check the dict against a tuple 692 dict_help=self.create_dict ([self.APT,self.DEB,self.SH ])[2]777 dict_help=self.create_dict ([self.APT,self.DEB,self.SH,self.UPDATE])[2] 693 778 dict_help[self.APT]=list(result_apt) 694 779 dict_help[self.DEB]=list(result_deb[2]) 695 780 dict_help[self.SH]=list(result_sh[2]) 696 self._debug("[LLXRemoteInstallerClient](test_system) dict to compare is "+str(dict_help)) 781 #dict_help[self.UPDATE]=result_update 782 #self._debug("[LLXRemoteInstallerClient](test_system) dict to compare is "+str(dict_help)) 697 783 #Check values 784 if updated == 'True': 785 log="[LLXRemoteInstallerClient](test_system) System has been updated to version: %s"%result_update['version'] 786 self._debug(log) 787 dict_new[self.UPDATE]=result_update 698 788 for valor_dict in dict_help: 699 789 self._debug("[LLXRemoteInstallerClient](test_system) Test APP from: "+valor_dict) … … 717 807 except Exception as e: 718 808 self._debug("ERROR: "+str(e)) 719 809 return (dict_new) 720 810 #def _update_results 721 811 … … 749 839 self._debug("Call apt_test") 750 840 result_apt=self.apt_test(appDict,dict_orig) 841 #TEST UPDATE 842 self._debug("Call update_test") 843 if appDict[self.UPDATE]['activate']=="True": 844 try: 845 result_update_vector=self.update_test(appDict,dict_orig) 846 result_update=result_update_vector[0] 847 updated=result_update_vector[1] 848 except Exception as e: 849 print e 850 else: 851 result_update={'version':dict_orig[self.UPDATE]['version'],'url':dict_orig[self.UPDATE]['url'],'datetime':dict_orig[self.UPDATE]['datetime']} 852 updated="False" 853 self._debug("Updated is %s"%updated) 751 854 752 855 #Check that it's a list 753 856 sh_installed=list(result_sh[2]) 754 857 #Add results to N4D dict 755 dict_new=self._update_results(dict_orig,result_deb,result_sh,result_apt )858 dict_new=self._update_results(dict_orig,result_deb,result_sh,result_apt,result_update,updated) 756 859 # if dict_orig in ["",None,{}]: 757 860 log="Dict now is %s"%dict_new 758 861 self._debug(log) 759 self._debug("Updating .......")862 self._debug("Updating N4D Variable.......") 760 863 #Add installed apps to N4D 761 864 self.update_var_dict (self.N4D_INSTALLED,dict_new,"localhost") 762 COMMENT="The system has been configured with the APPS: %s * has executed the scripts: %s * Installed new DEBS: %s"%(result_apt,sh_installed,result_deb[2]) 865 if updated == 'False': 866 COMMENT="The system has been configured with the APPS: %s * has executed the scripts: %s * Installed new DEBS: %s"%(result_apt,sh_installed,result_deb[2]) 867 else: 868 COMMENT="The system has been configured with the APPS: %s * has executed the scripts: %s * Installed new DEBS: %s * Updated to: %s"%(result_apt,sh_installed,result_deb[2],result_update['version']) 763 869 self._debug(COMMENT) 764 return [True,str(COMMENT),result_apt,result_sh[2],result_deb[2],dict_new] 765 except Exception as e: 870 return [True,str(COMMENT),result_apt,result_sh[2],result_deb[2],updated,dict_new] 871 except Exception as e: 872 print e,"!!!!!!!!!!" 766 873 return[False,str(e)] 767 874
Note: See TracChangeset
for help on using the changeset viewer.