def init(): rpc = JsonRpc() rpc['hello'] = hello rpc['catalog.get'] = catalog.get rpc['catalog.append'] = catalog.append rpc['catalog.update'] = catalog.update rpc['catalog.remove'] = catalog.remove rpc['catalog.drop'] = catalog.drop return rpc
def test_extra_vars(): rpc = JsonRpc() rpc['add'] = lambda a, b: a + b args = {'a': 1} result = rpc( { 'jsonrpc': '2.0', 'method': 'add', 'id': 'test-rpc', 'params': args }, b=3) assert result['result'] == 4
from subprocess import Popen, PIPE import subprocess import json import re import unicodedata from jsonrpc2 import JsonRpc rpc = JsonRpc() def broadcast(): # Detectar si el proceso ya esta en uso # Subprocess no permite usar "|" por lo que tenemos que ejecutarlo en dos pasos command1 = Popen(["ps", "-e"], stdout=PIPE) command2 = Popen(["grep", "ping"], stdin=command1.stdout, stdout=PIPE) command1.stdout.close() result = (command2.communicate()[0]) if len(result) is 0: # Si result es 0, no se ha ejecutado print({'jsonrpc': '2.0', 'result': 'In process', 'id': 'broadcast'}) subprocess.Popen( ["ping", "10.0.0.255", "-b", "-I", "eth0", "-c", "5 >/dev/null"], stdout=subprocess.PIPE).communicate()[0] return "Done" else: # Si result es 1, el ping a broadcast ya se ha ejecutado return "In process"
def rpc(): rpc = JsonRpc() rpc['index'] = index rpc['update'] = update_file rpc['fetch'] = fetch_file return rpc
from flask.ext.sqlalchemy import SQLAlchemy from jsonrpc2 import JsonRpc from application.libs.helper_functions import register_class_to_rpc from application.rpc_server import RPCServer from config import ActiveConfig # initialize and configure the flask server app = Flask(__name__) app.config.from_object(ActiveConfig) # set up logger level if not app.debug: logging.getLogger('werkzeug').setLevel(logging.WARNING) # open and intialize or read the database db = SQLAlchemy(app) # initialize rpc mapper mapper = JsonRpc() register_class_to_rpc(RPCServer, mapper) from application import models, views from application.initializers import init_db, init_admin, init_login, init_rest init_db() init_admin(app) init_login(app) init_rest(app)