def get_default(self, node): if node.cluster and node.cluster.net_provider == 'neutron': network_manager = NeutronManager() else: network_manager = NetworkManager() return network_manager.get_default_networks_assignment(node)
def test_gre_get_default_nic_assignment(self): self.env.create( cluster_kwargs={ 'net_provider': 'neutron', 'net_segment_type': 'gre'}, nodes_kwargs=[ {'api': True, 'pending_addition': True} ]) node_db = self.env.nodes[0] admin_nic_id = node_db.admin_interface.id admin_nets = [n.name for n in self.db.query( NodeNICInterface).get(admin_nic_id).assigned_networks_list] other_nic = self.db.query(NodeNICInterface).filter_by( node_id=node_db.id ).filter( not_(NodeNICInterface.id == admin_nic_id) ).first() other_nets = [n.name for n in other_nic.assigned_networks_list] nics = NeutronManager.get_default_networks_assignment(node_db) def_admin_nic = [n for n in nics if n['id'] == admin_nic_id] def_other_nic = [n for n in nics if n['id'] == other_nic.id] self.assertEquals(len(def_admin_nic), 1) self.assertEquals(len(def_other_nic), 1) self.assertEquals( set(admin_nets), set([n['name'] for n in def_admin_nic[0]['assigned_networks']])) self.assertEquals( set(other_nets), set([n['name'] for n in def_other_nic[0]['assigned_networks']]))
def test_gre_get_default_nic_assignment(self): self.env.create(cluster_kwargs={ 'net_provider': 'neutron', 'net_segment_type': 'gre' }, nodes_kwargs=[{ 'api': True, 'pending_addition': True }]) node_db = self.env.nodes[0] admin_nic_id = node_db.admin_interface.id admin_nets = [ n.name for n in self.db.query(NodeNICInterface).get( admin_nic_id).assigned_networks_list ] other_nic = self.db.query(NodeNICInterface).filter_by( node_id=node_db.id).filter( not_(NodeNICInterface.id == admin_nic_id)).first() other_nets = [n.name for n in other_nic.assigned_networks_list] nics = NeutronManager.get_default_networks_assignment(node_db) def_admin_nic = [n for n in nics if n['id'] == admin_nic_id] def_other_nic = [n for n in nics if n['id'] == other_nic.id] self.assertEquals(len(def_admin_nic), 1) self.assertEquals(len(def_other_nic), 1) self.assertEquals( set(admin_nets), set([n['name'] for n in def_admin_nic[0]['assigned_networks']])) self.assertEquals( set(other_nets), set([n['name'] for n in def_other_nic[0]['assigned_networks']]))
def test_get_default_nic_networkgroups(self): cluster = self.env.create_cluster(api=True, net_provider='neutron', net_segment_type='gre') node = self.env.create_node(api=True) node_db = self.env.nodes[0] admin_nic = node_db.admin_interface other_iface = self.db.query(NodeNICInterface).filter_by( node_id=node['id'] ).filter( not_(NodeNICInterface.id == admin_nic.id) ).first() interfaces = deepcopy(node_db.meta['interfaces']) # allocate ip from admin subnet admin_ip = str(IPNetwork( NetworkManager.get_admin_network_group().cidr)[0]) for interface in interfaces: if interface['mac'] == admin_nic.mac: # reset admin ip for previous admin interface interface['ip'] = None elif interface['mac'] == other_iface.mac: # set new admin interface interface['ip'] = admin_ip node_db.meta['interfaces'] = interfaces self.app.put( reverse('NodeCollectionHandler'), json.dumps([{ 'mac': admin_nic.mac, 'meta': node_db.meta, 'is_agent': True, 'cluster_id': cluster["id"] }]), headers=self.default_headers, expect_errors=True ) new_main_nic_id = node_db.admin_interface.id admin_nets = [n.name for n in self.db.query( NodeNICInterface).get(new_main_nic_id).assigned_networks] other_nets = [n.name for n in other_iface.assigned_networks] nics = NeutronManager.get_default_networks_assignment(node_db) def_admin_nic = [n for n in nics if n['id'] == new_main_nic_id] def_other_nic = [n for n in nics if n['id'] == other_iface.id] self.assertEquals(len(def_admin_nic), 1) self.assertEquals(len(def_other_nic), 1) self.assertEquals(new_main_nic_id, other_iface.id) self.assertEquals( set(admin_nets), set([n['name'] for n in def_admin_nic[0]['assigned_networks']])) self.assertEquals( set(other_nets), set([n['name'] for n in def_other_nic[0]['assigned_networks']]))
def test_vlan_get_default_nic_assignment(self): meta = self.env.default_metadata() self.env.set_interfaces_in_meta( meta, [{'name': 'eth0', 'mac': '00:00:00:00:00:11'}, {'name': 'eth1', 'mac': '00:00:00:00:00:22'}, {'name': 'eth2', 'mac': '00:00:00:00:00:33'}]) self.env.create( cluster_kwargs={ 'net_provider': 'neutron', 'net_segment_type': 'vlan'}, nodes_kwargs=[ {'api': True, 'meta': meta, 'pending_addition': True} ]) node_db = self.env.nodes[0] admin_nic_id = node_db.admin_interface.id admin_nets = [n.name for n in self.db.query( NodeNICInterface).get(admin_nic_id).assigned_networks_list] other_nics = self.db.query(NodeNICInterface).filter_by( node_id=node_db.id ).filter( not_(NodeNICInterface.id == admin_nic_id) ).all() priv_nic, other_nic = None, None for nic in other_nics: names = [n.name for n in nic.assigned_networks_list] if names == ['private']: priv_nic = nic prin_nets = names elif names: other_nic = nic other_nets = names self.assertTrue(priv_nic and other_nic) nics = NeutronManager.get_default_networks_assignment(node_db) def_admin_nic = [n for n in nics if n['id'] == admin_nic_id] def_priv_nic = [n for n in nics if n['id'] == priv_nic.id] def_other_nic = [n for n in nics if n['id'] == other_nic.id] self.assertEquals(len(def_admin_nic), 1) self.assertEquals(len(def_priv_nic), 1) self.assertEquals(len(def_other_nic), 1) self.assertEquals( set(admin_nets), set([n['name'] for n in def_admin_nic[0]['assigned_networks']])) self.assertEquals( set(prin_nets), set([n['name'] for n in def_priv_nic[0]['assigned_networks']])) self.assertEquals( set(other_nets), set([n['name'] for n in def_other_nic[0]['assigned_networks']]))
def test_vlan_get_default_nic_assignment(self): meta = self.env.default_metadata() self.env.set_interfaces_in_meta(meta, [{ 'name': 'eth0', 'mac': '00:00:00:00:00:11' }, { 'name': 'eth1', 'mac': '00:00:00:00:00:22' }, { 'name': 'eth2', 'mac': '00:00:00:00:00:33' }]) self.env.create(cluster_kwargs={ 'net_provider': 'neutron', 'net_segment_type': 'vlan' }, nodes_kwargs=[{ 'api': True, 'meta': meta, 'pending_addition': True }]) node_db = self.env.nodes[0] admin_nic_id = node_db.admin_interface.id admin_nets = [ n.name for n in self.db.query(NodeNICInterface).get( admin_nic_id).assigned_networks_list ] other_nics = self.db.query(NodeNICInterface).filter_by( node_id=node_db.id).filter( not_(NodeNICInterface.id == admin_nic_id)).all() other_nic, empty_nic = None, None for nic in other_nics: names = [n.name for n in nic.assigned_networks_list] if 'public' in names: other_nic = nic other_nets = names elif names == []: empty_nic = nic self.assertTrue(other_nic and empty_nic) nics = NeutronManager.get_default_networks_assignment(node_db) def_admin_nic = [n for n in nics if n['id'] == admin_nic_id] def_other_nic = [n for n in nics if n['id'] == other_nic.id] self.assertEquals(len(def_admin_nic), 1) self.assertEquals(len(def_other_nic), 1) self.assertEquals( set(admin_nets), set([n['name'] for n in def_admin_nic[0]['assigned_networks']])) self.assertEquals( set(other_nets), set([n['name'] for n in def_other_nic[0]['assigned_networks']]))
def check_networks_assignment(self, node_db): node_nics = self.db.query(NodeNICInterface).filter_by( node_id=node_db.id).all() def_nics = NeutronManager.get_default_networks_assignment(node_db) self.assertEqual(len(node_nics), len(def_nics)) for n_nic in node_nics: n_assigned = set(n['name'] for n in n_nic.assigned_networks) for d_nic in def_nics: if d_nic['id'] == n_nic.id: d_assigned = set(n['name'] for n in d_nic['assigned_networks']) \ if d_nic.get('assigned_networks') else set() self.assertEqual(n_assigned, d_assigned) break else: self.fail("NIC is not found")
def check_networks_assignment(self, node_db): node_nics = self.db.query(NodeNICInterface).filter_by( node_id=node_db.id ).all() def_nics = NeutronManager.get_default_networks_assignment(node_db) self.assertEqual(len(node_nics), len(def_nics)) for n_nic in node_nics: n_assigned = set(n['name'] for n in n_nic.assigned_networks) for d_nic in def_nics: if d_nic['id'] == n_nic.id: d_assigned = set(n['name'] for n in d_nic['assigned_networks']) \ if d_nic.get('assigned_networks') else set() self.assertEqual(n_assigned, d_assigned) break else: self.fail("NIC is not found")