nornir-collection 0.0.20__tar.gz → 0.0.21__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. {nornir_collection-0.0.20 → nornir_collection-0.0.21}/PKG-INFO +1 -1
  2. {nornir_collection-0.0.20 → nornir_collection-0.0.21}/nornir_collection/cisco/configuration_management/netconf/config_tasks.py +17 -16
  3. {nornir_collection-0.0.20 → nornir_collection-0.0.21}/nornir_collection.egg-info/PKG-INFO +1 -1
  4. {nornir_collection-0.0.20 → nornir_collection-0.0.21}/setup.py +1 -1
  5. {nornir_collection-0.0.20 → nornir_collection-0.0.21}/LICENSE +0 -0
  6. {nornir_collection-0.0.20 → nornir_collection-0.0.21}/README.md +0 -0
  7. {nornir_collection-0.0.20 → nornir_collection-0.0.21}/nornir_collection/__init__.py +0 -0
  8. {nornir_collection-0.0.20 → nornir_collection-0.0.21}/nornir_collection/batfish/__init__.py +0 -0
  9. {nornir_collection-0.0.20 → nornir_collection-0.0.21}/nornir_collection/batfish/assert_config.py +0 -0
  10. {nornir_collection-0.0.20 → nornir_collection-0.0.21}/nornir_collection/batfish/utils.py +0 -0
  11. {nornir_collection-0.0.20 → nornir_collection-0.0.21}/nornir_collection/cisco/__init__.py +0 -0
  12. {nornir_collection-0.0.20 → nornir_collection-0.0.21}/nornir_collection/cisco/configuration_management/__init__.py +0 -0
  13. {nornir_collection-0.0.20 → nornir_collection-0.0.21}/nornir_collection/cisco/configuration_management/cli/__init__.py +0 -0
  14. {nornir_collection-0.0.20 → nornir_collection-0.0.21}/nornir_collection/cisco/configuration_management/cli/config_tasks.py +0 -0
  15. {nornir_collection-0.0.20 → nornir_collection-0.0.21}/nornir_collection/cisco/configuration_management/cli/config_workflow.py +0 -0
  16. {nornir_collection-0.0.20 → nornir_collection-0.0.21}/nornir_collection/cisco/configuration_management/cli/show_tasks.py +0 -0
  17. {nornir_collection-0.0.20 → nornir_collection-0.0.21}/nornir_collection/cisco/configuration_management/netconf/__init__.py +0 -0
  18. {nornir_collection-0.0.20 → nornir_collection-0.0.21}/nornir_collection/cisco/configuration_management/netconf/config_workflow.py +0 -0
  19. {nornir_collection-0.0.20 → nornir_collection-0.0.21}/nornir_collection/cisco/configuration_management/netconf/nr_cfg_iosxe_netconf.py +0 -0
  20. {nornir_collection-0.0.20 → nornir_collection-0.0.21}/nornir_collection/cisco/configuration_management/netconf/ops_tasks.py +0 -0
  21. {nornir_collection-0.0.20 → nornir_collection-0.0.21}/nornir_collection/cisco/configuration_management/processor.py +0 -0
  22. {nornir_collection-0.0.20 → nornir_collection-0.0.21}/nornir_collection/cisco/configuration_management/pyats.py +0 -0
  23. {nornir_collection-0.0.20 → nornir_collection-0.0.21}/nornir_collection/cisco/configuration_management/restconf/__init__.py +0 -0
  24. {nornir_collection-0.0.20 → nornir_collection-0.0.21}/nornir_collection/cisco/configuration_management/restconf/cisco_rpc.py +0 -0
  25. {nornir_collection-0.0.20 → nornir_collection-0.0.21}/nornir_collection/cisco/configuration_management/restconf/config_workflow.py +0 -0
  26. {nornir_collection-0.0.20 → nornir_collection-0.0.21}/nornir_collection/cisco/configuration_management/restconf/tasks.py +0 -0
  27. {nornir_collection-0.0.20 → nornir_collection-0.0.21}/nornir_collection/cisco/configuration_management/utils.py +0 -0
  28. {nornir_collection-0.0.20 → nornir_collection-0.0.21}/nornir_collection/cisco/software_upgrade/__init__.py +0 -0
  29. {nornir_collection-0.0.20 → nornir_collection-0.0.21}/nornir_collection/cisco/software_upgrade/cisco_software_upgrade.py +0 -0
  30. {nornir_collection-0.0.20 → nornir_collection-0.0.21}/nornir_collection/cisco/software_upgrade/utils.py +0 -0
  31. {nornir_collection-0.0.20 → nornir_collection-0.0.21}/nornir_collection/cisco/support_api/__init__.py +0 -0
  32. {nornir_collection-0.0.20 → nornir_collection-0.0.21}/nornir_collection/cisco/support_api/api_calls.py +0 -0
  33. {nornir_collection-0.0.20 → nornir_collection-0.0.21}/nornir_collection/cisco/support_api/cisco_maintenance_report.py +0 -0
  34. {nornir_collection-0.0.20 → nornir_collection-0.0.21}/nornir_collection/cisco/support_api/cisco_support.py +0 -0
  35. {nornir_collection-0.0.20 → nornir_collection-0.0.21}/nornir_collection/cisco/support_api/reports.py +0 -0
  36. {nornir_collection-0.0.20 → nornir_collection-0.0.21}/nornir_collection/cisco/support_api/utils.py +0 -0
  37. {nornir_collection-0.0.20 → nornir_collection-0.0.21}/nornir_collection/fortinet/__init__.py +0 -0
  38. {nornir_collection-0.0.20 → nornir_collection-0.0.21}/nornir_collection/fortinet/utils.py +0 -0
  39. {nornir_collection-0.0.20 → nornir_collection-0.0.21}/nornir_collection/git.py +0 -0
  40. {nornir_collection-0.0.20 → nornir_collection-0.0.21}/nornir_collection/netbox/__init__.py +0 -0
  41. {nornir_collection-0.0.20 → nornir_collection-0.0.21}/nornir_collection/netbox/custom_script.py +0 -0
  42. {nornir_collection-0.0.20 → nornir_collection-0.0.21}/nornir_collection/netbox/inventory.py +0 -0
  43. {nornir_collection-0.0.20 → nornir_collection-0.0.21}/nornir_collection/netbox/set_device_status.py +0 -0
  44. {nornir_collection-0.0.20 → nornir_collection-0.0.21}/nornir_collection/netbox/sync_datasource.py +0 -0
  45. {nornir_collection-0.0.20 → nornir_collection-0.0.21}/nornir_collection/netbox/update_cisco_inventory_data.py +0 -0
  46. {nornir_collection-0.0.20 → nornir_collection-0.0.21}/nornir_collection/netbox/update_cisco_support_plugin_data.py +0 -0
  47. {nornir_collection-0.0.20 → nornir_collection-0.0.21}/nornir_collection/netbox/update_fortinet_inventory_data.py +0 -0
  48. {nornir_collection-0.0.20 → nornir_collection-0.0.21}/nornir_collection/netbox/update_prefixes_ip_addresses.py +0 -0
  49. {nornir_collection-0.0.20 → nornir_collection-0.0.21}/nornir_collection/netbox/update_purestorage_inventory_data.py +0 -0
  50. {nornir_collection-0.0.20 → nornir_collection-0.0.21}/nornir_collection/netbox/utils.py +0 -0
  51. {nornir_collection-0.0.20 → nornir_collection-0.0.21}/nornir_collection/netbox/verify_device_primary_ip.py +0 -0
  52. {nornir_collection-0.0.20 → nornir_collection-0.0.21}/nornir_collection/nornir_plugins/__init__.py +0 -0
  53. {nornir_collection-0.0.20 → nornir_collection-0.0.21}/nornir_collection/nornir_plugins/inventory/__init__.py +0 -0
  54. {nornir_collection-0.0.20 → nornir_collection-0.0.21}/nornir_collection/nornir_plugins/inventory/netbox.py +0 -0
  55. {nornir_collection-0.0.20 → nornir_collection-0.0.21}/nornir_collection/nornir_plugins/inventory/staggered_yaml.py +0 -0
  56. {nornir_collection-0.0.20 → nornir_collection-0.0.21}/nornir_collection/nornir_plugins/inventory/utils.py +0 -0
  57. {nornir_collection-0.0.20 → nornir_collection-0.0.21}/nornir_collection/purestorage/__init__.py +0 -0
  58. {nornir_collection-0.0.20 → nornir_collection-0.0.21}/nornir_collection/purestorage/utils.py +0 -0
  59. {nornir_collection-0.0.20 → nornir_collection-0.0.21}/nornir_collection/utils.py +0 -0
  60. {nornir_collection-0.0.20 → nornir_collection-0.0.21}/nornir_collection.egg-info/SOURCES.txt +0 -0
  61. {nornir_collection-0.0.20 → nornir_collection-0.0.21}/nornir_collection.egg-info/dependency_links.txt +0 -0
  62. {nornir_collection-0.0.20 → nornir_collection-0.0.21}/nornir_collection.egg-info/requires.txt +0 -0
  63. {nornir_collection-0.0.20 → nornir_collection-0.0.21}/nornir_collection.egg-info/top_level.txt +0 -0
  64. {nornir_collection-0.0.20 → nornir_collection-0.0.21}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: nornir-collection
