""" Library for the robot based system test tool of the OpenDaylight project. Authors: Vaibhav Bhatnagar@Brocade Updated: 2015-06-01 """ import socket from robot.libraries.BuiltIn import BuiltIn class CapwapLibrary(object): """Provide many methods to simulate WTPs and their functions.""" def __init__(self): self.builtin = BuiltIn() def send_discover(self, ac_ip, wtp_ip="", ip="ip", port=5246): """Send Discover CAPWAP Packet from a WTP.""" data = "".join( chr(x) for x in [ 0x00, 0x20, 0x01, 0x02, 0x03, 0x04, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, ] ) self.builtin.log("Sending Discover Packet to: %s" % ac_ip, "DEBUG") session = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP) session.sendto(data, (ac_ip, port)) self.builtin.log("Packet Sent", "DEBUG") def get_hostip(self): """Get Host IP Address.""" ip_addr = socket.gethostbyname(socket.gethostname()) return ip_addr def get_simulated_wtpip(self, controller): """Get the Simulated WTP ip based on the controller.""" if controller == "127.0.0.1": exp_ip = controller else: exp_ip = self.get_hostip() return exp_ip