diff options
Diffstat (limited to 'vyroute/Router.py')
-rw-r--r-- | vyroute/Router.py | 185 |
1 files changed, 98 insertions, 87 deletions
diff --git a/vyroute/Router.py b/vyroute/Router.py index ef55b33..e463f90 100644 --- a/vyroute/Router.py +++ b/vyroute/Router.py @@ -44,6 +44,9 @@ class Router(object): pass # Basic VyOS configuration func + def status(self): + pass + def configure(self): pass @@ -78,7 +81,14 @@ class BasicRouter(Router): self.__passwd = ''.join(self.__cred[self.__divi+1:]) self.__account = Account(self.__username, self.__passwd) self.__conn = SSH2() - self.status = {"object": None, "commit": None, "save": None, "configure": None} + self.__status = {"object": None, "commit": None, "save": None, "configure": None} + + def status(self): + """Check the router inner status + + :return: a python dictionary + """ + return self.__status def login(self): """Login the router @@ -88,7 +98,7 @@ class BasicRouter(Router): try: if self.__conn.connect(self.__address) is True: self.__conn.login(self.__account) - self.status["object"] = "login" + self.__status["object"] = "login" return {"Result": "Login successfully."} else: return {"Error": "Connect Failed."} @@ -102,7 +112,8 @@ class BasicRouter(Router): """ try: self.__conn.close(force=True) - self.status["object"] = "logout" + self.__status["object"] = "logout" + self.__status["configure"] = None return {"Result": "Logout successfully."} except Exception, e: return {"Error": e} @@ -113,10 +124,10 @@ class BasicRouter(Router): :return: a python dictionary """ try: - if self.status["object"] == "login": - if self.status["configure"] is None: + if self.__status["object"] == "login": + if self.__status["configure"] is not "Yes": self.__conn.execute("configure") - self.status["configure"] = "Yes" + self.__status["configure"] = "Yes" return {"Result": "Active configure mode successfully."} else: return {"Error": "In configure mode now!"} @@ -131,13 +142,13 @@ class BasicRouter(Router): :return: a python dictionary """ try: - if self.status["object"] == "login": - if self.status["configure"] == "Yes": - if self.status["commit"] is None: + if self.__status["object"] == "login": + if self.__status["configure"] == "Yes": + if self.__status["commit"] is None: return {"Error": "You don't need to commit."} - if self.status["commit"] == "No": + if self.__status["commit"] == "No": self.__conn.execute("commit") - self.status["commit"] = "Yes" + self.__status["commit"] = "Yes" return {"Result": "Commit successfully."} else: return {"Error": "You have committed!"} @@ -154,14 +165,14 @@ class BasicRouter(Router): :return: a python dictionary """ try: - if self.status["object"] == "login": - if self.status["configure"] == "Yes": - if self.status["commit"] == "Yes": - if self.status["save"] is None: + if self.__status["object"] == "login": + if self.__status["configure"] == "Yes": + if self.__status["commit"] == "Yes": + if self.__status["save"] is None: return {"Error": "You don't need to save."} - if self.status["save"] == "No": + if self.__status["save"] == "No": self.__conn.execute("save") - self.status["save"] = "Yes" + self.__status["save"] = "Yes" return {"Result": "Save successfully."} else: return {"Error": "You have saved!"} @@ -181,21 +192,21 @@ class BasicRouter(Router): :return: a python dictionary """ try: - if self.status["object"] == "login": - if self.status["configure"] == "Yes": + if self.__status["object"] == "login": + if self.__status["configure"] == "Yes": if force is True: self.__conn.execute("exit") - self.status["configure"] = None - self.status["save"] = None - self.status["commit"] = None + self.__status["configure"] = "No" + self.__status["save"] = None + self.__status["commit"] = None return {"Result": "Exit configure mode successfully."} if force is False: - if self.status["commit"] == "Yes": - if self.status["save"] == "Yes": + if self.__status["commit"] == "Yes": + if self.__status["save"] == "Yes": self.__conn.execute("exit") - self.status["configure"] = None - self.status["save"] = None - self.status["commit"] = None + self.__status["configure"] = "No" + self.__status["save"] = None + self.__status["commit"] = None return {"Result": "Exit configure mode successfully."} else: return {"Error": "You should save first."} @@ -219,18 +230,18 @@ class BasicRouter(Router): :return: a python dictionary """ try: - if self.status["object"] == "login": - if self.status["configure"] == "Yes": + if self.__status["object"] == "login": + if self.__status["configure"] == "Yes": res = Modifylo.modifylo(self.__conn, data) if "Result" in res: - if self.status["commit"] == "No": + if self.__status["commit"] == "No": pass else: - self.status["commit"] = "No" - if self.status["save"] == "No": + self.__status["commit"] = "No" + if self.__status["save"] == "No": pass else: - self.status["save"] = "No" + self.__status["save"] = "No" return res else: return res @@ -252,18 +263,18 @@ class BasicRouter(Router): :return: a python dictionary """ try: - if self.status["object"] == "login": - if self.status["configure"] == "Yes": + if self.__status["object"] == "login": + if self.__status["configure"] == "Yes": res = DeleteRoute.deleteroute(self.__conn, data) if "Result" in res: - if self.status["commit"] == "No": + if self.__status["commit"] == "No": pass else: - self.status["commit"] = "No" - if self.status["save"] == "No": + self.__status["commit"] = "No" + if self.__status["save"] == "No": pass else: - self.status["save"] = "No" + self.__status["save"] = "No" return res else: return res @@ -285,18 +296,18 @@ class BasicRouter(Router): :return: a python dictionary """ try: - if self.status["object"] == "login": - if self.status["configure"] == "Yes": + if self.__status["object"] == "login": + if self.__status["configure"] == "Yes": res = StaticRoute.staticroute(self.__conn, data) if "Result" in res: - if self.status["commit"] == "No": + if self.__status["commit"] == "No": pass else: - self.status["commit"] = "No" - if self.status["save"] == "No": + self.__status["commit"] = "No" + if self.__status["save"] == "No": pass else: - self.status["save"] = "No" + self.__status["save"] = "No" return res else: return res @@ -318,18 +329,18 @@ class BasicRouter(Router): :return: a python dictionary """ try: - if self.status["object"] == "login": - if self.status["configure"] == "Yes": + if self.__status["object"] == "login": + if self.__status["configure"] == "Yes": res = RIPRoute.riproute(self.__conn, data) if "Result" in res: - if self.status["commit"] == "No": + if self.__status["commit"] == "No": pass else: - self.status["commit"] = "No" - if self.status["save"] == "No": + self.__status["commit"] = "No" + if self.__status["save"] == "No": pass else: - self.status["save"] = "No" + self.__status["save"] = "No" return res else: return res @@ -351,18 +362,18 @@ class BasicRouter(Router): :return: a python dictionary """ try: - if self.status["object"] == "login": - if self.status["configure"] == "Yes": + if self.__status["object"] == "login": + if self.__status["configure"] == "Yes": res = OSPFRoute.ospfarea(self.__conn, data) if "Result" in res: - if self.status["commit"] == "No": + if self.__status["commit"] == "No": pass else: - self.status["commit"] = "No" - if self.status["save"] == "No": + self.__status["commit"] = "No" + if self.__status["save"] == "No": pass else: - self.status["save"] = "No" + self.__status["save"] = "No" return res else: return res @@ -384,18 +395,18 @@ class BasicRouter(Router): :return: a python dictionary """ try: - if self.status["object"] == "login": - if self.status["configure"] == "Yes": + if self.__status["object"] == "login": + if self.__status["configure"] == "Yes": res = OSPFRoute.router_id(self.__conn, data) if "Result" in res: - if self.status["commit"] == "No": + if self.__status["commit"] == "No": pass else: - self.status["commit"] = "No" - if self.status["save"] == "No": + self.__status["commit"] = "No" + if self.__status["save"] == "No": pass else: - self.status["save"] = "No" + self.__status["save"] = "No" return res else: return res @@ -417,18 +428,18 @@ class BasicRouter(Router): :return: a python dictionary """ try: - if self.status["object"] == "login": - if self.status["configure"] == "Yes": + if self.__status["object"] == "login": + if self.__status["configure"] == "Yes": res = OSPFRoute.ospf_redistribute(self.__conn, data) if "Result" in res: - if self.status["commit"] == "No": + if self.__status["commit"] == "No": pass else: - self.status["commit"] = "No" - if self.status["save"] == "No": + self.__status["commit"] = "No" + if self.__status["save"] == "No": pass else: - self.status["save"] = "No" + self.__status["save"] = "No" return res else: return res @@ -445,18 +456,18 @@ class BasicRouter(Router): :return: a python dictionary """ try: - if self.status["object"] == "login": - if self.status["configure"] == "Yes": + if self.__status["object"] == "login": + if self.__status["configure"] == "Yes": res = OSPFRoute.ospf_adjacency(self.__conn) if "Result" in res: - if self.status["commit"] == "No": + if self.__status["commit"] == "No": pass else: - self.status["commit"] = "No" - if self.status["save"] == "No": + self.__status["commit"] = "No" + if self.__status["save"] == "No": pass else: - self.status["save"] = "No" + self.__status["save"] = "No" return res else: return res @@ -478,18 +489,18 @@ class BasicRouter(Router): :return: a python dictionary """ try: - if self.status["object"] == "login": - if self.status["configure"] == "Yes": + if self.__status["object"] == "login": + if self.__status["configure"] == "Yes": res = OSPFRoute.ospf_default_route(self.__conn, data) if "Result" in res: - if self.status["commit"] == "No": + if self.__status["commit"] == "No": pass else: - self.status["commit"] = "No" - if self.status["save"] == "No": + self.__status["commit"] = "No" + if self.__status["save"] == "No": pass else: - self.status["save"] = "No" + self.__status["save"] = "No" return res else: return res @@ -511,18 +522,18 @@ class BasicRouter(Router): :return: a python dictionary """ try: - if self.status["object"] == "login": - if self.status["configure"] == "Yes": + if self.__status["object"] == "login": + if self.__status["configure"] == "Yes": res = OSPFRoute.ospf_route_map(self.__conn, data) if "Result" in res: - if self.status["commit"] == "No": + if self.__status["commit"] == "No": pass else: - self.status["commit"] = "No" - if self.status["save"] == "No": + self.__status["commit"] = "No" + if self.__status["save"] == "No": pass else: - self.status["save"] = "No" + self.__status["save"] = "No" return res else: return res |