Example #1
0
 def statistics_from_old_stats(self, metadata, xdata):
     # entries are name -> (modified, correct, start, desired, end)
     # not sure we can get all of this from old format stats
     t1 = time.time()
     entries = dict([('Package', dict()), ('Service', dict()),
                     ('Path', dict())])
     extra = dict([('Package', dict()), ('Service', dict()),
                   ('Path', dict())])
     bad = []
     state = xdata.find('.//Statistics')
     correct = state.get('state') == 'clean'
     revision = u_str(state.get('revision', '-1'))
     for entry in state.find('.//Bad'):
         data = [False, False, u_str(entry.get('name'))] \
                + build_snap_ent(entry)
         if entry.tag in ftypes:
             etag = 'Path'
         else:
             etag = entry.tag
         entries[etag][entry.get('name')] = data
     for entry in state.find('.//Modified'):
         if entry.tag in ftypes:
             etag = 'Path'
         else:
             etag = entry.tag
         if entry.get('name') in entries[etag]:
             data = [True, False, u_str(entry.get('name'))] + \
                    build_snap_ent(entry)
         else:
             data = [True, False, u_str(entry.get('name'))] + \
                    build_snap_ent(entry)
     for entry in state.find('.//Extra'):
         if entry.tag in datafields:
             data = build_snap_ent(entry)[1]
             ename = u_str(entry.get('name'))
             data['name'] = ename
             extra[entry.tag][ename] = data
         else:
             print("extra", entry.tag, entry.get('name'))
     t2 = time.time()
     snap = Snapshot.from_data(self.session, correct, revision, metadata,
                               entries, extra)
     self.session.add(snap)
     self.session.commit()
     t3 = time.time()
     logger.info("Snapshot storage took %fs" % (t3 - t2))
     return True
Example #2
0
 def statistics_from_old_stats(self, metadata, xdata):
     # entries are name -> (modified, correct, start, desired, end)
     # not sure we can get all of this from old format stats
     t1 = time.time()
     entries = dict([('Package', dict()),
                     ('Service', dict()), ('Path', dict())])
     extra = dict([('Package', dict()), ('Service', dict()),
                   ('Path', dict())])
     bad = []
     state = xdata.find('.//Statistics')
     correct = state.get('state') == 'clean'
     revision = u_str(state.get('revision', '-1'))
     for entry in state.find('.//Bad'):
         data = [False, False, u_str(entry.get('name'))] \
                + build_snap_ent(entry)
         if entry.tag in ftypes:
             etag = 'Path'
         else:
             etag = entry.tag
         entries[etag][entry.get('name')] = data
     for entry in state.find('.//Modified'):
         if entry.tag in ftypes:
             etag = 'Path'
         else:
             etag = entry.tag
         if entry.get('name') in entries[etag]:
             data = [True, False, u_str(entry.get('name'))] + \
                    build_snap_ent(entry)
         else:
             data = [True, False, u_str(entry.get('name'))] + \
                    build_snap_ent(entry)
     for entry in state.find('.//Extra'):
         if entry.tag in datafields:
             data = build_snap_ent(entry)[1]
             ename = u_str(entry.get('name'))
             data['name'] = ename
             extra[entry.tag][ename] = data
         else:
             print("extra", entry.tag, entry.get('name'))
     t2 = time.time()
     snap = Snapshot.from_data(self.session, correct, revision,
                               metadata, entries, extra)
     self.session.add(snap)
     self.session.commit()
     t3 = time.time()
     logger.info("Snapshot storage took %fs" % (t3 - t2))
     return True