Beispiel #1
0
def init_low_level(context, feature):

    # Fake session registration
    _peers = {
        "sender": {
            "address": "source_peer",
            "user": context.user,
            "queue": Queue()
        },
        "receiver": {
            "address": "destination_peer",
            "user": context.user,
            "queue": Queue()
        }
    }

    context.monitor = Monitor(_handler=BrokerWebSocketHandler(
        _process_id=context.peer_process_id,
        _peers=_peers,
        _schema_tools=context.db_access.schema_tools,
        _address="broker",
        _database_access=context.db_access))

    of.common.messaging.websocket.monitor = context.monitor

    # Register mockup WebSockets
    context.sender = MockupWebSocket(session_id="sender", context=context)
    context.receiver = MockupWebSocket(session_id="receiver", context=context)

    def _stop_broker():
        pass

    if feature.name in [
            "Process Management", "Process definition management API"
    ]:
        context.node = Node(_database_access=context.db_access,
                            _rights=[id_right_admin_nodes])
        context.control = Control(context.db_access,
                                  context.node,
                                  _send_queue=context.monitor.queue,
                                  _stop_broker=None,
                                  _address="",
                                  _process_id=zero_object_id)
Beispiel #2
0
 def __init__(self, _database_access):
     self._node = Node(_database_access)
Beispiel #3
0
class CherryPyNode(object):
    """
    The CherryPyNode class is a plugin for CherryPy to expose the Optimal Framework Node API.
    Each function maps to counterparts in the Node class.

    """
    # A local instance of the Node-class
    _node = None

    def __init__(self, _database_access):
        self._node = Node(_database_access)

    @cherrypy.expose
    @cherrypy.tools.json_in()
    @cherrypy.tools.json_out(content_type='application/json')
    @aop_check_session
    def save(self, **kwargs):
        return self._node.save(cherrypy.request.json, kwargs["_user"])

    @cherrypy.expose
    @cherrypy.tools.json_in()
    @cherrypy.tools.json_out(content_type='application/json')
    @aop_check_session
    def find(self, **kwargs):
        return self._node.find(cherrypy.request.json, kwargs["_user"])

    @cherrypy.expose
    @cherrypy.tools.json_in()
    @cherrypy.tools.json_out(content_type='application/json')
    @aop_check_session
    def lookup(self, **kwargs):
        return self._node.lookup(cherrypy.request.json, kwargs["_user"])

    @cherrypy.expose
    @cherrypy.tools.json_in()
    @cherrypy.tools.json_out(content_type='application/json')
    @aop_check_session
    def remove(self, **kwargs):
        return self._node.remove(cherrypy.request.json, kwargs["_user"])

    @cherrypy.expose
    @cherrypy.tools.json_in()
    @cherrypy.tools.json_out(content_type='application/json')
    @aop_check_session
    def load_node(self, **kwargs):
        return self._node.load_node(cherrypy.request.json, kwargs["_user"])

    @cherrypy.expose
    @cherrypy.tools.json_in()
    @cherrypy.tools.json_out(content_type='application/json')
    @aop_check_session
    def load_children(self, **kwargs):
        return self._node.load_children(cherrypy.request.json, kwargs["_user"])

    @cherrypy.expose
    @cherrypy.tools.json_in()
    @cherrypy.tools.json_out(content_type='application/json')
    @aop_check_session
    def history(self, **kwargs):
        return self._node.history(cherrypy.request.json, kwargs["_user"])


    @cherrypy.expose
    @cherrypy.tools.json_in()
    @cherrypy.tools.json_out(content_type='application/json')
    @aop_check_session
    def get_templates(self, **kwargs):
        return self._node.get_templates(cherrypy.request.json["schemaRef"], kwargs["_user"])


    @cherrypy.expose
    @cherrypy.tools.json_out(content_type='application/json')
    @aop_check_session
    def get_schemas(self, **kwargs):
        return self._node.get_schemas(kwargs["_user"])


    @cherrypy.expose
    @cherrypy.tools.json_out(content_type='application/json')
    @aop_check_session
    def get_jsf_forms(self, **kwargs):
        return self._node.get_jsf_forms(kwargs["_user"])