ansible-zabbix/zabbix-server/tests/test_default.py

90 lines
3.3 KiB
Python
Raw Normal View History

2017-01-17 17:59:08 +01:00
from testinfra.utils.ansible_runner import AnsibleRunner
import pytest
import requests
testinfra_hosts = AnsibleRunner('.molecule/ansible_inventory').get_hosts('all')
def test_zabbiserver_running_and_enabled(Service):
zabbix = Service("zabbix-server")
assert zabbix.is_enabled
assert zabbix.is_running
@pytest.mark.parametrize("server, web", [
("zabbix-server-pgsql", "zabbix-web-pgsql"),
("zabbix-server-mysql", "zabbix-web-mysql"),
])
def test_zabbix_package(Package, TestinfraBackend, server, web, SystemInfo):
host = TestinfraBackend.get_hostname()
host = host.replace("-centos", "")
host = host.replace("-debian", "")
if host == server:
zabbix_server = Package(server)
zabbix_web = Package(web)
assert zabbix_server.is_installed
assert zabbix_web.is_installed
if SystemInfo.distribution == 'debian':
assert zabbix_server.version.startswith("1:3.0")
assert zabbix_web.version.startswith("1:3.0")
elif SystemInfo.distribution == 'centos':
assert zabbix_server.version.startswith("3.0")
assert zabbix_web.version.startswith("3.0")
def test_socket(Socket):
assert Socket("tcp://0.0.0.0:10051").is_listening
def test_zabbix_server_dot_conf(File):
zabbix_server_conf = File("/etc/zabbix/zabbix_server.conf")
assert zabbix_server_conf.user == "zabbix"
assert zabbix_server_conf.group == "zabbix"
assert zabbix_server_conf.mode == 0o644
assert zabbix_server_conf.contains("ListenPort=10051")
assert zabbix_server_conf.contains("DBHost=localhost")
assert zabbix_server_conf.contains("DebugLevel=3")
def test_zabbix_include_dir(File):
zabbix_include_dir = File("/etc/zabbix/zabbix_server.conf.d")
assert zabbix_include_dir.is_directory
assert zabbix_include_dir.user == "zabbix"
assert zabbix_include_dir.group == "zabbix"
# assert zabbix_include_dir.mode == 0o644
def test_zabbix_web(File):
zabbix_web = File("/etc/zabbix/web/zabbix.conf.php")
assert zabbix_web.user == "zabbix"
assert zabbix_web.group == "zabbix"
assert zabbix_web.mode == 0o644
# def test_http_status():
# zabbix = requests.get('http://zabbix.example.com')
# zabbix_status_code = zabbix.status_code
# assert zabbix_status_code == 200
#
#
# def test_http_api_login():
# data_login = '{"params": {"password":"zabbix", "user":"Admin"}, "jsonrpc":"2.0", "method":"user.login", "id":0}'
# headers = {'Content-Type': 'application/json-rpc'}
# zabbix = requests.post('http://zabbix.example.com/api_jsonrpc.php', data=data_login, headers=headers, timeout=30)
# zabbix_api_status = zabbix.status_code
# zabbix_api_json = zabbix.json()
# assert zabbix_api_status == 200
# assert zabbix_api_json['id'] == 0
#
# zabbix_api_token = zabbix_api_json['result']
# data_search = '''{"jsonrpc": "2.0","method": "host.get","params":
# {"output": "extend","filter": {"host": ["Zabbix server"]}},"auth":"''' + zabbix_api_token + '''","id": 1}'''
# zabbix = requests.post('http://zabbix.example.com/api_jsonrpc.php', data=data_search, headers=headers, timeout=30)
# zabbix_api_search_status = zabbix.status_code
# zabbix_api_search_json = zabbix.json()
# assert zabbix_api_search_status == 200
# assert zabbix_api_search_json['result'][0]['host'] == 'Zabbix server'