diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/Server/Plugins/Snapshots.py | 5 | ||||
-rw-r--r-- | src/lib/Server/Snapshots/model.py | 7 |
2 files changed, 9 insertions, 3 deletions
diff --git a/src/lib/Server/Plugins/Snapshots.py b/src/lib/Server/Plugins/Snapshots.py index d4efc2be3..34c1f903c 100644 --- a/src/lib/Server/Plugins/Snapshots.py +++ b/src/lib/Server/Plugins/Snapshots.py @@ -65,6 +65,8 @@ class Snapshots(Bcfg2.Server.Plugin.Statistics, extra = dict([('Package', dict()), ('Service', dict()), ('Path', dict())]) bad = [] + correct = xdata.get('state') == 'clean' + revision = unicode(xdata.get('revision', '-1')) for entry in xdata.find('.//Bad'): data = [False, False, unicode(entry.get('name'))] \ + build_snap_ent(entry) @@ -92,7 +94,8 @@ class Snapshots(Bcfg2.Server.Plugin.Statistics, else: print "extra", entry.tag, entry.get('name') t2 = time.time() - snap = Snapshot.from_data(self.session, metadata, entries, extra) + snap = Snapshot.from_data(self.session, correct, revision, + metadata, entries, extra) self.session.add(snap) self.session.commit() t3 = time.time() diff --git a/src/lib/Server/Snapshots/model.py b/src/lib/Server/Snapshots/model.py index a913a25de..8209eeab7 100644 --- a/src/lib/Server/Snapshots/model.py +++ b/src/lib/Server/Snapshots/model.py @@ -200,6 +200,8 @@ action_snap = Table('action_snap', Base.metadata, class Snapshot(Base): __tablename__ = 'snapshot' id = Column(Integer, primary_key=True) + correct = Column(Boolean) + revision = Column(Unicode(36)) metadata_id = Column(Integer, ForeignKey('metadata.id')) client_metadata = relation(Metadata, primaryjoin=metadata_id==Metadata.id) timestamp = Column(DateTime, default=datetime.datetime.now) @@ -221,9 +223,10 @@ class Snapshot(Base): ('Path', ('extra_files', File))]) @classmethod - def from_data(cls, session, metadata, entries, extra): + def from_data(cls, session, correct, revision, metadata, entries, extra): dbm = Metadata.from_metadata(session, metadata) - snap = cls(client_metadata=dbm, timestamp=datetime.datetime.now()) + snap = cls(correct=correct, client_metadata=dbm, revision=revision, + timestamp=datetime.datetime.now()) for (dispatch, data) in [(cls.c_dispatch, entries), (cls.e_dispatch, extra)]: for key in dispatch: |