def node_remove_guest( env: LibraryEnvironment, node_identifier, skip_offline_nodes=False, allow_remove_multiple_nodes=False, allow_pacemaker_remote_service_fail=False, wait: WaitType = False, ): """ remove a resource representing remote node and destroy remote node LibraryEnvironment env provides all for communication with externals string node_identifier -- node name, hostname or resource id bool skip_offline_nodes -- a flag for ignoring when some nodes are offline bool allow_remove_multiple_nodes -- is a flag for allowing remove unexpected multiple occurrence of remote node for node_identifier bool allow_pacemaker_remote_service_fail -- is a flag for allowing successfully finish this command even if stoping/disabling pacemaker_remote not succeeded """ wait_timeout = env.ensure_wait_satisfiable(wait) cib = env.get_cib() resource_element_list = _find_resources_to_remove( cib, env.report_processor, "guest", node_identifier, allow_remove_multiple_nodes, guest_node.find_node_resources, ) node_names_list = sorted( { guest_node.get_node_name_from_resource(node_element) for node_element in resource_element_list } ) if not env.is_cib_live: env.report_processor.report_list( _report_skip_live_parts_in_remove(node_names_list) ) else: _destroy_pcmk_remote_env( env, node_names_list, skip_offline_nodes, allow_pacemaker_remote_service_fail, ) for resource_element in resource_element_list: guest_node.unset_guest(resource_element) env.push_cib(wait_timeout=wait_timeout) # remove node from pcmk caches if env.is_cib_live: for node_name in node_names_list: remove_node(env.cmd_runner(), node_name)
def node_remove_guest( env, node_identifier, skip_offline_nodes=False, allow_remove_multiple_nodes=False, allow_pacemaker_remote_service_fail=False, wait=False, ): """ remove a resource representing remote node and destroy remote node LibraryEnvironment env provides all for communication with externals string node_identifier -- node name, hostname or resource id bool skip_offline_nodes -- a flag for ignoring when some nodes are offline bool allow_remove_multiple_nodes -- is a flag for allowing remove unexpected multiple occurence of remote node for node_identifier bool allow_pacemaker_remote_service_fail -- is a flag for allowing successfully finish this command even if stoping/disabling pacemaker_remote not succeeded """ env.ensure_wait_satisfiable(wait) cib = env.get_cib() resource_element_list = _find_resources_to_remove( cib, env.report_processor, "guest", node_identifier, allow_remove_multiple_nodes, guest_node.find_node_resources, ) node_names_list = sorted({ guest_node.get_node_name_from_resource(node_element) for node_element in resource_element_list }) if not env.is_cib_live: env.report_processor.process_list( _report_skip_live_parts_in_remove(node_names_list) ) else: _destroy_pcmk_remote_env( env, node_names_list, skip_offline_nodes, allow_pacemaker_remote_service_fail ) for resource_element in resource_element_list: guest_node.unset_guest(resource_element) env.push_cib(wait=wait) #remove node from pcmk caches if env.is_cib_live: for node_name in node_names_list: remove_node(env.cmd_runner(), node_name)
def assert_find_name(self, name, xml): self.assertEqual( name, guest_node.get_node_name_from_resource(etree.fromstring(xml)))
def assert_find_name(self, name, xml): self.assertEqual( name, guest_node.get_node_name_from_resource(etree.fromstring(xml)) )