Exemple #1
0
    def __init__(self, name, host, ruleset_definition):
        self._actions = {}
        self._name = name
        self._host = host
        for rule_name, rule in ruleset_definition.iteritems():
            action = rule['run']
            del rule['run']
            if (isinstance(action, Promise)):
                self._actions[rule_name] = action.root
            elif (hasattr(action, '__call__')):
                self._actions[rule_name] = Promise(action)
            else:
                self._actions[rule_name] = Fork(host.register_rulesets(name, action))

        self._handle = rules.create_ruleset(name, json.dumps(ruleset_definition))
        self._definition = ruleset_definition
Exemple #2
0
    def __init__(self, name, host, ruleset_definition, state_cache_size):
        self._actions = {}
        self._name = name
        self._host = host
        for rule_name, rule in ruleset_definition.items():
            action = rule['run']
            del rule['run']
            if isinstance(action, str):
                self._actions[rule_name] = Promise(host.get_action(action))
            elif isinstance(action, Promise):
                self._actions[rule_name] = action.root
            elif (hasattr(action, '__call__')):
                self._actions[rule_name] = Promise(action)

        self._handle = rules.create_ruleset(state_cache_size, name, json.dumps(ruleset_definition, ensure_ascii=False))
        self._definition = ruleset_definition
    def __init__(self, name, host, ruleset_definition, state_cache_size):
        self._actions = {}
        self._name = name
        self._host = host
        for rule_name, rule in ruleset_definition.items():
            action = rule['run']
            del rule['run']
            if isinstance(action, str):
                self._actions[rule_name] = Promise(host.get_action(action))
            elif isinstance(action, Promise):
                self._actions[rule_name] = action.root
            elif (hasattr(action, '__call__')):
                self._actions[rule_name] = Promise(action)

        self._handle = rules.create_ruleset(state_cache_size, name, json.dumps(ruleset_definition, ensure_ascii=False))
        self._definition = ruleset_definition
Exemple #4
0
    def __init__(self, name, host, ruleset_definition):
        self._actions = {}
        self._name = name
        self._host = host
        for rule_name, rule in ruleset_definition.iteritems():
            action = rule['run']
            del rule['run']
            if (isinstance(action, Promise)):
                self._actions[rule_name] = action.root
            elif (hasattr(action, '__call__')):
                self._actions[rule_name] = Promise(action)
            else:
                self._actions[rule_name] = Fork(
                    host.register_rulesets(name, action))

        self._handle = rules.create_ruleset(name,
                                            json.dumps(ruleset_definition))
        self._definition = ruleset_definition
Exemple #5
0
import rules
import json

handle = rules.create_ruleset(
    'rules',
    json.dumps({
        'r1': {
            'whenSome': {
                '$and': [{
                    'amount': 10000
                }, {
                    'subject': 'approve'
                }]
            },
            'run': 'pending'
        }
    }))

rules.delete_ruleset(handle)
print('created rules1')

handle = rules.create_ruleset(
    'rules',
    json.dumps({
        'r1': {
            'when': {
                '$and': [{
                    'amount': 10000
                }, {
                    'subject': 'approve'
                }]
Exemple #6
0
import rules
import json

print('books1 *****')
handle = rules.create_ruleset(5, 'books1',  json.dumps({
    'ship': {
        'all': [
            {'order': {
                '$and': [
                    {'$lte': {'amount': 1000}},
                    {'country': 'US'},
                    {'currency': 'US'},
                    {'seller': 'bookstore'} 
                ]
            }},
            {'available':  {
                '$and': [
                    {'item': 'book'},
                    {'country': 'US'},
                    {'seller': 'bookstore'},
                    {'status': 'available'} 
                ]
            }}
        ]
    }
}))
rules.bind_ruleset(6379,  0, "localhost", None, handle)

rules.assert_event(handle, json.dumps({
    'id': 1,
    'sid': 'first',
Exemple #7
0
import rules
import json

handle = rules.create_ruleset('rules',  json.dumps({ 
    'r1': {
        'whenSome': {'$and': [{'amount': 10000}, {'subject': 'approve'}]}, 
        'run': 'pending' 
   }
}))

rules.delete_ruleset(handle)
print('created rules1')

handle = rules.create_ruleset('rules',  json.dumps({ 
    'r1': {
        'when': {'$and': [{'amount': 10000}, {'subject': 'approve'}]}, 
        'run': 'pending' 
   }
}))

rules.delete_ruleset(handle)
print('created rules2')

handle = rules.create_ruleset('rules',  json.dumps({ 
    'r1': {
        'when': {'$or': [{'amount': 10000}, {'subject': 'ok'}]}, 
        'run': 'pending' 
   }
}))

rules.delete_ruleset(handle)
Exemple #8
0
handle = rules.create_ruleset(
    'books1',
    json.dumps({
        'ship': {
            'whenAll': {
                'order': {
                    '$and': [{
                        '$lte': {
                            'amount': 1000
                        }
                    }, {
                        'country': 'US'
                    }, {
                        'currency': 'US'
                    }, {
                        'seller': 'bookstore'
                    }]
                },
                'available': {
                    '$and': [{
                        'item': 'book'
                    }, {
                        'country': 'US'
                    }, {
                        'seller': 'bookstore'
                    }, {
                        'status': 'available'
                    }]
                }
            },
            'run': 'ship'
        }
    }))
Exemple #9
0
import json

print('books1 *****')

handle = rules.create_ruleset('books1',  json.dumps({
    'ship': {
        'whenAll': {
            'order': {
                '$and': [
                    {'$lte': {'amount': 1000}},
                    {'country': 'US'},
                    {'currency': 'US'},
                    {'seller': 'bookstore'} 
                ]
            },
            'available':  {
                '$and': [
                    {'item': 'book'},
                    {'country': 'US'},
                    {'seller': 'bookstore'},
                    {'status': 'available'} 
                ]
            }
        },
        'run': 'ship'
    }
}))

rules.bind_ruleset(handle, None , 0 , '/tmp/redis.sock')

rules.assert_event(handle, json.dumps({