Skip to content
Snippets Groups Projects
Commit 897b2302 authored by Erik Reid's avatar Erik Reid
Browse files

use configured ssh config

parent bf1024b7
No related branches found
No related tags found
No related merge requests found
......@@ -171,7 +171,9 @@ def _main(router_fqdn: str, app_config_params: dict):
setup_logging()
netconf_doc = juniper.get_interface_info_ncrpc(router_fqdn)
netconf_doc = juniper.get_interface_info_ncrpc(
router_fqdn,
ssh_config=app_config_params['ssh-config'])
netconf_timestamp = datetime.now()
influx_params = app_config_params['influx']['brian-counters']
......@@ -215,9 +217,11 @@ def _main(router_fqdn: str, app_config_params: dict):
help='just run the netconf query and output the simplified xml, then exit')
def main(router_fqdn: str, app_config_params: dict, netconf_only: bool):
# this is expected to be called only when debugging
# this is expected to be called only when debugging config/setup
if netconf_only:
_doc = juniper.get_interface_info_ncrpc(router_fqdn)
_doc = juniper.get_interface_info_ncrpc(
router_fqdn,
ssh_config=app_config_params['ssh-config'])
print(etree.tostring(_doc, pretty_print=True).decode('utf-8'))
return
......
import json
import logging
import logging.config
import jsonschema
......
......@@ -20,11 +20,11 @@ def _remove_ns(rpc_response):
.remove_namespaces(rpc_response.xml)
def nc_connection(hostname, host_verify=True):
def nc_connection(hostname, ssh_config, host_verify=True):
conn = ncclient.manager.connect(
host=hostname,
port=830,
ssh_config='~/.ssh/config.d/routers-jump',
ssh_config=ssh_config,
hostkey_verify=host_verify
# device_params={'name': 'junos'}
)
......@@ -46,16 +46,23 @@ def rpc(router, command):
return obj.reply
def netconf_rpc(router_name, command, host_verify=True):
with contextlib.closing(nc_connection(hostname=router_name, host_verify=host_verify)) as router:
def netconf_rpc(router_name, ssh_config, command, host_verify=True):
with contextlib.closing(nc_connection(
hostname=router_name,
ssh_config=ssh_config,
host_verify=host_verify)) as router:
reply = rpc(router, command)
return _remove_ns(reply)
def get_interface_info_ncrpc(router_name, host_verify=True):
def get_interface_info_ncrpc(router_name, ssh_config, host_verify=True):
request = etree.Element('get-interface-information')
request.append(etree.Element('extensive'))
return netconf_rpc(router_name=router_name, command=request, host_verify=host_verify)
return netconf_rpc(
router_name=router_name,
ssh_config=ssh_config,
command=request,
host_verify=host_verify)
def _elem_int(node, name):
......
......@@ -62,14 +62,14 @@ def ifc_netconf_rpc():
@pytest.mark.parametrize('router_fqdn', ROUTERS)
def test_validate_physical_counter_schema(router_fqdn, ifc_netconf_rpc):
doc = juniper.get_interface_info_ncrpc(router_fqdn)
doc = juniper.get_interface_info_ncrpc(router_fqdn, None)
for ifc in juniper.physical_interface_counters(doc):
jsonschema.validate(ifc, interface_stats.PHYSICAL_INTERFACE_COUNTER_SCHEMA)
@pytest.mark.parametrize('router_fqdn', ROUTERS)
def test_validate_logical_counters_schema(router_fqdn, ifc_netconf_rpc):
doc = juniper.get_interface_info_ncrpc(router_fqdn)
doc = juniper.get_interface_info_ncrpc(router_fqdn, None)
for ifc in juniper.logical_interface_counters(doc):
jsonschema.validate(ifc, interface_stats.LOGICAL_INTERFACE_COUNTER_SCHEMA)
......@@ -120,7 +120,7 @@ def test_verify_all_interfaces_present(router_fqdn, ifc_netconf_rpc, polled_inte
if router_fqdn not in polled_interfaces:
pytest.xfail(f'{router_fqdn} has no expected polled interfaces')
doc = juniper.get_interface_info_ncrpc(router_fqdn)
doc = juniper.get_interface_info_ncrpc(router_fqdn, None)
phy = juniper.physical_interface_counters(doc)
log = juniper.logical_interface_counters(doc)
interfaces = set(x['name'] for x in itertools.chain(phy, log))
......@@ -132,7 +132,7 @@ def test_verify_all_interfaces_present(router_fqdn, ifc_netconf_rpc, polled_inte
@pytest.mark.parametrize('router_fqdn', ROUTERS)
def test_physical_brian_counters(router_fqdn, ifc_netconf_rpc):
doc = juniper.get_interface_info_ncrpc(router_fqdn)
doc = juniper.get_interface_info_ncrpc(router_fqdn, None)
interfaces = juniper.physical_interface_counters(doc)
counters = brian.counters(router_fqdn=router_fqdn, interface_counters=interfaces)
for ctrs in counters:
......@@ -141,7 +141,7 @@ def test_physical_brian_counters(router_fqdn, ifc_netconf_rpc):
@pytest.mark.parametrize('router_fqdn', ROUTERS)
def test_physical_error_counters(router_fqdn, ifc_netconf_rpc):
doc = juniper.get_interface_info_ncrpc(router_fqdn)
doc = juniper.get_interface_info_ncrpc(router_fqdn, None)
interfaces = juniper.physical_interface_counters(doc)
counters = errors.counters(router_fqdn=router_fqdn, interface_counters=interfaces)
for ctrs in counters:
......@@ -150,7 +150,7 @@ def test_physical_error_counters(router_fqdn, ifc_netconf_rpc):
@pytest.mark.parametrize('router_fqdn', ROUTERS)
def test_logical_brian_counters(router_fqdn, ifc_netconf_rpc):
doc = juniper.get_interface_info_ncrpc(router_fqdn)
doc = juniper.get_interface_info_ncrpc(router_fqdn, None)
interfaces = juniper.logical_interface_counters(doc)
counters = brian.counters(router_fqdn=router_fqdn, interface_counters=interfaces)
for ctrs in counters:
......@@ -159,7 +159,7 @@ def test_logical_brian_counters(router_fqdn, ifc_netconf_rpc):
@pytest.mark.parametrize('router_fqdn', ROUTERS)
def test_logical_error_counters(router_fqdn, ifc_netconf_rpc):
doc = juniper.get_interface_info_ncrpc(router_fqdn)
doc = juniper.get_interface_info_ncrpc(router_fqdn, None)
interfaces = juniper.logical_interface_counters(doc)
counters = errors.counters(router_fqdn=router_fqdn, interface_counters=interfaces)
for ctrs in counters:
......@@ -170,7 +170,7 @@ def test_logical_error_counters(router_fqdn, ifc_netconf_rpc):
def test_brian_points(router_fqdn, ifc_netconf_rpc):
for _p in cli._brian_points(
router_fqdn=router_fqdn,
netconf_doc=juniper.get_interface_info_ncrpc(router_fqdn),
netconf_doc=juniper.get_interface_info_ncrpc(router_fqdn, None),
timestamp=datetime.datetime.now(),
measurement_name='blah'):
jsonschema.validate(_p, influx.INFLUX_POINT)
......@@ -181,7 +181,7 @@ def test_brian_points(router_fqdn, ifc_netconf_rpc):
def test_error_points(router_fqdn, ifc_netconf_rpc):
for _p in cli._error_points(
router_fqdn=router_fqdn,
netconf_doc=juniper.get_interface_info_ncrpc(router_fqdn),
netconf_doc=juniper.get_interface_info_ncrpc(router_fqdn, None),
timestamp=datetime.datetime.now(),
measurement_name='blah'):
jsonschema.validate(_p, influx.INFLUX_POINT)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment