nautobot 2.4.14__py3-none-any.whl → 2.4.16__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 (434) hide show
  1. nautobot/apps/choices.py +8 -0
  2. nautobot/apps/ui.py +14 -0
  3. nautobot/core/api/views.py +2 -0
  4. nautobot/core/choices.py +4 -0
  5. nautobot/core/filters.py +21 -41
  6. nautobot/core/management/commands/check_job_approval_status.py +47 -0
  7. nautobot/core/management/commands/generate_test_data.py +1 -1
  8. nautobot/core/management/commands/migrate.py +1 -1
  9. nautobot/core/models/tree_queries.py +17 -0
  10. nautobot/core/settings.py +2 -2
  11. nautobot/core/tables.py +25 -2
  12. nautobot/core/templates/base_django.html +1 -1
  13. nautobot/core/templates/components/panel/header_extra_content_table.html +1 -1
  14. nautobot/core/templates/generic/object_list.html +17 -20
  15. nautobot/core/templates/inc/breadcrumbs.html +14 -0
  16. nautobot/core/templatetags/buttons.py +2 -4
  17. nautobot/core/templatetags/helpers.py +29 -6
  18. nautobot/core/templatetags/ui_framework.py +21 -0
  19. nautobot/core/testing/filters.py +20 -3
  20. nautobot/core/testing/forms.py +1 -1
  21. nautobot/core/tests/integration/test_filters.py +2 -2
  22. nautobot/core/tests/test_breadcrumbs.py +366 -0
  23. nautobot/core/tests/test_commands.py +40 -0
  24. nautobot/core/tests/test_filters.py +51 -1
  25. nautobot/core/tests/test_forms.py +1 -1
  26. nautobot/core/tests/test_graphql.py +4 -4
  27. nautobot/core/tests/test_titles.py +183 -0
  28. nautobot/core/tests/test_tree_queries.py +30 -0
  29. nautobot/core/tests/test_views.py +2 -2
  30. nautobot/core/tests/test_views_utils.py +1 -1
  31. nautobot/core/ui/breadcrumbs.py +538 -0
  32. nautobot/core/ui/bulk_buttons.py +53 -0
  33. nautobot/core/ui/object_detail.py +31 -8
  34. nautobot/core/ui/titles.py +127 -0
  35. nautobot/core/ui/utils.py +25 -0
  36. nautobot/core/utils/migrations.py +1 -1
  37. nautobot/core/views/__init__.py +1 -1
  38. nautobot/core/views/mixins.py +26 -1
  39. nautobot/core/views/renderers.py +20 -2
  40. nautobot/core/views/utils.py +13 -12
  41. nautobot/dcim/api/serializers.py +9 -0
  42. nautobot/dcim/choices.py +53 -0
  43. nautobot/dcim/filters/__init__.py +15 -3
  44. nautobot/dcim/forms.py +120 -7
  45. nautobot/dcim/management/commands/trace_paths.py +1 -1
  46. nautobot/dcim/migrations/0072_alter_powerfeed_options_and_more.py +97 -0
  47. nautobot/dcim/models/device_component_templates.py +8 -0
  48. nautobot/dcim/models/device_components.py +31 -12
  49. nautobot/dcim/models/devices.py +1 -1
  50. nautobot/dcim/models/power.py +171 -10
  51. nautobot/dcim/models/racks.py +7 -4
  52. nautobot/dcim/tables/devices.py +2 -0
  53. nautobot/dcim/tables/devicetypes.py +1 -0
  54. nautobot/dcim/tables/power.py +30 -2
  55. nautobot/dcim/templates/dcim/device.html +2 -2
  56. nautobot/dcim/templates/dcim/devicetype_retrieve.html +1 -214
  57. nautobot/dcim/templates/dcim/location_retrieve.html +2 -2
  58. nautobot/dcim/templates/dcim/powerfeed_edit.html +8 -0
  59. nautobot/dcim/templates/dcim/powerfeed_retrieve.html +1 -1
  60. nautobot/dcim/tests/integration/test_device_bulk_operations.py +61 -0
  61. nautobot/dcim/tests/test_api.py +24 -4
  62. nautobot/dcim/tests/test_filters.py +91 -13
  63. nautobot/dcim/tests/test_models.py +262 -0
  64. nautobot/dcim/tests/test_views.py +20 -12
  65. nautobot/dcim/utils.py +9 -0
  66. nautobot/dcim/views.py +390 -77
  67. nautobot/extras/factory.py +19 -20
  68. nautobot/extras/filters/__init__.py +3 -2
  69. nautobot/extras/filters/mixins.py +15 -1
  70. nautobot/extras/forms/__init__.py +2 -1
  71. nautobot/extras/forms/forms.py +62 -0
  72. nautobot/extras/managers.py +4 -1
  73. nautobot/extras/migrations/0125_jobresult_date_started.py +18 -0
  74. nautobot/extras/models/customfields.py +1 -2
  75. nautobot/extras/models/datasources.py +1 -2
  76. nautobot/extras/models/jobs.py +7 -3
  77. nautobot/extras/plugins/views.py +24 -1
  78. nautobot/extras/secrets/__init__.py +1 -1
  79. nautobot/extras/tables.py +21 -0
  80. nautobot/extras/templates/extras/customfield.html +2 -129
  81. nautobot/extras/templates/extras/customfield_edit.html +2 -108
  82. nautobot/extras/templates/extras/customfield_retrieve.html +129 -0
  83. nautobot/extras/templates/extras/customfield_update.html +108 -0
  84. nautobot/extras/templates/extras/inc/jobresult.html +7 -3
  85. nautobot/extras/templates/extras/jobresult.html +2 -155
  86. nautobot/extras/templates/extras/jobresult_retrieve.html +155 -0
  87. nautobot/extras/templates/extras/marketplace.html +5 -6
  88. nautobot/extras/templates/extras/note.html +2 -53
  89. nautobot/extras/templates/extras/note_retrieve.html +53 -0
  90. nautobot/extras/templates/extras/plugins_list.html +5 -6
  91. nautobot/extras/templates/extras/secretsgroup_retrieve.html +2 -29
  92. nautobot/extras/templatetags/custom_links.py +2 -2
  93. nautobot/extras/templatetags/job_buttons.py +1 -1
  94. nautobot/extras/templatetags/plugins.py +1 -1
  95. nautobot/extras/tests/integration/test_computedfields.py +2 -2
  96. nautobot/extras/tests/integration/test_customfields.py +14 -11
  97. nautobot/extras/tests/integration/test_dynamicgroups.py +1 -1
  98. nautobot/extras/tests/integration/test_notes.py +1 -1
  99. nautobot/extras/tests/integration/test_plugins.py +6 -6
  100. nautobot/extras/tests/integration/test_relationships.py +2 -2
  101. nautobot/extras/tests/test_filters.py +9 -0
  102. nautobot/extras/tests/test_forms.py +2 -2
  103. nautobot/extras/tests/test_plugins.py +14 -3
  104. nautobot/extras/tests/test_relationships.py +7 -7
  105. nautobot/extras/tests/test_views.py +172 -1
  106. nautobot/extras/urls.py +3 -59
  107. nautobot/extras/utils.py +1 -1
  108. nautobot/extras/views.py +96 -182
  109. nautobot/ipam/tables.py +8 -15
  110. nautobot/ipam/tests/migration/test_migrations.py +8 -8
  111. nautobot/ipam/tests/test_api.py +2 -2
  112. nautobot/ipam/tests/test_models.py +1 -1
  113. nautobot/project-static/docs/404.html +23 -0
  114. nautobot/project-static/docs/apps/index.html +23 -0
  115. nautobot/project-static/docs/apps/nautobot-apps.html +23 -0
  116. nautobot/project-static/docs/assets/_mkdocstrings.css +44 -6
  117. nautobot/project-static/docs/code-reference/nautobot/apps/__init__.html +28 -0
  118. nautobot/project-static/docs/code-reference/nautobot/apps/admin.html +25 -0
  119. nautobot/project-static/docs/code-reference/nautobot/apps/api.html +128 -20
  120. nautobot/project-static/docs/code-reference/nautobot/apps/change_logging.html +37 -4
  121. nautobot/project-static/docs/code-reference/nautobot/apps/choices.html +39 -6
  122. nautobot/project-static/docs/code-reference/nautobot/apps/config.html +25 -0
  123. nautobot/project-static/docs/code-reference/nautobot/apps/constants.html +24 -0
  124. nautobot/project-static/docs/code-reference/nautobot/apps/datasources.html +32 -5
  125. nautobot/project-static/docs/code-reference/nautobot/apps/events.html +41 -8
  126. nautobot/project-static/docs/code-reference/nautobot/apps/exceptions.html +39 -7
  127. nautobot/project-static/docs/code-reference/nautobot/apps/factory.html +43 -10
  128. nautobot/project-static/docs/code-reference/nautobot/apps/filters.html +74 -59
  129. nautobot/project-static/docs/code-reference/nautobot/apps/forms.html +143 -28
  130. nautobot/project-static/docs/code-reference/nautobot/apps/graphql.html +43 -12
  131. nautobot/project-static/docs/code-reference/nautobot/apps/jobs.html +135 -53
  132. nautobot/project-static/docs/code-reference/nautobot/apps/models.html +229 -36
  133. nautobot/project-static/docs/code-reference/nautobot/apps/querysets.html +27 -1
  134. nautobot/project-static/docs/code-reference/nautobot/apps/secrets.html +30 -1
  135. nautobot/project-static/docs/code-reference/nautobot/apps/tables.html +162 -18
  136. nautobot/project-static/docs/code-reference/nautobot/apps/testing.html +258 -51
  137. nautobot/project-static/docs/code-reference/nautobot/apps/ui.html +5987 -2620
  138. nautobot/project-static/docs/code-reference/nautobot/apps/urls.html +25 -0
  139. nautobot/project-static/docs/code-reference/nautobot/apps/utils.html +154 -55
  140. nautobot/project-static/docs/code-reference/nautobot/apps/views.html +150 -35
  141. nautobot/project-static/docs/development/apps/api/configuration-view.html +23 -0
  142. nautobot/project-static/docs/development/apps/api/database-backend-config.html +23 -0
  143. nautobot/project-static/docs/development/apps/api/models/django-admin.html +23 -0
  144. nautobot/project-static/docs/development/apps/api/models/global-search.html +23 -0
  145. nautobot/project-static/docs/development/apps/api/models/graphql.html +23 -0
  146. nautobot/project-static/docs/development/apps/api/models/index.html +23 -0
  147. nautobot/project-static/docs/development/apps/api/nautobot-app-config.html +23 -0
  148. nautobot/project-static/docs/development/apps/api/platform-features/custom-validators.html +23 -0
  149. nautobot/project-static/docs/development/apps/api/platform-features/filter-extensions.html +23 -0
  150. nautobot/project-static/docs/development/apps/api/platform-features/git-repository-content.html +23 -0
  151. nautobot/project-static/docs/development/apps/api/platform-features/index.html +23 -0
  152. nautobot/project-static/docs/development/apps/api/platform-features/jinja2-filters.html +23 -0
  153. nautobot/project-static/docs/development/apps/api/platform-features/jobs.html +23 -0
  154. nautobot/project-static/docs/development/apps/api/platform-features/populating-extensibility-features.html +23 -0
  155. nautobot/project-static/docs/development/apps/api/platform-features/secrets-providers.html +23 -0
  156. nautobot/project-static/docs/development/apps/api/platform-features/table-extensions.html +23 -0
  157. nautobot/project-static/docs/development/apps/api/platform-features/uniquely-identify-objects.html +23 -0
  158. nautobot/project-static/docs/development/apps/api/prometheus.html +23 -0
  159. nautobot/project-static/docs/development/apps/api/setup.html +23 -0
  160. nautobot/project-static/docs/development/apps/api/testing.html +23 -0
  161. nautobot/project-static/docs/development/apps/api/ui-extensions/banners.html +23 -0
  162. nautobot/project-static/docs/development/apps/api/ui-extensions/home-page.html +23 -0
  163. nautobot/project-static/docs/development/apps/api/ui-extensions/index.html +23 -0
  164. nautobot/project-static/docs/development/apps/api/ui-extensions/navigation.html +23 -0
  165. nautobot/project-static/docs/development/apps/api/ui-extensions/object-views.html +23 -0
  166. nautobot/project-static/docs/development/apps/api/views/base-template.html +23 -0
  167. nautobot/project-static/docs/development/apps/api/views/core-view-overrides.html +23 -0
  168. nautobot/project-static/docs/development/apps/api/views/django-generic-views.html +23 -0
  169. nautobot/project-static/docs/development/apps/api/views/help-documentation.html +23 -0
  170. nautobot/project-static/docs/development/apps/api/views/index.html +23 -0
  171. nautobot/project-static/docs/development/apps/api/views/nautobot-generic-views.html +23 -0
  172. nautobot/project-static/docs/development/apps/api/views/nautobotuiviewset.html +31 -2
  173. nautobot/project-static/docs/development/apps/api/views/nautobotuiviewsetrouter.html +23 -0
  174. nautobot/project-static/docs/development/apps/api/views/notes.html +23 -0
  175. nautobot/project-static/docs/development/apps/api/views/rest-api.html +23 -0
  176. nautobot/project-static/docs/development/apps/api/views/urls.html +23 -0
  177. nautobot/project-static/docs/development/apps/index.html +23 -0
  178. nautobot/project-static/docs/development/apps/migration/code-updates.html +23 -0
  179. nautobot/project-static/docs/development/apps/migration/dependency-updates.html +23 -0
  180. nautobot/project-static/docs/development/apps/migration/from-v1.html +23 -0
  181. nautobot/project-static/docs/development/apps/migration/model-updates/dcim.html +23 -0
  182. nautobot/project-static/docs/development/apps/migration/model-updates/extras.html +23 -0
  183. nautobot/project-static/docs/development/apps/migration/model-updates/global.html +23 -0
  184. nautobot/project-static/docs/development/apps/migration/model-updates/ipam.html +23 -0
  185. nautobot/project-static/docs/development/apps/migration/ui-component-framework/best-practices.html +26 -3
  186. nautobot/project-static/docs/development/apps/migration/ui-component-framework/breadcrumbs-titles.html +10544 -0
  187. nautobot/project-static/docs/development/apps/migration/ui-component-framework/custom-content.html +23 -0
  188. nautobot/project-static/docs/development/apps/migration/ui-component-framework/index.html +23 -0
  189. nautobot/project-static/docs/development/apps/migration/ui-component-framework/migration-steps.html +23 -0
  190. nautobot/project-static/docs/development/apps/porting-from-netbox.html +26 -3
  191. nautobot/project-static/docs/development/core/application-registry.html +23 -0
  192. nautobot/project-static/docs/development/core/best-practices.html +23 -0
  193. nautobot/project-static/docs/development/core/bootstrap-ui.html +23 -0
  194. nautobot/project-static/docs/development/core/caching.html +23 -0
  195. nautobot/project-static/docs/development/core/controllers.html +23 -0
  196. nautobot/project-static/docs/development/core/docker-compose-advanced-use-cases.html +23 -0
  197. nautobot/project-static/docs/development/core/generic-views.html +23 -0
  198. nautobot/project-static/docs/development/core/getting-started.html +23 -0
  199. nautobot/project-static/docs/development/core/homepage.html +23 -0
  200. nautobot/project-static/docs/development/core/index.html +23 -0
  201. nautobot/project-static/docs/development/core/minikube-dev-environment-for-k8s-jobs.html +23 -0
  202. nautobot/project-static/docs/development/core/model-checklist.html +23 -0
  203. nautobot/project-static/docs/development/core/model-features.html +23 -0
  204. nautobot/project-static/docs/development/core/natural-keys.html +23 -0
  205. nautobot/project-static/docs/development/core/navigation-menu.html +23 -0
  206. nautobot/project-static/docs/development/core/release-checklist.html +23 -0
  207. nautobot/project-static/docs/development/core/role-internals.html +23 -0
  208. nautobot/project-static/docs/development/core/settings.html +23 -0
  209. nautobot/project-static/docs/development/core/style-guide.html +23 -0
  210. nautobot/project-static/docs/development/core/templates.html +23 -0
  211. nautobot/project-static/docs/development/core/testing.html +23 -0
  212. nautobot/project-static/docs/development/core/ui-component-framework.html +713 -255
  213. nautobot/project-static/docs/development/core/user-preferences.html +23 -0
  214. nautobot/project-static/docs/development/index.html +23 -0
  215. nautobot/project-static/docs/development/jobs/getting-started.html +23 -0
  216. nautobot/project-static/docs/development/jobs/index.html +23 -0
  217. nautobot/project-static/docs/development/jobs/installation.html +23 -0
  218. nautobot/project-static/docs/development/jobs/job-extensions.html +23 -0
  219. nautobot/project-static/docs/development/jobs/job-logging.html +23 -0
  220. nautobot/project-static/docs/development/jobs/job-patterns.html +23 -0
  221. nautobot/project-static/docs/development/jobs/job-structure.html +23 -0
  222. nautobot/project-static/docs/development/jobs/migration/from-v1.html +23 -0
  223. nautobot/project-static/docs/development/jobs/testing.html +23 -0
  224. nautobot/project-static/docs/index.html +23 -0
  225. nautobot/project-static/docs/media/development/core/ui-component-framework/breadcrumbs-titles-data-flow.png +0 -0
  226. nautobot/project-static/docs/media/power_distribution.png +0 -0
  227. nautobot/project-static/docs/objects.inv +0 -0
  228. nautobot/project-static/docs/overview/application_stack.html +23 -0
  229. nautobot/project-static/docs/overview/design_philosophy.html +23 -0
  230. nautobot/project-static/docs/release-notes/index.html +23 -0
  231. nautobot/project-static/docs/release-notes/version-1.0.html +23 -0
  232. nautobot/project-static/docs/release-notes/version-1.1.html +23 -0
  233. nautobot/project-static/docs/release-notes/version-1.2.html +23 -0
  234. nautobot/project-static/docs/release-notes/version-1.3.html +23 -0
  235. nautobot/project-static/docs/release-notes/version-1.4.html +23 -0
  236. nautobot/project-static/docs/release-notes/version-1.5.html +23 -0
  237. nautobot/project-static/docs/release-notes/version-1.6.html +23 -0
  238. nautobot/project-static/docs/release-notes/version-2.0.html +23 -0
  239. nautobot/project-static/docs/release-notes/version-2.1.html +23 -0
  240. nautobot/project-static/docs/release-notes/version-2.2.html +23 -0
  241. nautobot/project-static/docs/release-notes/version-2.3.html +23 -0
  242. nautobot/project-static/docs/release-notes/version-2.4.html +306 -0
  243. nautobot/project-static/docs/requirements.txt +2 -2
  244. nautobot/project-static/docs/search/search_index.json +1 -1
  245. nautobot/project-static/docs/sitemap.xml +303 -299
  246. nautobot/project-static/docs/sitemap.xml.gz +0 -0
  247. nautobot/project-static/docs/user-guide/administration/configuration/authentication/ldap.html +23 -0
  248. nautobot/project-static/docs/user-guide/administration/configuration/authentication/remote.html +23 -0
  249. nautobot/project-static/docs/user-guide/administration/configuration/authentication/sso.html +23 -0
  250. nautobot/project-static/docs/user-guide/administration/configuration/index.html +23 -0
  251. nautobot/project-static/docs/user-guide/administration/configuration/redis.html +23 -0
  252. nautobot/project-static/docs/user-guide/administration/configuration/settings.html +23 -0
  253. nautobot/project-static/docs/user-guide/administration/configuration/time-zones.html +23 -0
  254. nautobot/project-static/docs/user-guide/administration/guides/celery-queues.html +23 -0
  255. nautobot/project-static/docs/user-guide/administration/guides/docker.html +23 -0
  256. nautobot/project-static/docs/user-guide/administration/guides/health-checks.html +23 -0
  257. nautobot/project-static/docs/user-guide/administration/guides/permissions.html +23 -0
  258. nautobot/project-static/docs/user-guide/administration/guides/prometheus-metrics.html +23 -0
  259. nautobot/project-static/docs/user-guide/administration/guides/replicating-nautobot.html +23 -0
  260. nautobot/project-static/docs/user-guide/administration/guides/request-profiling.html +23 -0
  261. nautobot/project-static/docs/user-guide/administration/guides/s3-django-storage.html +23 -0
  262. nautobot/project-static/docs/user-guide/administration/guides/selinux-troubleshooting.html +23 -0
  263. nautobot/project-static/docs/user-guide/administration/installation/app-install.html +23 -0
  264. nautobot/project-static/docs/user-guide/administration/installation/external-authentication.html +23 -0
  265. nautobot/project-static/docs/user-guide/administration/installation/http-server.html +23 -0
  266. nautobot/project-static/docs/user-guide/administration/installation/index.html +23 -0
  267. nautobot/project-static/docs/user-guide/administration/installation/install_system.html +23 -0
  268. nautobot/project-static/docs/user-guide/administration/installation/nautobot.html +23 -0
  269. nautobot/project-static/docs/user-guide/administration/installation/services.html +23 -0
  270. nautobot/project-static/docs/user-guide/administration/migration/migrating-from-netbox.html +23 -0
  271. nautobot/project-static/docs/user-guide/administration/migration/migrating-from-postgresql.html +23 -0
  272. nautobot/project-static/docs/user-guide/administration/security/index.html +23 -0
  273. nautobot/project-static/docs/user-guide/administration/security/notices.html +23 -0
  274. nautobot/project-static/docs/user-guide/administration/tools/nautobot-server.html +284 -219
  275. nautobot/project-static/docs/user-guide/administration/tools/nautobot-shell.html +23 -0
  276. nautobot/project-static/docs/user-guide/administration/upgrading/database-backup.html +23 -0
  277. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/after-you-upgrade.html +23 -0
  278. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/before-you-upgrade.html +23 -0
  279. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/for-developers.html +23 -0
  280. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/index.html +23 -0
  281. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/whats-changed.html +23 -0
  282. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/region-and-site-data-migration-guide.html +23 -0
  283. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/upgrading-from-nautobot-v1.html +23 -0
  284. nautobot/project-static/docs/user-guide/administration/upgrading/upgrading.html +23 -0
  285. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuit.html +23 -0
  286. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittermination.html +23 -0
  287. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittype.html +23 -0
  288. nautobot/project-static/docs/user-guide/core-data-model/circuits/provider.html +23 -0
  289. nautobot/project-static/docs/user-guide/core-data-model/circuits/providernetwork.html +23 -0
  290. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloud.html +23 -0
  291. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudaccount.html +23 -0
  292. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudnetwork.html +23 -0
  293. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudnetworkprefixassignment.html +23 -0
  294. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudresourcetype.html +23 -0
  295. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudservice.html +23 -0
  296. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudservicenetworkassignment.html +23 -0
  297. nautobot/project-static/docs/user-guide/core-data-model/dcim/cable.html +23 -0
  298. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleport.html +23 -0
  299. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleporttemplate.html +23 -0
  300. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverport.html +23 -0
  301. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverporttemplate.html +23 -0
  302. nautobot/project-static/docs/user-guide/core-data-model/dcim/controller.html +23 -0
  303. nautobot/project-static/docs/user-guide/core-data-model/dcim/controllermanageddevicegroup.html +23 -0
  304. nautobot/project-static/docs/user-guide/core-data-model/dcim/device.html +23 -0
  305. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebay.html +23 -0
  306. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebaytemplate.html +23 -0
  307. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicefamily.html +23 -0
  308. nautobot/project-static/docs/user-guide/core-data-model/dcim/deviceredundancygroup.html +23 -0
  309. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicetype.html +23 -0
  310. nautobot/project-static/docs/user-guide/core-data-model/dcim/frontport.html +23 -0
  311. nautobot/project-static/docs/user-guide/core-data-model/dcim/frontporttemplate.html +23 -0
  312. nautobot/project-static/docs/user-guide/core-data-model/dcim/interface.html +23 -0
  313. nautobot/project-static/docs/user-guide/core-data-model/dcim/interfaceredundancygroup.html +23 -0
  314. nautobot/project-static/docs/user-guide/core-data-model/dcim/interfacetemplate.html +23 -0
  315. nautobot/project-static/docs/user-guide/core-data-model/dcim/inventoryitem.html +23 -0
  316. nautobot/project-static/docs/user-guide/core-data-model/dcim/location.html +23 -0
  317. nautobot/project-static/docs/user-guide/core-data-model/dcim/locationtype.html +23 -0
  318. nautobot/project-static/docs/user-guide/core-data-model/dcim/manufacturer.html +23 -0
  319. nautobot/project-static/docs/user-guide/core-data-model/dcim/module.html +23 -0
  320. nautobot/project-static/docs/user-guide/core-data-model/dcim/modulebay.html +23 -0
  321. nautobot/project-static/docs/user-guide/core-data-model/dcim/modulebaytemplate.html +23 -0
  322. nautobot/project-static/docs/user-guide/core-data-model/dcim/modulefamily.html +23 -0
  323. nautobot/project-static/docs/user-guide/core-data-model/dcim/moduletype.html +23 -0
  324. nautobot/project-static/docs/user-guide/core-data-model/dcim/platform.html +23 -0
  325. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerfeed.html +305 -5
  326. nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlet.html +24 -1
  327. nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlettemplate.html +23 -0
  328. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerpanel.html +136 -3
  329. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerport.html +41 -1
  330. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerporttemplate.html +40 -0
  331. nautobot/project-static/docs/user-guide/core-data-model/dcim/rack.html +23 -0
  332. nautobot/project-static/docs/user-guide/core-data-model/dcim/rackgroup.html +23 -0
  333. nautobot/project-static/docs/user-guide/core-data-model/dcim/rackreservation.html +23 -0
  334. nautobot/project-static/docs/user-guide/core-data-model/dcim/rearport.html +23 -0
  335. nautobot/project-static/docs/user-guide/core-data-model/dcim/rearporttemplate.html +23 -0
  336. nautobot/project-static/docs/user-guide/core-data-model/dcim/softwareimagefile.html +23 -0
  337. nautobot/project-static/docs/user-guide/core-data-model/dcim/softwareversion.html +23 -0
  338. nautobot/project-static/docs/user-guide/core-data-model/dcim/virtualchassis.html +23 -0
  339. nautobot/project-static/docs/user-guide/core-data-model/dcim/virtualdevicecontext.html +23 -0
  340. nautobot/project-static/docs/user-guide/core-data-model/extras/configcontext.html +23 -0
  341. nautobot/project-static/docs/user-guide/core-data-model/extras/configcontextschema.html +23 -0
  342. nautobot/project-static/docs/user-guide/core-data-model/extras/contact.html +23 -0
  343. nautobot/project-static/docs/user-guide/core-data-model/extras/team.html +23 -0
  344. nautobot/project-static/docs/user-guide/core-data-model/ipam/ipaddress.html +23 -0
  345. nautobot/project-static/docs/user-guide/core-data-model/ipam/namespace.html +23 -0
  346. nautobot/project-static/docs/user-guide/core-data-model/ipam/prefix.html +23 -0
  347. nautobot/project-static/docs/user-guide/core-data-model/ipam/rir.html +23 -0
  348. nautobot/project-static/docs/user-guide/core-data-model/ipam/routetarget.html +23 -0
  349. nautobot/project-static/docs/user-guide/core-data-model/ipam/service.html +23 -0
  350. nautobot/project-static/docs/user-guide/core-data-model/ipam/vlan.html +23 -0
  351. nautobot/project-static/docs/user-guide/core-data-model/ipam/vlangroup.html +23 -0
  352. nautobot/project-static/docs/user-guide/core-data-model/ipam/vrf.html +23 -0
  353. nautobot/project-static/docs/user-guide/core-data-model/overview/introduction.html +23 -0
  354. nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenant.html +23 -0
  355. nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenantgroup.html +23 -0
  356. nautobot/project-static/docs/user-guide/core-data-model/virtualization/cluster.html +23 -0
  357. nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustergroup.html +23 -0
  358. nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustertype.html +23 -0
  359. nautobot/project-static/docs/user-guide/core-data-model/virtualization/virtualmachine.html +23 -0
  360. nautobot/project-static/docs/user-guide/core-data-model/virtualization/vminterface.html +23 -0
  361. nautobot/project-static/docs/user-guide/core-data-model/wireless/index.html +23 -0
  362. nautobot/project-static/docs/user-guide/core-data-model/wireless/radioprofile.html +23 -0
  363. nautobot/project-static/docs/user-guide/core-data-model/wireless/supporteddatarate.html +23 -0
  364. nautobot/project-static/docs/user-guide/core-data-model/wireless/wirelessnetwork.html +23 -0
  365. nautobot/project-static/docs/user-guide/feature-guides/contacts-and-teams.html +23 -0
  366. nautobot/project-static/docs/user-guide/feature-guides/custom-fields.html +23 -0
  367. nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-devices.html +23 -0
  368. nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-location-types-and-locations.html +23 -0
  369. nautobot/project-static/docs/user-guide/feature-guides/getting-started/index.html +23 -0
  370. nautobot/project-static/docs/user-guide/feature-guides/getting-started/interfaces.html +23 -0
  371. nautobot/project-static/docs/user-guide/feature-guides/getting-started/ipam.html +23 -0
  372. nautobot/project-static/docs/user-guide/feature-guides/getting-started/platforms.html +23 -0
  373. nautobot/project-static/docs/user-guide/feature-guides/getting-started/search-bar.html +23 -0
  374. nautobot/project-static/docs/user-guide/feature-guides/getting-started/tenants.html +23 -0
  375. nautobot/project-static/docs/user-guide/feature-guides/getting-started/vlans-and-vlan-groups.html +23 -0
  376. nautobot/project-static/docs/user-guide/feature-guides/git-data-source.html +23 -0
  377. nautobot/project-static/docs/user-guide/feature-guides/graphql.html +23 -0
  378. nautobot/project-static/docs/user-guide/feature-guides/ip-address-merge-tool.html +23 -0
  379. nautobot/project-static/docs/user-guide/feature-guides/relationships.html +23 -0
  380. nautobot/project-static/docs/user-guide/feature-guides/software-image-files-and-versions.html +23 -0
  381. nautobot/project-static/docs/user-guide/feature-guides/wireless-networks-and-controllers.html +23 -0
  382. nautobot/project-static/docs/user-guide/index.html +23 -0
  383. nautobot/project-static/docs/user-guide/platform-functionality/change-logging.html +23 -0
  384. nautobot/project-static/docs/user-guide/platform-functionality/computedfield.html +23 -0
  385. nautobot/project-static/docs/user-guide/platform-functionality/customfield.html +23 -0
  386. nautobot/project-static/docs/user-guide/platform-functionality/customlink.html +23 -0
  387. nautobot/project-static/docs/user-guide/platform-functionality/dynamicgroup.html +23 -0
  388. nautobot/project-static/docs/user-guide/platform-functionality/events.html +23 -0
  389. nautobot/project-static/docs/user-guide/platform-functionality/exporttemplate.html +23 -0
  390. nautobot/project-static/docs/user-guide/platform-functionality/externalintegration.html +23 -0
  391. nautobot/project-static/docs/user-guide/platform-functionality/gitrepository.html +23 -0
  392. nautobot/project-static/docs/user-guide/platform-functionality/graphql.html +23 -0
  393. nautobot/project-static/docs/user-guide/platform-functionality/graphqlquery.html +23 -0
  394. nautobot/project-static/docs/user-guide/platform-functionality/imageattachment.html +23 -0
  395. nautobot/project-static/docs/user-guide/platform-functionality/jobs/index.html +23 -0
  396. nautobot/project-static/docs/user-guide/platform-functionality/jobs/job-scheduling-and-approvals.html +24 -1
  397. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobbutton.html +23 -0
  398. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobhook.html +23 -0
  399. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobqueue.html +23 -0
  400. nautobot/project-static/docs/user-guide/platform-functionality/jobs/kubernetes-job-support.html +23 -0
  401. nautobot/project-static/docs/user-guide/platform-functionality/jobs/managing-jobs.html +23 -0
  402. nautobot/project-static/docs/user-guide/platform-functionality/jobs/models.html +23 -0
  403. nautobot/project-static/docs/user-guide/platform-functionality/napalm.html +23 -0
  404. nautobot/project-static/docs/user-guide/platform-functionality/note.html +23 -0
  405. nautobot/project-static/docs/user-guide/platform-functionality/objectmetadata.html +23 -0
  406. nautobot/project-static/docs/user-guide/platform-functionality/relationship.html +23 -0
  407. nautobot/project-static/docs/user-guide/platform-functionality/rendering-jinja-templates.html +23 -0
  408. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/authentication.html +23 -0
  409. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/filtering.html +23 -0
  410. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/overview.html +23 -0
  411. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/ui-related-endpoints.html +23 -0
  412. nautobot/project-static/docs/user-guide/platform-functionality/role.html +23 -0
  413. nautobot/project-static/docs/user-guide/platform-functionality/savedview.html +23 -0
  414. nautobot/project-static/docs/user-guide/platform-functionality/secret.html +23 -0
  415. nautobot/project-static/docs/user-guide/platform-functionality/staticgroupassociation.html +23 -0
  416. nautobot/project-static/docs/user-guide/platform-functionality/status.html +23 -0
  417. nautobot/project-static/docs/user-guide/platform-functionality/tag.html +23 -0
  418. nautobot/project-static/docs/user-guide/platform-functionality/template-filters.html +23 -0
  419. nautobot/project-static/docs/user-guide/platform-functionality/users/objectpermission.html +23 -0
  420. nautobot/project-static/docs/user-guide/platform-functionality/users/token.html +23 -0
  421. nautobot/project-static/docs/user-guide/platform-functionality/webhook.html +23 -0
  422. nautobot/users/tests/test_api.py +2 -2
  423. nautobot/virtualization/templates/virtualization/virtualmachine.html +2 -252
  424. nautobot/virtualization/templates/virtualization/virtualmachine_edit.html +2 -75
  425. nautobot/virtualization/templates/virtualization/virtualmachine_retrieve.html +252 -0
  426. nautobot/virtualization/templates/virtualization/virtualmachine_update.html +75 -0
  427. nautobot/virtualization/urls.py +3 -61
  428. nautobot/virtualization/views.py +48 -72
  429. {nautobot-2.4.14.dist-info → nautobot-2.4.16.dist-info}/METADATA +24 -24
  430. {nautobot-2.4.14.dist-info → nautobot-2.4.16.dist-info}/RECORD +434 -417
  431. {nautobot-2.4.14.dist-info → nautobot-2.4.16.dist-info}/LICENSE.txt +0 -0
  432. {nautobot-2.4.14.dist-info → nautobot-2.4.16.dist-info}/NOTICE +0 -0
  433. {nautobot-2.4.14.dist-info → nautobot-2.4.16.dist-info}/WHEEL +0 -0
  434. {nautobot-2.4.14.dist-info → nautobot-2.4.16.dist-info}/entry_points.txt +0 -0
