From 848de98876aecd084bb568907c3b121a7f5e38f0 Mon Sep 17 00:00:00 2001 From: Jason Koelker Date: Thu, 21 Jul 2011 12:45:53 -0500 Subject: allow 2 dns servers to be specified on network create --- nova/db/sqlalchemy/models.py | 1 + nova/network/manager.py | 10 +++++++--- nova/tests/__init__.py | 3 ++- nova/tests/test_network.py | 2 ++ 4 files changed, 12 insertions(+), 4 deletions(-) (limited to 'nova') diff --git a/nova/db/sqlalchemy/models.py b/nova/db/sqlalchemy/models.py index 45e0f89c9..2393cf40a 100644 --- a/nova/db/sqlalchemy/models.py +++ b/nova/db/sqlalchemy/models.py @@ -556,6 +556,7 @@ class Network(BASE, NovaBase): gateway = Column(String(255)) broadcast = Column(String(255)) dns = Column(String(255)) + dns2 = Column(String(255)) vlan = Column(Integer) vpn_public_address = Column(String(255)) diff --git a/nova/network/manager.py b/nova/network/manager.py index 34001657b..a5cf644ab 100644 --- a/nova/network/manager.py +++ b/nova/network/manager.py @@ -481,6 +481,9 @@ class NetworkManager(manager.SchedulerDependentManager): # TODO(tr3buchet): handle ip6 routes here as well if network['gateway_v6']: info['gateway6'] = network['gateway_v6'] + if network['dns2']: + info['dns'].append(network['dns2']) + network_info.append((network_dict, info)) return network_info @@ -591,7 +594,7 @@ class NetworkManager(manager.SchedulerDependentManager): def create_networks(self, context, label, cidr, multi_host, num_networks, network_size, cidr_v6, gateway_v6, bridge, - bridge_interface, **kwargs): + bridge_interface, dns, dns2=None, **kwargs): """Create networks based on parameters.""" fixed_net = netaddr.IPNetwork(cidr) fixed_net_v6 = netaddr.IPNetwork(cidr_v6) @@ -606,7 +609,8 @@ class NetworkManager(manager.SchedulerDependentManager): net = {} net['bridge'] = bridge net['bridge_interface'] = bridge_interface - net['dns'] = FLAGS.flat_network_dns + net['dns'] = dns + net['dns2'] = dns2 net['cidr'] = cidr net['multi_host'] = multi_host net['netmask'] = str(project_net.netmask) @@ -636,6 +640,7 @@ class NetworkManager(manager.SchedulerDependentManager): if kwargs.get('vpn', False): # this bit here is for vlan-manager del net['dns'] + del net['dns2'] vlan = kwargs['vlan_start'] + index net['vpn_private_address'] = str(project_net[2]) net['dhcp_start'] = str(project_net[3]) @@ -755,7 +760,6 @@ class FlatManager(NetworkManager): """Setup Network on this host.""" net = {} net['injected'] = FLAGS.flat_injected - net['dns'] = FLAGS.flat_network_dns self.db.network_update(context, network_ref['id'], net) diff --git a/nova/tests/__init__.py b/nova/tests/__init__.py index 7df6c06eb..49c1ccc56 100644 --- a/nova/tests/__init__.py +++ b/nova/tests/__init__.py @@ -67,7 +67,8 @@ def setup(): bridge=FLAGS.flat_network_bridge, bridge_interface=bridge_interface, vpn_start=FLAGS.vpn_start, - vlan_start=FLAGS.vlan_start) + vlan_start=FLAGS.vlan_start, + dns=FLAGS.flat_network_dns) for net in db.network_get_all(ctxt): network.set_network_host(ctxt, net) diff --git a/nova/tests/test_network.py b/nova/tests/test_network.py index 7cc174842..9fefc6959 100644 --- a/nova/tests/test_network.py +++ b/nova/tests/test_network.py @@ -56,6 +56,7 @@ networks = [{'id': 0, 'gateway': '192.168.0.1', 'broadcast': '192.168.0.255', 'dns': '192.168.0.1', + 'dns2': '192.168.0.2', 'vlan': None, 'host': None, 'project_id': 'fake_project', @@ -74,6 +75,7 @@ networks = [{'id': 0, 'gateway': '192.168.1.1', 'broadcast': '192.168.1.255', 'dns': '192.168.0.1', + 'dns2': '192.168.0.2', 'vlan': None, 'host': None, 'project_id': 'fake_project', -- cgit From d04b90ef23bd2e02e762ed22bce8729a2c619cf6 Mon Sep 17 00:00:00 2001 From: Jason Koelker Date: Thu, 21 Jul 2011 12:46:18 -0500 Subject: allow 2 dns servers to be specified on network create --- .../migrate_repo/versions/034_secondary_dns.py | 36 ++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 nova/db/sqlalchemy/migrate_repo/versions/034_secondary_dns.py (limited to 'nova') diff --git a/nova/db/sqlalchemy/migrate_repo/versions/034_secondary_dns.py b/nova/db/sqlalchemy/migrate_repo/versions/034_secondary_dns.py new file mode 100644 index 000000000..d9f82d796 --- /dev/null +++ b/nova/db/sqlalchemy/migrate_repo/versions/034_secondary_dns.py @@ -0,0 +1,36 @@ +# vim: tabstop=4 shiftwidth=4 softtabstop=4 + +# Copyright (c) 2011 OpenStack, LLC. +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +from sqlalchemy import Column, Table, MetaData, Boolean, String + +meta = MetaData() + +dns2 = Column('dns2', String(255)) + + +def upgrade(migrate_engine): + meta.bind = migrate_engine + + networks = Table('networks', meta, autoload=True) + networks.create_column(dns2) + + +def downgrade(migrate_engine): + meta.bind = migrate_engine + + networks = Table('networks', meta, autoload=True) + networks.drop_column(dns2) -- cgit From b346a456e9189f95780bf9c9d061969319a6b427 Mon Sep 17 00:00:00 2001 From: Jason Koelker Date: Thu, 21 Jul 2011 16:03:28 -0500 Subject: only include dns entries if they are not None in the database --- nova/network/manager.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'nova') diff --git a/nova/network/manager.py b/nova/network/manager.py index a5cf644ab..7b36c61a3 100644 --- a/nova/network/manager.py +++ b/nova/network/manager.py @@ -474,13 +474,15 @@ class NetworkManager(manager.SchedulerDependentManager): 'broadcast': network['broadcast'], 'mac': vif['address'], 'rxtx_cap': flavor['rxtx_cap'], - 'dns': [network['dns']], + 'dns': [], 'ips': [ip_dict(ip) for ip in network_IPs]} if network['cidr_v6']: info['ip6s'] = [ip6_dict()] # TODO(tr3buchet): handle ip6 routes here as well if network['gateway_v6']: info['gateway6'] = network['gateway_v6'] + if network['dns']: + info['dns'].append(network['dns']) if network['dns2']: info['dns'].append(network['dns2']) -- cgit From 99d13a49fe32d22e0ed1642fcd790d45a8c201a3 Mon Sep 17 00:00:00 2001 From: Jason Koelker Date: Thu, 21 Jul 2011 16:09:43 -0500 Subject: rename in preperation for trunk merge --- .../migrate_repo/versions/034_secondary_dns.py | 36 ---------------------- .../migrate_repo/versions/035_secondary_dns.py | 36 ++++++++++++++++++++++ 2 files changed, 36 insertions(+), 36 deletions(-) delete mode 100644 nova/db/sqlalchemy/migrate_repo/versions/034_secondary_dns.py create mode 100644 nova/db/sqlalchemy/migrate_repo/versions/035_secondary_dns.py (limited to 'nova') diff --git a/nova/db/sqlalchemy/migrate_repo/versions/034_secondary_dns.py b/nova/db/sqlalchemy/migrate_repo/versions/034_secondary_dns.py deleted file mode 100644 index d9f82d796..000000000 --- a/nova/db/sqlalchemy/migrate_repo/versions/034_secondary_dns.py +++ /dev/null @@ -1,36 +0,0 @@ -# vim: tabstop=4 shiftwidth=4 softtabstop=4 - -# Copyright (c) 2011 OpenStack, LLC. -# All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -from sqlalchemy import Column, Table, MetaData, Boolean, String - -meta = MetaData() - -dns2 = Column('dns2', String(255)) - - -def upgrade(migrate_engine): - meta.bind = migrate_engine - - networks = Table('networks', meta, autoload=True) - networks.create_column(dns2) - - -def downgrade(migrate_engine): - meta.bind = migrate_engine - - networks = Table('networks', meta, autoload=True) - networks.drop_column(dns2) diff --git a/nova/db/sqlalchemy/migrate_repo/versions/035_secondary_dns.py b/nova/db/sqlalchemy/migrate_repo/versions/035_secondary_dns.py new file mode 100644 index 000000000..d9f82d796 --- /dev/null +++ b/nova/db/sqlalchemy/migrate_repo/versions/035_secondary_dns.py @@ -0,0 +1,36 @@ +# vim: tabstop=4 shiftwidth=4 softtabstop=4 + +# Copyright (c) 2011 OpenStack, LLC. +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +from sqlalchemy import Column, Table, MetaData, Boolean, String + +meta = MetaData() + +dns2 = Column('dns2', String(255)) + + +def upgrade(migrate_engine): + meta.bind = migrate_engine + + networks = Table('networks', meta, autoload=True) + networks.create_column(dns2) + + +def downgrade(migrate_engine): + meta.bind = migrate_engine + + networks = Table('networks', meta, autoload=True) + networks.drop_column(dns2) -- cgit From f087db34b840a74f9ba093128808230fd97ea9ec Mon Sep 17 00:00:00 2001 From: Jason Koelker Date: Thu, 21 Jul 2011 16:20:32 -0500 Subject: pep8 --- nova/tests/api/openstack/test_versions.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'nova') diff --git a/nova/tests/api/openstack/test_versions.py b/nova/tests/api/openstack/test_versions.py index 0eae18a62..da964ee1f 100644 --- a/nova/tests/api/openstack/test_versions.py +++ b/nova/tests/api/openstack/test_versions.py @@ -174,7 +174,7 @@ class VersionsTest(test.TestCase): { "rel": "self", "href": "http://test/2.7.1", - } + }, ], }, ] @@ -204,7 +204,7 @@ class VersionsTest(test.TestCase): { "rel": "self", "href": "http://test/2.9.8", - } + }, ], }, ] -- cgit From e54f0cb05a3e10ad4234c672e2096da2a3eaa2da Mon Sep 17 00:00:00 2001 From: Jason Koelker Date: Fri, 22 Jul 2011 16:47:37 -0500 Subject: default to None in the method signature --- nova/db/sqlalchemy/migrate_repo/versions/035_secondary_dns.py | 2 ++ nova/db/sqlalchemy/models.py | 2 +- nova/network/manager.py | 10 +++++----- nova/tests/test_network.py | 4 ++-- 4 files changed, 10 insertions(+), 8 deletions(-) (limited to 'nova') diff --git a/nova/db/sqlalchemy/migrate_repo/versions/035_secondary_dns.py b/nova/db/sqlalchemy/migrate_repo/versions/035_secondary_dns.py index d9f82d796..c938eb716 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/035_secondary_dns.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/035_secondary_dns.py @@ -26,6 +26,7 @@ def upgrade(migrate_engine): meta.bind = migrate_engine networks = Table('networks', meta, autoload=True) + networks.c.dns.alter(Column('dns1', String(255))) networks.create_column(dns2) @@ -33,4 +34,5 @@ def downgrade(migrate_engine): meta.bind = migrate_engine networks = Table('networks', meta, autoload=True) + networks.c.dns1.alter(Column('dns', String(255))) networks.drop_column(dns2) diff --git a/nova/db/sqlalchemy/models.py b/nova/db/sqlalchemy/models.py index cf00177c4..7e35c2cba 100644 --- a/nova/db/sqlalchemy/models.py +++ b/nova/db/sqlalchemy/models.py @@ -556,7 +556,7 @@ class Network(BASE, NovaBase): bridge_interface = Column(String(255)) gateway = Column(String(255)) broadcast = Column(String(255)) - dns = Column(String(255)) + dns1 = Column(String(255)) dns2 = Column(String(255)) vlan = Column(Integer) diff --git a/nova/network/manager.py b/nova/network/manager.py index a11d9a5ed..3b3f524c4 100644 --- a/nova/network/manager.py +++ b/nova/network/manager.py @@ -480,8 +480,8 @@ class NetworkManager(manager.SchedulerDependentManager): # TODO(tr3buchet): handle ip6 routes here as well if network['gateway_v6']: info['gateway6'] = network['gateway_v6'] - if network['dns']: - info['dns'].append(network['dns']) + if network['dns1']: + info['dns'].append(network['dns1']) if network['dns2']: info['dns'].append(network['dns2']) @@ -595,7 +595,7 @@ class NetworkManager(manager.SchedulerDependentManager): def create_networks(self, context, label, cidr, multi_host, num_networks, network_size, cidr_v6, gateway_v6, bridge, - bridge_interface, dns, dns2=None, **kwargs): + bridge_interface, dns1=None, dns2=None, **kwargs): """Create networks based on parameters.""" fixed_net = netaddr.IPNetwork(cidr) fixed_net_v6 = netaddr.IPNetwork(cidr_v6) @@ -610,7 +610,7 @@ class NetworkManager(manager.SchedulerDependentManager): net = {} net['bridge'] = bridge net['bridge_interface'] = bridge_interface - net['dns'] = dns + net['dns1'] = dns1 net['dns2'] = dns2 net['cidr'] = cidr net['multi_host'] = multi_host @@ -640,7 +640,7 @@ class NetworkManager(manager.SchedulerDependentManager): if kwargs.get('vpn', False): # this bit here is for vlan-manager - del net['dns'] + del net['dns1'] del net['dns2'] vlan = kwargs['vlan_start'] + index net['vpn_private_address'] = str(project_net[2]) diff --git a/nova/tests/test_network.py b/nova/tests/test_network.py index c37e30c05..fbe7d769e 100644 --- a/nova/tests/test_network.py +++ b/nova/tests/test_network.py @@ -55,7 +55,7 @@ networks = [{'id': 0, 'bridge_interface': 'fake_fa0', 'gateway': '192.168.0.1', 'broadcast': '192.168.0.255', - 'dns': '192.168.0.1', + 'dns1': '192.168.0.1', 'dns2': '192.168.0.2', 'vlan': None, 'host': None, @@ -74,7 +74,7 @@ networks = [{'id': 0, 'bridge_interface': 'fake_fa1', 'gateway': '192.168.1.1', 'broadcast': '192.168.1.255', - 'dns': '192.168.0.1', + 'dns1': '192.168.0.1', 'dns2': '192.168.0.2', 'vlan': None, 'host': None, -- cgit From e92595896531d56ce38169468a740b98624cb714 Mon Sep 17 00:00:00 2001 From: Jason Koelker Date: Fri, 22 Jul 2011 17:01:35 -0500 Subject: pass in the right argument --- nova/tests/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'nova') diff --git a/nova/tests/__init__.py b/nova/tests/__init__.py index 49c1ccc56..720d5b0e6 100644 --- a/nova/tests/__init__.py +++ b/nova/tests/__init__.py @@ -68,7 +68,7 @@ def setup(): bridge_interface=bridge_interface, vpn_start=FLAGS.vpn_start, vlan_start=FLAGS.vlan_start, - dns=FLAGS.flat_network_dns) + dns1=FLAGS.flat_network_dns) for net in db.network_get_all(ctxt): network.set_network_host(ctxt, net) -- cgit