Lines Matching refs:self

66     def __init__(self, ip, port, username, password):  argument
67 self.ip = ip
68 self.port = int(port)
69 self.username = username
70 self.password = password
71 self.__handle = None
73 self.__connect()
75 def __connect(self): argument
78 self.close()
80 self.__handle = paramiko.SSHClient()
81 self.__handle.set_missing_host_key_policy(paramiko.AutoAddPolicy())
83self.__handle.connect(self.ip, port=self.port, username=self.username, password=self.password)
85 if not self.password:
86 self.__handle.get_transport().auth_none(self.username)
91 self.__handle.get_transport().set_keepalive(self.KEEPALIVE_INTERVAL)
93 def close(self): argument
94 if self.__handle is not None:
95 self.__handle.close()
96 self.__handle = None
98 def bash(self, cmd, timeout): argument
103 stdin, stdout, stderr = self.__handle.exec_command(cmd, timeout=timeout)
113 self.__connect()
117 def log(self, fmt, *args): argument
120 print('%s - %s - %s' % (self.port, time.strftime('%b %d %H:%M:%S'), msg))
127 def __init__(self, port, baudrate): argument
128 self.port = port
129 self.__handle = serial.Serial(port, baudrate, timeout=0)
131 self.__lines = ['']
132 assert len(self.__lines) >= 1, self.__lines
134 self.log("inputing username ...")
135 self.__bashWriteLine('pi')
143 line = self.__bashReadLine(timeout=1)
151 self.log("prompt found, login success!")
156 self.log("inputing password ...")
157 self.__bashWriteLine('raspberry')
159 self.log("inputing username ...")
160 self.__bashWriteLine('pi')
162 self.log("inputing username ...")
163 self.__bashWriteLine('pi')
168 self.bash('stty cols 256')
170 def log(self, fmt, *args): argument
173 print('%s - %s - %s' % (self.port, time.strftime('%b %d %H:%M:%S'), msg))
177 def close(self): argument
178 self.__handle.close()
180 def bash(self, cmd, timeout=10): argument
184 self.__bashClearLines()
185 self.__bashWriteLine(cmd)
186 self.__bashExpect(cmd, timeout=timeout, endswith=True)
192 line = self.__bashReadLine()
203 self.__bashWrite('\x03')
204 raise Exception('%s: failed to find end of response' % self.port)
206 def __bashExpect(self, expected, timeout=20, endswith=False): argument
207 self.log('Expecting [%r]' % (expected))
211 line = self.__bashReadLine()
216 print('[%s] Got line [%r]' % (self.port, line))
224 print('[%s] Expected [%r]' % (self.port, expected))
229 self.__bashWrite('\x03')
232 def __bashRead(self, timeout=1): argument
236 piece = self.__handle.read()
245 self.log('>>> %r', data)
249 def __bashReadLine(self, timeout=1): argument
250 line = self.__bashGetNextLine()
254 assert len(self.__lines) == 1, self.__lines
255 tail = self.__lines.pop()
258 tail += self.__bashRead(timeout=timeout)
263 self.__lines += [l.rstrip('\r') for l in LINESEPX.split(tail)]
264 assert len(self.__lines) >= 1, self.__lines
266 return self.__bashGetNextLine()
268 def __bashGetNextLine(self): argument
269 assert len(self.__lines) >= 1, self.__lines
270 while len(self.__lines) > 1:
271 line = self.__lines.pop(0)
272 assert len(self.__lines) >= 1, self.__lines
278 assert len(self.__lines) >= 1, self.__lines
281 def __bashWrite(self, data): argument
282 self.__handle.write(data)
283 self.log("<<< %r", data)
285 def __bashClearLines(self): argument
286 assert len(self.__lines) >= 1, self.__lines
287 while self.__bashReadLine(timeout=0) is not None:
289 assert len(self.__lines) >= 1, self.__lines
291 def __bashWriteLine(self, line): argument
292 self.__bashWrite(line + '\n')
301 def _getHandle(self): argument
302 if self.connectType == 'ip':
303 … return SSHHandle(self.telnetIp, self.telnetPort, self.telnetUsername, self.telnetPassword)
305 return SerialHandle(self.port, 115200)
307 def _connect(self): argument
308 self.log("logging in to Raspberry Pi ...")
309 self.__cli_output_lines = []
310 self.__syslog_skip_lines = None
311 self.__syslog_last_read_ts = 0
313 self.__handle = self._getHandle()
314 if self.connectType == 'ip':
315 self.__is_root = self.telnetUsername == 'root'
317 def _disconnect(self): argument
318 if self.__handle:
319 self.__handle.close()
320 self.__handle = None
322 def _deviceBeforeReset(self): argument
323 if self.isPowerDown:
324 self.log('Powering up the device')
325 self.powerUp()
326 if self.IsHost:
327 self.__stopRadvdService()
328 self.bash('ip -6 addr del 910b::1 dev %s || true' % self.backboneNetif)
329 self.bash('ip -6 addr del fd00:7d03:7d03:7d03::1 dev %s || true' % self.backboneNetif)
331 self.stopListeningToAddrAll()
333 def _deviceAfterReset(self): argument
334 self.__dumpSyslog()
335 self.__truncateSyslog()
336 self.__enableAcceptRa()
337 if not self.IsHost:
338 self._restartAgentService()
341 def __enableAcceptRa(self): argument
342 self.bash('sysctl net.ipv6.conf.%s.accept_ra=2' % self.backboneNetif)
344 def _beforeRegisterMulticast(self, sAddr='ff04::1234:777a:1', timeout=300): argument
351 if self.externalCommissioner is not None:
352 self.externalCommissioner.MLR([sAddr], timeout)
357 self.bash(cmd)
360 def setupHost(self, setDp=False, setDua=False): argument
361 self.IsHost = True
363 self.bash('ip -6 addr add 910b::1 dev %s' % self.backboneNetif)
366 self.bash('ip -6 addr add fd00:7d03:7d03:7d03::1 dev %s' % self.backboneNetif)
368 self.__startRadvdService(setDp)
370 def _deviceEscapeEscapable(self, string): argument
382 def bash(self, cmd, timeout=DEFAULT_COMMAND_TIMEOUT, sudo=True): argument
383 return self.bash_unwatched(cmd, timeout=timeout, sudo=sudo)
385 def bash_unwatched(self, cmd, timeout=DEFAULT_COMMAND_TIMEOUT, sudo=True): argument
386 if sudo and not self.__is_root:
389 return self.__handle.bash(cmd, timeout=timeout)
393 def send_udp(self, interface, dst, port, payload): argument
395 super(OpenThread_BR, self).send_udp(interface, dst, port, payload)
399 ifname = self.backboneNetif
404 self.bash(cmd)
407 def mldv2_query(self): argument
408 ifname = self.backboneNetif
412 self.bash(cmd)
415 def ip_neighbors_flush(self): argument
417 cmd1 = 'sudo ip -6 neigh flush nud all nud failed nud noarp dev %s' % self.backboneNetif
420 … '| sudo xargs -I{} ip -6 neigh delete {} dev %s') % (self.backboneNetif, self.backboneNetif)
422 self.bash(cmd, sudo=False)
425 def ip_neighbors_add(self, addr, lladdr, nud='noarp'): argument
426 cmd1 = 'sudo ip -6 neigh delete %s dev %s' % (addr, self.backboneNetif)
427 … cmd2 = 'sudo ip -6 neigh add %s dev %s lladdr %s nud %s' % (addr, self.backboneNetif, lladdr, nud)
429 self.bash(cmd, sudo=False)
432 def get_eth_ll(self): argument
433 cmd = "ip -6 addr list dev %s | grep 'inet6 fe80' | awk '{print $2}'" % self.backboneNetif
434 ret = self.bash(cmd)[0].split('/')[0]
438 def ping(self, strDestination, ilength=0, hop_limit=5, timeout=5): argument
451 if self.IsHost or self.IsBorderRouter:
452 ifName = self.backboneNetif
464 self.bash(cmd, sudo=False)
467 def multicast_Ping(self, destination, length=20): argument
477 if self.IsHost or self.IsBorderRouter:
478 ifName = self.backboneNetif
484 self.bash(cmd, sudo=False)
487 def getGUA(self, filterByPrefix=None, eth=False): argument
501 return self.__getEthGUA(filterByPrefix=filterByPrefix)
503 return super(OpenThread_BR, self).getGUA(filterByPrefix=filterByPrefix)
505 def __getEthGUA(self, filterByPrefix=None): argument
508 cmd = 'ip -6 addr list dev %s | grep inet6' % self.backboneNetif
509 output = self.bash(cmd, sudo=False)
535 def _cliReadLine(self): argument
537 if not self.__cli_output_lines:
538 self.__readSyslogToCli()
540 if self.__cli_output_lines:
541 return self.__cli_output_lines.pop(0)
546 def _deviceGetEtherMac(self): argument
549 …return self.bash('ip addr list dev %s | grep ether' % self.backboneNetif, sudo=False)[0].strip().s…
552 def _onCommissionStart(self): argument
553 assert self.__syslog_skip_lines is None
554 self.__syslog_skip_lines = int(self.bash('wc -l /var/log/syslog', sudo=False)[0].split()[0])
555 self.__syslog_last_read_ts = 0
558 def _onCommissionStop(self): argument
559 assert self.__syslog_skip_lines is not None
560 self.__syslog_skip_lines = None
563 def __startRadvdService(self, setDp=False): argument
564 assert self.IsHost, "radvd service runs on Host only"
567 conf += "\ninterface %s" % self.backboneNetif
593 self.bash(cmd)
594 self.bash(self.extraParams.get('cmd-restart-radvd', 'service radvd restart'))
595 self.bash('service radvd status')
598 def __stopRadvdService(self): argument
599 assert self.IsHost, "radvd service runs on Host only"
600 self.bash('service radvd stop')
602 def __readSyslogToCli(self): argument
603 if self.__syslog_skip_lines is None:
607 if time.time() < self.__syslog_last_read_ts + 1:
610 self.__syslog_last_read_ts = time.time()
612 … lines = self.bash_unwatched('tail +%d /var/log/syslog' % self.__syslog_skip_lines, sudo=False)
618 self.__cli_output_lines.append(m.group(1))
620 self.__syslog_skip_lines += len(lines)
623 def _cliWriteLine(self, line): argument
625 output = self.bash(cmd)
627 self.__cli_output_lines.append(line)
629 self.__cli_output_lines.append(line)
631 def _restartAgentService(self): argument
632 restart_cmd = self.extraParams.get('cmd-restart-otbr-agent', 'systemctl restart otbr-agent')
633 self.bash(restart_cmd)
635 def __truncateSyslog(self): argument
636 self.bash('truncate -s 0 /var/log/syslog')
638 def __dumpSyslog(self): argument
639 cmd = self.extraParams.get('cmd-dump-otbr-log', 'grep "otbr-agent" /var/log/syslog')
640 output = self.bash_unwatched(cmd)
642 self.log('%s', line)
645 def get_eth_addrs(self): argument
646 cmd = "ip -6 addr list dev %s | grep 'inet6 ' | awk '{print $2}'" % self.backboneNetif
647 addrs = self.bash(cmd)
651 def mdns_query(self, service='_meshcop._udp.local', addrs_allowlist=(), addrs_denylist=()): argument
654 self.bash('ip6tables -A INPUT -p udp --dport 5353 -s %s -j DROP' % deny_addr)
658 self.bash('ip6tables -A INPUT -p udp --dport 5353 -s %s -j ACCEPT' % allow_addr)
660 self.bash('ip6tables -A INPUT -p udp --dport 5353 -j DROP')
662 return self._mdns_query_impl(service, find_active=(addrs_allowlist or addrs_denylist))
665 self.bash('ip6tables -F INPUT')
668 def _mdns_query_impl(self, service, find_active): argument
670 … output = self.bash('python3 ~/repo/openthread/tests/scripts/thread-cert/find_border_agents.py')
681 addr = '%s%%%s' % (addr, self.backboneNetif)
688 def powerDown(self): argument
689 self.log('Powering down BBR')
690 super(OpenThread_BR, self).powerDown()
691 stop_cmd = self.extraParams.get('cmd-stop-otbr-agent', 'systemctl stop otbr-agent')
692 self.bash(stop_cmd)
696 def powerUp(self): argument
697 self.log('Powering up BBR')
698 start_cmd = self.extraParams.get('cmd-start-otbr-agent', 'systemctl start otbr-agent')
699 self.bash(start_cmd)
700 super(OpenThread_BR, self).powerUp()
704 def forceSetSlaac(self, slaacAddress): argument
705 self.bash('ip -6 addr add %s/64 dev wpan0' % slaacAddress)
709 def stopListeningToAddr(self, sAddr): argument
718 self.bash(cmd)
720 def stopListeningToAddrAll(self): argument
721 return self.stopListeningToAddr('')
724 def deregisterMulticast(self, sAddr): argument
732 self.externalCommissioner.MLR([sAddr], 0)
736 def _waitBorderRoutingStabilize(self): argument
740 if not self.isBorderRoutingEnabled():
749 lastNetData = self.getNetworkData()
752 curNetData = self.getNetworkData()