@@ -8699,6 +8699,29 @@
8699
8699
 
8700
8700
 
8701
8701
 
8702
+
8703
+
8704
+
8705
+
8706
+
8707
+
8708
+ <li class="md-nav__item">
8709
+ <a href="../../../development/apps/migration/ui-component-framework/breadcrumbs-titles.html" class="md-nav__link">
8710
+
8711
+
8712
+
8713
+ <span class="md-ellipsis">
8714
+ Breadcrumbs and titles
8715
+
8716
+ </span>
8717
+
8718
+
8719
+ </a>
8720
+ </li>
8721
+
8722
+
8723
+
8724
+
8702
8725
  </ul>
8703
8726
  </nav>
8704
8727
 
@@ -8687,6 +8687,29 @@
8687
8687
 
8688
8688
 
8689
8689
 
8690
+
8691
+
8692
+
8693
+
8694
+
8695
+
8696
+ <li class="md-nav__item">
8697
+ <a href="../../../development/apps/migration/ui-component-framework/breadcrumbs-titles.html" class="md-nav__link">
8698
+
8699
+
8700
+
8701
+ <span class="md-ellipsis">
8702
+ Breadcrumbs and titles
8703
+
8704
+ </span>
8705
+
8706
+
8707
+ </a>
8708
+ </li>
8709
+
8710
+
8711
+
8712
+
8690
8713
  </ul>
