Example #1
0
from trove.guestagent.strategies.backup.base import UnknownBackupType
from trove.guestagent.strategies.storage import get_storage_strategy
from trove.guestagent.strategies.backup import get_backup_strategy
from trove.guestagent.strategies.restore import get_restore_strategy
from trove.openstack.common.gettextutils import _  # noqa

LOG = logging.getLogger(__name__)
CONF = cfg.CONF

MANAGER = CONF.datastore_manager
# If datastore manager is not mentioned in guest
# configuration file, would be used mysql as datastore_manager by the default
STRATEGY = CONF.get('mysql' if not MANAGER else MANAGER).backup_strategy
NAMESPACE = CONF.backup_namespace

RUNNER = get_backup_strategy(STRATEGY, NAMESPACE)
EXTRA_OPTS = CONF.backup_runner_options.get(STRATEGY, '')

# Try to get the incremental strategy or return the default 'backup_strategy'
INCREMENTAL = CONF.backup_incremental_strategy.get(STRATEGY,
                                                   STRATEGY)

INCREMENTAL_RUNNER = get_backup_strategy(INCREMENTAL, NAMESPACE)


class BackupAgent(object):

    def _get_restore_runner(self, backup_type):
        """Returns the RestoreRunner associated with this backup type."""
        try:
            runner = get_restore_strategy(backup_type, CONF.restore_namespace)
Example #2
0
 def repl_backup_runner(self):
     return backup.get_backup_strategy('EdbPgBaseBackup',
                                       REPL_BACKUP_NAMESPACE)
Example #3
0
 def repl_incr_backup_runner(self):
     return backup.get_backup_strategy(BACKUP_INCR_STRATEGY,
                                       BACKUP_NAMESPACE)
Example #4
0
 def repl_incr_backup_runner(self):
     return backup.get_backup_strategy('MariaDBInnoBackupExIncremental',
                                       REPL_BACKUP_NAMESPACE)
Example #5
0
 def repl_backup_runner(self):
     return backup.get_backup_strategy('InnoBackupEx',
                                       REPL_BACKUP_NAMESPACE)
Example #6
0
 def repl_backup_runner(self):
     return backup.get_backup_strategy('InnoBackupEx',
                                       REPL_BACKUP_NAMESPACE)
Example #7
0
from trove.guestagent.strategies.restore import get_restore_strategy
import cStringIO
from trove.patch.backup.models import Type
from trove.common import utils
from trove.patch.instance.models import InstanceType
from trove.patch.conductor import api as conductor_api
from trove.patch.common import utils as patch_utils
import pexpect
from trove.patch.group.models import DBInstanceType
from trove.patch.common.alarmrpc import AlarmRpc
import json
import time
LOG = logging.getLogger(__name__)
CONF = cfg.CONF

RUNNER_master = get_backup_strategy("InnoBackupEx_xbstream_master",
                             "trove.patch.guestagent.strategies.backup.impl")

RUNNER_slave = get_backup_strategy("InnoBackupEx_xbstream_slave",
                             "trove.patch.guestagent.strategies.backup.impl")

RUNNER_master_incremental = get_backup_strategy("InnoBackupEx_xbstream_master_incremental",
                             "trove.patch.guestagent.strategies.backup.impl")

RUNNER_slave_incremental = get_backup_strategy("InnoBackupEx_xbstream_slave_incremental",
                             "trove.patch.guestagent.strategies.backup.impl")

import re

class KSC_BackupAgent(object):

    def _get_restore_runner(self, backup_type):
Example #8
0
from trove.guestagent.strategies.backup.base import BackupError
from trove.guestagent.strategies.backup.base import UnknownBackupType
from trove.guestagent.strategies.backup import get_backup_strategy
from trove.guestagent.strategies.restore import get_restore_strategy
from trove.guestagent.strategies.storage import get_storage_strategy

LOG = logging.getLogger(__name__)
CONF = cfg.CONF

CONFIG_MANAGER = CONF.get(
    'mysql' if not CONF.datastore_manager else CONF.datastore_manager)

STRATEGY = CONFIG_MANAGER.backup_strategy
BACKUP_NAMESPACE = CONFIG_MANAGER.backup_namespace
RESTORE_NAMESPACE = CONFIG_MANAGER.restore_namespace
RUNNER = get_backup_strategy(STRATEGY, BACKUP_NAMESPACE)
EXTRA_OPTS = CONF.backup_runner_options.get(STRATEGY, '')

# Try to get the incremental strategy or return the default 'backup_strategy'
INCREMENTAL = CONFIG_MANAGER.backup_incremental_strategy.get(
    STRATEGY, STRATEGY)

INCREMENTAL_RUNNER = get_backup_strategy(INCREMENTAL, BACKUP_NAMESPACE)


class BackupAgent(object):
    def _get_restore_runner(self, backup_type):
        """Returns the RestoreRunner associated with this backup type."""
        try:
            runner = get_restore_strategy(backup_type, RESTORE_NAMESPACE)
        except ImportError:
Example #9
0
from trove.conductor import api as conductor_api
from trove.guestagent.common import timeutils
from trove.guestagent.dbaas import get_filesystem_volume_stats
from trove.guestagent.datastore.mysql.service import ADMIN_USER_NAME
from trove.guestagent.datastore.mysql.service import get_auth_password
from trove.guestagent.strategies.backup.base import BackupError
from trove.guestagent.strategies.backup.base import UnknownBackupType
from trove.guestagent.strategies.storage import get_storage_strategy
from trove.guestagent.strategies.backup import get_backup_strategy
from trove.guestagent.strategies.restore import get_restore_strategy
from trove.openstack.common.gettextutils import _  # noqa

LOG = logging.getLogger(__name__)
CONF = cfg.CONF

RUNNER = get_backup_strategy(CONF.backup_strategy,
                             CONF.backup_namespace)
EXTRA_OPTS = CONF.backup_runner_options.get(CONF.backup_strategy, '')
# Try to get the incremental strategy or return the default 'backup_strategy'
INCREMENTAL = CONF.backup_incremental_strategy.get(CONF.backup_strategy,
                                                   CONF.backup_strategy)
INCREMENTAL_RUNNER = get_backup_strategy(INCREMENTAL, CONF.backup_namespace)


class BackupAgent(object):

    def _get_restore_runner(self, backup_type):
        """Returns the RestoreRunner associated with this backup type."""
        try:
            runner = get_restore_strategy(backup_type, CONF.restore_namespace)
        except ImportError:
            raise UnknownBackupType("Unknown Backup type: %s" % backup_type)
Example #10
0
from trove.common import cfg
from trove.common import context as trove_context
from trove.conductor import api as conductor_api
from trove.guestagent.dbaas import get_filesystem_volume_stats
from trove.guestagent.datastore.mysql.service import ADMIN_USER_NAME
from trove.guestagent.datastore.mysql.service import get_auth_password
from trove.guestagent.strategies.backup.base import BackupError
from trove.guestagent.strategies.backup.base import UnknownBackupType
from trove.guestagent.strategies.storage import get_storage_strategy
from trove.guestagent.strategies.backup import get_backup_strategy
from trove.guestagent.strategies.restore import get_restore_strategy

LOG = logging.getLogger(__name__)
CONF = cfg.CONF

RUNNER = get_backup_strategy(CONF.backup_strategy,
                             CONF.backup_namespace)
EXTRA_OPTS = CONF.backup_runner_options.get(CONF.backup_strategy, '')
BACKUP_CONTAINER = CONF.backup_swift_container


class BackupAgent(object):

    def _get_restore_runner(self, backup_type):
        """Returns the RestoreRunner associated with this backup type."""
        try:
            runner = get_restore_strategy(backup_type, CONF.restore_namespace)
        except ImportError:
            raise UnknownBackupType("Unknown Backup type: %s" % backup_type)
        return runner

    def execute_backup(self, context, backup_info,
Example #11
0
    def repl_incr_backup_runner(self):
        strategy = CONF.mariadb.backup_incremental_strategy.get(
            CONF.mariadb.backup_strategy, CONF.mariadb.backup_strategy)

        return backup.get_backup_strategy(strategy,
                                          CONF.mariadb.backup_namespace)
Example #12
0
 def repl_backup_runner(self):
     return backup.get_backup_strategy(CONF.mariadb.backup_strategy,
                                       CONF.mariadb.backup_namespace)
Example #13
0
from trove.backup.models import DBBackup
from trove.backup.models import BackupState
from trove.common import cfg, utils
from trove.guestagent.dbaas import get_filesystem_volume_stats
from trove.guestagent.datastore.mysql.service import ADMIN_USER_NAME
from trove.guestagent.datastore.mysql.service import get_auth_password
from trove.guestagent.strategies.backup.base import BackupError
from trove.guestagent.strategies.backup.base import UnknownBackupType
from trove.guestagent.strategies.storage import get_storage_strategy
from trove.guestagent.strategies.backup import get_backup_strategy
from trove.guestagent.strategies.restore import get_restore_strategy

LOG = logging.getLogger(__name__)
CONF = cfg.CONF

RUNNER = get_backup_strategy(CONF.backup_strategy, CONF.backup_namespace)
BACKUP_CONTAINER = CONF.backup_swift_container


class BackupAgent(object):
    def _get_restore_runner(self, backup_type):
        """Returns the RestoreRunner associated with this backup type."""
        try:
            runner = get_restore_strategy(backup_type, CONF.restore_namespace)
        except ImportError:
            raise UnknownBackupType("Unknown Backup type: %s" % backup_type)
        return runner

    def execute_backup(self, context, backup_id, runner=RUNNER):
        LOG.debug("Searching for backup instance %s", backup_id)
        backup = DBBackup.find_by(id=backup_id)
Example #14
0
 def repl_incr_backup_runner(self):
     return backup.get_backup_strategy('EdbPgBaseBackupIncremental',
                                       REPL_BACKUP_NAMESPACE)
Example #15
0
MANAGER = 'mysql' if not CONF.datastore_manager else CONF.datastore_manager

MASTER_CONFIG = """
[mysqld]
log_bin = /var/lib/mysql/mysql-bin.log
"""
SLAVE_CONFIG = """
[mysqld]
log_bin = /var/lib/mysql/mysql-bin.log
relay_log = /var/lib/mysql/mysql-relay-bin.log
read_only = true
"""

REPL_BACKUP_NAMESPACE = 'trove.guestagent.strategies.backup.mysql_impl'
REPL_BACKUP_STRATEGY = 'InnoBackupEx'
REPL_BACKUP_RUNNER = backup.get_backup_strategy(REPL_BACKUP_STRATEGY,
                                                REPL_BACKUP_NAMESPACE)
REPL_EXTRA_OPTS = CONF.backup_runner_options.get(REPL_BACKUP_STRATEGY, '')

LOG = logging.getLogger(__name__)


class MysqlBinlogReplication(base.Replication):
    """MySql Replication coordinated by binlog position."""

    class UnableToDetermineBinlogPosition(exception.TroveError):
        message = _("Unable to determine binlog position "
                    "(from file %(binlog_file)).")

    def get_master_ref(self, service, snapshot_info):
        master_ref = {
            'host': operating_system.get_ip_address(),
Example #16
0
 def repl_backup_runner(self):
     return backup.get_backup_strategy('PgBaseBackup',
                                       REPL_BACKUP_NAMESPACE)
Example #17
0
 def repl_incr_backup_runner(self):
     return backup.get_backup_strategy('EdbPgBaseBackupIncremental',
                                       REPL_BACKUP_NAMESPACE)
Example #18
0
from trove.common import cfg
from trove.common.i18n import _
from trove.common import utils
from trove.guestagent.backup.backupagent import BackupAgent
from trove.guestagent.datastore.mysql.service import MySqlAdmin
from trove.guestagent.db import models
from trove.guestagent.strategies import backup
from trove.guestagent.strategies.replication import base

AGENT = BackupAgent()
CONF = cfg.CONF

REPL_BACKUP_NAMESPACE = 'trove.guestagent.strategies.backup.mysql_impl'
REPL_BACKUP_STRATEGY = 'InnoBackupEx'
REPL_BACKUP_INCREMENTAL_STRATEGY = 'InnoBackupExIncremental'
REPL_BACKUP_RUNNER = backup.get_backup_strategy(
    REPL_BACKUP_STRATEGY, REPL_BACKUP_NAMESPACE)
REPL_BACKUP_INCREMENTAL_RUNNER = backup.get_backup_strategy(
    REPL_BACKUP_INCREMENTAL_STRATEGY, REPL_BACKUP_NAMESPACE)
REPL_EXTRA_OPTS = CONF.backup_runner_options.get(REPL_BACKUP_STRATEGY, '')

LOG = logging.getLogger(__name__)


class MysqlReplicationBase(base.Replication):
    """Base class for MySql Replication strategies."""

    def get_master_ref(self, service, snapshot_info):
        master_ref = {
            'host': netutils.get_my_ipv4(),
            'port': service.get_port()
        }
Example #19
0
MANAGER = 'mysql' if not CONF.datastore_manager else CONF.datastore_manager

MASTER_CONFIG = """
[mysqld]
log_bin = /var/lib/mysql/mysql-bin.log
"""
SLAVE_CONFIG = """
[mysqld]
log_bin = /var/lib/mysql/mysql-bin.log
relay_log = /var/lib/mysql/mysql-relay-bin.log
read_only = true
"""

REPL_BACKUP_NAMESPACE = 'trove.guestagent.strategies.backup.mysql_impl'
REPL_BACKUP_STRATEGY = 'InnoBackupEx'
REPL_BACKUP_RUNNER = backup.get_backup_strategy(REPL_BACKUP_STRATEGY,
                                                REPL_BACKUP_NAMESPACE)
REPL_EXTRA_OPTS = CONF.backup_runner_options.get(REPL_BACKUP_STRATEGY, '')

LOG = logging.getLogger(__name__)


class MysqlBinlogReplication(base.Replication):
    """MySql Replication coordinated by binlog position."""
    class UnableToDetermineBinlogPosition(exception.TroveError):
        message = _("Unable to determine binlog position "
                    "(from file %(binlog_file)).")

    def get_master_ref(self, service, snapshot_info):
        master_ref = {
            'host': operating_system.get_ip_address(),
            'port': service.get_port()
Example #20
0
 def repl_incr_backup_runner(self):
     return backup.get_backup_strategy('InnoBackupExIncremental',
                                       REPL_BACKUP_NAMESPACE)
Example #21
0
 def repl_incr_backup_runner(self):
     return backup.get_backup_strategy(BACKUP_INCR_STRATEGY,
                                       BACKUP_NAMESPACE)