Upload files to "dnac_integration"
This commit is contained in:
parent
95bed3a0c0
commit
0b1fe631fc
|
@ -0,0 +1,19 @@
|
||||||
|
from extras.plugins import PluginMenuItem, PluginMenuButton
|
||||||
|
from utilities.choices import ButtonColorChoices
|
||||||
|
|
||||||
|
dnacserver_buttons = [
|
||||||
|
PluginMenuButton(
|
||||||
|
link='plugins:dnac_integration:dnac_server_add',
|
||||||
|
title='Add',
|
||||||
|
icon_class='mdi mdi-plus-thick',
|
||||||
|
color=ButtonColorChoices.GREEN
|
||||||
|
)
|
||||||
|
]
|
||||||
|
|
||||||
|
menu_items = (
|
||||||
|
PluginMenuItem(
|
||||||
|
link='plugins:dnac_integration:dnac_server_list',
|
||||||
|
link_text='DNAC Servers',
|
||||||
|
buttons=dnacserver_buttons
|
||||||
|
),
|
||||||
|
)
|
|
@ -0,0 +1,11 @@
|
||||||
|
from netbox.search import SearchIndex, register_search
|
||||||
|
from . import models
|
||||||
|
|
||||||
|
@register_search
|
||||||
|
class dnacServerIndex(SearchIndex):
|
||||||
|
model = models.dnacServer
|
||||||
|
fields = (
|
||||||
|
('hostname', 100),
|
||||||
|
('username', 500),
|
||||||
|
('version', 1000),
|
||||||
|
)
|
|
@ -0,0 +1,29 @@
|
||||||
|
import django_tables2 as tables
|
||||||
|
from django.utils.safestring import mark_safe
|
||||||
|
from netbox.tables import NetBoxTable
|
||||||
|
from .models import dnacServer
|
||||||
|
|
||||||
|
# Hide password from being viewed
|
||||||
|
# TODO: add custom view to base64, aes256 encrypt passwords
|
||||||
|
class MaskedPassword(tables.Column):
|
||||||
|
def render(self, value):
|
||||||
|
value = "*****"
|
||||||
|
return mark_safe(value)
|
||||||
|
|
||||||
|
class dnacServerTable(NetBoxTable):
|
||||||
|
# Define the type of fields to display for a table
|
||||||
|
hostname = tables.Column(
|
||||||
|
linkify=True
|
||||||
|
)
|
||||||
|
username = tables.Column()
|
||||||
|
password = MaskedPassword()
|
||||||
|
version = tables.Column()
|
||||||
|
verify = tables.BooleanColumn()
|
||||||
|
status = tables.BooleanColumn()
|
||||||
|
default_filter_action = tables.BooleanColumn()
|
||||||
|
|
||||||
|
# Setup table ordering
|
||||||
|
class Meta(NetBoxTable.Meta):
|
||||||
|
model = dnacServer
|
||||||
|
fields = ('pk', 'id', 'hostname', 'username', 'password', 'version', 'verify', 'status', 'default_filter_action', 'actions')
|
||||||
|
default_columns = ('hostname', 'version', 'verify', 'status')
|
|
@ -0,0 +1,12 @@
|
||||||
|
from django.urls import path
|
||||||
|
from netbox.views.generic import ObjectChangeLogView
|
||||||
|
from . import models, views
|
||||||
|
|
||||||
|
urlpatterns = [
|
||||||
|
path('servers/', views.dnacServerListView.as_view(), name='dnac_server_list'),
|
||||||
|
path('servers/add/', views.dnacServerEditView.as_view(), name='dnac_server_add'),
|
||||||
|
path('servers/<int:pk>/', views.dnacServerView.as_view(), name='dnac_server'),
|
||||||
|
path('servers/<int:pk>/edit/', views.dnacServerEditView.as_view(), name='dnac_server_edit'),
|
||||||
|
path('servers/<int:pk>/delete/', views.dnacServerDeleteView.as_view(), name='dnac_server_delete'),
|
||||||
|
path('servers/<int:pk>/changelog/', ObjectChangeLogView.as_view(), name='dnac_server_changelog', kwargs={'model': models.dnacServer}),
|
||||||
|
]
|
|
@ -0,0 +1,17 @@
|
||||||
|
from netbox.views import generic
|
||||||
|
from django.db.models import Count
|
||||||
|
from . import forms, models, tables, filtersets
|
||||||
|
|
||||||
|
class dnacServerView(generic.ObjectView):
|
||||||
|
queryset = models.dnacServer.objects.all()
|
||||||
|
|
||||||
|
class dnacServerListView(generic.ObjectListView):
|
||||||
|
queryset = models.dnacServer.objects.all()
|
||||||
|
table = tables.dnacServerTable
|
||||||
|
|
||||||
|
class dnacServerEditView(generic.ObjectEditView):
|
||||||
|
queryset = models.dnacServer.objects.all()
|
||||||
|
form = forms.dnacServerForm
|
||||||
|
|
||||||
|
class dnacServerDeleteView(generic.ObjectDeleteView):
|
||||||
|
queryset = models.dnacServer.objects.all()
|
Loading…
Reference in New Issue