示例#1
0
    def test_add_domain(self, build_mock_domain):
        backup_group = BackupGroup()
        dom = build_mock_domain

        backup_group.add_domain(dom)

        assert len(backup_group.backups) == 1
        assert backup_group.backups[0].dom == dom
示例#2
0
    def test_add_dombackup_dedup(self, build_mock_domain):
        dom = build_mock_domain
        backup_group = BackupGroup(domlst=(dom, ))

        backup_group.add_dombackup(DomBackup(dom, dev_disks=("vda", )))
        backup_group.add_dombackup(DomBackup(dom, dev_disks=("vdb", )))
        assert len(backup_group.backups) == 1
        assert len(backup_group.backups[0].disks.keys()) == 2
示例#3
0
    def test_add_domain(self, build_mock_domain):
        backup_group = BackupGroup()
        dom = build_mock_domain

        backup_group.add_domain(dom)

        assert len(backup_group.backups) == 1
        assert backup_group.backups[0].dom == dom
示例#4
0
    def test_add_dombackup_dedup(self, build_mock_domain):
        dom = build_mock_domain
        backup_group = BackupGroup(domlst=(dom, ))

        backup_group.add_dombackup(DomBackup(dom, dev_disks=("vda", )))
        backup_group.add_dombackup(DomBackup(dom, dev_disks=("vdb", )))
        assert len(backup_group.backups) == 1
        assert len(backup_group.backups[0].disks.keys()) == 2
示例#5
0
    def test_start_with_dir_by_domain(self, build_mock_domain, mocker):
        backup_group = BackupGroup(domlst=(build_mock_domain, ),
                                   target_dir="/tmp")
        dombackup = backup_group.backups[0]
        dombackup.start = mocker.stub()

        expected_target_dir = os.path.join("/tmp", dombackup.dom.name())
        backup_group.start()
        assert dombackup.target_dir == expected_target_dir
示例#6
0
    def test_dedup_add_domain(self, build_mock_domain):
        """
        Test to add 2 times the same backup and check that it's not duplicated
        """
        dom = build_mock_domain
        backup_group = BackupGroup(domlst=(dom, ))

        backup_group.add_domain(dom)
        assert len(backup_group.backups) == 1
示例#7
0
    def test_dedup_add_domain(self, build_mock_domain):
        """
        Test to add 2 times the same backup and check that it's not duplicated
        """
        dom = build_mock_domain
        backup_group = BackupGroup(domlst=(dom, ))

        backup_group.add_domain(dom)
        assert len(backup_group.backups) == 1
示例#8
0
    def test_propagate_attr(self, build_mock_domain):
        backup_group = BackupGroup(domlst=(build_mock_domain, ),
                                   compression="xz")
        assert backup_group.backups[0].compression == "xz"

        backup_group.default_bak_param["target_dir"] = "/test"
        assert backup_group.backups[0].target_dir is None
        backup_group.propagate_default_backup_attr()
        assert backup_group.backups[0].target_dir == "/test"
示例#9
0
    def test_start_with_dir_by_domain(self, build_mock_domain, mocker):
        backup_group = BackupGroup(
            domlst=(build_mock_domain, ), target_dir="/tmp"
        )
        dombackup = backup_group.backups[0]
        dombackup.start = mocker.stub()

        expected_target_dir = os.path.join("/tmp", dombackup.dom.name())
        backup_group.start()
        assert dombackup.target_dir == expected_target_dir
示例#10
0
    def test_propagate_attr(self, build_mock_domain):
        backup_group = BackupGroup(
            domlst=(build_mock_domain, ), compression="xz"
        )
        assert backup_group.backups[0].compression == "xz"

        backup_group.default_bak_param["target_dir"] = "/test"
        assert backup_group.backups[0].target_dir is None
        backup_group.propagate_default_backup_attr()
        assert backup_group.backups[0].target_dir == "/test"
示例#11
0
    def test_propagate_attr_multiple_domains(self, mocker):
        backup_group = BackupGroup(domlst=(MockDomain(_conn=mocker.stub()),
                                           MockDomain(_conn=mocker.stub())),
                                   compression="xz")
        for b in backup_group.backups:
            assert b.compression == "xz"

        backup_group.default_bak_param["target_dir"] = "/test"
        for b in backup_group.backups:
            assert b.target_dir is None

        backup_group.propagate_default_backup_attr()
        for b in backup_group.backups:
            assert b.target_dir is "/test"
