diff options
| author | Kei Masumoto <masumotok@nttdata.co.jp> | 2011-08-02 18:43:30 +0900 |
|---|---|---|
| committer | Kei Masumoto <masumotok@nttdata.co.jp> | 2011-08-02 18:43:30 +0900 |
| commit | c75e2ee89f5510cab8d6da886cbcbbe850ccfd31 (patch) | |
| tree | 8ddba4d2e1c2703d70e2921746acd32e7d101dd0 /bin | |
| parent | 79283cbb13d91e3c25e42af765f9da627813a6d8 (diff) | |
| parent | bdcfaa5b927a096f507fb0f7e2d81989173957f8 (diff) | |
| download | nova-c75e2ee89f5510cab8d6da886cbcbbe850ccfd31.tar.gz nova-c75e2ee89f5510cab8d6da886cbcbbe850ccfd31.tar.xz nova-c75e2ee89f5510cab8d6da886cbcbbe850ccfd31.zip | |
merged trunk rev1348
Diffstat (limited to 'bin')
| -rwxr-xr-x | bin/nova-manage | 118 |
1 files changed, 71 insertions, 47 deletions
diff --git a/bin/nova-manage b/bin/nova-manage index a33521958..35d6dd96e 100755 --- a/bin/nova-manage +++ b/bin/nova-manage @@ -631,40 +631,75 @@ class NetworkCommands(object): """Class for managing networks.""" @args('--label', dest="label", metavar='<label>', - help='Label(ex: public)') - @args('--network', dest="fixed_range", metavar='<x.x.x.x/yy>', - help='Network') + help='Label for network (ex: public)') + @args('--fixed_range_v4', dest="fixed_range_v4", metavar='<x.x.x.x/yy>', + help='IPv4 subnet (ex: 10.0.0.0/8)') @args('--num_networks', dest="num_networks", metavar='<number>', - help='How many networks create') + help='Number of networks to create') @args('--network_size', dest="network_size", metavar='<number>', - help='How many hosts in network') + help='Number of IPs per network') @args('--vlan', dest="vlan_start", metavar='<vlan id>', help='vlan id') @args('--vpn', dest="vpn_start", help='vpn start') - @args('--fixed_range_v6', dest="fixed_range_v6", help='fixed ipv6 range') + @args('--fixed_range_v6', dest="fixed_range_v6", + help='IPv6 subnet (ex: fe80::/64') @args('--gateway_v6', dest="gateway_v6", help='ipv6 gateway') - @args('--flat_network_bridge', dest="flat_network_bridge", - metavar='<flat network bridge>', help='Flat_network_bridge') + @args('--bridge', dest="bridge", + metavar='<bridge>', + help='VIFs on this network are connected to this bridge') @args('--bridge_interface', dest="bridge_interface", - metavar='<bridge interface>', help='Bridge_interface') + metavar='<bridge interface>', + help='the bridge is connected to this interface') @args('--multi_host', dest="multi_host", metavar="<'T'|'F'>", help='Multi host') @args('--dns1', dest="dns1", metavar="<DNS Address>", help='First DNS') @args('--dns2', dest="dns2", metavar="<DNS Address>", help='Second DNS') - def create(self, label=None, fixed_range=None, num_networks=None, + def create(self, label=None, fixed_range_v4=None, num_networks=None, network_size=None, multi_host=None, vlan_start=None, vpn_start=None, fixed_range_v6=None, gateway_v6=None, - flat_network_bridge=None, bridge_interface=None, - dns1=None, dns2=None): + bridge=None, bridge_interface=None, dns1=None, dns2=None): """Creates fixed ips for host by range""" + + # check for certain required inputs if not label: - msg = _('a label (ex: public) is required to create networks.') - print msg - raise TypeError(msg) - if not fixed_range: - msg = _('Fixed range in the form of 10.0.0.0/8 is ' - 'required to create networks.') - print msg - raise TypeError(msg) + raise exception.NetworkNotCreated(req='--label') + if not fixed_range_v4: + raise exception.NetworkNotCreated(req='--fixed_range_v4') + + bridge = bridge or FLAGS.flat_network_bridge + if not bridge: + bridge_required = ['nova.network.manager.FlatManager', + 'nova.network.manager.FlatDHCPManager'] + if FLAGS.network_manager in bridge_required: + # TODO(tr3buchet) - swap print statement and following line for + # raise statement in diablo 4 + print _('--bridge parameter required or FLAG ' + 'flat_network_bridge must be set to create networks\n' + 'WARNING! ACHTUNG! Setting the bridge to br100 ' + 'automatically is deprecated and will be removed in ' + 'Diablo milestone 4. Prepare yourself accordingly.') + time.sleep(10) + bridge = 'br100' + #raise exception.NetworkNotCreated(req='--bridge') + + bridge_interface = bridge_interface or FLAGS.flat_interface or \ + FLAGS.vlan_interface + if not bridge_interface: + interface_required = ['nova.network.manager.FlatDHCPManager', + 'nova.network.manager.VlanManager'] + if FLAGS.network_manager in interface_required: + raise exception.NetworkNotCreated(req='--bridge_interface') + + if FLAGS.use_ipv6: + fixed_range_v6 = fixed_range_v6 or FLAGS.fixed_range_v6 + if not fixed_range_v6: + raise exception.NetworkNotCreated(req='with use_ipv6, ' + '--fixed_range_v6') + gateway_v6 = gateway_v6 or FLAGS.gateway_v6 + if not gateway_v6: + raise exception.NetworkNotCreated(req='with use_ipv6, ' + '--gateway_v6') + + # sanitize other input using FLAGS if necessary if not num_networks: num_networks = FLAGS.num_networks if not network_size: @@ -677,36 +712,25 @@ class NetworkCommands(object): vlan_start = FLAGS.vlan_start if not vpn_start: vpn_start = FLAGS.vpn_start - if not fixed_range_v6: - fixed_range_v6 = FLAGS.fixed_range_v6 - if not flat_network_bridge: - flat_network_bridge = FLAGS.flat_network_bridge - if not bridge_interface: - bridge_interface = FLAGS.flat_interface or FLAGS.vlan_interface - if not gateway_v6: - gateway_v6 = FLAGS.gateway_v6 if not dns1 and FLAGS.flat_network_dns: dns1 = FLAGS.flat_network_dns - net_manager = utils.import_object(FLAGS.network_manager) - try: - net_manager.create_networks(context.get_admin_context(), - label=label, - cidr=fixed_range, - multi_host=multi_host, - num_networks=int(num_networks), - network_size=int(network_size), - vlan_start=int(vlan_start), - vpn_start=int(vpn_start), - cidr_v6=fixed_range_v6, - gateway_v6=gateway_v6, - bridge=flat_network_bridge, - bridge_interface=bridge_interface, - dns1=dns1, - dns2=dns2) - except ValueError, e: - print e - raise e + # create the network + net_manager = utils.import_object(FLAGS.network_manager) + net_manager.create_networks(context.get_admin_context(), + label=label, + cidr=fixed_range_v4, + multi_host=multi_host, + num_networks=int(num_networks), + network_size=int(network_size), + vlan_start=int(vlan_start), + vpn_start=int(vpn_start), + cidr_v6=fixed_range_v6, + gateway_v6=gateway_v6, + bridge=bridge, + bridge_interface=bridge_interface, + dns1=dns1, + dns2=dns2) def list(self): """List all created networks""" |
