/[smeserver]/rpms/smeserver-yum/sme10/smeserver-yum-2.6.0-bz11184-smeserver.py.patch
ViewVC logotype

Contents of /rpms/smeserver-yum/sme10/smeserver-yum-2.6.0-bz11184-smeserver.py.patch

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.2 - (show annotations) (download)
Mon Dec 7 19:12:11 2020 UTC (3 years, 10 months ago) by jpp
Branch: MAIN
Changes since 1.1: +2 -1 lines
* Sun Dec 06 2020 Jean-Philipe Pialasse <tests@pialasse.com> 2.6.0-41.sme
- fix -update events not runt on package upgrade [SME: 11184]

1 diff -Nur smeserver-yum-2.6.0.old/root/usr/lib/yum-plugins/smeserver.py smeserver-yum-2.6.0/root/usr/lib/yum-plugins/smeserver.py
2 --- smeserver-yum-2.6.0.old/root/usr/lib/yum-plugins/smeserver.py 2020-12-06 23:11:14.321000000 -0500
3 +++ smeserver-yum-2.6.0/root/usr/lib/yum-plugins/smeserver.py 2020-12-06 23:12:58.737000000 -0500
4 @@ -63,6 +63,11 @@
5 smechange = False
6 ourfile = False
7 erasing = False
8 +DEBUG = False
9 +
10 +def log(s):
11 + if DEBUG:
12 + print s
13
14 def report_yum_status(status):
15 fileHandle = open(status_file, 'w')
16 @@ -94,7 +99,21 @@
17 report_yum_status('postresolve')
18
19 def pretrans_hook(conduit):
20 +#transaction set states
21 +#TS_UPDATE = 10
22 +#TS_INSTALL = 20
23 +#TS_TRUEINSTALL = 30
24 +#TS_ERASE = 40
25 +#TS_OBSOLETED = 50
26 +#TS_OBSOLETING = 60
27 +#TS_AVAILABLE = 70
28 +#TS_UPDATED = 90
29 +#TS_FAILED = 100
30 +#TS_INSTALL_STATES = [TS_INSTALL, TS_TRUEINSTALL, TS_UPDATE, TS_OBSOLETING]
31 +#TS_REMOVE_STATES = [TS_ERASE, TS_OBSOLETED, TS_UPDATED]
32 +
33 report_yum_status('pretrans')
34 + log("*******Pretrans********")
35 # Prefetch filelist for packages to be removed,
36 # otherwise for updated packages headers will not be available
37 ts = conduit.getTsInfo()
38 @@ -112,10 +131,10 @@
39 erasing = True
40 (n, a, e, v, r) = tsmem.po.pkgtup
41 #only for debug
42 - #print 'Package: ' + tsmem.name + ' remove'
43 + log('**Package: ' + tsmem.name + ' remove')
44 smeevent = tsmem.name + '-update'
45 #only for debug
46 - #print smeevent
47 + #log(smeevent)
48 if os.path.isdir(events_path + os.sep + smeevent):
49 tmppath = events_path + os.sep + smeevent + os.sep
50 eventlist[tsmem.name] = smeevent
51 @@ -128,22 +147,24 @@
52 if not templateslist.has_key(mytmptemplate):
53 templateslist[mytmptemplate]=mytmptemplate
54 #tmptmplpath = subdir + os.sep + file
55 - #print (file)
56 + log(" template " + file)
57
58 + # nothing for actions ???
59 +
60 if os.path.isdir(tmppath + "services2adjust" + os.sep):
61 tmppathsrv = tmppath + "services2adjust" + os.sep
62 files = [f for f in os.listdir(tmppathsrv)]
63 for f in files:
64 if os.path.islink(tmppathsrv + f):
65 - #print "link " + f + ": " + (os.readlink(tmppathsrv + f))
66 + log(" service link " + f + ": " + (os.readlink(tmppathsrv + f)))
67 mytmpserv = os.readlink(tmppathsrv + f)
68 if not serviceslist.has_key(f):
69 - serviceslist[f]=mytmpserv
70 + if tsmem.output_state == TS_ERASE:
71 + print('===> removal, we stop the service ' + f)
72 + serviceslist[f]="stop"
73 + else:
74 + serviceslist[f]=mytmpserv
75 else:
76 - #only for debug
77 - #print "old value: " + serviceslist[f]
78 - #print "new value: " + mytmpserv
79 -
80 if mytmpserv == "restart":
81 - print "overriding all signals, forcing restart"
82 + log("overriding all signals, forcing restart " + f)
83 serviceslist[f]="restart"
84 @@ -153,13 +174,14 @@
85 smechange = True
86
87 #only for debug
88 - #print 'smechange: '+str(smechange)
89 - #print 'eventlist: '+ str(eventlist)
90 - #print 'templateslist: '+str(templateslist)
91 - #print 'serviceslist: '+str(serviceslist)
92 + log('## smechange: '+str(smechange))
93 + log('## eventlist: '+ str(eventlist.keys()))
94 + log('## templateslist: '+str(templateslist.keys()))
95 + log('## serviceslist: '+str(serviceslist.keys()))
96
97 def posttrans_hook(conduit):
98 report_yum_status('posttrans')
99 + log("*******Postrans********")
100 ts = conduit.getTsInfo()
101
102 global smechange
103 @@ -174,13 +196,12 @@
104
105 for tsmem in ts.getMembers():
106 (n, a, e, v, r) = tsmem.po.pkgtup
107 -
108 #print 'smechange: '+str(smechange)
109
110 # we're upgrading/installing/removing a rebootpkgs package.. a reboot is required
111 for pkg in rebootpkgs:
112 if n.startswith(pkg):
113 - #print 'Package: ' + tsmem.name + ' triggers reboot'
114 + log('**Package: ' + tsmem.name + ' triggers reboot')
115 #smechange = True
116 # we do some exclusions -devel -doc ...
117 if pkg in rebootpkgsexclude:
118 @@ -216,7 +237,11 @@
119
120
121 #if smechange is true we can ignore the following part
122 - if not smechange and not erasing:
123 + # wondering if we reallly do want to ignore that : let's say we want to delay kernel reboot,
124 + # could we at least configure httpd cleanly until next week ?
125 + # also when updating a package the erasing flag was on and prevented to do this ....
126 + # if not smechange and not erasing:
127 + if True:
128
129 #smeevent = 'yum-reconfigure-' + tsmem.name
130 smeevent = tsmem.name + '-update'
131 @@ -229,17 +254,20 @@
132 if os.path.islink(tmppath + f):
133
134 mytmpaction = os.path.realpath(os.readlink(tmppath + f).replace("..",events_path))
135 - #print "link " + f + ": " + mytmpaction
136 + #log(" link " + f + ": " + mytmpaction)
137
138 if f < "S05generic_template_expand":
139 if not actionlistpre.has_key(mytmpaction):
140 actionlistpre[mytmpaction] = mytmpaction
141 + log(" action Pre : " + f + " -> " + mytmpaction)
142 elif f > "S90adjust-services":
143 if not actionlistpost.has_key(mytmpaction):
144 actionlistpost[mytmpaction] = mytmpaction
145 + log(" action Post : " + f + " -> " + mytmpaction)
146 else:
147 if not actionlist.has_key(mytmpaction):
148 actionlist[mytmpaction] = mytmpaction
149 + log(" action : " + f + " -> " + mytmpaction)
150
151 if os.path.isdir(tmppath + "templates2expand" + os.sep):
152 tmppathtmpl = tmppath + "templates2expand" + os.sep
153 @@ -249,22 +277,18 @@
154 if not templateslist.has_key(mytmptemplate):
155 templateslist[mytmptemplate]=mytmptemplate
156 #tmptmplpath = subdir + os.sep + file
157 - #print (file)
158 + log(" template " + mytmptemplate)
159
160 if os.path.isdir(tmppath + "services2adjust" + os.sep):
161 tmppathsrv = tmppath + "services2adjust" + os.sep
162 files = [f for f in os.listdir(tmppathsrv)]
163 for f in files:
164 if os.path.islink(tmppathsrv + f):
165 - #print "link " + f + ": " + (os.readlink(tmppathsrv + f))
166 + log(" service link " + f + ": " + (os.readlink(tmppathsrv + f)))
167 mytmpserv = os.readlink(tmppathsrv + f)
168 if not serviceslist.has_key(f):
169 serviceslist[f]=mytmpserv
170 else:
171 - #only for debug
172 - #print "old value: " + serviceslist[f]
173 - #print "new value: " + mytmpserv
174 -
175 if mytmpserv == "restart":
176 #only for debug
177 print "overriding all signals, forcing restart"
178 @@ -276,11 +300,15 @@
179
180
181 #only for debug
182 - #print 'smechange: '+str(smechange)
183 + log('## smechange: '+str(smechange))
184 #print 'post-trans'
185 - #print 'eventlist: '+ str(eventlist)
186 - #print 'templateslist: '+str(templateslist)
187 - #print 'serviceslist: '+str(serviceslist)
188 + log('## eventlist: '+ str(eventlist))
189 + log('## actions early: ' + str(actionlistpre.keys()))
190 + log('## templateslist: '+str(templateslist.keys()))
191 + log('## actions: ' + str(actionlist.keys()))
192 + log('## serviceslist: '+str(serviceslist.keys()))
193 + log('## actions late: ' + str(actionlistpost.keys()))
194 +
195
196 # check if smechange is true or if eventlist has items.. in both cases we must initialize databases
197 if smechange == True or len(eventlist)>0:
198 @@ -293,14 +321,14 @@
199 if len(actionlistpre)>0:
200 print "Executing early actions"
201 for kactions in actionlistpre:
202 - #print kactions
203 + log(" " + kactions)
204 if os.path.isfile(kactions):
205 os.spawnl(os.P_WAIT, kactions, kactions)
206
207 if len(templateslist)>0:
208 print "Expanding templates"
209 for ktemplates in templateslist:
210 - #print ktemplates
211 + log(" " + ktemplates)
212 mytemplatedir = '/etc/e-smith/templates/' + ktemplates
213 mytemplatemeta = '/etc/e-smith/templates.metadata/' + ktemplates
214 if os.path.exists(mytemplatedir) or os.path.exists(mytemplatemeta):
215 @@ -309,7 +337,7 @@
216 if len(actionlist)>0:
217 print "Executing actions"
218 for kactions in actionlist:
219 - #print kactions
220 + log(" " + kactions)
221 if os.path.isfile(kactions):
222 os.spawnl(os.P_WAIT, kactions, kactions,"post-upgrade")
223
224 @@ -322,7 +350,7 @@
225 if len(actionlistpost)>0:
226 print "Executing late actions"
227 for kactions in actionlistpost:
228 - #print kactions
229 + log(" " + kactions)
230 if os.path.isfile(kactions):
231 os.spawnl(os.P_WAIT, kactions, kactions)
232
233 @@ -335,6 +363,7 @@
234 def close_hook(conduit):
235 if ourfile and os.path.isfile('/var/run/yum.status'):
236 os.unlink('/var/run/yum.status')
237 + log("***Close***")
238
239 if smechange:
240 print "\n=============================================================="

admin@koozali.org
ViewVC Help
Powered by ViewVC 1.2.1 RSS 2.0 feed