summaryrefslogtreecommitdiff
path: root/pycadf/event.py
diff options
context:
space:
mode:
authorGordon Chung <chungg@ca.ibm.com>2013-10-16 13:50:06 -0400
committerGordon Chung <chungg@ca.ibm.com>2013-10-17 14:17:21 -0400
commitd280b091320ab27a7de1325f1dc895016bb1c7a1 (patch)
tree28d3700a5c476af8f13c65b2bb17a0da503b78aa /pycadf/event.py
parent1f2ec374ea27a6ce4db4009b0a36097286908cef (diff)
downloadpycadf-d280b091320ab27a7de1325f1dc895016bb1c7a1.tar.gz
observer and reporter should be valid Resource
- fix observer and reporter attributes to be valid Resource type - add check that Resource id shortform for initiator and target do not reference themselves Fixes: Bug # 1240067 Change-Id: Iab5b6c129d512039073cc8c2ab7b75ac7c819624
Diffstat (limited to 'pycadf/event.py')
-rw-r--r--pycadf/event.py13
1 files changed, 6 insertions, 7 deletions
diff --git a/pycadf/event.py b/pycadf/event.py
index ff39338..e9a91e4 100644
--- a/pycadf/event.py
+++ b/pycadf/event.py
@@ -77,15 +77,16 @@ class Event(cadftype.CADFAbstractType):
lambda x: timestamp.is_valid(x))
initiator = cadftype.ValidatorDescriptor(
EVENT_KEYNAME_INITIATOR,
- (lambda x: isinstance(x, resource.Resource) and
- x.is_valid()))
+ (lambda x: isinstance(x, resource.Resource) and x.is_valid()
+ and x.id != 'initiator'))
initiatorId = cadftype.ValidatorDescriptor(
EVENT_KEYNAME_INITIATORID, lambda x: identifier.is_valid(x))
action = cadftype.ValidatorDescriptor(
EVENT_KEYNAME_ACTION, lambda x: cadftaxonomy.is_valid_action(x))
target = cadftype.ValidatorDescriptor(
- EVENT_KEYNAME_TARGET, (lambda x: isinstance(x, resource.Resource) and
- x.is_valid()))
+ EVENT_KEYNAME_TARGET,
+ (lambda x: isinstance(x, resource.Resource) and x.is_valid()
+ and x.id != 'target'))
targetId = cadftype.ValidatorDescriptor(
EVENT_KEYNAME_TARGETID, lambda x: identifier.is_valid(x))
outcome = cadftype.ValidatorDescriptor(
@@ -98,9 +99,7 @@ class Event(cadftype.CADFAbstractType):
basestring))
observer = cadftype.ValidatorDescriptor(
EVENT_KEYNAME_OBSERVER,
- (lambda x: isinstance(x, resource.Resource) or
- (isinstance(x, basestring) and
- (x == 'initiator' or x == 'target'))))
+ (lambda x: isinstance(x, resource.Resource) and x.is_valid()))
def __init__(self, eventType=cadftype.EVENTTYPE_ACTIVITY,
id=None, eventTime=None,