updates handling of arguments in nova-manage network create.
updates a few of the arguments to nova-manage and related help. updates nova-manage to raise proper exceptions. updates network manager create_networks to handle ipv6 more correctly and efficiently. flat_network_bridge FLAG now defaults to None.
This commit is contained in:
@@ -631,40 +631,75 @@ class NetworkCommands(object):
|
|||||||
"""Class for managing networks."""
|
"""Class for managing networks."""
|
||||||
|
|
||||||
@args('--label', dest="label", metavar='<label>',
|
@args('--label', dest="label", metavar='<label>',
|
||||||
help='Label(ex: public)')
|
help='Label for network (ex: public)')
|
||||||
@args('--network', dest="fixed_range", metavar='<x.x.x.x/yy>',
|
@args('--fixed_range_v4', dest="fixed_range_v4", metavar='<x.x.x.x/yy>',
|
||||||
help='Network')
|
help='IPv4 subnet (ex: 10.0.0.0/8)')
|
||||||
@args('--num_networks', dest="num_networks", metavar='<number>',
|
@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>',
|
@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('--vlan', dest="vlan_start", metavar='<vlan id>', help='vlan id')
|
||||||
@args('--vpn', dest="vpn_start", help='vpn start')
|
@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('--gateway_v6', dest="gateway_v6", help='ipv6 gateway')
|
||||||
@args('--flat_network_bridge', dest="flat_network_bridge",
|
@args('--bridge', dest="bridge",
|
||||||
metavar='<flat network bridge>', help='Flat_network_bridge')
|
metavar='<bridge>',
|
||||||
|
help='VIFs on this network are connected to this bridge')
|
||||||
@args('--bridge_interface', dest="bridge_interface",
|
@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'>",
|
@args('--multi_host', dest="multi_host", metavar="<'T'|'F'>",
|
||||||
help='Multi host')
|
help='Multi host')
|
||||||
@args('--dns1', dest="dns1", metavar="<DNS Address>", help='First DNS')
|
@args('--dns1', dest="dns1", metavar="<DNS Address>", help='First DNS')
|
||||||
@args('--dns2', dest="dns2", metavar="<DNS Address>", help='Second 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,
|
network_size=None, multi_host=None, vlan_start=None,
|
||||||
vpn_start=None, fixed_range_v6=None, gateway_v6=None,
|
vpn_start=None, fixed_range_v6=None, gateway_v6=None,
|
||||||
flat_network_bridge=None, bridge_interface=None,
|
bridge=None, bridge_interface=None, dns1=None, dns2=None):
|
||||||
dns1=None, dns2=None):
|
|
||||||
"""Creates fixed ips for host by range"""
|
"""Creates fixed ips for host by range"""
|
||||||
|
|
||||||
|
# check for certain required inputs
|
||||||
if not label:
|
if not label:
|
||||||
msg = _('a label (ex: public) is required to create networks.')
|
raise exception.NetworkNotCreated(req='--label')
|
||||||
print msg
|
if not fixed_range_v4:
|
||||||
raise TypeError(msg)
|
raise exception.NetworkNotCreated(req='--fixed_range_v4')
|
||||||
if not fixed_range:
|
|
||||||
msg = _('Fixed range in the form of 10.0.0.0/8 is '
|
bridge = bridge or FLAGS.flat_network_bridge
|
||||||
'required to create networks.')
|
if not bridge:
|
||||||
print msg
|
bridge_required = ['nova.network.manager.FlatManager',
|
||||||
raise TypeError(msg)
|
'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:
|
if not num_networks:
|
||||||
num_networks = FLAGS.num_networks
|
num_networks = FLAGS.num_networks
|
||||||
if not network_size:
|
if not network_size:
|
||||||
@@ -677,22 +712,14 @@ class NetworkCommands(object):
|
|||||||
vlan_start = FLAGS.vlan_start
|
vlan_start = FLAGS.vlan_start
|
||||||
if not vpn_start:
|
if not vpn_start:
|
||||||
vpn_start = FLAGS.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:
|
if not dns1 and FLAGS.flat_network_dns:
|
||||||
dns1 = FLAGS.flat_network_dns
|
dns1 = FLAGS.flat_network_dns
|
||||||
net_manager = utils.import_object(FLAGS.network_manager)
|
|
||||||
|
|
||||||
try:
|
# create the network
|
||||||
|
net_manager = utils.import_object(FLAGS.network_manager)
|
||||||
net_manager.create_networks(context.get_admin_context(),
|
net_manager.create_networks(context.get_admin_context(),
|
||||||
label=label,
|
label=label,
|
||||||
cidr=fixed_range,
|
cidr=fixed_range_v4,
|
||||||
multi_host=multi_host,
|
multi_host=multi_host,
|
||||||
num_networks=int(num_networks),
|
num_networks=int(num_networks),
|
||||||
network_size=int(network_size),
|
network_size=int(network_size),
|
||||||
@@ -700,13 +727,10 @@ class NetworkCommands(object):
|
|||||||
vpn_start=int(vpn_start),
|
vpn_start=int(vpn_start),
|
||||||
cidr_v6=fixed_range_v6,
|
cidr_v6=fixed_range_v6,
|
||||||
gateway_v6=gateway_v6,
|
gateway_v6=gateway_v6,
|
||||||
bridge=flat_network_bridge,
|
bridge=bridge,
|
||||||
bridge_interface=bridge_interface,
|
bridge_interface=bridge_interface,
|
||||||
dns1=dns1,
|
dns1=dns1,
|
||||||
dns2=dns2)
|
dns2=dns2)
|
||||||
except ValueError, e:
|
|
||||||
print e
|
|
||||||
raise e
|
|
||||||
|
|
||||||
def list(self):
|
def list(self):
|
||||||
"""List all created networks"""
|
"""List all created networks"""
|
||||||
|
|||||||
@@ -42,3 +42,4 @@ FLAGS['iscsi_num_targets'].SetDefault(8)
|
|||||||
FLAGS['verbose'].SetDefault(True)
|
FLAGS['verbose'].SetDefault(True)
|
||||||
FLAGS['sqlite_db'].SetDefault("tests.sqlite")
|
FLAGS['sqlite_db'].SetDefault("tests.sqlite")
|
||||||
FLAGS['use_ipv6'].SetDefault(True)
|
FLAGS['use_ipv6'].SetDefault(True)
|
||||||
|
FLAGS['flat_network_bridge'].SetDefault('br100')
|
||||||
|
|||||||
Reference in New Issue
Block a user