Esempio n. 1
0
def main():
    cfg.parse_args(sys.argv)
    logging.setup(CONF, None)
    debug_utils.setup()

    from trove.guestagent import dbaas
    manager = dbaas.datastore_registry().get(CONF.datastore_manager)
    if not manager:
        msg = (_("Manager class not registered for datastore manager %s") %
               CONF.datastore_manager)
        raise RuntimeError(msg)

    if not CONF.guest_id:
        msg = (_("The guest_id parameter is not set. guest_info.conf "
               "was not injected into the guest or not read by guestagent"))
        raise RuntimeError(msg)

    # BUG(1650518): Cleanup in the Pike release
    # make it fatal if CONF.instance_rpc_encr_key is None

    # rpc module must be loaded after decision about thread monkeypatching
    # because if thread module is not monkeypatched we can't use eventlet
    # executor from oslo_messaging library.
    from trove import rpc
    rpc.init(CONF)

    from trove.common.rpc import service as rpc_service
    server = rpc_service.RpcService(
        key=CONF.instance_rpc_encr_key,
        topic="guestagent.%s" % CONF.guest_id,
        manager=manager, host=CONF.guest_id,
        rpc_api_version=guest_api.API.API_LATEST_VERSION)

    launcher = openstack_service.launch(CONF, server, restart_method='mutate')
    launcher.wait()
Esempio n. 2
0
def main():
    log_levels = [
        'docker=WARN',
    ]
    default_log_levels = logging.get_default_log_levels()
    default_log_levels.extend(log_levels)
    logging.set_defaults(default_log_levels=default_log_levels)
    logging.register_options(CONF)

    cfg.parse_args(sys.argv)
    logging.setup(CONF, None)
    debug_utils.setup()

    from trove.guestagent import dbaas
    manager = dbaas.datastore_registry().get(CONF.datastore_manager)
    if not manager:
        msg = (_("Manager class not registered for datastore manager %s") %
               CONF.datastore_manager)
        raise RuntimeError(msg)

    if not CONF.guest_id:
        msg = (_("The guest_id parameter is not set. guest_info.conf "
               "was not injected into the guest or not read by guestagent"))
        raise RuntimeError(msg)

    # Create user and group for running docker container.
    LOG.info('Creating user and group for database service')
    uid = cfg.get_configuration_property('database_service_uid')
    operating_system.create_user('database', uid)

    # Mount device if needed.
    # When doing rebuild, the device should be already formatted but not
    # mounted.
    device_path = CONF.get(CONF.datastore_manager).device_path
    mount_point = CONF.get(CONF.datastore_manager).mount_point
    device = volume.VolumeDevice(device_path)
    if not device.mount_points(device_path):
        LOG.info('Preparing the storage for %s, mount path %s',
                 device_path, mount_point)
        device.format()
        device.mount(mount_point)
        operating_system.chown(mount_point, CONF.database_service_uid,
                               CONF.database_service_uid,
                               recursive=True, as_root=True)

    # rpc module must be loaded after decision about thread monkeypatching
    # because if thread module is not monkeypatched we can't use eventlet
    # executor from oslo_messaging library.
    from trove import rpc
    rpc.init(CONF)

    from trove.common.rpc import service as rpc_service
    server = rpc_service.RpcService(
        key=CONF.instance_rpc_encr_key,
        topic="guestagent.%s" % CONF.guest_id,
        manager=manager, host=CONF.guest_id,
        rpc_api_version=guest_api.API.API_LATEST_VERSION)

    launcher = openstack_service.launch(CONF, server, restart_method='mutate')
    launcher.wait()
