diff --git a/netbox_agent/cli.py b/netbox_agent/cli.py index e112469..35f39c8 100644 --- a/netbox_agent/cli.py +++ b/netbox_agent/cli.py @@ -19,6 +19,7 @@ MANUFACTURERS = { 'Generic': GenericHost, } +MIN_NETBOX_VERSION = '3.3' def run(config): dmi = dmidecode.parse() @@ -34,8 +35,8 @@ def run(config): except KeyError: server = GenericHost(dmi=dmi) - if version.parse(nb.version) < version.parse('2.9'): - print('netbox-agent is not compatible with Netbox prior to verison 2.9') + if version.parse(nb.version) < version.parse(MIN_NETBOX_VERSION): + print(f'netbox-agent is not compatible with Netbox prior to verison {MIN_NETBOX_VERSION}') return False if config.register or config.update_all or config.update_network or \ diff --git a/netbox_agent/network.py b/netbox_agent/network.py index 673dfc1..4d0c8d3 100644 --- a/netbox_agent/network.py +++ b/netbox_agent/network.py @@ -556,12 +556,19 @@ class ServerNetwork(Network): switch_ip, )) cable = nb.dcim.cables.create( - termination_a_id=nb_server_interface.id, - termination_a_type="dcim.interface", - termination_b_id=nb_switch_interface.id, - termination_b_type="dcim.interface", + a_terminations=[ + { + 'object_id': nb_server_interface.id, + 'object_type':'dcim.interface' + } + ], + b_terminations=[ + { + 'object_id': nb_switch_interface.id, + 'object_type': 'dcim.interface' + } + ], ) - nb_server_interface.cable = cable logging.info( 'Connected interface {interface} with {switch_interface} of {switch_ip}'.format( interface=nb_server_interface.name, @@ -579,7 +586,7 @@ class ServerNetwork(Network): switch_ip, switch_interface, nb_server_interface ) else: - nb_sw_int = nb_server_interface.cable.termination_b + nb_sw_int = nb_server_interface.cable.b_terminations[0] nb_sw = nb_sw_int.device nb_mgmt_int = nb.dcim.interfaces.get( device_id=nb_sw.id, diff --git a/requirements.txt b/requirements.txt index c4a84a2..f9cf5a2 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ -pynetbox==6.1.2 +pynetbox==7.0.1 netaddr==0.8.0 netifaces==0.10.9 pyyaml==6.0.1