8691
8714
  </nav>
8692
8715
 
@@ -8679,6 +8679,29 @@
8679
8679
 
8680
8680
 
8681
8681
 
8682
+
8683
+
8684
+
8685
+
8686
+
8687
+
8688
+ <li class="md-nav__item">
8689
+ <a href="../../../development/apps/migration/ui-component-framework/breadcrumbs-titles.html" class="md-nav__link">
8690
+
8691
+
8692
+
8693
+ <span class="md-ellipsis">
8694
+ Breadcrumbs and titles
8695
+
8696
+ </span>
8697
+
8698
+
8699
+ </a>
8700
+ </li>
8701
+
8702
+
8703
+
8704
+
8682
8705
  </ul>
8683
8706
  </nav>
8684
8707
 
@@ -8687,6 +8687,29 @@
8687
8687
 
8688
8688
 
8689
8689
 
8690
+
8691
+
8692
+
8693
+
8694
+
8695
+
8696
+ <li class="md-nav__item">
8697
+ <a href="../../../development/apps/migration/ui-component-framework/breadcrumbs-titles.html" class="md-nav__link">
8698
+
8699
+
8700
+
8701
+ <span class="md-ellipsis">
8702
+ Breadcrumbs and titles
8703
+
8704
+ </span>
8705
+
8706
+
8707
+ </a>
8708
+ </li>
8709
+
8710
+
8711
+
8712
+
8690
8713
  </ul>
