def load_conf(self, file): try: return LunrConfig.from_conf(file or LunrConfig.lunr_storage_config) except IOError, e: if file or self.verbose: print 'Warning: %s' % e return LunrConfig()
def test_parse_config_file(self): conf = None conf_str = "[DEFAULT]\n" \ "foo = bar\n" \ "[foo]\n" \ "foo = baz\n" \ "[foo]\n" \ "fog = buz\n" \ "[fiz]\n" \ "bang = bazt\n" \ "[casts]\n" \ "size = 25\n" \ "flush = True\n" with temp_disk_file(conf_str) as file: conf = LunrConfig.from_conf(file) self.assertEquals(conf.string('default', '__file__', ''), file) # All parsed options default to string value = conf.string('default', 'foo', '') self.assertEquals(value, 'bar') value = conf.string('foo', 'foo', '') self.assertEquals(value, 'baz') value = conf.string('foo', 'fog', '') self.assertEquals(value, 'buz') value = conf.string('fiz', 'bang', '') self.assertEquals(value, 'bazt') # Non-string casts value = conf.int('casts', 'size', 1) self.assertEquals(value, 25) value = conf.bool('casts', 'flush', False) self.assertEquals(value, True)
def main(): parser = ArgumentParser(description="Orbit, lunr's maintiance droid") parser.add_argument('-c', '--config', action='store', help="Provide a config file for orbit to use") parser.add_argument('-p', '--pid', action='store', help="Specify the file name of the pid to use") parser.add_argument('-u', '--user', action='store', help="Specify the user the daemon will run as") parser.add_argument( 'command', nargs='?', default='foreground', help="(start|stop|status|foreground) defaults to foreground") options = parser.parse_args() try: file = options.config or LunrConfig.lunr_orbit_config conf = LunrConfig.from_conf(file) except Exception, e: print "-- Config Failure: %s" % e parser.print_help() return 1
def load_conf(self, file): try: conf = LunrConfig.from_conf(file) return Helper(conf) except IOError, e: print 'Error: %s' % e sys.exit(1)
def load_conf(options, args): if options.config: try: conf = LunrConfig.from_conf(options.config) except IOError, e: print 'Error: %s' % e sys.exit(1)
def parse_args(self, *args, **kwargs): options, args = super(LunrMonkeyParser, self).parse_args(*args, **kwargs) try: conf = LunrConfig.from_conf(options.config) except IOError, e: raise SystemExit('Error: %s' % e)
def test_multi_config(self): base_conf_body = dedent(""" [db] # url = sqlite:// echo = False pool_size = 5 """) db_conf_body = dedent(""" [db] url = mysql://root:@localhost/lunr echo = True """) scratch = mkdtemp() try: os.mkdir(os.path.join(scratch, 'api-server.conf.d')) base_conf_filename = os.path.join(scratch, 'api-server.conf') db_conf_filename = os.path.join(scratch, 'api-server.conf.d/db.conf') with open(base_conf_filename, 'w') as f: f.write(base_conf_body) with open(db_conf_filename, 'w') as f: f.write(db_conf_body) conf = LunrConfig.from_conf(base_conf_filename) # override commented value self.assertEquals(conf.string('db', 'url', ''), 'mysql://root:@localhost/lunr') # override base value self.assertEquals(conf.bool('db', 'echo', None), True) # inherit base value self.assertEquals(conf.int('db', 'pool_size', 0), 5) finally: rmtree(scratch)
def app_factory(global_conf, **local_conf): """paste.deploy app factory for creating WSGI API server""" # Reload the paster config, since paster only passes us our config conf = LunrConfig.from_conf(global_conf['__file__']) # ensure global logger is named logger.rename(__name__) app = ApiWsgiApp(conf, urlmap) return app
def main(): from optparse import OptionParser from lunr.common.config import LunrConfig from lunr.db.console import DBConsole as ManifestConsole from lunr.storage.helper.utils.client import get_conn parser = OptionParser('%prog [options] volume_id') parser.add_option('-C', '--config', default=LunrConfig.lunr_storage_config, help="override config file") options, args = parser.parse_args() try: conf = LunrConfig.from_conf(options.config) except IOError, e: return 'ERROR: %s' % e
def test_case_sensitive_parser(self): conf_str = dedent(""" [vtype-mapping] SATA = STANDARD SSD = HIGH """) with temp_disk_file(conf_str) as f: conf = LunrConfig.from_conf(f) section = conf.section('vtype-mapping') expected = { 'SATA': 'STANDARD', 'SSD': 'HIGH', } self.assertEquals(section, expected)
def test_case_sensitive_parser(self): conf_str = dedent( """ [vtype-mapping] SATA = STANDARD SSD = HIGH """ ) with temp_disk_file(conf_str) as f: conf = LunrConfig.from_conf(f) section = conf.section('vtype-mapping') expected = { 'SATA': 'STANDARD', 'SSD': 'HIGH', } self.assertEquals(section, expected)
def app_factory(global_conf, **local_conf): """paste.deploy app factory for creating WSGI API server""" # Reload the paster config, since paster only passes us our config conf = LunrConfig.from_conf(global_conf['__file__']) # ensure global logger is named logger.rename(__name__) app = StorageWsgiApp(conf, urlmap) # Check for a valid volume config app.helper.volumes.check_config() try: app.helper.check_registration() except Exception: logger.exception('Registration failed') volumes = app.helper.volumes.list() app.helper.cgroups.load_initial_cgroups(volumes) app.helper.exports.init_initiator_allows() return app
def test_multi_config(self): base_conf_body = dedent( """ [db] # url = sqlite:// echo = False pool_size = 5 """ ) db_conf_body = dedent( """ [db] url = mysql://root:@localhost/lunr echo = True """ ) scratch = mkdtemp() try: os.mkdir(os.path.join(scratch, 'api-server.conf.d')) base_conf_filename = os.path.join(scratch, 'api-server.conf') db_conf_filename = os.path.join(scratch, 'api-server.conf.d/db.conf') with open(base_conf_filename, 'w') as f: f.write(base_conf_body) with open(db_conf_filename, 'w') as f: f.write(db_conf_body) conf = LunrConfig.from_conf(base_conf_filename) # override commented value self.assertEquals(conf.string('db', 'url', ''), 'mysql://root:@localhost/lunr') # override base value self.assertEquals(conf.bool('db', 'echo', None), True) # inherit base value self.assertEquals(conf.int('db', 'pool_size', 0), 5) finally: rmtree(scratch)