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
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
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)
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 = ''