本文整理汇总了Python中interface.services.dm.iuser_notification_service.UserNotificationServiceClient.create_notification方法的典型用法代码示例。如果您正苦于以下问题:Python UserNotificationServiceClient.create_notification方法的具体用法?Python UserNotificationServiceClient.create_notification怎么用?Python UserNotificationServiceClient.create_notification使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类interface.services.dm.iuser_notification_service.UserNotificationServiceClient
的用法示例。
在下文中一共展示了UserNotificationServiceClient.create_notification方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: TestActivateInstrumentIntegration
# 需要导入模块: from interface.services.dm.iuser_notification_service import UserNotificationServiceClient [as 别名]
# 或者: from interface.services.dm.iuser_notification_service.UserNotificationServiceClient import create_notification [as 别名]
class TestActivateInstrumentIntegration(IonIntegrationTestCase):
def setUp(self):
# Start container
super(TestActivateInstrumentIntegration, self).setUp()
config = DotDict()
self._start_container()
self.container.start_rel_from_url('res/deploy/r2deploy.yml', config)
# Now create client to DataProductManagementService
self.rrclient = ResourceRegistryServiceClient(node=self.container.node)
self.damsclient = DataAcquisitionManagementServiceClient(node=self.container.node)
self.pubsubcli = PubsubManagementServiceClient(node=self.container.node)
self.imsclient = InstrumentManagementServiceClient(node=self.container.node)
self.dpclient = DataProductManagementServiceClient(node=self.container.node)
self.datasetclient = DatasetManagementServiceClient(node=self.container.node)
self.processdispatchclient = ProcessDispatcherServiceClient(node=self.container.node)
self.dataprocessclient = DataProcessManagementServiceClient(node=self.container.node)
self.dataproductclient = DataProductManagementServiceClient(node=self.container.node)
self.dataretrieverclient = DataRetrieverServiceClient(node=self.container.node)
self.dataset_management = DatasetManagementServiceClient()
self.usernotificationclient = UserNotificationServiceClient()
#setup listerner vars
self._data_greenlets = []
self._no_samples = None
self._samples_received = []
self.event_publisher = EventPublisher()
def create_logger(self, name, stream_id=''):
# logger process
producer_definition = ProcessDefinition(name=name+'_logger')
producer_definition.executable = {
'module':'ion.processes.data.stream_granule_logger',
'class':'StreamGranuleLogger'
}
logger_procdef_id = self.processdispatchclient.create_process_definition(process_definition=producer_definition)
configuration = {
'process':{
'stream_id':stream_id,
}
}
pid = self.processdispatchclient.schedule_process(process_definition_id=logger_procdef_id,
configuration=configuration)
return pid
def _create_notification(self, user_name = '', instrument_id='', product_id=''):
#--------------------------------------------------------------------------------------
# Make notification request objects
#--------------------------------------------------------------------------------------
notification_request_1 = NotificationRequest( name= 'notification_1',
origin=instrument_id,
origin_type="instrument",
event_type='ResourceLifecycleEvent')
notification_request_2 = NotificationRequest( name='notification_2',
origin=product_id,
origin_type="data product",
event_type='DetectionEvent')
#--------------------------------------------------------------------------------------
# Create a user and get the user_id
#--------------------------------------------------------------------------------------
user = UserInfo()
user.name = user_name
user.contact.email = '%[email protected]' % user_name
user_id, _ = self.rrclient.create(user)
#--------------------------------------------------------------------------------------
# Create notification
#--------------------------------------------------------------------------------------
self.usernotificationclient.create_notification(notification=notification_request_1, user_id=user_id)
self.usernotificationclient.create_notification(notification=notification_request_2, user_id=user_id)
log.debug( "test_activateInstrumentSample: create_user_notifications user_id %s", str(user_id) )
return user_id
def get_datastore(self, dataset_id):
dataset = self.datasetclient.read_dataset(dataset_id)
datastore_name = dataset.datastore_name
datastore = self.container.datastore_manager.get_datastore(datastore_name, DataStore.DS_PROFILE.SCIDATA)
return datastore
def _check_computed_attributes_of_extended_instrument(self, expected_instrument_device_id = '',extended_instrument = None):
# Verify that computed attributes exist for the extended instrument
self.assertIsInstance(extended_instrument.computed.last_data_received_datetime, ComputedFloatValue)
self.assertIsInstance(extended_instrument.computed.uptime, ComputedStringValue)
#.........这里部分代码省略.........
示例2: TestDataProductManagementServiceIntegration
# 需要导入模块: from interface.services.dm.iuser_notification_service import UserNotificationServiceClient [as 别名]
# 或者: from interface.services.dm.iuser_notification_service.UserNotificationServiceClient import create_notification [as 别名]
#.........这里部分代码省略.........
# user_2
user_2 = UserInfo()
user_2.name = 'user_2'
user_2.contact.email = '[email protected]'
#user1 is a complete user
self.subject = "/DC=org/DC=cilogon/C=US/O=ProtectNetwork/CN=Roger Unwin A254"
actor_identity_obj = IonObject("ActorIdentity", {"name": self.subject})
actor_id = self.identcli.create_actor_identity(actor_identity_obj)
user_credentials_obj = IonObject("UserCredentials", {"name": self.subject})
self.identcli.register_user_credentials(actor_id, user_credentials_obj)
user_id_1 = self.identcli.create_user_info(actor_id, user_1)
user_id_2, _ = self.rrclient.create(user_2)
delivery_config1a = IonObject(OT.DeliveryConfiguration, email='[email protected]', mode=DeliveryModeEnum.EMAIL, frequency=NotificationFrequencyEnum.BATCH)
delivery_config1b = IonObject(OT.DeliveryConfiguration, email='[email protected]', mode=DeliveryModeEnum.EMAIL, frequency=NotificationFrequencyEnum.BATCH)
notification_request_1 = NotificationRequest( name = "notification_1",
origin=dp_id,
origin_type="type_1",
event_type=OT.ResourceLifecycleEvent,
disabled_by_system = False,
delivery_configurations=[delivery_config1a, delivery_config1b])
delivery_config2a = IonObject(OT.DeliveryConfiguration, email='[email protected]', mode=DeliveryModeEnum.EMAIL, frequency=NotificationFrequencyEnum.BATCH)
delivery_config2b = IonObject(OT.DeliveryConfiguration, email='[email protected]', mode=DeliveryModeEnum.EMAIL, frequency=NotificationFrequencyEnum.BATCH)
notification_request_2 = NotificationRequest( name = "notification_2",
origin=dp_id,
origin_type="type_2",
disabled_by_system = False,
event_type=OT.DetectionEvent,
delivery_configurations=[delivery_config2a, delivery_config2b])
notification_request_1_id = self.unsc.create_notification(notification=notification_request_1, user_id=user_id_1)
notification_request_2_id = self.unsc.create_notification(notification=notification_request_2, user_id=user_id_2)
self.unsc.delete_notification(notification_request_1_id)
# test reading a non-existent data product
log.debug('reading non-existent data product')
with self.assertRaises(NotFound):
dp_obj = self.dpsc_cli.read_data_product('some_fake_id')
# update a data product (tests read also)
log.debug('Updating data product')
# first get the existing dp object
dp_obj = self.dpsc_cli.read_data_product(dp_id)
# now tweak the object
dp_obj.description = 'the very first dp'
dp_obj.geospatial_bounds.geospatial_latitude_limit_north = 20.0
dp_obj.geospatial_bounds.geospatial_latitude_limit_south = -20.0
dp_obj.geospatial_bounds.geospatial_longitude_limit_east = 20.0
dp_obj.geospatial_bounds.geospatial_longitude_limit_west = -20.0
# now write the dp back to the registry
update_result = self.dpsc_cli.update_data_product(dp_obj)
# now get the dp back to see if it was updated
dp_obj = self.dpsc_cli.read_data_product(dp_id)
self.assertEquals(dp_obj.description,'the very first dp')
self.assertEquals(dp_obj.geospatial_point_center.lat, 0.0)
log.debug('Updated data product %s', dp_obj)
示例3: RealTimeNotificationTestCase
# 需要导入模块: from interface.services.dm.iuser_notification_service import UserNotificationServiceClient [as 别名]
# 或者: from interface.services.dm.iuser_notification_service.UserNotificationServiceClient import create_notification [as 别名]
class RealTimeNotificationTestCase(IonIntegrationTestCase):
def setUp(self):
self._start_container()
# patch the CFG service.user_notification.max_daily_notifications value so we only test 10
original_CFG_max = CFG.get_safe("service.user_notification.max_daily_notifications", 1000)
CFG['service']['user_notification']['max_daily_notifications'] = 10
self.container.start_rel_from_url('res/deploy/r2deploy.yml')
self.object_store = self.container.object_store
self.resource_registry = self.container.resource_registry
self.user_notification = UserNotificationServiceClient()
self.event_publisher = EventPublisher()
# create UserInfo object (user)
user = UserInfo()
user.name = 'Iceman'
user.contact.email = '[email protected]'
user_id, _ = self.resource_registry.create(user)
self.user = self.resource_registry.read(user_id)
# create NotificationRequest objects (notifications)
# 4 notifications are created:
# REAL_TIME, EMAIL(user default via UserInfo)
# REAL_TIME, EMAIL(in DeliveryConfiguration)
# DISABLED, EMAIL(in DeliveryConfiguration)
# REAL_TIME, SMS(in DeliveryConfiguration)
# REAL_TIME, EMAIL(user default via UserInfo)
delivery_configuration = IonObject(OT.DeliveryConfiguration,
mode=DeliveryModeEnum.EMAIL,
frequency=NotificationFrequencyEnum.REAL_TIME)
notification_request = IonObject(OT.NotificationRequest,
name='REAL_TIME to default UserInfo email',
type=NotificationTypeEnum.SIMPLE,
origin='Miramar',
event_type=OT.ResourceLifecycleEvent,
delivery_configurations=[delivery_configuration])
# store this notification_id to check disabled_by_system status later
self.notification_id = self.user_notification.create_notification(notification=notification_request, user_id=self.user._id)
# REAL_TIME, EMAIL(in DeliveryConfiguration), 10 notifications/day max
delivery_configuration = IonObject(OT.DeliveryConfiguration,
email='[email protected]',
mode=DeliveryModeEnum.EMAIL,
frequency=NotificationFrequencyEnum.REAL_TIME)
notification_request = IonObject(OT.NotificationRequest,
name='REAL_TIME to alternate email, 10 notifications/day max',
type=NotificationTypeEnum.SIMPLE,
origin="Miramar",
event_type=OT.ResourceLifecycleEvent,
delivery_configurations=[delivery_configuration])
self.user_notification.create_notification(notification=notification_request, user_id=self.user._id)
# DISABLED, EMAIL(in DeliveryConfiguration)
delivery_configuration = IonObject(OT.DeliveryConfiguration,
email='[email protected]',
mode=DeliveryModeEnum.EMAIL,
frequency=NotificationFrequencyEnum.DISABLED)
notification_request = IonObject(OT.NotificationRequest,
name='DISABLED to alternate email',
type=NotificationTypeEnum.SIMPLE,
origin="Miramar",
event_type=OT.ResourceLifecycleEvent,
delivery_configurations=[delivery_configuration])
self.user_notification.create_notification(notification=notification_request, user_id=self.user._id)
# REAL_TIME, SMS(in DeliveryConfiguration)
delivery_configuration = IonObject(OT.DeliveryConfiguration,
email='[email protected]',
mode=DeliveryModeEnum.SMS,
frequency=NotificationFrequencyEnum.REAL_TIME)
notification_request = IonObject(OT.NotificationRequest,
name='SMS to alternate email',
type=NotificationTypeEnum.SIMPLE,
origin="Miramar",
event_type=OT.ResourceLifecycleEvent,
delivery_configurations=[delivery_configuration])
self.user_notification.create_notification(notification=notification_request, user_id=self.user._id)
def test_realtime_notifications(self):
# monkey patch smtplib.SMTP to capture sent emails
original_SMTP = smtplib.SMTP # store original for restoration
class MonkeyPatchSMTP(object):
def __init__(self, address, host):
self.address = address
self.host = host
def login(self,username,password):
self.username = username
self.password = password
def sendmail(self,from_addr, to_addrs, msg):
global outbox
outbox.append((from_addr, to_addrs, msg,time.time()))
return []
def quit(self):
pass
#.........这里部分代码省略.........
示例4: UserNotificationIntTest
# 需要导入模块: from interface.services.dm.iuser_notification_service import UserNotificationServiceClient [as 别名]
# 或者: from interface.services.dm.iuser_notification_service.UserNotificationServiceClient import create_notification [as 别名]
#.........这里部分代码省略.........
self.assertEquals(message_dict['Description'].rstrip('\r'), 'Event was detected by DetectionEventProcessor')
@unittest.skip('interface has changed!')
def test_find_event_types_for_resource(self):
# create a dataset object in the RR to pass into the UNS method
dataset_object = IonObject(RT.DataSet, name="dataset1")
dataset_id, version = self.rrc.create(dataset_object)
# get the list of event types for the dataset
events = self.unsc.find_event_types_for_resource(dataset_id)
log.debug("dataset events = " + str(events))
if not events == ['dataset_supplement_added', 'dataset_change']:
self.fail("failed to return correct list of event types")
# try to pass in an id of a resource that doesn't exist (should fail)
try:
events = self.unsc.find_event_types_for_resource("bogus_id")
self.fail("failed to detect non-existant resource")
except:
pass
@unittest.skip('interface has changed!')
def test_create_two_user_notifications(self):
# create user with email address in RR
user_identty_object = IonObject(RT.ActorIdentity, name="user1")
user_id = self.imc.create_actor_identity(user_identty_object)
user_info_object = IonObject(RT.UserInfo, {"name":"user1_info", "contact":{"email":'[email protected]'}})
self.imc.create_user_info(user_id, user_info_object)
# create first notification
notification_object1 = IonObject(RT.NotificationRequest, {"name":"notification1",
"origin_list":['Some_Resource_Agent_ID1'],
"events_list":['ResourceLifecycleEvent']})
notification_id1 = self.unsc.create_notification(notification_object1, user_id)
# create second notification
notification_object2 = IonObject(RT.NotificationRequest, {"name":"notification2",
"origin_list":['Some_Resource_Agent_ID2'],
"events_list":['DataEvent']})
notification_id2 = self.unsc.create_notification(notification_object2, user_id)
# read the notifications back and check that they are correct
n1 = self.unsc.read_notification(notification_id1)
if n1.name != notification_object1.name or \
n1.origin_list != notification_object1.origin_list or \
n1.events_list != notification_object1.events_list:
self.fail("notification was not correct")
n2 = self.unsc.read_notification(notification_id2)
if n2.name != notification_object2.name or \
n2.origin_list != notification_object2.origin_list or \
n2.events_list != notification_object2.events_list:
self.fail("notification was not correct")
@unittest.skip('interface has changed!')
def test_delete_user_notifications(self):
# create user with email address in RR
user_identty_object = IonObject(RT.ActorIdentity, name="user1")
user_id = self.imc.create_actor_identity(user_identty_object)
user_info_object = IonObject(RT.UserInfo, {"name":"user1_info", "contact":{"email":'[email protected]'}})
self.imc.create_user_info(user_id, user_info_object)
# create first notification
notification_object1 = IonObject(RT.NotificationRequest, {"name":"notification1",
"origin_list":['Some_Resource_Agent_ID1'],
"events_list":['ResourceLifecycleEvent']})
notification1_id = self.unsc.create_notification(notification_object1, user_id)
# create second notification
示例5: UserNotificationIntTest
# 需要导入模块: from interface.services.dm.iuser_notification_service import UserNotificationServiceClient [as 别名]
# 或者: from interface.services.dm.iuser_notification_service.UserNotificationServiceClient import create_notification [as 别名]
class UserNotificationIntTest(IonIntegrationTestCase):
def setUp(self):
self._start_container()
self.container.start_rel_from_url('res/deploy/r2dm.yml')
self.unsc = UserNotificationServiceClient(node=self.container.node)
self.rrc = ResourceRegistryServiceClient(node=self.container.node)
self.imc = IdentityManagementServiceClient(node=self.container.node)
def xtest_find_event_types_for_resource(self):
dataset_object = IonObject(RT.DataSet, name="dataset1")
dataset_id, version = self.rrc.create(dataset_object)
events = self.unsc.find_event_types_for_resource(dataset_id)
log.debug("dataset events = " + str(events))
try:
events = self.unsc.find_event_types_for_resource("bogus_id")
self.fail("failed to detect non-existant resource")
except:
pass
def test_create_two_user_notifications(self):
user_identty_object = IonObject(RT.UserIdentity, name="user1")
user_id = self.imc.create_user_identity(user_identty_object)
user_info_object = IonObject(RT.UserInfo, {"name":"user1_info", "contact":{"email":'[email protected]'}})
self.imc.create_user_info(user_id, user_info_object)
notification_object = IonObject(RT.NotificationRequest, {"name":"notification1",
"origin_list":['Some_Resource_Agent_ID1'],
"events_list":['resource_lifecycle']})
self.unsc.create_notification(notification_object, user_id)
notification_object = IonObject(RT.NotificationRequest, {"name":"notification2",
"origin_list":['Some_Resource_Agent_ID2'],
"events_list":['data']})
self.unsc.create_notification(notification_object, user_id)
def test_delete_user_notifications(self):
user_identty_object = IonObject(RT.UserIdentity, name="user1")
user_id = self.imc.create_user_identity(user_identty_object)
user_info_object = IonObject(RT.UserInfo, {"name":"user1_info", "contact":{"email":'[email protected]'}})
self.imc.create_user_info(user_id, user_info_object)
notification_object1 = IonObject(RT.NotificationRequest, {"name":"notification1",
"origin_list":['Some_Resource_Agent_ID1'],
"events_list":['resource_lifecycle']})
notification1_id = self.unsc.create_notification(notification_object1, user_id)
notification_object2 = IonObject(RT.NotificationRequest, {"name":"notification2",
"origin_list":['Some_Resource_Agent_ID2'],
"events_list":['data']})
notification2_id = self.unsc.create_notification(notification_object2, user_id)
self.unsc.delete_notification(notification1_id)
self.unsc.delete_notification(notification2_id)
def test_find_user_notifications(self):
user_identty_object = IonObject(RT.UserIdentity, name="user1")
user_id = self.imc.create_user_identity(user_identty_object)
user_info_object = IonObject(RT.UserInfo, {"name":"user1_info", "contact":{"email":'[email protected]'}})
self.imc.create_user_info(user_id, user_info_object)
notification_object = IonObject(RT.NotificationRequest, {"name":"notification1",
"origin_list":['Some_Resource_Agent_ID1'],
"events_list":['resource_lifecycle']})
self.unsc.create_notification(notification_object, user_id)
notification_object = IonObject(RT.NotificationRequest, {"name":"notification2",
"origin_list":['Some_Resource_Agent_ID2'],
"events_list":['data']})
self.unsc.create_notification(notification_object, user_id)
notifications = self.unsc.find_notifications_by_user(user_id)
for n in notifications:
log.debug("n = " +str(n))
def test_update_user_notification(self):
user_identty_object = IonObject(RT.UserIdentity, name="user1")
user_id = self.imc.create_user_identity(user_identty_object)
user_info_object = IonObject(RT.UserInfo, {"name":"user1_info", "contact":{"email":'[email protected]'}})
self.imc.create_user_info(user_id, user_info_object)
notification_object = IonObject(RT.NotificationRequest, {"name":"notification1",
"origin_list":['Some_Resource_Agent_ID1'],
"events_list":['resource_lifecycle']})
notification_id = self.unsc.create_notification(notification_object, user_id)
notification = self.rrc.read(notification_id)
notification.origin_list = ['Some_Resource_Agent_ID5']
self.unsc.update_notification(notification)
def test_send_notification_emails(self):
user_identty_object = IonObject(RT.UserIdentity, name="user1")
user_id = self.imc.create_user_identity(user_identty_object)
user_info_object = IonObject(RT.UserInfo, {"name":"user1_info", "contact":{"email":'[email protected]'}})
self.imc.create_user_info(user_id, user_info_object)
notification_object = IonObject(RT.NotificationRequest, {"name":"notification1",
"origin_list":['Some_Resource_Agent_ID1'],
"events_list":['resource_lifecycle']})
self.unsc.create_notification(notification_object, user_id)
notification_object = IonObject(RT.NotificationRequest, {"name":"notification2",
"origin_list":['Some_Resource_Agent_ID2'],
"events_list":['data']})
self.unsc.create_notification(notification_object, user_id)
rle_publisher = ResourceLifecycleEventPublisher()
rle_publisher.create_and_publish_event(origin='Some_Resource_Agent_ID1', description="RLE test event")
de_publisher = DataEventPublisher()
de_publisher.create_and_publish_event(origin='Some_Resource_Agent_ID2', description="DE test event")
gevent.sleep(1)
def test_find_events(self):
#.........这里部分代码省略.........
示例6: UserNotificationIntTest
# 需要导入模块: from interface.services.dm.iuser_notification_service import UserNotificationServiceClient [as 别名]
# 或者: from interface.services.dm.iuser_notification_service.UserNotificationServiceClient import create_notification [as 别名]
class UserNotificationIntTest(IonIntegrationTestCase):
def setUp(self):
self._start_container()
self.container.start_rel_from_url('res/deploy/r2dm.yml')
self.unsc = UserNotificationServiceClient(node=self.container.node)
self.rrc = ResourceRegistryServiceClient(node=self.container.node)
self.imc = IdentityManagementServiceClient(node=self.container.node)
def test_find_event_types_for_resource(self):
# create a dataset object in the RR to pass into the UNS method
dataset_object = IonObject(RT.DataSet, name="dataset1")
dataset_id, version = self.rrc.create(dataset_object)
# get the list of event types for the dataset
events = self.unsc.find_event_types_for_resource(dataset_id)
log.debug("dataset events = " + str(events))
if not events == ['dataset_supplement_added', 'dataset_change']:
self.fail("failed to return correct list of event types")
# try to pass in an id of a resource that doesn't exist (should fail)
try:
events = self.unsc.find_event_types_for_resource("bogus_id")
self.fail("failed to detect non-existant resource")
except:
pass
def test_create_two_user_notifications(self):
# create user with email address in RR
user_identty_object = IonObject(RT.ActorIdentity, name="user1")
user_id = self.imc.create_actor_identity(user_identty_object)
user_info_object = IonObject(RT.UserInfo, {"name":"user1_info", "contact":{"email":'[email protected]'}})
self.imc.create_user_info(user_id, user_info_object)
# create first notification
notification_object1 = IonObject(RT.NotificationRequest, {"name":"notification1",
"origin_list":['Some_Resource_Agent_ID1'],
"events_list":['ResourceLifecycleEvent']})
notification_id1 = self.unsc.create_notification(notification_object1, user_id)
# create second notification
notification_object2 = IonObject(RT.NotificationRequest, {"name":"notification2",
"origin_list":['Some_Resource_Agent_ID2'],
"events_list":['DataEvent']})
notification_id2 = self.unsc.create_notification(notification_object2, user_id)
# read the notifications back and check that they are correct
n1 = self.unsc.read_notification(notification_id1)
if n1.name != notification_object1.name or \
n1.origin_list != notification_object1.origin_list or \
n1.events_list != notification_object1.events_list:
self.fail("notification was not correct")
n2 = self.unsc.read_notification(notification_id2)
if n2.name != notification_object2.name or \
n2.origin_list != notification_object2.origin_list or \
n2.events_list != notification_object2.events_list:
self.fail("notification was not correct")
def test_delete_user_notifications(self):
# create user with email address in RR
user_identty_object = IonObject(RT.ActorIdentity, name="user1")
user_id = self.imc.create_actor_identity(user_identty_object)
user_info_object = IonObject(RT.UserInfo, {"name":"user1_info", "contact":{"email":'[email protected]'}})
self.imc.create_user_info(user_id, user_info_object)
# create first notification
notification_object1 = IonObject(RT.NotificationRequest, {"name":"notification1",
"origin_list":['Some_Resource_Agent_ID1'],
"events_list":['ResourceLifecycleEvent']})
notification1_id = self.unsc.create_notification(notification_object1, user_id)
# create second notification
notification_object2 = IonObject(RT.NotificationRequest, {"name":"notification2",
"origin_list":['Some_Resource_Agent_ID2'],
"events_list":['DataEvent']})
notification2_id = self.unsc.create_notification(notification_object2, user_id)
# delete both notifications
self.unsc.delete_notification(notification1_id)
self.unsc.delete_notification(notification2_id)
# check that the notifications are not there
try:
n1 = self.unsc.read_notification(notification1_id)
except:
try:
n2 = self.unsc.read_notification(notification2_id)
except:
return
self.fail("failed to delete notifications")
def test_find_user_notifications(self):
# create user with email address in RR
user_identty_object = IonObject(RT.ActorIdentity, name="user1")
user_id = self.imc.create_actor_identity(user_identty_object)
user_info_object = IonObject(RT.UserInfo, {"name":"user1_info", "contact":{"email":'[email protected]'}})
self.imc.create_user_info(user_id, user_info_object)
# create first notification
notification_object = IonObject(RT.NotificationRequest, {"name":"notification1",
"origin_list":['Some_Resource_Agent_ID1'],
"events_list":['ResourceLifecycleEvent']})
#.........这里部分代码省略.........
示例7: TestActivateInstrumentIntegration
# 需要导入模块: from interface.services.dm.iuser_notification_service import UserNotificationServiceClient [as 别名]
# 或者: from interface.services.dm.iuser_notification_service.UserNotificationServiceClient import create_notification [as 别名]
class TestActivateInstrumentIntegration(IonIntegrationTestCase):
def setUp(self):
# Start container
super(TestActivateInstrumentIntegration, self).setUp()
config = DotDict()
config.bootstrap.use_es = True
self._start_container()
self.addCleanup(TestActivateInstrumentIntegration.es_cleanup)
self.container.start_rel_from_url('res/deploy/r2deploy.yml', config)
# Now create client to DataProductManagementService
self.rrclient = ResourceRegistryServiceClient(node=self.container.node)
self.damsclient = DataAcquisitionManagementServiceClient(node=self.container.node)
self.pubsubcli = PubsubManagementServiceClient(node=self.container.node)
self.imsclient = InstrumentManagementServiceClient(node=self.container.node)
self.dpclient = DataProductManagementServiceClient(node=self.container.node)
self.datasetclient = DatasetManagementServiceClient(node=self.container.node)
self.processdispatchclient = ProcessDispatcherServiceClient(node=self.container.node)
self.dataprocessclient = DataProcessManagementServiceClient(node=self.container.node)
self.dataproductclient = DataProductManagementServiceClient(node=self.container.node)
self.dataretrieverclient = DataRetrieverServiceClient(node=self.container.node)
self.dataset_management = DatasetManagementServiceClient()
self.usernotificationclient = UserNotificationServiceClient()
#setup listerner vars
self._data_greenlets = []
self._no_samples = None
self._samples_received = []
self.event_publisher = EventPublisher()
@staticmethod
def es_cleanup():
es_host = CFG.get_safe('server.elasticsearch.host', 'localhost')
es_port = CFG.get_safe('server.elasticsearch.port', '9200')
es = ep.ElasticSearch(
host=es_host,
port=es_port,
timeout=10
)
indexes = STD_INDEXES.keys()
indexes.append('%s_resources_index' % get_sys_name().lower())
indexes.append('%s_events_index' % get_sys_name().lower())
for index in indexes:
IndexManagementService._es_call(es.river_couchdb_delete,index)
IndexManagementService._es_call(es.index_delete,index)
def create_logger(self, name, stream_id=''):
# logger process
producer_definition = ProcessDefinition(name=name+'_logger')
producer_definition.executable = {
'module':'ion.processes.data.stream_granule_logger',
'class':'StreamGranuleLogger'
}
logger_procdef_id = self.processdispatchclient.create_process_definition(process_definition=producer_definition)
configuration = {
'process':{
'stream_id':stream_id,
}
}
pid = self.processdispatchclient.schedule_process(process_definition_id=logger_procdef_id,
configuration=configuration)
return pid
def _create_notification(self, user_name = '', instrument_id='', product_id=''):
#--------------------------------------------------------------------------------------
# Make notification request objects
#--------------------------------------------------------------------------------------
notification_request_1 = NotificationRequest( name= 'notification_1',
origin=instrument_id,
origin_type="instrument",
event_type='ResourceLifecycleEvent')
notification_request_2 = NotificationRequest( name='notification_2',
origin=product_id,
origin_type="data product",
event_type='DetectionEvent')
#--------------------------------------------------------------------------------------
# Create a user and get the user_id
#--------------------------------------------------------------------------------------
user = UserInfo()
user.name = user_name
user.contact.email = '%[email protected]' % user_name
user_id, _ = self.rrclient.create(user)
#--------------------------------------------------------------------------------------
# Create notification
#--------------------------------------------------------------------------------------
#.........这里部分代码省略.........