Exemple #1
0
 def test_filter_by_resource_and_node(self):
     self.assertEqual(
         status.filter_resources_failcounts(
             self.failures, resource="resourceA", node="nodeB"
         ),
         [self.fail_03, self.fail_05, self.fail_06],
     )
Exemple #2
0
 def test_filter_by_operation_and_interval_int(self):
     self.assertEqual(
         status.filter_resources_failcounts(
             self.failures, operation="monitor", interval=500
         ),
         [self.fail_05],
     )
Exemple #3
0
 def test_filter_by_node_and_operation_and_interval(self):
     self.assertEqual(
         status.filter_resources_failcounts(self.failures,
                                            node="nodeB",
                                            operation="monitor",
                                            interval="1000"),
         [self.fail_03, self.fail_07])
Exemple #4
0
 def test_filter_by_operation(self):
     self.assertEqual(
         status.filter_resources_failcounts(
             self.failures, operation="monitor"
         ),
         [self.fail_02, self.fail_03, self.fail_05, self.fail_07],
     )
Exemple #5
0
 def test_filter_by_resource_and_node_and_operation(self):
     self.assertEqual(
         status.filter_resources_failcounts(self.failures,
                                            resource="resourceA",
                                            node="nodeB",
                                            operation="monitor"),
         [self.fail_03, self.fail_05])
Exemple #6
0
def get_failcounts(env,
                   resource=None,
                   node=None,
                   operation=None,
                   interval=None):
    # pylint: disable=redefined-outer-name
    """
    List resources failcounts, optionally filtered by a resource, node or op

    LibraryEnvironment env
    string resource -- show failcounts for the specified resource only
    string node -- show failcounts for the specified node only
    string operation -- show failcounts for the specified operation only
    string interval -- show failcounts for the specified operation interval only
    """
    report_items = []
    if interval is not None and operation is None:
        report_items.append(
            reports.prerequisite_option_is_missing("interval", "operation"))
    if interval is not None:
        report_items.extend(
            ValueTimeInterval("interval").validate({"interval": interval}))
    if report_items:
        raise LibraryError(*report_items)

    interval_ms = (None if interval is None else timeout_to_seconds(interval) *
                   1000)

    all_failcounts = cib_status.get_resources_failcounts(
        get_status(env.get_cib()))
    return cib_status.filter_resources_failcounts(all_failcounts,
                                                  resource=resource,
                                                  node=node,
                                                  operation=operation,
                                                  interval=interval_ms)
Exemple #7
0
 def test_filter_by_operation_and_interval_int(self):
     self.assertEqual(
         status.filter_resources_failcounts(
             self.failures, operation="monitor", interval=500
         ),
         [self.fail_05]
     )
Exemple #8
0
 def test_filter_by_node_and_operation(self):
     self.assertEqual(
         status.filter_resources_failcounts(
             self.failures, node="nodeB", operation="monitor"
         ),
         [self.fail_03, self.fail_05, self.fail_07]
     )
Exemple #9
0
 def test_filter_by_resource_and_node(self):
     self.assertEqual(
         status.filter_resources_failcounts(
             self.failures, resource="resourceA", node="nodeB"
         ),
         [self.fail_03, self.fail_05, self.fail_06]
     )
Exemple #10
0
 def test_no_match(self):
     self.assertEqual(
         status.filter_resources_failcounts(
             self.failures, resource="resourceX"
         ),
         []
     )
Exemple #11
0
 def test_filter_by_node(self):
     self.assertEqual(
         status.filter_resources_failcounts(
             self.failures, node="nodeA"
         ),
         [self.fail_01, self.fail_02]
     )
Exemple #12
0
 def test_no_match(self):
     self.assertEqual(
         status.filter_resources_failcounts(
             self.failures, resource="resourceX"
         ),
         [],
     )
Exemple #13
0
 def test_filter_by_resource_and_node_and_operation_and_interval(self):
     self.assertEqual(
         status.filter_resources_failcounts(
             self.failures, resource="resourceA", node="nodeB",
             operation="monitor", interval="1000"
         ),
         [self.fail_03]
     )
Exemple #14
0
def get_failcounts(
    env, resource=None, node=None, operation=None, interval=None
):
    # pylint: disable=redefined-outer-name
    """
    List resources failcounts, optionally filtered by a resource, node or op

    LibraryEnvironment env
    string resource -- show failcounts for the specified resource only
    string node -- show failcounts for the specified node only
    string operation -- show failcounts for the specified operation only
    string interval -- show failcounts for the specified operation interval only
    """
    report_items = []
    if interval is not None and operation is None:
        report_items.append(
            reports.prerequisite_option_is_missing("interval", "operation")
        )
    if interval is not None:
        report_items.extend(
            value_time_interval("interval")({"interval": interval})
        )
    if report_items:
        raise LibraryError(*report_items)

    interval_ms = (
        None if interval is None
        else timeout_to_seconds(interval) * 1000
    )

    all_failcounts = cib_status.get_resources_failcounts(
        get_status(env.get_cib())
    )
    return cib_status.filter_resources_failcounts(
        all_failcounts,
        resource=resource,
        node=node,
        operation=operation,
        interval=interval_ms
    )
Exemple #15
0
 def test_no_filter(self):
     self.assertEqual(
         status.filter_resources_failcounts(self.failures),
         self.failures
     )
Exemple #16
0
 def test_filter_by_node(self):
     self.assertEqual(
         status.filter_resources_failcounts(self.failures, node="nodeA"),
         [self.fail_01, self.fail_02])
Exemple #17
0
 def test_filter_by_resource(self):
     self.assertEqual(
         status.filter_resources_failcounts(self.failures,
                                            resource="resourceA"),
         [self.fail_01, self.fail_03, self.fail_05, self.fail_06])
Exemple #18
0
 def test_no_filter(self):
     self.assertEqual(status.filter_resources_failcounts(self.failures),
                      self.failures)