def unmanage(env, resource_ids, with_monitor=False): """ Set specified resources not to be managed by the cluster LibraryEnvironment env -- strings resource_ids -- ids of the resources to become unmanaged bool with_monitor -- disable resources' monitor operations """ with resource_environment(env) as resources_section: resource_el_list = _find_resources_or_raise( resources_section, resource_ids, resource.common.find_resources_to_unmanage ) primitives = [] for resource_el in resource_el_list: resource.common.unmanage(resource_el) if with_monitor: primitives.extend( resource.common.find_primitives(resource_el) ) for resource_el in set(primitives): for op in operations.get_resource_operations( resource_el, ["monitor"] ): operations.disable(op)
def test_filter_more_operations(self): self.assert_op_list( operations.get_resource_operations( self.resource_el, ["monitor", "stop"] ), ["dummy-stop", "dummy-monitor-m", "dummy-monitor-s"], )
def test_all_operations(self): self.assert_op_list( operations.get_resource_operations(self.resource_el), [ "dummy-start", "dummy-stop", "dummy-monitor-m", "dummy-monitor-s" ], )
def test_filter_more_operations(self): self.assert_op_list( operations.get_resource_operations( self.resource_el, ["monitor", "stop"] ), ["dummy-stop", "dummy-monitor-m", "dummy-monitor-s"] )
def manage(env, resource_ids, with_monitor=False): """ Set specified resource to be managed by the cluster LibraryEnvironment env -- strings resource_ids -- ids of the resources to become managed bool with_monitor -- enable resources' monitor operations """ with resource_environment(env) as resources_section: report_list = [] resource_el_list = _find_resources_or_raise( resources_section, resource_ids, resource.common.find_resources_to_manage ) primitives = [] for resource_el in resource_el_list: resource.common.manage(resource_el) primitives.extend( resource.common.find_primitives(resource_el) ) for resource_el in sorted( set(primitives), key=lambda element: element.get("id", "") ): op_list = operations.get_resource_operations( resource_el, ["monitor"] ) if with_monitor: for op in op_list: operations.enable(op) else: monitor_enabled = False for op in op_list: if operations.is_enabled(op): monitor_enabled = True break if op_list and not monitor_enabled: # do not advise enabling monitors if there are none defined report_list.append( reports.resource_managed_no_monitor_enabled( resource_el.get("id", "") ) ) env.report_processor.process_list(report_list)
def test_no_operations(self): self.assert_op_list( operations.get_resource_operations(self.resource_noop_el), [])
def test_filter_none(self): self.assert_op_list( operations.get_resource_operations(self.resource_el, ["promote"]), [])
def test_filter_operations(self): self.assert_op_list( operations.get_resource_operations(self.resource_el, ["start"]), ["dummy-start"])
def test_no_operations(self): self.assert_op_list( operations.get_resource_operations(self.resource_noop_el), [] )
def test_filter_none(self): self.assert_op_list( operations.get_resource_operations(self.resource_el, ["promote"]), [] )
def test_filter_operations(self): self.assert_op_list( operations.get_resource_operations(self.resource_el, ["start"]), ["dummy-start"] )
def test_all_operations(self): self.assert_op_list( operations.get_resource_operations(self.resource_el), ["dummy-start", "dummy-stop", "dummy-monitor-m", "dummy-monitor-s"] )