Add EventDB object in orm.py module
This commit is contained in:
1
solar/.cache/v/cache/lastfailed
vendored
Normal file
1
solar/.cache/v/cache/lastfailed
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{}
|
||||
@@ -517,6 +517,33 @@ class DBResource(DBObject):
|
||||
self.inputs.add(input)
|
||||
|
||||
|
||||
class DBEvent(DBObject):
|
||||
|
||||
__metaclass__ = DBObjectMeta
|
||||
|
||||
_collection = base.BaseGraphDB.COLLECTIONS.events
|
||||
|
||||
id = db_field(is_primary=True)
|
||||
parent = db_field(schema='str!')
|
||||
parent_action = db_field(schema='str!')
|
||||
evtype = db_field('str!')
|
||||
state = db_field('str')
|
||||
child = db_field('str')
|
||||
child_action = db_field('str')
|
||||
|
||||
@classmethod
|
||||
def load_list(cls, parent):
|
||||
rs = db.all(collection=cls._collection.name + ':' + parent)
|
||||
return [cls(**r.properties) for r in rs]
|
||||
|
||||
@property
|
||||
def _db_key(self):
|
||||
if not self._primary_field.value:
|
||||
setattr(self, self._primary_field.name, '{}:{}'.format(self.parent, unicode(uuid.uuid4())))
|
||||
self._update_fields_values()
|
||||
return DBObject._db_key.fget(self)
|
||||
|
||||
|
||||
# TODO: remove this
|
||||
if __name__ == '__main__':
|
||||
r = DBResource(name=1)
|
||||
|
||||
@@ -226,10 +226,10 @@ class TestResourceORM(BaseResourceTest):
|
||||
r.save()
|
||||
|
||||
r.add_input('ip', 'str!', '10.0.0.2')
|
||||
|
||||
self.assertEqual(len(r.inputs.as_set()), 1)
|
||||
|
||||
|
||||
<<<<<<< HEAD
|
||||
class TestResourceInputORM(BaseResourceTest):
|
||||
def test_backtrack_simple(self):
|
||||
sample_meta_dir = self.make_resource_meta("""
|
||||
@@ -421,3 +421,39 @@ input:
|
||||
signals.disconnect(sample2, sample_dict_list)
|
||||
self.assertEqual(vi.backtrack_value_emitter(),
|
||||
[{'a': sample1.resource_inputs()['value']}])
|
||||
|
||||
|
||||
class TestEventORM(BaseResourceTest):
|
||||
|
||||
def test_save_and_load_by_parent(self):
|
||||
ev = orm.DBEvent(
|
||||
parent='n1',
|
||||
parent_action='run',
|
||||
state='success',
|
||||
child_action='run',
|
||||
child='n2',
|
||||
evtype='dependency')
|
||||
ev.save()
|
||||
|
||||
rst = orm.DBEvent.load_list('n1')
|
||||
self.assertEqual(len(rst), 1)
|
||||
self.assertEqual(rst[0], ev)
|
||||
|
||||
def test_save_several(self):
|
||||
ev = orm.DBEvent(
|
||||
parent='n1',
|
||||
parent_action='run',
|
||||
state='success',
|
||||
child_action='run',
|
||||
child='n2',
|
||||
evtype='dependency')
|
||||
ev.save()
|
||||
ev1 = orm.DBEvent(
|
||||
parent='n1',
|
||||
parent_action='run',
|
||||
state='success',
|
||||
child_action='run',
|
||||
child='n3',
|
||||
evtype='dependency')
|
||||
ev1.save()
|
||||
self.assertEqual(len(orm.DBEvent.load_list('n1')), 2)
|
||||
|
||||
Reference in New Issue
Block a user