Exemple #1
0
    def test_normalize_api_url(self):
        starts_with_slash_api = u'/api/cpu/percent'
        starts_with_api = u'api/cpu/percent'
        starts_with_slash_metric = u'/cpu/percent'
        starts_with_metric = u'cpu/percent'

        expected_url = starts_with_slash_api + '/'

        self.assertEqual(expected_url, nc.normalize_api_url(starts_with_slash_api))
        self.assertEqual(expected_url, nc.normalize_api_url(starts_with_slash_metric))
        self.assertEqual(expected_url, nc.normalize_api_url(starts_with_api))
        self.assertEqual(expected_url, nc.normalize_api_url(starts_with_metric))
Exemple #2
0
    def test_normalize_api_url(self):
        starts_with_slash_api = u'/api/cpu/percent'
        starts_with_api = u'api/cpu/percent'
        starts_with_slash_metric = u'/cpu/percent'
        starts_with_metric = u'cpu/percent'

        expected_url = starts_with_slash_api + '/'

        self.assertEqual(expected_url,
                         nc.normalize_api_url(starts_with_slash_api))
        self.assertEqual(expected_url,
                         nc.normalize_api_url(starts_with_slash_metric))
        self.assertEqual(expected_url, nc.normalize_api_url(starts_with_api))
        self.assertEqual(expected_url,
                         nc.normalize_api_url(starts_with_metric))
Exemple #3
0
    def test_get_api_url_from_instruction(self):
        instruction = 'cpu/percent --warning 10 --critical=11'
        expected_url = '/api/cpu/percent/'
        expected_args = {'warning': '10', 'critical': '11', 'check': '1'}

        url, args = nc.get_api_url_from_instruction(instruction)
        self.assertEqual(url, expected_url)
        self.assertEqual(args, expected_args)
Exemple #4
0
    def test_get_api_url_from_instruction(self):
        instruction = 'cpu/percent --warning 10 --critical=11'
        expected_url = '/api/cpu/percent/'
        expected_args = {'warning': '10', 'critical': '11', 'check': '1'}

        url, args = nc.get_api_url_from_instruction(instruction)
        self.assertEqual(url, expected_url)
        self.assertEqual(args, expected_args)
Exemple #5
0
    def test_handle_agent_response(self):
        response = '{"value": {"stdout": "Hi", "returncode": 0}}'
        expected_stdout = "Hi"
        expected_returncode = "0"

        stdout, returncode = nc.handle_agent_response(response)
        self.assertEqual(expected_returncode, returncode)
        self.assertEqual(expected_stdout, stdout)

        response = '{"stdout": "Hi", "returncode": 0}'
        stdout, returncode = nc.handle_agent_response(response)
        self.assertIsNone(stdout)
        self.assertIsNone(returncode)

        invalid_json = "234   } : }{fl;"
        stdout, returncode = nc.handle_agent_response(invalid_json)
        self.assertIsNone(stdout)
        self.assertIsNone(returncode)
Exemple #6
0
    def test_api_url_style_instruction(self):
        url_instruction = '/api/bingo/?warning=1&critical=10'
        expected_api_url = '/api/bingo/'
        expected_api_args = {'warning': '1', 'critical': '10'}

        url, args = nc.parse_api_url_style_instruction(url_instruction)

        self.assertEqual(url, expected_api_url)
        self.assertEqual(args, expected_api_args)
Exemple #7
0
    def test_api_url_style_instruction(self):
        url_instruction = '/api/bingo/?warning=1&critical=10'
        expected_api_url = '/api/bingo/'
        expected_api_args = {'warning': '1', 'critical': '10'}

        url, args = nc.parse_api_url_style_instruction(url_instruction)

        self.assertEqual(url, expected_api_url)
        self.assertEqual(args, expected_api_args)
