Step 2: Move test folder to root
[integration/test.git] / csit / libraries / CapwapLibrary.py
diff --git a/csit/libraries/CapwapLibrary.py b/csit/libraries/CapwapLibrary.py
new file mode 100644 (file)
index 0000000..89a123a
--- /dev/null
@@ -0,0 +1,36 @@
+"""
+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