c983708637
Added Apache 2.0 License for missed files Change-Id: I72217d3cf0089434a9bbe1e5dfd57224a803704e Signed-off-by: Jui Chandwaskar <jchandwaskar@op5.com>
123 lines
4.0 KiB
Python
123 lines
4.0 KiB
Python
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License. You may obtain
|
|
# a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
import unittest
|
|
import logging
|
|
|
|
logger = logging.getLogger(__file__)
|
|
|
|
from tests.common import get_check
|
|
from nose.plugins.skip import SkipTest
|
|
|
|
|
|
class TestWeb(unittest.TestCase):
|
|
|
|
def setUp(self):
|
|
self.apache_config = """
|
|
init_config:
|
|
|
|
instances:
|
|
- apache_status_url: http://localhost:9444/server-status
|
|
dimensions:
|
|
instance:first
|
|
- apache_status_url: http://localhost:9444/server-status?auto
|
|
dimensions:
|
|
instance:second
|
|
"""
|
|
|
|
self.nginx_config = """
|
|
init_config:
|
|
|
|
instances:
|
|
- nginx_status_url: http://localhost:44441/nginx_status/
|
|
- nginx_status_url: http://localhost:44441/nginx_status/
|
|
dimensions:
|
|
test:first_one
|
|
- nginx_status_url: http://dummyurl:44441/nginx_status/
|
|
dimensions:
|
|
test1:dummy
|
|
- nginx_status_url: http://localhost:44441/nginx_status/
|
|
dimensions:
|
|
test2:second
|
|
"""
|
|
|
|
self.lighttpd_config = """
|
|
init_config:
|
|
|
|
instances:
|
|
- lighttpd_status_url: http://localhost:9449/server-status
|
|
dimensions:
|
|
instance:first
|
|
- lighttpd_status_url: http://localhost:9449/server-status?auto
|
|
dimensions:
|
|
instance:second
|
|
"""
|
|
|
|
def testApache(self):
|
|
raise SkipTest("Requires running apache")
|
|
a, instances = get_check('apache', self.apache_config)
|
|
|
|
a.check(instances[0])
|
|
metrics = a.get_metrics()
|
|
self.assertEqual(metrics[0][3].get('dimensions'), {'instance': 'first'})
|
|
|
|
a.check(instances[1])
|
|
metrics = a.get_metrics()
|
|
self.assertEqual(metrics[0][3].get('dimensions'), {'instance': 'second'})
|
|
|
|
def testApacheOldConfig(self):
|
|
a, _ = get_check('apache', self.apache_config)
|
|
config = {
|
|
'apache_status_url': 'http://example.com/server-status?auto'
|
|
}
|
|
instances = a.parse_agent_config(config)['instances']
|
|
assert instances[0]['apache_status_url'] == config['apache_status_url']
|
|
|
|
def testNginx(self):
|
|
raise SkipTest("Requires running Lighthttpd")
|
|
nginx, instances = get_check('nginx', self.nginx_config)
|
|
nginx.check(instances[0])
|
|
r = nginx.get_metrics()
|
|
self.assertEqual(len([t for t in r if t[0] == "nginx.net.connections"]), 1, r)
|
|
|
|
nginx.check(instances[1])
|
|
r = nginx.get_metrics()
|
|
self.assertEqual(r[0][3].get('dimensions'), {'test': 'first_one'})
|
|
|
|
def testNginxOldConfig(self):
|
|
nginx, _ = get_check('nginx', self.nginx_config)
|
|
config = {
|
|
'nginx_status_url_1': 'http://www.example.com/nginx_status:first_tag',
|
|
'nginx_status_url_2': 'http://www.example2.com/nginx_status:8080:second_tag',
|
|
'nginx_status_url_3': 'http://www.example3.com/nginx_status:third_tag'
|
|
}
|
|
instances = nginx.parse_agent_config(config)['instances']
|
|
self.assertEqual(len(instances), 3)
|
|
for i, instance in enumerate(instances):
|
|
assert ':'.join(config.values()[i].split(':')[:-1]) == instance['nginx_status_url']
|
|
|
|
def testLighttpd(self):
|
|
raise SkipTest("Requires running Lighthttpd")
|
|
l, instances = get_check('lighttpd', self.lighttpd_config)
|
|
|
|
l.check(instances[0])
|
|
metrics = l.get_metrics()
|
|
self.assertEqual(metrics[0][3].get('dimensions'), {'instance': 'first'})
|
|
|
|
l.check(instances[1])
|
|
metrics = l.get_metrics()
|
|
self.assertEqual(metrics[0][3].get('dimensions'), {'instance': 'second'})
|
|
|
|
|
|
if __name__ == '__main__':
|
|
unittest.main()
|