source: lliurex-up/trunk/fuentes/lliurex-up-gui/LliurexUpConnect.py @ 3035

Last change on this file since 3035 was 3035, checked in by jrpelegrina, 4 years ago

WIP in new gui. Add metapackage control

File size: 6.0 KB
Line 
1import xmlrpclib 
2import os
3import shutil
4import subprocess
5import socket
6import threading
7import datetime
8from math import pi
9
10import LliurexUpCore
11
12from gi.repository import Gtk, Gdk, GObject, GLib, PangoCairo, Pango
13
14import signal
15signal.signal(signal.SIGINT, signal.SIG_DFL)
16
17
18class LliurexUpConnect():
19
20        def __init__(self):
21                self.llxUpCore=LliurexUpCore.LliurexUpCore()
22                GObject.threads_init()
23                log_msg="------------------------------------------\n"+"LLIUREX-UP STARTING AT: " + datetime.datetime.today().strftime("%d/%m/%y %H:%M:%S") +"\n------------------------------------------"
24                self.log(log_msg)
25                self.checkInitialFlavour()
26
27
28        #def __init__   
29
30
31        def checkInitialFlavour(self):
32
33                 self.targetMetapackage=None
34
35                 try:
36                        self.targetMetapackage=self.llxUpCore.checkFlavour()
37                        log_msg="Initial check metapackage. Metapackage to install: " + str(self.targetMetapackage)
38                        self.log(log_msg)
39                        self.previousFlavours=self.llxUpCore.previuosFlavours
40
41                        if len(self.previousFlavours)==0:
42                                self.llxUpCore.getPreviuosFlavours()
43                       
44                        log_msg="Get initial flavours: " + str(self.previousFlavours)
45                        self.log(log_msg)
46                 
47                 except Exception as e:
48                        log_msg="Initial check metapackage. Error: " + str(e)
49                        self.log(log_msg)
50
51                 return self.targetMetapackage
52
53        #def checkFlavoour
54
55        def requiresInstallFlavour(self):
56               
57                flavourToInstall=None
58               
59                self.flavours=self.llxUpCore.flavours
60                log_msg="Get update flavours " + str(self.flavours)
61                self.log(log_msg)
62
63                if not 'None' in self.previousFlavours:
64                        if self.previousFlavours !=self.flavours:
65                                log_msg="Requires Install Flavour: Yes"
66                                self.log(log_msg)
67                               
68                        else:
69                                log_msg="Requires Install Flavour: No"
70                                self.log(log_msg)       
71                                                       
72
73                return flavourToInstall                                         
74                       
75
76        def canConnectToLliurexNet(self):
77
78                try:
79                        can_connect=self.llxUpCore.canConnectToLliurexNet()
80                        if can_connect:
81                                return True 
82                        else:
83                                return False
84                except:
85                        return False
86
87        #def canConnectToLliurexNet
88
89        def isLliurexUpIsUpdated(self):
90
91                try:
92                        is_lliurexup_updated=self.llxUpCore.isLliurexUpIsUpdated()
93                        log_msg="Checking lliurex-up. Is lliurex-up updated: "+ str(is_lliurexup_updated)
94                        self.log(log_msg)
95                        return is_lliurexup_updated
96               
97                except Exception as e:
98                        log_msg="Checking lliurex-up. Error: " + str(e)
99                        self.log(log_msg)
100                        return True
101
102        #def isLliurexUpIsUpdated
103
104        def installLliurexUp(self):
105
106                try:
107                        is_lliurexup_installed=self.llxUpCore.installLliurexUp()
108                        log_msg="Installing lliurex-up: " + str(is_lliurexup_installed)
109                        self.log(log_msg)
110                        return is_lliurexup_installed
111
112                except Exception as e:
113                        log_msg="Installing lliurex-up. Error: " + str(e)
114                        self.log(log_msg)
115                        return True
116
117        #def installLliurexUp   
118
119       
120        def lliurexMirrorIsUpdated(self):
121
122                try:
123                        is_mirror_updated=self.llxUpCore.lliurexMirrorIsUpdated()
124
125                        if is_mirror_updated !=None:
126                       
127                                if is_mirror_updated['action']=='update':
128                                        log_msg="Checking mirror. Is mirror update: False"
129                                        self.log(log_msg)
130                                        return False
131                                else: 
132                                        log_msg="Checking mirror. Is mirror update: " + is_mirror_updated['action']
133                                        self.log(log_msg)
134                                        return True
135                        else:
136                                log_msg="Checking mirror. Is mirror update: None"
137                                self.log(log_msg)
138                                return True
139               
140               
141                except Exception as e:
142                        log_msg="Checking mirror. Error: " + str(e)
143                        self.log(log_msg)
144                        return True     
145
146        #def lliurexMirrorIsUpdated             
147
148        def lliurexMirrorIsRunning(self):
149
150                try:
151                        is_lliurexmirror_running=self.llxUpCore.lliurexMirrorIsRunning()
152                        return is_lliurexmirror_running
153
154                except Exception as e:
155                        log_msg="Updating mirror. Error: " + str(e)
156                        self.log(log_msg)
157                        return False
158
159        #def lliurexMirrorIsRunning             
160
161        def getPercentageLliurexMirror(self):
162
163                try:
164                        percentage_mirror=self.llxUpCore.getPercentageLliurexMirror()
165                        if percentage_mirror != None:
166                                return percentage_mirror
167                        else:
168                                return 0       
169               
170                except Exception as e:
171                        return 0       
172
173
174        #def getPercentageLliurexMirror
175
176        def getLliurexVersionLocal(self):
177               
178                try:
179                       
180                        self.lliurexVersionLocal=self.llxUpCore.getLliurexVersionLocal()
181                        log_msg="Get LliurexVersion installed: " + self.lliurexVersionLocal["installed"]
182                        self.log(log_msg)
183                        log_msg="Get LliurexVersion candidate from Local repository: " + self.lliurexVersionLocal["candidate"]
184                        self.log(log_msg)
185                        self.lliurexVersionLocal=self.lliurexVersionLocal["candidate"]
186
187                except Exception as e:
188                        log_msg="Get LliurexVersion from Local repository. Error: " + str(e)
189                        self.log(log_msg)
190                        self.lliurexVersionLocal=None
191
192                return self.lliurexVersionLocal
193
194        def getLliurexVersionNet(self):
195               
196                try:
197                        self.lliurexVersionNet=self.llxUpCore.getLliurexVersionLliurexNet()["candidate"]
198                        log_msg="Get LliurexVersion candidate from Lliurex Net: " + self.lliurexVersionNet
199                        self.log(log_msg)
200                       
201
202                except Exception as e:
203                        log_msg="Get LliurexVersion from Lliurex Net. Error: " + str(e)
204                        self.log(log_msg)
205                        self.lliurexVersionNet=None
206
207                return self.lliurexVersionNet   
208
209
210        def getPackagesToUpdate(self):
211               
212                try:
213                        packages_parse=[]
214                        packages=self.llxUpCore.getPackagesToUpdate()
215                        if len(packages)>0:
216                                for item in packages:
217                                        version=packages[item]
218                                        packages_parse.append(item+";"+version['candidate']+";"+'20Mb')
219
220                        log_msg="Get packages to update: OK" 
221                        self.log(log_msg)               
222                        return packages_parse
223
224                except Exception as e:
225                        log_msg="Get packages to update. Error: " + str(e)
226                        self.log(log_msg)
227                        return packages_parse
228
229
230        def checkFinalFlavour(self):
231               
232                flavourToInstall=None
233               
234                try:
235                        self.targetMetapackage=self.llxUpCore.checkFlavour()
236                        log_msg="Final check metapackage. Metapackage to install: " + str(self.targetMetapackage)
237                        self.log(log_msg)
238
239                        if self.targetMetapackage == None: 
240                                flavourToInstall=self.requiresInstallFlavour()
241                        else: 
242                                flavourToInstall=self.targetMetapackage
243       
244
245                except Exception as e:
246                        log_msg="Final check metapackage. Error: " + str(e)
247                        self.log(log_msg)
248
249                return flavourToInstall                         
250
251        #def getPackagesToUpdate
252                       
253        def log(self,msg):
254               
255                log_file="/var/log/lliurex-up.log"
256                f=open(log_file,"a+")
257                f.write(msg + '\n')
258                f.close()
259
260        #def log                       
Note: See TracBrowser for help on using the repository browser.