def backup(self): assert self.cmd assert self.container assert self.filename archivate.archivate_container_cmd_output( self.archive, self.container, self.cmd, self.filename)
def backup(self): assert self.cmd assert self.container assert self.filename archivate.archivate_container_cmd_output( self.archive, self.container, self.cmd, self.filename)
def backup(self): assert self.container assert self.backup_directory stdout, _ = docker.run_in_container( self.container, ["find", self.backup_directory, "-type", "f"], stdout=subprocess.PIPE) filenames = stdout.strip().split() for filename in filenames: filename = filename[len(self.backup_directory):].lstrip("\/") if filename in self.banned_files: continue if self.allowed_files is not None \ and filename not in self.allowed_files: continue path = os.path.join(self.backup_directory, filename) archivate.archivate_container_cmd_output( self.archive, self.container, ["cat", path], "{0}/{1}".format(self.container, filename))
def backup(self): assert self.container assert self.backup_directory stdout, _ = docker.run_in_container( self.container, ["find", self.backup_directory, "-type", "f"], stdout=subprocess.PIPE) filenames = stdout.strip().split() for filename in filenames: filename = filename[len(self.backup_directory):].lstrip("\/") if filename in self.banned_files: continue if self.allowed_files is not None \ and filename not in self.allowed_files: continue path = os.path.join(self.backup_directory, filename) archivate.archivate_container_cmd_output( self.archive, self.container, ["cat", path], "{0}/{1}".format(self.container, filename) )
def test_archivate_container_cmd_output(mocker): test_archive = mocker.Mock() container = "test_container" cmd = ["test", "cmd"] filename = "archive_path" output_data = "output_data" docker_runnner = mocker.patch( "octane.util.docker.run_in_container", return_value=(output_data, None)) io_mock = mocker.patch("io.BytesIO", return_value=io.BytesIO()) mock_tar = mocker.patch("tarfile.TarInfo") archivate.archivate_container_cmd_output( test_archive, container, cmd, filename) docker_runnner.assert_called_once_with( container, cmd, stdout=subprocess.PIPE) io_mock.assert_called_once_with() mock_tar.assert_called_once_with(filename) tar_info = mock_tar.return_value assert tar_info.size == len(output_data) test_archive.addfile.assert_called_once_with( tar_info, io_mock.return_value) assert io_mock.return_value.getvalue() == output_data