nautobot 2.4.2__py3-none-any.whl → 2.4.3__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.
Potentially problematic release.
This version of nautobot might be problematic. Click here for more details.
- nautobot/circuits/templates/circuits/inc/circuit_termination.html +1 -1
- nautobot/circuits/tests/integration/test_circuit.py +135 -0
- nautobot/circuits/views.py +4 -1
- nautobot/cloud/api/views.py +3 -3
- nautobot/core/constants.py +0 -1
- nautobot/core/forms/__init__.py +2 -0
- nautobot/core/forms/forms.py +2 -1
- nautobot/core/forms/widgets.py +8 -0
- nautobot/core/management/commands/generate_performance_test_endpoints.py +268 -0
- nautobot/core/templates/generic/object_bulk_delete.html +1 -1
- nautobot/core/templates/generic/object_bulk_edit.html +1 -1
- nautobot/core/templates/generic/object_bulk_import.html +1 -1
- nautobot/core/templates/generic/object_create.html +5 -0
- nautobot/core/templates/generic/object_delete.html +1 -1
- nautobot/core/templates/generic/object_detail.html +1 -1
- nautobot/core/templates/generic/object_edit.html +1 -1
- nautobot/core/templates/inc/javascript.html +2 -0
- nautobot/core/templates/widgets/clearable_file.html +5 -0
- nautobot/core/templatetags/helpers.py +3 -3
- nautobot/core/testing/integration.py +37 -7
- nautobot/core/tests/test_commands.py +31 -0
- nautobot/core/tests/test_utils.py +17 -2
- nautobot/core/utils/lookup.py +12 -1
- nautobot/core/views/generic.py +9 -1
- nautobot/core/views/mixins.py +9 -1
- nautobot/dcim/api/views.py +11 -10
- nautobot/dcim/forms.py +3 -6
- nautobot/dcim/models/devices.py +1 -2
- nautobot/dcim/templates/dcim/cable_trace.html +4 -4
- nautobot/dcim/templates/dcim/consoleport.html +14 -4
- nautobot/dcim/templates/dcim/consoleserverport.html +14 -4
- nautobot/dcim/templates/dcim/device/lldp_neighbors.html +3 -3
- nautobot/dcim/templates/dcim/frontport.html +7 -2
- nautobot/dcim/templates/dcim/interface.html +9 -4
- nautobot/dcim/templates/dcim/powerfeed.html +8 -3
- nautobot/dcim/templates/dcim/poweroutlet.html +14 -4
- nautobot/dcim/templates/dcim/powerport.html +14 -4
- nautobot/dcim/templates/dcim/rearport.html +7 -2
- nautobot/dcim/tests/integration/test_fileinputpicker.py +87 -0
- nautobot/dcim/tests/test_models.py +1 -1
- nautobot/extras/api/views.py +2 -2
- nautobot/extras/forms/forms.py +4 -0
- nautobot/extras/jobs.py +8 -1
- nautobot/extras/templates/extras/job.html +1 -0
- nautobot/extras/tests/test_dynamicgroups.py +14 -0
- nautobot/extras/tests/test_views.py +197 -9
- nautobot/extras/utils.py +30 -0
- nautobot/extras/views.py +29 -14
- nautobot/ipam/api/views.py +3 -3
- nautobot/ipam/forms.py +2 -6
- nautobot/project-static/bootstrap-filestyle-1.2.3/bootstrap-filestyle.min.js +11 -0
- nautobot/project-static/docs/apps/index.html +1 -1
- nautobot/project-static/docs/apps/nautobot-apps.html +1 -1
- nautobot/project-static/docs/development/apps/api/models/graphql.html +9 -9
- nautobot/project-static/docs/development/apps/api/platform-features/filter-extensions.html +2 -2
- nautobot/project-static/docs/development/apps/api/setup.html +1 -1
- nautobot/project-static/docs/development/apps/migration/code-updates.html +6 -5
- nautobot/project-static/docs/development/apps/migration/dependency-updates.html +2 -2
- nautobot/project-static/docs/development/apps/migration/from-v1.html +3 -3
- nautobot/project-static/docs/development/core/best-practices.html +1 -1
- nautobot/project-static/docs/development/core/bootstrap-ui.html +1 -1
- nautobot/project-static/docs/development/core/docker-compose-advanced-use-cases.html +7 -7
- nautobot/project-static/docs/development/core/getting-started.html +2 -2
- nautobot/project-static/docs/development/core/index.html +1 -1
- nautobot/project-static/docs/development/core/minikube-dev-environment-for-k8s-jobs.html +3 -3
- nautobot/project-static/docs/development/core/model-checklist.html +1 -1
- nautobot/project-static/docs/development/core/navigation-menu.html +1 -1
- nautobot/project-static/docs/development/core/release-checklist.html +1 -1
- nautobot/project-static/docs/development/core/settings.html +1 -1
- nautobot/project-static/docs/development/core/style-guide.html +4 -4
- nautobot/project-static/docs/development/jobs/index.html +8 -1
- nautobot/project-static/docs/development/jobs/migration/from-v1.html +3 -2
- nautobot/project-static/docs/index.html +3 -2
- nautobot/project-static/docs/objects.inv +0 -0
- nautobot/project-static/docs/overview/application_stack.html +2 -2
- nautobot/project-static/docs/release-notes/version-1.0.html +2 -2
- nautobot/project-static/docs/release-notes/version-1.1.html +2 -2
- nautobot/project-static/docs/release-notes/version-1.2.html +3 -3
- nautobot/project-static/docs/release-notes/version-1.3.html +1 -1
- nautobot/project-static/docs/release-notes/version-1.4.html +17 -17
- nautobot/project-static/docs/release-notes/version-1.5.html +8 -8
- nautobot/project-static/docs/release-notes/version-1.6.html +4 -4
- nautobot/project-static/docs/release-notes/version-2.0.html +10 -10
- nautobot/project-static/docs/release-notes/version-2.1.html +7 -7
- nautobot/project-static/docs/release-notes/version-2.2.html +1 -1
- nautobot/project-static/docs/release-notes/version-2.3.html +4 -4
- nautobot/project-static/docs/release-notes/version-2.4.html +188 -0
- nautobot/project-static/docs/search/search_index.json +1 -1
- nautobot/project-static/docs/sitemap.xml +290 -290
- nautobot/project-static/docs/sitemap.xml.gz +0 -0
- nautobot/project-static/docs/user-guide/administration/configuration/authentication/ldap.html +3 -3
- nautobot/project-static/docs/user-guide/administration/configuration/authentication/sso.html +4 -4
- nautobot/project-static/docs/user-guide/administration/configuration/redis.html +1 -1
- nautobot/project-static/docs/user-guide/administration/configuration/settings.html +3 -3
- nautobot/project-static/docs/user-guide/administration/guides/celery-queues.html +5 -5
- nautobot/project-static/docs/user-guide/administration/guides/docker.html +3 -3
- nautobot/project-static/docs/user-guide/administration/guides/health-checks.html +1 -1
- nautobot/project-static/docs/user-guide/administration/guides/prometheus-metrics.html +4 -4
- nautobot/project-static/docs/user-guide/administration/guides/request-profiling.html +15 -15
- nautobot/project-static/docs/user-guide/administration/guides/s3-django-storage.html +2 -2
- nautobot/project-static/docs/user-guide/administration/installation/app-install.html +1 -1
- nautobot/project-static/docs/user-guide/administration/installation/install_system.html +1 -1
- nautobot/project-static/docs/user-guide/administration/installation/nautobot.html +6 -6
- nautobot/project-static/docs/user-guide/administration/installation/services.html +1 -1
- nautobot/project-static/docs/user-guide/administration/security/index.html +1 -1
- nautobot/project-static/docs/user-guide/administration/security/notices.html +1 -0
- nautobot/project-static/docs/user-guide/administration/tools/nautobot-shell.html +1 -1
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/upgrading-from-nautobot-v1.html +11 -8
- nautobot/project-static/docs/user-guide/feature-guides/custom-fields.html +12 -12
- nautobot/project-static/docs/user-guide/feature-guides/git-data-source.html +1 -1
- nautobot/project-static/docs/user-guide/platform-functionality/dynamicgroup.html +1 -1
- nautobot/project-static/docs/user-guide/platform-functionality/graphql.html +3 -3
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobqueue.html +2 -2
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/kubernetes-job-support.html +6 -6
- nautobot/project-static/js/dropdown.js +28 -0
- nautobot/tenancy/forms.py +9 -0
- nautobot/tenancy/templates/tenancy/tenant_create.html +21 -0
- nautobot/tenancy/templates/tenancy/tenant_edit.html +2 -21
- nautobot/tenancy/templates/tenancy/tenantgroup.html +2 -44
- nautobot/tenancy/templates/tenancy/tenantgroup_retrieve.html +1 -0
- nautobot/tenancy/tests/test_views.py +5 -1
- nautobot/tenancy/urls.py +7 -79
- nautobot/tenancy/views.py +51 -80
- nautobot/wireless/api/serializers.py +6 -1
- nautobot/wireless/api/views.py +3 -3
- nautobot/wireless/tests/test_api.py +5 -0
- {nautobot-2.4.2.dist-info → nautobot-2.4.3.dist-info}/METADATA +8 -8
- {nautobot-2.4.2.dist-info → nautobot-2.4.3.dist-info}/RECORD +132 -123
- {nautobot-2.4.2.dist-info → nautobot-2.4.3.dist-info}/LICENSE.txt +0 -0
- {nautobot-2.4.2.dist-info → nautobot-2.4.3.dist-info}/NOTICE +0 -0
- {nautobot-2.4.2.dist-info → nautobot-2.4.3.dist-info}/WHEEL +0 -0
- {nautobot-2.4.2.dist-info → nautobot-2.4.3.dist-info}/entry_points.txt +0 -0
nautobot/tenancy/views.py
CHANGED
|
@@ -2,12 +2,13 @@ from django_tables2 import RequestConfig
|
|
|
2
2
|
|
|
3
3
|
from nautobot.circuits.models import Circuit
|
|
4
4
|
from nautobot.core.ui.choices import SectionChoices
|
|
5
|
-
from nautobot.core.ui.object_detail import ObjectDetailContent, ObjectFieldsPanel, StatsPanel
|
|
6
|
-
from nautobot.core.views import generic
|
|
5
|
+
from nautobot.core.ui.object_detail import ObjectDetailContent, ObjectFieldsPanel, ObjectsTablePanel, StatsPanel
|
|
7
6
|
from nautobot.core.views.paginator import EnhancedPaginator, get_paginate_count
|
|
7
|
+
from nautobot.core.views.viewsets import NautobotUIViewSet
|
|
8
8
|
from nautobot.dcim.models import Controller, ControllerManagedDeviceGroup, Device, Location, Rack, RackReservation
|
|
9
9
|
from nautobot.extras.models import DynamicGroup
|
|
10
10
|
from nautobot.ipam.models import IPAddress, Prefix, VLAN, VRF
|
|
11
|
+
from nautobot.tenancy.api import serializers
|
|
11
12
|
from nautobot.virtualization.models import Cluster, VirtualMachine
|
|
12
13
|
|
|
13
14
|
from . import filters, forms, tables
|
|
@@ -18,52 +19,51 @@ from .models import Tenant, TenantGroup
|
|
|
18
19
|
#
|
|
19
20
|
|
|
20
21
|
|
|
21
|
-
class
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
class TenantGroupView(generic.ObjectView):
|
|
22
|
+
class TenantGroupUIViewSet(NautobotUIViewSet):
|
|
23
|
+
bulk_update_form_class = forms.TenantGroupBulkEditForm
|
|
24
|
+
filterset_class = filters.TenantGroupFilterSet
|
|
25
|
+
filterset_form_class = forms.TenantGroupFilterForm
|
|
26
|
+
form_class = forms.TenantGroupForm
|
|
29
27
|
queryset = TenantGroup.objects.all()
|
|
28
|
+
serializer_class = serializers.TenantGroupSerializer
|
|
29
|
+
table_class = tables.TenantGroupTable
|
|
30
|
+
object_detail_content = ObjectDetailContent(
|
|
31
|
+
panels=(
|
|
32
|
+
ObjectFieldsPanel(
|
|
33
|
+
section=SectionChoices.LEFT_HALF,
|
|
34
|
+
weight=100,
|
|
35
|
+
fields="__all__",
|
|
36
|
+
),
|
|
37
|
+
ObjectsTablePanel(
|
|
38
|
+
weight=100,
|
|
39
|
+
section=SectionChoices.RIGHT_HALF,
|
|
40
|
+
context_table_key="tenant_table",
|
|
41
|
+
exclude_columns=["tenant_group"],
|
|
42
|
+
),
|
|
43
|
+
)
|
|
44
|
+
)
|
|
30
45
|
|
|
31
46
|
def get_extra_context(self, request, instance):
|
|
32
47
|
# Tenants
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
class TenantGroupDeleteView(generic.ObjectDeleteView):
|
|
55
|
-
queryset = TenantGroup.objects.all()
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
class TenantGroupBulkImportView(generic.BulkImportView): # 3.0 TODO: remove, unused
|
|
59
|
-
queryset = TenantGroup.objects.all()
|
|
60
|
-
table = tables.TenantGroupTable
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
class TenantGroupBulkDeleteView(generic.BulkDeleteView):
|
|
64
|
-
queryset = TenantGroup.objects.all()
|
|
65
|
-
table = tables.TenantGroupTable
|
|
66
|
-
filterset = filters.TenantGroupFilterSet
|
|
48
|
+
context = super().get_extra_context(request, instance)
|
|
49
|
+
if self.action == "retrieve":
|
|
50
|
+
# ObjectsTablePanel usually handles the generation of this table, this is an exception here
|
|
51
|
+
# Because we are filtering on its tenant_group as well as the tenant group's descendants
|
|
52
|
+
# i.e. `instance.descendants(include_self=True)`
|
|
53
|
+
tenants = Tenant.objects.restrict(request.user, "view").filter(
|
|
54
|
+
tenant_group__in=instance.descendants(include_self=True)
|
|
55
|
+
)
|
|
56
|
+
|
|
57
|
+
tenant_table = tables.TenantTable(tenants)
|
|
58
|
+
tenant_table.columns.hide("tenant_group")
|
|
59
|
+
|
|
60
|
+
paginate = {
|
|
61
|
+
"paginator_class": EnhancedPaginator,
|
|
62
|
+
"per_page": get_paginate_count(request),
|
|
63
|
+
}
|
|
64
|
+
RequestConfig(request, paginate).configure(tenant_table)
|
|
65
|
+
context["tenant_table"] = tenant_table
|
|
66
|
+
return context
|
|
67
67
|
|
|
68
68
|
|
|
69
69
|
#
|
|
@@ -71,15 +71,14 @@ class TenantGroupBulkDeleteView(generic.BulkDeleteView):
|
|
|
71
71
|
#
|
|
72
72
|
|
|
73
73
|
|
|
74
|
-
class
|
|
74
|
+
class TenantUIViewSet(NautobotUIViewSet):
|
|
75
|
+
bulk_update_form_class = forms.TenantBulkEditForm
|
|
76
|
+
filterset_class = filters.TenantFilterSet
|
|
77
|
+
filterset_form_class = forms.TenantFilterForm
|
|
78
|
+
form_class = forms.TenantForm
|
|
75
79
|
queryset = Tenant.objects.all()
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
table = tables.TenantTable
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
class TenantView(generic.ObjectView):
|
|
82
|
-
queryset = Tenant.objects.select_related("tenant_group")
|
|
80
|
+
serializer_class = serializers.TenantSerializer
|
|
81
|
+
table_class = tables.TenantTable
|
|
83
82
|
object_detail_content = ObjectDetailContent(
|
|
84
83
|
panels=(
|
|
85
84
|
ObjectFieldsPanel(
|
|
@@ -112,31 +111,3 @@ class TenantView(generic.ObjectView):
|
|
|
112
111
|
),
|
|
113
112
|
)
|
|
114
113
|
)
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
class TenantEditView(generic.ObjectEditView):
|
|
118
|
-
queryset = Tenant.objects.all()
|
|
119
|
-
model_form = forms.TenantForm
|
|
120
|
-
template_name = "tenancy/tenant_edit.html"
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
class TenantDeleteView(generic.ObjectDeleteView):
|
|
124
|
-
queryset = Tenant.objects.all()
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
class TenantBulkImportView(generic.BulkImportView): # 3.0 TODO: remove, unused
|
|
128
|
-
queryset = Tenant.objects.all()
|
|
129
|
-
table = tables.TenantTable
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
class TenantBulkEditView(generic.BulkEditView):
|
|
133
|
-
queryset = Tenant.objects.select_related("tenant_group")
|
|
134
|
-
filterset = filters.TenantFilterSet
|
|
135
|
-
table = tables.TenantTable
|
|
136
|
-
form = forms.TenantBulkEditForm
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
class TenantBulkDeleteView(generic.BulkDeleteView):
|
|
140
|
-
queryset = Tenant.objects.select_related("tenant_group")
|
|
141
|
-
filterset = filters.TenantFilterSet
|
|
142
|
-
table = tables.TenantTable
|
|
@@ -15,10 +15,15 @@ class SupportedDataRateSerializer(TaggedModelSerializerMixin, NautobotModelSeria
|
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
class RadioProfileSerializer(TaggedModelSerializerMixin, NautobotModelSerializer):
|
|
18
|
-
channel_width = serializers.ListField(
|
|
18
|
+
channel_width = serializers.ListField(
|
|
19
|
+
child=ChoiceField(choices=RadioProfileChannelWidthChoices),
|
|
20
|
+
allow_empty=True,
|
|
21
|
+
required=False,
|
|
22
|
+
)
|
|
19
23
|
allowed_channel_list = serializers.ListField(
|
|
20
24
|
child=serializers.IntegerField(required=False),
|
|
21
25
|
allow_empty=True,
|
|
26
|
+
required=False,
|
|
22
27
|
)
|
|
23
28
|
|
|
24
29
|
class Meta:
|
nautobot/wireless/api/views.py
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from nautobot.extras.api.views import NautobotModelViewSet
|
|
1
|
+
from nautobot.extras.api.views import ModelViewSet, NautobotModelViewSet
|
|
2
2
|
from nautobot.wireless import filters, models
|
|
3
3
|
|
|
4
4
|
from . import serializers
|
|
@@ -22,13 +22,13 @@ class WirelessNetworkViewSet(NautobotModelViewSet):
|
|
|
22
22
|
filterset_class = filters.WirelessNetworkFilterSet
|
|
23
23
|
|
|
24
24
|
|
|
25
|
-
class ControllerManagedDeviceGroupWirelessNetworkAssignmentViewSet(
|
|
25
|
+
class ControllerManagedDeviceGroupWirelessNetworkAssignmentViewSet(ModelViewSet):
|
|
26
26
|
queryset = models.ControllerManagedDeviceGroupWirelessNetworkAssignment.objects.all()
|
|
27
27
|
serializer_class = serializers.ControllerManagedDeviceGroupWirelessNetworkAssignmentSerializer
|
|
28
28
|
filterset_class = filters.ControllerManagedDeviceGroupWirelessNetworkAssignmentFilterSet
|
|
29
29
|
|
|
30
30
|
|
|
31
|
-
class ControllerManagedDeviceGroupRadioProfileAssignmentViewSet(
|
|
31
|
+
class ControllerManagedDeviceGroupRadioProfileAssignmentViewSet(ModelViewSet):
|
|
32
32
|
queryset = models.ControllerManagedDeviceGroupRadioProfileAssignment.objects.all()
|
|
33
33
|
serializer_class = serializers.ControllerManagedDeviceGroupRadioProfileAssignmentSerializer
|
|
34
34
|
filterset_class = filters.ControllerManagedDeviceGroupRadioProfileAssignmentFilterSet
|
|
@@ -107,6 +107,11 @@ class RadioProfileTest(APIViewTestCases.APIViewTestCase):
|
|
|
107
107
|
"tx_power_min": 20,
|
|
108
108
|
"allowed_channel_list": [],
|
|
109
109
|
},
|
|
110
|
+
{
|
|
111
|
+
"name": "Radio Profile 7",
|
|
112
|
+
"frequency": "6GHz",
|
|
113
|
+
"regulatory_domain": "US",
|
|
114
|
+
},
|
|
110
115
|
]
|
|
111
116
|
cls.bulk_update_data = {
|
|
112
117
|
"frequency": "5GHz",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: nautobot
|
|
3
|
-
Version: 2.4.
|
|
3
|
+
Version: 2.4.3
|
|
4
4
|
Summary: Source of truth and network automation platform.
|
|
5
5
|
Home-page: https://nautobot.com
|
|
6
6
|
License: Apache-2.0
|
|
@@ -22,7 +22,7 @@ Provides-Extra: mysql
|
|
|
22
22
|
Provides-Extra: napalm
|
|
23
23
|
Provides-Extra: remote-storage
|
|
24
24
|
Provides-Extra: sso
|
|
25
|
-
Requires-Dist: Django (>=4.2.
|
|
25
|
+
Requires-Dist: Django (>=4.2.19,<4.3.0)
|
|
26
26
|
Requires-Dist: GitPython (>=3.1.44,<3.2.0)
|
|
27
27
|
Requires-Dist: Jinja2 (>=3.1.5,<3.2.0)
|
|
28
28
|
Requires-Dist: Markdown (>=3.6,<3.7)
|
|
@@ -33,7 +33,7 @@ Requires-Dist: django-ajax-tables (>=1.1.1,<1.2.0)
|
|
|
33
33
|
Requires-Dist: django-auth-ldap (>=5.1.0,<5.2.0) ; extra == "all" or extra == "ldap"
|
|
34
34
|
Requires-Dist: django-celery-beat (>=2.6.0,<2.7.0)
|
|
35
35
|
Requires-Dist: django-celery-results (>=2.5.1,<2.6.0)
|
|
36
|
-
Requires-Dist: django-constance (>=3.
|
|
36
|
+
Requires-Dist: django-constance (>=4.3.0,<4.4.0)
|
|
37
37
|
Requires-Dist: django-cors-headers (>=4.4.0,<4.5.0)
|
|
38
38
|
Requires-Dist: django-db-file-storage (>=0.5.6.1,<0.6.0.0)
|
|
39
39
|
Requires-Dist: django-extensions (>=3.2.3,<3.3.0)
|
|
@@ -44,7 +44,7 @@ Requires-Dist: django-prometheus (>=2.3.1,<2.4.0)
|
|
|
44
44
|
Requires-Dist: django-redis (>=5.4.0,<5.5.0)
|
|
45
45
|
Requires-Dist: django-silk (>=5.3.2,<5.4.0)
|
|
46
46
|
Requires-Dist: django-storages (==1.14.3) ; extra == "all" or extra == "remote-storage"
|
|
47
|
-
Requires-Dist: django-structlog[celery] (>=9.0.
|
|
47
|
+
Requires-Dist: django-structlog[celery] (>=9.0.1,<10.0.0)
|
|
48
48
|
Requires-Dist: django-tables2 (>=2.7.5,<2.8.0)
|
|
49
49
|
Requires-Dist: django-taggit (>=6.1.0,<6.2.0)
|
|
50
50
|
Requires-Dist: django-timezone-field (>=7.0,<7.1)
|
|
@@ -57,7 +57,7 @@ Requires-Dist: graphene-django (>=2.16.0,<2.17.0)
|
|
|
57
57
|
Requires-Dist: graphene-django-optimizer (>=0.8.0,<0.9.0)
|
|
58
58
|
Requires-Dist: jsonschema (>=4.7.0,<5.0.0)
|
|
59
59
|
Requires-Dist: kombu (>=5.4.2,<5.5.0)
|
|
60
|
-
Requires-Dist: kubernetes (>=
|
|
60
|
+
Requires-Dist: kubernetes (>=32.0.0,<33.0.0)
|
|
61
61
|
Requires-Dist: mysqlclient (>=2.2.7,<2.3.0) ; extra == "all" or extra == "mysql"
|
|
62
62
|
Requires-Dist: napalm (>=4.1.0,<6.0.0) ; extra == "all" or extra == "napalm"
|
|
63
63
|
Requires-Dist: netaddr (>=1.3.0,<1.4.0)
|
|
@@ -68,8 +68,8 @@ Requires-Dist: prometheus-client (>=0.20.0,<0.21.0)
|
|
|
68
68
|
Requires-Dist: psycopg2-binary (>=2.9.10,<2.10.0)
|
|
69
69
|
Requires-Dist: python-slugify (>=8.0.3,<8.1.0)
|
|
70
70
|
Requires-Dist: pyuwsgi (>=2.0.26,<2.1.0)
|
|
71
|
-
Requires-Dist: social-auth-app-django (>=5.4.
|
|
72
|
-
Requires-Dist: social-auth-core[saml] (>=4.5.
|
|
71
|
+
Requires-Dist: social-auth-app-django (>=5.4.3,<5.5.0)
|
|
72
|
+
Requires-Dist: social-auth-core[saml] (>=4.5.6,<4.6.0) ; extra == "all" or extra == "sso"
|
|
73
73
|
Requires-Dist: svgwrite (>=1.4.2,<1.5.0)
|
|
74
74
|
Project-URL: Documentation, https://docs.nautobot.com
|
|
75
75
|
Project-URL: Repository, https://github.com/nautobot/nautobot
|
|
@@ -92,7 +92,7 @@ Nautobot is a Network Source of Truth and Network Automation Platform built as a
|
|
|
92
92
|
|
|
93
93
|
The complete documentation for Nautobot can be found at [Read the Docs](https://docs.nautobot.com/).
|
|
94
94
|
|
|
95
|
-
Questions? Comments? Start by perusing our [GitHub discussions](https://github.com/nautobot/nautobot/discussions) for the topic you have in mind, or join the
|
|
95
|
+
Questions? Comments? Start by perusing our [GitHub discussions](https://github.com/nautobot/nautobot/discussions) for the topic you have in mind, or join the `#nautobot` channel on [Network to Code's Slack community](https://slack.networktocode.com/)!
|
|
96
96
|
|
|
97
97
|
## Build Status
|
|
98
98
|
|