8691
8714
  </nav>
8692
8715
 
@@ -4255,6 +4255,93 @@
4255
4255
  </label>
4256
4256
  <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
4257
4257
 
4258
+ <li class="md-nav__item">
4259
+ <a href="#type" class="md-nav__link">
4260
+ <span class="md-ellipsis">
4261
+ Type
4262
+ </span>
4263
+ </a>
4264
+
4265
+ </li>
4266
+
4267
+ <li class="md-nav__item">
4268
+ <a href="#power-path" class="md-nav__link">
4269
+ <span class="md-ellipsis">
4270
+ Power Path
4271
+ </span>
4272
+ </a>
4273
+
4274
+ </li>
4275
+
4276
+ <li class="md-nav__item">
4277
+ <a href="#status" class="md-nav__link">
4278
+ <span class="md-ellipsis">
4279
+ Status
4280
+ </span>
4281
+ </a>
4282
+
4283
+ </li>
4284
+
4285
+ <li class="md-nav__item">
4286
+ <a href="#panel-to-panel-distribution" class="md-nav__link">
4287
+ <span class="md-ellipsis">
4288
+ Panel-to-Panel Distribution
4289
+ </span>
4290
+ </a>
4291
+
4292
+ </li>
4293
+
4294
+ <li class="md-nav__item">
4295
+ <a href="#electrical-characteristics" class="md-nav__link">
4296
+ <span class="md-ellipsis">
4297
+ Electrical Characteristics
4298
+ </span>
4299
+ </a>
4300
+
4301
+ </li>
4302
+
4303
+ <li class="md-nav__item">
4304
+ <a href="#breaker-configuration" class="md-nav__link">
4305
+ <span class="md-ellipsis">
4306
+ Breaker Configuration
4307
+ </span>
4308
+ </a>
4309
+
4310
+ <nav class="md-nav" aria-label="Breaker Configuration">
4311
+ <ul class="md-nav__list">
4312
+
4313
+ <li class="md-nav__item">
4314
+ <a href="#phase-designation" class="md-nav__link">
4315
+ <span class="md-ellipsis">
4316
+ Phase Designation
4317
+ </span>
4318
+ </a>
4319
+
4320
+ </li>
4321
+
4322
+ <li class="md-nav__item">
4323
+ <a href="#position-tracking" class="md-nav__link">
4324
+ <span class="md-ellipsis">
4325
+ Position Tracking
4326
+ </span>
4327
+ </a>
4328
+
4329
+ </li>
4330
+
4331
+ </ul>
4332
+ </nav>
4333
+
4334
+ </li>
4335
+
4336
+ <li class="md-nav__item">
4337
+ <a href="#modeling-power-redundancy" class="md-nav__link">
4338
+ <span class="md-ellipsis">
4339
+ Modeling Power Redundancy
4340
+ </span>
4341
+ </a>
4342
+
4343
+ </li>
4344
+
4258
4345
  <li class="md-nav__item">
