Esempio n. 1
0
 def connect_to_db(self):
     connect_to_db()
     register_connection(DB_BACKTEST,
                         db=DB_BACKTEST,
                         name=DB_BACKTEST,
                         host=MONGO_HOST,
                         port=MONGO_PORT)
Esempio n. 2
0
def db_conn_init():
    config = get_config()
    name = config['DATABASE']['Name']
    host = config['DATABASE']['Host']
    port = int(config['DATABASE']['Port'])

    username = config['DATABASE'].get('Username')
    username = os.environ.get('DB_USERNAME') or username
    username = username.strip() if username else None

    password = config['DATABASE'].get('Password')
    password = os.environ.get('DB_PASSWORD') or password
    password = password.strip() if password else None

    tls = config['DATABASE'].getboolean('TlsEnabled', fallback=False)
    tls_ca_file = config['DATABASE'].get('TlsCaCertificate') if tls else None

    args = {
        'alias': 'global',
        'name': name,
        'host': host,
        'port': port,
        'username': username if username and password else None,
        'password': password if username and password else None,
        'tls': tls,
        'tlsCAFile': tls_ca_file
    }

    # Register connection
    mongoengine.register_connection(**args)
Esempio n. 3
0
def setup_pauli(flask_app, url_prefix="/pauli"):
    # setup mongodb
    for alias, attrs in conf.MONGO.items():
        mongoengine.register_connection(alias, **attrs)

    # setup session
    session_db = mongoengine.connection.get_db(alias="pauli")
    config_dict = {
        "SESSION_COOKIE_NAME": conf.SESSION_COOKIE_NAME,
        "SESSION_TYPE": "mongodb",
        "SESSION_MONGODB": session_db.client,
        "SESSION_MONGODB_DB": session_db.name,
        "SESSION_MONGODB_COLLECT": "sessions",
        "PERMANENT_SESSION_LIFETIME": conf.PAULI_SESSION_LIFETIME
    }
    flask_app.config.update(config_dict)
    flask_session.Session(flask_app)

    # import sub level path routings
    from .user.views import api
    from .auth.views import api
    from .auth.views import web
    from .perm.views import api

    # bind pauli blueprint
    flask_app.register_blueprint(pauli_root, url_prefix=url_prefix)
Esempio n. 4
0
def main(global_config, **settings):

    """ This function returns a Pyramid WSGI application.
    """
#    authn_policy = AuthTktAuthenticationPolicy(
#        'gabbleblotchits')
#    authz_policy = SNMAuthorizationPolicy()
    config = Configurator(
#        authentication_policy=authn_policy,
#        authorization_policy=authz_policy,
        settings=settings
        )

    config.include("pyramid_jinja2")
    config.commit()
    config.get_jinja2_environment().filters['epoch2readable'] = epoch2readable
    config.get_jinja2_environment().filters['duration'] = duration

    def addSettings(event):
        event["sci_platform"] = settings["sci_platform"]
        event["google_tracking_code"] = settings["google_tracking_code"]

    config.add_subscriber(addSettings, BeforeRender)

    # Configuring static assets
    config.add_static_view(name="static", path="static")

    config.add_settings({"sci_platform": settings["sci_platform"],
                         "google_tracking_code": settings["google_tracking_code"]})
    config.add_route("home", "/")
    config.add_route("dsm", "/dsm")

    config.add_route("app_used_with",   "/application/{name}/used_with")
    config.add_route("app_usage",       "/application/{name}/usage")
    config.add_route("app_users",       "/application/{name}/users")
    config.add_route("app_dashboard",   "/application/{name}/dashboard")
    config.add_route("application",     "/application/{name}")
    config.add_route("app_pubs",        "/application/{name}/publications")
    config.add_route("app_gitprojects", "/application/{name}/gitprojects")

    config.add_route("compare", "/compare")
    config.add_route("about", "/about")
    config.add_route("data_source", "/data_source")
    config.add_route("browse", "/browse")
    config.add_route("overview", "/overview")
    config.add_route("login", "/login")
    config.add_route("notebook", "/notebook")
    config.add_route("status", "/status")
    config.add_route("sys_usage",       "/status/usage")
    config.add_route("accept_login", "/accept_login")
    
    config.add_route("api_home", "/api")
    config.add_route("api_home.category", "/api/{category}")
    config.add_route("api_home.category.id", "/api/{category}/{id}")

    connect(settings['db_name'])
    register_connection('raw-records', settings['raw_db_name'])

    config.scan()
    return config.make_wsgi_app()
Esempio n. 5
0
    def test_register_connection_defaults(self):
        """Ensure that defaults are used when the host and port are None.
        """
        register_connection('testdb', 'mongoenginetest', host=None, port=None)

        conn = get_connection('testdb')
        self.assertTrue(isinstance(conn, pymongo.mongo_client.MongoClient))
Esempio n. 6
0
def init_mongoengine():
    hosts = []
    for item in MONGO_DATABASES:
        hosts.append('%s:%s'% (item['host'], item['port']))
    
    print '-' * 40,'init mongoengine connect!'
    mongoengine.register_connection('default', DBNAME, host=','.join(hosts))
