def test_get_service_port(self): fake_service_port = fake_network.FakePort(device_id='manila-share') fake_service_net = fake_network.FakeNetwork(subnets=[]) self.stubs.Set(self._manager.neutron_api, 'list_ports', mock.Mock(return_value=[])) self.stubs.Set(self._manager, '_execute', mock.Mock(return_value=('fake_host', ''))) self.stubs.Set(self._manager.neutron_api, 'create_port', mock.Mock(return_value=fake_service_port)) self.stubs.Set(self._manager.neutron_api, 'get_network', mock.Mock(return_value=fake_service_net)) self.stubs.Set(self._manager.neutron_api, 'update_port_fixed_ips', mock.Mock(return_value=fake_service_port)) result = self._manager._get_service_port() self._manager.neutron_api.list_ports.assert_called_once_with( device_id='manila-share') self._manager.db.service_get_all_by_topic.assert_called_once() self._manager.neutron_api.create_port.assert_called_once_with( self._manager.service_tenant_id, self._manager.service_network_id, device_id='manila-share', device_owner='manila:share', host_id='fake_host') self._manager.neutron_api.get_network.assert_called_once() self.assertFalse( self._manager.neutron_api.update_port_fixed_ips.called) self.assertEqual(result, fake_service_port)
def test_get_service_port_exists(self): fake_service_port = fake_network.FakePort(device_id='manila-share') fake_service_net = fake_network.FakeNetwork(subnets=[]) self.stubs.Set(self._manager.neutron_api, 'list_ports', mock.Mock(return_value=[fake_service_port])) self.stubs.Set(self._manager.db, 'service_get_all_by_topic', mock.Mock(return_value=[{ 'host': 'fake_host' }])) self.stubs.Set(self._manager.neutron_api, 'create_port', mock.Mock(return_value=fake_service_port)) self.stubs.Set(self._manager.neutron_api, 'get_network', mock.Mock(return_value=fake_service_net)) self.stubs.Set(self._manager.neutron_api, 'update_port_fixed_ips', mock.Mock(return_value=fake_service_port)) result = self._manager._get_service_port() self._manager.neutron_api.list_ports.assert_called_once_with( device_id='manila-share') self.assertFalse(self._manager.db.service_get_all_by_topic.called) self.assertFalse(self._manager.neutron_api.create_port.called) self._manager.neutron_api.get_network.assert_called_once() self.assertFalse( self._manager.neutron_api.update_port_fixed_ips.called) self.assertEqual(result, fake_service_port)
def test_get_private_router(self): fake_net = fake_network.FakeNetwork() fake_subnet = fake_network.FakeSubnet(gateway_ip='fake_ip') fake_share_network = { 'neutron_net_id': fake_net['id'], 'neutron_subnet_id': fake_subnet['id'] } self.stubs.Set(self._manager.db, 'share_network_get', mock.Mock(return_value=fake_share_network)) fake_port = fake_network.FakePort(fixed_ips=[{ 'subnet_id': fake_subnet['id'], 'ip_address': fake_subnet['gateway_ip'] }], device_id='fake_router_id') fake_router = fake_network.FakeRouter(id='fake_router_id') self.stubs.Set(self._manager.neutron_api, 'get_subnet', mock.Mock(return_value=fake_subnet)) self.stubs.Set(self._manager.neutron_api, 'list_ports', mock.Mock(return_value=[fake_port])) self.stubs.Set(self._manager.neutron_api, 'show_router', mock.Mock(return_value=fake_router)) result = self._manager._get_private_router(fake_net['id'], fake_subnet['id']) self._manager.neutron_api.get_subnet.assert_called_once_with( fake_subnet['id']) self._manager.neutron_api.list_ports.assert_called_once_with( network_id=fake_net['id']) self._manager.neutron_api.show_router.assert_called_once_with( fake_router['id']) self.assertEqual(result, fake_router)
def test_get_service_network_net_does_not_exists(self): net = fake_network.FakeNetwork() self.stubs.Set(self._manager.neutron_api, 'get_all_tenant_networks', mock.Mock(return_value=[])) self.stubs.Set(self._manager.neutron_api, 'network_create', mock.Mock(return_value=net)) result = self._manager._get_service_network() self.assertEqual(result, net['id'])
def test_setup_network_for_instance1(self): fake_service_net = fake_network.FakeNetwork(subnets=[]) fake_service_subnet = fake_network. \ FakeSubnet(name=self.share['share_network_id']) fake_router = fake_network.FakeRouter() fake_ports = [ fake_network.FakePort(fixed_ips=[{ 'ip_address': '1.2.3.4' }]), fake_network.FakePort(fixed_ips=[{ 'ip_address': '5.6.7.8' }]), ] self.stubs.Set(self._manager, 'connect_share_server_to_tenant_network', True) self.stubs.Set(self._manager.neutron_api, 'get_network', mock.Mock(return_value=fake_service_net)) self.stubs.Set(self._manager.neutron_api, 'subnet_create', mock.Mock(return_value=fake_service_subnet)) self.stubs.Set(self._manager, '_get_private_router', mock.Mock(return_value=fake_router)) self.stubs.Set(self._manager.neutron_api, 'router_add_interface', mock.Mock()) self.stubs.Set(self._manager.neutron_api, 'create_port', mock.Mock(side_effect=fake_ports)) self.stubs.Set(self._manager, '_get_cidr_for_subnet', mock.Mock(return_value='fake_cidr')) network_data = self._manager._setup_network_for_instance( 'fake-net', 'fake-subnet') self._manager.neutron_api.get_network. \ assert_called_once_with(self._manager.service_network_id) self._manager._get_private_router. \ assert_called_once_with('fake-net', 'fake-subnet') self._manager.neutron_api.router_add_interface. \ assert_called_once_with('fake_router_id', 'fake_subnet_id') self._manager.neutron_api.subnet_create.assert_called_once_with( self._manager.service_tenant_id, self._manager.service_network_id, 'routed_to_fake-subnet', 'fake_cidr') self.assertEqual(self._manager.neutron_api.create_port.call_args_list, [((self._manager.service_tenant_id, self._manager.service_network_id), { 'subnet_id': 'fake_subnet_id', 'device_owner': 'manila' }), ((self._manager.service_tenant_id, 'fake-net'), { 'subnet_id': 'fake-subnet', 'device_owner': 'manila' })]) self._manager._get_cidr_for_subnet.assert_called_once_with() self.assertIs(network_data.get('service_subnet'), fake_service_subnet) self.assertIs(network_data.get('router'), fake_router) self.assertIs(network_data.get('service_port'), fake_ports[0]) self.assertIs(network_data.get('public_port'), fake_ports[1]) self.assertEqual(network_data.get('ports'), fake_ports)
def test_get_private_router_exception(self): fake_net = fake_network.FakeNetwork() fake_subnet = fake_network.FakeSubnet(gateway_ip='fake_ip') fake_share_network = { 'neutron_net_id': fake_net['id'], 'neutron_subnet_id': fake_subnet['id'] } self.stubs.Set(self._manager.db, 'share_network_get', mock.Mock(return_value=fake_share_network)) self.stubs.Set(self._manager.neutron_api, 'get_subnet', mock.Mock(return_value=fake_subnet)) self.stubs.Set(self._manager.neutron_api, 'list_ports', mock.Mock(return_value=[])) self.assertRaises(exception.ManilaException, self._manager._get_private_router, fake_net['id'], fake_subnet['id'])
def test_setup_network_for_instance0(self): fake_service_net = fake_network.FakeNetwork(subnets=[]) fake_service_subnet = fake_network.\ FakeSubnet(name=self.share['share_network_id']) fake_router = fake_network.FakeRouter() fake_port = fake_network.FakePort() self.stubs.Set(self._manager, 'connect_share_server_to_tenant_network', False) self.stubs.Set(self._manager.neutron_api, 'get_network', mock.Mock(return_value=fake_service_net)) self.stubs.Set(self._manager.neutron_api, 'subnet_create', mock.Mock(return_value=fake_service_subnet)) self.stubs.Set(self._manager.db, 'share_network_get', mock.Mock(return_value='fake_share_network')) self.stubs.Set(self._manager, '_get_private_router', mock.Mock(return_value=fake_router)) self.stubs.Set(self._manager.neutron_api, 'router_add_interface', mock.Mock()) self.stubs.Set(self._manager.neutron_api, 'create_port', mock.Mock(return_value=fake_port)) self.stubs.Set(self._manager, '_get_cidr_for_subnet', mock.Mock(return_value='fake_cidr')) network_data = self._manager._setup_network_for_instance( 'fake-net', 'fake-subnet') self._manager.neutron_api.get_network.assert_called_once_with( self._manager.service_network_id) self._manager._get_private_router.assert_called_once_with( 'fake-net', 'fake-subnet') self._manager.neutron_api.router_add_interface.assert_called_once_with( 'fake_router_id', 'fake_subnet_id') self._manager.neutron_api.subnet_create.assert_called_once_with( self._manager.service_tenant_id, self._manager.service_network_id, 'routed_to_fake-subnet', 'fake_cidr') self._manager.neutron_api.create_port.assert_called_once_with( self._manager.service_tenant_id, self._manager.service_network_id, subnet_id='fake_subnet_id', device_owner='manila') self._manager._get_cidr_for_subnet.assert_called_once() self.assertIs(network_data.get('service_subnet'), fake_service_subnet) self.assertIs(network_data.get('router'), fake_router) self.assertIs(network_data.get('service_port'), fake_port) self.assertNotIn('public_port', network_data) self.assertEqual(network_data.get('ports'), [fake_port])
def test_setup_network_for_instance(self): fake_service_net = fake_network.FakeNetwork(subnets=[]) fake_service_subnet = fake_network.\ FakeSubnet(name=self.share['share_network_id']) fake_router = fake_network.FakeRouter() fake_port = fake_network.FakePort() self.stubs.Set(self._manager.neutron_api, 'get_network', mock.Mock(return_value=fake_service_net)) self.stubs.Set(self._manager.neutron_api, 'subnet_create', mock.Mock(return_value=fake_service_subnet)) self.stubs.Set(self._manager.db, 'share_network_get', mock.Mock(return_value='fake_share_network')) self.stubs.Set(self._manager, '_get_private_router', mock.Mock(return_value=fake_router)) self.stubs.Set(self._manager.neutron_api, 'router_add_interface', mock.Mock()) self.stubs.Set(self._manager.neutron_api, 'create_port', mock.Mock(return_value=fake_port)) self.stubs.Set(self._manager, '_get_cidr_for_subnet', mock.Mock(return_value='fake_cidr')) result = self._manager._setup_network_for_instance( 'fake-net', 'fake-subnet') self._manager.neutron_api.get_network.\ assert_called_once_with(self._manager.service_network_id) self._manager._get_private_router.\ assert_called_once_with('fake-net', 'fake-subnet') self._manager.neutron_api.router_add_interface.\ assert_called_once_with('fake_router_id', 'fake_subnet_id') self._manager.neutron_api.subnet_create.assert_called_once_with( self._manager.service_tenant_id, self._manager.service_network_id, 'routed_to_fake-subnet', 'fake_cidr') self._manager.neutron_api.create_port.assert_called_once_with( self._manager.service_tenant_id, self._manager.service_network_id, subnet_id='fake_subnet_id', device_owner='manila') self._manager._get_cidr_for_subnet.assert_called_once() self.assertEqual(result, ('fake_subnet_id', 'fake_router_id', fake_port['id']))
def test_get_service_network_ambiguos(self): net = fake_network.FakeNetwork(name=CONF.service_network_name) self.stubs.Set(self._manager.neutron_api, 'get_all_tenant_networks', mock.Mock(return_value=[net, net])) self.assertRaises(exception.ManilaException, self._manager._get_service_network)