Exemplo n.º 1
0
 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()
Exemplo n.º 2
0
    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)
Exemplo n.º 3
0
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
Exemplo n.º 4
0
 def load_conf(self, file):
     try:
         conf = LunrConfig.from_conf(file)
         return Helper(conf)
     except IOError, e:
         print 'Error: %s' % e
         sys.exit(1)
Exemplo n.º 5
0
 def load_conf(self, file):
     try:
         conf = LunrConfig.from_conf(file)
         return Helper(conf)
     except IOError, e:
         print 'Error: %s' % e
         sys.exit(1)
Exemplo n.º 6
0
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)
Exemplo n.º 7
0
 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)
Exemplo n.º 8
0
 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)
Exemplo n.º 9
0
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)
Exemplo n.º 10
0
 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)
Exemplo n.º 11
0
 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()
Exemplo n.º 12
0
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
Exemplo n.º 13
0
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
Exemplo n.º 14
0
 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)
Exemplo n.º 15
0
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
Exemplo n.º 16
0
 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)
Exemplo n.º 17
0
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
Exemplo n.º 18
0
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
Exemplo n.º 19
0
 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)