def test_host_searchintercept_host(self): thost = zabbixmgm.zbxhost(self.apimock, name='mytesthost.local') iface1 = zabbixmgm.zbxinterface(self.apimock, port=3001, host=thost.name) iface2 = zabbixmgm.zbxinterface(self.apimock, port=3002, host='127.0.0.1') iface3 = zabbixmgm.zbxinterface(self.apimock, port=3003, host='mytesthost2.local') iface3.type = zabbixmgm.zbxinterface.TYPE_JMX iface4 = zabbixmgm.zbxinterface(self.apimock, port=3004, host='127.0.0.1') iface4.type = zabbixmgm.zbxinterface.TYPE_JMX thost.add_interface(iface1) thost.add_interface(iface3) thost.add_interface(iface2) thost.add_interface(iface4) tpid, idx = thost.search_interface(port='3004', searchtype='port') self.assertEqual(tpid, 4) self.assertEqual(idx, 1) tpid, idx = thost.search_interface(host='mytesthost2.local', searchtype='host') self.assertEqual(tpid, 4) self.assertEqual(idx, 0)
def get_host(hostname, group): logger = logging.getLogger(__name__) logger.info("Try to get host {0} with group {1}".format( hostname, group.id)) resp = zabbixmgm.query_host_by_name(zapi, hostname) logger.debug(resp) retHost = zabbixmgm.zbxhost(zapi, name=hostname, mask=resp) retHost.add_group(group) if not retHost.id: logger.info("Host {0} did not exist create new interface".format( hostname, group.id)) inf = zabbixmgm.zbxinterface(zapi) inf.host = retHost.name retHost.add_interface(inf) else: for interface in resp.get('interfaces', {}): logger.info("Host {0} exists get interface {1}".format( hostname, interface['interfaceid'])) sub_interface = zabbixmgm.query_interfaces_by_id( zapi, interface['interfaceid']) partinterface = zabbixmgm.zbxinterface(zapi, mask=sub_interface) retHost.add_interface(partinterface) commit_host(retHost) return retHost
def test_host_rm_interface(self): thost = zabbixmgm.zbxhost(self.apimock, name='mytesthost.local') iface1 = zabbixmgm.zbxinterface(self.apimock, port=3001, host=thost.name) iface2 = zabbixmgm.zbxinterface(self.apimock, port=3002, host='127.0.0.1') iface3 = zabbixmgm.zbxinterface(self.apimock, port=3003, host='mytesthost2.local') iface3.type = zabbixmgm.zbxinterface.TYPE_JMX iface4 = zabbixmgm.zbxinterface(self.apimock, port=3004, host='127.0.0.1') iface4.type = zabbixmgm.zbxinterface.TYPE_JMX thost.add_interface(iface1) thost.add_interface(iface3) thost.add_interface(iface2) thost.add_interface(iface4) create_command, create_params = thost.get('create') self.assertEqual(len(create_params['interfaces']), 4) self.assertEqual( len(thost.interfaceobjects[zabbixmgm.zbxinterface.TYPE_AGENT]), 2) self.assertEqual( len(thost.interfaceobjects[zabbixmgm.zbxinterface.TYPE_JMX]), 2) tpid, idx = thost.search_interface(host='mytesthost2.local', searchtype='host') thost.del_interface(tpid, idx) create_command, create_params = thost.get('create') self.assertEqual( len(thost.interfaceobjects[zabbixmgm.zbxinterface.TYPE_AGENT]), 2) self.assertEqual( len(thost.interfaceobjects[zabbixmgm.zbxinterface.TYPE_JMX]), 1) self.assertEqual(len(create_params['interfaces']), 3) tpid, idx = thost.search_interface(host='127.0.0.1', port='3004') thost.del_interface(tpid, idx) create_command, create_params = thost.get('create') self.assertEqual( len(thost.interfaceobjects[zabbixmgm.zbxinterface.TYPE_AGENT]), 2) self.assertEqual(len(thost.interfaceobjects.keys()), 1) self.assertFalse( zabbixmgm.zbxinterface.TYPE_JMX in thost.interfaceobjects.keys()) self.assertEqual(len(create_params['interfaces']), 2)
def test_host_interface_upon_creation_2inf_same_type(self): thost = zabbixmgm.zbxhost(self.apimock, name='mytesthost.local') command, param = thost.get() self.assertEqual(command, 'host.create') self.assertEqual(command, thost.apicommands['create']) self.assertTrue('interfaces' in param.keys()) self.assertTrue( len(param['interfaces']) == 0, 'interface should be empty but isn\'t') tinterface1 = zabbixmgm.zbxinterface(self.apimock) tinterface1.host = thost.name thost.add_interface(tinterface1) command, param = thost.get() self.assertEqual(command, 'host.create') self.assertEqual(command, thost.apicommands['create']) self.assertTrue('interfaces' in param.keys()) self.assertEqual(len(param['interfaces']), 1, 'interface should be filled with just 1') interface = param['interfaces'][0] self.assertEqual(interface['main'], 1, 'main should be one, it is set automatically') self.assertEqual(interface['dns'], 'mytesthost.local') tinterface2 = zabbixmgm.zbxinterface(self.apimock) tinterface2.host = thost.name tinterface2.port = '1110' thost.add_interface(tinterface2) command, param = thost.get() self.assertEqual(len(param['interfaces']), 2, 'interface should be filled with 2') interface = param['interfaces'][0] self.assertEqual(interface['main'], 1, 'main should be one, it is set automatically') self.assertEqual(interface['dns'], 'mytesthost.local') self.assertEqual(interface['port'], '10050') self.assertEqual(interface['type'], zabbixmgm.zbxinterface.TYPE_AGENT) interface = param['interfaces'][1] self.assertEqual(interface['main'], 0, 'main should be one, it is set automatically') self.assertEqual(interface['dns'], 'mytesthost.local') self.assertEqual(interface['port'], '1110') self.assertEqual(interface['type'], zabbixmgm.zbxinterface.TYPE_AGENT)
def test_host_interface_upon_creation_2inf_diff_type(self): thost = zabbixmgm.zbxhost(self.apimock, name='mytesthost.local') # pprint(thost.interfaceobjects) # self.interfaces = thost.interfaceobjects # ss = [interface_instance.get('hostcreate')[1] for iftypeid in self.interfaces.keys() for interface_instance in self.interfaces[iftypeid]] command, param = thost.get() self.assertEqual(command, 'host.create') self.assertEqual(command, thost.apicommands['create']) self.assertTrue('interfaces' in param.keys()) self.assertTrue( len(param['interfaces']) == 0, 'interface should be empty but isn\'t') tinterface1 = zabbixmgm.zbxinterface(self.apimock) tinterface1.host = thost.name thost.add_interface(tinterface1) command, param = thost.get() self.assertEqual(command, 'host.create') self.assertEqual(command, thost.apicommands['create']) self.assertTrue('interfaces' in param.keys()) self.assertEqual(len(param['interfaces']), 1, 'interface should be filled with just 1') interface = param['interfaces'][0] self.assertEqual(interface['main'], 1, 'main should be one, it is set automatically') self.assertEqual(interface['dns'], 'mytesthost.local') tinterface2 = zabbixmgm.zbxinterface(self.apimock) tinterface2.host = thost.name tinterface2.port = '4002' tinterface2.type = zabbixmgm.zbxinterface.TYPE_JMX thost.add_interface(tinterface2) command, param = thost.get() self.assertEqual(interface['main'], 1, 'main should be one, it is set automatically') self.assertEqual(interface['dns'], 'mytesthost.local') self.assertEqual(interface['port'], '10050') self.assertEqual(interface['type'], zabbixmgm.zbxinterface.TYPE_AGENT) interface = param['interfaces'][1] self.assertEqual(interface['main'], 1, 'main should be one, it is set automatically') self.assertEqual(interface['dns'], 'mytesthost.local') self.assertEqual(interface['port'], '4002') self.assertEqual(interface['type'], zabbixmgm.zbxinterface.TYPE_JMX)
def test_intf_get_auto_create_changevalues(self): iface = zabbixmgm.zbxinterface(self.apimock, hostid=123, main=1, bulk=0, type=zabbixmgm.zbxinterface.TYPE_JMX) command, param = iface.get() self.assertEqual(command, 'hostinterface.create') self.assertTrue(not 'interfaceid' in param) self.assertTrue('hostid' in param) self.assertEqual(param['hostid'], '123') self.assertTrue('main' in param) self.assertEqual(param['main'], 1) self.assertTrue('useip' in param) self.assertEqual(param['useip'], 1) self.assertTrue('dns' in param) self.assertEqual(param['dns'], '') self.assertTrue('ip' in param) self.assertEqual(param['ip'], '127.0.0.1') self.assertTrue('port' in param) self.assertEqual(param['port'], '10050') self.assertTrue('bulk' in param) self.assertEqual(param['bulk'], 0) self.assertTrue('type' in param) self.assertEqual(param['type'], zabbixmgm.zbxinterface.TYPE_JMX)
def test_host_interface_upon_creation_1inf(self): thost = zabbixmgm.zbxhost(self.apimock, name='mytesthost.local') command, param = thost.get() self.assertEqual(command, 'host.create') self.assertEqual(command, thost.apicommands['create']) self.assertTrue('interfaces' in param.keys()) self.assertTrue( len(param['interfaces']) == 0, 'interface should be empty but isn\'t') tinterface1 = zabbixmgm.zbxinterface(self.apimock) tinterface1.host = thost.name thost.add_interface(tinterface1) command, param = thost.get() self.assertEqual(command, 'host.create') self.assertEqual(command, thost.apicommands['create']) self.assertTrue('interfaces' in param.keys()) self.assertEqual(len(param['interfaces']), 1, 'interface should be filled with just 1') interface = param['interfaces'][0] self.assertEqual(interface['main'], 1, 'main should be one, it is set automatically') self.assertEqual(interface['dns'], 'mytesthost.local') self.assertFalse('hostid' == interface.keys()) self.assertFalse('interfaceid' == interface.keys())
def get_interface(host, port, itype): retInf = zabbixmgm.zbxinterface(zapi) retInf.hostid = host.id retInf.host = host.name retInf.port = port retInf.type = itype # retInf.main = main commit_interface(retInf) return retInf
def test_intf_host_ip(self): iface = zabbixmgm.zbxinterface(self.apimock) self.assertEqual(iface.ip, '127.0.0.1') self.assertEqual(iface.dns, '') self.assertEqual(iface.useip, 1) iface.host = '10.0.0.1' self.assertEqual(iface.ip, '10.0.0.1') self.assertEqual(iface.dns, '') self.assertEqual(iface.useip, 1)
def test_host_add_2interface(self): thost = zabbixmgm.zbxhost(self.apimock, name='mytesthost.local') iface1 = zabbixmgm.zbxinterface(self.apimock, port=3000, host=thost.name) iface2 = zabbixmgm.zbxinterface(self.apimock, port=3001, host=thost.name) thost.add_interface(iface1) thost.add_interface(iface2) create_command, create_params = thost.get('create') self.assertEqual(create_params['host'], 'mytesthost.local') self.assertEqual(len(create_params['interfaces']), 2) interface_1 = create_params['interfaces'][0] self.assertEqual(interface_1['main'], 1) interface_2 = create_params['interfaces'][1] self.assertEqual(interface_2['main'], 0)
def test_intf_get_auto_create_dict(self): iface = zabbixmgm.zbxinterface(self.apimock, mask={'hostid': 777}) command, param = iface.get() self.assertEqual(command, 'hostinterface.create') self.assertTrue(not 'interfaceid' in param) self.assertTrue('hostid' in param) self.assertTrue('main' in param) self.assertTrue('useip' in param) self.assertTrue('dns' in param) self.assertTrue('ip' in param) self.assertTrue('port' in param) self.assertTrue('bulk' in param) self.assertTrue('type' in param)
def create_host_4_interfaces(self): self.thost = zabbixmgm.zbxhost(self.apimock, name='mytesthost.local') self.iface1 = zabbixmgm.zbxinterface(self.apimock, port=3001, host=self.thost.name) self.iface2 = zabbixmgm.zbxinterface(self.apimock, port=3002, host='127.0.0.1') self.iface3 = zabbixmgm.zbxinterface(self.apimock, port=3003, host=self.thost.name) self.iface3.type = zabbixmgm.zbxinterface.TYPE_JMX self.iface4 = zabbixmgm.zbxinterface(self.apimock, port=3004, host='127.0.0.1') self.iface4.type = zabbixmgm.zbxinterface.TYPE_JMX self.thost.add_interface(self.iface1) self.thost.add_interface(self.iface3) self.thost.add_interface(self.iface2) self.thost.add_interface(self.iface4)
def test_host_add_interface(self): thost = zabbixmgm.zbxhost(self.apimock, name='mytesthost.local') iface = zabbixmgm.zbxinterface(self.apimock, port=3000, host=thost.name) thost.add_interface(iface) create_command, create_params = thost.get('create') self.assertEqual(create_params['host'], 'mytesthost.local') self.assertEqual(len(create_params['interfaces']), 1) interface_1 = create_params['interfaces'][0] self.assertEqual(interface_1['main'], 1) self.assertEqual(interface_1['dns'], 'mytesthost.local') self.assertEqual(interface_1['useip'], 0) self.assertEqual(interface_1['port'], '3000')
def test_intf_get_auto_update_dict_correctcheck(self): iface = zabbixmgm.zbxinterface(self.apimock, mask={ 'hostid': 777, 'interfaceid': 888 }) command, param = iface.get() self.assertEqual(command, 'hostinterface.update') self.assertTrue('hostid' in param) self.assertEqual(param['hostid'], '777') self.assertTrue('main' in param) self.assertTrue('useip' in param) self.assertTrue('dns' in param) self.assertTrue('ip' in param) self.assertTrue('port' in param) self.assertTrue('bulk' in param) self.assertTrue('type' in param) self.assertTrue('interfaceid' in param) self.assertEqual(param['interfaceid'], '888')
def test_intf_get_auto_create_hostChanges(self): iface = zabbixmgm.zbxinterface(self.apimock, hostid=123, host='testhost.local') command, param = iface.get() self.assertEqual(command, 'hostinterface.create') self.assertTrue(not 'interfaceid' in param) self.assertTrue('hostid' in param) self.assertEqual(param['hostid'], '123') self.assertTrue('main' in param) self.assertEqual(param['main'], 0) self.assertTrue('useip' in param) self.assertEqual(param['useip'], 0) self.assertTrue('dns' in param) self.assertEqual(param['dns'], 'testhost.local') self.assertTrue('ip' in param) self.assertEqual(param['ip'], '') self.assertTrue('port' in param) self.assertEqual(param['port'], '10050') self.assertTrue('bulk' in param) self.assertEqual(param['bulk'], 1) self.assertTrue('type' in param) self.assertEqual(param['type'], zabbixmgm.zbxinterface.TYPE_AGENT)
def test_host_interface_upon_update_1inf(self): thost = zabbixmgm.zbxhost(self.apimock, mask=host_search_response, name='mytesthost.local') command, param = thost.get() self.assertEqual(command, 'host.update') self.assertTrue('hostid' in param.keys()) self.assertEqual(param['hostid'], '10142') self.assertEqual(command, thost.apicommands['update']) self.assertFalse('interfaces' in param.keys()) # self.assertTrue(len(param['interfaces']) == 0, 'interface should be empty but isn\'t') inf38 = zabbixmgm.zbxinterface(self.apimock, mask=inf38_response) thost.add_interface(inf38) command, param = thost.get() self.assertTrue('interfaces' in param.keys()) self.assertEqual(len(param['interfaces']), 1, 'interface should be 1 but isn\'t') self.assertTrue({'interfaceid': '38'} in param['interfaces'], 'Wrong interface listed')
def test_intf_get_auto_create_missing_hostid(self): iface = zabbixmgm.zbxinterface(self.apimock) with self.assertRaises(zabbixmgm.core.MissingField): command, param = iface.get()