Example #1
0
File: dao.py Project: wyl/tarpit
    def _mongo_init(self):
        T_T = O_O.database.mongo
        self._mongo_client = MongoClient(T_T.client).__getattr__(T_T.db)
        self._motor_client = motor.MotorClient(T_T.client).__getattr__(T_T.db)
        self._collection_dict = {(scls.__alias__ or scls.__collection_name__):
                                 scls for scls in MongoBase.__subclasses__()}

        if T_T.run_init:
            for scls in MongoBase.__subclasses__():
                scls.__collection_init__(self._mongo_client)
Example #2
0
def make_db():
    client = motor_tornado.MotorClient(defaults['mongodb_backend_settings']['host'])
    db = None
    try:
        db = client[defaults['mongodb_backend_settings']['database']]
    except InvalidName:
        app_log.error("Database InvalidName")
        IOLoop.current().stop()
        exit()
    return db
Example #3
0
def main():
    MONGO_URL = os.environ.get("MONGO_URL")

    client = motor_tornado.MotorClient(MONGO_URL, retryWrites=False)
    db = client.test

    app = Application([("/", MainHandler), ("/roles", RolesHandler)], db=db)

    http_server = HTTPServer(app)
    http_server.listen(PORT)
    IOLoop.current().start()
Example #4
0
def make_app():
    settings = {
        'cookie_secret': 'dfdfdfd',
        'xsrf_cookies': True,
        'debug': True
    }
    other_db = {
        'mongo': motor_tornado.MotorClient(**Config.get('MONGO_CONF')),
        'redis': redis.StrictRedis()
    }
    return tornado.web.Application([(r'/web', WebHandler, other_db),
                                    (r'/', HtmlHandler),
                                    (r'/static/(.*)', StaticHandler)],
                                   **settings)
Example #5
0
def main():
    MONGO_URL = os.environ.get('MONGO_URL')

    client = motor_tornado.MotorClient(MONGO_URL, retryWrites=False)
    db = client['pybr-roles']

    app = Application([
        ('/', MainHandler),
        ('/roles', RolesHandler),
    ], db=db)

    http_server = HTTPServer(app)
    http_server.listen(PORT)
    IOLoop.current().start()
Example #6
0
 def __init__(self, label):
     assert label in ['user', 'programmer', 'argorithm']
     logger.info(f"Connecting to mongodb collection={label}...")
     if "mongodb+srv" in config.DB_ENDPOINT:
         client = motor_tornado.MotorClient(config.DB_ENDPOINT)
     else:
         client = motor_asyncio.AsyncIOMotorClient(
             config.DB_ENDPOINT,
             port=config.DB_PORT,
             username=config.DB_USERNAME,
             password=config.DB_PASSWORD)
     database = client['argorithmdb']
     self.label = label
     self.collection = database[self.label]
Example #7
0
def main():
    port = 8000

    client = motor_tornado.MotorClient('localhost', 27017)
    db = client.roles_db

    app = Application([
        ('/', MainHandler),
        ('/roles', RolesHandler),
    ], db=db)

    http_server = HTTPServer(app)
    http_server.listen(port)
    print('Listening on http://localhost:%i' % port)
    IOLoop.current().start()
Example #8
0
def create_crudster(api_prefix="/", collection_name="data",
        database_name="crudster", handler=CRUDRequestHandler,
        initialize_database=False, mongodb_uri="mongodb://127.0.0.1:27017",
        **kwargs):

    client = motor_tornado.MotorClient(mongodb_uri)

    if initialize_database:
        client.drop_database(database_name)

    db = client[database_name]

    settings = dict(db=db, collection_name=collection_name)

    return web.Application([
        (r"{}([0-9a-f]{{12}}4[0-9a-f]{{3}}[89ab][0-9a-f]{{15}})?".format(api_prefix), handler),
    ], **settings)
