def fixture_corosync_conf(self, node1_name=True, node2_name=True): # nodelist is enough, nothing else matters for the tests config = dedent("""\ nodelist { node { ring0_addr: node-1-addr nodeid: 1 name: node-1 } node { ring0_addr: node-2-addr nodeid: 2 name: node-2 } } """) if not node1_name: config = re.sub(r"\s+name: node-1\n", "\n", config) if not node2_name: config = re.sub(r"\s+name: node-2\n", "\n", config) self.corosync_conf_text = config self.corosync_conf_facade = CorosyncConfigFacade( CorosyncParser.parse(config.encode("utf-8"))) CorosyncConfigFacade.need_stopped_cluster = False CorosyncConfigFacade.need_qdevice_reload = False
def test_success(self): new_corosync_conf_data = "totem {\n version: 3\n}\n" self.config.env.push_corosync_conf( corosync_conf_text=new_corosync_conf_data) env = self.env_assistant.get_env() env.push_corosync_conf( CorosyncConfigFacade( CorosyncParser.parse(new_corosync_conf_data.encode("utf-8"))))
def test_bad_all(self): section = CorosyncSection("sec#tion") section.add_attribute("na#me", "va}l{ue") new_conf = CorosyncConfigFacade(section) env = self.env_assistant.get_env() assert_raise_library_error( lambda: env.push_corosync_conf(new_conf), fixture.error( report_codes.COROSYNC_CONFIG_CANNOT_SAVE_INVALID_NAMES_VALUES, section_name_list=["sec#tion"], attribute_name_list=["sec#tion.na#me"], attribute_value_pairs=[("sec#tion.na#me", "va}l{ue")], ))