4259
4346
  <a href="#example-power-topology" class="md-nav__link">
4260
4347
  <span class="md-ellipsis">
@@ -8728,6 +8815,29 @@
8728
8815
 
8729
8816
 
8730
8817
 
8818
+
8819
+
8820
+
8821
+
8822
+
8823
+
8824
+ <li class="md-nav__item">
8825
+ <a href="../../../development/apps/migration/ui-component-framework/breadcrumbs-titles.html" class="md-nav__link">
8826
+
8827
+
8828
+
8829
+ <span class="md-ellipsis">
8830
+ Breadcrumbs and titles
8831
+
8832
+ </span>
8833
+
8834
+
8835
+ </a>
8836
+ </li>
8837
+
8838
+
8839
+
8840
+
8731
8841
  </ul>
8732
8842
  </nav>
8733
8843
 
@@ -10106,6 +10216,93 @@
10106
10216
  </label>
10107
10217
  <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
10108
10218
 
10219
+ <li class="md-nav__item">
10220
+ <a href="#type" class="md-nav__link">
10221
+ <span class="md-ellipsis">
10222
+ Type
10223
+ </span>
10224
+ </a>
10225
+
10226
+ </li>
10227
+
10228
+ <li class="md-nav__item">
10229
+ <a href="#power-path" class="md-nav__link">
10230
+ <span class="md-ellipsis">
10231
+ Power Path
10232
+ </span>
10233
+ </a>
10234
+
10235
+ </li>
10236
+
10237
+ <li class="md-nav__item">
10238
+ <a href="#status" class="md-nav__link">
10239
+ <span class="md-ellipsis">
10240
+ Status
10241
+ </span>
10242
+ </a>
10243
+
10244
+ </li>
10245
+
10246
+ <li class="md-nav__item">
10247
+ <a href="#panel-to-panel-distribution" class="md-nav__link">
10248
+ <span class="md-ellipsis">
10249
+ Panel-to-Panel Distribution
10250
+ </span>
10251
+ </a>
10252
+
10253
+ </li>
10254
+
10255
+ <li class="md-nav__item">
10256
+ <a href="#electrical-characteristics" class="md-nav__link">
10257
+ <span class="md-ellipsis">
10258
+ Electrical Characteristics
10259
+ </span>
10260
+ </a>
10261
+
10262
+ </li>
10263
+
10264
+ <li class="md-nav__item">
10265
+ <a href="#breaker-configuration" class="md-nav__link">
10266
+ <span class="md-ellipsis">
10267
+ Breaker Configuration
10268
+ </span>
10269
+ </a>
10270
+
10271
+ <nav class="md-nav" aria-label="Breaker Configuration">
10272
+ <ul class="md-nav__list">
10273
+
10274
+ <li class="md-nav__item">
10275
+ <a href="#phase-designation" class="md-nav__link">
10276
+ <span class="md-ellipsis">
10277
+ Phase Designation
10278
+ </span>
10279
+ </a>
10280
+
10281
+ </li>
10282
+
10283
+ <li class="md-nav__item">
10284
+ <a href="#position-tracking" class="md-nav__link">
10285
+ <span class="md-ellipsis">
10286
+ Position Tracking
10287
+ </span>
10288
+ </a>
10289
+
10290
+ </li>
10291
+
10292
+ </ul>
10293
+ </nav>
10294
+
10295
+ </li>
10296
+
10297
+ <li class="md-nav__item">
10298
+ <a href="#modeling-power-redundancy" class="md-nav__link">
10299
+ <span class="md-ellipsis">
10300
+ Modeling Power Redundancy
10301
+ </span>
10302
+ </a>
10303
+
10304
+ </li>
10305
+
10109
10306
  <li class="md-nav__item">
