mirror of
https://github.com/valitydev/salt.git
synced 2024-11-07 00:55:19 +00:00
753 lines
31 KiB
Python
753 lines
31 KiB
Python
# -*- coding: utf-8 -*-
|
|
'''
|
|
:codeauthor: :email:`Christian McHugh <christian.mchugh@gmail.com>`
|
|
'''
|
|
|
|
# Import Python Libs
|
|
from __future__ import absolute_import
|
|
from __future__ import unicode_literals
|
|
import salt.modules.zabbix as zabbix
|
|
|
|
# Import Salt Testing Libs
|
|
from tests.support.mixins import LoaderModuleMockMixin
|
|
from tests.support.unit import skipIf, TestCase
|
|
from tests.support.mock import (
|
|
MagicMock,
|
|
patch,
|
|
NO_MOCK,
|
|
NO_MOCK_REASON
|
|
)
|
|
|
|
from salt.exceptions import SaltException
|
|
|
|
CONN_ARGS = {}
|
|
CONN_ARGS['url'] = 'http://test.url'
|
|
CONN_ARGS['auth'] = '1234'
|
|
|
|
GETID_QUERY_RESULT_OK = [{'internal': '0', 'flags': '0', 'groupid': '11', 'name': 'Databases'}]
|
|
GETID_QUERY_RESULT_BAD = [{'internal': '0', 'flags': '0', 'groupid': '11', 'name': 'Databases'}, {'another': 'object'}]
|
|
|
|
DEFINED_PARAMS = {'name': 'beta',
|
|
'eventsource': 2,
|
|
'status': 0,
|
|
'filter': {'evaltype': 2,
|
|
'conditions': [{'conditiontype': 24,
|
|
'operator': 2,
|
|
'value': 'db'}]},
|
|
'operations': [{'operationtype': 2},
|
|
{'operationtype': 4,
|
|
'opgroup': [{'groupid': {'query_object': 'hostgroup',
|
|
'query_name': 'Databases'}}]}],
|
|
'empty_list': []}
|
|
|
|
SUBSTITUTED_DEFINED_PARAMS = {'status': '0',
|
|
'filter': {'evaltype': '2',
|
|
'conditions': [{'operator': '2',
|
|
'conditiontype': '24',
|
|
'value': 'db'}]},
|
|
'eventsource': '2',
|
|
'name': 'beta',
|
|
'operations': [{'operationtype': '2'},
|
|
{'opgroup': [{'groupid': '11'}],
|
|
'operationtype': '4'}],
|
|
'empty_list': []}
|
|
|
|
EXISTING_OBJECT_PARAMS = {'status': '0',
|
|
'operations': [{'operationtype': '2', 'esc_period': '0', 'evaltype': '0', 'opconditions': [],
|
|
'esc_step_to': '1', 'actionid': '23', 'esc_step_from': '1',
|
|
'operationid': '64'},
|
|
{'operationtype': '4', 'esc_period': '0', 'evaltype': '0', 'opconditions': [],
|
|
'esc_step_to': '1', 'actionid': '23', 'esc_step_from': '1',
|
|
'opgroup': [{'groupid': '11',
|
|
'operationid': '65'}],
|
|
'operationid': '65'}],
|
|
'def_shortdata': '',
|
|
'name': 'beta',
|
|
'esc_period': '0',
|
|
'def_longdata': '',
|
|
'filter': {'formula': '',
|
|
'evaltype': '2',
|
|
'conditions': [{'operator': '2',
|
|
'conditiontype': '24',
|
|
'formulaid': 'A',
|
|
'value': 'DIFFERENT VALUE HERE'}],
|
|
'eval_formula': 'A'},
|
|
'eventsource': '2',
|
|
'actionid': '23',
|
|
'r_shortdata': '',
|
|
'r_longdata': '',
|
|
'recovery_msg': '0',
|
|
'empty_list': [{'dict_key': 'dic_val'}]}
|
|
|
|
DIFF_PARAMS_RESULT = {'filter': {'evaltype': '2',
|
|
'conditions': [{'operator': '2',
|
|
'conditiontype': '24',
|
|
'value': 'db'}]},
|
|
'empty_list': []}
|
|
|
|
DIFF_PARAMS_RESULT_WITH_ROLLBACK = {'new': DIFF_PARAMS_RESULT,
|
|
'old': {'filter': {'formula': '',
|
|
'evaltype': '2',
|
|
'conditions': [{'operator': '2',
|
|
'conditiontype': '24',
|
|
'formulaid': 'A',
|
|
'value': 'DIFFERENT VALUE HERE'}],
|
|
'eval_formula': 'A'},
|
|
'empty_list': [{'dict_key': 'dic_val'}]}}
|
|
|
|
|
|
@skipIf(NO_MOCK, NO_MOCK_REASON)
|
|
class ZabbixTestCase(TestCase, LoaderModuleMockMixin):
|
|
'''
|
|
Test cases for salt.modules.zabbix
|
|
'''
|
|
|
|
def setup_loader_modules(self):
|
|
return {zabbix: {'__salt__': {'cmd.which_bin': lambda _: 'zabbix_server'}}}
|
|
|
|
def test_get_object_id_by_params(self):
|
|
'''
|
|
Test get_object_id function with expected result from API call
|
|
'''
|
|
with patch('salt.modules.zabbix.run_query', MagicMock(return_value=GETID_QUERY_RESULT_OK)):
|
|
self.assertEqual(zabbix.get_object_id_by_params('hostgroup', 'Databases'), '11')
|
|
|
|
def test_get_obj_id_by_params_fail(self):
|
|
'''
|
|
Test get_object_id function with unexpected result from API call
|
|
'''
|
|
with patch('salt.modules.zabbix.run_query', MagicMock(return_value=GETID_QUERY_RESULT_BAD)):
|
|
self.assertRaises(SaltException, zabbix.get_object_id_by_params, 'hostgroup', 'Databases')
|
|
|
|
def test_substitute_params(self):
|
|
'''
|
|
Test proper parameter substitution for defined input
|
|
'''
|
|
with patch('salt.modules.zabbix.get_object_id_by_params', MagicMock(return_value='11')):
|
|
self.assertEqual(zabbix.substitute_params(DEFINED_PARAMS), SUBSTITUTED_DEFINED_PARAMS)
|
|
|
|
def test_substitute_params_fail(self):
|
|
'''
|
|
Test proper parameter substitution if there is needed parameter missing
|
|
'''
|
|
self.assertRaises(SaltException, zabbix.substitute_params, {'groupid': {'query_object': 'hostgroup'}})
|
|
|
|
def test_compare_params(self):
|
|
'''
|
|
Test result comparison of two params structures
|
|
'''
|
|
self.assertEqual(zabbix.compare_params(SUBSTITUTED_DEFINED_PARAMS, EXISTING_OBJECT_PARAMS),
|
|
DIFF_PARAMS_RESULT)
|
|
|
|
def test_compare_params_rollback(self):
|
|
'''
|
|
Test result comparison of two params structures with rollback return value option
|
|
'''
|
|
self.assertEqual(zabbix.compare_params(SUBSTITUTED_DEFINED_PARAMS, EXISTING_OBJECT_PARAMS, True),
|
|
DIFF_PARAMS_RESULT_WITH_ROLLBACK)
|
|
|
|
def test_compare_params_fail(self):
|
|
'''
|
|
Test result comparison of two params structures where some data type mismatch exists
|
|
'''
|
|
self.assertRaises(SaltException, zabbix.compare_params, {'dict': 'val'}, {'dict': ['list']})
|
|
|
|
def test_apiiinfo_version(self):
|
|
'''
|
|
Test apiinfo_version
|
|
'''
|
|
module_return = "3.4.5"
|
|
query_return = {"jsonrpc": "2.0", "result": "3.4.5", "id": 1}
|
|
|
|
with patch.object(zabbix, '_query', return_value=query_return):
|
|
with patch.object(zabbix, '_login', return_value=CONN_ARGS):
|
|
self.assertEqual(zabbix.apiinfo_version(**CONN_ARGS), module_return)
|
|
|
|
def test_user_create(self):
|
|
'''
|
|
query_submitted = {"params": {"passwd": "password007", "alias": "james",
|
|
"name": "James Bond", "usrgrps": [{"usrgrpid": 7}, {"usrgrpid": 12}]},
|
|
"jsonrpc": "2.0", "id": 0, "auth": "f016981c4f0d3f8b9682e34588fe8a33",
|
|
"method": "user.create"}
|
|
'''
|
|
|
|
module_return = ['3']
|
|
query_return = {"jsonrpc": "2.0", "result": {"userids": ["3"]}, "id": 0}
|
|
|
|
with patch.object(zabbix, '_query', return_value=query_return):
|
|
with patch.object(zabbix, '_login', return_value=CONN_ARGS):
|
|
self.assertEqual(zabbix.user_create('james', 'password007', '[7, 12]',
|
|
firstname='James Bond', **CONN_ARGS), module_return)
|
|
|
|
def test_user_delete(self):
|
|
'''
|
|
query_submitted = {"params": [3], "jsonrpc": "2.0", "id": 0,
|
|
"auth": "68d38eace8e42a35c8d0c6a2ab0245a6", "method": "user.delete"}
|
|
'''
|
|
|
|
module_return = ['3']
|
|
query_return = {"jsonrpc": "2.0", "result": {"userids": ["3"]}, "id": 0}
|
|
|
|
with patch.object(zabbix, '_query', return_value=query_return):
|
|
with patch.object(zabbix, '_login', return_value=CONN_ARGS):
|
|
self.assertEqual(zabbix.user_delete(3, **CONN_ARGS), module_return)
|
|
|
|
def test_user_exists(self):
|
|
'''
|
|
query_submitted = {"params": {"filter": {"alias": "Admin"}, "output": "extend"},
|
|
"jsonrpc": "2.0", "id": 0, "auth": "72435c7f754cb2adb4ecddc98216057f",
|
|
"method": "user.get"}
|
|
'''
|
|
|
|
module_return = True
|
|
# pylint: disable=E8128
|
|
query_return = {"jsonrpc": "2.0", "result": [{"userid": "1", "alias": "Admin",
|
|
"name": "Zabbix", "surname": "Administrator", "url": "", "autologin": "1",
|
|
"autologout": "0", "lang": "en_GB", "refresh": "30s", "type": "3", "theme": "default",
|
|
"attempt_failed": "0", "attempt_ip": "10.0.2.2", "attempt_clock": "1515922072",
|
|
"rows_per_page": "50"}], "id": 0}
|
|
|
|
with patch.object(zabbix, '_query', return_value=query_return):
|
|
with patch.object(zabbix, '_login', return_value=CONN_ARGS):
|
|
self.assertEqual(zabbix.user_exists('Admin', **CONN_ARGS), module_return)
|
|
|
|
def test_user_get(self):
|
|
'''
|
|
query_submitted = {"params": {"filter": {"alias": "Admin"}, "output": "extend"},
|
|
"jsonrpc": "2.0", "id": 0, "auth": "49ef327f205d9e9150d4651cb6adc2d5",
|
|
"method": "user.get"}
|
|
'''
|
|
|
|
module_return = [{
|
|
"lang": "en_GB",
|
|
"rows_per_page": "50",
|
|
"surname": "Administrator",
|
|
"name": "Zabbix",
|
|
"url": "",
|
|
"attempt_clock": "1515922072",
|
|
"userid": "1",
|
|
"autologin": "1",
|
|
"refresh": "30s",
|
|
"attempt_failed": "0",
|
|
"alias": "Admin",
|
|
"theme": "default",
|
|
"autologout": "0",
|
|
"attempt_ip": "10.0.2.2",
|
|
"type": "3"
|
|
}]
|
|
# pylint: disable=E8128
|
|
query_return = {"jsonrpc": "2.0", "result": [{"userid": "1", "alias": "Admin",
|
|
"name": "Zabbix", "surname": "Administrator", "url": "", "autologin": "1",
|
|
"autologout": "0", "lang": "en_GB", "refresh": "30s", "type": "3", "theme": "default",
|
|
"attempt_failed": "0", "attempt_ip": "10.0.2.2", "attempt_clock": "1515922072",
|
|
"rows_per_page": "50"}], "id": 0}
|
|
|
|
with patch.object(zabbix, '_query', return_value=query_return):
|
|
with patch.object(zabbix, '_login', return_value=CONN_ARGS):
|
|
self.assertEqual(zabbix.user_get('Admin', **CONN_ARGS), module_return)
|
|
self.assertEqual(zabbix.user_get(userids='1', **CONN_ARGS), module_return)
|
|
|
|
def test_user_update(self):
|
|
'''
|
|
query_submitted = {"params": {"userid": 3, "name": "James Brown"}, "jsonrpc": "2.0",
|
|
"id": 0, "auth": "cdf2ee35e3bc47560585e9c457cbc398", "method": "user.update"}
|
|
'''
|
|
|
|
module_return = ['3']
|
|
query_return = {"jsonrpc": "2.0", "result": {"userids": ["3"]}, "id": 0}
|
|
|
|
with patch.object(zabbix, '_query', return_value=query_return):
|
|
with patch.object(zabbix, '_login', return_value=CONN_ARGS):
|
|
self.assertEqual(zabbix.user_update('3', visible_name='James Brown', **CONN_ARGS), module_return)
|
|
|
|
def test_user_getmedia(self):
|
|
'''
|
|
query_submitted = {"params": {"userids": 3}, "jsonrpc": "2.0", "id": 0,
|
|
"auth": "d4de741ea7cdd434b3ba7b56efa4efaf", "method": "usermedia.get"}
|
|
'''
|
|
|
|
module_return = [
|
|
{
|
|
"mediatypeid": "1",
|
|
"mediaid": "1",
|
|
"severity": "63",
|
|
"userid": "3",
|
|
"period": "1-7,00:00-24:00",
|
|
"sendto": "email@example.com",
|
|
"active": "0"
|
|
}
|
|
]
|
|
# pylint: disable=E8128
|
|
query_return = {"jsonrpc": "2.0", "result": [{"mediaid": "1", "userid": "3",
|
|
"mediatypeid": "1", "sendto": "email@example.com", "active": "0", "severity": "63",
|
|
"period": "1-7,00:00-24:00"}], "id": 0}
|
|
|
|
with patch.object(zabbix, '_query', return_value=query_return):
|
|
with patch.object(zabbix, '_login', return_value=CONN_ARGS):
|
|
self.assertEqual(zabbix.user_getmedia('3', **CONN_ARGS), module_return)
|
|
|
|
def test_user_addmedia(self):
|
|
'''
|
|
query_submitted = {"params": {"medias": [{"active": 0, "mediatypeid": 1,
|
|
"period": "1-7,00:00-24:00", "severity": 63, "sendto": "support2@example.com"}],
|
|
"users": [{"userid": 1}]}, "jsonrpc": "2.0", "id": 0, "auth": "b347fc1bf1f5617b93755619a037c19e",
|
|
"method": "user.addmedia"}
|
|
'''
|
|
|
|
module_return = ['2']
|
|
query_return = {"jsonrpc": "2.0", "result": {"mediaids": ["2"]}, "id": 0}
|
|
|
|
with patch.object(zabbix, '_query', return_value=query_return):
|
|
with patch.object(zabbix, '_login', return_value=CONN_ARGS):
|
|
self.assertEqual(zabbix.user_addmedia('1', active='0', mediatypeid='1',
|
|
period='1-7,00:00-24:00', sendto='support2@example.com',
|
|
severity='63', **CONN_ARGS), module_return)
|
|
|
|
def test_user_deletemedia(self):
|
|
'''
|
|
query_submitted = {"params": [1], "jsonrpc": "2.0", "id": 0, "auth": "9fb226c759a320de0de3b7a141404506",
|
|
"method": "user.deletemedia"}
|
|
'''
|
|
|
|
module_return = [1]
|
|
query_return = {"jsonrpc": "2.0", "result": {"mediaids": [1]}, "id": 0}
|
|
|
|
with patch.object(zabbix, '_query', return_value=query_return):
|
|
with patch.object(zabbix, '_login', return_value=CONN_ARGS):
|
|
self.assertEqual(zabbix.user_deletemedia('1', **CONN_ARGS), module_return)
|
|
|
|
def test_user_list(self):
|
|
'''
|
|
query_submitted = {"params": {"output": "extend"}, "jsonrpc": "2.0", "id": 0,
|
|
"auth": "54d67b63c37e690cf06972678f1e9720", "method": "user.get"}
|
|
'''
|
|
|
|
module_return = [
|
|
{
|
|
"lang": "en_GB",
|
|
"rows_per_page": "50",
|
|
"surname": "Administrator",
|
|
"name": "Zabbix",
|
|
"url": "",
|
|
"attempt_clock": "1515922072",
|
|
"userid": "1",
|
|
"autologin": "1",
|
|
"refresh": "30s",
|
|
"attempt_failed": "0",
|
|
"alias": "Admin",
|
|
"theme": "default",
|
|
"autologout": "0",
|
|
"attempt_ip": "10.0.2.2",
|
|
"type": "3"
|
|
},
|
|
{
|
|
"lang": "en_GB",
|
|
"rows_per_page": "50",
|
|
"surname": "",
|
|
"name": "",
|
|
"url": "",
|
|
"attempt_clock": "0",
|
|
"userid": "2",
|
|
"autologin": "0",
|
|
"refresh": "30s",
|
|
"attempt_failed": "0",
|
|
"alias": "guest",
|
|
"theme": "default",
|
|
"autologout": "15m",
|
|
"attempt_ip": "",
|
|
"type": "1"
|
|
},
|
|
{
|
|
"lang": "en_GB",
|
|
"rows_per_page": "50",
|
|
"surname": "",
|
|
"name": "James Brown",
|
|
"url": "",
|
|
"attempt_clock": "0",
|
|
"userid": "5",
|
|
"autologin": "0",
|
|
"refresh": "30s",
|
|
"attempt_failed": "0",
|
|
"alias": "james",
|
|
"theme": "default",
|
|
"autologout": "15m",
|
|
"attempt_ip": "",
|
|
"type": "1"
|
|
}
|
|
]
|
|
# pylint: disable=E8128
|
|
query_return = {"jsonrpc": "2.0", "result": [{"userid": "1", "alias": "Admin",
|
|
"name": "Zabbix", "surname": "Administrator", "url": "", "autologin": "1",
|
|
"autologout": "0", "lang": "en_GB", "refresh": "30s", "type": "3", "theme": "default",
|
|
"attempt_failed": "0", "attempt_ip": "10.0.2.2", "attempt_clock": "1515922072",
|
|
"rows_per_page": "50"}, {"userid": "2", "alias": "guest", "name": "", "surname": "",
|
|
"url": "", "autologin": "0", "autologout": "15m", "lang": "en_GB", "refresh": "30s",
|
|
"type": "1", "theme": "default", "attempt_failed": "0", "attempt_ip": "", "attempt_clock": "0",
|
|
"rows_per_page": "50"}, {"userid": "5", "alias": "james", "name": "James Brown", "surname": "",
|
|
"url": "", "autologin": "0", "autologout": "15m", "lang": "en_GB", "refresh": "30s",
|
|
"type": "1", "theme": "default", "attempt_failed": "0", "attempt_ip": "", "attempt_clock": "0",
|
|
"rows_per_page": "50"}], "id": 0}
|
|
|
|
with patch.object(zabbix, '_query', return_value=query_return):
|
|
with patch.object(zabbix, '_login', return_value=CONN_ARGS):
|
|
self.assertEqual(zabbix.user_list(**CONN_ARGS), module_return)
|
|
|
|
def test_usergroup_create(self):
|
|
'''
|
|
query_submitted = {"params": {"name": "testgroup"}, "jsonrpc": "2.0", "id": 0,
|
|
"auth": "7f3ac5e90201e5de4eb19e5322606575", "method": "usergroup.create"}
|
|
'''
|
|
|
|
module_return = ["13"]
|
|
query_return = {"jsonrpc": "2.0", "result": {"usrgrpids": ["13"]}, "id": 0}
|
|
|
|
with patch.object(zabbix, '_query', return_value=query_return):
|
|
with patch.object(zabbix, '_login', return_value=CONN_ARGS):
|
|
self.assertEqual(zabbix.usergroup_create('testgroup', **CONN_ARGS), module_return)
|
|
|
|
def test_usergroup_delete(self):
|
|
'''
|
|
query_submitted = {"params": [13], "jsonrpc": "2.0", "id": 0,
|
|
"auth": "9bad39de2a5a9211da588dd06dad8773", "method": "usergroup.delete"}
|
|
'''
|
|
|
|
module_return = ['13']
|
|
query_return = {"jsonrpc": "2.0", "result": {"usrgrpids": ["13"]}, "id": 0}
|
|
|
|
with patch.object(zabbix, '_query', return_value=query_return):
|
|
with patch.object(zabbix, '_login', return_value=CONN_ARGS):
|
|
self.assertEqual(zabbix.usergroup_delete('13', **CONN_ARGS), module_return)
|
|
|
|
def test_usergroup_exists(self):
|
|
'''
|
|
query_submitted = {"params": {"filter": {"name": "testgroup"}, "output": "extend",
|
|
"selectRights": "extend"}, "jsonrpc": "2.0", "id": 0, "auth": "e62424cd7aa71f6748e1d69c190ac852",
|
|
"method": "usergroup.get"}
|
|
'''
|
|
|
|
module_return = True
|
|
query_return = {"jsonrpc": "2.0", "result": [{"usrgrpid": "13", "name": "testgroup",
|
|
"gui_access": "0", "users_status": "0", "debug_mode": "0", "rights": []}], "id": 0}
|
|
|
|
with patch.object(zabbix, 'apiinfo_version', return_value='3.2'):
|
|
with patch.object(zabbix, '_query', return_value=query_return):
|
|
with patch.object(zabbix, '_login', return_value=CONN_ARGS):
|
|
self.assertEqual(zabbix.usergroup_exists('testgroup', **CONN_ARGS), module_return)
|
|
|
|
def test_usergroup_get(self):
|
|
'''
|
|
query_submitted = {"params": {"filter": {"name": "testgroup"}, "output": "extend",
|
|
"selectRights": "extend"}, "jsonrpc": "2.0", "id": 0, "auth": "739cf358050f2a2d33162fdcfa714a3c",
|
|
"method": "usergroup.get"}
|
|
'''
|
|
|
|
module_return = [
|
|
{
|
|
"name": "testgroup",
|
|
"rights": [],
|
|
"users_status": "0",
|
|
"gui_access": "0",
|
|
"debug_mode": "0",
|
|
"usrgrpid": "13"
|
|
}
|
|
]
|
|
query_return = {"jsonrpc": "2.0", "result": [{"usrgrpid": "13", "name": "testgroup",
|
|
"gui_access": "0", "users_status": "0", "debug_mode": "0", "rights": []}], "id": 0}
|
|
|
|
with patch.object(zabbix, 'apiinfo_version', return_value='3.2'):
|
|
with patch.object(zabbix, '_query', return_value=query_return):
|
|
with patch.object(zabbix, '_login', return_value=CONN_ARGS):
|
|
self.assertEqual(zabbix.usergroup_get('testgroup', **CONN_ARGS), module_return)
|
|
|
|
def test_usergroup_update(self):
|
|
'''
|
|
query_submitted = {"params": {"usrgrpid": 13, "users_status": 1}, "jsonrpc": "2.0",
|
|
"id": 0, "auth": "ef772237245f59f655871bc8fbbcd67c", "method": "usergroup.update"}
|
|
'''
|
|
|
|
module_return = ["13"]
|
|
query_return = {"jsonrpc": "2.0", "result": {"usrgrpids": ["13"]}, "id": 0}
|
|
|
|
with patch.object(zabbix, '_query', return_value=query_return):
|
|
with patch.object(zabbix, '_login', return_value=CONN_ARGS):
|
|
self.assertEqual(zabbix.usergroup_update('13', users_status='1', **CONN_ARGS), module_return)
|
|
|
|
def test_usergroup_list(self):
|
|
'''
|
|
query_submitted = {"params": {"output": "extend"}, "jsonrpc": "2.0", "id": 0,
|
|
"auth": "4bc366bc7803c07e80f15b1bc14dc61f", "method": "usergroup.get"}
|
|
'''
|
|
|
|
module_return = [
|
|
{
|
|
"usrgrpid": "7",
|
|
"gui_access": "0",
|
|
"debug_mode": "0",
|
|
"name": "Zabbix administrators",
|
|
"users_status": "0"
|
|
},
|
|
{
|
|
"usrgrpid": "8",
|
|
"gui_access": "0",
|
|
"debug_mode": "0",
|
|
"name": "Guests",
|
|
"users_status": "0"
|
|
},
|
|
{
|
|
"usrgrpid": "9",
|
|
"gui_access": "0",
|
|
"debug_mode": "0",
|
|
"name": "Disabled",
|
|
"users_status": "1"
|
|
},
|
|
{
|
|
"usrgrpid": "11",
|
|
"gui_access": "0",
|
|
"debug_mode": "1",
|
|
"name": "Enabled debug mode",
|
|
"users_status": "0"
|
|
},
|
|
{
|
|
"usrgrpid": "12",
|
|
"gui_access": "2",
|
|
"debug_mode": "0",
|
|
"name": "No access to the frontend",
|
|
"users_status": "0"
|
|
},
|
|
{
|
|
"usrgrpid": "13",
|
|
"gui_access": "0",
|
|
"debug_mode": "0",
|
|
"name": "testgroup",
|
|
"users_status": "0"
|
|
}
|
|
]
|
|
# pylint: disable=E8128
|
|
query_return = {"jsonrpc": "2.0", "result": [{"usrgrpid": "7", "name": "Zabbix administrators",
|
|
"gui_access": "0", "users_status": "0", "debug_mode": "0"}, {"usrgrpid": "8", "name": "Guests",
|
|
"gui_access": "0", "users_status": "0", "debug_mode": "0"}, {"usrgrpid": "9",
|
|
"name": "Disabled", "gui_access": "0", "users_status": "1", "debug_mode": "0"},
|
|
{"usrgrpid": "11", "name": "Enabled debug mode", "gui_access": "0", "users_status": "0",
|
|
"debug_mode": "1"}, {"usrgrpid": "12", "name": "No access to the frontend", "gui_access": "2",
|
|
"users_status": "0", "debug_mode": "0"}, {"usrgrpid": "13", "name": "testgroup",
|
|
"gui_access": "0", "users_status": "0", "debug_mode": "0"}], "id": 0}
|
|
|
|
with patch.object(zabbix, '_query', return_value=query_return):
|
|
with patch.object(zabbix, '_login', return_value=CONN_ARGS):
|
|
self.assertEqual(zabbix.usergroup_list(**CONN_ARGS), module_return)
|
|
|
|
def test_host_inventory_get(self):
|
|
'''
|
|
test host_inventory_get
|
|
'''
|
|
module_return = {
|
|
"poc_2_email": "",
|
|
"poc_2_phone_b": "",
|
|
"site_country": "",
|
|
"poc_2_screen": "",
|
|
"poc_2_notes": "",
|
|
"poc_1_screen": "",
|
|
"hardware": "",
|
|
"software_app_a": "",
|
|
"software_app_b": "",
|
|
"software_app_c": "",
|
|
"software_app_d": "",
|
|
"os_short": "",
|
|
"site_zip": "",
|
|
"poc_2_name": "",
|
|
"os_full": "",
|
|
"host_netmask": "",
|
|
"host_router": "",
|
|
"url_c": "",
|
|
"date_hw_install": "",
|
|
"poc_1_phone_b": "",
|
|
"poc_1_phone_a": "",
|
|
"poc_1_cell": "",
|
|
"type_full": "",
|
|
"location_lat": "",
|
|
"vendor": "",
|
|
"contact": "",
|
|
"site_rack": "",
|
|
"location": "",
|
|
"poc_2_cell": "",
|
|
"date_hw_expiry": "",
|
|
"installer_name": "",
|
|
"type": "",
|
|
"contract_number": "",
|
|
"deployment_status": "",
|
|
"site_notes": "",
|
|
"inventory_mode": "0",
|
|
"oob_ip": "",
|
|
"host_networks": "",
|
|
"hardware_full": "",
|
|
"poc_2_phone_a": "",
|
|
"poc_1_name": "",
|
|
"site_state": "",
|
|
"chassis": "",
|
|
"software_app_e": "",
|
|
"site_address_b": "",
|
|
"site_address_a": "",
|
|
"date_hw_decomm": "",
|
|
"date_hw_purchase": "",
|
|
"location_lon": "",
|
|
"hw_arch": "",
|
|
"software_full": "",
|
|
"asset_tag": "",
|
|
"oob_router": "",
|
|
"hostid": "10258",
|
|
"poc_1_email": "",
|
|
"name": "",
|
|
"poc_1_notes": "",
|
|
"serialno_b": "",
|
|
"notes": "",
|
|
"oob_netmask": "",
|
|
"alias": "other thing",
|
|
"tag": "",
|
|
"macaddress_b": "",
|
|
"macaddress_a": "",
|
|
"site_city": "",
|
|
"site_address_c": "",
|
|
"model": "",
|
|
"serialno_a": "",
|
|
"os": "some",
|
|
"url_b": "",
|
|
"url_a": "",
|
|
"software": ""
|
|
}
|
|
query_return = {"jsonrpc": "2.0", "result": [{
|
|
"hostid": "10258",
|
|
"proxy_hostid": "0",
|
|
"host": "master",
|
|
"status": "0",
|
|
"disable_until": "1517766661",
|
|
"error": "Get value from agent failed: cannot connect to [[10.0.2.15]:10050]: [111] Connection refused",
|
|
"available": "2",
|
|
"errors_from": "1516087871",
|
|
"lastaccess": "0",
|
|
"ipmi_authtype": "-1",
|
|
"ipmi_privilege": "2",
|
|
"ipmi_username": "",
|
|
"ipmi_password": "",
|
|
"ipmi_disable_until": "0",
|
|
"ipmi_available": "0",
|
|
"snmp_disable_until": "0",
|
|
"snmp_available": "0",
|
|
"maintenanceid": "0",
|
|
"maintenance_status": "0",
|
|
"maintenance_type": "0",
|
|
"maintenance_from": "0",
|
|
"ipmi_errors_from": "0",
|
|
"snmp_errors_from": "0",
|
|
"ipmi_error": "",
|
|
"snmp_error": "",
|
|
"jmx_disable_until": "0",
|
|
"jmx_available": "0",
|
|
"jmx_errors_from": "0",
|
|
"jmx_error": "",
|
|
"name": "master",
|
|
"flags": "0",
|
|
"templateid": "0",
|
|
"description": "",
|
|
"tls_connect": "1",
|
|
"tls_accept": "1",
|
|
"tls_issuer": "",
|
|
"tls_subject": "",
|
|
"tls_psk_identity": "",
|
|
"tls_psk": "",
|
|
"inventory": {
|
|
"hostid": "10258",
|
|
"inventory_mode": "0",
|
|
"type": "",
|
|
"type_full": "",
|
|
"name": "",
|
|
"alias": "other thing",
|
|
"os": "some",
|
|
"os_full": "",
|
|
"os_short": "",
|
|
"serialno_a": "",
|
|
"serialno_b": "",
|
|
"tag": "",
|
|
"asset_tag": "",
|
|
"macaddress_a": "",
|
|
"macaddress_b": "",
|
|
"hardware": "",
|
|
"hardware_full": "",
|
|
"software": "",
|
|
"software_full": "",
|
|
"software_app_a": "",
|
|
"software_app_b": "",
|
|
"software_app_c": "",
|
|
"software_app_d": "",
|
|
"software_app_e": "",
|
|
"contact": "",
|
|
"location": "",
|
|
"location_lat": "",
|
|
"location_lon": "",
|
|
"notes": "",
|
|
"chassis": "",
|
|
"model": "",
|
|
"hw_arch": "",
|
|
"vendor": "",
|
|
"contract_number": "",
|
|
"installer_name": "",
|
|
"deployment_status": "",
|
|
"url_a": "",
|
|
"url_b": "",
|
|
"url_c": "",
|
|
"host_networks": "",
|
|
"host_netmask": "",
|
|
"host_router": "",
|
|
"oob_ip": "",
|
|
"oob_netmask": "",
|
|
"oob_router": "",
|
|
"date_hw_purchase": "",
|
|
"date_hw_install": "",
|
|
"date_hw_expiry": "",
|
|
"date_hw_decomm": "",
|
|
"site_address_a": "",
|
|
"site_address_b": "",
|
|
"site_address_c": "",
|
|
"site_city": "",
|
|
"site_state": "",
|
|
"site_country": "",
|
|
"site_zip": "",
|
|
"site_rack": "",
|
|
"site_notes": "",
|
|
"poc_1_name": "",
|
|
"poc_1_email": "",
|
|
"poc_1_phone_a": "",
|
|
"poc_1_phone_b": "",
|
|
"poc_1_cell": "",
|
|
"poc_1_screen": "",
|
|
"poc_1_notes": "",
|
|
"poc_2_name": "",
|
|
"poc_2_email": "",
|
|
"poc_2_phone_a": "",
|
|
"poc_2_phone_b": "",
|
|
"poc_2_cell": "",
|
|
"poc_2_screen": "",
|
|
"poc_2_notes": ""
|
|
}
|
|
}],
|
|
"id": 1
|
|
}
|
|
|
|
with patch.object(zabbix, '_query', return_value=query_return):
|
|
with patch.object(zabbix, '_login', return_value=CONN_ARGS):
|
|
self.assertEqual(zabbix.host_inventory_get('12345', **CONN_ARGS), module_return)
|
|
|
|
def test_host_inventory_set(self):
|
|
'''
|
|
query_submitted = {"params": {"hostid": 10258, "inventory_mode": "0", "inventory":
|
|
{"asset_tag": "jml3322", "type": "Xen"}}, "jsonrpc": "2.0", "id": 0,
|
|
"auth": "a50d2c3030b9b73d7c28b5ebd89c044c", "method": "host.update"}
|
|
'''
|
|
|
|
module_return = {"hostids": [10258]}
|
|
query_return = {"jsonrpc": "2.0", "result": {"hostids": [10258]}, "id": 0}
|
|
|
|
with patch.object(zabbix, '_query', return_value=query_return):
|
|
with patch.object(zabbix, '_login', return_value=CONN_ARGS):
|
|
self.assertEqual(zabbix.host_inventory_set(10258, asset_tag='jml3322',
|
|
type='Xen', **CONN_ARGS), module_return)
|