diff options
author | Narayan Desai <desai@mcs.anl.gov> | 2009-03-21 17:17:21 +0000 |
---|---|---|
committer | Narayan Desai <desai@mcs.anl.gov> | 2009-03-21 17:17:21 +0000 |
commit | b7f6cc4e326cf6fad8bcb248dbfb6b4e633b41c2 (patch) | |
tree | 9eb2e28cde1dadf272a4721defe5a55549c623b5 | |
parent | 5aa449d28e421ea1c6b84caaf78512e195a4472c (diff) | |
download | bcfg2-b7f6cc4e326cf6fad8bcb248dbfb6b4e633b41c2.tar.gz bcfg2-b7f6cc4e326cf6fad8bcb248dbfb6b4e633b41c2.tar.bz2 bcfg2-b7f6cc4e326cf6fad8bcb248dbfb6b4e633b41c2.zip |
Add revision and correct fields to snapshot class; should simplify most queries
git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@5133 ce84e21b-d406-0410-9b95-82705330c041
-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: |