Exemple #8
0
    def test_handle_agent_response(self):
        response = '{"value": {"stdout": "Hi", "returncode": 0}}'
        expected_stdout = "Hi"
        expected_returncode = "0"

        stdout, returncode = nc.handle_agent_response(response)
        self.assertEqual(expected_returncode, returncode)
        self.assertEqual(expected_stdout, stdout)

        response = '{"stdout": "Hi", "returncode": 0}'
        stdout, returncode = nc.handle_agent_response(response)
        self.assertIsNone(stdout)
        self.assertIsNone(returncode)

        invalid_json = "234   } : }{fl;"
        stdout, returncode = nc.handle_agent_response(invalid_json)
        self.assertIsNone(stdout)
        self.assertIsNone(returncode)
Exemple #9
0
    def test_run_check(self):
        api_url = '/api/cpu/percent/'
        api_args = {'check': '1'}

        result = nc.run_check(api_url, api_args)
        result_json = json.loads(result)

        self.assertIsInstance(result_json, dict)
        self.assertIn('value', result_json)
        self.assertIn('stdout', result_json['value'])
        self.assertIn('returncode', result_json['value'])
Exemple #10
0
    def test_run_check(self):
        api_url = '/api/cpu/percent/'
        api_args = {'check': '1'}

        result = nc.run_check(api_url, api_args)
        result_json = json.loads(result)

        self.assertIsInstance(result_json, dict)
        self.assertIn('value', result_json)
        self.assertIn('stdout', result_json['value'])
        self.assertIn('returncode', result_json['value'])
Exemple #11
0
    def test_parse_cmdline_style_instruction(self):
        url_instruction = u'/api/bingo/ --warning 1 --critical 10'
        expected_api_url = '/api/bingo/'
        expected_api_args = {'warning': '1', 'critical': '10'}

        url, args = nc.parse_cmdline_style_instruction(url_instruction)

        self.assertEqual(url, expected_api_url)
        self.assertEqual(args, expected_api_args)

        url_instruction = u'/api/agent/plugin/test.sh/--warning/10/--critical/hi'
        expected_api_url = url_instruction
        expected_api_args = {}

        url, args = nc.parse_cmdline_style_instruction(url_instruction)

        self.assertEqual(url, expected_api_url)
        self.assertEqual(args, expected_api_args)

        url_instruction = '/api/bingo/ --warning=1 --critical 10'
        expected_api_url = '/api/bingo/'
        expected_api_args = {'warning': '1', 'critical': '10'}

        url, args = nc.parse_cmdline_style_instruction(url_instruction)

        self.assertEqual(url, expected_api_url)
        self.assertEqual(args, expected_api_args)

        url_instruction = '/api/bingo/ --warning=1 --critical 10 --delta'
        expected_api_url = '/api/bingo/'
        expected_api_args = {'warning': '1', 'critical': '10'}

        url, args = nc.parse_cmdline_style_instruction(url_instruction)

        self.assertEqual(url, expected_api_url)
        self.assertEqual(args, expected_api_args)
Exemple #12
0
    def test_parse_cmdline_style_instruction(self):
        url_instruction = u'/api/bingo/ --warning 1 --critical 10'
        expected_api_url = '/api/bingo/'
        expected_api_args = {'warning': '1', 'critical': '10'}

        url, args = nc.parse_cmdline_style_instruction(url_instruction)

        self.assertEqual(url, expected_api_url)
        self.assertEqual(args, expected_api_args)

        url_instruction = u'/api/agent/plugin/test.sh/--warning/10/--critical/hi'
        expected_api_url = url_instruction
        expected_api_args = {}

        url, args = nc.parse_cmdline_style_instruction(url_instruction)

        self.assertEqual(url, expected_api_url)
        self.assertEqual(args, expected_api_args)

        url_instruction = '/api/bingo/ --warning=1 --critical 10'
        expected_api_url = '/api/bingo/'
        expected_api_args = {'warning': '1', 'critical': '10'}

        url, args = nc.parse_cmdline_style_instruction(url_instruction)

        self.assertEqual(url, expected_api_url)
        self.assertEqual(args, expected_api_args)

        url_instruction = '/api/bingo/ --warning=1 --critical 10 --delta'
        expected_api_url = '/api/bingo/'
        expected_api_args = {'warning': '1', 'critical': '10'}

        url, args = nc.parse_cmdline_style_instruction(url_instruction)

        self.assertEqual(url, expected_api_url)
        self.assertEqual(args, expected_api_args)