diff options
Diffstat (limited to 'vyroute/basic_function/StaticRoute.py')
-rw-r--r-- | vyroute/basic_function/StaticRoute.py | 47 |
1 files changed, 7 insertions, 40 deletions
diff --git a/vyroute/basic_function/StaticRoute.py b/vyroute/basic_function/StaticRoute.py index f9fa233..f0d6afc 100644 --- a/vyroute/basic_function/StaticRoute.py +++ b/vyroute/basic_function/StaticRoute.py @@ -1,57 +1,24 @@ # author=hochikong -from Exscript.protocols import SSH2 -from Exscript import Account - - -def staticroute(data): +def staticroute(obj, data): """This method provide a basic static router configuration function Parameter data example: - {'router':'vyos@172.16.77.188','passwd':'vyos', - 'config':[{'target':'10.20.10.0/24','next-hop':'10.20.10.1','distance':'1'}, - {'target':"192.168.20.0/24','next-hop':'192.168.20.1','distance':'1'} - ] + {'config':[{'target':'10.20.10.0/24','next-hop':'10.20.10.1','distance':'1'}, + {'target':"192.168.20.0/24','next-hop':'192.168.20.1','distance':'1'}, + ], } + :param obj: a connection object :param data: a python dictionary :return:a python dictionary """ static_basic_configuration = "set protocols static route %s next-hop %s distance %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") - - # configure static router + # Configure static router for i in data['config']: - conn.execute(static_basic_configuration % (i['target'], - i['next-hop'], - i['distance'])) - - # commit configuration - conn.execute("commit") - - # save configuration - conn.execute("save") - - # exit configure mode - conn.execute("exit") - - # close connection - conn.close(force=True) - + obj.execute(static_basic_configuration % (i['target'], i['next-hop'], i['distance'])) return {"Result": "Configured successfully"} - except Exception, e: return {'Error': e} |