]> git.datanom.net - netconf.git/blobdiff - netconf
fix test for record. Better output for record
[netconf.git] / netconf
diff --git a/netconf b/netconf
index 34443ff9db92973fab8c8d0ba6a9899b094fdb4c..3dd1d377490630a19ec45e613eb75cf2803a4a0d 100644 (file)
--- a/netconf
+++ b/netconf
@@ -183,26 +183,37 @@ def parse_input():
                record = True
            else:
                assert False, 'Unhandled option'
-    
-       if not address or not interface:
-           print 'Error: missing options'
-           usage()
-           sys.exit(2)
+
+       if (record):
+           if (bool(address) ^ bool(interface)):
+                print 'Error: missing options'
+               usage()
+               sys.exit(2)
+        else:
+           if not address or not interface or error:
+               print 'Error: missing options'
+               usage()
+               sys.exit(2)
+
        if address == '0':
            address = None
        if not netmask:
            netmask = '24'
     
-       options = (interface, address, netmask, gateway, nameserver)
+       options = (interface, address, netmask, gateway, nameserver, record)
     
     return options
 
 def main():
     interactive = True
+    record = False
+    output = ''
 
     options = parse_input()
     if options:
-       interactive = False
+        record = options[5]
+        if (options[0]):
+           interactive = False
 
     p = Parser()
     try:
@@ -229,12 +240,12 @@ def main():
                    gw = options[3]
                 cmd = 'ipadm delete-if %s' % nic[0]
                if record:
-                   print cmd
+                   output += cmd
                else:
                    runcmd(cmd)
                 cmd = 'ipadm create-if %s' % nic[0]
                if record:
-                   print cmd
+                   output += "\n" + cmd
                else:
                    (out, err) = runcmd(cmd)
                    if err:
@@ -243,7 +254,7 @@ def main():
                     # use DHCP
                     cmd = 'ipadm create-addr -T dhcp %s/v4' % nic[0]
                    if record:
-                       print cmd
+                       output += "\n" + cmd
                    else:
                        (out, err) = runcmd(cmd)
                        if err:
@@ -252,7 +263,7 @@ def main():
                     # use STATIC
                     cmd = 'ipadm create-addr -T static -a %s/%s %s/v4' % (ip, mask, nic[0])
                    if record:
-                       print cmd
+                       output += "\n" + cmd
                    else:
                        (out, err) = runcmd(cmd)
                        if err:
@@ -260,7 +271,7 @@ def main():
                     if gw:
                         cmd = 'route -p add default %s' % gw
                        if record:
-                           print cmd
+                           output += "\n" + cmd
                        else:
                            (out, err) = runcmd(cmd)
                            if err:
@@ -289,11 +300,13 @@ def main():
                     cmd += '&& cp /etc/nsswitch.conf{,.bak} '
                     cmd += '&& cp /etc/nsswitch.{dns,conf}'
                    if record:
-                       print cmd
+                       output += "\n" + cmd
                    else:
                        (out, err) = runcmd(cmd)
                        if err:
                            raise RuntimeError(err)
+                if record:
+                    print output
         else:
             print "Found no unassigned interfaces"
     except ParserError as e:
This page took 0.032728 seconds and 5 git commands to generate.