def create( env, stonith_id, stonith_agent_name, operations, meta_attributes, instance_attributes, allow_absent_agent=False, allow_invalid_operation=False, allow_invalid_instance_attributes=False, use_default_operations=True, ensure_disabled=False, wait=False, ): """ Create stonith as resource in a cib. LibraryEnvironment env provides all for communication with externals string stonith_id is an identifier of stonith resource string stonith_agent_name contains name for the identification of agent list of dict operations contains attributes for each entered operation dict meta_attributes contains attributes for primitive/meta_attributes dict instance_attributes contains attributes for primitive/instance_attributes bool allow_absent_agent is a flag for allowing agent that is not installed in a system bool allow_invalid_operation is a flag for allowing to use operations that are not listed in a stonith agent metadata bool allow_invalid_instance_attributes is a flag for allowing to use instance attributes that are not listed in a stonith agent metadata or for allowing to not use the instance_attributes that are required in stonith agent metadata bool use_default_operations is a flag for stopping stopping of adding default cib operations (specified in a stonith agent) bool ensure_disabled is flag that keeps resource in target-role "Stopped" mixed wait is flag for controlling waiting for pacemaker iddle mechanism """ stonith_agent = get_agent( env.report_processor, env.cmd_runner(), stonith_agent_name, allow_absent_agent, ) if stonith_agent.get_provides_unfencing(): meta_attributes["provides"] = "unfencing" with resource_environment( env, stonith_id, wait, ensure_disabled or are_meta_disabled(meta_attributes), ) as resources_section: resource.primitive.create( env.report_processor, resources_section, stonith_id, stonith_agent, operations, meta_attributes, instance_attributes, allow_invalid_operation, allow_invalid_instance_attributes, use_default_operations, ensure_disabled, )
def create_into_bundle( env, resource_id, resource_agent_name, operation_list, meta_attributes, instance_attributes, bundle_id, allow_absent_agent=False, allow_invalid_operation=False, allow_invalid_instance_attributes=False, use_default_operations=True, ensure_disabled=False, wait=False, allow_not_suitable_command=False, allow_not_accessible_resource=False, ): # pylint: disable=too-many-arguments, too-many-locals """ Create a new resource in a cib and put it into an existing bundle LibraryEnvironment env provides all for communication with externals string resource_id is identifier of resource string resource_agent_name contains name for the identification of agent list of dict operation_list contains attributes for each entered operation dict meta_attributes contains attributes for primitive/meta_attributes dict instance_attributes contains attributes for primitive/instance_attributes string bundle_id is id of an existing bundle to put the created resource in bool allow_absent_agent is a flag for allowing agent that is not installed in a system bool allow_invalid_operation is a flag for allowing to use operations that are not listed in a resource agent metadata bool allow_invalid_instance_attributes is a flag for allowing to use instance attributes that are not listed in a resource agent metadata or for allowing to not use the instance_attributes that are required in resource agent metadata bool use_default_operations is a flag for stopping stopping of adding default cib operations (specified in a resource agent) bool ensure_disabled is flag that keeps resource in target-role "Stopped" mixed wait is flag for controlling waiting for pacemaker idle mechanism bool allow_not_suitable_command -- flag for FORCE_NOT_SUITABLE_COMMAND bool allow_not_accessible_resource -- flag for FORCE_RESOURCE_IN_BUNDLE_NOT_ACCESSIBLE """ resource_agent = get_agent( env.report_processor, env.cmd_runner(), resource_agent_name, allow_absent_agent, ) with resource_environment( env, wait, [resource_id], _ensure_disabled_after_wait( ensure_disabled or resource.common.are_meta_disabled(meta_attributes)), required_cib_version=Version(2, 8, 0)) as resources_section: id_provider = IdProvider(resources_section) _check_special_cases(env, resource_agent, resources_section, resource_id, meta_attributes, instance_attributes, allow_not_suitable_command) primitive_element = resource.primitive.create( env.report_processor, resources_section, id_provider, resource_id, resource_agent, operation_list, meta_attributes, instance_attributes, allow_invalid_operation, allow_invalid_instance_attributes, use_default_operations, ) if ensure_disabled: resource.common.disable(primitive_element, id_provider) bundle_el = _find_bundle(resources_section, bundle_id) if not resource.bundle.is_pcmk_remote_accessible(bundle_el): env.report_processor.process( reports.get_problem_creator( report_codes.FORCE_RESOURCE_IN_BUNDLE_NOT_ACCESSIBLE, allow_not_accessible_resource)( reports.resource_in_bundle_not_accessible, bundle_id, resource_id)) resource.bundle.add_resource(bundle_el, primitive_element)
def create_in_group( env, resource_id, resource_agent_name, group_id, operation_list, meta_attributes, instance_attributes, allow_absent_agent=False, allow_invalid_operation=False, allow_invalid_instance_attributes=False, use_default_operations=True, ensure_disabled=False, adjacent_resource_id=None, put_after_adjacent=False, wait=False, allow_not_suitable_command=False, ): # pylint: disable=too-many-arguments, too-many-locals """ Create resource in a cib and put it into defined group LibraryEnvironment env provides all for communication with externals string resource_id is identifier of resource string resource_agent_name contains name for the identification of agent string group_id is identificator for group to put primitive resource inside list of dict operation_list contains attributes for each entered operation dict meta_attributes contains attributes for primitive/meta_attributes bool allow_absent_agent is a flag for allowing agent that is not installed in a system bool allow_invalid_operation is a flag for allowing to use operations that are not listed in a resource agent metadata bool allow_invalid_instance_attributes is a flag for allowing to use instance attributes that are not listed in a resource agent metadata or for allowing to not use the instance_attributes that are required in resource agent metadata bool use_default_operations is a flag for stopping stopping of adding default cib operations (specified in a resource agent) bool ensure_disabled is flag that keeps resource in target-role "Stopped" string adjacent_resource_id identify neighbor of a newly created resource bool put_after_adjacent is flag to put a newly create resource befor/after adjacent resource mixed wait is flag for controlling waiting for pacemaker idle mechanism bool allow_not_suitable_command -- flag for FORCE_NOT_SUITABLE_COMMAND """ resource_agent = get_agent( env.report_processor, env.cmd_runner(), resource_agent_name, allow_absent_agent, ) with resource_environment( env, wait, [resource_id], _ensure_disabled_after_wait( ensure_disabled or resource.common.are_meta_disabled(meta_attributes)) ) as resources_section: id_provider = IdProvider(resources_section) _check_special_cases(env, resource_agent, resources_section, resource_id, meta_attributes, instance_attributes, allow_not_suitable_command) primitive_element = resource.primitive.create( env.report_processor, resources_section, id_provider, resource_id, resource_agent, operation_list, meta_attributes, instance_attributes, allow_invalid_operation, allow_invalid_instance_attributes, use_default_operations, ) if ensure_disabled: resource.common.disable(primitive_element, id_provider) validate_id(group_id, "group name") resource.group.place_resource( resource.group.provide_group(resources_section, group_id), primitive_element, adjacent_resource_id, put_after_adjacent, )
def create_as_clone( env, resource_id, resource_agent_name, operation_list, meta_attributes, instance_attributes, clone_meta_options, allow_absent_agent=False, allow_invalid_operation=False, allow_invalid_instance_attributes=False, use_default_operations=True, ensure_disabled=False, wait=False, allow_not_suitable_command=False, ): # pylint: disable=too-many-arguments, too-many-locals """ Create resource in a clone LibraryEnvironment env provides all for communication with externals string resource_id is identifier of resource string resource_agent_name contains name for the identification of agent list of dict operation_list contains attributes for each entered operation dict meta_attributes contains attributes for primitive/meta_attributes dict instance_attributes contains attributes for primitive/instance_attributes dict clone_meta_options contains attributes for clone/meta_attributes bool allow_absent_agent is a flag for allowing agent that is not installed in a system bool allow_invalid_operation is a flag for allowing to use operations that are not listed in a resource agent metadata bool allow_invalid_instance_attributes is a flag for allowing to use instance attributes that are not listed in a resource agent metadata or for allowing to not use the instance_attributes that are required in resource agent metadata bool use_default_operations is a flag for stopping stopping of adding default cib operations (specified in a resource agent) bool ensure_disabled is flag that keeps resource in target-role "Stopped" mixed wait is flag for controlling waiting for pacemaker idle mechanism bool allow_not_suitable_command -- flag for FORCE_NOT_SUITABLE_COMMAND """ resource_agent = get_agent( env.report_processor, env.cmd_runner(), resource_agent_name, allow_absent_agent, ) with resource_environment( env, wait, [resource_id], _ensure_disabled_after_wait( ensure_disabled or resource.common.are_meta_disabled(meta_attributes) or resource.common.is_clone_deactivated_by_meta( clone_meta_options))) as resources_section: id_provider = IdProvider(resources_section) _check_special_cases(env, resource_agent, resources_section, resource_id, meta_attributes, instance_attributes, allow_not_suitable_command) primitive_element = resource.primitive.create( env.report_processor, resources_section, id_provider, resource_id, resource_agent, operation_list, meta_attributes, instance_attributes, allow_invalid_operation, allow_invalid_instance_attributes, use_default_operations, ) clone_element = resource.clone.append_new( resources_section, id_provider, primitive_element, clone_meta_options, ) if ensure_disabled: resource.common.disable(clone_element, id_provider)
def create_in_group( env, stonith_id, stonith_agent_name, group_id, operations, meta_attributes, instance_attributes, allow_absent_agent=False, allow_invalid_operation=False, allow_invalid_instance_attributes=False, use_default_operations=True, ensure_disabled=False, adjacent_resource_id=None, put_after_adjacent=False, wait=False, ): # pylint: disable=too-many-arguments, too-many-locals """ Create stonith as resource in a cib and put it into defined group. LibraryEnvironment env provides all for communication with externals string stonith_id is an identifier of stonith resource string stonith_agent_name contains name for the identification of agent string group_id is identificator for group to put stonith inside list of dict operations contains attributes for each entered operation dict meta_attributes contains attributes for primitive/meta_attributes dict instance_attributes contains attributes for primitive/instance_attributes bool allow_absent_agent is a flag for allowing agent that is not installed in a system bool allow_invalid_operation is a flag for allowing to use operations that are not listed in a stonith agent metadata bool allow_invalid_instance_attributes is a flag for allowing to use instance attributes that are not listed in a stonith agent metadata or for allowing to not use the instance_attributes that are required in stonith agent metadata bool use_default_operations is a flag for stopping stopping of adding default cib operations (specified in a stonith agent) bool ensure_disabled is flag that keeps resource in target-role "Stopped" string adjacent_resource_id identify neighbor of a newly created stonith bool put_after_adjacent is flag to put a newly create resource befor/after adjacent stonith mixed wait is flag for controlling waiting for pacemaker idle mechanism """ stonith_agent = get_agent( env.report_processor, env.cmd_runner(), stonith_agent_name, allow_absent_agent, ) if stonith_agent.get_provides_unfencing(): meta_attributes["provides"] = "unfencing" with resource_environment( env, wait, [stonith_id], _ensure_disabled_after_wait( ensure_disabled or are_meta_disabled(meta_attributes), ), ) as resources_section: id_provider = IdProvider(resources_section) stonith_element = resource.primitive.create( env.report_processor, resources_section, id_provider, stonith_id, stonith_agent, operations, meta_attributes, instance_attributes, allow_invalid_operation, allow_invalid_instance_attributes, use_default_operations, ) if ensure_disabled: resource.common.disable(stonith_element, id_provider) validate_id(group_id, "group name") resource.group.place_resource( resource.group.provide_group(resources_section, group_id), stonith_element, adjacent_resource_id, put_after_adjacent, )
def create( env, stonith_id, stonith_agent_name, operations, meta_attributes, instance_attributes, allow_absent_agent=False, allow_invalid_operation=False, allow_invalid_instance_attributes=False, use_default_operations=True, ensure_disabled=False, wait=False, ): # pylint: disable=too-many-arguments, too-many-locals """ Create stonith as resource in a cib. LibraryEnvironment env provides all for communication with externals string stonith_id is an identifier of stonith resource string stonith_agent_name contains name for the identification of agent list of dict operations contains attributes for each entered operation dict meta_attributes contains attributes for primitive/meta_attributes dict instance_attributes contains attributes for primitive/instance_attributes bool allow_absent_agent is a flag for allowing agent that is not installed in a system bool allow_invalid_operation is a flag for allowing to use operations that are not listed in a stonith agent metadata bool allow_invalid_instance_attributes is a flag for allowing to use instance attributes that are not listed in a stonith agent metadata or for allowing to not use the instance_attributes that are required in stonith agent metadata bool use_default_operations is a flag for stopping stopping of adding default cib operations (specified in a stonith agent) bool ensure_disabled is flag that keeps resource in target-role "Stopped" mixed wait is flag for controlling waiting for pacemaker idle mechanism """ stonith_agent = get_agent( env.report_processor, env.cmd_runner(), stonith_agent_name, allow_absent_agent, ) if stonith_agent.get_provides_unfencing(): meta_attributes["provides"] = "unfencing" with resource_environment( env, wait, [stonith_id], _ensure_disabled_after_wait( ensure_disabled or are_meta_disabled(meta_attributes), ), ) as resources_section: id_provider = IdProvider(resources_section) stonith_element = resource.primitive.create( env.report_processor, resources_section, id_provider, stonith_id, stonith_agent, raw_operation_list=operations, meta_attributes=meta_attributes, instance_attributes=instance_attributes, allow_invalid_operation=allow_invalid_operation, allow_invalid_instance_attributes=allow_invalid_instance_attributes, use_default_operations=use_default_operations, resource_type="stonith", ) if ensure_disabled: resource.common.disable(stonith_element, id_provider)
def _create_as_clone_common( tag, env, resource_id, resource_agent_name, operations, meta_attributes, instance_attributes, clone_meta_options, allow_absent_agent=False, allow_invalid_operation=False, allow_invalid_instance_attributes=False, use_default_operations=True, ensure_disabled=False, wait=False, ): """ Create resource in some kind of clone (clone or master). Currently the only difference between commands "create_as_clone" and "create_as_master" is in tag. So the commands create_as_clone and create_as_master are created by passing tag with partial. string tag is any clone tag. Currently it can be "clone" or "master". LibraryEnvironment env provides all for communication with externals string resource_id is identifier of resource string resource_agent_name contains name for the identification of agent list of dict operations contains attributes for each entered operation dict meta_attributes contains attributes for primitive/meta_attributes dict instance_attributes contains attributes for primitive/instance_attributes dict clone_meta_options contains attributes for clone/meta_attributes bool allow_absent_agent is a flag for allowing agent that is not installed in a system bool allow_invalid_operation is a flag for allowing to use operations that are not listed in a resource agent metadata bool allow_invalid_instance_attributes is a flag for allowing to use instance attributes that are not listed in a resource agent metadata or for allowing to not use the instance_attributes that are required in resource agent metadata bool use_default_operations is a flag for stopping stopping of adding default cib operations (specified in a resource agent) bool ensure_disabled is flag that keeps resource in target-role "Stopped" mixed wait is flag for controlling waiting for pacemaker iddle mechanism """ resource_agent = get_agent( env.report_processor, env.cmd_runner(), resource_agent_name, allow_absent_agent, ) with resource_environment(env, resource_id, wait, ( ensure_disabled or are_meta_disabled(meta_attributes) or is_clone_deactivated_by_meta(clone_meta_options) )) as resources_section: primitive_element = resource.primitive.create( env.report_processor, resources_section, resource_id, resource_agent, operations, meta_attributes, instance_attributes, allow_invalid_operation, allow_invalid_instance_attributes, use_default_operations, ) if ensure_disabled: clone_meta_options = disable_meta(clone_meta_options) resource.clone.append_new( tag, resources_section, primitive_element, clone_meta_options, )
def create_in_group( env, resource_id, resource_agent_name, group_id, operations, meta_attributes, instance_attributes, allow_absent_agent=False, allow_invalid_operation=False, allow_invalid_instance_attributes=False, use_default_operations=True, ensure_disabled=False, adjacent_resource_id=None, put_after_adjacent=False, wait=False, ): """ Create resource in a cib and put it into defined group LibraryEnvironment env provides all for communication with externals string resource_id is identifier of resource string resource_agent_name contains name for the identification of agent string group_id is identificator for group to put primitive resource inside list of dict operations contains attributes for each entered operation dict meta_attributes contains attributes for primitive/meta_attributes bool allow_absent_agent is a flag for allowing agent that is not installed in a system bool allow_invalid_operation is a flag for allowing to use operations that are not listed in a resource agent metadata bool allow_invalid_instance_attributes is a flag for allowing to use instance attributes that are not listed in a resource agent metadata or for allowing to not use the instance_attributes that are required in resource agent metadata bool use_default_operations is a flag for stopping stopping of adding default cib operations (specified in a resource agent) bool ensure_disabled is flag that keeps resource in target-role "Stopped" string adjacent_resource_id identify neighbor of a newly created resource bool put_after_adjacent is flag to put a newly create resource befor/after adjacent resource mixed wait is flag for controlling waiting for pacemaker iddle mechanism """ resource_agent = get_agent( env.report_processor, env.cmd_runner(), resource_agent_name, allow_absent_agent, ) with resource_environment( env, resource_id, wait, ensure_disabled or are_meta_disabled(meta_attributes), ) as resources_section: primitive_element = resource.primitive.create( env.report_processor, resources_section, resource_id, resource_agent, operations, meta_attributes, instance_attributes, allow_invalid_operation, allow_invalid_instance_attributes, use_default_operations, ensure_disabled, ) validate_id(group_id, "group name") resource.group.place_resource( resource.group.provide_group(resources_section, group_id), primitive_element, adjacent_resource_id, put_after_adjacent, )
def _create_as_clone_common( tag, env, resource_id, resource_agent_name, operations, meta_attributes, instance_attributes, clone_meta_options, allow_absent_agent=False, allow_invalid_operation=False, allow_invalid_instance_attributes=False, use_default_operations=True, ensure_disabled=False, wait=False, allow_not_suitable_command=False, ): """ Create resource in some kind of clone (clone or master). Currently the only difference between commands "create_as_clone" and "create_as_master" is in tag. So the commands create_as_clone and create_as_master are created by passing tag with partial. string tag is any clone tag. Currently it can be "clone" or "master". LibraryEnvironment env provides all for communication with externals string resource_id is identifier of resource string resource_agent_name contains name for the identification of agent list of dict operations contains attributes for each entered operation dict meta_attributes contains attributes for primitive/meta_attributes dict instance_attributes contains attributes for primitive/instance_attributes dict clone_meta_options contains attributes for clone/meta_attributes bool allow_absent_agent is a flag for allowing agent that is not installed in a system bool allow_invalid_operation is a flag for allowing to use operations that are not listed in a resource agent metadata bool allow_invalid_instance_attributes is a flag for allowing to use instance attributes that are not listed in a resource agent metadata or for allowing to not use the instance_attributes that are required in resource agent metadata bool use_default_operations is a flag for stopping stopping of adding default cib operations (specified in a resource agent) bool ensure_disabled is flag that keeps resource in target-role "Stopped" mixed wait is flag for controlling waiting for pacemaker iddle mechanism bool allow_not_suitable_command -- flag for FORCE_NOT_SUITABLE_COMMAND """ resource_agent = get_agent( env.report_processor, env.cmd_runner(), resource_agent_name, allow_absent_agent, ) with resource_environment( env, wait, [resource_id], _ensure_disabled_after_wait( ensure_disabled or resource.common.are_meta_disabled(meta_attributes) or resource.common.is_clone_deactivated_by_meta(clone_meta_options) ) ) as resources_section: _check_special_cases( env, resource_agent, resources_section, resource_id, meta_attributes, instance_attributes, allow_not_suitable_command ) primitive_element = resource.primitive.create( env.report_processor, resources_section, resource_id, resource_agent, operations, meta_attributes, instance_attributes, allow_invalid_operation, allow_invalid_instance_attributes, use_default_operations, ) clone_element = resource.clone.append_new( tag, resources_section, primitive_element, clone_meta_options, ) if ensure_disabled: resource.common.disable(clone_element)
def create_into_bundle( env, resource_id, resource_agent_name, operations, meta_attributes, instance_attributes, bundle_id, allow_absent_agent=False, allow_invalid_operation=False, allow_invalid_instance_attributes=False, use_default_operations=True, ensure_disabled=False, wait=False, allow_not_suitable_command=False, ): """ Create a new resource in a cib and put it into an existing bundle LibraryEnvironment env provides all for communication with externals string resource_id is identifier of resource string resource_agent_name contains name for the identification of agent list of dict operations contains attributes for each entered operation dict meta_attributes contains attributes for primitive/meta_attributes dict instance_attributes contains attributes for primitive/instance_attributes string bundle_id is id of an existing bundle to put the created resource in bool allow_absent_agent is a flag for allowing agent that is not installed in a system bool allow_invalid_operation is a flag for allowing to use operations that are not listed in a resource agent metadata bool allow_invalid_instance_attributes is a flag for allowing to use instance attributes that are not listed in a resource agent metadata or for allowing to not use the instance_attributes that are required in resource agent metadata bool use_default_operations is a flag for stopping stopping of adding default cib operations (specified in a resource agent) bool ensure_disabled is flag that keeps resource in target-role "Stopped" mixed wait is flag for controlling waiting for pacemaker iddle mechanism bool allow_not_suitable_command -- flag for FORCE_NOT_SUITABLE_COMMAND """ resource_agent = get_agent( env.report_processor, env.cmd_runner(), resource_agent_name, allow_absent_agent, ) with resource_environment( env, wait, [resource_id], _ensure_disabled_after_wait( ensure_disabled or resource.common.are_meta_disabled(meta_attributes) ), required_cib_version=Version(2, 8, 0) ) as resources_section: _check_special_cases( env, resource_agent, resources_section, resource_id, meta_attributes, instance_attributes, allow_not_suitable_command ) primitive_element = resource.primitive.create( env.report_processor, resources_section, resource_id, resource_agent, operations, meta_attributes, instance_attributes, allow_invalid_operation, allow_invalid_instance_attributes, use_default_operations, ) if ensure_disabled: resource.common.disable(primitive_element) resource.bundle.add_resource( find_element_by_tag_and_id( resource.bundle.TAG, resources_section, bundle_id ), primitive_element )
def create_into_bundle( env, resource_id, resource_agent_name, operation_list, meta_attributes, instance_attributes, bundle_id, allow_absent_agent=False, allow_invalid_operation=False, allow_invalid_instance_attributes=False, use_default_operations=True, ensure_disabled=False, wait=False, allow_not_suitable_command=False, allow_not_accessible_resource=False, ): # pylint: disable=too-many-arguments, too-many-locals """ Create a new resource in a cib and put it into an existing bundle LibraryEnvironment env provides all for communication with externals string resource_id is identifier of resource string resource_agent_name contains name for the identification of agent list of dict operation_list contains attributes for each entered operation dict meta_attributes contains attributes for primitive/meta_attributes dict instance_attributes contains attributes for primitive/instance_attributes string bundle_id is id of an existing bundle to put the created resource in bool allow_absent_agent is a flag for allowing agent that is not installed in a system bool allow_invalid_operation is a flag for allowing to use operations that are not listed in a resource agent metadata bool allow_invalid_instance_attributes is a flag for allowing to use instance attributes that are not listed in a resource agent metadata or for allowing to not use the instance_attributes that are required in resource agent metadata bool use_default_operations is a flag for stopping stopping of adding default cib operations (specified in a resource agent) bool ensure_disabled is flag that keeps resource in target-role "Stopped" mixed wait is flag for controlling waiting for pacemaker idle mechanism bool allow_not_suitable_command -- flag for FORCE_NOT_SUITABLE_COMMAND bool allow_not_accessible_resource -- flag for FORCE_RESOURCE_IN_BUNDLE_NOT_ACCESSIBLE """ resource_agent = get_agent( env.report_processor, env.cmd_runner(), resource_agent_name, allow_absent_agent, ) with resource_environment( env, wait, [resource_id], _ensure_disabled_after_wait( ensure_disabled or resource.common.are_meta_disabled(meta_attributes) ), required_cib_version=Version(2, 8, 0) ) as resources_section: id_provider = IdProvider(resources_section) _check_special_cases( env, resource_agent, resources_section, resource_id, meta_attributes, instance_attributes, allow_not_suitable_command ) primitive_element = resource.primitive.create( env.report_processor, resources_section, id_provider, resource_id, resource_agent, operation_list, meta_attributes, instance_attributes, allow_invalid_operation, allow_invalid_instance_attributes, use_default_operations, ) if ensure_disabled: resource.common.disable(primitive_element, id_provider) bundle_el = _find_bundle(resources_section, bundle_id) if not resource.bundle.is_pcmk_remote_accessible(bundle_el): env.report_processor.process( reports.get_problem_creator( report_codes.FORCE_RESOURCE_IN_BUNDLE_NOT_ACCESSIBLE, allow_not_accessible_resource )( reports.resource_in_bundle_not_accessible, bundle_id, resource_id ) ) resource.bundle.add_resource(bundle_el, primitive_element)
def create_in_group( env, resource_id, resource_agent_name, group_id, operation_list, meta_attributes, instance_attributes, allow_absent_agent=False, allow_invalid_operation=False, allow_invalid_instance_attributes=False, use_default_operations=True, ensure_disabled=False, adjacent_resource_id=None, put_after_adjacent=False, wait=False, allow_not_suitable_command=False, ): # pylint: disable=too-many-arguments, too-many-locals """ Create resource in a cib and put it into defined group LibraryEnvironment env provides all for communication with externals string resource_id is identifier of resource string resource_agent_name contains name for the identification of agent string group_id is identificator for group to put primitive resource inside list of dict operation_list contains attributes for each entered operation dict meta_attributes contains attributes for primitive/meta_attributes bool allow_absent_agent is a flag for allowing agent that is not installed in a system bool allow_invalid_operation is a flag for allowing to use operations that are not listed in a resource agent metadata bool allow_invalid_instance_attributes is a flag for allowing to use instance attributes that are not listed in a resource agent metadata or for allowing to not use the instance_attributes that are required in resource agent metadata bool use_default_operations is a flag for stopping stopping of adding default cib operations (specified in a resource agent) bool ensure_disabled is flag that keeps resource in target-role "Stopped" string adjacent_resource_id identify neighbor of a newly created resource bool put_after_adjacent is flag to put a newly create resource befor/after adjacent resource mixed wait is flag for controlling waiting for pacemaker idle mechanism bool allow_not_suitable_command -- flag for FORCE_NOT_SUITABLE_COMMAND """ resource_agent = get_agent( env.report_processor, env.cmd_runner(), resource_agent_name, allow_absent_agent, ) with resource_environment( env, wait, [resource_id], _ensure_disabled_after_wait( ensure_disabled or resource.common.are_meta_disabled(meta_attributes) ) ) as resources_section: id_provider = IdProvider(resources_section) _check_special_cases( env, resource_agent, resources_section, resource_id, meta_attributes, instance_attributes, allow_not_suitable_command ) primitive_element = resource.primitive.create( env.report_processor, resources_section, id_provider, resource_id, resource_agent, operation_list, meta_attributes, instance_attributes, allow_invalid_operation, allow_invalid_instance_attributes, use_default_operations, ) if ensure_disabled: resource.common.disable(primitive_element, id_provider) validate_id(group_id, "group name") resource.group.place_resource( resource.group.provide_group(resources_section, group_id), primitive_element, adjacent_resource_id, put_after_adjacent, )
def create_as_clone( env, resource_id, resource_agent_name, operation_list, meta_attributes, instance_attributes, clone_meta_options, allow_absent_agent=False, allow_invalid_operation=False, allow_invalid_instance_attributes=False, use_default_operations=True, ensure_disabled=False, wait=False, allow_not_suitable_command=False, ): # pylint: disable=too-many-arguments, too-many-locals """ Create resource in a clone LibraryEnvironment env provides all for communication with externals string resource_id is identifier of resource string resource_agent_name contains name for the identification of agent list of dict operation_list contains attributes for each entered operation dict meta_attributes contains attributes for primitive/meta_attributes dict instance_attributes contains attributes for primitive/instance_attributes dict clone_meta_options contains attributes for clone/meta_attributes bool allow_absent_agent is a flag for allowing agent that is not installed in a system bool allow_invalid_operation is a flag for allowing to use operations that are not listed in a resource agent metadata bool allow_invalid_instance_attributes is a flag for allowing to use instance attributes that are not listed in a resource agent metadata or for allowing to not use the instance_attributes that are required in resource agent metadata bool use_default_operations is a flag for stopping stopping of adding default cib operations (specified in a resource agent) bool ensure_disabled is flag that keeps resource in target-role "Stopped" mixed wait is flag for controlling waiting for pacemaker idle mechanism bool allow_not_suitable_command -- flag for FORCE_NOT_SUITABLE_COMMAND """ resource_agent = get_agent( env.report_processor, env.cmd_runner(), resource_agent_name, allow_absent_agent, ) with resource_environment( env, wait, [resource_id], _ensure_disabled_after_wait( ensure_disabled or resource.common.are_meta_disabled(meta_attributes) or resource.common.is_clone_deactivated_by_meta(clone_meta_options) ) ) as resources_section: id_provider = IdProvider(resources_section) _check_special_cases( env, resource_agent, resources_section, resource_id, meta_attributes, instance_attributes, allow_not_suitable_command ) primitive_element = resource.primitive.create( env.report_processor, resources_section, id_provider, resource_id, resource_agent, operation_list, meta_attributes, instance_attributes, allow_invalid_operation, allow_invalid_instance_attributes, use_default_operations, ) clone_element = resource.clone.append_new( resources_section, id_provider, primitive_element, clone_meta_options, ) if ensure_disabled: resource.common.disable(clone_element, id_provider)
def create_in_group( env, stonith_id, stonith_agent_name, group_id, operations, meta_attributes, instance_attributes, allow_absent_agent=False, allow_invalid_operation=False, allow_invalid_instance_attributes=False, use_default_operations=True, ensure_disabled=False, adjacent_resource_id=None, put_after_adjacent=False, wait=False, ): # pylint: disable=too-many-arguments, too-many-locals """ Create stonith as resource in a cib and put it into defined group. LibraryEnvironment env provides all for communication with externals string stonith_id is an identifier of stonith resource string stonith_agent_name contains name for the identification of agent string group_id is identificator for group to put stonith inside list of dict operations contains attributes for each entered operation dict meta_attributes contains attributes for primitive/meta_attributes dict instance_attributes contains attributes for primitive/instance_attributes bool allow_absent_agent is a flag for allowing agent that is not installed in a system bool allow_invalid_operation is a flag for allowing to use operations that are not listed in a stonith agent metadata bool allow_invalid_instance_attributes is a flag for allowing to use instance attributes that are not listed in a stonith agent metadata or for allowing to not use the instance_attributes that are required in stonith agent metadata bool use_default_operations is a flag for stopping stopping of adding default cib operations (specified in a stonith agent) bool ensure_disabled is flag that keeps resource in target-role "Stopped" string adjacent_resource_id identify neighbor of a newly created stonith bool put_after_adjacent is flag to put a newly create resource befor/after adjacent stonith mixed wait is flag for controlling waiting for pacemaker idle mechanism """ stonith_agent = get_agent( env.report_processor, env.cmd_runner(), stonith_agent_name, allow_absent_agent, ) if stonith_agent.get_provides_unfencing(): meta_attributes["provides"] = "unfencing" with resource_environment( env, wait, [stonith_id], _ensure_disabled_after_wait( ensure_disabled or are_meta_disabled(meta_attributes), ) ) as resources_section: id_provider = IdProvider(resources_section) stonith_element = resource.primitive.create( env.report_processor, resources_section, id_provider, stonith_id, stonith_agent, operations, meta_attributes, instance_attributes, allow_invalid_operation, allow_invalid_instance_attributes, use_default_operations, ) if ensure_disabled: resource.common.disable(stonith_element, id_provider) validate_id(group_id, "group name") resource.group.place_resource( resource.group.provide_group(resources_section, group_id), stonith_element, adjacent_resource_id, put_after_adjacent, )
def create( env, resource_id, resource_agent_name, operations, meta_attributes, instance_attributes, allow_absent_agent=False, allow_invalid_operation=False, allow_invalid_instance_attributes=False, use_default_operations=True, ensure_disabled=False, wait=False, ): """ Create resource in a cib. LibraryEnvironment env provides all for communication with externals string resource_id is identifier of resource string resource_agent_name contains name for the identification of agent list of dict operations contains attributes for each entered operation dict meta_attributes contains attributes for primitive/meta_attributes dict instance_attributes contains attributes for primitive/instance_attributes bool allow_absent_agent is a flag for allowing agent that is not installed in a system bool allow_invalid_operation is a flag for allowing to use operations that are not listed in a resource agent metadata bool allow_invalid_instance_attributes is a flag for allowing to use instance attributes that are not listed in a resource agent metadata or for allowing to not use the instance_attributes that are required in resource agent metadata bool use_default_operations is a flag for stopping stopping of adding default cib operations (specified in a resource agent) bool ensure_disabled is flag that keeps resource in target-role "Stopped" mixed wait is flag for controlling waiting for pacemaker iddle mechanism """ resource_agent = get_agent( env.report_processor, env.cmd_runner(), resource_agent_name, allow_absent_agent, ) with resource_environment( env, wait, [resource_id], ensure_disabled or resource.common.are_meta_disabled(meta_attributes), ) as resources_section: primitive_element = resource.primitive.create( env.report_processor, resources_section, resource_id, resource_agent, operations, meta_attributes, instance_attributes, allow_invalid_operation, allow_invalid_instance_attributes, use_default_operations, ) if ensure_disabled: resource.common.disable(primitive_element)