First commit of lavapdu code
diff --git a/engine.py b/engine.py
new file mode 100644
index 0000000..4f18c2e
--- /dev/null
+++ b/engine.py
@@ -0,0 +1,65 @@
+import pexpect
+import sys
+import os
+from apcdrivers import apc8959
+from apcdrivers import apc7952
+
+class PDUEngine():
+    connection = None
+    pdu_commands = {"off":"olOff","on":"olOn","reboot":"olReboot","delayed":"olDlyReboot"}
+    prompt = 0
+    driver = None
+
+    def __init__(self, pdu_hostname, pdu_telnetport = 23):
+        self.connection = pexpect.spawn("/usr/bin/telnet %s %d" % (pdu_hostname, pdu_telnetport))
+        #self.connection.logfile_read = sys.stdout
+        self._pdu_login("apc","apc")
+        if self.prompt == 0:
+            print("Found a v5 prompt")
+            self.driver = apc8959(self.connection)
+        elif self.prompt == 1:
+            print("Found a v3 prompt")
+            self.driver = apc7952(self.connection)
+        else:
+            print("Unknown prompt!")
+
+    def is_busy(self):
+        if os.path.exists("/proc/%i" % self.connection.pid):
+            return True
+        return False
+
+    def close(self):
+        self.driver._pdu_logout()
+        self.connection.close(True)
+
+    def _pdu_login(self, username, password):
+        print("attempting login with username %s, password %s" % (username,password))
+        self.connection.send("\r")
+        self.connection.expect ("User Name :")
+        self.connection.send("apc\r")
+        self.connection.expect("Password  :")
+        self.connection.send("apc\r")
+        self.prompt = self.connection.expect(["apc>", ">"])
+        #print("prompt: %s" % self.prompt)
+
+
+if __name__ == "__main__":
+    pe1 = PDUEngine("pdu15")
+    pe1.driver.port_off(22)
+    pe1.driver.port_on(22)
+    pe1.close()
+    pe2 = PDUEngine("pdu14")
+    pe2.driver.port_off(6)
+    pe2.driver.port_on(6)
+    pe2.close()
+    pe3 = PDUEngine("pdu01")
+    pe3.driver.port_reboot(1)
+    pe3.driver.port_off(1)
+    pe3.driver.port_on(1)
+    pe3.close()
+    pe4 = PDUEngine("pdu02")
+    pe4.driver.port_reboot(8)
+    pe4.driver.port_off(8)
+    pe4.driver.port_on(8)
+    pe4.close()
+