10110
10307
  <a href="#example-power-topology" class="md-nav__link">
10111
10308
  <span class="md-ellipsis">
@@ -10135,15 +10332,53 @@
10135
10332
 
10136
10333
 
10137
10334
  <h1 id="power-feed">Power Feed<a class="headerlink" href="#power-feed" title="Permanent link">&para;</a></h1>
10138
- <p>A power feed represents the distribution of power from a power panel to a particular device, typically a power distribution unit (PDU). The power port (inlet) on a device can be connected via a cable to a power feed. A power feed may optionally be assigned to a rack to allow more easily tracking the distribution of power among racks.</p>
10139
- <p>Each power feed is assigned an operational type (primary or redundant) and a <a href="../../platform-functionality/status.html"><code>status</code></a>. The following statuses are available by default:</p>
10335
+ <p>A power feed represents a electrical connection that distributes power from a <a href="powerpanel.html">power panel</a> to devices or to other power panels. Power feeds can be connected via cables to device power ports and may optionally be assigned to a rack for tracking power distribution.</p>
10336
+ <p>Power feeds define the electrical characteristics of the circuit they represent and are categorized by both their operational type (type) and physical path (side) to enable accurate modeling of redundant power configurations.</p>
10337
+ <h2 id="type">Type<a class="headerlink" href="#type" title="Permanent link">&para;</a></h2>
10338
+ <p>The <code>type</code> field defines the operational type of the power feed in relation to other feeds that power the same equipment:</p>
10339
+ <ul>
10340
+ <li><strong>Primary</strong>: The main power feed for a device or rack</li>
10341
+ <li><strong>Redundant</strong>: A backup or secondary power feed</li>
10342
+ </ul>
10343
+ <p>The interpretation of these types depends on the overall power design. For example, in an active-active (2N) configuration, a device might be served by two <code>Primary</code> feeds. In an active-passive (N+1) configuration, it would be served by one <code>Primary</code> and one <code>Redundant</code> feed.</p>
10344
+ <h2 id="power-path">Power Path<a class="headerlink" href="#power-path" title="Permanent link">&para;</a></h2>
10345
+ <details class="version-added">
10346
+ <summary>Added in version 2.4.15</summary>
10347
+ <p>The <code>power_path</code> field defines the physical path or source of the power feed. It represents which power distribution path the circuit originates from, which is crucial for modeling fault tolerance:</p>
10348
+ </details>
10349
+ <ul>
10350
+ <li><strong>Path A</strong>: The power feed originates from the "A" power path</li>
10351
+ <li><strong>Path B</strong>: The power feed originates from the "B" power path </li>
10352
+ </ul>
10353
+ <p>If a power feed is part of a single, non-redundant power system (as in a Tier I or Tier II data center), the <code>power_path</code> field can be left blank.</p>
10354
+ <h2 id="status">Status<a class="headerlink" href="#status" title="Permanent link">&para;</a></h2>
10355
+ <p>Each power feed must be assigned an operational <a href="../../platform-functionality/status.html"><code>status</code></a>. The following statuses are available by default:</p>
10140
10356
  <ul>
