Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def configure(request):
- if request.method == "POST":
- select_device_id = request.POST.getlist('device')
- cisco_command = request.POST['cisco_command'].splitlines()
- other_command = request.POST['other_command'].splitlines()
- for x in select_device_id:
- try:
- dev = get_object_or_404(Device, pk=x)
- ssh_client = paramiko.SSHClient()
- ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
- ssh_client.connect(hostname=dev.ip_address, username=dev.username, password=dev.password)
- if dev.vendor.lower() == 'cisco':
- conn = ssh_client.invoke_shell()
- conn.send("conf t\n")
- for cmd in cisco_command:
- conn.send(cmd + "\n")
- time.sleep(1)
- else:
- for cmd in other_command:
- ssh_client.exec_command(cmd)
- log = Log(target=dev.ip_address, action="configure", status="Success", time=datetime.now(), messages="No Error")
- log.save()
- except Exception as e:
- # pesan = re.findall("respond\Z", e)
- # if (pesan):
- # log = Log(target=dev.ip_address, action="configure", status="Success", time=datetime.now(), messages="unrecheable")
- # else:
- # log = Log(target=dev.ip_address, action="configure", status="Success", time=datetime.now(), messages=e)
- log = Log(target=dev.ip_address, action="configure", status="Error", time=datetime.now(), messages=e)
- log.save()
- return redirect('home')
- else:
- devices = Device.objects.all()
- context = {
- 'devices' : devices,
- 'mode' : 'Configure'
- }
- return render(request, 'config.html', context)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement