Example #1
0
def _stonith_warnings(cib: Element, is_sbd_running: bool) -> List[str]:
    warning_list = []

    is_stonith_enabled = stonith.is_stonith_enabled(get_crm_config(cib))
    stonith_all, stonith_with_action, stonith_with_method_cycle = (
        stonith.get_misconfigured_resources(get_resources(cib)))

    if is_stonith_enabled and not stonith_all and not is_sbd_running:
        warning_list.append(
            "No stonith devices and stonith-enabled is not false")

    if stonith_with_action:
        warning_list.append(
            ("Following stonith devices have the 'action' option set, "
             "it is recommended to set {0} instead: {1}").format(
                 format_list(STONITH_ACTION_REPLACED_BY),
                 format_list([x.get("id", "") for x in stonith_with_action]),
             ))

    if stonith_with_method_cycle:
        warning_list.append(
            "Following stonith devices have the 'method' option set "
            "to 'cycle' which is potentially dangerous, please consider using "
            "'onoff': {0}".format(
                format_list(
                    [x.get("id", "") for x in stonith_with_method_cycle]), ))

    return warning_list
Example #2
0
 def test_set_to_disabled(self):
     crm_config = etree.fromstring("""
         <crm_config>
             <cluster_property_set>
                 <nvpair name="abc" value="true" />
                 <nvpair name="stonith-enabled" value="false" />
             </cluster_property_set>
         </crm_config>
     """)
     self.assertFalse(stonith.is_stonith_enabled(crm_config))
Example #3
0
 def test_not_set(self):
     crm_config = etree.fromstring("<crm_config />")
     self.assertTrue(stonith.is_stonith_enabled(crm_config))