本文整理汇总了Python中pyon.event.event.EventPublisher.publish_event_object方法的典型用法代码示例。如果您正苦于以下问题:Python EventPublisher.publish_event_object方法的具体用法?Python EventPublisher.publish_event_object怎么用?Python EventPublisher.publish_event_object使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类pyon.event.event.EventPublisher
的用法示例。
在下文中一共展示了EventPublisher.publish_event_object方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_pub_and_sub
# 需要导入模块: from pyon.event.event import EventPublisher [as 别名]
# 或者: from pyon.event.event.EventPublisher import publish_event_object [as 别名]
def test_pub_and_sub(self):
ar = event.AsyncResult()
gq = queue.Queue()
self.count = 0
def cb(*args, **kwargs):
self.count += 1
gq.put(args[0])
if self.count == 2:
ar.set()
sub = EventSubscriber(event_type="ResourceEvent", callback=cb, origin="specific")
pub = EventPublisher(event_type="ResourceEvent")
self._listen(sub)
pub.publish_event(origin="specific", description="hello")
event_obj = bootstrap.IonObject('ResourceEvent', origin='specific', description='more testing')
self.assertEqual(event_obj, pub.publish_event_object(event_obj))
with self.assertRaises(BadRequest) as cm:
event_obj = bootstrap.IonObject('ResourceEvent', origin='specific', description='more testing', ts_created='2423')
pub.publish_event_object(event_obj)
self.assertIn( 'The ts_created value is not a valid timestamp',cm.exception.message)
with self.assertRaises(BadRequest) as cm:
event_obj = bootstrap.IonObject('ResourceEvent', origin='specific', description='more testing', ts_created='1000494978462')
pub.publish_event_object(event_obj)
self.assertIn( 'This ts_created value is too old',cm.exception.message)
with self.assertRaises(BadRequest) as cm:
event_obj = bootstrap.IonObject('ResourceEvent', origin='specific', description='more testing')
event_obj._id = '343434'
pub.publish_event_object(event_obj)
self.assertIn( 'The event object cannot contain a _id field',cm.exception.message)
ar.get(timeout=5)
res = []
for x in xrange(self.count):
res.append(gq.get(timeout=5))
self.assertEquals(len(res), self.count)
self.assertEquals(res[0].description, "hello")
self.assertAlmostEquals(int(res[0].ts_created), int(get_ion_ts()), delta=5000)
self.assertEquals(res[1].description, "more testing")
self.assertAlmostEquals(int(res[1].ts_created), int(get_ion_ts()), delta=5000)
示例2: UserNotificationService
# 需要导入模块: from pyon.event.event import EventPublisher [as 别名]
# 或者: from pyon.event.event.EventPublisher import publish_event_object [as 别名]
#.........这里部分代码省略.........
query = []
if min_time and max_time:
query.append( "SEARCH 'ts_created' VALUES FROM %s TO %s FROM 'events_index'" % (min_time, max_time))
if origin:
query.append( 'search "origin" is "%s" from "events_index"' % origin)
if type:
query.append( 'search "type_" is "%s" from "events_index"' % type)
search_string = ' and '.join(query)
# get the list of ids corresponding to the events
ret_vals = self.discovery.parse(search_string)
if len(query) > 1:
events = self.datastore.read_mult(ret_vals)
else:
events = [i['_source'] for i in ret_vals]
log.debug("(find_events_extended) Discovery search returned the following event ids: %s", ret_vals)
log.debug("(find_events_extended) UNS found the following relevant events: %s", events)
if limit > 0:
return events[:limit]
#todo implement time ordering: ascending or descending
return events
def publish_event_object(self, event=None):
"""
This service operation would publish the given event from an event object.
@param event !Event
@retval event !Event
"""
event = self.event_publisher.publish_event_object(event_object=event)
log.info("The publish_event_object(event) method of UNS was used to publish the event: %s", event )
return event
def publish_event(self, event_type='', origin='', origin_type='', sub_type='', description='', event_attrs=None):
"""
This service operation assembles a new Event object based on event_type
(e.g. via the pyon Event publisher) with optional additional attributes from a event_attrs
dict of arbitrary attributes.
@param event_type str
@param origin str
@param origin_type str
@param sub_type str
@param description str
@param event_attrs dict
@retval event !Event
"""
event_attrs = event_attrs or {}
event = self.event_publisher.publish_event(
event_type = event_type,
origin = origin,
origin_type = origin_type,
示例3: UserNotificationService
# 需要导入模块: from pyon.event.event import EventPublisher [as 别名]
# 或者: from pyon.event.event.EventPublisher import publish_event_object [as 别名]
#.........这里部分代码省略.........
query = []
if min_time and max_time:
query.append( "SEARCH 'ts_created' VALUES FROM %s TO %s FROM 'events_index'" % (min_time, max_time))
if origin:
query.append( 'search "origin" is "%s" from "events_index"' % origin)
if type:
query.append( 'search "type_" is "%s" from "events_index"' % type)
search_string = ' and '.join(query)
# get the list of ids corresponding to the events
ret_vals = self.discovery.parse(search_string)
if len(query) > 1:
events = self.datastore.read_mult(ret_vals)
else:
events = [i['_source'] for i in ret_vals]
log.debug("(find_events_extended) Discovery search returned the following event ids: %s", ret_vals)
log.debug("(find_events_extended) UNS found the following relevant events: %s", events)
if limit > 0:
return events[:limit]
#todo implement time ordering: ascending or descending
return events
def publish_event_object(self, event=None):
"""
This service operation would publish the given event from an event object.
@param event !Event
@retval event !Event
"""
event = self.event_publisher.publish_event_object(event_object=event)
log.info("The publish_event_object(event) method of UNS was used to publish the event: %s", event )
return event
def publish_event(self, event_type='', origin='', origin_type='', sub_type='', description='', event_attrs=None):
"""
This service operation assembles a new Event object based on event_type
(e.g. via the pyon Event publisher) with optional additional attributes from a event_attrs
dict of arbitrary attributes.
@param event_type str
@param origin str
@param origin_type str
@param sub_type str
@param description str
@param event_attrs dict
@retval event !Event
"""
event_attrs = event_attrs or {}
event = self.event_publisher.publish_event(
event_type = event_type,
origin = origin,
origin_type = origin_type,