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