Пример #1
0
 def test_success(self):
     self.assertEqual(
         Version(3, 0, 9),
         lib.get_cib_crm_feature_set(
             etree.XML('<cib crm_feature_set="3.0.9" />')
         )
     )
Пример #2
0
 def test_success_no_revision(self):
     self.assertEqual(
         Version(3, 1),
         lib.get_cib_crm_feature_set(
             etree.XML('<cib crm_feature_set="3.1" />')
         )
     )
Пример #3
0
 def test_success_no_revision(self):
     self.assertEqual(
         Version(3, 1),
         lib.get_cib_crm_feature_set(
             etree.XML('<cib crm_feature_set="3.1" />')
         )
     )
Пример #4
0
 def get_cib(self, minimal_version=None):
     if self.__loaded_cib_diff_source is not None:
         raise AssertionError("CIB has already been loaded")
     self.__loaded_cib_diff_source = get_cib_xml(self.cmd_runner())
     self.__loaded_cib_to_modify = get_cib(self.__loaded_cib_diff_source)
     if minimal_version is not None:
         upgraded_cib = ensure_cib_version(
             self.cmd_runner(),
             self.__loaded_cib_to_modify,
             minimal_version
         )
         if upgraded_cib is not None:
             self.__loaded_cib_to_modify = upgraded_cib
             self.__loaded_cib_diff_source = etree_to_str(upgraded_cib)
             if not self._cib_upgrade_reported:
                 self.report_processor.process(
                     reports.cib_upgrade_successful()
                 )
             self._cib_upgrade_reported = True
     self.__loaded_cib_diff_source_feature_set = (
         get_cib_crm_feature_set(
             self.__loaded_cib_to_modify,
             none_if_missing=True
         )
         or
         Version(0, 0, 0)
     )
     return self.__loaded_cib_to_modify
Пример #5
0
 def test_success(self):
     self.assertEqual(
         Version(3, 0, 9),
         lib.get_cib_crm_feature_set(
             etree.XML('<cib crm_feature_set="3.0.9" />')
         )
     )
Пример #6
0
 def get_cib(self, minimal_version=None):
     if self.__loaded_cib_diff_source is not None:
         raise AssertionError("CIB has already been loaded")
     self.__loaded_cib_diff_source = get_cib_xml(self.cmd_runner())
     self.__loaded_cib_to_modify = get_cib(self.__loaded_cib_diff_source)
     if minimal_version is not None:
         upgraded_cib = ensure_cib_version(
             self.cmd_runner(),
             self.__loaded_cib_to_modify,
             minimal_version
         )
         if upgraded_cib is not None:
             self.__loaded_cib_to_modify = upgraded_cib
             self.__loaded_cib_diff_source = etree_to_str(upgraded_cib)
             if not self._cib_upgrade_reported:
                 self.report_processor.process(
                     reports.cib_upgrade_successful()
                 )
             self._cib_upgrade_reported = True
     self.__loaded_cib_diff_source_feature_set = (
         get_cib_crm_feature_set(
             self.__loaded_cib_to_modify,
             none_if_missing=True
         )
         or
         Version(0, 0, 0)
     )
     return self.__loaded_cib_to_modify
Пример #7
0
 def test_missing_attribute_none(self):
     self.assertEqual(
         None,
         lib.get_cib_crm_feature_set(
             etree.XML('<cib />'),
             none_if_missing=True
         )
     )
Пример #8
0
 def test_missing_attribute(self):
     assert_raise_library_error(
         lambda: lib.get_cib_crm_feature_set(etree.XML("<cib />")),
         fixture.error(
             report_codes.CIB_LOAD_ERROR_BAD_FORMAT,
             reason=(
                 "the attribute 'crm_feature_set' of the element 'cib' is "
                 "missing")))
Пример #9
0
 def test_missing_attribute_none(self):
     self.assertEqual(
         None,
         lib.get_cib_crm_feature_set(
             etree.XML('<cib />'),
             none_if_missing=True
         )
     )
