def cli_rules_create(client, resource_group_name, namespace_name, topic_name, subscription_name, rule_name, action_sql_expression=None, action_compatibility_level=None, action_requires_preprocessing=None, filter_sql_expression=None, filter_requires_preprocessing=None, correlation_id=None, message_id=None, to=None, reply_to=None, label=None, session_id=None, reply_to_session_id=None, content_type=None, requires_preprocessing=None): from azure.mgmt.servicebus.models import Rule, Action, SqlFilter, CorrelationFilter parameters = Rule() parameters.action = Action( sql_expression=action_sql_expression, compatibility_level=action_compatibility_level, requires_preprocessing=action_requires_preprocessing ) parameters.sql_filter = SqlFilter( sql_expression=filter_sql_expression, requires_preprocessing=filter_requires_preprocessing ) parameters.correlation_filter = CorrelationFilter( correlation_id=correlation_id, to=to, message_id=message_id, reply_to=reply_to, label=label, session_id=session_id, reply_to_session_id=reply_to_session_id, content_type=content_type, requires_preprocessing=requires_preprocessing ) return client.create_or_update( resource_group_name=resource_group_name, namespace_name=namespace_name, topic_name=topic_name, subscription_name=subscription_name, rule_name=rule_name, parameters=parameters)
def test_sb_rule_curd(self, resource_group, location): # List all topic types resource_group_name = resource_group.name # "ardsouza-resourcemovetest-group2" # Create a Namespace namespace_name = "testingpythontestcaserule" namespaceparameter = SBNamespace(location, {'tag1': 'value1', 'tag2': 'value2'}, SBSku(SkuName.standard)) creatednamespace = self.servicebus_client.namespaces.create_or_update(resource_group_name, namespace_name, namespaceparameter,None,True).output self.assertEqual(creatednamespace.name, namespace_name) while (self.servicebus_client.namespaces.get(resource_group_name, namespace_name).provisioning_state != 'Succeeded'): time.sleep(15) continue # Create a Topic topic_name = "testingpythonsdktopic" createtopicresponse = self.servicebus_client.topics.create_or_update(resource_group_name, namespace_name,topic_name,SBTopic()) self.assertEqual(createtopicresponse.name, topic_name) # Get the created Topic gettopicresponse = self.servicebus_client.topics.get(resource_group_name, namespace_name,topic_name) self.assertEqual(gettopicresponse.name, topic_name) # Create subscription subscription_name = "testingpythonsdksubscription" createsubscriptionresponse =self.servicebus_client.subscriptions.create_or_update(resource_group_name, namespace_name,topic_name,subscription_name,SBSubscription()) self.assertEqual(createsubscriptionresponse.name, subscription_name) # Get created subscription getsubscriptionresponse = self.servicebus_client.subscriptions.get(resource_group_name,namespace_name, topic_name,subscription_name) self.assertEqual(getsubscriptionresponse.name, subscription_name) # create rule rule_name = "testingpythonsdkrule" createruleresponse = self.servicebus_client.rules.create_or_update(resource_group_name,namespace_name, topic_name,subscription_name,rule_name,Rule()) self.assertEqual(createruleresponse.name, rule_name) # get create rule getruleresponse = self.servicebus_client.rules.get(resource_group_name, namespace_name,topic_name, subscription_name, rule_name) self.assertEqual(getruleresponse.name, rule_name) # get all rules getallrulesresponse = list(self.servicebus_client.rules.list_by_subscriptions(resource_group_name, namespace_name, topic_name,subscription_name)) self.assertEqual(len(getallrulesresponse),1) # update create rule with filter and action strSqlExp = "myproperty='test'" ruleparameter = Rule(None,FilterType.sql_filter,SqlFilter(sql_expression=strSqlExp),None) createruleresponse = self.servicebus_client.rules.create_or_update(resource_group_name, namespace_name,topic_name, subscription_name, rule_name,ruleparameter) self.assertEqual(createruleresponse.name, rule_name) # Delete the created subscription self.servicebus_client.subscriptions.delete(resource_group_name, namespace_name, topic_name, subscription_name) # delete the Topic self.servicebus_client.topics.delete(resource_group_name, namespace_name, topic_name) # Delete the create namespace deletenamespace = self.servicebus_client.namespaces.delete(resource_group_name, namespace_name,None,True).output