]> git.llucax.com Git - z.facultad/75.43/tp2.git/blobdiff - makeroute
agrego padrones
[z.facultad/75.43/tp2.git] / makeroute
index 09072bc0a55a4be3cf8f1af2b6bb708a90c0f1a4..0c0040219c6911953bbacc3a14d21fe7e88d9c4d 100755 (executable)
--- a/makeroute
+++ b/makeroute
@@ -1,6 +1,8 @@
 #!/usr/bin/env python
 # vim: set et sw=4 sts=4 :
 
 #!/usr/bin/env python
 # vim: set et sw=4 sts=4 :
 
+import sys, os
+
 def get_campos(line):
     r = []
     for c in line.split('\t'):
 def get_campos(line):
     r = []
     for c in line.split('\t'):
@@ -44,19 +46,37 @@ def parse(f):
         line = f.readline()
     return hosts
 
         line = f.readline()
     return hosts
 
-def main(host):
-    import sys, pprint
-    #pprint.pprint(parse(sys.stdin))
-    #sys.exit(1)
+def up(host):
     hosts = parse(sys.stdin)
     for iface in hosts[host]['ifaces']:
         if not iface['iface'].startswith('ppp'):
     hosts = parse(sys.stdin)
     for iface in hosts[host]['ifaces']:
         if not iface['iface'].startswith('ppp'):
-            print 'ifconfig %(iface)s %(ip)s broadcast %(broadcast)s netmask %(mascara)s' % iface
+            print 'UP: ifconfig %(iface)s %(ip)s broadcast %(broadcast)s netmask %(mascara)s' % iface
+            os.system('ifconfig %(iface)s %(ip)s broadcast %(broadcast)s netmask %(mascara)s' % iface)
     for ruta in hosts[host]['rutas']:
         if ruta['metrica'] <> "0":
     for ruta in hosts[host]['rutas']:
         if ruta['metrica'] <> "0":
-            print 'route add -net %(ip)s gw %(gateway)s netmask %(mascara)s dev %(iface)s metric %(metrica)s' % ruta
+            print 'UP: route add -net %(ip)s gw %(gateway)s netmask %(mascara)s dev %(iface)s metric %(metrica)s' % ruta
+            os.system('route add -net %(ip)s gw %(gateway)s netmask %(mascara)s dev %(iface)s metric %(metrica)s' % ruta)
+
+def down(host):
+    hosts = parse(sys.stdin)
+    for iface in hosts[host]['ifaces']:
+        if not iface['iface'].startswith('ppp'):
+            print 'DOWN: ifconfig %(iface)s down' % iface
+            os.system('ifconfig %(iface)s down' % iface)
+
+def list():
+    hosts = parse(sys.stdin)
+    for host in hosts.keys():
+        print host
 
 if __name__ == '__main__':
 
 if __name__ == '__main__':
-    import sys
-    main(sys.argv[1])
+    if len(sys.argv) < 2:
+        print >>sys.stderr, 'Uso: %s [up|down] host' % sys.argv[0]
+        sys.exit(1)
+    if sys.argv[1] == 'up':
+        up(sys.argv[2])
+    elif sys.argv[1] == 'down':
+        down(sys.argv[2])
+    elif sys.argv[1] == 'list':
+        list()