Coverage for girder/utility/config: 76%

# Coverage for girder/utility/config : 76%

## 29 statements 22 run 7 missing 0 excluded

Hot-keys on this page

r m x p toggle line displays

j k next/prev highlighted chunk

0 (zero) top of page

1 (one) first highlighted chunk

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 | #!/usr/bin/env python # -*- coding: utf-8 -*- ############################################################################### # Copyright 2013 Kitware Inc. # # Licensed under the Apache License, Version 2.0 ( the "License" ); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. ############################################################################### import cherrypy from girder import constants import os import re def _mergeConfig(filename): ''' Load `filename` into the cherrypy config. Also, handle global options by putting them in the root. ''' cherrypy._cpconfig.merge(cherrypy.config, filename) global_config = cherrypy.config.pop('global', {}) for option, value in global_config.iteritems(): cherrypy.config[option] = value def loadConfig(): _mergeConfig( os.path.join(constants.ROOT_DIR, 'girder', 'conf', 'girder.dist.cfg')) local = os.path.join(constants.ROOT_DIR, 'girder', 'conf', 'girder.local.cfg') if os.path.exists(local): _mergeConfig(local) else: print constants.TerminalColor.warning( 'WARNING: "{}" does not exist.'.format(local)) # The PORT environment variable will override the config port if 'PORT' in os.environ: port = int(os.environ['PORT']) print 'Using PORT env value ({})'.format(port) cherrypy.config['server.socket_port'] = port # The MONGOLAB_URI should override the database config if os.getenv('MONGOLAB_URI'): # for Heroku matcher = re.match(r"mongodb://(.+):(.+)@(.+):(.+)/(.+)", os.getenv('MONGOLAB_URI')) res = {'user': matcher.group(1), 'password': matcher.group(2), 'host': matcher.group(3), 'port': int(matcher.group(4)), 'database': matcher.group(5)} cherrypy.config['database'] = res if 'GIRDER_TEST_DB' in os.environ: cherrypy.config['database']['database'] =\ os.environ['GIRDER_TEST_DB'].replace('.', '_') def getConfig(): if 'database' not in cherrypy.config: loadConfig() return cherrypy.config