12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028 |
- # -*- coding: utf-8 -*-
- """
- :codeauthor: :email:`Christian McHugh <christian.mchugh@gmail.com>`
- """
- # Import Python Libs
- from __future__ import absolute_import, unicode_literals
- import salt.modules.zabbix as zabbix
- from salt.exceptions import SaltException
- # Import Salt Testing Libs
- from tests.support.mixins import LoaderModuleMockMixin
- from tests.support.mock import MagicMock, patch
- from tests.support.unit import TestCase
- 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"}],
- },
- }
- 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,
- )
|