diff options
author | Gordon Chung <chungg@ca.ibm.com> | 2013-10-16 13:50:06 -0400 |
---|---|---|
committer | Gordon Chung <chungg@ca.ibm.com> | 2013-10-17 14:17:21 -0400 |
commit | d280b091320ab27a7de1325f1dc895016bb1c7a1 (patch) | |
tree | 28d3700a5c476af8f13c65b2bb17a0da503b78aa /pycadf/event.py | |
parent | 1f2ec374ea27a6ce4db4009b0a36097286908cef (diff) | |
download | pycadf-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.py | 13 |
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, |