Пример #10
0
 def test_invalid_version_at_end(self):
     assert_raise_library_error(
         lambda: lib.get_cib_crm_feature_set(
             etree.XML('<cib crm_feature_set="3.0.9x" />')),
         fixture.error(
             report_codes.CIB_LOAD_ERROR_BAD_FORMAT,
             reason=(
                 "the attribute 'crm_feature_set' of the element 'cib' has "
                 "an invalid value: '3.0.9x'")))
Пример #11
0
 def test_invalid_version_at_end(self):
     assert_raise_library_error(
         lambda: lib.get_cib_crm_feature_set(
             etree.XML('<cib crm_feature_set="3.0.9x" />')
         ),
         fixture.error(
             report_codes.CIB_LOAD_ERROR_BAD_FORMAT,
             reason=(
                 "the attribute 'crm_feature_set' of the element 'cib' has "
                 "an invalid value: '3.0.9x'"
             )
         )
     )
Пример #12
0
 def test_missing_attribute(self):
     assert_raise_library_error(
         lambda: lib.get_cib_crm_feature_set(
             etree.XML("<cib />")
         ),
         fixture.error(
             report_codes.CIB_LOAD_ERROR_BAD_FORMAT,
             reason=(
                 "the attribute 'crm_feature_set' of the element 'cib' is "
                 "missing"
             )
         )
     )
Пример #13
0
    def get_cib(
        self,
        minimal_version: Optional[Version] = None,
        nice_to_have_version: Optional[Version] = None,
    ) -> _Element:
        if self.__loaded_cib_diff_source is not None:
            raise AssertionError("CIB has already been loaded")

        self.__loaded_cib_diff_source = get_cib_xml(self.cmd_runner())
        self.__loaded_cib_to_modify = get_cib(self.__loaded_cib_diff_source)

        if (
            nice_to_have_version is not None
            and minimal_version is not None
            and minimal_version >= nice_to_have_version
        ):
            nice_to_have_version = None

        for version, mandatory in (
            (nice_to_have_version, False),
            (minimal_version, True),
        ):
            if version is not None:
                upgraded_cib, was_upgraded = ensure_cib_version(
                    self.cmd_runner(),
                    self.__loaded_cib_to_modify,
                    version,
                    fail_if_version_not_met=mandatory,
                )
                if was_upgraded:
                    self.__loaded_cib_to_modify = upgraded_cib
                    self.__loaded_cib_diff_source = etree_to_str(upgraded_cib)
                    if not self._cib_upgrade_reported:
                        self.report_processor.report(
                            ReportItem.info(
                                reports.messages.CibUpgradeSuccessful()
                            )
                        )
                    self._cib_upgrade_reported = True

        self.__loaded_cib_diff_source_feature_set = get_cib_crm_feature_set(
            self.__loaded_cib_to_modify, none_if_missing=True
        ) or Version(0, 0, 0)
        return self.__loaded_cib_to_modify
Пример #14
0
Файл: env.py Проект: nrwahl2/pcs
 def get_cib(self, minimal_version: Optional[Version] = None) -> Element:
     if self.__loaded_cib_diff_source is not None:
         raise AssertionError("CIB has already been loaded")
     self.__loaded_cib_diff_source = get_cib_xml(self.cmd_runner())
     self.__loaded_cib_to_modify = get_cib(self.__loaded_cib_diff_source)
     if minimal_version is not None:
         upgraded_cib = ensure_cib_version(self.cmd_runner(),
                                           self.__loaded_cib_to_modify,
                                           minimal_version)
         if upgraded_cib is not None:
             self.__loaded_cib_to_modify = upgraded_cib
             self.__loaded_cib_diff_source = etree_to_str(upgraded_cib)
             if not self._cib_upgrade_reported:
                 self.report_processor.report(
                     ReportItem.info(
                         reports.messages.CibUpgradeSuccessful()))
             self._cib_upgrade_reported = True
     self.__loaded_cib_diff_source_feature_set = get_cib_crm_feature_set(
         self.__loaded_cib_to_modify, none_if_missing=True) or Version(
             0, 0, 0)
     return self.__loaded_cib_to_modify