Ignore:
Timestamp:
Feb 1, 2017, 2:49:56 PM (3 years ago)
Author:
jrpelegrina
Message:

Add log in n cli and add sources for client

File:
1 edited

Legend:

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

    r3449 r3493  
    77import sys
    88import commands
    9 import time
     9import datetime
    1010
    1111class LliurexUpCli(object):
     
    1313
    1414                self.lliurexcore = lliurex.lliurexup.LliurexUpCore()
     15                log_msg="------------------------------------------\n"+"LLIUREX-UP-CLI STARTING AT: " + datetime.datetime.today().strftime("%d/%m/%y %H:%M:%S") +"\n------------------------------------------"
     16                self.log(log_msg)
    1517                self.checkInitialFlavour()
    1618       
     
    1820
    1921                self.targetMetapackage=self.lliurexcore.checkInitialFlavour()
    20 
    21                 # try:
    22                 #       self.targetMetapackage=self.lliurexcore.checkFlavour()
    23                        
    24                 #       #if self.targetMetapackage !=None:
    25                 #       self.metapackageRef=self.lliurexcore.metapackageRef
    26                 #       if len(self.metapackageRef)==0:
    27                 #               self.lliurexcore.getTargetMetapackage()
    28          #              self.metapackageRef=sorted(self.metapackageRef)
    29                          
    30                 #       self.previousFlavours=self.lliurexcore.previuosFlavours
    31                 #       if len(self.previousFlavours)==0:
    32                 #               self.lliurexcore.getPreviuosFlavours()
    33                 # except Exception as e:
    34                 #       print e
     22                log_msg="Initial check metapackage. Metapackage to install: " + str(self.targetMetapackage)
     23                self.log(log_msg)
     24                log_msg="Get initial flavours: " + str(self.lliurexcore.previuosFlavours)
     25                self.log(log_msg)
     26               
    3527
    3628        def initActionsScript(self):
    3729
    3830                command=self.lliurexcore.initActionsScript(self.initActionsArg)
     31               
    3932                try:
    4033                        os.system(command)
    41 
     34                        log_msg="Exec Init-Actions"
     35                        self.log(log_msg)       
    4236                except Exception as e:
     37                        log_msg="Exec Init-Actions.Error: " +str(e)
     38                        self.log(log_msg)
    4339                        print e         
    4440
     
    4642
    4743                is_lliurexup_updated=self.lliurexcore.isLliurexUpIsUpdated()
     44
    4845
    4946                if not is_lliurexup_updated:
    5047                        print ("  [Lliurex-up]: Updating Lliurex-up")
    5148                        is_lliurexup_installed=self.lliurexcore.installLliurexUp()
     49                        log_msg="Installing lliurex-up. Returncode: " + str(is_lliurexup_installed['returncode']) + ". Error: " + str(is_lliurexup_installed['stderrs'])
     50                        self.log(log_msg)
    5251                        print ("  [Lliurex-up]: Lliurex-up is now udpate and will be reboot now" )
    5352                        time.sleep(3)
     
    5554
    5655                else:
     56                        log_msg="Checking lliurex-up. Is lliurex-up updated: "+ str(is_lliurexup_updated)
     57                        self.log(log_msg)
    5758                        print ("  [Lliurex-up]: Lliurex-up is updated.Nothing to do")   
    5859
     
    6667
    6768                        if is_mirror_updated['action']=='update':
     69                                log_msg="Checking mirror. Is mirror update: False"
     70                                self.log(log_msg)
    6871                                if not is_mirror_running:
    6972                                        response=raw_input('  [LLiurex-up]: Do you want update mirror (yes/no): ').lower()
    7073                                        if response.startswith('y'):
     74                                                log_msg="Update lliurex-mirror: Yes"
     75                                                self.log(log_msg)
    7176                                                print("  [Lliurex-up]: Updating mirror. Wait a moment please")
    7277                                                command='lliurex-mirror update llx16'
    7378                                                os.system(command)
    7479                                        else:
     80                                                log_msg="Update lliurex-mirror: No"
     81                                                self.log(log_msg)
    7582                                                print("  [Lliurex-up]: Mirror update.Nothing to do")           
    7683                else:
     84                        log_msg="Checking mirror. Is mirror update: None"
     85                        self.log(log_msg)
    7786                        print("  [Lliurex-up]: Nothing to do with mirror")
    7887
     
    8291
    8392                if self.targetMetapackage == None:
    84                         self.flavourToInstall=self.lliurexcore.requiresInstallFlavour()
    85                         if self.flavourToInstall != None:
    86                                 print "  [Lliurex-up]: Installation of flavour is required: " +str(self.flavourToInstall)
    87                                 is_flavour_installed=self.lliurexcore.installInitialFlavour(self.flavourToInstall)     
    88                                 returncode=is_flavour_installed['returncode']
    89                                 error=is_flavour_installed['stderrs']
    90                                 print "  [Lliurex-up]: Flavour is now installed: " + str(returncode) + " Error: " + str(error)
     93                        # self.flavourToInstall=self.lliurexcore.requiresInstallFlavour()
     94                        # if self.flavourToInstall != None:
     95                        #       log_msg="Requires Install this Flavour: " + str(self.flavourToInstall)
     96                        #       self.log(log_msg)       
     97                        #       print "  [Lliurex-up]: Installation of flavour is required: " +str(self.flavourToInstall)
     98                        #       is_flavour_installed=self.lliurexcore.installInitialFlavour(self.flavourToInstall)     
     99                        #       returncode=is_flavour_installed['returncode']
     100                        #       error=is_flavour_installed['stderrs']
     101                        #       print "  [Lliurex-up]: Flavour is now installed: " + str(returncode) + " Error: " + str(error)
     102                        #       log_msg="Install initial flavour:" + flavourToInstall + ": Returncode: " + str(returncode) + " Error: " + str(error)
     103                        #       self.log(log_msg)
     104                        # else:
     105                        print "  [Lliurex-up]: Installation of metapackage is not required"
     106                       
     107                else:
     108                        print "  [Lliurex-up]: Installation of metapackage is required: " + str(self.targetMetapackage)
     109                        is_flavour_installed=self.lliurexcore.installInitialFlavour(self.targetMetapackage)     
     110                        self.returncode_initflavour=is_flavour_installed['returncode']
     111                        error=is_flavour_installed['stderrs']
     112                        log_msg="Install initial flavour:" + self.targetMetapackage + ": Returncode: " + str(self.returncode_initflavour) + " Error: " + str(error)
     113                        self.log(log_msg)
     114                        print "  [Lliurex-up]: Metapackage is now installed: " + str(returncode) + " Error: " + str(error)
     115
     116       
     117        def checkingIncorrectFlavours(self):
     118               
     119                incorrectFlavours=self.lliurexcore.checkIncorrectFlavours()
     120                log_msg="Checking incorrect metapackages. Others metapackages detected: " + str(incorrectFlavours)
     121                self.log(log_msg)
     122
     123                return incorrectFlavours
     124               
     125
     126        def checkPreviousUpgrade(self):
     127               
     128                error=False
     129                if self.returncode_initflavour!=0:
     130                        error=True
     131
     132                else:
     133                        if self.version_update["candidate"]!=None:
     134                                if self.version_update["installed"]!=self.version_update["candidate"]:
     135                                        error=True
    91136                        else:
    92                                 print "  [Lliurex-up]: Installation of flavour is not required"
    93                 else:
    94                         print "  [Lliurex-up]: Installation of flavour is required: " + str(self.targetMetapackage)
    95                         is_flavour_installed=self.lliurexcore.installInitialFlavour(self.targetMetapackage)     
    96                         returncode=is_flavour_installed['returncode']
    97                         error=is_flavour_installed['stderrs']
    98                         print "  [Lliurex-up]: Flavour is now installed: " + str(returncode) + " Error: " + str(error)
    99 
    100         # def requiresInstallFlavour(self):
    101                
    102         #       flavourToInstall=None
    103                
    104         #       self.flavours=self.lliurexcore.flavours
    105         #       if not 'None' in self.previousFlavours:
    106         #               if self.previousFlavours !=self.flavours:
    107         #                       flavourToInstall=self.parseFlavourToInstall(self.previousFlavours)
    108                                                                                        
    109         #       else:
    110         #               if self.metapackageRef != self.flavours:
    111         #                       flavourToInstall=self.parseFlavourToInstall(self.metapackageRef)
    112 
    113         #       return flavourToInstall                                         
    114                        
    115         #def requiresInstallFlavour
    116        
    117         # def parseFlavourToInstall(self,flavours):
    118        
    119         #       parse_flavour=""
    120 
    121         #       for item in flavours:
    122         #               if item != "edu":
    123         #                       parse_flavour=parse_flavour + " " + "lliurex-meta-" + item
    124 
    125         #       return parse_flavour           
    126 
    127         def checkingIncorrectFlavours(self):
    128                
    129                 incorrectFlavours=self.lliurexcore.checkIncorrectFlavours()
    130                 return incorrectFlavours
    131                 # count=0
    132                 # ref_flavour=["lliurex-meta-server","lliurex-meta-client", "lliurex-meta-desktop", "lliurex-meta-music", "lliurex-meta-pyme", "lliurex-meta-infantil"]
    133                 # self.incorrect_flavours=[]
    134 
    135                 # for item in self.packages:
    136                 #       if item in ref_flavour:
    137                 #               self.incorrect_flavours.append(item)
    138                                
    139                 # if len(self.incorrect_flavours)>0:
    140                 #       for item in self.incorrect_flavours:
    141                 #               if self.targetMetapackage != None:
    142                 #                       if item != self.targetMetapackage:
    143                 #                               count=count+1
    144                 #               else:
    145                 #                       meta=item.split("-")[2]
    146                 #                       if 'None' in self.previousFlavours:
    147                 #                               if not meta in self.metapackageRef:
    148                 #                                       count=count+1
    149                 #                       else:           
    150                 #                               if not meta in self.previousFlavours:
    151                 #                                       count=count+1
    152 
    153                 # if count>0:
    154                 #       return True
    155                 # else:
    156                 #       return False
    157 
    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
     137                                if self.version_update["installed"]!=self.version_available["candidate"]:       
     138                                        error=True
    168139
    169140                return error                   
     
    174145                try:
    175146                        os.system(command)
     147                        log_msg="Exec Pre-Actions"
     148                        self.log(log_msg)
    176149
    177150                except Exception as e:
     151                        log_msg="Exec Pre-Actions. Error " +str(e)
     152                        self.log(log_msg)
    178153                        print e
    179154
     
    183158                try:
    184159                        os.system(command)
     160                        log_msg="Exec Dist-uggrade"
     161                        self.log(log_msg)
    185162                except Exception as e:
     163                        log_msg="Exec Dist-uggrade.Error : " +str(e)
     164                        self.log(log_msg)
    186165                        print e
    187166
    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
     167        def checkingFinalFlavourToInstall(self):
     168               
     169                #self.flavourToInstall=self.lliurexcore.checkFinalFlavour()
     170                self.flavourToInstall=self.lliurexcore.checkFlavour()
     171
     172                log_msg="Final check metapackage. Metapackage to install: " + str(self.flavourToInstall)
     173                self.log(log_msg)
     174               
     175                if self.flavourToInstall!=None:
     176                        print ("  [Lliurex-up]: Install of metapackage is required: " + str(self.flavourToInstall))
    201177                       
    202         #       return flavourToInstall                 
    203 
    204 
    205         def checkingFinalFlavourToInstall(self):
    206                
    207                 self.flavourToInstall=self.lliurexcore.checkFinalFlavour()
    208 
    209                 if self.flavourToInstall!=None:
    210                         print ("  [Lliurex-up]: Install of meta is required: " + str(self.flavourToInstall))
    211178                        command=self.lliurexcore.installFinalFlavour(self.flavourToInstall)
    212179                        try:
    213180                                os.system(command)
     181                               
    214182                        except Exception as e:
    215183                                print e
    216184                else:
    217                         print ("  [Lliurex-up]: Meta is correct. Nothing to do")
    218 
    219                 return                 
     185                        print ("  [Lliurex-up]: metapackage is correct. Nothing to do")
    220186
    221187
     
    225191                try:
    226192                        os.system(command)
     193                        log_msg="Exec Post-Actions"
     194                        self.log(log_msg)
    227195                except Exception as e:
    228196                        print e                         
     
    230198        def checkFinalUpgrade(self):
    231199               
    232                 print ("  [Lliurex-up]: Checking ")
     200                print ("  [Lliurex-up]: Checking Dist-upgrade ")
    233201                error=self.lliurexcore.checkErrorDistUpgrade()
    234202
    235                 # cmd='dpkg -l | grep "^i[^i]" >' + self.errorupgrade_token
    236                 # os.system(cmd)
    237                
    238                 # if os.path.exists(self.errorupgrade_token):
    239                 #       aux = open(self.errorupgrade_token,'r')
    240                 #       lines = aux.readlines()
    241                 #       aux.close()
    242                        
    243                 #       if len(lines)>0:
    244                 #               error=True
    245 
    246                 #       else:
    247                 #               j=0
    248                 #               cmd='apt-get dist-upgrade -sV >' + self.finalupgrade_token
    249                 #               os.system(cmd)
    250                 #               if os.path.exists(self.finalupgrade_token):
    251                 #                       aux = open(self.finalupgrade_token,'r')
    252                 #                       lines = aux.readlines()
    253                 #                       aux.close()
    254 
    255                 #                       for x in lines:
    256                 #                               if 'Inst' in x:
    257                 #                                       j=j+1
    258 
    259                 #                       if j>0:
    260                 #                               error=True     
    261203                if error:
    262204                        print("  [Lliurex-up]: The updated process is endend with errors")
     205                        log_msg="Dist-upgrade process ending with errors"
    263206               
    264207                else:                                   
    265                         print("  [Lliurex-up]: The system is now update")                       
     208                        print("  [Lliurex-up]: The system is now update")       
     209                        log_msg="Dist-upgrade process ending OK"
     210               
     211                self.log(log_msg)
     212
     213        def log(self,msg):
     214               
     215                log_file="/var/log/lliurex-up.log"
     216                f=open(log_file,"a+")
     217                f.write(msg + '\n')
     218                f.close()               
    266219
    267220        def main(self,mode):
     
    271224                       
    272225                else:
     226                        mode="nomal"
    273227                        self.initActionsArg="initActions"       
    274228
     229                log_msg="Mode of execution: " + str(mode)
     230                self.log(log_msg)
     231                       
    275232                print("  [Lliurex-up]: Checking system")
    276233                self.initActionsScript()
     
    281238                print("  [Lliurex-up]: Checking LliurexVersion from local repository")
    282239                self.version_update=self.lliurexcore.getLliurexVersionLocal()
     240                log_msg="Get LliurexVersion installed: " + str(self.version_update["installed"])
     241                self.log(log_msg)
     242                log_msg="Get LliurexVersion candidate from Local repository: " + str(self.version_update["candidate"])
     243                self.log(log_msg)
     244
    283245                print("  [Lliurex-up]: Checking LliurexVersion from lliurex.net")
    284246                self.version_available=self.lliurexcore.getLliurexVersionLliurexNet()
     247                log_msg="Get LliurexVersion candidate from Lliurex Net: " + str(self.version_available["candidate"])
     248                self.log(log_msg)
    285249
    286250                print("  [Lliurex-up]: Checking if installation of flavour is required")
     
    293257                        if len(self.packages)>0:
    294258                                print("  [Lliurex-up]:List of packages to update")
     259                                log_msg="Number of packages: "+ str(len(self.packages))
     260                                self.log(log_msg)
     261
    295262                                for item in self.packages:
    296263                                        print item + ": " + self.packages[item]["candidate"]
     
    310277
    311278                                else:
     279                                        log_msg="Cancel the update"
     280                                        self.log(log_msg)
    312281                                        print("  [Lliurex-up]: Cancel the update")
    313282                                        self.lliurexcore.cleanEnvironment()
Note: See TracChangeset for help on using the changeset viewer.