Beispiel #1
0
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"]
     )
Beispiel #5
0
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"]
     )