Esempio n. 3
0
def main():
    cfg.parse_args(sys.argv)
    logging.setup(CONF, None)

    debug_utils.setup()

    from trove.guestagent import dbaas
    manager = dbaas.datastore_registry().get(CONF.datastore_manager)
    if not manager:
        msg = ("Manager class not registered for datastore manager %s" %
               CONF.datastore_manager)
        raise RuntimeError(msg)

    # rpc module must be loaded after decision about thread monkeypatching
    # because if thread module is not monkeypatched we can't use eventlet
    # executor from oslo_messaging library.
    from trove import rpc
    rpc.init(CONF)

    from trove.common.rpc import service as rpc_service
    from trove.common.rpc import version as rpc_version
    server = rpc_service.RpcService(
        manager=manager, host=CONF.guest_id,
        rpc_api_version=rpc_version.RPC_API_VERSION)

    launcher = openstack_service.launch(CONF, server)
    launcher.wait()
Esempio n. 4
0
def startup(conf, topic):
    from trove.common.rpc import service as rpc_service
    from trove.openstack.common import service as openstack_service

    server = rpc_service.RpcService(manager=conf.taskmanager_manager,
                                    topic=topic)
    launcher = openstack_service.launch(server)
    launcher.wait()
Esempio n. 5
0
def launch_services():
    get_db_api().configure_db(CONF)
    manager = 'trove.conductor.manager.Manager'
    topic = CONF.conductor_queue
    server = rpc_service.RpcService(manager=manager, topic=topic)
    launcher = openstack_service.launch(server,
                                        workers=CONF.trove_conductor_workers)
    launcher.wait()
Esempio n. 6
0
def start_fake_taskmanager(conf):
    topic = conf.taskmanager_queue
    from trove.common.rpc import service as rpc_service
    from trove.common.rpc import version as rpc_version
    taskman_service = rpc_service.RpcService(
        key='', topic=topic, rpc_api_version=rpc_version.RPC_API_VERSION,
        manager='trove.taskmanager.manager.Manager')
    taskman_service.start()
Esempio n. 7
0
def main(conf):
    from trove.common.rpc import service as rpc_service
    from trove.openstack.common import service as openstack_service

    topic = conf.conductor_queue
    server = rpc_service.RpcService(manager=conf.conductor_manager,
                                    topic=topic)
    workers = conf.trove_conductor_workers or processutils.get_worker_count()
    launcher = openstack_service.launch(server, workers=workers)
    launcher.wait()
Esempio n. 8
0
def startup(conf, topic):
    from trove.common.rpc import service as rpc_service
    from trove.common.rpc import version as rpc_version
    from trove.openstack.common import service as openstack_service

    server = rpc_service.RpcService(
        manager=conf.taskmanager_manager, topic=topic,
        rpc_api_version=rpc_version.RPC_API_VERSION)
    launcher = openstack_service.launch(server)
    launcher.wait()
Esempio n. 9
0
def main(conf):
    from trove.common.rpc import service as rpc_service
    from trove.openstack.common import service as openstack_service

    manager = 'trove.conductor.manager.Manager'
    topic = conf.conductor_queue
    server = rpc_service.RpcService(manager=manager, topic=topic)
    launcher = openstack_service.launch(server,
                                        workers=conf.trove_conductor_workers)
    launcher.wait()
Esempio n. 10
0
def main(conf):
    from trove.common.rpc import service as rpc_service
    from trove.common.rpc import version as rpc_version

    topic = conf.conductor_queue
    server = rpc_service.RpcService(
        manager=conf.conductor_manager,
        topic=topic,
        rpc_api_version=rpc_version.RPC_API_VERSION)
    workers = conf.trove_conductor_workers or processutils.get_worker_count()
    launcher = openstack_service.launch(conf, server, workers=workers)
    launcher.wait()
Esempio n. 11
0
def startup(conf, topic):
    from trove.common import notification
    from trove.common.rpc import service as rpc_service
    from trove.instance import models as inst_models

    notification.DBaaSAPINotification.register_notify_callback(
        inst_models.persist_instance_fault)
    server = rpc_service.RpcService(
        manager=conf.taskmanager_manager,
        topic=topic,
        rpc_api_version=task_api.API.API_LATEST_VERSION)
    launcher = openstack_service.launch(conf, server)
    launcher.wait()