Esempio n. 7
0
 def setUp(self):
     super(CreateMongoTxsAndBlocksMixin, self).setUp()
     self.api_key = ApiKeyFactory()
     blocks = []
     mongoengine.register_connection(config.MONGO_TEST_DATABASE_NAME,
                                     name=config.MONGO_TEST_DATABASE_NAME)
     with switch_db(EthTransactions,
                    config.MONGO_TEST_DATABASE_NAME) as TestEthTransactions:
         with switch_db(EthBlocks,
                        config.MONGO_TEST_DATABASE_NAME) as TestEthBlocks:
             client = MongoClient(connect=False)
             for test_block_data in test_block_data_list:
                 block = TestEthBlocks(**test_block_data)
                 block.save()
                 blocks.append(block)
             for index, test_tx_data in enumerate(test_tx_data_list):
                 data_to_create = copy.deepcopy(test_tx_data)
                 data_to_create['fromAddress'] = test_tx_data.get('from')
                 data_to_create['toAddress'] = test_tx_data.get('to')
                 tx = TestEthTransactions(**data_to_create)
                 if index + 1 <= len(test_block_data_list):
                     tx.block = blocks[index]
                     tx.timestamp = blocks[index]['timestamp']
                 else:
                     tx.block = blocks[-1]
                     tx.timestamp = blocks[-1]['timestamp']
                 tx.save()
Esempio n. 8
0
def init_connection(config=MONGODB_CONFIG[DEFAULT_CONNECTION_NAME]):
    u'holy shit!'.encode('idna')
    connect(**config)
    register_connection('statistics',
                        host=config['host'],
                        port=config['port'],
                        name='metrics')
Esempio n. 9
0
def mongo_connect():
    register_connection('default',
                        app.config.get('MONGODB_DATABASE', 'grano'),
                        host=app.config.get('MONGODB_HOST', 'localhost'),
                        port=app.config.get('MONGODB_PORT', 27017),
                        username=app.config.get('MONGODB_USERNAME'),
                        password=app.config.get('MONGODB_PASSWORD'))
Esempio n. 10
0
def global_init():
    mongoengine.register_connection(alias='core',
                                    name=db,
                                    host=mongodb_ip,
                                    port=27017,
                                    username='******',
                                    db=db)
Esempio n. 11
0
def tenant_handler():
    host = request.headers.get('Host')
    try:
        tenant = etcd_client.read('/atrium/hosts/' + host + '/tenant_id').value
    except etcd.EtcdKeyNotFound:
        return abort(404)

    tenant_keys = etcd_client.read('/atrium/tenants/' + tenant)
    tenant_config = {}
    for result in tenant_keys.children:
        tenant_config[result.key.split('/atrium/tenants/' + tenant + '/')[1]] = result.value

    g.tenant = tenant
    openid_items = [
        ('authorization_endpoint', 'openid_authorization'),
        ('token_endpoint', 'openid_token'),
        ('userinfo_endpoint', 'openid_userinfo'),
        ('client_id', 'openid_client'),
        ('client_secret', 'openid_secret'),
        ('redirect_uri', 'openid_redirect'),
        ('issuer_key', 'openid_issuer_key'),
        ('issuer_claim', 'openid_issuer_claim')
    ]

    g.openid = {}
    for item in openid_items:
        g.openid[item[0]] = str(tenant_config[item[1]])

    mongoengine.register_connection(tenant, name=tenant, host=app.config['MONGODB_HOST'], port=app.config['MONGODB_PORT'], connect=False, tz_aware=True)
    for schema in schemas:
        setattr(g, schema.__name__, schema)
        getattr(g, schema.__name__)._meta['db_alias'] = tenant
        getattr(g, schema.__name__)._collection = None
Esempio n. 12
0
    def test_register_connection_defaults(self):
        """Ensure that defaults are used when the host and port are None.
        """
        register_connection("testdb", "mongoenginetest", host=None, port=None)

        conn = get_connection("testdb")
        self.assertIsInstance(conn, pymongo.mongo_client.MongoClient)
    def test_sync_blocks_from_position_to_end(self, mock_get_block,
                                              mock_get_transaction):
        mongoengine.register_connection(config.MONGO_TEST_DATABASE_NAME,
                                        name=config.MONGO_TEST_DATABASE_NAME)

        with switch_db(EthTransactions,
                       config.MONGO_TEST_DATABASE_NAME) as TestEthTransactions:
            with switch_db(EthBlocks,
                           config.MONGO_TEST_DATABASE_NAME) as TestEthBlocks:
                real_block_position = config.SYNC_BLOCKS_POSITION
                config.SYNC_BLOCKS_POSITION = 1
                mock_get_block.return_value = copy.deepcopy(
                    self.test_block_data)
                mock_get_transaction.return_value = copy.deepcopy(
                    self.test_tx_data)
                with mock.patch.object(Eth,
                                       'blockNumber') as mock_block_number:
                    mock_block_number.__get__ = mock.Mock(return_value=2)
                    sync_blocks_from_position_to_end()

            client = MongoClient(connect=False)
            db = client[config.MONGO_TEST_DATABASE_NAME]

            self.assertEqual(db.eth_blocks.count(), 1)
            self.assertEqual(db.eth_transactions.count(), 1)
            config.SYNC_BLOCKS_POSITION = real_block_position

            client[config.MONGO_TEST_DATABASE_NAME].eth_blocks.remove()
            client[config.MONGO_TEST_DATABASE_NAME].eth_transactions.remove()
Esempio n. 14
0
def init_db_connection():
    register_connection(alias="default",
                        name=config["DB_NAME"],
                        username=config["DB_USER"],
                        password=config["DB_PASSWORD"],
                        host=config["DB_URL"],
                        port=config["DB_PORT"])