10141
10357
  <li>Offline</li>
10142
10358
  <li>Active</li>
10143
10359
  <li>Planned</li>
10144
10360
  <li>Failed</li>
10145
10361
  </ul>
10146
- <p>Each power feed also defines the electrical characteristics of the circuit which it represents. These include the following:</p>
10362
+ <h2 id="panel-to-panel-distribution">Panel-to-Panel Distribution<a class="headerlink" href="#panel-to-panel-distribution" title="Permanent link">&para;</a></h2>
10363
+ <details class="version-added">
10364
+ <summary>Added in version 2.4.15</summary>
10365
+ <p>Power feeds can connect one power panel to another by specifying a <code>destination_panel</code>. This enables modeling of hierarchical power distribution where power flows from upstream panels to downstream panels.</p>
10366
+ </details>
10367
+ <div class="admonition note">
10368
+ <p class="admonition-title">Note</p>
10369
+ <p>The <code>destination_panel</code> field should only be used for panel-to-panel connections in the power distribution hierarchy. When connecting a power feed to a rack-level PDU, leave <code>destination_panel</code> blank since rack PDUs should be modeled as <a href="device.html">devices</a> with <a href="poweroutlet.html">power outlets</a>, not as power panels.</p>
10370
+ </div>
10371
+ <div class="admonition warning">
10372
+ <p class="admonition-title">Cable Connection Exclusivity</p>
10373
+ <p>A power feed cannot specify both a <code>destination_panel</code> and be connected via cable to another endpoint simultaneously. Power feeds can either:</p>
10374
+ <ul>
10375
+ <li>Connect to a destination panel (panel-to-panel distribution), OR</li>
10376
+ <li>Be cabled to a device power port or other endpoint</li>
10377
+ </ul>
10378
+ <p>But not both. This mutual exclusivity is enforced during validation to maintain data integrity.</p>
10379
+ </div>
10380
+ <h2 id="electrical-characteristics">Electrical Characteristics<a class="headerlink" href="#electrical-characteristics" title="Permanent link">&para;</a></h2>
10381
+ <p>Each power feed defines the electrical characteristics of the circuit:</p>
10147
10382
  <ul>
10148
10383
  <li>Supply type (AC or DC)</li>
10149
10384
  <li>Phase (single or three-phase)</li>
@@ -10151,12 +10386,77 @@
10151
10386
  <li>Amperage</li>
10152
10387
  <li>Maximum utilization (percentage)</li>
10153
10388
  </ul>
