Как указывает netmiko, должен быть тип устройства, IP-адрес, имя пользователя и пароль, поэтому я создал модель с именем устройства, и я пытаюсь сделать следующее: когда я нажимаю на каждое устройство, созданное в таблице, оно должно выполнить netmiko с четыре учетные данные, такие как тип устройства, IP-адрес, имя пользователя и пароль для указанного устройства c, выбранного или нажатого, и это должно позволить мне ввести команду, которая может быть выполнена нажатием кнопки
. пожалуйста, помогите мне с кодом
Model.py
class Device(models.Model):
CISCO1 = 1
CISCO2 = 2
CISCO3 = 3
CISCO4 = 4
DEVICE_TYPES = (
(CISCO1, 'cisco_ios'),
(CISCO2, 'cisco_nxos_ssh'),
(CISCO3, 'cisco_s300'),
(CISCO4, 'cisco_tp_tcce'),
)
device_name = models.CharField(max_length=50)
publication_date = models.DateField(null=True)
IP_address = models.CharField(max_length=50)
username = models.CharField(max_length=30)
password = models.CharField(max_length=30)
device_type = models.PositiveSmallIntegerField(choices=DEVICE_TYPES)
timestamp = models.DateField(auto_now_add=True, auto_now=False)
def __str__(self):
return self.device_name
View.py
This is the connection code but I am confused how to get data from the Model (Device) and pass it here or when I select a device from the view it should get the credential to this method
def connection_manage(request):
if request.method == "POST":
form = CommandForm(request.POST)
if form.is_valid():
from netmiko import ConnectHandler
device = {}
device['device_type'] = 'cisco_ios'
device['ip'] = 'DESKTOP-CT4RSIT'
device['username'] = ''
device['password'] = ''
cmd = request.POST.get('command', '')
conn = ConnectHandler(**device)
output = conn.send_command(cmd)
return render(request, 'connect.html', {'form': form, 'output': output})
else:
form = CommandForm()
return render(request, 'connect.html', {'form': form})
form.py
class CommandForm(BSModalForm):
command = forms.CharField(label='Command to execute')
class Meta:
model = Device
exclude = ['timestamp', 'publication_date', 'device_type']
<code>connect.html
{% load static %}
<!doctype html>
<head>
<title>Mannai Co.</title>
<link href="{% static 'assets/css/bootstrap.min.css' %}" rel="stylesheet">
<link rel="stylesheet" href="{% static 'assets/css/login.css' %}">
</head>
<body>
<div class="wrapper fadeInDown">
<div id="formContent">
<div class="fadeIn first">
<br>
<img src="{% static 'assets/img/manni-png.png' %}" id="icon" alt="User Icon">
</div>
<h3 class="fadeIn second">Netminko APP</h3>
<p>Run command:</p>
<form method="POST">
{% csrf_token %}
{{form}}
<br>
<input type="submit" value="Run command!" class="fadeIn fourth" />
</form>
{% if request.POST %}
<p>Command output:</p>
<pre>{{ output }}
{% endif%}