Changeset 3690


Ignore:
Timestamp:
Feb 22, 2017, 6:32:09 PM (2 years ago)
Author:
jrpelegrina
Message:

WIP in clients checks

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

Legend:

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

    r3658 r3690  
    7979                        print ("  [Lliurex-up]: Lliurex-up is now udpate and will be reboot now" )
    8080                        time.sleep(3)
     81                        self.lliurexcore.cleanLliurexUpLock()
    8182                        os.execv("/usr/sbin/lliurex-upgrade",sys.argv) 
    8283
     
    344345                                        self.checkFinalUpgrade()
    345346                                        self.lliurexcore.cleanEnvironment()
     347                                        self.lliurexcore.cleanLliurexUpLock()
     348
    346349
    347350                                else:
     
    350353                                        print("  [Lliurex-up]: Cancel the update")
    351354                                        self.lliurexcore.cleanEnvironment()
     355                                        self.lliurexcore.cleanLliurexUpLock()
     356
    352357                                        return 0
    353358                        else:
    354359                                print("[Lliurex-up]: Updated abort for incorrect flavours detected in new update")
    355360                                self.lliurexcore.cleanEnvironment()
     361                                self.lliurexcore.cleanLliurexUpLock()
     362
    356363                                return 1                       
    357364                else:
     
    359366                                print("  [Lliurex-up]: Your systems is updated. Nothing to do")
    360367                                self.lliurexcore.cleanEnvironment()
     368                                self.lliurexcore.cleanLliurexUpLock()
     369
    361370                                return 0
    362371                        else:
    363372                                print("  [Lliurex-up]: Updated abort. An error occurred checking new updates")
    364373                                self.lliurexcore.cleanEnvironment()
     374                                self.lliurexcore.cleanLliurexUpLock()
     375
    365376                                return 1
    366377                                       
     
    383394def free_space_check():
    384395               
    385                 if ((os.statvfs("/").f_bfree * os.statvfs("/").f_bsize) / (1024*1024*1024)) < 2: #less than 2GB available?
    386                         print "  [Lliurex-up]: There's not enough space on disk to upgrade (2 GB needed)"
    387                        
    388                         sys.exit(1)
     396        if ((os.statvfs("/").f_bfree * os.statvfs("/").f_bsize) / (1024*1024*1024)) < 2: #less than 2GB available?
     397                print "  [Lliurex-up]: There's not enough space on disk to upgrade (2 GB needed)"
     398                       
     399                sys.exit(1)
     400
     401def islliurexup_running():
     402
     403        if os.path.exists('/var/run/lliurexUp.lock'):
     404                print "  [Lliurex-up]: This applications is now running "
     405                sys.exit(1)
     406
    389407
    390408if __name__ == '__main__':
     
    393411                sys.exit(1)
    394412
     413        islliurexup_running()
    395414        free_space_check()     
    396415        mode=None
  • lliurex-up/trunk/fuentes/lliurex-up/usr/share/lliurex-up/LliurexUpConnect.py

    r3607 r3690  
    9292
    9393        #def initActionsScript 
     94
     95        def clientCheckingMirrorIsRunning(self):
     96
     97                is_mirror_running_inserver=self.llxUpCore.clientCheckingMirrorIsRunning()
     98                return is_mirror_running_inserver
     99
     100
    94101               
    95102        def isLliurexUpIsUpdated(self):
     
    439446
    440447        #def cleanEnvironment
     448
     449        def cleanLliurexUpLock(self):
     450
     451                try:
     452                        self.llxUpCore.cleanLliurexUpLock()
     453               
     454                except Exception as e:
     455                        print e
    441456                       
    442457        def log(self,msg):
  • lliurex-up/trunk/fuentes/lliurex-up/usr/share/lliurex-up/lliurex-up.py

    r3648 r3690  
    3737UPDATEPACKAGE_ICON=BASE_DIR + "rsrc/updatepackage.png" 
    3838DESKTOP_PATH="/usr/share/applications"
     39LOCK_PATH="/var/run/lliurexUp.lock"
    3940
    4041class Package:
     
    116117
    117118        def __init__(self):
     119                self.islliurexup_running()
    118120                self.check_root()
    119121                self.free_space_check()
     
    127129        #def __init__           
    128130
    129        
     131        def islliurexup_running(self):
     132
     133                if os.path.exists(LOCK_PATH):
     134                        dialog = Gtk.MessageDialog(None,0,Gtk.MessageType.ERROR, Gtk.ButtonsType.CANCEL, "Lliurex UP")
     135                        dialog.format_secondary_text(_("This applications is now running."))
     136                        dialog.run()
     137                        sys.exit(1)
     138
    130139        def check_root(self):
    131140               
     
    580589                if self.initactions_process_t.done:
    581590                        if self.can_connect:
    582                                 if  not self.check_lliurexup_t.is_alive() and not self.check_lliurexup_t.launched:
    583                                         print "  [Lliurex-up]: Checking Lliurex-up version"
    584                                         msg_gather="<span><b>"+_("Looking for new version of Lliurex-up")+"</b></span>"
     591                                if not self.llxup_connect.clientCheckingMirrorIsRunning():
     592
     593                                        if  not self.check_lliurexup_t.is_alive() and not self.check_lliurexup_t.launched:
     594                                                print "  [Lliurex-up]: Checking Lliurex-up version"
     595                                                msg_gather="<span><b>"+_("Looking for new version of Lliurex-up")+"</b></span>"
     596                                                self.gather_label.set_markup(msg_gather)
     597                                                self.check_lliurexup_t.start()
     598                                                self.check_lliurexup_t.launched=True
     599                                                self.show_number_process_executing(2,"")
     600
     601
     602                                        if  self.check_lliurexup_t.done:
     603                                                if not self.is_lliurexup_updated:
     604                                                        if  not self.install_lliurexup_t.is_alive() and not self.install_lliurexup_t.launched:
     605                                                                print "  [Lliurex-up]: Updating Lliurex-up"
     606                                                                msg_gather="<span><b>"+_("Updating Lliurex-up")+"</b></span>"
     607                                                                self.gather_label.set_markup(msg_gather)
     608                                                                self.install_lliurexup_t.start()
     609                                                                self.install_lliurexup_t.launched=True
     610                                                                self.show_number_process_executing(3,"")
     611
     612                                                        else:
     613                                                                if self.install_lliurexup_t.done:
     614                                                                        print "  [Lliurex-up]: Reboot Lliurex-up"
     615                                                                        #msg_gather="<span><b>"+_("Lliurex-up is now updated and will be reboot")+"</b></span>"
     616                                                                        #self.pbar.hide()
     617                                                                        #self.gather_label.set_markup(msg_gather)
     618                                                                        #self.t=threading.Thread(target=self.reboot_lliurexup)
     619                                                                        self.pbar_label.hide()
     620                                                                        self.msg_wait="<span><b>"+_("Lliurex-up is now updated and will be reboot in %s seconds...")+"</b></span>"
     621                                                                        GLib.timeout_add(10,self.wait_to_reboot)
     622                                                                        #self.t.daemon=True
     623                                                                        #self.t.start()
     624                                                                        return False
     625                                                else:
     626                                                        if not self.check_mirror_t.is_alive() and not self.check_mirror_t.launched:
     627                                                                print "  [Lliurex-up]: Checking if mirror exist"
     628                                                                msg_gather="<span><b>"+_("Checking if mirror exist and there is updated")+"</b></span>"
     629                                                                self.gather_label.set_markup(msg_gather)
     630                                                                self.check_mirror_t.start()
     631                                                                self.check_mirror_t.launched=True
     632                                                                self.show_number_process_executing(4,"")
     633
     634
     635                                                       
     636                                                        if      self.check_mirror_t.done:
     637                                                                is_mirror_running=self.llxup_connect.lliurexMirrorIsRunning()
     638
     639                                                                if not self.is_mirror_updated:
     640                                                                        if not is_mirror_running:
     641                                                                                print "  [Lliurex-up]: Asking if mirror will be update"
     642                                                                                self.yes_button_box.show()
     643                                                                                self.no_button_box.show()
     644                                                                                self.pbar.hide()
     645                                                                                self.pbar_label.hide()
     646                                                                                #self.spinner.stop()
     647                                                                                msg_gather="<span><b>"+_("Your mirror is not update. Do you want to update it?")+"</b></span>"
     648                                                                                self.gather_label.set_markup(msg_gather)
     649                                                                                #GLib.timeout_add(100,self.pulsate_wait_response)
     650                                                                                return False
     651
     652                                                                        else:
     653                                                                                self.mirror_running_msg()
     654                                                                                return False
     655
     656                                                                else:   
     657                                                                        if is_mirror_running:
     658                                                                                self.mirror_running_msg()
     659                                                                                return False
     660                                                                        else:   
     661                                                                                print "  [Lliurex-up]: Nothing to do with mirror"
     662                                                                                GLib.timeout_add(100,self.pulsate_get_info)
     663                                                                                return False
     664                       
     665                                else:
     666                                        self.spinner.stop()
     667                                        self.pbar.hide()
     668                                        self.pbar_label.hide()
     669                                        self.cancel_button_box.show()
     670                                        self.gather_label.set_name("ERROR_FONT")
     671                                        msg_gather="<span><b>"+_("Mirror is being updated. Unable to update the system")+"</b></span>"
    585672                                        self.gather_label.set_markup(msg_gather)
    586                                         self.check_lliurexup_t.start()
    587                                         self.check_lliurexup_t.launched=True
    588                                         self.show_number_process_executing(2,"")
    589 
    590 
    591                                 if  self.check_lliurexup_t.done:
    592                                         if not self.is_lliurexup_updated:
    593                                                 if  not self.install_lliurexup_t.is_alive() and not self.install_lliurexup_t.launched:
    594                                                         print "  [Lliurex-up]: Updating Lliurex-up"
    595                                                         msg_gather="<span><b>"+_("Updating Lliurex-up")+"</b></span>"
    596                                                         self.gather_label.set_markup(msg_gather)
    597                                                         self.install_lliurexup_t.start()
    598                                                         self.install_lliurexup_t.launched=True
    599                                                         self.show_number_process_executing(3,"")
    600 
    601                                                 else:
    602                                                         if self.install_lliurexup_t.done:
    603                                                                 print "  [Lliurex-up]: Reboot Lliurex-up"
    604                                                                 #msg_gather="<span><b>"+_("Lliurex-up is now updated and will be reboot")+"</b></span>"
    605                                                                 #self.pbar.hide()
    606                                                                 #self.gather_label.set_markup(msg_gather)
    607                                                                 #self.t=threading.Thread(target=self.reboot_lliurexup)
    608                                                                 self.pbar_label.hide()
    609                                                                 self.msg_wait="<span><b>"+_("Lliurex-up is now updated and will be reboot in %s seconds...")+"</b></span>"
    610                                                                 GLib.timeout_add(10,self.wait_to_reboot)
    611                                                                 #self.t.daemon=True
    612                                                                 #self.t.start()
    613                                                                 return False
    614                                         else:
    615                                                 if not self.check_mirror_t.is_alive() and not self.check_mirror_t.launched:
    616                                                         print "  [Lliurex-up]: Checking if mirror exist"
    617                                                         msg_gather="<span><b>"+_("Checking if mirror exist and there is updated")+"</b></span>"
    618                                                         self.gather_label.set_markup(msg_gather)
    619                                                         self.check_mirror_t.start()
    620                                                         self.check_mirror_t.launched=True
    621                                                         self.show_number_process_executing(4,"")
    622 
    623 
    624                                                
    625                                                 if      self.check_mirror_t.done:
    626                                                         is_mirror_running=self.llxup_connect.lliurexMirrorIsRunning()
    627 
    628                                                         if not self.is_mirror_updated:
    629                                                                 if not is_mirror_running:
    630                                                                         print "  [Lliurex-up]: Asking if mirror will be update"
    631                                                                         self.yes_button_box.show()
    632                                                                         self.no_button_box.show()
    633                                                                         self.pbar.hide()
    634                                                                         self.pbar_label.hide()
    635                                                                         #self.spinner.stop()
    636                                                                         msg_gather="<span><b>"+_("Your mirror is not update. Do you want to update it?")+"</b></span>"
    637                                                                         self.gather_label.set_markup(msg_gather)
    638                                                                         #GLib.timeout_add(100,self.pulsate_wait_response)
    639                                                                         return False
    640 
    641                                                                 else:
    642                                                                         self.mirror_running_msg()
    643                                                                         return False
    644 
    645                                                         else:   
    646                                                                 if is_mirror_running:
    647                                                                         self.mirror_running_msg()
    648                                                                         return False
    649                                                                 else:   
    650                                                                         print "  [Lliurex-up]: Nothing to do with mirror"
    651                                                                         GLib.timeout_add(100,self.pulsate_get_info)
    652                                                                         return False
     673                                        print "  [Lliurex-up]: Mirror is being updated. Unable to update the system"
     674                                        return False
     675
     676
    653677                        else:
    654678                                self.spinner.stop()
     
    689713
    690714                if self.current_second>=self.max_seconds:
     715                        self.llxup_connect.cleanLliurexUpLock()
    691716                        os.execl(sys.executable, sys.executable, *sys.argv)     
    692717                        return False
     
    13771402        def quit(self,widget,event=None):
    13781403                self.llxup_connect.cleanEnvironment()
     1404                self.llxup_connect.cleanLliurexUpLock()
    13791405                Gtk.main_quit()
    13801406
  • lliurex-up/trunk/fuentes/python-lliurex-up/lliurex/lliurexup/__init__.py

    r3542 r3690  
    1414                self.defaultMirror = 'llx16'
    1515                self.defaultVersion = 'xenial'
     16                self.lockTokenPath="/var/run/lliurexUp.lock"
    1617                self.processPath = '/var/run/lliurex-up'
    1718                self.sourcesListPath='/etc/apt/'
     
    2021                self.origsourcesfile=os.path.join(self.sourcesListPath,"sources.list")
    2122                self.origsourcesfileback=os.path.join(self.sourcesListPath,"lliurexup_sources.list")
    22 
    2323                self.targetMetapackagePath=os.path.join(self.processPath,"targetMetapackage")
    2424                self.previousflavourspath = os.path.join(self.processPath,'previousflavours')
     
    3131                self.postActionsPath = '/usr/share/lliurex-up/postActions'
    3232
     33                self.createLockToken()
    3334                self.n4d = xmlrpclib.ServerProxy('https://localhost:9779')
    3435                self.haveLliurexMirror = False
    3536                self.metapackageRef=[]
    3637                self.previousFlavours = []
     38
    3739                self.getTargetMetapackage()
    3840                self.flavours = []
     
    4143                        self.haveLliurexMirror = True
    4244                self.prepareEnvironment()
     45
     46
     47        def createLockToken(self):
     48
     49                if not os.path.exists(self.lockTokenPath):
     50                        f=open(self.lockTokenPath,'w')
     51                        f.close
    4352
    4453        def getPreviousFlavours(self):
     
    8392                        self.getPreviousFlavours()
    8493               
     94
     95                self.writeDefaultSourceslist()
     96                self.writeDefaultSourceslistMirror()
    8597                self.addSourcesListLliurex()
    8698
     
    97109
    98110        def writeDefaultSourceslist(self):
     111
    99112                f = open(os.path.join(self.processSourceslist,'default'),'w')
    100113                f.write('deb http://lliurex.net/{version} {version} main restricted universe multiverse\n'.format(version=self.defaultVersion))
     
    123136                        os.mkdir(self.changelogsPath)
    124137
    125                 self.writeDefaultSourceslist()
    126                 self.writeDefaultSourceslistMirror()
     138                #self.writeDefaultSourceslist()
     139                #self.writeDefaultSourceslistMirror()
    127140
    128141        def addSourcesListLliurex(self):
    129142               
    130                 sourcesrefmirror=os.path.join(self.processSourceslist, 'default_mirror')
     143                #sourcesrefmirror=os.path.join(self.processSourceslist, 'default_mirror')
    131144
    132145                newsourcesfile=os.path.join(self.sourcesListPath,'sources.list')
     
    166179                        os.rename(self.origsourcesfileback,self.origsourcesfile)
    167180
     181        def readSourcesList(self):
     182               
     183                count=0
     184                if os.path.exists(self.origsourcesfile):
     185                        sources=open(self.origsourcesfile,'r')
     186                        ref="/lliurex.net/"+str(self.defaultVersion)
     187                        for line in sources:
     188                                if ref in line:
     189                                        if not "#" in line:
     190                                                count=count+1
     191                return count           
    168192
    169193        def cleanEnvironment(self):
     
    173197                self.restoreOrigSourcesList()   
    174198
     199        def cleanLliurexUpLock(self):
     200
     201                if os.path.exists(self.lockTokenPath):
     202                        os.remove(self.lockTokenPath)
    175203
    176204        def updateCacheApt(self,options=""):
     
    207235                '''
    208236                sourceslistDefaultPath = os.path.join(self.processSourceslist,'default')
     237
     238                if "client" in self.previousFlavours or "lliurex-meta-client"==self.targetMetapackage:
     239                        sources=self.readSourcesList()
     240                        if sources==0:
     241                                sourceslistDefaultPath = os.path.join(self.processSourceslist,'default-mirror')
     242
     243
    209244                options = ""
    210245                if self.canConnectToLliurexNet():
     
    230265                        This function install lliurex-up
    231266                '''
     267                self.updateCacheApt(options)
    232268                command = "LANG=C LANGUAGE=en apt-get install --force-yes --yes lliurex-up {options}".format(options=options)
    233269                p = subprocess.Popen(command,shell=True,stdout=subprocess.PIPE)
     
    255291                        return result['status']
    256292                return False
     293
     294        def clientCheckingMirrorIsRunning(self):
     295
     296                if self.targetMetapackage=="lliurex-meta-client" or "client" in self.previousFlavours or "client" in self.metapackageRef:
     297
     298                        client=xmlrpclib.ServerProxy('https://server:9779')
     299                        result=client.is_alive('','MirrorManager')
     300                        return result['status']
     301
     302                return False   
    257303
    258304        def getPercentageLliurexMirror(self):
Note: See TracChangeset for help on using the changeset viewer.