@@ 219-239 (lines=21) @@ | ||
216 | return {'_id': self.artifact_id, |
|
217 | 'filename': self.filename} |
|
218 | ||
219 | class Resource(Base): |
|
220 | __tablename__ = 'resource' |
|
221 | ||
222 | @classmethod |
|
223 | def get_or_create(cls, filename, session): |
|
224 | md5sum = get_digest(filename) |
|
225 | instance = session.query(cls).filter_by(filename=filename, |
|
226 | md5sum=md5sum).first() |
|
227 | if instance: |
|
228 | return instance |
|
229 | with open(filename, 'rb') as f: |
|
230 | return cls(filename=filename, md5sum=md5sum, content=f.read()) |
|
231 | ||
232 | resource_id = sa.Column(sa.Integer, primary_key=True) |
|
233 | filename = sa.Column(sa.String(256)) |
|
234 | md5sum = sa.Column(sa.String(32)) |
|
235 | content = sa.Column(sa.LargeBinary) |
|
236 | ||
237 | def to_json(self): |
|
238 | return {'filename': self.filename, |
|
239 | 'md5sum': self.md5sum} |
|
240 | ||
241 | class Host(Base): |
|
242 | __tablename__ = 'host' |
|
@@ 200-217 (lines=18) @@ | ||
197 | def to_json(self): |
|
198 | return "{}=={}".format(self.name, self.version) |
|
199 | ||
200 | class Artifact(Base): |
|
201 | __tablename__ = 'artifact' |
|
202 | ||
203 | @classmethod |
|
204 | def create(cls, name, filename): |
|
205 | with open(filename, 'rb') as f: |
|
206 | return cls(filename=name, content=f.read()) |
|
207 | ||
208 | artifact_id = sa.Column(sa.Integer, primary_key=True) |
|
209 | filename = sa.Column(sa.String(64)) |
|
210 | content = sa.Column(sa.LargeBinary) |
|
211 | ||
212 | run_id = sa.Column(sa.String(24), sa.ForeignKey('run.run_id')) |
|
213 | run = sa.orm.relationship("Run", backref=sa.orm.backref('artifacts')) |
|
214 | ||
215 | def to_json(self): |
|
216 | return {'_id': self.artifact_id, |
|
217 | 'filename': self.filename} |
|
218 | ||
219 | class Resource(Base): |
|
220 | __tablename__ = 'resource' |