示例#12
0
    def test_start_with_err(self, build_mock_domain, mocker):
        backup_group = BackupGroup(
            domlst=(MockDomain(_conn=mocker.stub()),
                    MockDomain(_conn=mocker.stub(), name="test_error")))

        def error_start(*args, **kwargs):
            raise Exception()

        backup_group.backups[0].start = error_start
        backup_group.backups[1].start = mocker.stub()

        with pytest.raises(BackupsFailureInGroupError):
            backup_group.start()

        assert backup_group.backups[1].start.called
示例#13
0
def get_backup_group(build_mock_domain, build_mock_libvirtconn):
    callbacks_registrer = DomExtSnapshotCallbackRegistrer(build_mock_libvirtconn)
    return BackupGroup(
        build_mock_libvirtconn,
        domlst=((build_mock_domain, None),),
        callbacks_registrer=callbacks_registrer,
    )
示例#14
0
    def test_start_with_err(self, build_mock_domain, mocker):
        backup_group = BackupGroup(domlst=(
            MockDomain(_conn=mocker.stub()),
            MockDomain(_conn=mocker.stub(), name="test_error")
        ))

        def error_start(*args, **kwargs):
            raise Exception()

        backup_group.backups[0].start = error_start
        backup_group.backups[1].start = mocker.stub()

        with pytest.raises(BackupsFailureInGroupError):
            backup_group.start()

        assert backup_group.backups[1].start.called
示例#15
0
    def test_propagate_attr_multiple_domains(self, mocker):
        backup_group = BackupGroup(
            domlst=(
                MockDomain(_conn=mocker.stub()),
                MockDomain(_conn=mocker.stub())
            ), compression="xz"
        )
        for b in backup_group.backups:
            assert b.compression == "xz"

        backup_group.default_bak_param["target_dir"] = "/test"
        for b in backup_group.backups:
            assert b.target_dir is None

        backup_group.propagate_default_backup_attr()
        for b in backup_group.backups:
            assert b.target_dir == "/test"
示例#16
0
    def test_self(self):
        backup_group = BackupGroup()

        assert len(backup_group.backups) == 0
示例#17
0
def build_backup_group(conn, *group_args, **group_kwargs):
    callbacks_registrer = DomExtSnapshotCallbackRegistrer(conn)
    return BackupGroup(*group_args,
                       callbacks_registrer=callbacks_registrer,
                       **group_kwargs)
示例#18
0
def build_main_backup_group(groups):
    main_group = BackupGroup()
    for g in groups:
        for d in g.backups:
            main_group.add_dombackup(d)
    return main_group
示例#19
0
    def test_self_with_domain(self, build_mock_domain):
        dom = build_mock_domain
        backup_group = BackupGroup(domlst=((dom, None), ))

        assert len(backup_group.backups) == 1
        assert backup_group.backups[0].dom == dom
示例#20
0
    def test_start(self, build_mock_domain, mocker):
        backup_group = BackupGroup(domlst=(build_mock_domain, ))
        backup_group.backups[0].start = mocker.stub()

        backup_group.start()
        assert backup_group.backups[0].start.called
示例#21
0
    def test_search_not_found(self, build_mock_domain):
        dom = build_mock_domain
        backup_group = BackupGroup()

        with pytest.raises(StopIteration):
            next(backup_group.search(dom))
示例#22
0
    def test_search(self, build_mock_domain):
        dom = build_mock_domain
        backup_group = BackupGroup(domlst=(dom, ))

        dombak = next(backup_group.search(dom))
        assert dombak == backup_group.backups[0]
示例#23
0
    def test_search(self, build_mock_domain):
        dom = build_mock_domain
        backup_group = BackupGroup(domlst=(dom, ))

        dombak = next(backup_group.search(dom))
        assert dombak == backup_group.backups[0]
示例#24
0
    def test_search_not_found(self, build_mock_domain):
        dom = build_mock_domain
        backup_group = BackupGroup()

        with pytest.raises(StopIteration):
            next(backup_group.search(dom))
示例#25
0
    def test_start(self, build_mock_domain, mocker):
        backup_group = BackupGroup(domlst=(build_mock_domain, ))
        backup_group.backups[0].start = mocker.stub()

        backup_group.start()
        assert backup_group.backups[0].start.called