def ont_getvalue_by_name(self,name,cmd,climode="sh"): """Returns the value of the specific parameter name. cli is default as sh. if need to use bcm shell, please set climode as "bcm" for example, need to get version by cmd "ver"": ~ # ver Calix ONT 813G-2 GigEth ports: 4 POTS ports: 2 Slic:LE9540 RF ports: 0 Wireless-1: MFG:BCM, FREQ:2.4GHz, Firmware:V1.2 Wireless-2: MFG:QNT, FREQ:5.0GHz, Firmware:v37.3.0.50(acR3.2.1) MFG S/N: 261508000141 FSAN S/N: CXNK0028B4AA SW Release Ver: 11.1.110.5 Kernel Version: Linux 3.4.11-rt19 Feb 24 2016 mips GNU/Linux Running : 11.1.110.5 ~ # so the name is "Running", cmd is "ver", climode is default"sh" """ self.set_800ont_climode(climode) r = self.ont_send(cmd) self.logger.info("output:%s" %r) r = ResponseMap(self.ont_send(cmd)) self.logger.info("output:%s" %r) #patten = r"(\s*%s[=:.\s]+)(\S+)" %name patten = r"(\s*%s[=:.\s]+)(\S+)" %name self.logger.info("patten:%s" %patten) m = r.table_match(patten) self.logger.info("m:%s" %m) if m: return m[0][1] else: return False
def e7_get_ont_rgmode(self, ontid): res = ResponseMap(self.send("show ont-port %s/G1 detail" % (ontid))) patten = r"(.+nagement\s+Mode\s+:\s+)(\S+)" m = res.table_match(patten) if m: return m[0][1] else: return False
def ont_get_clei(self): self.set_800ont_climode("sh") r = ResponseMap(self.ont_send("dtshell_900 bdinfo")) patten = r"(.+CLEI:\s+)(\S+)" m = r.table_match(patten) if m: return m[0][1] else: return False
def ont_get_ipaddress(self, interface): self.set_800ont_climode("sh") r = ResponseMap(self.ont_send("ifconfig %s" % interface)) patten = r"(.+net\s+addr:\s*)(\d+\.\d+\.\d+\.\d+)(.*)" m = r.table_match(patten) if m: return m[0][1] else: return False
def ont_get_ver(self): self.set_800ont_climode("sh") r = ResponseMap(self.ont_send("ver")) patten = r"(.+Ver:\s+)(\d+\.\d+\.\d+\.\d+)" m = r.table_match(patten) return m[0][1] if m: return m[0][1] else: return False
def e7_get_ont_rg_ip(self, ontid): """ get ont rg ip """ res = ResponseMap(self.send("show ont %s" % ontid)) patten = r"(.+Location:\s+)(\d+\S\d+)" m = res.table_match(patten) if m: return m[0][1] else: return False
def ont_check_by_tablematch(self,reg,cmd,climode="sh"): """if match, return True, else return False. """ self.set_800ont_climode(climode) r = ResponseMap(self.ont_send(cmd)) patten = r"(%s)" %reg m = r.table_match(patten) if m: return True else: return False
def e7_get_ontcfg_version(self, ontid): version = False for i in range(0, 10): res = ResponseMap(self.send("show ont %s detail" % (ontid))) patten = r"(.+File\s+Vers\s+:\s+)(\S+)" m = res.table_match(patten) #patten = r"(.+File\s+Vers\s+:\s+)(\S+)" if m: version = m[0][1] break else: time.sleep(20) print("can't get ont cfg version, try again") return version
def e7_get_ont_gponport(self, ontid): """ get ont status on e7. ontid is the ont provisioned ID on E7. if the ont is """ res = ResponseMap(self.send("show ont %s" % ontid)) patten = r"(.+Location:\s+)(\d+\S\d+)" m = res.table_match(patten) if m: return m[0][1] else: return False
def ont_get_br0_member(self): self.set_800ont_climode("sh") r = ResponseMap(self.ont_send("brctl show")) patten = r"(.*\s+eth.+)" m = r.table_match(patten) list = [] for item in m: re_result = re.match(r'(br0\s+.+\s+.+\s+)(eth.+)',item[0]) if re_result: list.append(re_result.group(2)) else: re_result = re.match(r'(\s+)(eth.+)',item[0]) if re_result: list.append(re_result.group(2)) return list