Changeset 3016


Ignore:
Timestamp:
Dec 9, 2016, 2:51:57 PM (3 years ago)
Author:
jrpelegrina
Message:

WIP in new gui. Add checking of meta

Location:
lliurex-up/trunk/fuentes/lliurex-up-gui
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • lliurex-up/trunk/fuentes/lliurex-up-gui/LliurexUpConnect.py

    r2957 r3016  
    2323                log_msg="------------------------------------------\n"+"LLIUREX-UP STARTING AT: " + datetime.datetime.today().strftime("%d/%m/%y %H:%M:%S") +"\n------------------------------------------"
    2424                self.log(log_msg)
     25                self.checkInitialFlavour()
     26
    2527
    2628        #def __init__   
    2729
    28         def getInitialFlavour(self):
    29 
    30                 self.initFlavours = [ x.strip() for x in self.llxUpCore.n4d.lliurex_version('','LliurexVersion','-v')[1].split(',') ]
    31                 log_msg="Initial flavour: "
    32                 for line in self.initFlavours:
    33                         log_msg=log_msg + " " + line
    34 
    35                 self.log(log_msg)       
    36 
    37                 return  self.initFlavours
    38 
    39         #def getInitialFlavour 
    40 
    41         def checkFlavour(self):
    42                  
     30
     31        def checkInitialFlavour(self):
     32                 self.targetMetapackage=None
    4333                 try:
    4434                        self.targetMetapackage=self.llxUpCore.checkFlavour()
    45                         log_msg="Initial check metapackage. Metapackage to install: " + str(self.targetMetapackage)
     35                        log_msg="Initial check metapackage. Metapackage to install: " + str(self.targetMetapackage)
    4636                        self.log(log_msg)
    47                         return self.targetMetapackage
     37                        self.previousFlavours=self.llxUpCore.previuosFlavours
     38                        log_msg="Get initial flavours: " + str(self.previousFlavours)
     39                        self.log(log_msg)
     40                        self.flavours=self.llxUpCore.flavours
     41                        log_msg="Get update flavours " + str(self.flavours)
     42                        self.log(log_msg)
    4843
    4944                 except Exception as e:
    50                         log_msg="Initial check metapackage. Metapackage to install. Error: " + str(e)
     45                        log_msg="Initial check metapackage. Error: " + str(e)
    5146                        self.log(log_msg)
    52                         return None
     47
     48                 return self.targetMetapackage
     49
     50        #def checkFlavoour
     51
     52        def requiresInstallFlavour(self):
     53
     54                flavourToInstall=None
     55                if self.targetMetapackage !=None:
     56                        flavourToInstall=self.targetMetapackage
     57                        log_msg="Requires Install this flavour: " + str(flavourToInstall)
     58                        self.log(log_msg)
     59                else:
     60                        if self.previousFlavours==self.flavours:
     61                                log_msg="Requires Install Flavour: No"
     62                                self.log(log_msg)
     63                        else:
     64                                log_msg="Requires Install Flavour: Yes"
     65                                self.log(log_msg)
     66
     67                return flavourToInstall                                         
    5368                       
    54         #def checkFlavoour             
    55                        
    56 
    57         def checkFinalFlavour(self):
    58        
    59                 self.finalFlavours = [ x.strip() for x in self.llxUpCore.n4d.lliurex_version('','LliurexVersion','-v')[1].split(',') ]
    60                
    61                 if self.targetMetapackage==None:
    62                         if self.initFlavours==self.finalFlavours:
    63                                 log_msg="Final check metapackage. Metapackage to install: None"
    64                                 self.log(log_msg)
    65                                 return None
    66                         else:
    67                                 log_msg="Final check metapackage. Metapackage to install: " +self.initFlavours
    68                                 self.log(log_msg)
    69                                 return self.initFlavours
    70                 else:
    71                         if self.targetMetapackage in self.finalFlavours:
    72                                 log_msg="Final check metapackage. Metapackage to install: None"
    73                                 self.log(log_msg)
    74                                 return True
    75                         else:
    76                                 log_msg="Final check metapackage. Metapackage to install: " +self.targetMetapackage
    77                                 self.log(log_msg)
    78                                 return self.targetMetapackage                           
    79 
    80 
    81         #def checkFinalFlavour         
    82 
    8369
    8470        def canConnectToLliurexNet(self):
     
    130116                try:
    131117                        is_mirror_updated=self.llxUpCore.lliurexMirrorIsUpdated()
    132                        
    133                         if is_mirror_updated['action']=='update':
    134                                 log_msg="Checking mirror. Is mirror update: False"
    135                                 self.log(log_msg)
    136                                 return False
    137                         else:
    138                                 log_msg="Checking mirror. Is mirror update: " + is_mirror_updated['action']
     118
     119                        if is_mirror_updated !=None:
     120                       
     121                                if is_mirror_updated['action']=='update':
     122                                        log_msg="Checking mirror. Is mirror update: False"
     123                                        self.log(log_msg)
     124                                        return False
     125                                else:
     126                                        log_msg="Checking mirror. Is mirror update: " + is_mirror_updated['action']
     127                                        self.log(log_msg)
     128                                        return True
     129                        else:
     130                                log_msg="Checking mirror. Is mirror update: None"
    139131                                self.log(log_msg)
    140132                                return True
     133               
    141134               
    142135                except Exception as e:
     
    172165                        return 0       
    173166
     167
    174168        #def getPercentageLliurexMirror
    175                        
     169
     170        def getLliurexVersionLocal(self):
     171               
     172                try:
     173                        self.lliurexVersionLocal=self.llxUpCore.getLliurexVersionLocal()["candidate"]
     174                        log_msg="Get LliurexVersion from Local repository: " + self.lliurexVersionLocal
     175                        self.log(log_msg)
     176                       
     177
     178                except Exception as e:
     179                        log_msg="Get LliurexVersion from Local repository. Error: " + str(e)
     180                        self.log(log_msg)
     181                        self.lliurexVersionLocal=None
     182
     183                return self.lliurexVersionLocal
     184
     185        def getLliurexVersionNet(self):
     186               
     187                try:
     188                        self.lliurexVersionNet=self.llxUpCore.getLliurexVersionLliurexNet()["candidate"]
     189                        log_msg="Get LliurexVersion from Lliurex Net: " + self.lliurexVersionNet
     190                        self.log(log_msg)
     191                       
     192
     193                except Exception as e:
     194                        log_msg="Get LliurexVersion from Lliurex Net. Error: " + str(e)
     195                        self.log(log_msg)
     196                        self.lliurexVersionNet=None
     197
     198                return self.lliurexVersionNet   
     199
     200
    176201        def getPackagesToUpdate(self):
    177202               
     
    193218                        return packages_parse
    194219
     220
     221        def checkFinalFlavour(self):
     222                self.targetMetapackage=None
     223
     224                try:
     225                        self.targetMetapackage=self.llxUpCore.checkFlavour()
     226                        log_msg="Final check metapackage. Metapackage to install: " + str(targetMetapackage)
     227                        self.log(log_msg)
     228                except Exception as e:
     229                        log_msg="Final check metapackage. Error: " + str(e)
     230                        self.log(log_msg)
     231
     232                return self.targetMetapackage                           
     233
    195234        #def getPackagesToUpdate
    196235                       
  • lliurex-up/trunk/fuentes/lliurex-up-gui/LliurexUpCore.py

    r2932 r3016  
    44import subprocess
    55import socket
     6import distutils.dir_util
    67
    78class LliurexUpCore(object):
     
    1213                self.defaultVersion = 'xenial'
    1314                self.processPath = '/var/run/lliurex-up'
     15                self.changelogsPath = '/var/run/lliurex-up/changelogs'
    1416                self.processSourceslist = '/var/run/lliurex-up/sourceslist'
     17                self.previousflavourspath = os.path.join(self.processPath,'previousflavours')
     18
     19                self.preActionsPath = '/usr/share/lliurex-up/preActions'
     20                self.postActionsPath = '/usr/share/lliurex-up/PostActions'
     21
    1522                self.n4d = xmlrpclib.ServerProxy('https://localhost:9779')
    1623                self.haveLliurexMirror = False
    17                 self.flavours = [ x.strip() for x in self.n4d.lliurex_version('','LliurexVersion','-v')[1].split(',') ]
     24                self.previuosFlavours = []
     25                self.flavours = []
     26                self.getPreviuosFlavours()
    1827                if len(self.n4d.get_methods('MirrorManager')) > 0:
    1928                        self.haveLliurexMirror = True
    2029                self.prepareEnvironment()
     30
     31        def getPreviuosFlavours(self):
    2132               
     33                if os.path.exists(self.previousflavourspath):
     34                        aux = open(self.previousflavourspath,'r')
     35                        lines = aux.readlines()
     36                        for x in lines:
     37                                self.previuosFlavours.append(x.strip())
     38                        aux.close()
     39
     40        def updateFlavoursList(self):
     41                self.flavours = [ x.strip() for x in self.n4d.lliurex_version('','LliurexVersion','-v')[1].split(',') ]
     42                if len(self.flavours) > 0:
     43                        aux = open(self.previousflavourspath,'w')
     44                        for x in self.flavours:
     45                                aux.write(x+"\n")
     46                        aux.close()
     47
     48        def writeDefaultSourceslist(self):
     49                f = open(os.path.join(self.processSourceslist,'default'),'w')
     50                f.write('deb http://lliurex.net/{version} {version} main\n'.format(version=self.defaultVersion))
     51                f.write('deb http://lliurex.net/{version} {version}-updates main\n'.format(version=self.defaultVersion))
     52                f.write('deb http://lliurex.net/{version} {version}-security main\n'.format(version=self.defaultVersion))
     53                f.close()
     54
    2255        def prepareEnvironment(self):
    2356                '''
     
    2861                os.mkdir(self.processPath)
    2962                os.mkdir(self.processSourceslist)
     63                os.mkdir(self.changelogsPath)
    3064                self.writeDefaultSourceslist()
    3165
    32         def writeDefaultSourceslist(self):
    33                 f = open(os.path.join(self.processSourceslist,'default'),'w')
    34                 f.write('deb http://lliurex.net/{version} {version} main'.format(version=self.defaultVersion))
    35                 f.write('deb http://lliurex.net/{version} {version}-updates main'.format(version=self.defaultVersion))
    36                 f.write('deb http://lliurex.net/{version} {version}-security main'.format(version=self.defaultVersion))
    37                 f.close()
     66
     67        def updateCacheApt(self,options=""):
     68                command = "LANG=C apt-get update {options}".format(options=options)
     69                subprocess.Popen(command,shell=True).communicate()
     70
    3871
    3972        def getPackageVersionAvailable(self,package,options=""):
     
    68101                if self.canConnectToLliurexNet():
    69102                        options = "-o Dir::Etc::sourcelist={sourceslistOnlyLliurex} -o Dir::Etc::sourceparts=/dev/null".format(sourceslistOnlyLliurex=sourceslistDefaultPath)
    70                 command = "LANG=C apt-get update {options}".format(options=options)
    71                 subprocess.Popen(command,shell=True).communicate()
     103               
     104                self.updateCacheApt(options)
    72105                result = self.getPackageVersionAvailable('lliurex-up',options)
    73106
     
    88121                        This function install lliurex-up
    89122                '''
    90                 #command = "LANG=C apt-get install lliurex-up {options}".format(options=options)
    91                 command = "LANG=C apt-get install testdisk {options}".format(options=options)
     123                command = "LANG=C apt-get install lliurex-up {options}".format(options=options)
    92124                p = subprocess.Popen(command,shell=True,stdout=subprocess.PIPE)
    93125                poutput,perror = p.communicate()
     
    132164                        install anything.
    133165                '''
     166                self.updateFlavoursList()
    134167                targetMetapackage = None
    135168                if 'None' in self.flavours:
     
    157190                return True
    158191
    159         def getLliurexVersion(self):
     192        def getLliurexVersionLliurexNet(self):
    160193                '''
    161194                        return dictionary => result
     
    166199                if self.canConnectToLliurexNet():
    167200                        options = "-o Dir::Etc::sourcelist={sourceslistOnlyLliurex} -o Dir::Etc::sourceparts=/dev/null".format(sourceslistOnlyLliurex=sourceslistDefaultPath)
    168                 command = "LANG=C apt-get update {options}".format(options=options)
    169                 subprocess.Popen(command,shell=True).communicate()
    170                 return self.getPackageVersionAvailable('lliurex-version-stamp',options)
     201                self.updateCacheApt(options)
     202                return self.getPackageVersionAvailable('lliurex-version-timestamp',options)
     203
     204        def getLliurexVersionLocal(self):
     205                self.updateCacheApt('')
     206                return self.getPackageVersionAvailable('lliurex-version-timestamp','')         
     207
     208        def preActionsScript(self):
     209                return 'run-parts --arg="preActions" ' + self.preActionsPath
     210
     211        def postActionsScript(self):
     212                return 'run-parts --arg="postActions" ' + self.postActionsPath
    171213
    172214        def getPackagesToUpdate(self):
     
    183225                '''
    184226                packageInfo = {}
    185                 subprocess.Popen("LANG=C apt-get update",shell=True).communicate()
     227                self.updateCacheApt("")
    186228                psimulate = subprocess.Popen('LANG=C apt-get dist-upgrade -sV',shell=True,stdout=subprocess.PIPE)
    187229                rawoutputpsimulate = psimulate.stdout.readlines()
     
    201243                                packageInfo[package]['candidate'] = raw[0][1:]
    202244                        packageInfo[package].pop('raw')
    203 
     245                        #packageInfo[package]['changelog'] = os.path.join(self.changelogsPath,package)
     246                        #os.system('LANG=C apt-get changelog %s > %s%s'%(package,self.changelogsPath,package))
     247                        #packageInfo[package]['icon'] =
    204248                return packageInfo
     249
    205250
    206251if __name__ == '__main__':
  • lliurex-up/trunk/fuentes/lliurex-up-gui/lliurex-up.py

    r2957 r3016  
    66import cairo
    77import os
     8import shutil
    89import threading
    910import ConfigParser
     
    3132DONE_ICON="rsrc/done.png"
    3233ERROR_ICON="rsrc/error.png"
     34TMP_FILE="/tmp/upgrade.txt"
    3335
    3436class Package:
    3537
    3638        #def __init__(self,name,version,size,desktop_file,changelog_file):
    37         def __init__(self,name,version,size):
     39        def __init__(self,name,version):
    3840                self.name=name
    3941                self.version=version
    40                 self.size=size
     42                #self.size=size
    4143                #self.parse_desktop(desktop_file)
    4244                #self.parse_changelog(changelog_file)
     
    9193                self.check_root()
    9294                self.llxup_connect=LliurexUpConnect.LliurexUpConnect()
    93                 self.initFlavours=self.llxup_connect.getInitialFlavour()
    94                 self.targetMetapackage=self.llxup_connect.checkFlavour()
     95                print "[Lliurex-up]: Checking Flavours"
     96                #self.checkFlavour=self.llxup_connect.checkFlavour()
     97                #self.previousFlavours=self.llxup_connect.previousFlavours
    9598                #self.start_gui()
    9699
     
    102105               
    103106                try:
    104                         print "Checking root"
     107                        print "[Lliurex-up]: Checking root"
    105108                        f=open("/etc/lliurex-up.token","w")
    106109                        f.close()
    107110                        os.remove("/etc/lliurex-up.token")
    108111                except:
    109                         print "No administration privileges"
     112                        print "[Lliurex-up]: No administration privileges"
    110113                        dialog = Gtk.MessageDialog(None,0,Gtk.MessageType.ERROR, Gtk.ButtonsType.CANCEL, "Lliurex UP")
    111114                        dialog.format_secondary_text("You need administration privileges to run this application.")
     
    221224
    222225                #self.packages_store=Gtk.ListStore(str,str,str,GdkPixbuf.Pixbuf)
    223                 self.packages_store=Gtk.ListStore(str,str,GdkPixbuf.Pixbuf)
     226                self.packages_store=Gtk.ListStore(str,GdkPixbuf.Pixbuf)
    224227                self.packages_tv.set_model(self.packages_store)
    225228                # column=Gtk.TreeViewColumn("")
     
    239242                self.packages_tv.append_column(column)
    240243               
    241                 self.packages_tv.connect("button-release-event",self.package_clicked)
    242                
    243                 column=Gtk.TreeViewColumn("Size")
    244                 cell=Gtk.CellRendererText()
    245                 cell.set_property("alignment",Pango.Alignment.CENTER)
    246                 column.pack_start(cell,False)
    247                 column.add_attribute(cell,"markup",1)
    248                 self.packages_tv.append_column(column)         
     244                # self.packages_tv.connect("button-release-event",self.package_clicked)
     245               
     246                # column=Gtk.TreeViewColumn("Size")
     247                # cell=Gtk.CellRendererText()
     248                # cell.set_property("alignment",Pango.Alignment.CENTER)
     249                # column.pack_start(cell,False)
     250                # column.add_attribute(cell,"markup",1)
     251                # self.packages_tv.append_column(column)               
    249252
    250253
     
    255258                cell=Gtk.CellRendererPixbuf()
    256259                column.pack_start(cell,True)
    257                 column.add_attribute(cell,"pixbuf",2)
     260                column.add_attribute(cell,"pixbuf",1)
    258261                self.packages_tv.append_column(column)
    259262               
     
    292295                #self.wait_response_t=threading.Thread(target=self.wait_response)
    293296                self.execute_lliurexmirror_t=threading.Thread(target=self.execute_lliurexmirror)
     297                self.get_lliurexversionlocal_t=threading.Thread(target=self.get_lliurexversionlocal)
     298                self.get_lliurexversionnet_t=threading.Thread(target=self.get_lliurexversionnet)
     299                self.checkFlavourToInstall_t=threading.Thread(target=self.checkFlavourToInstall)
    294300                self.gather_packages_t=threading.Thread(target=self.gather_packages)
     301                self.update_process_t=threading.Thread(target=self.update_process)
    295302
    296303                self.check_lliurexup_t.daemon=True
     
    299306                #self.wait_response_t.daemon=True
    300307                self.execute_lliurexmirror_t.daemon=True
     308                self.get_lliurexversionlocal_t.daemon=True
     309                self.get_lliurexversionnet_t.daemon=True
     310                self.checkFlavourToInstall_t.daemon=True
     311
    301312                self.gather_packages_t.daemon=True
     313                self.update_process_t.daemon=True
    302314
    303315                self.check_lliurexup_t.done=False
     
    306318                #self.wait_response_t.done=False
    307319                self.execute_lliurexmirror_t.done=False
     320                self.get_lliurexversionlocal_t.done=False
     321                self.get_lliurexversionnet_t.done=False
     322                self.checkFlavourToInstall_t.done=False
     323
    308324                self.gather_packages_t.done=False
     325
     326                self.update_process_t.done=False
    309327
    310328                self.check_lliurexup_t.launched=False
     
    313331                #self.wait_response_t.launched=False
    314332                self.execute_lliurexmirror_t.launched=False
     333                self.get_lliurexversionlocal_t.launched=False
     334                self.get_lliurexversionnet_t.launched=False
     335                self.checkFlavourToInstall_t.launched=False
     336
    315337                self.gather_packages_t.launched=False
    316 
    317                 self.update_process_launched=False
     338                self.update_process_t.launched=False
    318339                #self.spinner.start()
    319340               
     
    476497
    477498                if not self.check_lliurexup_t.launched:
    478                         print "Checking lliurex up version"
     499                        print "[Lliurex-up]: Checking lliurex up version"
    479500                        self.check_lliurexup_t.start()
    480501                        self.check_lliurexup_t.launched=True
    481502
    482503                if  self.check_lliurexup_t.done:
    483                         if  not self.is_lliurexup_updated:
     504                        if not self.is_lliurexup_updated:
    484505                                if  not self.install_lliurexup_t.is_alive() and not self.install_lliurexup_t.launched:
    485                                         print "Updating lliurex-up"
     506                                        print "[Lliurex-up]: Updating lliurex-up"
    486507                                        msg_gather="<span><b>"+_("Updating lliurex-up")+"</b></span>"
    487508                                        self.gather_label.set_markup(msg_gather)
     
    490511                                else:
    491512                                        if self.install_lliurexup_t.done:
    492                                                 print "Reboot lliurex-up"
     513                                                print "[Lliurex-up]: Reboot lliurex-up"
    493514                                                #msg_gather="<span><b>"+_("Lliurex-up is now updated and will be reboot")+"</b></span>"
    494515                                                #self.pbar.hide()
     
    502523                                                return False
    503524                        else:
     525                               
    504526                                if not self.check_mirror_t.is_alive() and not self.check_mirror_t.launched:
    505                                         print "Checking if mirror exist"
     527                                        print "[Lliurex-up]: Checking if mirror exist"
    506528                                        msg_gather="<span><b>"+_("Checking if mirror exist and there is updated")+"</b></span>"
    507529                                        self.gather_label.set_markup(msg_gather)
     
    515537                                        if not self.is_mirror_updated:
    516538                                                if not is_mirror_running:
    517                                                         print "Asking if mirror will be update"
     539                                                        print "[Lliurex-up]: Asking if mirror will be update"
    518540                                                        self.yes_button_box.show()
    519541                                                        self.no_button_box.show()
     
    534556                                                        return False
    535557                                                else:   
    536                                                         print "Nothing to do with mirror"
     558                                                        print "[Lliurex-up]: Nothing to do with mirror"
    537559                                                        GLib.timeout_add(100,self.pulsate_get_info)
    538                                                         print "Gather info"
    539560                                                        return False
    540561                                               
     
    588609
    589610                self.install=self.llxup_connect.installLliurexUp()
    590                 print self.install
    591611                self.install_lliurexup_t.done=True
    592612
     
    605625                #self.response=0
    606626                self.pbar.show()       
    607                 print "Gather info"
    608627                GLib.timeout_add(100,self.pulsate_get_info)
    609628                self.yes_button_box.hide()
     
    619638                self.pbar.show()
    620639                self.pbar_label.show()
    621                 print "Updating mirror"
     640                print "[Lliurex-up]: Updating mirror"
    622641                self.updated_percentage(0)
    623642                #self.spinner.start()
     
    700719
    701720                self.pbar.pulse()
    702 
    703                 if not self.gather_packages_t.is_alive() and not self.gather_packages_t.launched:
    704                         msg_gather="<span><b>"+_("Checking for new updates")+"</b></span>"
     721 
     722                if not self.get_lliurexversionlocal_t.launched:
     723                        print "[Lliurex-up]: Get LliurexVersion from local repository "
     724                        msg_gather="<span><b>"+_("Get LliurexVersion from local repository")+"</b></span>"
    705725                        self.gather_label.set_markup(msg_gather)
    706                         self.gather_packages_t.start()
    707                         self.gather_packages_t.launched=True
    708 
    709                 if self.gather_packages_t.done:
    710                         if len(self.packages)==0:
    711                                 msg_gather="<span><b>"+_("Your system is update")+"</b></span>"
     726                        self.get_lliurexversionlocal_t.start()
     727                        self.get_lliurexversionlocal_t.launched=True
     728
     729
     730                if self.get_lliurexversionlocal_t.done:
     731                        if not self.get_lliurexversionnet_t.is_alive() and not self.get_lliurexversionnet_t.launched:
     732                                print "[Lliurex-up]: Get LliurexVersion from Lliurex net"
     733                                msg_gather="<span><b>"+_("Get LliurexVersion from lliurex net")+"</b></span>"
    712734                                self.gather_label.set_markup(msg_gather)
    713                                 self.pbar.hide()
    714                                 self.cancel_button_box.show()
    715                                 print "Sytem update. Nothing to do"
    716                                 return False
    717                         else:
    718                                 print "System nor update"       
    719 
    720                                 self.requires_installing_metapackage()
    721                                 self.parse_packages_updated()
    722                                 self.populate_packages_tv()
    723                                 self.get_update_summary()
    724                                 self.pbar.hide()
    725                                 self.pbar_label.hide()
    726                                 self.spinner.stop()
    727                                 self.stack.set_transition_type(Gtk.StackTransitionType.SLIDE_LEFT)
    728                                 self.stack.set_visible_child_name("update")     
    729                                 self.cancel_button_box.show()   
    730                                 return False   
    731 
     735                                self.get_lliurexversionnet_t.start()   
     736                                self.get_lliurexversionnet_t.launched=True
     737
     738
     739                        if self.get_lliurexversionnet_t.done:
     740
     741                                if not self.checkFlavourToInstall_t.is_alive() and not self.checkFlavourToInstall_t.launched:
     742                                        print "[Lliurex-up]: Checking if installation of flavour is required"
     743                                        msg_gather="<span><b>"+_("Checking if installation of flavour is required")+"</b></span>"
     744                                        self.gather_label.set_markup(msg_gather)
     745                                        self.checkFlavourToInstall_t.start()
     746                                        self.checkFlavourToInstall_t.launched=True
     747
     748
     749                                if self.checkFlavourToInstall_t.done:
     750
     751                                        if not self.gather_packages_t.is_alive() and not self.gather_packages_t.launched:
     752                                                print "[Lliurex-up]: Checking for new updates"
     753                                                msg_gather="<span><b>"+_("Checking for new updates")+"</b></span>"
     754                                                self.gather_label.set_markup(msg_gather)
     755                                                self.gather_packages_t.start()
     756                                                self.gather_packages_t.launched=True
     757
     758
     759                                        if self.gather_packages_t.done:
     760                                                if len(self.packages)==0:
     761                                                        msg_gather="<span><b>"+_("Your system is update")+"</b></span>"
     762                                                        self.gather_label.set_markup(msg_gather)
     763                                                        self.pbar.hide()
     764                                                        self.cancel_button_box.show()
     765                                                        print "[Lliurex-up]: Sytem update. Nothing to do"
     766                                                        return False
     767                                                else:
     768                                                        print "[Lliurex-up]: System nor update"
     769
     770                                                        #self.requires_installing_metapackage()
     771                                                        self.parse_packages_updated()
     772                                                        self.populate_packages_tv()
     773                                                        self.get_update_summary()
     774                                                        self.pbar.hide()
     775                                                        self.pbar_label.hide()
     776                                                        self.spinner.stop()
     777                                                        self.stack.set_transition_type(Gtk.StackTransitionType.SLIDE_LEFT)
     778                                                        self.stack.set_visible_child_name("update")     
     779                                                        self.cancel_button_box.show()   
     780                                                        return False   
     781               
     782
     783                if self.get_lliurexversionlocal_t.launched:
     784                        if self.get_lliurexversionlocal_t.is_alive():
     785                                return True     
     786
     787                if self.get_lliurexversionnet_t.launched:
     788                        if self.get_lliurexversionnet_t.is_alive():
     789                                return True                             
     790
     791                if self.checkFlavourToInstall_t.launched:
     792                        if self.checkFlavourToInstall_t.is_alive():
     793                                return True
    732794
    733795                if self.gather_packages_t.launched:
     
    735797                                return True
    736798
    737         #def pulsate_get_info                   
     799        #def pulsate_get_info   
     800
     801        def get_lliurexversionlocal(self):
     802                self.version_update=self.llxup_connect.getLliurexVersionLocal()
     803                self.get_lliurexversionlocal_t.done=True
     804
     805        #def get_lliurexversionlocal
     806       
     807        def get_lliurexversionnet(self):
     808                self.version_available=self.llxup_connect.getLliurexVersionNet()
     809                self.get_lliurexversionnet_t.done=True
     810
     811
     812        #def get_lliurexversionlocal   
     813       
     814        def checkFlavourToInstall(self):
     815
     816                self.flavourToInstall=self.llxup_connect.requiresInstallFlavour()
     817
     818                if self.flavourToInstall != None:
     819                        print "[Lliurex-up]: Installation of flavour is required"
     820
     821
     822                else:
     823                        print "[Lliurex-up]: Installation of flavour is not required"
     824
     825                self.checkFlavourToInstall_t.done=True 
     826
    738827
    739828        def gather_packages(self):
     
    748837        def get_update_summary(self):
    749838
    750                 self.version_available=None
    751                 if 'client' in self.initFlavours or self.targetMetapackage=='client':
    752                         #self.version_available=_("Info not available for clients")
    753                         msg_version_available_info="<span foreground='#3366cc'><b>"+_("Info not available for clients")+"</b></span>"
     839                #self.version_available=self.llxup_connect.getLliurexVersionNet()
     840
     841                if 'client' in self.llxup_connect.previousFlavours or self.flavourToInstall=='client':
     842                        msg_version_available_info="<span foreground='#3366cc'><b>"+_("Info not available for clients")+"</b></span>"
    754843
    755844                else:
     
    758847
    759848                        else:
    760                                 self.version_available="16.160920"     
     849                                #self.version_available="16.160920"     
    761850                                msg_version_available_info="<span foreground='#3366cc'><b>"+self.version_available+"</b></span>"
    762851
    763852
    764                 self.version_update="16.160915"
    765                 self.number_pkg="15"
     853                if self.version_update==None:
     854                        msg_version_update="<span foreground='#3366cc'><b>"+_("Info not available")+"</b></span>"
     855               
     856                else:
     857                        msg_version_update="<span foreground='#3366cc'><b>"+self.version_update+"</b></span>"
     858       
     859                self.number_pkg=len(self.packages)
    766860                self.size_update="100 Mb"
    767861
    768                 #msg_version_available=_("Version available: ") + self.version_available
    769                 #msg_version_available=_("Version available: ")+"<span foreground='#3366cc'><b>"+self.version_available+"</b></span>"
    770                 msg_version_update="<span foreground='#3366cc'><b>"+self.version_update+"</b></span>"
    771 
    772                 msg_number="<span foreground='#3366cc'><b>"+self.number_pkg+"</b></span>"
     862
     863                msg_number="<span foreground='#3366cc'><b>"+str(self.number_pkg)+"</b></span>"
    773864                msg_size="<span foreground='#3366cc'><b>"+self.size_update+"</b></span>"
    774865               
     
    798889                for package in self.package_list:
    799890                        #self.packages_store.append((package.icon,"<span font='Roboto'><b>"+package.name+"</b></span>\n"+"<span font='Roboto' size='small'>"+package.version+"</span>","<span font='Roboto' size='large'><b>"+package.size+"</b></span>",package.installed))
    800                         self.packages_store.append(("<span font='Roboto'><b>"+package.name+"</b></span>\n"+"<span font='Roboto' size='small'>"+package.version+"</span>","<span font='Roboto' size='large'><b>"+package.size+"</b></span>",package.installed))
     891                        self.packages_store.append(("<span font='Roboto'><b>"+package.name+"</b></span>\n"+"<span font='Roboto' size='small'>"+package.version+"</span>",package.installed))
    801892                       
    802893                #print len(self.packages_store)
     
    810901                        tmp=item.split(";")
    811902                        if len(tmp)>1:
    812                                 pack=Package(tmp[0],tmp[1],tmp[2])
     903                                pack=Package(tmp[0],tmp[1])
    813904                                self.package_list.append(pack)
    814905
     
    832923        #def package_clicked                   
    833924
    834         def execute_scripts(self):
    835                
    836                 # self.vterminal.spawn_sync(
    837                 #       Vte.PtyFlags.DEFAULT,
    838                 #       os.environ['HOME'],
    839                 #       #["/usr/sbin/dpkg-reconfigure", "xdm"],
    840                 #       ["/bin/sh"],
    841                 #       [],
    842                 #       GLib.SpawnFlags.DO_NOT_REAP_CHILD,
    843                 #       None,
    844                 #       None,
    845                 # )
    846 
    847                 self.command='apt-get dist-upgrade -sV\n'
     925        def update_process(self):
     926                 
     927                self.command='apt-get dist-upgrade -sV | tee '+ TMP_FILE + ';rm ' + TMP_FILE +'\n'
    848928                print self.command
    849929                length=len(self.command)
    850930                self.vterminal.feed_child(self.command, length)
    851931
    852                 self.check_final_metapackage()
    853                 self.update_installed_icon("epoptes-client")
    854 
    855         #def execute           
     932        #def update_process             
    856933                               
    857934        def upgrade_process(self,widget, event=None):
    858935
    859                 if not self.update_process_launched:
     936                if not self.update_process_t.launched:
    860937                        self.update_button_box.set_name("UPDATE_LAUNCHED_BUTTON_COLOR")
    861938
    862                         self.total_process=1.0
    863                         self.total_progress=0.0
    864                         self.pbar_rang=1.0
    865                         self.percentage=0.0
    866                         self.ending_process=0.0
    867                         self.updated_percentage(0)
    868 
    869                         self.t=threading.Thread(target=self.execute_scripts,args=())
    870                         self.t.daemon=True
    871                         self.t.start()
    872                        
    873                         GLib.timeout_add(1000,self.pulsate_pbar)
    874939                        self.pbar.show()
    875                         self.pbar_label.show()
     940                        self.pbar.pulse()
    876941                        self.viewport.show()
    877942                        self.terminal_scrolled.show()
     
    879944                        self.msg_terminal=_("Update process details")
    880945                        self.terminal_label.set_markup(self.msg_terminal)
    881                         self.update_process_launched=True
    882                
     946                        GLib.timeout_add(100,self.waiting_update)
     947                        self.update_process_t.start()
     948                        self.update_process_t.launched=True
     949
     950
    883951                else:
    884                         self.terminal_label.set_name("ERROR_FONT")
    885                         msg_updgrade_running=_("The update process is running. Wait a moment please")
    886                         self.terminal_label.set_markup(msg_updgrade_running)
     952                        if not self.update_process_t.done:
     953                                self.terminal_label.set_name("ERROR_FONT")
     954                                msg_updgrade_running=_("The update process is running. Wait a moment please")
     955                                self.terminal_label.set_markup(msg_updgrade_running)
    887956
    888957       
    889958        #def upgrade_process
    890959
    891         def pulsate_pbar(self):
    892 
    893 
    894                 if not self.t.is_alive():
    895                         self.updated_percentage(5)
     960        def waiting_update(self):
     961
     962                if os.path.exists(TMP_FILE):
     963                        return True
    896964                else:
    897965                        self.pbar.hide()
    898                        
    899         #def pulsate_pbar
    900 
    901 
    902         def requires_installing_metapackage(self):
    903 
    904                 if self.targetMetapackage !=None:
    905                         print "Check Initial Metapackage. Instalation of metapackage is required"
    906 
    907                 else:
    908                         print "Check Initital Metapackage. Nothing to do"
    909 
    910 
    911         def check_final_metapackage(self):
     966                        self.terminal_label.set_name("CHANGELOG_FONT")
     967                        msg_updgrade_running="<span><b>" + _("The system is now update") + "</b></span>"
     968                        self.terminal_label.set_markup(msg_updgrade_running)
     969                        self.update_process_t.done=True
     970                        return False
     971
     972                                       
     973        #def waiting_update
     974
     975
     976        def checkFinalFlavour(self):
    912977
    913978                self.isMetapackageCorrect=self.llxup_connect.checkFinalFlavour()
     
    9881053        def mouse_over_update_button(self,widget,event):
    9891054
    990                 if self.update_process_launched:
     1055                if self.update_process_t.launched and not self.update_process_t.done:
    9911056                        self.update_button_box.set_name("UPDATE_LAUNCHED_OVER_COLOR")
    9921057                else:
    993                         self.update_button_box.set_name("UPDATE_OVER_COLOR")
     1058                        if self.update_process_t.done:
     1059                                self.update_button_box.set_name("UPDATE_LAUNCHED_OVER_COLOR")
     1060                        else:
     1061                                self.update_button_box.set_name("UPDATE_OVER_COLOR")
    9941062
    9951063        #def mouse_over_update_button
     
    9971065        def mouse_exit_update_button(self,widget,event):
    9981066
    999                 if self.update_process_launched:
     1067                if self.update_process_t.launched and not self.update_process_t.done:
    10001068                        self.update_button_box.set_name("UPDATE_BUTTON_LAUNCHED_COLOR")
    10011069                        self.terminal_label.set_name("CHANGELOG_FONT")
    10021070                        self.terminal_label.set_markup(self.msg_terminal)
    10031071                else:
    1004                         self.update_button_box.set_name("UPDATE_BUTTON_COLOR")
     1072                        if self.update_process_t.done:
     1073                                self.update_button_box.set_name("UPDATE_BUTTON_LAUNCHED_COLOR")
     1074
     1075                        else:
     1076                                self.update_button_box.set_name("UPDATE_BUTTON_COLOR")
    10051077
    10061078        #def mouse_exit_update_button
  • lliurex-up/trunk/fuentes/lliurex-up-gui/rsrc/lliurex-up.ui

    r2957 r3016  
    609609                <property name="visible">True</property>
    610610                <property name="can_focus">False</property>
     611                <property name="opacity">0.96999999999999997</property>
    611612                <property name="halign">start</property>
    612613              </object>
     
    642643                <property name="visible">True</property>
    643644                <property name="can_focus">False</property>
     645                <property name="opacity">0.98000000044703484</property>
     646                <property name="halign">end</property>
     647                <property name="hexpand">True</property>
    644648                <property name="orientation">vertical</property>
    645649                <child>
Note: See TracChangeset for help on using the changeset viewer.