Changeset 3426 for lliurex-up/trunk


Ignore:
Timestamp:
Jan 26, 2017, 1:52:33 PM (3 years ago)
Author:
jrpelegrina
Message:

WIP in new cli

Location:
lliurex-up/trunk/fuentes
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • lliurex-up/trunk/fuentes/lliurex-up-cli/usr/sbin/lliurex-upgrade

    r3411 r3426  
    99import time
    1010
    11 class LliurexUpCli:
     11class LliurexUpCli(object):
    1212        def __init__(self):
    1313
    1414                self.lliurexcore = lliurex.lliurexup.LliurexUpCore()
     15                self.errorupgrade_token=os.path.join(self.lliurexcore.processPath,'errorupgrade_token')
     16                self.finalupgrade_token=os.path.join(self.lliurexcore.processPath,'finalupgrade_token')
     17
    1518                self.checkInitialFlavour()
    1619       
     
    3134                        if len(self.previousFlavours)==0:
    3235                                self.lliurexcore.getPreviuosFlavours()
    33                        
    34                         log_msg="Get initial flavours: " + str(self.previousFlavours)
    35                         self.log(log_msg)
    36                  
    3736                except Exception as e:
    3837                        print e
     
    157156                        return False
    158157
     158
     159        def checkPreviousUpgrade(self):
     160               
     161                error=False
     162                if self.version_update["candidate"]!=None:
     163                        if self.version_update["installed"]!=self.version_update["candidate"]:
     164                                error=True
     165                else:
     166                        if self.version_update["installed"]!=self.version_available["candidate"]:       
     167                                error=True
     168
     169                return error                   
     170
    159171        def preActionsScript(self):
    160172
     
    174186                        print e
    175187
     188        def checkFinalFlavour(self):
     189               
     190                flavourToInstall=None
     191               
     192                try:
     193                        self.targetMetapackage=self.lliurexcore.checkFlavour()
     194                        if self.targetMetapackage==None:
     195                                flavourToInstall=self.requiresInstallFlavour()
     196                        else:
     197                                flavourToInstall=self.targetMetapackage         
     198
     199                except Exception as e:
     200                        print e
     201                       
     202                return flavourToInstall                 
     203
     204
     205        def checkingFinalFlavourToInstall(self):
     206               
     207                self.flavourToInstall=self.checkFinalFlavour()
     208
     209                if self.flavourToInstall!=None:
     210                        print ("  [Lliurex-up]: Install of meta is required: " + str(self.flavourToInstall))
     211                        command=self.lliurexcore.installFinalFlavour(self.flavourToInstall)
     212                        try:
     213                                os.system(command)
     214                        except Exception as e:
     215                                print e
     216                else:
     217                        print (" [Lliurex-up]: Meta is correct. Nothing to do")
     218
     219                return                 
     220
     221
    176222        def postActionsScript(self):
    177223
     
    180226                        os.system(command)
    181227                except Exception as e:
    182                         print e                                 
    183 
    184         def main(self):
     228                        print e                         
     229
     230        def checkFinalUpgrade(self):
     231               
     232                error=False
     233
     234                cmd='dpkg -l | grep "^i[^i]" >' + self.errorupgrade_token
     235                os.system(cmd)
     236               
     237                if os.path.exists(self.errorupgrade_token):
     238                        aux = open(self.errorupgrade_token,'r')
     239                        lines = aux.readlines()
     240                        aux.close()
     241                       
     242                        if len(lines)>0:
     243                                error=True
     244
     245                        else:
     246                                j=0
     247                                cmd='apt-get dist-upgrade -sV >' + self.finalupgrade_token
     248                                os.system(cmd)
     249                                if os.path.exists(self.finalupgrade_token):
     250                                        aux = open(self.finalupgrade_token,'r')
     251                                        lines = aux.readlines()
     252                                        aux.close()
     253
     254                                        for x in lines:
     255                                                if 'Inst' in x:
     256                                                        j=j+1
     257
     258                                        if j>0:
     259                                                error=True     
     260                if error:
     261                        print("  [Lliurex-up]: The updated process is endend with errors")
     262               
     263                else:                                   
     264                        print("  [Lliurex-up]: The system is now update")                       
     265
     266        def main(self,mode):
     267
     268                if mode=="sai":
     269                        print "Pending"
     270                        exit(0)
    185271
    186272                print("  [Lliurex-up]: Checking system")
     
    191277                self.checkMirror()
    192278                print("  [Lliurex-up]: Checking LliurexVersion from local repository")
    193                 version_update=self.lliurexcore.getLliurexVersionLocal()
     279                self.version_update=self.lliurexcore.getLliurexVersionLocal()
    194280                print("  [Lliurex-up]: Checking LliurexVersion from lliurex.net")
    195                 version_available=self.lliurexcore.getLliurexVersionLliurexNet()
     281                self.version_available=self.lliurexcore.getLliurexVersionLliurexNet()
    196282
    197283                print("  [Lliurex-up]: Checking if installation of flavour is required")
     
    201287                self.packages=self.lliurexcore.getPackagesToUpdate()
    202288
    203                 if len(self.packages)>0:
    204                        
    205                         if not self.checkingIncorrectFlavours():
     289                if not self.checkingIncorrectFlavours():
     290                        if len(self.packages)>0:
    206291                                print("  [Lliurex-up]:List of packages to update")
    207292                                for item in self.packages:
    208293                                        print item + ": " + self.packages[item]["candidate"]
    209294
    210                                 response=raw_input(' [LLiurex-up]: Do you want to udpate the system(yes/no)): ').lower()
     295                                response=raw_input('  [LLiurex-up]: Do you want to udpate the system(yes/no)): ').lower()
    211296                                if response.startswith('y'):
    212                                         print("  [Lliurex-up]: Preparin system to update")
     297                                        print("  [Lliurex-up]: Preparing system to update")
    213298                                        self.preActionsScript()
    214299                                        print("  [Lliurex-up]: Downloading and installing packages")
     
    216301                                        print("  [Lliurex-up]: Ending the update")
    217302                                        self.postActionsScript()
    218                                         print("  [Lliurex-up]: The system is now update")
     303                                        print("  [Lliurex-up]: Checking Final Flavour")
     304                                        self.checkingFinalFlavourToInstall()   
     305                                        self.checkFinalUpgrade()
    219306                                        self.lliurexcore.cleanEnvironment()
    220307
     
    224311                                        return 0       
    225312                        else:
    226                                 print("[Lliurex-up]: Updated abort for incorrect flavours detected in new update")
    227                 else:
    228                         print("  [Lliurex-up]: Your systems is updated. Nothing to do")         
    229                         return 0                       
    230 
     313                                if not self.checkPreviousUpgrade():
     314                                        print("  [Lliurex-up]: Your systems is updated. Nothing to do")
     315                                        return 0
     316                                else:
     317                                        print("  [Lliurex-up]: Updated abort. An error occurred checking new updates")
     318                                        return 1
     319                else:
     320                        print("[Lliurex-up]: Updated abort for incorrect flavours detected in new update")
     321                        return 1                       
     322
     323def     usage():
     324        puts("Usage")
     325        with indent(4):
     326                puts("lliurex-upgrade [FLAGS...]")
     327                puts("Flags")
     328                with indent(4):
     329                        puts("-h --help: Show help")
     330                        puts("-s --sai: Update the system without checking sources list")       
     331
     332        sys.exit(1)             
    231333
    232334
     
    236338                print "You need be root!"
    237339                sys.exit(1)
    238 
    239         lliurexupcli = LliurexUpCli()
    240         lliurexupcli.main()
     340        mode=None       
     341        args=arguments.Args().copy
     342       
     343        if args.contains(["-h", "--help"]):
     344                usage()
     345       
     346        if args.contains(["-s", "--sai"]):
     347                mode="sai"
     348       
     349        lliurexupcli = LliurexUpCli()   
     350        sys.exit(lliurexupcli.main(mode))
  • lliurex-up/trunk/fuentes/lliurex-up/usr/share/lliurex-up/LliurexUpConnect.py

    r3399 r3426  
    476476
    477477                self.command=self.llxUpCore.installFinalFlavour(flavourToInstall)
    478                 self.command='DEBIAN_FRONTEND=gnome DEBIAN_PRIORITY=high ' +self.command + ' ;touch ' + self.installflavour_token + '\n'
     478                self.command='DEBIAN_FRONTEND=gnome DEBIAN_PRIORITY=high ' +self.command + ' ;touch ' + self.installflavour_token + ' ; exit'+' \n'
    479479                log_msg="Install final flavour"
    480480                self.log(log_msg)
     
    486486
    487487                self.postActions=self.llxUpCore.postActionsScript()
    488                 self.postActions=self.postActions + ' 2> >(tee ' + self.errorpostaction_token + ') ;touch ' + self.postactions_token + ' ; exit ' +'\n'
     488                self.postActions=self.postActions + ' 2> >(tee ' + self.errorpostaction_token + ') ;touch ' + self.postactions_token + ' \n'
    489489                log_msg="Exec Post-Actions"
    490490                self.log(log_msg)
  • lliurex-up/trunk/fuentes/lliurex-up/usr/share/lliurex-up/lliurex-up.py

    r3396 r3426  
    9494                self.check_root()
    9595                self.llxup_connect=LliurexUpConnect.LliurexUpConnect()
    96                 print "[Lliurex-up]: Checking Flavours"
     96                print "  [Lliurex-up]: Checking Flavours"
    9797                #self.checkFlavour=self.llxup_connect.checkFlavour()
    9898                #self.previousFlavours=self.llxup_connect.previousFlavours
     
    106106               
    107107                try:
    108                         print "[Lliurex-up]: Checking root"
     108                        print "  [Lliurex-up]: Checking root"
    109109                        f=open("/etc/lliurex-up.token","w")
    110110                        f.close()
    111111                        os.remove("/etc/lliurex-up.token")
    112112                except:
    113                         print "[Lliurex-up]: No administration privileges"
     113                        print "  [Lliurex-up]: No administration privileges"
    114114                        dialog = Gtk.MessageDialog(None,0,Gtk.MessageType.ERROR, Gtk.ButtonsType.CANCEL, "Lliurex UP")
    115115                        dialog.format_secondary_text("You need administration privileges to run this application.")
     
    519519
    520520                if not self.initactions_process_t.launched:
    521                         print "[Lliurex-up]: Exec Init-Actions"
     521                        print "  [Lliurex-up]: Exec Init-Actions"
    522522                        self.initactions_process_t.start()
    523523                        self.initactions_process_t.launched=True
     
    531531                if self.initactions_process_t.done:
    532532                        if  not self.check_lliurexup_t.is_alive() and not self.check_lliurexup_t.launched:
    533                                 print "[Lliurex-up]: Checking Lliurex-up version"
     533                                print "  [Lliurex-up]: Checking Lliurex-up version"
    534534                                msg_gather="<span><b>"+_("Checking for new version of lliurex-up")+"</b></span>"
    535535                                self.gather_label.set_markup(msg_gather)
     
    542542                                if not self.is_lliurexup_updated:
    543543                                        if  not self.install_lliurexup_t.is_alive() and not self.install_lliurexup_t.launched:
    544                                                 print "[Lliurex-up]: Updating Lliurex-up"
     544                                                print "  [Lliurex-up]: Updating Lliurex-up"
    545545                                                msg_gather="<span><b>"+_("Updating Lliurex-up")+"</b></span>"
    546546                                                self.gather_label.set_markup(msg_gather)
     
    551551                                        else:
    552552                                                if self.install_lliurexup_t.done:
    553                                                         print "[Lliurex-up]: Reboot Lliurex-up"
     553                                                        print "  [Lliurex-up]: Reboot Lliurex-up"
    554554                                                        #msg_gather="<span><b>"+_("Lliurex-up is now updated and will be reboot")+"</b></span>"
    555555                                                        #self.pbar.hide()
     
    565565                                       
    566566                                        if not self.check_mirror_t.is_alive() and not self.check_mirror_t.launched:
    567                                                 print "[Lliurex-up]: Checking if mirror exist"
     567                                                print "  [Lliurex-up]: Checking if mirror exist"
    568568                                                msg_gather="<span><b>"+_("Checking if mirror exist and there is updated")+"</b></span>"
    569569                                                self.gather_label.set_markup(msg_gather)
     
    579579                                                if not self.is_mirror_updated:
    580580                                                        if not is_mirror_running:
    581                                                                 print "[Lliurex-up]: Asking if mirror will be update"
     581                                                                print "  [Lliurex-up]: Asking if mirror will be update"
    582582                                                                self.yes_button_box.show()
    583583                                                                self.no_button_box.show()
     
    599599                                                                return False
    600600                                                        else:   
    601                                                                 print "[Lliurex-up]: Nothing to do with mirror"
     601                                                                print "  [Lliurex-up]: Nothing to do with mirror"
    602602                                                                GLib.timeout_add(100,self.pulsate_get_info)
    603603                                                                return False
     
    775775 
    776776                if not self.get_lliurexversionlocal_t.launched:
    777                         print "[Lliurex-up]: Checking LliurexVersion from local repository "
     777                        print "  [Lliurex-up]: Checking LliurexVersion from local repository "
    778778                        msg_gather="<span><b>"+_("Checking new version to update")+"</b></span>"
    779779                        self.gather_label.set_markup(msg_gather)
     
    786786                if self.get_lliurexversionlocal_t.done:
    787787                        if not self.get_lliurexversionnet_t.is_alive() and not self.get_lliurexversionnet_t.launched:
    788                                 print "[Lliurex-up]: Checking LliurexVersion from Lliurex net"
     788                                print "  [Lliurex-up]: Checking LliurexVersion from Lliurex net"
    789789                                msg_gather="<span><b>"+_("Checking new version available")+"</b></span>"
    790790                                self.gather_label.set_markup(msg_gather)
     
    798798
    799799                                if not self.checkInitialFlavourToInstall_t.is_alive() and not self.checkInitialFlavourToInstall_t.launched:
    800                                         print "[Lliurex-up]: Checking if installation of flavour is required"
     800                                        print "  [Lliurex-up]: Checking if installation of flavour is required"
    801801                                        msg_gather="<span><b>"+_("Checking if installation of flavour is required")+"</b></span>"
    802802                                        self.gather_label.set_markup(msg_gather)
     
    810810
    811811                                        if not self.gather_packages_t.is_alive() and not self.gather_packages_t.launched:
    812                                                 print "[Lliurex-up]: Checking for new updates"
     812                                                print "  [Lliurex-up]: Checking for new updates"
    813813                                                msg_gather="<span><b>"+_("Checking for new updates")+"</b></span>"
    814814                                                self.gather_label.set_markup(msg_gather)
     
    840840                                                                                msg_gather="<span><b>"+_("Updated abort. An error occurred checking new updates")+"</b></span>"
    841841                                                                                self.gather_label.set_markup(msg_gather)
    842                                                                                 print "[Lliurex-up]: Error in checking new updates"
     842                                                                                print "  [Lliurex-up]: Error in checking new updates"
    843843                                                                                return False
    844844                                                                else:
    845845                                                                        msg_gather="<span><b>"+_("Your system is update")+"</b></span>"
    846846                                                                        self.gather_label.set_markup(msg_gather)
    847                                                                         print "[Lliurex-up]: System update. Nothing to do"
     847                                                                        print "  [Lliurex-up]: System update. Nothing to do"
    848848                                                                        return False
    849849                                                                                                       
    850850                                                        else:
    851                                                                 print "[Lliurex-up]: System nor update"
     851                                                                print "  [Lliurex-up]: System nor update"       
    852852
    853853                                                                #self.requires_installing_metapackage()
     
    863863                                                        self.gather_label.set_markup(msg_gather)
    864864                                                        #self.pbar.hide()
    865                                                         print "[Lliurex-up]: Sytem update. Nothing to do"
     865                                                        print "  [Lliurex-up]: Update abort. Detect incorrect flavours in new updates"
    866866                                                        return False                                                   
    867867               
     
    906906                        if self.flavourToInstall != None:
    907907                                print self.flavourToInstall
    908                                 print "[Lliurex-up]: Installation of flavour is required"
     908                                print "  [Lliurex-up]: Installation of flavour is required"
    909909                                is_flavour_installed=self.llxup_connect.installInitialFlavour(self.flavourToInstall)   
    910910                                self.checkInitialFlavourToInstall_t.done=True   
    911911                        else:
    912                                 print "[Lliurex-up]: Installation of flavour is not required"
     912                                print "  [Lliurex-up]: Installation of flavour is not required"
    913913                                self.checkInitialFlavourToInstall_t.done=True   
    914914
    915915                else:
    916916                        print self.targetMetapackage
    917                         print "[Lliurex-up]: Installation of flavour is required"
     917                        print "  [Lliurex-up]: Installation of flavour is required"
    918918                        is_flavour_installed=self.llxup_connect.installInitialFlavour(self.targetMetapackage)   
    919919                        self.checkInitialFlavourToInstall_t.done=True                   
     
    10701070
    10711071                if not self.preactions_process_t.launched:
    1072                         print "[Lliurex-up]: Executing pre-actions"
     1072                        print "  [Lliurex-up]: Executing pre-actions"
    10731073                        self.pbar_label.show()
    10741074                        self.cancel_button_box.hide()
     
    10831083                        if self.preactions_process_t.done:
    10841084                                if not self.update_process_t.is_alive() and not self.update_process_t.launched:
    1085                                         print "[Lliurex-up]: Executing dist-upgrade"
     1085                                        print "  [Lliurex-up]: Executing dist-upgrade"
    10861086                                        self.update_process_t.start()
    10871087                                        self.update_process_t.launched=True
     
    10901090                               
    10911091                                if self.update_process_t.done:
    1092                                         if not self.checkFinalFlavourToInstall_t.is_alive() and not self.checkFinalFlavourToInstall_t.launched:
    1093                                                 print "[Lliurex-up]: Checking Final Flavour"
    1094                                                 self.checkFinalFlavourToInstall_t.start()
    1095                                                 self.checkFinalFlavourToInstall_t.launched=True
    1096                                                 self.show_number_process_executing(3,"Checking Flavour")
     1092                                        if not self.postactions_process_t.is_alive() and not self.postactions_process_t.launched:
     1093                                                print "  [Lliurex-up]: Executing post-actions"
     1094                                                self.postactions_process_t.start()
     1095                                                self.postactions_process_t.launched=True
     1096                                                self.show_number_process_executing(3,"Ending the update")
     1097                                       
     1098                                        if self.postactions_process_t.done:
     1099
     1100                                                if not self.checkFinalFlavourToInstall_t.is_alive() and not self.checkFinalFlavourToInstall_t.launched:
     1101                                                        print "  [Lliurex-up]: Checking Final Flavour"
     1102                                                        self.checkFinalFlavourToInstall_t.start()
     1103                                                        self.checkFinalFlavourToInstall_t.launched=True
     1104                                                        self.show_number_process_executing(4,"Checking Flavour")
    10971105                                                                               
    10981106                                       
    1099                                         if self.checkFinalFlavourToInstall_t.done:                               
    1100 
    1101                                                 if not self.postactions_process_t.is_alive() and not self.postactions_process_t.launched:
    1102                                                         print "[Lliurex-up]: Executing post-actions"
    1103                                                         self.postactions_process_t.start()
    1104                                                         self.postactions_process_t.launched=True
    1105                                                         self.show_number_process_executing(4,"Ending the update")
    1106 
    1107                                                
    1108                                                 if self.postactions_process_t.done:
    1109                                                         self.cancel_button_box.show()
    1110                                                         self.pbar.hide()
    1111                                                         self.pbar_label.hide()
    1112                                                         self.terminal_label.set_name("CHANGELOG_FONT")
    1113                                                         self.update_installed_icon()
    1114                                                         if not self.llxup_connect.checkErrorDistUpgrade():
    1115                                                                 self.msg_upgrade_running="<span><b>" + _("The system is now update") + "</b></span>"
    1116                                                                 self.update_button_box.set_name("UPDATE_CORRECT_BUTTON_COLOR")
    1117 
    1118                                                         else:
    1119                                                                 self.terminal_label.set_name("ERROR_FONT")
    1120                                                                 self.msg_upgrade_running="<span><b>" + _("The updated process is endend with errors") + "</b></span>"
    1121                                                                 self.update_button_box.set_name("UPDATE_ERROR_BUTTON_COLOR")
    1122 
    1123                                                         #self.update_button_box.set_name("UPDATE_BUTTON_END_COLOR")
    1124                                                         self.terminal_label.set_markup(self.msg_upgrade_running)
    1125                                                         return False
     1107                                                if self.checkFinalFlavourToInstall_t.done:                               
     1108
     1109                                                        if self.postactions_process_t.done:
     1110                                                                self.cancel_button_box.show()
     1111                                                                self.pbar.hide()
     1112                                                                self.pbar_label.hide()
     1113                                                                self.terminal_label.set_name("CHANGELOG_FONT")
     1114                                                                self.update_installed_icon()
     1115                                                                if not self.llxup_connect.checkErrorDistUpgrade():
     1116                                                                        self.msg_upgrade_running="<span><b>" + _("The system is now update") + "</b></span>"
     1117                                                                        self.update_button_box.set_name("UPDATE_CORRECT_BUTTON_COLOR")
     1118
     1119                                                                else:
     1120                                                                        self.terminal_label.set_name("ERROR_FONT")
     1121                                                                        self.msg_upgrade_running="<span><b>" + _("The updated process is endend with errors") + "</b></span>"
     1122                                                                        self.update_button_box.set_name("UPDATE_ERROR_BUTTON_COLOR")
     1123
     1124                                                                #self.update_button_box.set_name("UPDATE_BUTTON_END_COLOR")
     1125                                                                self.terminal_label.set_markup(self.msg_upgrade_running)
     1126                                                                return False
    11261127               
    11271128       
     
    11431144                                        self.update_process_t.done=True
    11441145                                        return True
    1145 
    1146                 if self.checkFinalFlavourToInstall_t.launched:
    1147                         if not self.checkFinalFlavourToInstall_t.done:
    1148                                 if not os.path.exists(self.llxup_connect.installflavour_token):
    1149                                         return True
    1150                                 else:
    1151                                         self.checkFinalFlavourToInstall_t.done=True     
    1152                                         return True
    1153 
    1154 
    11551146                if self.postactions_process_t.launched:
    11561147                        if      not self.postactions_process_t.done:
     
    11601151                                else:
    11611152                                        self.postactions_process_t.done=True
    1162                                         return True                     
     1153                                        return True             
     1154
     1155
     1156                if self.checkFinalFlavourToInstall_t.launched:
     1157                        if not self.checkFinalFlavourToInstall_t.done:
     1158                                if not os.path.exists(self.llxup_connect.installflavour_token):
     1159                                        return True
     1160                                else:
     1161                                        self.checkFinalFlavourToInstall_t.done=True     
     1162                                        return True                             
    11631163
    11641164                       
     
    11851185
    11861186
     1187        def postactions_process(self):
     1188
     1189                self.command=self.llxup_connect.postActionsScript()
     1190                #self.command=self.llxup_connect.preActionsScript() + ' | tee ' + TMP_FILE + ';rm ' + TMP_FILE +'\n'
     1191                length=len(self.command)
     1192                self.vterminal.feed_child(self.command, length)
     1193
     1194        #def postactions_process
     1195
     1196       
    11871197        def checkFinalFlavourToInstall(self):
    11881198
     
    11901200
    11911201                if self.flavourToInstall !=None:
    1192                         print "[Lliurex-up]: Check Final Metapackage: Instalation of meta is required"
     1202                        print "  [Lliurex-up]: Check Final Metapackage: Instalation of meta is required"
    11931203                        self.installFinalFlavour(self.flavourToInstall)
    11941204                else:
    1195                         print "[Lliurex-up]: Check Final Metapackage: Nothing to do"
     1205                        print "  [Lliurex-up]: Check Final Metapackage: Nothing to do"
    11961206                        self.checkFinalFlavourToInstall_t.done=True     
    11971207       
     
    12061216        #def installFinalFlavour
    12071217       
    1208         def postactions_process(self):
    1209 
    1210                 self.command=self.llxup_connect.postActionsScript()
    1211                 #self.command=self.llxup_connect.preActionsScript() + ' | tee ' + TMP_FILE + ';rm ' + TMP_FILE +'\n'
    1212                 length=len(self.command)
    1213                 self.vterminal.feed_child(self.command, length)
    1214 
    1215         #def postactions_process
    12161218       
    12171219        def view_packages_clicked(self,widget,event):
Note: See TracChangeset for help on using the changeset viewer.