Changeset 3449


Ignore:
Timestamp:
Jan 30, 2017, 1:04:06 PM (2 years ago)
Author:
jrpelegrina
Message:

Refactoring code

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

Legend:

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

    r3426 r3449  
    1313
    1414                self.lliurexcore = lliurex.lliurexup.LliurexUpCore()
    15                 self.errorupgrade_token=os.path.join(self.lliurexcore.processPath,'errorupgrade_token')
    16                 self.finalupgrade_token=os.path.join(self.lliurexcore.processPath,'finalupgrade_token')
    17 
    1815                self.checkInitialFlavour()
    1916       
    2017        def checkInitialFlavour(self):
    2118
    22                 self.targetMetapackage=None
    23 
    24                 try:
    25                         self.targetMetapackage=self.lliurexcore.checkFlavour()
     19                self.targetMetapackage=self.lliurexcore.checkInitialFlavour()
     20
     21                # try:
     22                #       self.targetMetapackage=self.lliurexcore.checkFlavour()
    2623                       
    27                         #if self.targetMetapackage !=None:
    28                         self.metapackageRef=self.lliurexcore.metapackageRef
    29                         if len(self.metapackageRef)==0:
    30                                 self.lliurexcore.getTargetMetapackage()
    31                         self.metapackageRef=sorted(self.metapackageRef)
     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)
    3229                         
    33                         self.previousFlavours=self.lliurexcore.previuosFlavours
    34                         if len(self.previousFlavours)==0:
    35                                 self.lliurexcore.getPreviuosFlavours()
    36                 except Exception as e:
    37                         print e
     30                #       self.previousFlavours=self.lliurexcore.previuosFlavours
     31                #       if len(self.previousFlavours)==0:
     32                #               self.lliurexcore.getPreviuosFlavours()
     33                # except Exception as e:
     34                #       print e
    3835
    3936        def initActionsScript(self):
    4037
    41                 command=self.lliurexcore.initActionsScript()
     38                command=self.lliurexcore.initActionsScript(self.initActionsArg)
    4239                try:
    4340                        os.system(command)
     
    7067                        if is_mirror_updated['action']=='update':
    7168                                if not is_mirror_running:
    72                                         response=raw_input(' [LLiurex-up]: Do you want update mirror (yes/no): ').lower()
     69                                        response=raw_input('  [LLiurex-up]: Do you want update mirror (yes/no): ').lower()
    7370                                        if response.startswith('y'):
    7471                                                print("  [Lliurex-up]: Updating mirror. Wait a moment please")
     
    8380        def checkingInitialFlavourToInstall(self):
    8481
     82
    8583                if self.targetMetapackage == None:
    86                         self.flavourToInstall=self.requiresInstallFlavour()
     84                        self.flavourToInstall=self.lliurexcore.requiresInstallFlavour()
    8785                        if self.flavourToInstall != None:
    8886                                print "  [Lliurex-up]: Installation of flavour is required: " +str(self.flavourToInstall)
     
    10098                        print "  [Lliurex-up]: Flavour is now installed: " + str(returncode) + " Error: " + str(error)
    10199
    102         def requiresInstallFlavour(self):
    103                
    104                 flavourToInstall=None
    105                
    106                 self.flavours=self.lliurexcore.flavours
    107                 if not 'None' in self.previousFlavours:
    108                         if self.previousFlavours !=self.flavours:
    109                                 flavourToInstall=self.parseFlavourToInstall(self.previousFlavours)
     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)
    110108                                                                                       
    111                 else:
    112                         if self.metapackageRef != self.flavours:
    113                                 flavourToInstall=self.parseFlavourToInstall(self.metapackageRef)
    114 
    115                 return flavourToInstall                                         
     109        #       else:
     110        #               if self.metapackageRef != self.flavours:
     111        #                       flavourToInstall=self.parseFlavourToInstall(self.metapackageRef)
     112
     113        #       return flavourToInstall                                         
    116114                       
    117115        #def requiresInstallFlavour
    118116       
    119         def parseFlavourToInstall(self,flavours):
    120        
    121                 parse_flavour=""
    122 
    123                 for item in flavours:
    124                         if item != "edu":
    125                                 parse_flavour=parse_flavour + " " + "lliurex-meta-" + item
    126 
    127                 return parse_flavour           
     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           
    128126
    129127        def checkingIncorrectFlavours(self):
    130128               
    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)
     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)
    138138                               
    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
     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
    157157
    158158
     
    186186                        print e
    187187
    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
     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
    201201                       
    202                 return flavourToInstall                 
     202        #       return flavourToInstall                 
    203203
    204204
    205205        def checkingFinalFlavourToInstall(self):
    206206               
    207                 self.flavourToInstall=self.checkFinalFlavour()
     207                self.flavourToInstall=self.lliurexcore.checkFinalFlavour()
    208208
    209209                if self.flavourToInstall!=None:
     
    215215                                print e
    216216                else:
    217                         print (" [Lliurex-up]: Meta is correct. Nothing to do")
     217                        print ("  [Lliurex-up]: Meta is correct. Nothing to do")
    218218
    219219                return                 
     
    222222        def postActionsScript(self):
    223223
    224                 command=self.lliurexcore.postActionsScript()
     224                command=self.lliurexcore.postActionsScript()+'  2>&1 1>/dev/null | tee ' + self.lliurexcore.errorpostaction_token
    225225                try:
    226226                        os.system(command)
     
    230230        def checkFinalUpgrade(self):
    231231               
    232                 error=False
    233 
    234                 cmd='dpkg -l | grep "^i[^i]" >' + self.errorupgrade_token
    235                 os.system(cmd)
    236                
    237                 if os.path.exists(self.errorupgrade_token):
    238                         aux = open(self.errorupgrade_token,'r')
    239                         lines = aux.readlines()
    240                         aux.close()
     232                print ("  [Lliurex-up]: Checking ")
     233                error=self.lliurexcore.checkErrorDistUpgrade()
     234
     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()
    241242                       
    242                         if len(lines)>0:
    243                                 error=True
    244 
    245                         else:
    246                                 j=0
    247                                 cmd='apt-get dist-upgrade -sV >' + self.finalupgrade_token
    248                                 os.system(cmd)
    249                                 if os.path.exists(self.finalupgrade_token):
    250                                         aux = open(self.finalupgrade_token,'r')
    251                                         lines = aux.readlines()
    252                                         aux.close()
    253 
    254                                         for x in lines:
    255                                                 if 'Inst' in x:
    256                                                         j=j+1
    257 
    258                                         if j>0:
    259                                                 error=True     
     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     
    260261                if error:
    261262                        print("  [Lliurex-up]: The updated process is endend with errors")
     
    267268
    268269                if mode=="sai":
    269                         print "Pending"
    270                         exit(0)
     270                        self.initActionsArg="initActionsSai"
     271                       
     272                else:
     273                        self.initActionsArg="initActions"       
    271274
    272275                print("  [Lliurex-up]: Checking system")
     
    346349        if args.contains(["-s", "--sai"]):
    347350                mode="sai"
     351        else:
     352                if len(args)>0:
     353                        usage()
    348354       
    349355        lliurexupcli = LliurexUpCli()   
  • lliurex-up/trunk/fuentes/lliurex-up/usr/share/lliurex-up/LliurexUpConnect.py

    r3426 r3449  
    2424                log_msg="------------------------------------------\n"+"LLIUREX-UP STARTING AT: " + datetime.datetime.today().strftime("%d/%m/%y %H:%M:%S") +"\n------------------------------------------"
    2525                self.log(log_msg)
     26               
     27
     28
    2629                #self.saveTargetMetapackagePath=os.path.join(self.llxUpCore.processPath,"targetMetapackage")
    2730                self.preactions_token=os.path.join(self.llxUpCore.processPath,'preactions_token')
     
    4043        def checkInitialFlavour(self):
    4144
    42                 self.targetMetapackage=None
    43 
    44                 try:
    45                         self.targetMetapackage=self.llxUpCore.checkFlavour()
    46                         log_msg="Initial check metapackage. Metapackage to install: " + str(self.targetMetapackage)
    47                         self.log(log_msg)
     45                self.targetMetapackage=self.llxUpCore.checkInitialFlavour()
     46                log_msg="Initial check metapackage. Metapackage to install: " + str(self.llxUpCore.targetMetapackage)
     47                self.log(log_msg)
     48                log_msg="Get initial flavours: " + str(self.llxUpCore.previuosFlavours)
     49                self.log(log_msg)
     50                return self.targetMetapackage
     51
     52                # try:
     53                #       self.targetMetapackage=self.llxUpCore.checkFlavour()
     54                #       log_msg="Initial check metapackage. Metapackage to install: " + str(self.targetMetapackage)
     55                #       self.log(log_msg)
    4856                       
    49                         #if self.targetMetapackage !=None:
    50                         self.metapackageRef=self.llxUpCore.metapackageRef
    51                         if len(self.metapackageRef)==0:
    52                                 self.llxUpCore.getTargetMetapackage()
    53                         self.metapackageRef=sorted(self.metapackageRef)
     57                #       #if self.targetMetapackage !=None:
     58                #       self.metapackageRef=self.llxUpCore.metapackageRef
     59                #       if len(self.metapackageRef)==0:
     60                #               self.llxUpCore.getTargetMetapackage()
     61         #              self.metapackageRef=sorted(self.metapackageRef)
    5462                         
    55                         self.previousFlavours=self.llxUpCore.previuosFlavours
    56                         if len(self.previousFlavours)==0:
    57                                 self.llxUpCore.getPreviuosFlavours()
     63                #       self.previousFlavours=self.llxUpCore.previuosFlavours
     64                #       if len(self.previousFlavours)==0:
     65                #               self.llxUpCore.getPreviuosFlavours()
    5866                       
    59                         log_msg="Get initial flavours: " + str(self.previousFlavours)
    60                         self.log(log_msg)
     67                #       log_msg="Get initial flavours: " + str(self.previousFlavours)
     68                #       self.log(log_msg)
    6169                 
    62                 except Exception as e:
    63                         log_msg="Initial check metapackage. Error: " + str(e)
    64                         self.log(log_msg)
    65 
    66                 return self.targetMetapackage
     70                # except Exception as e:
     71                #       log_msg="Initial check metapackage. Error: " + str(e)
     72                #       self.log(log_msg)
     73
     74                # return self.targetMetapackage
    6775
    6876        #def checkFlavoour
     
    8391
    8492        def requiresInstallFlavour(self):
    85                
    86                 flavourToInstall=None
    87                
    88                 self.flavours=self.llxUpCore.flavours
    89                 log_msg="Get update flavours: " + str(self.flavours)
    90                 self.log(log_msg)
    91 
    92                 if not 'None' in self.previousFlavours:
    93                         if self.previousFlavours !=self.flavours:
    94                                 flavourToInstall=self.parseFlavourToInstall(self.previousFlavours)
    95                                 log_msg="Requires Install this Flavour: " + str(flavourToInstall)
    96                                 self.log(log_msg)
     93
     94                log_msg="Get update flavours: " + str(self.llxUpCore.flavours)
     95                self.log(log_msg)
     96                flavourToInstall=self.llxUpCore.requiresInstallFlavour()
     97
     98                if flavourToInstall !=None:
     99                        log_msg="Requires Install this Flavour: " + str(flavourToInstall)
     100                        self.log(log_msg)
     101
     102                else:
     103                        log_msg="Requires Install Flavour: No"
     104                        self.log(log_msg)
     105
     106                return flavourToInstall
     107                # self.flavours=self.llxUpCore.flavours
     108                # log_msg="Get update flavours: " + str(self.flavours)
     109                # self.log(log_msg)
     110
     111                # if not 'None' in self.previousFlavours:
     112                #       if self.previousFlavours !=self.flavours:
     113                #               flavourToInstall=self.parseFlavourToInstall(self.previousFlavours)
     114                #               log_msg="Requires Install this Flavour: " + str(flavourToInstall)
     115                #               self.log(log_msg)
    97116                               
    98                         else:
    99                                 log_msg="Requires Install Flavour: No"
    100                                 self.log(log_msg)       
     117                #       else:
     118                #               log_msg="Requires Install Flavour: No"
     119                #               self.log(log_msg)       
    101120                                                       
    102                 else:
    103                         log_msg="Flavours reference: " + str(self.metapackageRef)
    104                         self.log(log_msg)
    105                         if self.metapackageRef != self.flavours:
    106                                 flavourToInstall=self.parseFlavourToInstall(self.metapackageRef)
    107 
    108                                 log_msg="Requires Install this Flavour: " + str(flavourToInstall)
    109                                 self.log(log_msg)
    110                         else:
    111                                 log_msg="Requires Install Flavour: No"
    112                                 self.log(log_msg)
    113 
    114                 return flavourToInstall                                         
     121                # else:
     122                #       log_msg="Flavours reference: " + str(self.metapackageRef)
     123                #       self.log(log_msg)
     124                #       if self.metapackageRef != self.flavours:
     125                #               flavourToInstall=self.parseFlavourToInstall(self.metapackageRef)
     126
     127                #               log_msg="Requires Install this Flavour: " + str(flavourToInstall)
     128                #               self.log(log_msg)
     129                #       else:
     130                #               log_msg="Requires Install Flavour: No"
     131                #               self.log(log_msg)
     132
     133                # return flavourToInstall                                               
    115134                       
    116135        #def requiresInstallFlavour
    117136       
    118         def parseFlavourToInstall(self,flavours):
    119        
    120                 parse_flavour=""
    121 
    122                 for item in flavours:
    123                         if item != "edu":
    124                                 parse_flavour=parse_flavour + " " + "lliurex-meta-" + item
    125 
    126                 return parse_flavour
     137        # def parseFlavourToInstall(self,flavours):
     138       
     139        #       parse_flavour=""
     140
     141        #       for item in flavours:
     142        #               if item != "edu":
     143        #                       parse_flavour=parse_flavour + " " + "lliurex-meta-" + item
     144
     145        #       return parse_flavour
    127146                       
    128147        #def parseFlavourToInstall(
     
    143162
    144163        def initActionsScript(self):
    145                 command=self.llxUpCore.initActionsScript()
     164               
     165                arg="initActions"
     166                command=self.llxUpCore.initActionsScript(arg)
    146167               
    147168                try:
     
    304325        def getPackagesToUpdate(self):
    305326               
    306                 ref_flavour=["lliurex-meta-server","lliurex-meta-client", "lliurex-meta-desktop", "lliurex-meta-music", "lliurex-meta-pyme", "lliurex-meta-infantil"]
     327                #ref_flavour=["lliurex-meta-server","lliurex-meta-client", "lliurex-meta-desktop", "lliurex-meta-music", "lliurex-meta-pyme", "lliurex-meta-infantil"]
    307328                packages_parse=[]
    308                 self.incorrect_flavours=[]
     329                #self.incorrect_flavours=[]
    309330               
    310331                try:
     
    314335                                        version=packages[item]
    315336                                        packages_parse.append(item+";"+version['candidate']+";"+'20Mb')
    316                                         if item in ref_flavour:
    317                                                 self.incorrect_flavours.append(item)
    318 
     337                                       
    319338                        log_msg="Get packages to update. Number of packages: " + str(len(packages))
    320339                        self.log(log_msg)               
     
    328347        #def getPackagesToUpdate
    329348
     349       
     350       
     351       
    330352        def checkIncorrectFlavours(self):
    331                
    332                 count=0
    333 
    334                 if len(self.incorrect_flavours)>0:
    335 
    336                         for item in self.incorrect_flavours:
    337                                 if self.targetMetapackage != None:
    338                                         print self.targetMetapackage
    339                                         if item != self.targetMetapackage:
    340                                                 count=count+1
    341                                 else:
    342                                         meta=item.split("-")[2]
    343                                         if 'None' in self.previousFlavours:
    344                                                 if not meta in self.metapackageRef:
    345                                                         count=count+1
    346                                         else:           
    347                                                 if not meta in self.previousFlavours:
    348                                                         count=count+1
    349 
    350                 if count>0:
    351                         log_msg="Checking incorrect flavours. Others flavours detected: " + str(self.incorrect_flavours)
    352                         self.log(log_msg)
    353                         return True
    354 
     353
     354                incorrectFlavours=self.llxUpCore.checkIncorrectFlavours()
     355
     356                if incorrectFlavours:
     357                        log_msg="Checking incorrect flavours. Others flavours detected: " + str(incorrectFlavours)
     358                        self.log(log_msg)
    355359                else:
    356360                        log_msg="Checking incorrect flavours. Others flavours no detected"
    357361                        self.log(log_msg)
    358                         return False
    359        
    360         #def checkIncorrectFlavours
     362
     363                return incorrectFlavours       
     364
     365        #def checkIncorrectFlavours     
    361366
    362367        def preActionsScript(self):
     
    382387        def checkErrorDistUpgrade(self):
    383388
    384                 count=0
    385                 error=False
    386 
    387                 if os.path.exists(self.errorpostaction_token):
    388                         aux = open(self.errorpostaction_token,'r')
    389                         lines = aux.readlines()
    390                         for x in lines:
    391                                 if 'E: ' in x:
    392                                         count=count+1
    393                         aux.close()
    394 
    395                 if count==0:
    396                         cmd='dpkg -l | grep "^i[^i]" >' + self.errorupgrade_token
    397                         os.system(cmd)
    398                
    399                         if os.path.exists(self.errorupgrade_token):
    400                                 aux = open(self.errorupgrade_token,'r')
    401                                 lines = aux.readlines()
    402                                 aux.close()
    403                        
    404                                 if len(lines)>0:
    405                                         error=True
    406                                         #log_msg="Dist-upgrade process ending with errors"
    407                                         #self.log(log_msg)
    408                                 else:
    409                                         j=0
    410                                         cmd='apt-get dist-upgrade -sV >' + self.finalupgrade_token
    411                                         os.system(cmd)
    412                                         if os.path.exists(self.finalupgrade_token):
    413                                                 aux = open(self.finalupgrade_token,'r')
    414                                                 lines = aux.readlines()
    415                                                 aux.close()
    416 
    417                                                 for x in lines:
    418                                                         if 'Inst' in x:
    419                                                                 j=j+1
    420 
    421                                                 if j>0:
    422                                                         error=True             
    423                 else:
     389                try:
     390                        error=self.llxUpCore.checkErrorDistUpgrade()
     391                        if error:
     392                                log_msg="Dist-upgrade process ending with errors"
     393                                self.log(log_msg)
     394                        else:                   
     395                                log_msg="Dist-upgrade process ending OK"
     396                                self.log(log_msg)
     397
     398                except Exception as e:
     399                        print e
     400                        log_msg="Error checking distupgrade. Error: " + str(e)
    424401                        error=True
    425402
    426                 if error:
    427                         log_msg="Dist-upgrade process ending with errors"
    428                         self.log(log_msg)
    429                 else:                   
    430                         log_msg="Dist-upgrade process ending OK"
    431                         self.log(log_msg)
    432        
    433                 return error
     403                return error   
     404                # count=0
     405                # error=False
     406
     407                # if os.path.exists(self.errorpostaction_token):
     408                #       aux = open(self.errorpostaction_token,'r')
     409                #       lines = aux.readlines()
     410                #       for x in lines:
     411                #               if 'E: ' in x:
     412                #                       count=count+1
     413                #       aux.close()
     414
     415                # if count==0:
     416                #       cmd='dpkg -l | grep "^i[^i]" >' + self.errorupgrade_token
     417                #       os.system(cmd)
     418               
     419                #       if os.path.exists(self.errorupgrade_token):
     420                #               aux = open(self.errorupgrade_token,'r')
     421                #               lines = aux.readlines()
     422                #               aux.close()
     423                       
     424                #               if len(lines)>0:
     425                #                       error=True
     426                #                       #log_msg="Dist-upgrade process ending with errors"
     427                #                       #self.log(log_msg)
     428                #               else:
     429                #                       j=0
     430                #                       cmd='apt-get dist-upgrade -sV >' + self.finalupgrade_token
     431                #                       os.system(cmd)
     432                #                       if os.path.exists(self.finalupgrade_token):
     433                #                               aux = open(self.finalupgrade_token,'r')
     434                #                               lines = aux.readlines()
     435                #                               aux.close()
     436
     437                #                               for x in lines:
     438                #                                       if 'Inst' in x:
     439                #                                               j=j+1
     440
     441                #                               if j>0:
     442                #                                       error=True             
     443                # else:
     444                #       error=True
     445
     446                # if error:
     447                #       log_msg="Dist-upgrade process ending with errors"
     448                #       self.log(log_msg)
     449                # else:                 
     450                #       log_msg="Dist-upgrade process ending OK"
     451                #       self.log(log_msg)
     452       
     453                # return error
    434454               
    435455
     
    452472 
    453473        def checkFinalFlavour(self):
    454                
     474
    455475                flavourToInstall=None
    456                
    457                 try:
    458                         self.targetMetapackage=self.llxUpCore.checkFlavour()
    459                         log_msg="Final check metapackage. Metapackage to install: " + str(self.targetMetapackage)
    460                         self.log(log_msg)
    461                         if self.targetMetapackage==None:
    462                                 flavourToInstall=self.requiresInstallFlavour()
    463                         else:
    464                                 flavourToInstall=self.targetMetapackage         
     476                try:
     477               
     478                        flavourToInstall=self.llxUpCore.checkFinalFlavour()
     479                        log_msg="Final check metapackage. Metapackage to install: " + str(flavourToInstall)
     480                        self.log(log_msg)
    465481
    466482                except Exception as e:
     
    486502
    487503                self.postActions=self.llxUpCore.postActionsScript()
    488                 self.postActions=self.postActions + ' 2> >(tee ' + self.errorpostaction_token + ') ;touch ' + self.postactions_token + ' \n'
     504                self.postActions=self.postActions + ' 2> >(tee ' + self.llxUpCore.errorpostaction_token + ') ;touch ' + self.postactions_token + ' \n'
     505                #self.postActions=self.postActions + ' ;touch ' + self.postactions_token + ' \n'
     506
    489507                log_msg="Exec Post-Actions"
    490508                self.log(log_msg)
  • lliurex-up/trunk/fuentes/lliurex-up/usr/share/lliurex-up/lliurex-up.py

    r3440 r3449  
    661661        def install_lliurexup(self):
    662662
    663                 self.install=self.llxup_connect.installLliurexUp()
     663                self.is_lliurexup_installed=self.llxup_connect.installLliurexUp()
    664664                self.install_lliurexup_t.done=True
    665665
     
    827827                                                        if len(self.packages)==0:
    828828                                                                system_update=True
     829
     830                                                                if self.is_lliurexup_installed != 0 or self.is_flavour_installed!=0:
     831                                                                        system_update=False
     832
    829833                                                                if self.version_update["candidate"]!=None:
    830834
     
    907911                                print self.flavourToInstall
    908912                                print "  [Lliurex-up]: Installation of flavour is required"
    909                                 is_flavour_installed=self.llxup_connect.installInitialFlavour(self.flavourToInstall)   
     913                                self.is_flavour_installed=self.llxup_connect.installInitialFlavour(self.flavourToInstall)       
    910914                                self.checkInitialFlavourToInstall_t.done=True   
    911915                        else:
     
    916920                        print self.targetMetapackage
    917921                        print "  [Lliurex-up]: Installation of flavour is required"
    918                         is_flavour_installed=self.llxup_connect.installInitialFlavour(self.targetMetapackage)   
     922                        self.is_flavour_installed=self.llxup_connect.installInitialFlavour(self.targetMetapackage)     
    919923                        self.checkInitialFlavourToInstall_t.done=True                   
    920924
     
    11431147                                        self.update_process_t.done=True
    11441148                                        return True
     1149                                       
    11451150                if self.postactions_process_t.launched:
    11461151                        if      not self.postactions_process_t.done:
     
    12031208                else:
    12041209                        print "  [Lliurex-up]: Check Final Metapackage: Nothing to do"
     1210                        self.command='exit ' + '\n'
     1211                        length=len(self.command)
     1212                        self.vterminal.feed_child(self.command, length)
    12051213                        self.checkFinalFlavourToInstall_t.done=True     
    12061214       
  • lliurex-up/trunk/fuentes/python-lliurex-up/lliurex/lliurexup/__init__.py

    r3390 r3449  
    1313                self.defaultVersion = 'xenial'
    1414                self.processPath = '/var/run/lliurex-up'
     15                self.sourcesListPath='/etc/apt/'
    1516                self.changelogsPath = os.path.join(self.processPath,'changelogs')
    1617                self.processSourceslist = os.path.join(self.processPath,'sourceslist')
    1718                self.targetMetapackagePath=os.path.join(self.processPath,"targetMetapackage")
    1819                self.previousflavourspath = os.path.join(self.processPath,'previousflavours')
     20                self.errorpostaction_token=os.path.join(self.processPath,'errorpostaction_token')
     21                self.errorupgrade_token=os.path.join(self.processPath,'errorupgrade_token')
     22                self.finalupgrade_token=os.path.join(self.processPath,'finalupgrade_token')
     23
    1924                self.initActionsPath='/usr/share/lliurex-up/initActions'
    2025                self.preActionsPath = '/usr/share/lliurex-up/preActions'
     
    5964                aux.write(x+"\n")
    6065                aux.close()
     66
     67
     68        def checkInitialFlavour(self):
     69
     70                self.targetMetapackage=self.checkFlavour()
     71                       
     72                if len(self.metapackageRef)==0:
     73                        self.getTargetMetapackage()
     74               
     75                self.metapackageRef=sorted(self.metapackageRef)
     76                         
     77                if len(self.previuosFlavours)==0:
     78                        self.getPreviuosFlavours()
     79               
     80                self.addSourcesListLliurex()
     81
     82                return self.targetMetapackage
    6183               
    6284
     
    7193        def writeDefaultSourceslist(self):
    7294                f = open(os.path.join(self.processSourceslist,'default'),'w')
    73                 f.write('deb http://lliurex.net/{version} {version} main\n'.format(version=self.defaultVersion))
    74                 f.write('deb http://lliurex.net/{version} {version}-updates main\n'.format(version=self.defaultVersion))
    75                 f.write('deb http://lliurex.net/{version} {version}-security main\n'.format(version=self.defaultVersion))
     95                f.write('deb http://lliurex.net/{version} {version} main restricted universe multiverse\n'.format(version=self.defaultVersion))
     96                f.write('deb http://lliurex.net/{version} {version}-updates main restricted universe multiverse\n'.format(version=self.defaultVersion))
     97                f.write('deb http://lliurex.net/{version} {version}-security main restricted universe multiverse\n'.format(version=self.defaultVersion))
    7698                f.close()
    7799
     
    88110                self.writeDefaultSourceslist()
    89111
     112
     113        def addSourcesListLliurex(self):
     114               
     115                self.origsourcesfile=os.path.join(self.sourcesListPath,"sources.list")
     116                self.origsourcesfileback=os.path.join(self.sourcesListPath,"lliurexup_sources.list")
     117                sourcesref=os.path.join(self.processSourceslist, 'default')
     118                newsourcesfile=os.path.join(self.sourcesListPath,'sources.list')
     119                extrasources=[]
     120
     121
     122                if self.targetMetapackage=="lliurex-meta-server" or "server" in self.previuosFlavours or "server" in self.metapackageRef:
     123                        if os.path.exists(self.origsourcesfile):
     124                                os.rename(self.origsourcesfile,self.origsourcesfileback)
     125                                origsources=open(self.origsourcesfileback,'r')
     126                                for line in origsources:
     127                                        if not "lliurex" in line:
     128                                                extrasources.append(line.strip())
     129                                origsources.close()
     130                               
     131                        if os.path.exists(sourcesref):
     132                                shutil.copy(sourcesref,self.origsourcesfile)
     133                                if len(extrasources)>0:
     134                                        newsourcesedit=open(newsourcesfile,'a')
     135                                        for line in extrasources:
     136                                                newsourcesedit.write(line+'\n')
     137                                        newsourcesedit.close()
     138                        else:
     139                                os.rename(self.origsourcesfileback,self.origsourcesfile)                                       
     140                       
     141
     142        def restoreOrigSourcesList(self):
     143               
     144                if os.path.exists(self.origsourcesfileback):
     145                        os.rename(self.origsourcesfileback,self.origsourcesfile)
     146
     147
    90148        def cleanEnvironment(self):
    91149                if os.path.exists(self.processPath):
    92150                        shutil.rmtree(os.path.join(self.processPath))
     151
     152                self.restoreOrigSourcesList()   
    93153
    94154
     
    129189                if self.canConnectToLliurexNet():
    130190                        options = "-o Dir::Etc::sourcelist={sourceslistOnlyLliurex} -o Dir::Etc::sourceparts=/dev/null".format(sourceslistOnlyLliurex=sourceslistDefaultPath)
    131                
     191
    132192                self.updateCacheApt(options)
    133193                result = self.getPackageVersionAvailable('lliurex-up',options)
     
    237297                return self.getPackageVersionAvailable('lliurex-version-timestamp','')         
    238298
    239         def initActionsScript(self):
    240                 return 'run-parts --arg="initActions" ' + self.initActionsPath
     299        def initActionsScript(self,arg):
     300                #return 'run-parts --arg="initActions" ' + self.initActionsPath
     301                return 'run-parts --arg=' +str(arg) + ' ' + self.initActionsPath
     302
    241303
    242304        def preActionsScript(self):
     
    245307        def postActionsScript(self):
    246308                return 'run-parts --arg="postActions" ' + self.postActionsPath
     309
     310
     311        def requiresInstallFlavour(self):
     312               
     313                flavourToInstall=None
     314               
     315                if not 'None' in self.previuosFlavours:
     316                        if self.previuosFlavours !=self.flavours:
     317                                flavourToInstall=self.parseFlavourToInstall(self.previousFlavours)
     318                                                                               
     319                else:
     320                       
     321                        if self.metapackageRef != self.flavours:
     322                                flavourToInstall=self.parseFlavourToInstall(self.metapackageRef)
     323                                                       
     324
     325                return flavourToInstall                                 
     326
     327               
     328        def parseFlavourToInstall(self,flavours):
     329       
     330                parse_flavour=""
     331
     332                for item in flavours:
     333                        if item != "edu":
     334                                parse_flavour=parse_flavour + " " + "lliurex-meta-" + item
     335
     336                return parse_flavour
     337                       
     338        #def parseFlavourToInstall(
    247339
    248340
     
    277369                        }
    278370                '''
    279                 packageInfo = {}
     371                self.packageInfo = {}
    280372                self.updateCacheApt("")
    281373                psimulate = subprocess.Popen('LANG=C LANGUAGE=en apt-get dist-upgrade -sV',shell=True,stdout=subprocess.PIPE)
     
    284376                r = [ aux.replace('Inst ','') for aux in rawpackagestoinstall ]
    285377                for allinfo in r :
    286                         packageInfo[allinfo.split(' ')[0]] = {}
    287                         packageInfo[allinfo.split(' ')[0]]['raw'] = ' '.join(allinfo.split(' ')[1:])
    288 
    289                 for package in packageInfo:
    290                         raw = packageInfo[package]['raw'].split(' ')
     378                        self.packageInfo[allinfo.split(' ')[0]] = {}
     379                        self.packageInfo[allinfo.split(' ')[0]]['raw'] = ' '.join(allinfo.split(' ')[1:])
     380
     381                for package in self.packageInfo:
     382                        raw = self.packageInfo[package]['raw'].split(' ')
    291383                        if raw[0].startswith('['):
    292                                 packageInfo[package]['install'] = raw[0][1:-1]
    293                                 packageInfo[package]['candidate'] = raw[1][1:]
     384                                self.packageInfo[package]['install'] = raw[0][1:-1]
     385                                self.packageInfo[package]['candidate'] = raw[1][1:]
    294386                        elif raw[0].startswith('('):
    295                                 packageInfo[package]['install'] = None
    296                                 packageInfo[package]['candidate'] = raw[0][1:]
    297                         packageInfo[package].pop('raw')
     387                                self.packageInfo[package]['install'] = None
     388                                self.packageInfo[package]['candidate'] = raw[0][1:]
     389                        self.packageInfo[package].pop('raw')
    298390                        #packageInfo[package]['changelog'] = os.path.join(self.changelogsPath,package)
    299391                        #os.system('LANG=C LANGUAGE=en apt-get changelog %s > %s%s'%(package,self.changelogsPath,package))
    300392                        #packageInfo[package]['icon'] =
    301                 return packageInfo
     393                return self.packageInfo
     394
     395
     396        def checkIncorrectFlavours(self):
     397               
     398                ref_flavour=["lliurex-meta-server","lliurex-meta-client", "lliurex-meta-desktop", "lliurex-meta-music", "lliurex-meta-pyme", "lliurex-meta-infantil"]
     399                self.incorrect_flavours=[]
     400                count=0
     401
     402                for item in self.packageInfo:
     403                        if item in ref_flavour:
     404                                self.incorrect_flavours.append(item)
     405
     406
     407                if len(self.incorrect_flavours)>0:
     408
     409                        for item in self.incorrect_flavours:
     410                                if self.targetMetapackage != None:
     411                                        print self.targetMetapackage
     412                                        if item != self.targetMetapackage:
     413                                                count=count+1
     414                                else:
     415                                        meta=item.split("-")[2]
     416                                        if 'None' in self.previuosFlavours:
     417                                                if not meta in self.metapackageRef:
     418                                                        count=count+1
     419                                        else:           
     420                                                if not meta in self.previuosFlavours:
     421                                                        count=count+1
     422
     423                if count>0:
     424                        return True
     425
     426                else:
     427                        return False   
    302428
    303429
     
    307433
    308434
     435
     436        def checkErrorDistUpgrade(self):
     437
     438                count=0
     439                error=False
     440
     441                if os.path.exists(self.errorpostaction_token):
     442                        aux = open(self.errorpostaction_token,'r')
     443                        lines = aux.readlines()
     444                        for x in lines:
     445                                if 'E: ' in x:
     446                                        count=count+1
     447                        aux.close()
     448
     449                if count==0:
     450                        cmd='dpkg -l | grep "^i[^i]" >' + self.errorupgrade_token
     451                        os.system(cmd)
     452               
     453                        if os.path.exists(self.errorupgrade_token):
     454                                aux = open(self.errorupgrade_token,'r')
     455                                lines = aux.readlines()
     456                                aux.close()
     457                       
     458                                if len(lines)>0:
     459                                        error=True
     460                                        #log_msg="Dist-upgrade process ending with errors"
     461                                        #self.log(log_msg)
     462                                else:
     463                                        j=0
     464                                        cmd='apt-get dist-upgrade -sV >' + self.finalupgrade_token
     465                                        os.system(cmd)
     466                                        if os.path.exists(self.finalupgrade_token):
     467                                                aux = open(self.finalupgrade_token,'r')
     468                                                lines = aux.readlines()
     469                                                aux.close()
     470
     471                                                for x in lines:
     472                                                        if 'Inst' in x:
     473                                                                j=j+1
     474
     475                                                if j>0:
     476                                                        error=True             
     477                else:
     478                        error=True
     479
     480                return error   
     481
     482
     483        def checkFinalFlavour(self):
     484               
     485                flavourToInstall=None
     486               
     487                self.targetMetapackage=self.checkFlavour()
     488                if self.targetMetapackage==None:
     489                        flavourToInstall=self.requiresInstallFlavour()
     490                else:
     491                        flavourToInstall=self.targetMetapackage         
     492
     493                return flavourToInstall         
     494
     495
    309496        def installFinalFlavour(self,flavourToInstall):
    310497
Note: See TracChangeset for help on using the changeset viewer.