Я хочу получить данные с маршрутизатора, изменить их и отправить измененные данные на маршрутизатор.Вот как я это делаю.Я могу получить текущие данные с моего роутера и изменить имя устройства, например, здесь.Но когда я хочу отправить его обратно на маршрутизатор, я получаю много ошибок.
import sys
import io
import xml.etree.ElementTree as ET
from ncclient import manager
with manager.connect(host="192.168.X.X", port=2022, username="admin", password="admin", hostkey_verify=False, allow_agent=False,look_for_keys=False) as m:
first = m.get_config('running')
root = ET.fromstring(str(first))
file = open("testfile.txt","w")
file.write(str(first))
for data in root.findall("{urn:ietf:params:xml:ns:x:base:1.0}data"):
for devices in data.findall("{http://tail-f.com/ns/x}devices"):
for device in devices.findall("{http://tail-f.com/ns/x}device"):
for name in device.findall("{http://tail-f.com/ns/x}name"):
new_name= "NameDevice"
name.text = (str(new_name))
final = data
with manager.connect(host="192.168.x.x", port=2022, username="admin", password="admin", hostkey_verify=False, allow_agent=False,look_for_keys=False) as m:
c = m.get_config(source='running').data_xml
m.edit_config(target='running', config=str(final))
Когда я ставлю эту строку (окончательную), я получаю взамен:
XMLSyntaxError: error parsing attribute name, line 1, column 10
НоЯ пробовал много разных вещей, я даже пытаюсь отправить ему переменную c, которая, как мне кажется, обычно совпадает с моей первой.Но я тоже получил ошибку вроде:
XMLError: Element [{urn:ietf:params:xml:ns:x:base:1.0}data] does not meet requirement
Я думаю, я не понимаю, как это работает, и я хотел бы, чтобы кто-то объяснил мне это.Спасибо.