Ejemplo n.º 1
0
def storage_from_dict(backup_args, max_segment_size):
    storage_name = backup_args['storage']
    container = backup_args['container']

    if storage_name == "swift":
        client_manager = backup_args['client_manager']

        storage = swift.SwiftStorage(client_manager, container,
                                     max_segment_size)
    elif storage_name == "s3":
        storage = s3.S3Storage(backup_args['access_key'],
                               backup_args['secret_key'],
                               backup_args['endpoint'], container,
                               max_segment_size)
    elif storage_name == "local":
        storage = local.LocalStorage(storage_path=container,
                                     max_segment_size=max_segment_size)
    elif storage_name == "ssh":
        storage = ssh.SshStorage(
            container,
            backup_args['ssh_key'],
            backup_args['ssh_username'],
            backup_args['ssh_host'],
            int(backup_args.get('ssh_port', freezer_config.DEFAULT_SSH_PORT)),
            max_segment_size=max_segment_size)
    else:
        raise Exception("No storage found for name {0}".format(
            backup_args['storage']))

    return storage
Ejemplo n.º 2
0
def storage_from_dict(backup_args, max_segment_size):
    storage_name = backup_args['storage']
    container = backup_args['container']

    if storage_name == "swift":
        client_manager = backup_args['client_manager']

        storage = swift.SwiftStorage(client_manager, container,
                                     max_segment_size)
    elif storage_name == "s3":
        storage = s3.S3Storage(backup_args['access_key'],
                               backup_args['secret_key'],
                               backup_args['endpoint'], container,
                               max_segment_size)
    elif storage_name == "local":
        storage = local.LocalStorage(storage_path=container,
                                     max_segment_size=max_segment_size)
    elif storage_name == "ssh":
        if backup_args['ssh_password']:
            storage = ssh.SshStorage(container,
                                     backup_args['ssh_username'],
                                     backup_args['ssh_host'],
                                     int(backup_args['ssh_port']),
                                     max_segment_size=max_segment_size,
                                     remote_pwd=backup_args['ssh_password'])
        else:
            storage = ssh.SshStorage(container,
                                     backup_args['ssh_username'],
                                     backup_args['ssh_host'],
                                     int(backup_args['ssh_port']),
                                     max_segment_size=max_segment_size,
                                     ssh_key_path=backup_args['ssh_key'])
    elif storage_name in ["ftp", "ftps"]:
        args = [
            container, backup_args['ftp_password'],
            backup_args['ftp_username'], backup_args['ftp_host'],
            int(backup_args['ftp_port']), max_segment_size
        ]
        if storage_name == 'ftps':
            args.append(backup_args['ftp_keyfile'])
            args.append(backup_args['ftp_certfile'])
        LOG.info('args=%s' % args)
        storage = importutils.import_object(
            "freezer.storage.ftp.{0}Storage".format(storage_name.capitalize()),
            *args)
    else:
        raise Exception("No storage found for name {0}".format(
            backup_args['storage']))

    return storage
Ejemplo n.º 3
0
    def setUp(self):
        opts = osclients.OpenstackOpts.create_from_env().get_opts_dicts()
        self.storage = swift.SwiftStorage(
            osclients.OSClientManager(opts.pop('auth_url'),
                                      opts.pop('auth_method', 'password'),
                                      **opts
                                      ),
            "freezer_ops-aw1ops1-gerrit0001.aw1.hpcloud.net",
            "/tmp/",
            100, skip_prepare=True
        )

        self.files = [
            "tar_metadata_hostname_backup_1000_0",
            "hostname_backup_1000_0",
        ]

        self.increments = [
            "tar_metadata_hostname_backup_1000_0",
            "hostname_backup_1000_0",
            "tar_metadata_hostname_backup_2000_1",
            "hostname_backup_2000_1",
        ]

        self.cycles_increments = [
            "tar_metadata_hostname_backup_1000_0",
            "hostname_backup_1000_0",
            "tar_metadata_hostname_backup_2000_1",
            "hostname_backup_2000_1",
            "tar_metadata_hostname_backup_3000_0",
            "hostname_backup_3000_0",
            "tar_metadata_hostname_backup_4000_1",
            "hostname_backup_4000_1",
        ]

        self.backup = base.Backup(self.storage,
                                  "hostname_backup", 1000, tar_meta=True,)
        self.backup_2 = base.Backup(self.storage,
                                    "hostname_backup", 3000, tar_meta=True)
        self.increment = base.Backup(self.storage,
                                     "hostname_backup", 2000,
                                     full_backup=self.backup,
                                     level=1,
                                     tar_meta=True)
        self.increment_2 = base.Backup(self.storage,
                                       "hostname_backup", 4000,
                                       full_backup=self.backup_2,
                                       level=1,
                                       tar_meta=True)
