예제 #1
0
 def test_get_all(self):
     self.config.runner.cib.load_content(self.fixture_cib())
     self.assertEqual(
         resource.get_failcounts(self.env_assist.get_env()),
         [
             {
                 "node": "node1",
                 "resource": "resource",
                 "clone_id": None,
                 "operation": "start",
                 "interval": "0",
                 "fail_count": "INFINITY",
                 "last_failure": 1528871936,
             },
             {
                 "node": "node2",
                 "resource": "resource",
                 "clone_id": None,
                 "operation": "monitor",
                 "interval": "5000",
                 "fail_count": 10,
                 "last_failure": 1528871946,
             },
         ],
     )
예제 #2
0
 def test_get_all(self):
     self.config.runner.cib.load_content(self.fixture_cib())
     self.assertEqual(
         resource.get_failcounts(self.env_assist.get_env()),
         [
             {
                 "node": "node1",
                 "resource": "resource",
                 "clone_id": None,
                 "operation": "start",
                 "interval": "0",
                 "fail_count": "INFINITY",
                 "last_failure": 1528871936,
             },
             {
                 "node": "node2",
                 "resource": "resource",
                 "clone_id": None,
                 "operation": "monitor",
                 "interval": "5000",
                 "fail_count": 10,
                 "last_failure": 1528871946,
             },
         ]
     )
예제 #3
0
 def test_operation_requires_interval(self):
     self.env_assist.assert_raise_library_error(
         lambda: resource.get_failcounts(
             self.env_assist.get_env(), interval="1000"), [
                 fixture.error(report_codes.PREREQUISITE_OPTION_IS_MISSING,
                               option_name="interval",
                               option_type="",
                               prerequisite_name="operation",
                               prerequisite_type=""),
             ],
         expected_in_processor=False)
예제 #4
0
 def test_bad_interval(self):
     self.env_assist.assert_raise_library_error(
         lambda: resource.get_failcounts(self.env_assist.get_env(),
                                         operation="start",
                                         interval="often"),
         [
             fixture.error(
                 report_codes.INVALID_OPTION_VALUE,
                 option_name="interval",
                 option_value="often",
                 allowed_values="time interval (e.g. 1, 2s, 3m, 4h, ...)"),
         ],
         expected_in_processor=False)
예제 #5
0
 def test_filter_node(self):
     self.config.runner.cib.load_content(self.fixture_cib())
     self.assertEqual(
         resource.get_failcounts(self.env_assist.get_env(), node="node2"), [
             {
                 "node": "node2",
                 "resource": "resource",
                 "clone_id": None,
                 "operation": "monitor",
                 "interval": "5000",
                 "fail_count": 10,
                 "last_failure": 1528871946,
             },
         ])
예제 #6
0
 def test_bad_interval(self):
     self.env_assist.assert_raise_library_error(
         lambda: resource.get_failcounts(
             self.env_assist.get_env(), operation="start", interval="often"
         ),
         [
             fixture.error(
                 report_codes.INVALID_OPTION_VALUE,
                 option_name="interval",
                 option_value="often",
                 allowed_values="time interval (e.g. 1, 2s, 3m, 4h, ...)"
             ),
         ],
         expected_in_processor=False
     )
예제 #7
0
 def test_operation_requires_interval(self):
     self.env_assist.assert_raise_library_error(
         lambda: resource.get_failcounts(
             self.env_assist.get_env(), interval="1000"
         ),
         [
             fixture.error(
                 report_codes.PREREQUISITE_OPTION_IS_MISSING,
                 option_name="interval",
                 option_type="",
                 prerequisite_name="operation",
                 prerequisite_type=""
             ),
         ],
         expected_in_processor=False
     )
예제 #8
0
 def test_all_validation_errors(self):
     self.env_assist.assert_raise_library_error(
         lambda: resource.get_failcounts(self.env_assist.get_env(),
                                         interval="often"),
         [
             fixture.error(report_codes.PREREQUISITE_OPTION_IS_MISSING,
                           option_name="interval",
                           option_type="",
                           prerequisite_name="operation",
                           prerequisite_type=""),
             fixture.error(
                 report_codes.INVALID_OPTION_VALUE,
                 option_name="interval",
                 option_value="often",
                 allowed_values="time interval (e.g. 1, 2s, 3m, 4h, ...)"),
         ],
         expected_in_processor=False)
예제 #9
0
 def test_filter_interval(self):
     self.config.runner.cib.load_content(self.fixture_cib())
     self.assertEqual(
         resource.get_failcounts(
             self.env_assist.get_env(), operation="monitor", interval="5"
         ),
         [
             {
                 "node": "node2",
                 "resource": "resource",
                 "clone_id": None,
                 "operation": "monitor",
                 "interval": "5000",
                 "fail_count": 10,
                 "last_failure": 1528871946,
             },
         ]
     )
예제 #10
0
 def test_all_validation_errors(self):
     self.env_assist.assert_raise_library_error(
         lambda: resource.get_failcounts(
             self.env_assist.get_env(), interval="often"
         ),
         [
             fixture.error(
                 report_codes.PREREQUISITE_OPTION_IS_MISSING,
                 option_name="interval",
                 option_type="",
                 prerequisite_name="operation",
                 prerequisite_type=""
             ),
             fixture.error(
                 report_codes.INVALID_OPTION_VALUE,
                 option_name="interval",
                 option_value="often",
                 allowed_values="time interval (e.g. 1, 2s, 3m, 4h, ...)"
             ),
         ],
         expected_in_processor=False
     )