Example #9
0
    def connect(self):
        """建立连接"""

        try:
            self.recorder('INFO', '{obj} connect start'.format(obj=self))
            self.set_idle()
            self._client = motor_tornado.MotorClient(**self.setting)
            if self.db:
                self.select_db(self.db)
            self.isConnect = True
            self.recorder('INFO', '{obj} connect successful'.format(obj=self))
        except ConnectionFailure as e:
            self.recorder(
                'ERROR', '{obj} connect failed [{msg}]'.format(obj=self,
                                                               msg=e))
            self.error()
            raise MongoError
        raise Return(self)
Example #10
0
    def __init__(self, token):
        super().__init__(token)
        self.commands = {
            "/start": self.handle_start,
            "/help": self.handle_help,
            "/stop": self.handle_stop,
            "/add_to_feeder": self.handle_add_to_feeder,
            "/care": self.handle_care,
            '/hunger': self.handle_hunger,
            '/sleep': self.handle_sleep,
            '/play': self.handle_play,
            '/hug': self.handle_hug,
            '/to_show': self.handle_show,
        }

        self.kot_db = mt.MotorClient(teletoken.DB).kotbot

        self.kot_chats = {}
        self.show = cat_show.CatShow(self.kot_db.cats)
Example #11
0
    def initialize_pool(*args, **kwargs):
        """
        创建 mongo 连接, 连接参数参照 pymongo

        min_connections: 5
        max_connections: 20

        :param args:
        :param kwargs:
        :return:
        """
        MongoTK.connection_pool = motor_tornado.MotorClient(
            *args,
            # maxPoolSize=1,
            # minPoolSize=5,
            # socketTimeoutMS=2000,
            connectTimeoutMS=1000,
            retryWrites=True,
            appname="GCloud",
            **kwargs)
Example #12
0
def setup_db():
    m1 = os.environ['MONGO1_ADDR']
    m2 = os.environ['MONGO2_ADDR']
    m3 = os.environ['MONGO3_ADDR']
    mongo_port = os.environ['MONGO_PORT']
    mongo_usr = os.environ['MONGO_USR']
    mongo_pwd = os.environ['MONGO_PWD']
    mongo_rs = os.environ['MONGO_RS']

    mongo_uri = 'mongodb://'
    mongo_uri += mongo_usr + ':'
    mongo_uri += mongo_pwd + '@'
    mongo_uri += m1 + ':' + mongo_port + ','
    mongo_uri += m2 + ':' + mongo_port + ','
    mongo_uri += m3 + ':' + mongo_port
    mongo_uri += '/?replicaSet=' + mongo_rs

    return motor_tornado.MotorClient(\
        mongo_uri,
        ssl=True,
        ssl_cert_reqs=ssl.CERT_NONE
    )
def make_app():
    parse_command_line()

    gen_log.info('upload path:{0}'.format(UPLOAD_DIR))
    #db = motor_tornado.MotorClient('169.24.2.63', 27017).xlearning_job
    db = motor_tornado.MotorClient(options.mongo_host,
                                   options.mongo_port).xlearning_job
    setting = {
        "debug": True,
        "static_file": path_join('dist'),
        #"static_url_prefix": '/dist/'
    }
    handlers = [
        url(r'/', IndexHandler),
        url(r'/api/hello', HelloHandler),
        url(r'/dist/(.*)', StaticFileHandler, {"path": path_join('dist')}),
        url(r'/api/upload/model', FileUploadHandler),
        url(r'/api/job/create', JobSubmitHandler),
        url(r'/api/jobs', JobHandler),
    ]
    app = Application(handlers=handlers, **setting)
    app.db = db
    app.listen(options.port)
    IOLoop.current().start()
Example #14
0
def main():
    # port = 8000
    port = int(os.environ.get('PORT'))
    # client = motor_tornado.MotorClient('localhost', 27017)
    username = config('USERNAME')
    password = config('PASSWORD')
    mlab = config('MLAB')
    # client =
    # motor_tornado.MotorClient(f'mongodb+srv://{username}:{password}@{mlab}/test?retryWrites=true&w=majority')
    client = motor_tornado.MotorClient(config('MONGO_URL'))
    # client =
    # f'mongodb+srv://{username}:{password}@{mlab}/test?retryWrites=true&w=majority'
    # db = client.roles_db
    db = client['pybrdb']

    app = Application([
        ('/', MainHandler),
        ('/roles', RolesHandler),
    ], db=db)

    http_server = HTTPServer(app)
    http_server.listen(port)
    print('Listening on http://localhost:%i' % port)
    IOLoop.current().start()
Example #15
0
from SimpleWebSocketServer import SimpleWebSocketServer, WebSocket
from motor import motor_tornado
from tornado import ioloop, gen
from tornado.ioloop import IOLoop
import time
from bson.objectid import ObjectId
from functools import partial
import robot_conn
#import ardnet

mc_client = motor_tornado.MotorClient(
    "mongodb://*****:*****@ds135798.mlab.com:35798/gspd",
    connectTimeoutMS=30000,
    socketTimeoutMS=None,
    socketKeepAlive=True)
db = mc_client.gspd

global itemsInDB
global amt

# # # # # # # # # # # # # # # # # #
# MARK - Websocket interaction with client
# # # # # # # # # # # # # # # # # #


class SimpleEcho(WebSocket):
    def handleMessage(client):
        parameters = client.data.split('|')
        command = parameters[0]

        print(client.data)
Example #16
0
File: db.py Project: twd2/SmartD
 def __new__(cls):
     if not cls._instance:
         client = motor_tornado.MotorClient(options.options.db_host)
         cls._instance = motor_tornado.MotorDatabase(
             client, options.options.db_name)
     return cls._instance
Example #17
0
def mongo_storage(args):
    client = motor_tornado.MotorClient(args.mongodb_uri)
    if args.reset_database:
        client.drop_database(args.database_name)
    db = client[args.database_name]
    return MongoStorage(db, args.database_name)
Example #18
0
# -*- coding: utf-8 -*-
"""
模型
"""
import aiodocker
from motor import motor_tornado

from conf import Config

docker_remote_url = "http://{0}:{1}".format(Config.docker_remote_ip, Config.docker_remote_port)

DockerClient = aiodocker.Docker(docker_remote_url)

MongoClient = motor_tornado.MotorClient(Config.mongdb_IP, Config.mongdb_port)

DBClient = MongoClient.DockerLab
Example #19
0
from tornado.ioloop import IOLoop
from tornado.web import RequestHandler, Application
from motor import motor_tornado
import dns

client = motor_tornado.MotorClient(
    'mongodb+srv://sysdba:[email protected]/test?retryWrites=true&w=majority'
)

db = client['teste']


class MainHandler(RequestHandler):
    def get(self):
        document = {'key': 'value'}
        db = self.settings['db']
        db['pybr'].insert_one(document)
        self.write('E aí galera da Python Brasil 2019!')


if __name__ == '__main__':
    app = Application([('/', MainHandler)], db=db)
    app.listen(8000)
    IOLoop.current().start()
Example #20
0
from tornado.web import RequestHandler,Application,StaticFileHandler,url
import tornado.ioloop
import motor.motor_tornado as motor
import os
import datetime

db = motor.MotorClient("mongodb://localhost:27017/")


class home(RequestHandler):
    def get(self):
        self.render("home.html")