10389
+ <h2 id="breaker-configuration">Breaker Configuration<a class="headerlink" href="#breaker-configuration" title="Permanent link">&para;</a></h2>
10390
+ <details class="version-added">
10391
+ <summary>Added in version 2.4.15</summary>
10392
+ <p>Power feeds can specify their breaker configuration within the source power panel:</p>
10393
+ </details>
10394
+ <ul>
10395
+ <li><strong>Breaker position</strong>: The starting circuit position number in the panel</li>
10396
+ <li><strong>Breaker pole count</strong>: The number of poles the breaker occupies (1, 2, or 3)</li>
10397
+ </ul>
10398
+ <p>When breaker positions are specified, Nautobot validates that:</p>
10399
+ <ol>
10400
+ <li><strong>Panel capacity</strong>: The breaker configuration fits within the panel's circuit capacity</li>
10401
+ <li><strong>Position conflicts</strong>: No conflicts exist with other power feeds' breaker positions</li>
10402
+ <li><strong>Auto-defaulting</strong>: If a breaker position is specified without a pole count, it defaults to a single-pole breaker</li>
10403
+ </ol>
10404
+ <p>The system calculates occupied positions based on standard electrical panel layouts where multi-pole breakers occupy consecutive positions with specific spacing requirements.</p>
10405
+ <h3 id="phase-designation">Phase Designation<a class="headerlink" href="#phase-designation" title="Permanent link">&para;</a></h3>
10406
+ <p>When breaker positions are configured, Nautobot automatically calculates the phase designation based on the occupied circuit positions. This follows standard electrical panel layouts where:</p>
10407
+ <ul>
10408
+ <li>Positions 1,2 = Phase A</li>
10409
+ <li>Positions 3,4 = Phase B </li>
10410
+ <li>Positions 5,6 = Phase C</li>
10411
+ <li>Pattern repeats every 6 positions</li>
10412
+ </ul>
10413
+ <p>The calculated phase designation can be:</p>
10414
+ <ul>
10415
+ <li><strong>Single-phase (1-pole)</strong>: "A", "B", or "C" for single-pole breakers</li>
10416
+ <li><strong>Single-phase (2-pole)</strong>: "A-B", "B-C", etc. for two-pole breakers (e.g., 240V split-phase)</li>
10417
+ <li><strong>Three-phase (3-pole)</strong>: "A-B-C" for three-pole breakers</li>
10418
+ </ul>
10419
+ <p>This information is available through the <code>phase_designation</code> property and helps with load balancing and electrical planning.</p>
10420
+ <h3 id="position-tracking">Position Tracking<a class="headerlink" href="#position-tracking" title="Permanent link">&para;</a></h3>
10421
+ <p>The <code>occupied_positions</code> property provides a comma-separated string of all circuit positions occupied by the power feed. This is useful for understanding panel utilization and avoiding conflicts when adding new feeds.</p>
10422
+ <h2 id="modeling-power-redundancy">Modeling Power Redundancy<a class="headerlink" href="#modeling-power-redundancy" title="Permanent link">&para;</a></h2>
10423
+ <p>By combining the <code>type</code> and <code>power_path</code> fields, you can model various industry-standard power redundancy configurations:</p>
10424
+ <table>
10425
+ <thead>
10426
+ <tr>
10427
+ <th style="text-align: left;">Uptime Tier</th>
10428
+ <th style="text-align: left;">Design</th>
10429
+ <th style="text-align: left;">Feed 1</th>
10430
+ <th style="text-align: left;">Feed 2</th>
10431
+ </tr>
10432
+ </thead>
10433
+ <tbody>
10434
+ <tr>
10435
+ <td style="text-align: left;">Tier I/II</td>
10436
+ <td style="text-align: left;">Single Path (N)</td>
10437
+ <td style="text-align: left;"><code>type=Primary</code>, <code>power_path=</code> (blank)</td>
10438
+ <td style="text-align: left;">(none)</td>
10439
+ </tr>
10440
+ <tr>
10441
+ <td style="text-align: left;">Tier III</td>
10442
+ <td style="text-align: left;">Active/Passive (N+1)</td>
10443
+ <td style="text-align: left;"><code>type=Primary</code>, <code>power_path=a</code></td>
10444
+ <td style="text-align: left;"><code>type=Redundant</code>, <code>power_path=b</code></td>
10445
+ </tr>
10446
+ <tr>
10447
+ <td style="text-align: left;">Tier IV</td>
10448
+ <td style="text-align: left;">Active/Active (2N)</td>
10449
+ <td style="text-align: left;"><code>type=Primary</code>, <code>power_path=a</code></td>
10450
+ <td style="text-align: left;"><code>type=Primary</code>, <code>power_path=b</code></td>
10451
+ </tr>
10452
+ </tbody>
10453
+ </table>
10154
10454
  <div class="admonition info">
10155
10455
  <p class="admonition-title">Info</p>
10156
- <p>The power utilization of a rack is calculated when one or more power feeds are assigned to the rack and connected to devices that draw power.</p>
10456
+ <p>Cables can connect power feeds only to device power ports. Pass-through ports cannot be used to model power distribution. The power utilization of a rack is calculated when one or more power feeds are assigned to the rack and connected to devices that draw power.</p>
10157
10457
  </div>
10158
10458
  <h2 id="example-power-topology">Example Power Topology<a class="headerlink" href="#example-power-topology" title="Permanent link">&para;</a></h2>
10159
- <p><img alt="Power distribution model" src="../../../media/power_distribution.png" /></p>
10459
+ <p><img alt="Power distribution model" src="../../../media/power_distribution.png" style="width: 50%" /></p>
10160
10460
 
10161
10461
 
10162
10462
 
@@ -8781,6 +8781,29 @@
8781
8781
 
8782
8782
 
8783
8783
 
8784
+
8785
+
8786
+
8787
+
8788
+
8789
+
8790
+ <li class="md-nav__item">
8791
+ <a href="../../../development/apps/migration/ui-component-framework/breadcrumbs-titles.html" class="md-nav__link">
8792
+
8793
+
8794
+
8795
+ <span class="md-ellipsis">
8796
+ Breadcrumbs and titles
8797
+
8798
+ </span>
8799
+
8800
+
8801
+ </a>
8802
+ </li>
8803
+
8804
+
8805
+
8806
+
8784
8807
  </ul>
8785
8808
  </nav>
8786
8809
 
@@ -10196,7 +10219,7 @@
10196
10219
  <p>This model has been updated to support being installed in <a href="module.html">Modules</a>. As a result, there are now two fields for assignment to a Device or Module. One of the <code>device</code> or <code>module</code> fields must be populated but not both. If a <code>module</code> is supplied, the <code>device</code> field must be null, and similarly the <code>module</code> field must be null if a <code>device</code> is supplied.</p>
10197
10220
  </details>
10198
10221
  <h2 id="example-power-topology">Example Power Topology<a class="headerlink" href="#example-power-topology" title="Permanent link">&para;</a></h2>
10199
- <p><img alt="Power distribution model" src="../../../media/power_distribution.png" /></p>
10222
+ <p><img alt="Power distribution model" src="../../../media/power_distribution.png" style="width: 50%" /></p>
10200
10223
 
10201
10224
 
10202
10225
 
@@ -8699,6 +8699,29 @@
8699
8699
 
8700
8700
 
8701
8701
 
8702
+
8703
+
8704
+
8705
+
8706
+
8707
+
8708
+ <li class="md-nav__item">
8709
+ <a href="../../../development/apps/migration/ui-component-framework/breadcrumbs-titles.html" class="md-nav__link">
8710
+
8711
+
8712
+
8713
+ <span class="md-ellipsis">
8714
+ Breadcrumbs and titles
8715
+
8716
+ </span>
8717
+
8718
+
8719
+ </a>
8720
+ </li>
8721
+
8722
+
8723
+
8724
+
8702
8725
  </ul>
8703
8726
  </nav>
8704
8727