nornir-collection 0.0.1__py3-none-any.whl

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 (59) hide show
  1. nornir_collection/__init__.py +0 -0
  2. nornir_collection/batfish/__init__.py +0 -0
  3. nornir_collection/batfish/assert_config.py +358 -0
  4. nornir_collection/batfish/utils.py +129 -0
  5. nornir_collection/cisco/__init__.py +0 -0
  6. nornir_collection/cisco/configuration_management/__init__.py +0 -0
  7. nornir_collection/cisco/configuration_management/cli/__init__.py +0 -0
  8. nornir_collection/cisco/configuration_management/cli/config_tasks.py +569 -0
  9. nornir_collection/cisco/configuration_management/cli/config_workflow.py +107 -0
  10. nornir_collection/cisco/configuration_management/cli/show_tasks.py +677 -0
  11. nornir_collection/cisco/configuration_management/netconf/__init__.py +0 -0
  12. nornir_collection/cisco/configuration_management/netconf/config_tasks.py +564 -0
  13. nornir_collection/cisco/configuration_management/netconf/config_workflow.py +298 -0
  14. nornir_collection/cisco/configuration_management/netconf/nr_cfg_iosxe_netconf.py +186 -0
  15. nornir_collection/cisco/configuration_management/netconf/ops_tasks.py +307 -0
  16. nornir_collection/cisco/configuration_management/processor.py +151 -0
  17. nornir_collection/cisco/configuration_management/pyats.py +236 -0
  18. nornir_collection/cisco/configuration_management/restconf/__init__.py +0 -0
  19. nornir_collection/cisco/configuration_management/restconf/cisco_rpc.py +514 -0
  20. nornir_collection/cisco/configuration_management/restconf/config_workflow.py +95 -0
  21. nornir_collection/cisco/configuration_management/restconf/tasks.py +325 -0
  22. nornir_collection/cisco/configuration_management/utils.py +511 -0
  23. nornir_collection/cisco/software_upgrade/__init__.py +0 -0
  24. nornir_collection/cisco/software_upgrade/cisco_software_upgrade.py +283 -0
  25. nornir_collection/cisco/software_upgrade/utils.py +794 -0
  26. nornir_collection/cisco/support_api/__init__.py +0 -0
  27. nornir_collection/cisco/support_api/api_calls.py +1173 -0
  28. nornir_collection/cisco/support_api/cisco_maintenance_report.py +221 -0
  29. nornir_collection/cisco/support_api/cisco_support.py +727 -0
  30. nornir_collection/cisco/support_api/reports.py +747 -0
  31. nornir_collection/cisco/support_api/utils.py +316 -0
  32. nornir_collection/fortinet/__init__.py +0 -0
  33. nornir_collection/fortinet/utils.py +36 -0
  34. nornir_collection/git.py +224 -0
  35. nornir_collection/netbox/__init__.py +0 -0
  36. nornir_collection/netbox/custom_script.py +107 -0
  37. nornir_collection/netbox/inventory.py +360 -0
  38. nornir_collection/netbox/scan_prefixes_and_update_ip_addresses.py +989 -0
  39. nornir_collection/netbox/set_device_status.py +67 -0
  40. nornir_collection/netbox/sync_datasource.py +111 -0
  41. nornir_collection/netbox/update_cisco_inventory_data.py +158 -0
  42. nornir_collection/netbox/update_cisco_support_plugin_data.py +339 -0
  43. nornir_collection/netbox/update_fortinet_inventory_data.py +161 -0
  44. nornir_collection/netbox/update_purestorage_inventory_data.py +144 -0
  45. nornir_collection/netbox/utils.py +261 -0
  46. nornir_collection/netbox/verify_device_primary_ip.py +202 -0
  47. nornir_collection/nornir_plugins/__init__.py +0 -0
  48. nornir_collection/nornir_plugins/inventory/__init__.py +0 -0
  49. nornir_collection/nornir_plugins/inventory/netbox.py +250 -0
  50. nornir_collection/nornir_plugins/inventory/staggered_yaml.py +143 -0
  51. nornir_collection/nornir_plugins/inventory/utils.py +277 -0
  52. nornir_collection/purestorage/__init__.py +0 -0
  53. nornir_collection/purestorage/utils.py +53 -0
  54. nornir_collection/utils.py +741 -0
  55. nornir_collection-0.0.1.dist-info/LICENSE +21 -0
  56. nornir_collection-0.0.1.dist-info/METADATA +136 -0
  57. nornir_collection-0.0.1.dist-info/RECORD +59 -0
  58. nornir_collection-0.0.1.dist-info/WHEEL +5 -0
  59. nornir_collection-0.0.1.dist-info/top_level.txt +1 -0
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2023 Willi Kubny
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,136 @@
1
+ Metadata-Version: 2.2
2
+ Name: nornir-collection
3
+ Version: 0.0.1
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
+ Author: Willi Kubny
6
+ Author-email: willi.kubny@gmail.ch
7
+ Classifier: Programming Language :: Python :: 3
8
+ Classifier: License :: OSI Approved :: MIT License
9
+ Classifier: Operating System :: OS Independent
10
+ Requires-Python: >=3.9
11
+ Description-Content-Type: text/markdown
12
+ License-File: LICENSE
13
+ Requires-Dist: nornir==3.3.0
14
+ Requires-Dist: nornir-jinja2==0.2.0
15
+ Requires-Dist: nornir-salt==0.20.3
16
+ Requires-Dist: nornir-netmiko==1.0.1
17
+ Requires-Dist: nornir-scrapli==2023.7.30
18
+ Requires-Dist: scrapli-netconf==2023.7.30
19
+ Requires-Dist: scrapli[ssh2]
20
+ Requires-Dist: scrapli[genie]
21
+ Requires-Dist: nornir-utils==0.2.0
22
+ Requires-Dist: pynetbox==7.4.0
23
+ Requires-Dist: py-pure-client==1.51.0
24
+ Requires-Dist: nornir-pyfgt==1.0.3
25
+ Requires-Dist: python-nmap==0.7.1
26
+ Requires-Dist: pybatfish==2023.12.16.1270
27
+ Requires-Dist: requests==2.31.0
28
+ Requires-Dist: pre-commit==3.6.0
29
+ Requires-Dist: pyyaml==6.0.1
30
+ Requires-Dist: pyfiglet==1.0.2
31
+ Requires-Dist: GitPython==3.1.40
32
+ Requires-Dist: python-dotenv==1.0.0
33
+ Requires-Dist: beautifultable==1.1.0
34
+ Requires-Dist: pandas==2.2.2
35
+ Requires-Dist: openpyxl==3.1.2
36
+ Requires-Dist: XlsxWriter==3.1.9
37
+ Requires-Dist: yaspin==3.0.1
38
+ Requires-Dist: rich==13.7.0
39
+ Requires-Dist: tabulate==0.9.0
40
+ Requires-Dist: black==23.12.0
41
+ Requires-Dist: yamllint==1.33.0
42
+ Requires-Dist: pylint==3.0.3
43
+ Requires-Dist: bandit==1.7.6
44
+ Requires-Dist: vulture==2.10
45
+ Dynamic: author
46
+ Dynamic: author-email
47
+ Dynamic: classifier
48
+ Dynamic: description
49
+ Dynamic: description-content-type
50
+ Dynamic: requires-dist
51
+ Dynamic: requires-python
52
+ Dynamic: summary
53
+
54
+ ![Header-Image](docs/header.png)
55
+
56
+ > Infrastructure as Code or IaC is the process of provisioning and managing infrastructure defined through code, instead of doing so with a manual process.
57
+ >
58
+ > Infrastructure as code brings a lot of advantages into the network operation:
59
+ > + Reducing shadow IT within organizations and allowing timely and efficient infrastructure changes
60
+ > + Integrating directly with CI/CD platforms
61
+ > + Enabling version-controlled infrastructure and configuration changes leading to trackable configurations
62
+ > + Standardizing infrastructure with reproducible configurations
63
+ > + Effectively managing configurating drift and keeping infrastructure and configurations in their desired state
64
+ > + Having the ability to easily scale up infrastructure as automation eliminates the need for manual configurations
65
+
66
+ # DSC-Nornir Python-Package
67
+ ----
68
+ </br>
69
+
70
+ This repository builds a python package and is a complete solution to manage the network configuration from code.
71
+ The DSC-Nornir package modules are a collection of network automation functions and complete workflows with Nornir
72
+ and other python tools. All scripts can be executed manually from a central server, workstation or integrated into
73
+ a CI/CD pipeline. The folder azure_pipelines provides bash functions to facilitate the writing of Azure DevOps
74
+ pipelines.
75
+
76
+ The complete documentation is available on MkDocs: [DSC MkDocs Network Documentation](http://192.168.1.10:9000/netdevops/architecture/dsc_nornir/)
77
+
78
+ # Python Development and Testing
79
+ ----
80
+ </br>
81
+
82
+ The Python scripts were developed with static code analysis, black auto-formatting and functional testing with Azure
83
+ DevOps pipelines executed by a pipeline agent installed within the Kyndryl labor network. The `Makefile` is used to
84
+ run the black auto-formatter, yamllint, pylint and prospector linting, bandit for security and vulnerability verification
85
+ as well as vulture for dead code verification. All pylint warnings that should be ignored are part of the script with a
86
+ pylint control message e.g `# pylint: disable=import-error`. Pylint and prospector uses a custom configuration profile.
87
+ The other tools use the default configuration.
88
+
89
+ The `Makefile` contains the tasks `all`, `fmt` and `lint`
90
+
91
+ To execute the `Makefile` with all tasks (black auto-formatting, yamllint, pylint, bandit and vulture):
92
+ ```bash
93
+ make
94
+ ```
95
+
96
+ To execute only the black auto-formatting:
97
+ ```bash
98
+ make fmt
99
+ ```
100
+
101
+ To execute only the linting with yamllint, pylint, bandit and vulture:
102
+ ```bash
103
+ make lint
104
+ ```
105
+
106
+ # Languages and Tools
107
+ ----
108
+ </br>
109
+
110
+ <p align="center">
111
+ <img width="7.8%" src="https://user-images.githubusercontent.com/70367776/177972422-da6933d5-310e-4cdb-9433-89f2dc6ebb7a.png" alt="Python" />
112
+ <img width="9.5%" src="https://user-images.githubusercontent.com/70367776/177969859-476bd542-2c0e-41a9-82f2-3e4919a61d4e.png" alt="YAML" />
113
+ <img width="10%" src="https://user-images.githubusercontent.com/70367776/177966199-e8476a0d-f972-4409-8b9a-d493d339bf38.png" alt="Nornir" />
114
+ <img width="8.9%" src="https://user-images.githubusercontent.com/70367776/177970540-b59a294f-82fd-4647-b8e2-9305c399c900.png" alt="Scrapli" />
115
+ <img width="19.5%" src="https://user-images.githubusercontent.com/70367776/229153411-6e5d10c3-634e-47b9-8920-0ed5e2311f9b.png" alt="Netmiko" />
116
+ <img width="10.5%" src="https://user-images.githubusercontent.com/70367776/183677690-fd956308-fda9-4583-863e-3a39d3ecc7f7.png" alt="NETCONF" />
117
+ <img width="9%" src="https://user-images.githubusercontent.com/70367776/183678136-4fbf50a8-adbb-468e-91b6-988d4c1ccd72.png" alt="RESTCONF" />
118
+ <img width="9.5%" src="https://user-images.githubusercontent.com/70367776/177966474-e66d8a59-e26e-4a3d-ac59-ded7cc005e4b.png" alt="Jinja2" />
119
+ <img width="10%" src="https://user-images.githubusercontent.com/70367776/177971288-e32552cd-1529-470a-8881-30c22d2df8ac.png" alt="pyATS" />
120
+ <img width="10%" src="https://user-images.githubusercontent.com/70367776/222764714-1ff86034-76f9-49d0-9e24-68798d779f56.png" alt="Batfish" />
121
+ <img width="10.2%" src="https://user-images.githubusercontent.com/70367776/183678800-403cf0ea-3c8a-47bb-b52a-2caa0cedc195.png" alt="Makefile" />
122
+ <img width="10.5%" src="https://user-images.githubusercontent.com/70367776/183679432-2b89f00c-f5b1-4d47-9c68-ad7fa332de01.png" alt="Prospector" />
123
+ <img width="9%" src="https://user-images.githubusercontent.com/70367776/183680151-62d5c625-0430-4c90-adfc-1ebb47fce4a9.png" alt="Bandit" />
124
+ <img width="9.4%" src="https://user-images.githubusercontent.com/70367776/177972703-3be3c4c3-aa9a-4468-97a6-e7760d536b89.png" alt="Git" />
125
+ <img width="9.4%" src="https://user-images.githubusercontent.com/70367776/177972925-1780012f-64a6-4b93-a215-fd47e3222b8f.png" alt="GitHub" />
126
+ <img width="11.5%" src="https://user-images.githubusercontent.com/70367776/232078456-8aee2fda-1289-4cd9-b7f3-9b34fcb4d7c7.png" alt="Docker" />
127
+ <img width="9.4%" src="https://user-images.githubusercontent.com/70367776/231501139-a449202e-6a81-4364-a4ea-1e42906e846e.png" alt="Azure Pipeline" />
128
+ <img width="33.2%" src="https://user-images.githubusercontent.com/70367776/231500048-77eeff9a-166b-4bd7-a0cc-3c5fc58be368.png" alt="NetBox" />
129
+ </p>
130
+
131
+ <br>
132
+
133
+ <h3 align="center">APIs can also be amusing to provide a programming joke ...</h3>
134
+ <p align="center"><img src="https://readme-jokes.vercel.app/api?hideBorder&theme=calm" /></p>
135
+ <h3 align="center">... or an interesting quote.</h3>
136
+ <p align="center"><img src="https://quotes-github-readme.vercel.app/api?type=horizontal&theme=dracula" /></p>
@@ -0,0 +1,59 @@
1
+ nornir_collection/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
+ nornir_collection/git.py,sha256=8qGzH1AQuW8HvxgDwIr2X6eYNVRazZ7WgwR69n4Y95A,8864
3
+ nornir_collection/utils.py,sha256=6pwIxm_qHPjdriAWIhtQ5m87kuTUECacqe7r7m7hNnk,26918
4
+ nornir_collection/batfish/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
+ nornir_collection/batfish/assert_config.py,sha256=a1DajP4jrirbaylrqFAkHBmGRQ1JxvHHzYZRX1yN4yg,15273
6
+ nornir_collection/batfish/utils.py,sha256=x0Wfg42SY9x0FG6mzO-yZ5H46z6-a5SjoQLHl40Iri0,4548
7
+ nornir_collection/cisco/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
+ nornir_collection/cisco/configuration_management/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
+ nornir_collection/cisco/configuration_management/processor.py,sha256=tpkqDldsSsSIDN6tU3qf4LG8MAlIHfr9801USi4mSZw,6527
10
+ nornir_collection/cisco/configuration_management/pyats.py,sha256=5mP6euFcxEGn2zlvgnNcf9_FhS7KBvRBHNOQxZ-Z2as,9002
11
+ nornir_collection/cisco/configuration_management/utils.py,sha256=_WluhApXidWlpjMGoTw9DAExd5_Pb-Bjc5O2L5Zs-OE,18765
12
+ nornir_collection/cisco/configuration_management/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
+ nornir_collection/cisco/configuration_management/cli/config_tasks.py,sha256=JujICR0ofe78m9zHT1FLFlsmoaZGN-2OTL6MVNqLTm4,22393
14
+ nornir_collection/cisco/configuration_management/cli/config_workflow.py,sha256=os8BtzwPr6GQqIIVewHaBr_nLCxXKyccJ8nGQdMzzwU,3494
15
+ nornir_collection/cisco/configuration_management/cli/show_tasks.py,sha256=6-s1iDcIye5Ayd0ZIgNm8_YAnq04SM9uayO_OQHRUgk,28218
16
+ nornir_collection/cisco/configuration_management/netconf/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
+ nornir_collection/cisco/configuration_management/netconf/config_tasks.py,sha256=npHRvekGmYCmHGO0VbureptQsB2aw9DdHLjng0ASBkQ,22511
18
+ nornir_collection/cisco/configuration_management/netconf/config_workflow.py,sha256=npFmku_Tt6ZmZHVOnUeLfQWGZC7P2txFos-nb7qotsI,14265
19
+ nornir_collection/cisco/configuration_management/netconf/nr_cfg_iosxe_netconf.py,sha256=mVTn-OhnGr8dpQE6X4DJnRhsqGFSsTD1QNIx7sO9ylE,8650
20
+ nornir_collection/cisco/configuration_management/netconf/ops_tasks.py,sha256=ngj7iIfFfa6OU22RS_cS-DhMRutEunT4PuW0leuLsvY,10953
21
+ nornir_collection/cisco/configuration_management/restconf/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
22
+ nornir_collection/cisco/configuration_management/restconf/cisco_rpc.py,sha256=l6YKznklWwE3f12EME1pi-nVMjGUnNbjEPz3utpVKSo,18828
23
+ nornir_collection/cisco/configuration_management/restconf/config_workflow.py,sha256=sVUrkqanjpz50vk6PRh2-gYV6029OL3mdSdMq0ewOtY,3425
24
+ nornir_collection/cisco/configuration_management/restconf/tasks.py,sha256=a1gOe55VTKXcLOxANw5V_UFw-8OLIRiKs53N9inGrfQ,12347
25
+ nornir_collection/cisco/software_upgrade/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
26
+ nornir_collection/cisco/software_upgrade/cisco_software_upgrade.py,sha256=TcfPImGRszs67f3rSoBJ6KjbflXWRaZ8bRJZ-FUwnDU,13209
27
+ nornir_collection/cisco/software_upgrade/utils.py,sha256=7S0Q1uq7pkZ0gH7GWCe02VQfAash8PqrBWH6nsyctR8,33204
28
+ nornir_collection/cisco/support_api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
29
+ nornir_collection/cisco/support_api/api_calls.py,sha256=hErqejlWVP6UhYn6BOJHSGFdmqo5XynzRyzMaDWygYI,33503
30
+ nornir_collection/cisco/support_api/cisco_maintenance_report.py,sha256=T0VaPNGgSjY16DOILW5Zw8DITmF8bDsHAp9_yIcpymc,9894
31
+ nornir_collection/cisco/support_api/cisco_support.py,sha256=c98MmXdrGwip8c1nHkAKsSCMWaJ9T9dXSA9wY23VOdQ,32972
32
+ nornir_collection/cisco/support_api/reports.py,sha256=wOcYSgnKyfVjuhP4nit-zNyBIx9xiflo0FoSMe6SDNs,35439
33
+ nornir_collection/cisco/support_api/utils.py,sha256=YFmrBWX4ng-C_rFpAvElZukcAAiSgP1iG08pD3JdsNU,14240
34
+ nornir_collection/fortinet/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
35
+ nornir_collection/fortinet/utils.py,sha256=MmDukn_m5m47EASObrgDf_h8AFdyGPETLHT65CDXL0U,1175
36
+ nornir_collection/netbox/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
37
+ nornir_collection/netbox/custom_script.py,sha256=T8e117JGhPP2Eyze-A8xGerxXxaVpIoQnXHw3D4K0EQ,4100
38
+ nornir_collection/netbox/inventory.py,sha256=temkBT2xYcafW0dFZmOoDyFT_92dme2ABpV5DCWWLoc,15178
39
+ nornir_collection/netbox/scan_prefixes_and_update_ip_addresses.py,sha256=3BQK0f6885UD9IJvSA_KvXw2-86nOuBoeWwVmPNe-eM,41492
40
+ nornir_collection/netbox/set_device_status.py,sha256=eQ3pWFChYoythAZ-OS7lVBSm01Gx_1qFj6n4Gq6nHtI,2438
41
+ nornir_collection/netbox/sync_datasource.py,sha256=0Sqt8Rn77fHqeuazcAD_yTFb0pcPXI7gE0eSFjzHV0E,4704
42
+ nornir_collection/netbox/update_cisco_inventory_data.py,sha256=kutbiH6HV2Ufn7ZeCJFvurt_1tEBN1DbcmDjZZ34uhE,6496
43
+ nornir_collection/netbox/update_cisco_support_plugin_data.py,sha256=yCoCgJ_tN1Bhc40GXQ3XiWSle1VWxPo6oHAidMNoDpI,13968
44
+ nornir_collection/netbox/update_fortinet_inventory_data.py,sha256=OIjdYFWVcwlrcpx-yaCfGFLfq9asSPUFJq98ySHiJBg,6437
45
+ nornir_collection/netbox/update_purestorage_inventory_data.py,sha256=gaCvpeW_MYb68joqZNlcM29WKlb24YPXz9RG1uKDZ1w,5438
46
+ nornir_collection/netbox/utils.py,sha256=9x7MsLHblJt7zygvl539K4qS4blK1sy5h4Ih6pEGCy8,9485
47
+ nornir_collection/netbox/verify_device_primary_ip.py,sha256=HkGpHbe2Z9tPUPi-ezTEOLrZnYHOdisf4SJ8ONEhS_4,8825
48
+ nornir_collection/nornir_plugins/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
49
+ nornir_collection/nornir_plugins/inventory/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
50
+ nornir_collection/nornir_plugins/inventory/netbox.py,sha256=Q8-P-0X7-Q2uS_5_hnq4g1sx_TN8XGtMKg5wfvzz9Ko,8946
51
+ nornir_collection/nornir_plugins/inventory/staggered_yaml.py,sha256=I4t09CRGOP6NJn4zlxfUgrMHKwwNANwMSdcYs0IbG4w,5648
52
+ nornir_collection/nornir_plugins/inventory/utils.py,sha256=pcQ6DhlONzjM8QQ2cPLOdp35Yp5okcQBgBVM0b8TEcU,11890
53
+ nornir_collection/purestorage/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
54
+ nornir_collection/purestorage/utils.py,sha256=UyTVr9xjZkHkhISfr-Gp72eDPMS2QV9veSJ0rDkVaOw,1771
55
+ nornir_collection-0.0.1.dist-info/LICENSE,sha256=bOPVh1OVNwz2tCjkLaChWT6AoXdtqye3aua5l0tgYJo,1068
56
+ nornir_collection-0.0.1.dist-info/METADATA,sha256=p3ZxYK6V931dYGfLFRX_YRdY4qMUjBVckzpLyxmm3Hs,7304
57
+ nornir_collection-0.0.1.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
58
+ nornir_collection-0.0.1.dist-info/top_level.txt,sha256=OyCzPWABf-D0AOHm9ihrwdk5eq200BnKna6gIDspwsE,18
59
+ nornir_collection-0.0.1.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (75.8.0)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1 @@
1
+ nornir_collection