class register(RequestHandler):
    def get(self):
        self.render("register.html",error=None)

    async def post(self):
        user = db["web"]["user"]
        uid = await user.estimated_document_count()
        fname = self.get_body_argument("fname")
        lname = self.get_body_argument("lname")
        username = self.get_body_argument("username")
        password = self.get_body_argument("passwd")
        n = await user.find_one({"username":username})
        if not n:
            await user.insert_one({
                "_id":uid+1,
                "fname":fname,
                "lname":lname,
                "username":username,
Example #21
0
 def __init__(self):
     self._client = motor_tornado.MotorClient('localhost', 27017)
Example #22
0
                self.write(json.dumps({"status": "something went wrong"}))
            if not ml_response:
                if int(send(gp, ig,
                            em="*****@*****.**")) != 202 and int(
                                send(gp, ig)) != 202:
                    self.write(json.dumps({"status": "something went wrong"}))

            fire = firestore.Client()
            x = fire.collection("data").document("1")
            payload = {"gps": gp, "label": ml_response['img_label'], "img": ig}
            y = x.get().to_dict()['data']
            y.append(payload)
            x.set({"data": y})

        self.write(json.dumps({'flag': 'Everthing is coool'}))


if __name__ == "__main__":
    options.parse_command_line()
    client = motor_tornado.MotorClient(
        "mongodb://*****:*****@ds143030.mlab.com:43030/projectx")
    app = tornado.web.Application(handlers=[(r"/", test),
                                            (r"/mlpredict", MLHandler)],
                                  default_handler_class=my404handler,
                                  debug=True,
                                  db_client=client)
    http_server = tornado.httpserver.HTTPServer(app)
    http_server.listen(os.environ.get("PORT", options.port))
    print('listening on 8000')
    tornado.ioloop.IOLoop.instance().start()
# -*- coding:utf-8 -*-
from tornado.httpclient import AsyncHTTPClient
from tornado.concurrent import Future
from tornado import gen
from motor import motor_tornado
import pprint

from util import stop_loop, start_loop

client = motor_tornado.MotorClient()
db = client['test']


@gen.coroutine
def insert_one():
    result = yield db.test.insert_one({'hello': 'world'})
    raise gen.Return(result)


@gen.coroutine
def find_one():
    result = yield db.test.find_one()
    pprint.pprint(result)
    raise gen.Return(result)


def fetch_coroutine_callback(future):
    print('coroutine callback')
    print future.result()
    stop_loop(2)
Example #24
0
def load_db(db_settings):
    client = motor_tornado.MotorClient('mongodb://{}:{}'.format(
        db_settings['host'], db_settings['port']))
    return client[db_settings['name']]
Example #25
0
class Model(object):
    """An abstract db model."""
    __metaclass__ = abc.ABCMeta
    _db_con = motor_tornado.MotorClient(MONGO_DB_SERVER)

    fields = {}
    db_collection_name = None

    def __init__(self, **kwargs):
        for key, value in kwargs.items():
            setattr(self, key, value)
        for name, field in self.fields.items():
            if not hasattr(self, name):
                if 'default' in field:
                    setattr(self, name, Model._get_default(field))
                else:
                    raise TypeError(
                        '__init__() missing the required argument: %r' % name)

    def __getitem__(self, key):
        """Return value for key if it is used like m['key']."""
        # only for the lulz
        return getattr(self, key)

    @classmethod
    def objects(cls):
        """Return the manager for this model."""
        return Model._db_con[cls.db_collection_name]

    def to_json(self, id_as_str=False):
        """
        Return a JSON serializable dict containing all data to be stored in db.

        id_as_str: hack, because mongodb needs a ObjectId but this is not JSON
                    serializable. -> For mongodb: False, for JSON: True
        """
        json_data = {
            name: getattr(self, name)
            for (name, field) in self.fields.items()
        }
        if hasattr(self, '_id'):
            json_data['_id'] = str(self['_id']) if id_as_str else self['_id']
        return json_data

    def save(self):
        """
        Save the object to database. Don't forget to save the ObjectId.

        Return: The ObjectId of this object in db.
                You might want to save it in this object like:
        >>> m._id = m.save()
        """
        return self.objects().insert(self.to_json())

    @classmethod
    def validate(cls, **kwargs):
        """Validate the kwargs and return cleaned data or raise a HTTPError."""
        data = {}
        for key, value in kwargs.items():
            if cls.fields[key].get('multiple'):
                values = value
                for validator in cls.fields[key].get('list_validators', []):
                    values = validator.validate(values)
            else:
                values = [value]

            for value in values:
                for validator in cls.fields[key]['validators']:
                    value = validator.validate(value)

            if cls.fields[key].get('multiple'):
                data[key] = values
            else:
                data[key] = values[0]
        return data

    @classmethod
    def create_from_request(cls,
                            request_handler,
                            include_id=False,
                            mapping=None,
                            strip=True):
        """
        Create a object of this model out of an request.

        include_id: If this should edit an existing object,
                    accept the _id from the request
        mapping: dict: keys: model field name, value: request field name
        strip: strip values

        >>> my_obj = MyModel.create_from_request(self)
        >>> result = my_obj.save()
        """
        data = {}
        if not mapping:
            mapping = {}
        if include_id:
            data['_id'] = request_handler.get_argument('_id', strip=strip)
        for name, field in cls.fields.items():
            req_name = mapping.get(name, name)
            if field.get('multiple'):
                value = request_handler.get_arguments(name=req_name,
                                                      strip=strip)
            elif 'default' in field:
                value = request_handler.get_argument(
                    name=req_name,
                    strip=strip,
                    default=Model._get_default(field),
                )
            else:
                value = request_handler.get_argument(name=req_name,
                                                     strip=strip)
            data[name] = value
        cleaned_data = cls.validate(**data)
        return cls(**cleaned_data)

    @staticmethod
    def _get_default(field):
        """Helper method to return the default value of a field."""
        if isinstance(field['default'], FunctionType):
            return field['default']()
        else:
            return field['default']
Example #26
0
#
#		creater:[email protected]
#		create time:2016-06-10 20:50:13
#		description:todo RESTFul service
#
#================================================

from tornado.web import RequestHandler, escape
import uuid
import datetime
from handler import json_encode
from motor import motor_tornado
from bson import ObjectId
from tornado.gen import coroutine

client = motor_tornado.MotorClient('192.168.2.14', 27017)
db = client.test_database


class TodoHandler(RequestHandler):
    @coroutine
    def get(self, *args, **kwargs):
        result = yield db.todos.find({}).to_list(length=None)
        self.set_header('content-type', 'application/json; charset=UTF-8')
        self.write(json_encode({'status': 'success', 'todos': result}))

    @coroutine
    def put(self, *args, **kwargs):
        todo_id = self.get_argument('id', None)
        todo_status = self.get_argument('status', 0)
        yield db.todos.update({'_id': ObjectId(todo_id)},
Example #27
0
def motor(mongo_db, mongo_client, io_loop):
    client = motor_tornado.MotorClient('localhost',
                                       int(mongo_db.port),
                                       io_loop=io_loop)
    db = client["inmanta"]
    yield db
Example #28
0
import tornado.web
import tornado.ioloop
from tornado.gen import coroutine, Return
from motor import motor_tornado
from bson import ObjectId
import bson

client = motor_tornado.MotorClient('192.168.1.120', 30001)
db = client.piano


class LoginHandler(tornado.web.RequestHandler):
    @coroutine
    def get(self):
        document = {"key": "insert", "value": "insert_one"}
        ret = yield self.doing(document)
        print(ret)
        # print((yield ret.fetch_next))
        self.write("111")

    @coroutine
    def doing(self, document):
        ret = db.v1_category.aggregate([{
            '$match': {
                'instrument': {
                    '$in': [4]
                },
                'state': 1
            }
        }, {
            "$group": {
Example #29
0
                self.render("index.html",
                            tarp=0,
                            name=patio['fname'],
                            listofdoc=listofdoc,
                            success=True)
        else:
            self.render("index.html",
                        tarp=None,
                        name="Amrut",
                        listofdoc=listofdoc,
                        success=True)


if __name__ == "__main__":
    tornado.options.parse_command_line()
    client = motor_tornado.MotorClient(
        "mongodb://*****:*****@ds117605.mlab.com:17605/tornado")
    settings = {
        "default_handler_class": my404handler,
        "debug": True,
        "cookie_secret": "b'LPBDqiL4S8KGi54y5eXFLoSiKE+wz0vajAU6K9aZOJ4='",
        "login_url": "/login",
        "db_client": client,
        "ap_details": dict()
    }
    test = dict()
    app = tornado.web.Application(
        handlers=[(r"/", AuthHandler), (r"/login", AuthHandler),
                  (r"/Signup", SignUpHandler), (r"/patient", PatientHandler),
                  (r"/logout", LogoutHandler), (r"/portal", PortalHandler),
                  (r"/path", PathHandler), (r"/user", PatientHandler),
                  (r"/doctor", DocHandler), (r"/appoint", DocListHandler)],