Esempio n. 12
0
def main(conf):
    from trove.common import notification
    from trove.common.rpc import service as rpc_service
    from trove.instance import models as inst_models

    notification.DBaaSAPINotification.register_notify_callback(
        inst_models.persist_instance_fault)
    topic = conf.conductor_queue
    server = rpc_service.RpcService(
        manager=conf.conductor_manager,
        topic=topic,
        rpc_api_version=conductor_api.API.API_LATEST_VERSION)
    workers = conf.trove_conductor_workers or processutils.get_worker_count()
    launcher = openstack_service.launch(conf, server, workers=workers)
    launcher.wait()
Esempio n. 13
0
def initialize_trove(config_file):
    from trove.openstack.common import pastedeploy

    cfg.CONF(args=[],
             project='trove',
             default_config_files=[config_file])
    logging.setup(None)
    topic = CONF.taskmanager_queue
    rpc.init(CONF)

    taskman_service = rpc_service.RpcService(
        None, topic=topic, rpc_api_version=rpc_version.RPC_API_VERSION,
        manager='trove.taskmanager.manager.Manager')
    taskman_service.start()

    return pastedeploy.paste_deploy_app(config_file, 'trove', {})
Esempio n. 14
0
def main():
    cfg.parse_args(sys.argv)
    from trove.guestagent import dbaas
    logging.setup(None)

    debug_utils.setup()

    # Patch 'thread' module if debug is disabled
    if not debug_utils.enabled():
        eventlet.monkey_patch(thread=True)

    manager = dbaas.datastore_registry().get(CONF.datastore_manager)
    if not manager:
        msg = ("Manager class not registered for datastore manager %s" %
               CONF.datastore_manager)
        raise RuntimeError(msg)
    server = rpc_service.RpcService(manager=manager, host=CONF.guest_id)
    launcher = openstack_service.launch(server)
    launcher.wait()
Esempio n. 15
0
def startup(topic):
    cfg.parse_args(sys.argv)
    logging.setup(None)

    debug_utils.setup()

    # Patch 'thread' module if debug is disabled
    if not debug_utils.enabled():
        eventlet.monkey_patch(thread=True)

    from trove.common.rpc import service as rpc_service
    from trove.openstack.common import service as openstack_service
    from trove.db import get_db_api

    get_db_api().configure_db(CONF)
    server = rpc_service.RpcService(manager=CONF.taskmanager_manager,
                                    topic=topic)
    launcher = openstack_service.launch(server)
    launcher.wait()
Esempio n. 16
0
def startup(conf, topic):
    from trove.common import notification
    from trove.common.rpc import service as rpc_service
    from trove.instance import models as inst_models
    from trove.taskmanager import api as task_api

    notification.DBaaSAPINotification.register_notify_callback(
        inst_models.persist_instance_fault)

    if conf.enable_secure_rpc_messaging:
        key = conf.taskmanager_rpc_encr_key
    else:
        key = None

    server = rpc_service.RpcService(
        key=key, manager=conf.taskmanager_manager, topic=topic,
        rpc_api_version=task_api.API.API_LATEST_VERSION)
    launcher = openstack_service.launch(conf, server,
                                        restart_method='mutate')
    launcher.wait()
Esempio n. 17
0
def main(conf):
    from trove.common import notification
    from trove.common.rpc import conductor_host_serializer as sz
    from trove.common.rpc import service as rpc_service
    from trove.instance import models as inst_models

    notification.DBaaSAPINotification.register_notify_callback(
        inst_models.persist_instance_fault)
    topic = conf.conductor_queue
    server = rpc_service.RpcService(
        key=None,
        manager=conf.conductor_manager,
        topic=topic,
        rpc_api_version=conductor_api.API.API_LATEST_VERSION,
        secure_serializer=sz.ConductorHostSerializer)
    workers = conf.trove_conductor_workers or processutils.get_worker_count()
    launcher = openstack_service.launch(conf,
                                        server,
                                        workers=workers,
                                        restart_method='mutate')
    launcher.wait()