def load_url_map(path, package, log=None): log = log or logging.getLogger(__name__) url_map = [] our_dir = path[0] for dirpath, dirnames, filenames in os.walk(our_dir): for fname in filenames: root, ext = os.path.splitext(fname) if ext != '.py' or root == '__init__': continue class_path = os.path.join(dirpath, fname) handle_class = imp.load_source(fname, class_path) _url_map = getattr(handle_class, 'url_map', {}) if _url_map: for _url, _handler in _url_map.items(): url_map.append((_url, getattr(handle_class, _handler))) log.info('url map:\n' + '\n'.join(['%20s\t%s' % (_url_map[0], _url_map[1]) \ for _url_map in url_map])) return url_map
#coding=utf8 from ops_sia.api.utils import load_url_map from ops_sia import log as logging LOG = logging.getLogger('api') url_map = load_url_map(__path__, __package__, log=LOG)
import json import tornado.web from ops_sia.plugins.JsonResponses import BaseHander from ops_sia.plugins.code_auth import CodeAuth from ops_sia.utils import get_token from ops_sia.api.auth import auth as Auth from ops_sia.cache import Backend from ops_sia.options import get_options options = get_options() import ops_sia.log as logging LOG = logging.getLogger(__name__) url_map = { r"/auth_code": "AuthCodeApi", # r"/usr/getuserid": "GetIdByUserName" } class AuthCodeApi(BaseHander, Auth.Base): def get(self): session_id = self.get_argument("session_id", "").strip() obj = CodeAuth() img, code_str = obj.gene_code() self.set_header("Content-type", "image/png") self.write(img) cache = Backend()
from ops_sia import log as logging from ops_sia.service import db as service_db auth_opts = [ { "name": "policy", "default": "ops_sia.api.auth.policy", "help": "", "type": str, }, ] options = get_options(auth_opts, 'auth') LOG = logging.getLogger() def load_policy(): option_split = options.policy.split(".") mod = option_split[0] fun = options.policy[options.policy.rfind('.') + 1:] fn_, modpath, desc = imp.find_module(mod) fn_, path, desc = imp.find_module( fun, [os.path.join(modpath, "/".join(option_split[1:-1]))]) return imp.load_module(fun, fn_, path, desc) class BaseAuth(tornado.web.RequestHandler): def __init__(self, application, request, **kwargs): super(BaseAuth, self).__init__(application, request, **kwargs)