Changeset 2993 for lliurex-up/trunk


Ignore:
Timestamp:
Dec 5, 2016, 6:33:05 PM (3 years ago)
Author:
kbut
Message:

add lliurex-up-core folder

Location:
lliurex-up/trunk/fuentes
Files:
27 added
1 edited

Legend:

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

    r2978 r2993  
    44import subprocess
    55import socket
     6import distutils.dir_util
    67
    78class LliurexUpCore(object):
     
    1415                self.changelogsPath = '/var/run/lliurex-up/changelogs'
    1516                self.processSourceslist = '/var/run/lliurex-up/sourceslist'
     17                self.previousflavourspath = os.path.join(self.processPath,'previousflavours')
     18
     19                self.preActionsPath = '/usr/share/lliurex-up/preActions'
     20                self.postActionsPath = '/usr/share/lliurex-up/PostActions'
     21
    1622                self.n4d = xmlrpclib.ServerProxy('https://localhost:9779')
    1723                self.haveLliurexMirror = False
    18                 self.flavours = [ x.strip() for x in self.n4d.lliurex_version('','LliurexVersion','-v')[1].split(',') ]
     24                self.previuosFlavours = []
     25                self.getPreviuosFlavours()
    1926                if len(self.n4d.get_methods('MirrorManager')) > 0:
    2027                        self.haveLliurexMirror = True
    2128                self.prepareEnvironment()
     29
     30        def getPreviuosFlavours(self):
    2231               
     32                if os.path.exists(self.previousflavourspath):
     33                        aux = open(self.previousflavourspath,'r')
     34                        lines = aux.readlines()
     35                        for x in lines:
     36                                self.previousflavourspath.push(x)
     37                        aux.close()
     38
     39
     40        def updateFlavoursList(self):
     41                self.flavours = [ x.strip() for x in self.n4d.lliurex_version('','LliurexVersion','-v')[1].split(',') ]
     42                if len(self.flavours) > 0:
     43                        aux = open(self.previousflavourspath,'w')
     44                        for x in self.flavours:
     45                                aux.write(x+"\n")
     46                        aux.close()
     47
     48        def writeDefaultSourceslist(self):
     49                f = open(os.path.join(self.processSourceslist,'default'),'w')
     50                f.write('deb http://lliurex.net/{version} {version} main'.format(version=self.defaultVersion))
     51                f.write('deb http://lliurex.net/{version} {version}-updates main'.format(version=self.defaultVersion))
     52                f.write('deb http://lliurex.net/{version} {version}-security main'.format(version=self.defaultVersion))
     53                f.close()
     54
    2355        def prepareEnvironment(self):
    2456                '''
     
    3264                self.writeDefaultSourceslist()
    3365
    34         def writeDefaultSourceslist(self):
    35                 f = open(os.path.join(self.processSourceslist,'default'),'w')
    36                 f.write('deb http://lliurex.net/{version} {version} main'.format(version=self.defaultVersion))
    37                 f.write('deb http://lliurex.net/{version} {version}-updates main'.format(version=self.defaultVersion))
    38                 f.write('deb http://lliurex.net/{version} {version}-security main'.format(version=self.defaultVersion))
    39                 f.close()
     66
     67        def updateCacheApt(self,options=""):
     68                command = "LANG=C apt-get update {options}".format(options=options)
     69                subprocess.Popen(command,shell=True).communicate()
     70
    4071
    4172        def getPackageVersionAvailable(self,package,options=""):
     
    70101                if self.canConnectToLliurexNet():
    71102                        options = "-o Dir::Etc::sourcelist={sourceslistOnlyLliurex} -o Dir::Etc::sourceparts=/dev/null".format(sourceslistOnlyLliurex=sourceslistDefaultPath)
    72                 command = "LANG=C apt-get update {options}".format(options=options)
    73                 subprocess.Popen(command,shell=True).communicate()
     103               
     104                self.updateCacheApt(options)
    74105                result = self.getPackageVersionAvailable('lliurex-up',options)
    75106
     
    133164                        install anything.
    134165                '''
     166                self.updateFlavoursList()
    135167                targetMetapackage = None
    136168                if 'None' in self.flavours:
     
    158190                return True
    159191
    160         def getLliurexVersion(self):
     192        def getLliurexVersionLliurexNet(self):
    161193                '''
    162194                        return dictionary => result
     
    167199                if self.canConnectToLliurexNet():
    168200                        options = "-o Dir::Etc::sourcelist={sourceslistOnlyLliurex} -o Dir::Etc::sourceparts=/dev/null".format(sourceslistOnlyLliurex=sourceslistDefaultPath)
    169                 command = "LANG=C apt-get update {options}".format(options=options)
    170                 subprocess.Popen(command,shell=True).communicate()
     201                self.updateCacheApt(options)
    171202                return self.getPackageVersionAvailable('lliurex-version-stamp',options)
     203
     204        def getLliurexVersionLocal(self):
     205                self.updateCacheApt('')
     206                return self.getPackageVersionAvailable('lliurex-version-stamp','')             
     207
     208        def preActionsScript(self):
     209                return 'run-parts --arg="preActions" ' + self.preActionsPath
     210
     211        def postActionsScript(self):
     212                return 'run-parts --arg="postActions" ' + self.postActionsPath
    172213
    173214        def getPackagesToUpdate(self):
     
    184225                '''
    185226                packageInfo = {}
    186                 subprocess.Popen("LANG=C apt-get update",shell=True).communicate()
     227                self.updateCacheApt("")
    187228                psimulate = subprocess.Popen('LANG=C apt-get dist-upgrade -sV',shell=True,stdout=subprocess.PIPE)
    188229                rawoutputpsimulate = psimulate.stdout.readlines()
     
    207248                return packageInfo
    208249
     250
    209251if __name__ == '__main__':
    210252        x = LliurexUpCore()
Note: See TracChangeset for help on using the changeset viewer.