Project

General

Profile

Revision bfd8ead8

IDbfd8ead81b365f8c4ca185948a1ca524d1f894ab
Parent 5763b516
Child 5dbfa80d

Added by Vincent QUEMENER over 14 years ago

Correction de la requête pour filtrer correctement les évènements corrélés en fonction du groupe de services.

Corrections des test concernés.

git-svn-id: https://vigilo-dev.si.c-s.fr/svn@1864 b22e2e97-25c9-44ff-b637-2e5ceca36478

View differences:

vigiboard/controllers/root.py
94 94
            aggregates.items.c.servicename
95 95
        )
96 96
        aggregates.add_join((Event, CorrEvent.idcause == Event.idevent))
97
        aggregates.add_join((aggregates.items, 
98
            Event.idsupitem == aggregates.items.c.idsupitem))
97 99
        
98 100
        search = {
99 101
            'host': '',
......
224 226
            events.items.c.servicename,
225 227
        )
226 228
        events.add_join((CorrEvent, CorrEvent.idcause == Event.idevent))
229
        events.add_join((events.items, 
230
            Event.idsupitem == events.items.c.idsupitem))
227 231
        events.add_filter(CorrEvent.idcorrevent == idcorrevent)
228 232

  
229 233
        # Vérification que au moins un des identifiants existe et est éditable
......
283 287
            events.items.c.servicename,
284 288
        )
285 289
        events.add_join((Event, CorrEvent.idcause == Event.idevent))
290
        events.add_join((events.items, 
291
            Event.idsupitem == events.items.c.idsupitem))
286 292
        events.add_filter(CorrEvent.idcorrevent == idcorrevent)
287 293
        
288 294
        # Vérification que l'événement existe
......
348 354
            events.items.c.servicename,
349 355
        )
350 356
        events.add_join((Event, CorrEvent.idcause == Event.idevent))
357
        events.add_join((events.items, 
358
            Event.idsupitem == events.items.c.idsupitem))
351 359
        events.add_filter(events.items.c.idsupitem == idsupitem)
352 360

  
353 361
        # XXX On devrait avoir une autre API que ça !!!
......
439 447
        events = VigiboardRequest(User.by_user_name(username))
440 448
        events.add_table(CorrEvent)
441 449
        events.add_join((Event, CorrEvent.idcause == Event.idevent))
450
        events.add_join((aggregates.items, 
451
            Event.idsupitem == events.items.c.idsupitem))
442 452
        events.add_filter(CorrEvent.idcorrevent.in_(ids))
443 453
        
444 454
        # Vérification que au moins un des identifiants existe et est éditable
......
508 518
        events = VigiboardRequest(User.by_user_name(username))
509 519
        events.add_table(CorrEvent.idcorrevent)
510 520
        events.add_join((Event, CorrEvent.idcause == Event.idevent))
521
        events.add_join((events.items, 
522
            Event.idsupitem == events.items.c.idsupitem))
511 523
        events.add_filter(CorrEvent.idcorrevent == idcorrevent)
512 524

  
513 525
        # Pas d'événement ou permission refusée. On ne distingue pas
vigiboard/controllers/vigiboardrequest.py
183 183
                # On loggue l'erreur et on ignore le plugin.
184 184
                LOGGER.error(_('No such plugin "%s"') % plug[0])
185 185

  
186
        self.join.extend([
187
            (self.items, Event.idsupitem == self.items.c.idsupitem),
188
            (StateName, StateName.idstatename == Event.current_state),
189
        ])
186
#        temp_join = self.join
187
#        self.join =  [(self.items, Event.idsupitem == self.items.c.idsupitem),
188
#            (StateName, StateName.idstatename == Event.current_state),]
189
#        self.join.extend(temp_join)
190

  
191
#        self.join.extend(
192
#            [(self.items, Event.idsupitem == self.items.c.idsupitem),
193
#            (StateName, StateName.idstatename == Event.current_state),])
194
        self.join.append((StateName, StateName.idstatename == Event.current_state))
190 195
        self.add_group_by(*self.table)
191 196

  
192 197
        # query et join ont besoin de referrence
vigiboard/tests/functional/test_host_vigiboardrequest.py
130 130
            vigi_req.items.c.servicename,
131 131
        )
132 132
        vigi_req.add_join((Event, CorrEvent.idcause == Event.idevent))
133
        vigi_req.add_join((vigi_req.items, 
134
            Event.idsupitem == vigi_req.items.c.idsupitem))
133 135

  
134 136
        # On vérifie que le nombre d'événements corrélés 
135 137
        # trouvés par la requête est bien égal à 1.
......
164 166
            vigi_req.items.c.servicename,
165 167
        )
166 168
        vigi_req.add_join((Event, CorrEvent.idcause == Event.idevent))
169
        vigi_req.add_join((vigi_req.items, 
170
            Event.idsupitem == vigi_req.items.c.idsupitem))
167 171

  
168 172
        # On vérifie que le nombre d'événements corrélés 
169 173
        # trouvés par la requête est bien égal à 2.
vigiboard/tests/functional/test_vigiboardrequest.py
200 200
            vigi_req.items.c.servicename,
201 201
        )
202 202
        vigi_req.add_join((Event, CorrEvent.idcause == Event.idevent))
203
        vigi_req.add_join((vigi_req.items, 
204
            Event.idsupitem == vigi_req.items.c.idsupitem))
203 205

  
204 206
        # On effectue les tests suivants :
205 207
        #   le nombre de lignes (historique et événements) doivent
......
233 235
            vigi_req.items.c.servicename,
234 236
        )
235 237
        vigi_req.add_join((Event, CorrEvent.idcause == Event.idevent))
238
        vigi_req.add_join((vigi_req.items, 
239
            Event.idsupitem == vigi_req.items.c.idsupitem))
236 240
        vigi_req.add_plugin(MonPlugin)
237 241

  
238 242
        num_rows = vigi_req.num_rows()

Also available in: Unified diff