diff options
Diffstat (limited to 'vyroute/basic_function/DeleteRoute.py')
-rw-r--r-- | vyroute/basic_function/DeleteRoute.py | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/vyroute/basic_function/DeleteRoute.py b/vyroute/basic_function/DeleteRoute.py new file mode 100644 index 0000000..87af263 --- /dev/null +++ b/vyroute/basic_function/DeleteRoute.py @@ -0,0 +1,57 @@ +# author=hochikong +from Exscript.protocols import SSH2 +from Exscript import Account + + +def deleteroute(data): + """This method provide a router configuration delete function + + Parameter data example: + {'router':'vyos@172.16.77.188','passwd':'vyos', + 'config':'rip' + } + + WARNING! + When you use this function,please don't forget this func will delete all same type + router configuration,when your 'config' in data is 'rip',it will delete all rip router setting. + If you do not want your setting disappear,you can delete router configuration manually or rewrite + this func. + + :param data: a python dictionary + :return: a python dictionary + """ + delete_basic_configuration = "delete protocols %s" + + try: + stringlist = list(data['router']) + divi = stringlist.index('@') + user = ''.join(stringlist[:divi]) + passwd = data['passwd'] + address = ''.join(stringlist[divi + 1:]) + account = Account(user, passwd) + conn = SSH2() + conn.connect(address) + conn.login(account) + + # configure mode + conn.execute("configure") + + # delete specific configuration + conn.execute(delete_basic_configuration % data['config']) + + # commit configuration + conn.execute("commit") + + # save configuration + conn.execute("save") + + # exit configure mode + conn.execute("exit") + + # close connection + conn.close(force=True) + + return {"Result": "Delete successfully"} + + except Exception, e: + return {"Error": e}
\ No newline at end of file |