Esempio n. 15
0
def create_app(config_class):
    app = Flask(__name__)
    app.config.from_object(config_class)

    # Initialize MongoEngine
    try:
        register_connection(alias="default",
                            name=app.config["DB_NAME"],
                            username=app.config["DB_USER"],
                            password=app.config["DB_PASSWORD"],
                            host=app.config["DB_URL"],
                            port=app.config["DB_PORT"])
    except:
        print("Database could not be configured.")
        return None

    nav.init_app(app)

    login_manager.init_app(app)
    bootstrap.init_app(app)

    app.redis = Redis.from_url(app.config['REDIS_URL'])
    app.task_queue = rq.Queue(app.config['REDIS_QUEUE_NAME'],
                              connection=app.redis)

    from app.jobs import bp as jobs_bp
    app.register_blueprint(jobs_bp, url_prefix='')

    from app.web import bp as web_bp
    app.register_blueprint(web_bp, url_prefix='')

    from app.user import bp as user_bp
    app.register_blueprint(user_bp, url_prefix='')

    return app
def global_init():
    mongoengine.register_connection(alias='businessapp', name='com_chay')
    mongoengine.connect(
        'Cluster0',
        host=
        'mongodb+srv://Kpm:[email protected]/test?retryWrites=true&w=majority'
    )
Esempio n. 17
0
def global_init():
    try:
        mongoengine.register_connection(alias="default", name="Johnson", host=host)
        svc.Logging.log(__name__, "Connected!")
    except pymongo.errors.ConfigurationError or pymongo.errors.ConnectionFailure:
        svc.Logging.warning("global_init", "Could not connect; Retrying...")
        global_init()
Esempio n. 18
0
    def test_register_connection_defaults(self):
        """Ensure that defaults are used when the host and port are None.
        """
        register_connection('testdb', 'mongoenginetest', host=None, port=None)

        conn = get_connection('testdb')
        self.assertTrue(isinstance(conn, pymongo.mongo_client.MongoClient))
Esempio n. 19
0
def init():
    db = 'dealership'
    # Other connection options here (server, port, username, etc.)
    mongoengine.register_connection(alias=alias_core,
                                    name=db,
                                    host="hermione",
                                    port=27017)
    def setUp( self ):
        mongoengine.register_connection( mongoengine.DEFAULT_CONNECTION_NAME, 'mongoengine_relational_test' )
        c = mongoengine.connection.get_connection()
        c.drop_database( 'mongoengine_relational_test' )

        # Setup application/request config
        self.request = Request.blank( '/api/v1/' )

        # Instantiate a DocumentCache; it will attach itself to `request.cache`.
        DocumentCache( self.request )

        self.config = testing.setUp( request=self.request )

        # Setup data
        d = self.data = Struct()

        d.blijdorp = Zoo( id=ObjectId(), name='Blijdorp' )
        d.office = Office( tenant=d.blijdorp )
        d.bear = Animal( name='Baloo', species='bear', zoo=d.blijdorp )

        d.mammoth = Animal( id=ObjectId(), name='Manny', species='mammoth' )
        d.artis = Zoo( id=ObjectId(), name='Artis', animals=[ d.mammoth ] )
        d.tiger = Animal( id=ObjectId(), name='Shere Khan', species='tiger', zoo=d.artis )

        d.node = Node()
Esempio n. 21
0
def global_init():
    mongoengine.register_connection(
        alias='core',
        name='rss',
        host=
        'mongodb+srv://felipe:[email protected]/news?retryWrites=true'
    )
Esempio n. 22
0
def register_connection():
    mongoengine.register_connection(
        alias="core",
        name="emerg_shutdown",
        username=config.mongo_db_user,
        password=config.mongo_db_pass,
        authentication_source="admin",
    )
Esempio n. 23
0
 def reconnect(cls):
     for entry in cls.get_entries():
         # there is bug in the current implementation that prevents
         # reconnection from work so workaround this
         # get_connection(entry.alias, reconnect=True)
         disconnect(entry.alias)
         register_connection(**entry.to_struct())
         get_connection(entry.alias)
Esempio n. 24
0
 def setUp(self):
     """
     Connects to the test database.
     """
     # register_connection(TEST_DB_ALIAS, name=TEST_DB_NAME, host="10.1.8.102")
     register_connection(TEST_DB_ALIAS, name=TEST_DB_NAME, host='mongodb://mongo')
     self.client = Client()
     self.maxDiff = None
Esempio n. 25
0
def global_init(auth_dict):
    mongoengine.register_connection(alias=auth_dict['alias'],
                                    name=auth_dict['name'],
                                    host=auth_dict['ip'],
                                    port=auth_dict['port'])

    # TODO - Delete below if not needed.
    """
Esempio n. 26
0
def register_mongo_connection(db):
    register_connection(
        "default",
        name=db["MONGO_NAME"],
        host=db["MONGO_HOST"],
        port=db["MONGO_PORT"],
        **{"maxPoolSize": db["MONGO_MAX_POOL_SIZE"]}
    )
Esempio n. 27
0
    def __init__(self, dbname, port=27017, host='127.0.0.1', basefs='/data/'):

        self.db = pymongo.MongoClient(host=host, port=port)[dbname]
        self.fs_resolver = FilesystemResolver(basefs)
        connect(dbname, host=host, port=port)
        register_connection("pdb", name="pdb", host=host, port=port)

        self.paths = {"gene": []}
Esempio n. 28
0
def setup_db( drop=True ):
    mongoengine.register_connection( mongoengine.DEFAULT_CONNECTION_NAME, 'tastymongo_test' )
    c = mongoengine.connection.get_connection()

    if drop:
        c.drop_database( 'tastymongo_test' )

    return c
Esempio n. 29
0
def main():
    app.secret_key = 'as90kSDKO#1@|4245losadim'
    build_app(app)
    register_connection('irianas_web', 'irianas_web')
    register_connection('irianas_server', 'irianas_server')

    app.run(debug=debug, ssl_context=context, host='0.0.0.0', port=9001,
            threaded=True)
Esempio n. 30
0
def global_init():
    subprocess.run(["sudo", "service", "mongod", "start"])
    p =  subprocess.Popen(["systemctl", "is-active",  "mongod"], stdout=subprocess.PIPE)
    (output, err) = p.communicate()
    output = output.decode('utf-8').rstrip("\n")
    if output == "active":
        mongoengine.register_connection(alias='core', db='mindflayer', replicaset='rs', read_preference=ReadPreference.PRIMARY)
        print("[!]Started MongoDB")
Esempio n. 31
0
 def setUpClass(cls):
     mongoengine.register_connection('SteamDB', 'SteamDB')
     my_user = userdb.SteamUser\
      .objects(name = 'CHADVS MAXIMVS').first()
     steam_user = requests.get(
         'http://api.steampowered.com/IPlayerService/GetOwnedGames/v0001/?key=24E7A4CB6C2041D4C08EC325A5F4FFC3&steamid='
         + my_user.steamid + '&include_played_free_games=true&format=json')
     cls.user = my_user
     cls.request = steam_user.json()
Esempio n. 32
0
def mongo_connect():
    register_connection(
        "default",
        app.config.get("MONGODB_DATABASE", "grano"),
        host=app.config.get("MONGODB_HOST", "localhost"),
        port=app.config.get("MONGODB_PORT", 27017),
        username=app.config.get("MONGODB_USERNAME"),
        password=app.config.get("MONGODB_PASSWORD"),
    )
Esempio n. 33
0
def connect_db():
    from mongoengine import register_connection
    from django.conf import settings

    if hasattr(settings, "MONGODB_DATABASES"):
        databases = settings.MONGODB_DATABASES
    else:
        databases = {}
        db_name = getattr(settings, "MONGODB_DATABASE", "supportcenter")
        host = getattr(settings, "MONGODB_HOST", None)
        port = getattr(settings, "MONGODB_PORT", None)
        username = getattr(settings, "MONGODB_USERNAME", None)
        password = getattr(settings, "MONGODB_PASSWORD", None)

        d = {'NAME': db_name}
        if host:
            d['HOST'] = host
        if port:
            d['PORT'] = port
        if username:
            d['USERNAME'] = username
        if password:
            d['PASSWORD'] = password
        databases['default'] = d

        for alias in ('fs', 'tmp', 'log'):
            d = {'NAME': db_name + alias}
            if host:
                d['HOST'] = host
            if port:
                d['PORT'] = port
            if username:
                d['USERNAME'] = username
            if password:
                d['PASSWORD'] = password

            databases[alias] = d

    for alias, db in databases.iteritems():
        kwargs = {}
        kwargs['name'] = db.get('NAME')

        if db.get('HOST'):
            kwargs['host'] = db['HOST']

        if db.get('PORT'):
            kwargs['port'] = db['PORT']

        if db.get('USERNAME'):
            kwargs['username'] = db['USERNAME']

        if db.get('PASSWORD'):
            kwargs['password'] = db['PASSWORD']

        register_connection(alias, **kwargs)

    preload_models()
Esempio n. 34
0
def global_init():
    mongoengine.register_connection(alias="core", name="uniques")
    username = urllib.parse.quote_plus(os.getenv('MONGODB_USERNAME'))
    password = urllib.parse.quote_plus(os.getenv('MONGODB_PASSWORD'))
    mongoengine.connect(
        host=
        "mongodb+srv://%s:%[email protected]/xander?retryWrites=true&w=majority"
        % (username, password))
    print("MongoDB connection successful")
Esempio n. 35
0
def connect_db():
    from mongoengine import register_connection
    from django.conf import settings

    if hasattr(settings, "MONGODB_DATABASES"):
        databases = settings.MONGODB_DATABASES
    else:
        databases = {}
        db_name = getattr(settings, "MONGODB_DATABASE", "supportcenter")
        host = getattr(settings, "MONGODB_HOST", None)
        port = getattr(settings, "MONGODB_PORT", None)
        username = getattr(settings, "MONGODB_USERNAME", None)
        password = getattr(settings, "MONGODB_PASSWORD", None)

        d = {'NAME': db_name}
        if host:
            d['HOST'] = host
        if port:
            d['PORT'] = port
        if username:
            d['USERNAME'] = username
        if password:
            d['PASSWORD'] = password
        databases['default'] = d

        for alias in ('fs', 'tmp', 'log'):
            d = {'NAME': db_name+alias}
            if host:
                d['HOST'] = host
            if port:
                d['PORT'] = port
            if username:
                d['USERNAME'] = username
            if password:
                d['PASSWORD'] = password

            databases[alias] = d

    for alias, db in databases.iteritems():
        kwargs = {}
        kwargs['name'] = db.get('NAME')
        
        if db.get('HOST'):
            kwargs['host'] = db['HOST']
            
        if db.get('PORT'):
            kwargs['port'] = db['PORT']

        if db.get('USERNAME'):
            kwargs['username'] = db['USERNAME']

        if db.get('PASSWORD'):
            kwargs['password'] = db['PASSWORD']
        
        register_connection(alias, **kwargs)
        
    preload_models()
Esempio n. 36
0
def test_changes_in dbs(NUM_SERVERS=NUM_SERVERS):
    dbNames = ['RAFT_DB_' + str(i) for i in range(0,NUM_SERVERS)]
    for dbName in dbNames:
        mongoengine.register_connection(alias='core', name=dbName)
        users = databaseRead.readUsers(dbName=dbName)
        print("Database Name : ", dbName)
        print("Num of Users : ", len(users))
        print('----------Users------------')
        databaseRead.print_users(users)
        mongoengine.disconnect(alias='core')
Esempio n. 37
0
 def wrapper(*args, **kwargs):
     if (DEBUG==True) and 'dbName' in kwargs:
         dbName = kwargs.get('dbName')
         if dbName is not None:
             mongoengine.register_connection(alias='middle', name=dbName)
             results = orig_func(*args, **kwargs)
             mongoengine.disconnect(alias='middle')
             return results
     
     return orig_func(*args, **kwargs)
Esempio n. 38
0
def register_mongo_connection(db):
    register_connection(
        'default',
        name=db['MONGO_NAME'],
        host=db['MONGO_HOST'],
        port=db['MONGO_PORT'],
        **{
            'maxPoolSize': db['MONGO_MAX_POOL_SIZE'],
        }
    )
Esempio n. 39
0
 def setUp(self):
     """
     Connects to the test database.
     """
     # register_connection(TEST_DB_ALIAS, name=TEST_DB_NAME, host="10.1.8.102")
     register_connection(TEST_DB_ALIAS,
                         name=TEST_DB_NAME,
                         host='mongodb://mongo')
     self.client = Client()
     self.maxDiff = None
Esempio n. 40
0
def register() -> None:
    register_connection(
        "IGeniusTest",
        "IGeniusTest",
        username="",
        password="",
        host=os.environ["DB_NAME"],
        port=27017,
        authentication_source="admin",
    )
Esempio n. 41
0
def global_init():
    mongoengine.register_connection(
        alias="core",
        name=MEALIE_DB_NAME,
        host=DB_HOST,
        port=int(DB_PORT),
        username=DB_USERNAME,
        password=DB_PASSWORD,
        authentication_source="admin",
    )
Esempio n. 42
0
    def test_register_connection(self):
        """Ensure that connections with different aliases may be registered.
        """
        register_connection('testdb', 'mongoenginetest2')

        self.assertRaises(ConnectionError, get_connection)
        conn = get_connection('testdb')
        self.assertTrue(isinstance(conn, pymongo.mongo_client.MongoClient))

        db = get_db('testdb')
        self.assertTrue(isinstance(db, pymongo.database.Database))
        self.assertEqual(db.name, 'mongoenginetest2')
Esempio n. 43
0
 def setup(self):
     mongoengine.register_connection(mongoengine.DEFAULT_CONNECTION_NAME, TEST_DB_NAME, DB_HOST, DB_PORT)
     # TODO
     # this code is using pymongo
     # maybe mongoengine have the same code
     db = _get_db()
     for name in db.collection_names(False):
         db[name].remove()
     self.cover = tempfile.TemporaryFile()
     self.cover.write('cover')
     self.cover.seek(0)
     self.audio = tempfile.TemporaryFile()
     self.audio.write('audio')
     self.audio.seek(0)
Esempio n. 44
0
def config():
    import mongoengine
    print '[config] start', datetime.datetime.now()
    try:
        mongoengine.connect('miao_fm', host=MONGODB_URL, port=MONGODB_PORT)
        mongoengine.register_connection('miao_fm_cdn', 'miao_fm_cdn', host=MONGODB_URL, port=MONGODB_PORT)
    except mongoengine.connection.ConnectionError:
        print '[Error] Can\'t connect to MongoDB!'
        os._exit(-1)
    print '[user] add admin...'
    add_user_admin()
    print '[music] add demo music...'
    add_demo_music()
    print '[status] gen init status...'
    update_init_status()
    print '[config] finish', datetime.datetime.now()
Esempio n. 45
0
    def init_app(self, app):
        conn_settings = {
            'db': app.config.get('MONGODB_DB', None),
            'username': app.config.get('MONGODB_USERNAME', None),
            'password': app.config.get('MONGODB_PASSWORD', None),
            'host': app.config.get('MONGODB_HOST', None),
            'port': int(app.config.get('MONGODB_PORT') or 0) or None
        }
        conn_settings = dict([(k, v) for k, v in conn_settings.items() if v])

        # lazy connection
        mongoengine.register_connection(
            mongoengine.DEFAULT_CONNECTION_NAME,
            conn_settings.pop('db', None),
            **conn_settings
        )
def global_init(user=None, password=None, port=27017, server='localhost', use_ssl=True):
    if user or password:
        data = dict(
            username=user,
            password=password,
            host=server,
            port=port,
            authentication_source='admin',
            authentication_mechanism='SCRAM-SHA-1',
            ssl=use_ssl,
            ssl_cert_reqs=ssl.CERT_NONE)
        mongoengine.register_connection(alias='core', name='demo_dealership', **data)
        data['password'] = '******'
        print(" --> Registering prod connection: {}".format(data))
    else:
        print(" --> Registering dev connection")
        mongoengine.register_connection(alias='core', name='demo_dealership')
Esempio n. 47
0
def main():
    register_connection(alias="default", name=TARGET_DB_NAME)

    with switch_db(Shred, "default") as TargetShred, \
         switch_db(Cluster, "default") as TargetCluster:

        client = pymongo.MongoClient()
        source_db = client[SOURCE_DB_NAME]

        for src_shred in source_db.shreds.find({}):
            new_shred, cluster = transform_shred(src_shred)

            shred_obj = TargetShred.objects.create(**new_shred)
            cluster_member = ClusterMember(shred=shred_obj, position=[0, 0],
                                           angle=0)
            cluster['members'] = [cluster_member]
            cluster_obj = TargetCluster.objects.create(**cluster)
Esempio n. 48
0
    def __init__(self, app, user_repr=None):
        app.before_request(self.track_before)
        app.after_request(self.track_after)
        app.wsgi_app = WSGICopyBody(app.wsgi_app)

	register_connection('tracking_db',name=app.config.get('TRACKING_DB_NAME','tracking_db'),host=app.config.get('DB_URL','localhost'),port=app.config.get('DB_PORT',27017))

        self.hostname = socket.gethostname()

        self.max_body_length = app.config.get('TRACKING_MAX_BODY_LENGTH', 64*1024)
        self.exclude_paths = app.config.get('TRACKING_EXCLUDE', [])
        self.exclude_body_paths = app.config.get('TRACKING_EXCLUDE_BODY', [])
        self.exclude_status_codes = app.config.get('TRACKING_EXCLUDE_STATUS_CODES', [])
        self.min_execution_time = app.config.get('TRACKING_MIN_EXECUTION_TIME', 0)
        self.table_size = app.config.get('TRACKING_TABLE_SIZE', 100*1024*1024)

        documents.Tracking._meta['max_size'] = self.table_size
        if user_repr:
            documents.Tracking.user_repr = user_repr
Esempio n. 49
0
def register_database(alias, host, dbname, replica_set=None,
                      username=None, password=None, auth_db=None,
                      logger=None):
    if alias in _connection_settings:
        # already registered
        return

    kwargs = dict()
    if replica_set:
        # the very presence of a replicaSet argument to 'register_connection' triggers the behavior
        kwargs['replicaSet'] = replica_set
        # MongoEngine converts 'host' to 'hosts_or_uri' for replica sets
        kwargs['host'] = host
    else:
        hostname, _, port = host.partition(':')
        kwargs['host'] = hostname
        if port:
            kwargs['port'] = int(port)
    register_connection(
        alias=alias,
        name=dbname,
        username=username,
        password=password,
        **kwargs)
    # TODO: handle auth_db

    # 'get_connection' has the side effect of creating and caching the
    #   connection on the first time that it's called
    connection = get_connection(alias)

    # automatically retry any queries that get disconnected. using exponential
    #   backoff for up to 60 seconds
    if logger is None:
        logger = current_app.logger
    connection = MongoProxy(connection, logger=logger, wait_time=60)

    # subsequent calls to 'get_connection' will return from the cache, so update
    #   the cached connection
    _connections[alias] = connection
Esempio n. 50
0
    def setup_database(self):
        # Disconnect from the default mongo db, and use a test db instead.
        self.disconnect_dbs()
        connection.connect(rhic_serve, 
            alias='default', tz_aware=True)
        register_connection(rhic_serve, rhic_serve)
        register_connection(checkin_service, checkin_service)
        register_connection(report, report)
        register_connection('default', rhic_serve)

        for collection in ['rhic', 'account', 'user', 'fs.chunks']:
            #print 'importing %s collection' % collection
            call(['mongoimport', '--db', rhic_serve,
                  '-c', collection, '--file', 
                  '%s.json' % os.path.join(settings.DUMP_DIR, collection)],
                 stdout=PIPE, stderr=PIPE)
        
        for collection in ['splice_server', 'product']:
            #print 'importing %s collection' % collection
            call(['mongoimport', '--db', checkin_service,
                  '-c', collection, '--file', 
                  '%s.json' % os.path.join(settings.DUMP_DIR, collection)],
                 stdout=PIPE, stderr=PIPE)
Esempio n. 51
0
def register_connections():
    # OPAC PROC
    logger.debug(u'Registrando conexão - {db}: mongo://{host}:{port}/{db}'.format(
        **config.MONGODB_SETTINGS))
    opac_proc_db_credentials = get_connection_credentials(config.MONGODB_SETTINGS)
    opac_proc_db_name = get_opac_proc_db_name()
    register_connection(opac_proc_db_name, **opac_proc_db_credentials)

    # OPAC WEBAPP
    logger.debug(u'Registrando conexão - {db}: mongo://{host}:{port}/{db}'.format(
        **config.OPAC_MONGODB_SETTINGS))
    opac_webapp_db_credentials = get_connection_credentials(config.OPAC_MONGODB_SETTINGS)
    opac_webapp_db_name = get_opac_webapp_db_name()
    register_connection(opac_webapp_db_name, **opac_webapp_db_credentials)

    # OPAC PROC LOGS
    logger.debug(u'Registrando conexão - {db}: mongo://{host}:{port}/{db}'.format(
        **config.OPAC_PROC_LOG_MONGODB_SETTINGS))
    opac_logs_db_credentials = get_connection_credentials(config.OPAC_PROC_LOG_MONGODB_SETTINGS)
    opac_logs_db_name = get_opac_logs_db_name()
    register_connection(opac_logs_db_name, **opac_logs_db_credentials)
Esempio n. 52
0
'''
Created on 2015年8月13日

@author: likaiguo

不用list存储倒排索引,用单一键
'''
import datetime
import json


from mongoengine import Document, IntField
from mongoengine import StringField, ListField, DateTimeField
from mongoengine import register_connection
from config import simhash_mongodb_config
register_connection(**simhash_mongodb_config)

print 'simhash db\n', json.dumps(simhash_mongodb_config, indent=4)


class SimHashCache(Document):
    obj_id = StringField()
    hash_value = StringField()  # OverflowError: MongoDB can only handle up to 8-byte ints
    text = StringField()
    hash_type = StringField()  # 对应不同类型的hash来源,如:简历,职位描述
    dup_obj_ids = ListField(StringField())
    dup_count = IntField(default=0)
    add_time = DateTimeField(default=datetime.datetime.now())
    update_time = DateTimeField(default=datetime.datetime.now())

    meta = {
Esempio n. 53
0
MONGODB_HOST = os.environ.get('MONGODB_HOST')
MONGODB_PORT = int(os.environ.get('MONGODB_PORT', 27017))

MONGODB_NAME_ARCHIVE = os.environ.get('MONGODB_NAME_ARCHIVE')
MONGODB_HOST_ARCHIVE = os.environ.get('MONGODB_HOST_ARCHIVE')
MONGODB_PORT_ARCHIVE = int(os.environ.get('MONGODB_PORT_ARCHIVE', 27017))

mongoengine.connect(MONGODB_NAME,
                    host=MONGODB_HOST,
                    port=MONGODB_PORT,
                    tz_aware=USE_TZ)

# http://mongoengine-odm.readthedocs.org/en/latest/apireference.html#connecting
mongoengine.register_connection('archive',              # alias
                                MONGODB_NAME_ARCHIVE,   # name
                                host=MONGODB_HOST_ARCHIVE,
                                port=MONGODB_PORT_ARCHIVE,
                                tz_aware=USE_TZ)

DBCACHE_SERVER = os.environ.get('DBCACHE_SERVER', None)

if DBCACHE_SERVER is None:
    raise RuntimeError('DBCACHE_SERVER setting must be defined '
                       'before common.py inclusion!')


REDIS_HOST = os.environ.get('REDIS_HOST', DBCACHE_SERVER)
REDIS_PORT = int(os.environ.get('REDIS_PORT', 6379))
REDIS_DB   = int(os.environ.get('REDIS_DB'))

REDIS_TEST_HOST = os.environ.get('REDIS_TEST_HOST', DBCACHE_SERVER)
Esempio n. 54
0
def init_mongodb():
    mongoengine.register_connection(alias='settings', name='apps_settings', host='userver', port=27017)
    mongoengine.register_connection(alias='NewsDb', name='ticker3_db', host='userver', port=27017)
    mongoengine.register_connection(alias='ticker', name='ticker3_db', host='userver', port=27017)
Esempio n. 55
0
# coding:utf-8
'''
Created on 2015年11月5日

@author: likaiguo
'''
from mongoengine import (Document,
                         StringField,
                         )
from mongoengine import register_connection
from config import mongodb_config
register_connection(**mongodb_config)


class Feed(Document):
    """
    @summary: 职位描述
    """

    keywords = StringField(default='')
    job_type = StringField(default='')  # 工作类型
    talent_level = StringField(default='')  # 人才级别
    expect_area = StringField(default='')  # 期望工作地
    job_desc = StringField(default='')  # 职位描述
    job_url = StringField(default='')


if __name__ == '__main__':
    feed = Feed.objects.first()
    print(feed)
Esempio n. 56
0
from mongoengine import connect
from mongoengine import register_connection
from settings import *

try:
    from settings_dev import *
except:
    pass

host = OTHER_DATABASE.get('mongo').get('host')
username = OTHER_DATABASE.get('mongo').get('user')
password = OTHER_DATABASE.get('mongo').get('password')
port = OTHER_DATABASE.get('mongo').get('port')
replicaset = OTHER_DATABASE.get('mongo').get('replicaset')
tag_sets = OTHER_DATABASE.get('mongo').get('tag_sets')

if replicaset:
    from pymongo import ReadPreference
    mongo_conn = connect(
        'recruiting',
        host=host,
        replicaSet=replicaset,
        read_preference=ReadPreference.SECONDARY_PREFERRED,
        connectTimeoutMS=30000,
        tag_sets=tag_sets,
    )
else:
    connect('recruiting', host=host, username=username, password=password, port=int(port))

register_connection(**SPIDERS_MONGO)
Esempio n. 57
0
    #'djcelery',
    #'rhic_serve.rhic_rcs',
    #'report_server.report_import',
    # End of SAM integration change.
)

##
## Adding mongoengine specifics ##
##
import mongoengine
MONGO_DATABASE_NAME = config.CONFIG.get('server', 'db_name')
MONGO_DATABASE_HOST = config.CONFIG.get('server', 'db_host')
MONGO_DATABASE_PORT = config.CONFIG.get('server', 'db_port')

mongoengine.connect(MONGO_DATABASE_NAME, host="%s:%s" % (MONGO_DATABASE_HOST, MONGO_DATABASE_PORT), tz_aware=True)
mongoengine.register_connection("rhic_serve", MONGO_DATABASE_NAME)

AUTHENTICATION_BACKENDS = (
    'mongoengine.django.auth.MongoEngineBackend',
)
SESSION_ENGINE = 'mongoengine.django.sessions'
##
## End mongoengine specifics
##

#############################
# Celery Configuration
#
# Only configured if celery is enabled in the config file.
CELERY_ENABLED = config.CONFIG.getboolean('celery', 'enabled')
Esempio n. 58
0
"""All mongoengine models are should be described here."""
from datetime import datetime
from makechat import config as settings
from mongoengine import Document, StringField, ReferenceField, \
    BooleanField, EmailField, DateTimeField, ListField, CASCADE, PULL, \
    register_connection

register_connection(
    alias='makechat', host=settings.get('DEFAULT', 'mongo_uri'),
    connect=False)
register_connection(
    alias='makechat_test', host=settings.get('DEFAULT', 'test_mongo_uri'),
    connect=False)

TEST_MODE = settings.getboolean('DEFAULT', 'test_mode')
SESSION_TTL = settings.getint('DEFAULT', 'session_ttl')

USER_ROLES = (
    ('admin', 'Superuser'),  # can create chat rooms and manage chat members
    ('owner', 'Chat owner'),  # can read/write and manage chat members
    ('member', 'Chat member'),  # can read/write, but can't manage chat members
    ('guest', 'Chat guest'),  # can read, but can't write
)


class MetaData(Document):
    """Base class for all models.

    The goal is to have metadata for all objects and do not repeat itself.
    """
Esempio n. 59
0
    def init_application(self):
        self.debug = self.settings.getboolean('server', 'debug')

        # Work around a flask issue: https://github.com/pallets/flask/issues/1907
        if self.debug:
            self.jinja_env.auto_reload = True

        self.logger_formatter = logging.Formatter(
            '%(asctime)s [%(process)5d] [%(name)20.20s] %(levelname)8s - %(message)s '
            '[in %(pathname)s:%(lineno)d]'
        )
        self.logger.setLevel(logging.DEBUG)
        log_handler = logging.StreamHandler()
        log_handler.setLevel(logging.DEBUG)
        if sys.stdout.isatty():
            from termcolor import colored

            class ColoredFormatter(logging.Formatter):
                def format(self, record):
                    levelname = record.levelname
                    formatted = logging.Formatter.format(self, record)
                    if levelname == 'INFO':
                        return colored(formatted, 'green')
                    if levelname in ['WARNING', 'ERROR', 'CRITICAL']:
                        return colored(formatted, 'red')

                    return formatted

            log_handler.setFormatter(ColoredFormatter(
                '%(asctime)s [%(process)5d] [%(name)20.20s] %(levelname)8s - %(message)s '
                '[in %(pathname)s:%(lineno)d]'
            ))
        else:
            log_handler.setFormatter(self.logger_formatter)

        # Set the root handler, and clear the app-specific one
        logging.root.handlers = []  # When init_application is called more than once, we don't want to acrue handlers
        logging.root.addHandler(log_handler)
        logging.root.setLevel(logging.DEBUG)
        self.logger.handlers = []

        werkzeug_logger = logging.getLogger('werkzeug')
        werkzeug_logger.setLevel(logging.INFO)
        werkzeug_logger.propagate = False
        werkzeug_logger.addHandler(logging.StreamHandler())

        logging.getLogger('requests.packages.urllib3.connectionpool').setLevel(logging.WARNING)

        # Identity does this, we don't want whatever flask might be doing
        self.config['WTF_CSRF_ENABLED'] = False

        server_url = furl(self.settings.get('server', 'url'))
        self.config['SERVER_NAME'] = server_url.netloc
        self.config['SESSION_COOKIE_DOMAIN'] = server_url.host

        if server_url.scheme == 'https':
            self.config['SESSION_COOKIE_SECURE'] = True
            self.config['PREFERRED_URL_SCHEME'] = 'https'

            def add_security_headers(response):
                # See https://en.wikipedia.org/wiki/Strict_Transport_Security
                if 'Strict-Transport-Security' not in response.headers:
                    response.headers.set('Strict-Transport-Security', 'max-age=31536000')

                if 'X-Frame-Options' not in response.headers:
                    if self.settings.get('security','frames') == 'deny':
                        response.headers.set('X-Frame-Options','DENY')
                    elif self.settings.get('security', 'frames') == 'sameorigin':
                        response.headers.set('X-Frame-Options','SAMEORIGIN')

                return response

            self.after_request(add_security_headers)

        mongo_url = furl(self.settings.get('mongo', 'url'))
        mongo_db = mongo_url.path.segments[0]

        if 'username' in self.settings.options('mongo') and 'password' in self.settings.options('mongo'):
            mongo_url.username = self.settings.get('mongo', 'username')
            mongo_url.password = self.settings.get('mongo', 'password')

        self.db = pymongo.MongoClient(str(mongo_url))[mongo_db]

        mongoengine.register_connection('default', mongo_db, host=str(mongo_url))
        mongoengine.connection.get_db(reconnect=True)

        register_app(self)
Esempio n. 60
0
        'username': '',
        'password': '',
        'tz_aware': True,
        # 'test': {
        #     'name': 'test_mysite'
        # }
    }
}

SESSION_ENGINE = 'django_mongoengine.sessions'
SESSION_SERIALIZER = 'django_mongoengine.sessions.BSONSerializer'

TEST_FILE_ROOT = os.path.join(STATIC_ROOT, "test")

AUTH_USER_MODEL = 'mongo_auth.MongoUser'
MONGOENGINE_USER_DOCUMENT = 'mysite.myapp.models.MyUser'

AUTHENTICATION_BACKENDS = (
    'django_mongoengine.mongo_auth.backends.MongoEngineBackend',
)

from mongoengine import register_connection
register_connection('default', 'mysite', host = 'localhost', port = 27017)
register_connection('test', 'test_mysite', host = 'localhost', port = 27017)

TEST_MONGO_DATABASE = {
    'db': 'test_mysite',
    'host': ['localhost'],
    'port': 27017,
}