OSDN Git Service

Add a network system check command input.
[karesansui/karesansui.git] / bin / update_network.py
index 55138ff..4270c35 100755 (executable)
@@ -20,13 +20,11 @@ from ksscommand import KssCommand, KssCommandException, KssCommandOptException
 
 import __cmd__
 
-IFCONFIG='/usr/sbin/ifconfig'
-BRCTL='/usr/sbin/brctl'
-
 try:
     import karesansui
     from karesansui import __version__
     from karesansui.lib.virt.virt import KaresansuiVirtConnection, KaresansuiVirtException
+    from karesansui.lib.const import NETWORK_IFCONFIG_COMMAND, NETWORK_BRCTL_COMMAND
     from karesansui.lib.utils import load_locale
 except ImportError:
     print >>sys.stderr, "[Error] karesansui package was not found."
@@ -51,6 +49,7 @@ def getopts():
 def chkopts(opts):
     if not opts.name:
         raise KssCommandOptException('ERROR: %s option is required.' % '-n or --name')
+
     if not (opts.cidr or opts.dhcp_start or opts.dhcp_end or opts.forward_dev or opts.forward_mode or opts.bridge_name):
         raise KssCommandOptException('ERROR: At least one option should be specified.')
 
@@ -73,9 +72,9 @@ class UpdateNetwork(KssCommand):
             else:
                 autostart = False
 
+            self.up_progress(20)
             try:
                 conn.update_network(opts.name, opts.cidr, opts.dhcp_start, opts.dhcp_end, forward, bridge, autostart=autostart)
-                self.up_progress(20)
             except:
                 self.logger.error('Failed to update network. - net=%s' % (opts.name))
                 raise
@@ -86,7 +85,6 @@ class UpdateNetwork(KssCommand):
             if not (opts.name in active_networks):
                 try:
                     conn.start_network(opts.name)
-                    self.up_progress(10)
                 except KaresansuiVirtException, e:
                     # try to bring down existing bridge
                     kvn = conn.search_kvn_networks(opts.name)[0]
@@ -95,17 +93,20 @@ class UpdateNetwork(KssCommand):
                     except KeyError:
                         pass
 
-                    ret, res = execute_command([IFCONFIG, bridge_name, 'down'])
-                    ret, res = execute_command([BRCTL, 'delbr', bridge_name])
+                    ret, res = execute_command([NETWORK_IFCONFIG_COMMAND, bridge_name, 'down'])
+                    ret, res = execute_command([NETWORK_BRCTL_COMMAND, 'delbr', bridge_name])
 
                     # try again
                     conn.start_network(opts.name)
                     self.up_progress(10)
 
+            self.up_progress(10)
             active_networks = conn.list_active_network()
             if not (opts.name in active_networks):
                 raise KssCommandException('Updated network but it\'s dead. - net=%s' % (opts.name))
 
+            self.logger.info('Updated network. - net=%s' % (opts.name))
+            print >>sys.stdout, _('Updated network. - net=%s') % (opts.name)
             return True
         finally:
             conn.close()