Import Floodlight v0.90
diff --git a/src/ext/floodlight/example/graphDeps.py b/src/ext/floodlight/example/graphDeps.py
new file mode 100755
index 0000000..505d516
--- /dev/null
+++ b/src/ext/floodlight/example/graphDeps.py
@@ -0,0 +1,72 @@
+#!/usr/bin/python
+
+import urllib2
+import json
+import sys
+
+
+def simple_json_get(url):
+    return json.loads(urllib2.urlopen(url).read())
+
+
+def shorten(s):
+    return  s.replace('net.floodlightcontroller','n.f'
+            ).replace('com.bigswitch','c.b')
+
+def usage(s):
+    sys.stderr.write("Usage:\ngrahDeps.py hostname [port]\n%s" % s)
+    sys.stderr.write("\n\n\n\n    writes data to 'hostname.dot' for use with graphviz\n")
+    sys.exit(1)
+
+
+if __name__ == '__main__':
+
+    host='localhost'
+    port=8080
+
+    if len(sys.argv) == 1 or sys.argv[1] == '-h' or sys.argv[1] == '--help':
+        usage("need to specify hostname")
+
+    host = sys.argv[1]
+    if len(sys.argv) > 2:
+        port = int(sys.argv[2])
+
+    sys.stderr.write("Connecting to %s:%d ..." % (host,port))
+    URL="http://%s:%d/wm/core/module/loaded/json" % (host,port)
+
+    deps = simple_json_get(URL)
+    serviceMap = {}
+    nodeMap = {}
+    nodeCount = 0
+
+    sys.stderr.write("Writing to %s.dot ..." % (host))
+    f = open("%s.dot" % host, 'w')
+
+    f.write( "digraph Deps {\n")
+
+    for mod, info in deps.iteritems():
+        # sys.stderr.write("Discovered module %s\n" % mod)
+        nodeMap[mod] = "n%d" % nodeCount
+        nodeCount += 1
+        label = shorten(mod) + "\\n"
+        for service, serviceImpl in info['provides'].iteritems():
+            # sys.stderr.write("     Discovered service %s implemented with %s\n" % (service,serviceImpl))
+            label += "\\nService=%s" % shorten(service)
+            serviceMap[serviceImpl] = mod
+        f.write("     %s [ label=\"%s\", color=\"blue\"];\n" % (nodeMap[mod], label))
+
+    f.write("\n")      # for readability
+
+    for mod, info in deps.iteritems():
+        for dep, serviceImpl in info['depends'].iteritems():
+            f.write("     %s -> %s [ label=\"%s\"];\n" % (
+                    nodeMap[mod],
+                    shorten(nodeMap[serviceMap[serviceImpl]]),
+                    shorten(dep)))
+        
+
+    f.write("}\n")
+    f.close();
+    sys.stderr.write("Now type\ndot -Tpdf -o %s.pdf %s.dot\n" % (
+        host, host))
+