diff options
Diffstat (limited to 'vyroute/basic_function/OSPFRoute.py')
-rw-r--r-- | vyroute/basic_function/OSPFRoute.py | 126 |
1 files changed, 126 insertions, 0 deletions
diff --git a/vyroute/basic_function/OSPFRoute.py b/vyroute/basic_function/OSPFRoute.py new file mode 100644 index 0000000..b89edd6 --- /dev/null +++ b/vyroute/basic_function/OSPFRoute.py @@ -0,0 +1,126 @@ +# author=hochikong +def ospfarea(obj, data): + """This method provide a OSPF area configuration function + + Parameter data example: + {'config':[{'area':'0','network':'192.168.10.0/24'}, + {'area':'0','network':'10.20.10.0/24'}, + ], + } + + :param obj: a connection object + :param data: a python dictionary + :return: a python dictionary + """ + ospf_basic_configuration = "set protocols ospf area %s network %s" + + try: + # Configure ospf area + for i in data["config"]: + obj.execute(ospf_basic_configuration % (i['area'], i['network'])) + return {"Result": "Configured successfully"} + except Exception, e: + return {"Error": e} + + +def router_id(obj, data): + """This method provide a router id configuration function + + Parameter data example: + {'config':{'id':'1.1.1.1'}, + } + + :param obj: a connection object + :param data: a python dictionary + :return: a python dictionary + """ + router_id_configuration = "set protocols ospf parameters router-id %s" + try: + # Configure router id + obj.execute(router_id_configuration % data['config']['id']) + return {"Result": "Configured successfully"} + except Exception, e: + return {"Error": e} + + +def ospf_redistribute(obj, data): + """This method provide a router redistribute function + + Parameter data example: + {'config':{'type':'2'}, + } + + :param obj: a connection object + :param data: a python dictionary + :return: a python dictionary + """ + redistribute_configuration = {"0": "set protocols ospf redistribute connected metric-type %s", + "1": "set protocols ospf redistribute connected route-map CONNECT", + } + try: + obj.execute(redistribute_configuration['0'] % data['config']['type']) + obj.execute(redistribute_configuration['1']) + return {"Result": "Configured successfully"} + except Exception, e: + return {"Error": e} + + +def ospf_adjacency(obj): + """This method execute : set protocols ospf log-adjacency-changes + + :param obj: a connection object + :return: a python dictionary + """ + log_adjacency_changes_configuration = "set protocols ospf log-adjacency-changes" + try: + obj.execute(log_adjacency_changes_configuration) + return {"Result": "Configured successfully"} + except Exception, e: + return {"Error": e} + + +def ospf_default_route(obj, data): + """This method execute : set protocols ospf default-information originate always + and other commands + + Parameter data example: + {'config':{'metric':'10','metric-type':'2'}, + } + + :param obj: a connection object + :param data: a python dictionary + :return: a python dictionary + """ + default_route_configuration = {"0": "set protocols ospf default-information originate always", + "1": "set protocols ospf default-information originate metric %s", + "2": "set protocols ospf default-information originate metric-type %", + } + try: + obj.execute(default_route_configuration['0']) + obj.execute(default_route_configuration['1'] % data['config']['metric']) + obj.execute(default_route_configuration['2'] % data['config']['metric-type']) + return {"Result": "Configured successfully"} + except Exception, e: + return {"Error": e} + + +def ospf_route_map(obj, data): + """This method used for VyOS route-map setting when you configure a OSPF router + + Parameter data example: + {'config':{'rule':'10','interface':'lo'}, + } + + :param obj: a connection object + :param data: a python dictionary + :return: a python dictionary + """ + route_map_configuration = {"0": "set policy route-map CONNECT rule %s action permit", + "1": "set policy route-map CONNECT rule %s match interface %s", + } + try: + obj.execute(route_map_configuration['0'] % data['config']['rule']) + obj.execute(route_map_configuration['1'] % (data['config']['rule'], data['config']['interface'])) + return {"Result": "Configured successfully"} + except Exception, e: + return {"Error": e} |