Ejemplo n.º 4
0
    def __init__(self):
        self.dereference_symlink = None
        self.mysql_conf = '/tmp/freezer-test-conf-file'
        self.backup_media = 'fs'
        self.lvm_auto_snap = '/dev/null'
        self.lvm_volgroup = 'testgroup'
        self.lvm_srcvol = 'testvol'
        self.lvm_dirmount = '/tmp/testdir'
        self.lvm_snapsize = '1G'
        self.lvm_snapname = 'testsnapname'
        self.lvcreate_path = 'true'
        self.lvremove_path = 'true'
        self.mode = 'mysql'
        self.bash_path = 'true'
        self.file_path = 'true'
        self.mount_path = 'true'
        self.umount_path = 'true'
        self.backup_name = 'test-backup-name'
        self.hostname = 'test-hostname'
        self.curr_backup_level = 0
        self.path_to_backup = '/tmp'
        self.tar_path = 'true'
        self.no_incremental = 'true'
        self.exclude = 'true'
        self.encrypt_pass_file = 'true'
        self.openssl_path = 'true'
        self.always_level = '0'
        self.max_level = '0'
        self.hostname_backup_name = "hostname_backup_name"
        self.remove_older_than = '0'
        self.max_segment_size = '0'
        self.time_stamp = 123456789
        self.container = 'test-container'
        self.max_level = '20'
        self.encrypt_pass_file = '/dev/random'
        self.always_level = '20'
        self.overwrite = False
        self.remove_from_date = '2014-12-03T23:23:23'
        self.restart_always_level = 100000
        self.restore_abs_path = '/tmp'
        self.restore_from_date = '2014-12-03T23:23:23'
        self.restore_from_host = 'test-hostname'
        self.action = 'info'
        self.shadow = ''
        self.windows_volume = ''
        self.insecure = True
        self.os_auth_ver = 2
        self.dry_run = False
        self.upload_limit = -1
        self.download_limit = -1
        self.sql_server_instance = 'Sql Server'
        self.cinder_vol_id = ''
        self.cinder_vol_name = ''
        self.cindernative_vol_id = ''
        self.cindernative_backup_id = ''
        self.nova_inst_id = ''
        self.nova_inst_name = ''
        self.lvm_snapperm = 'ro'

        self.compression = 'gzip'
        self.storage = mock.MagicMock()
        self.engine = mock.MagicMock()
        opts = osclients.OpenstackOpts.create_from_env().get_opts_dicts()
        self.client_manager = osclients.OSClientManager(**opts)
        self.client_manager.get_swift = mock.Mock(
            return_value=FakeSwiftClient().client.Connection())
        self.client_manager.create_swift = self.client_manager.get_swift
        self.storage = swift.SwiftStorage(self.client_manager, self.container,
                                          self.max_segment_size)
        self.engine = tar_engine.TarEngine(self.compression,
                                           self.dereference_symlink,
                                           self.exclude, self.storage, 1000,
                                           False)
        self.client_manager.get_glance = mock.Mock(
            return_value=FakeGlanceClient())
        self.client_manager.get_cinder = mock.Mock(
            return_value=FakeCinderClient())
        nova_client = mock.MagicMock()

        self.client_manager.get_nova = mock.Mock(return_value=nova_client)

        self.command = ''