3
- Version: 0.0.20
3
+ Version: 0.0.21
4
4
  Summary: Nornir-Collection contains network automation functions and complete IaC workflows with Nornir and other python libraries. It contains Nornir tasks and general functions in Nornir style.
5
5
  Author: Willi Kubny
6
6
  Author-email: willi.kubny@gmail.ch
@@ -236,22 +236,23 @@ def nc_edit_cleanup_portchannel(task: Task, verbose: bool = False) -> Result:
236
236
 
237
237
  # Create a empty list to add all current configured Port-channels and their associated interfaces
238
238
  current_po = {}
239
- # Loop through all Port-channels and add them and their associated interfaces as a list to the dict
240
- for po in response["json"]["Cisco-IOS-XE-native:interface"]["Port-channel"]:
241
- current_po[po["name"]] = []
242
- for i_name, i_detail in response["json"]["Cisco-IOS-XE-native:interface"].items():
243
- for i in i_detail:
244
- if i.get("Cisco-IOS-XE-ethernet:channel-group"):
245
- if i["Cisco-IOS-XE-ethernet:channel-group"]["number"] == po["name"]:
246
- current_po[po["name"]].append({"name": i_name, "number": i["name"]})
247
-
248
- # Exclude NoneType or empty string interface template names
249
- # Select only the interface name and convert it to lowercase
250
- interfaces = [i["name"].lower() for i in task.host["interfaces"] if i["int_template"]]
251
- # Include interfaces name starts with 'port-channel' and replace to only have the Port-channel number
252
- inventory_po = [int(i.replace("port-channel", "")) for i in interfaces if i.startswith("port-channel")]
253
- # Create a dict with all configured Port-channel which are not part of the inventoryp
254
- remove_po = {k: v for k, v in current_po.items() if k not in inventory_po}
239
+ if "Port-channel" in response["json"]["Cisco-IOS-XE-native:interface"]:
240
+ # Loop through all Port-channels and add them and their associated interfaces as a list to the dict
241
+ for po in response["json"]["Cisco-IOS-XE-native:interface"]["Port-channel"]:
242
+ current_po[po["name"]] = []
243
+ for i_name, i_detail in response["json"]["Cisco-IOS-XE-native:interface"].items():
244
+ for i in i_detail:
245
+ if i.get("Cisco-IOS-XE-ethernet:channel-group"):
246
+ if i["Cisco-IOS-XE-ethernet:channel-group"]["number"] == po["name"]:
247
+ current_po[po["name"]].append({"name": i_name, "number": i["name"]})
248
+
249
+ # Exclude NoneType or empty string interface template names
250
+ # Select only the interface name and convert it to lowercase
251
+ ifaces = [i["name"].lower() for i in task.host["interfaces"] if i["int_template"]]
252
+ # Include interfaces name starts with 'port-channel' and replace to only have the Port-channel number
253
+ inventory_po = [int(i.replace("port-channel", "")) for i in ifaces if i.startswith("port-channel")]
254
+ # Create a dict with all configured Port-channel which are not part of the inventoryp
255
+ remove_po = {k: v for k, v in current_po.items() if k not in inventory_po}
255
256
 
256
257
  # If there are no Port-channel to remove, return the Nornir result
257
258
  if not remove_po:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: nornir-collection
3
- Version: 0.0.20
3
+ Version: 0.0.21
4
4
  Summary: Nornir-Collection contains network automation functions and complete IaC workflows with Nornir and other python libraries. It contains Nornir tasks and general functions in Nornir style.
5
5
  Author: Willi Kubny
6
6
  Author-email: willi.kubny@gmail.ch
@@ -11,7 +11,7 @@ with open("requirements.txt", encoding="utf-8") as f:
11
11
 
12
12
  setuptools.setup(
13
13
  name="nornir-collection",
14
- version="0.0.20",
14
+ version="0.0.21",
15
15
  author="Willi Kubny",
16
16
  author_email="willi.kubny@gmail.ch",
17
17
  description="Nornir-Collection contains network automation functions and complete IaC workflows with \