01:06:00 <zhiyuan> #startmeeting tricircle 01:06:01 <openstack> Meeting started Wed Jan 31 01:06:00 2018 UTC and is due to finish in 60 minutes. The chair is zhiyuan. Information about MeetBot at http://wiki.debian.org/MeetBot. 01:06:02 <openstack> Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 01:06:04 <openstack> The meeting name has been set to 'tricircle' 01:06:19 <zhiyuan> #topic new-l3-model 01:06:37 <zhiyuan> first I would like to discuss the new l3 modle 01:07:23 <zhiyuan> as we know, currently a router only support one external gateway 01:07:55 <zhiyuan> but in our new model, we need to associate one router with more than one external networks 01:08:28 <zhiyuan> Yipei, is that correct? that's our current problem 01:10:34 <Yipei> yes, actually only the gateway of bridge net is set to the router. but to add the external network to the router, the gateway port is specified as a hint 01:12:40 <Yipei> so maybe we need to find another way to add the external network to the non local router 01:13:16 <zhiyuan> in your graph, the actual topology is that local routers and non-local routers are all connected to the bridge network, but since bridge network is not exposed to users, we can only expose one router to users 01:13:34 <zhiyuan> and we automatically create the local and non-local routers 01:14:37 <Yipei> i think the non local router can be created by users 01:15:27 <zhiyuan> if so, how to trigger tricircle to attach the local router to bridge network? 01:16:37 <zhiyuan> when non local router is not created 01:17:42 <Yipei> oh, i see. i was oblivious to the case 01:18:35 <zhiyuan> yeah, in the new model, both EW and NS traffic need to go through the non-local router 01:19:54 <zhiyuan> so I suggest to expose only one router 01:23:57 <Yipei> you mean only exposing the non local router, and interfaces of networks are added to the router, the gateway of the bridge net is set to the router 01:24:11 <Yipei> the local routers are transparent to users 01:24:51 <zhiyuan> tenant networks and external networks are all attached to the exposed router 01:24:51 <Yipei> so the non local router must be created first 01:25:15 <zhiyuan> no need to distinguish local and non-local 01:25:22 <Yipei> ok, i see 01:26:38 <zhiyuan> "tenant networks and external networks are all attached to the exposed router", this is in the user perspective 01:26:54 <Yipei> ok, i see 01:28:10 <zhiyuan> however, one router can only be attached to one external network, so we need to find a way to associate more than one external network info to one "external network instance" 01:29:42 <zhiyuan> there are two ways. One is using subnet, one network can have more than one subnets, the other is using "routed network", one routed network can have more than one segments 01:31:38 <Yipei> ok, i think i need to investigate the two solutions 01:33:28 <zhiyuan> I prefer the routed network way, network info can be saved in the segment of routed network. But we need to see how to map the segment info to specific region 01:35:19 <Yipei> ok, i will do some research on the routed network solution and update the spec 01:36:02 <zhiyuan> fine, you can check if the data model of routed network has some space for us to save the region info 01:36:37 <zhiyuan> next let's move to the resource deleting patch 01:36:47 <zhiyuan> #topic reliable resource deletion 01:37:15 <zhiyuan> I check the log and find the reason for the error 01:37:24 <song> why? 01:37:43 <song> I have checked use neutron 404 01:37:53 <song> but last day also failed 01:39:21 <zhiyuan> the flow is that: user delete network -> central neutron mark "in-delete", then call local neutron to delete -> local neutron "get-network" before delete network -> central neutron receive "get-network" request from local neutron and return 404(since "in-delete" is mark) -> local neutron raise exception 01:41:47 <song> yes, i think my code is so. 01:42:36 <zhiyuan> oh, this analysis is based on your code submitted, after you change the exception to neutron exception, the local neutron still raise exception? 01:42:54 <song> yes 01:43:13 <song> I have send the error last night in wechart. 01:43:53 <zhiyuan> so it doesn't ignore the 404 response and return directly in "delete-network" 01:44:31 <song> it is raised in get network. 01:44:43 <song> when request come from local. 01:46:04 <xuzhuang> what's the exception raised in local neutron? 01:47:29 <zhiyuan> it's fine for get-network to raise not-found exception, this exception will be wrapped as a 404 response 01:47:57 <song> in the neutron client client.py line 92 exception_handle_v2.0 01:48:30 <song> I submit a new path today use the neuron exception so you can see the log. 01:53:18 <zhiyuan> ok, let's check the log after that. 01:53:40 <xuzhuang> when I run the unit test of delete_sg, raise DBNonExistentTable: (sqlite3.OperationalError) no such table: securitygroupportbindings. 01:53:40 <xuzhuang> I think it should configure the table of securitygroupportbindings in unit test, but haven't worked. 01:54:18 <song> to xuzhuang have you rerun stack.sh 01:54:32 <song> if you change database table you need rerun it 01:55:22 <xuzhuang> unit test also need rerun stack.sh? 01:55:53 <zhiyuan> neutron db operation in unit test is simulated in tricircle/tests/unit/utils.py 01:56:16 <song> I mean if you change the database table after run devstack. 01:56:53 <zhiyuan> song, xuzhuang's problem is that the needed neutron table in not created in unit test 01:57:01 <xuzhuang> oh, i haven't changed table 01:57:31 <song> oh i miss understand it sorry. 01:58:02 <zhiyuan> after you register the table in tests/unit/utils.py, what error occurs? 01:59:04 <xuzhuang> you mean configed portbinds in _resource_list? I have try this solution, but it haven't worked. 01:59:32 <zhiyuan> so I am asking the error 01:59:43 <zhiyuan> you may also modify " def add(self, model_obj):" 02:00:34 <xuzhuang> ok, i will have a tryp 02:00:36 <zhiyuan> to save the related resource in self.store_map 02:01:20 <xuzhuang> ok 02:01:29 <xuzhuang> I have learned about the mapping of default security group between central and local. But I haven't known 02:01:29 <xuzhuang> the relation ship of normal security group between central and local. There is no create_security_group in tricircle, 02:01:30 <xuzhuang> should i add this function? 02:01:44 <zhiyuan> tests/unit/utils.py mocks all the DB operation function for neutron resource, so if you find some table missing, or some resource not found, you can check this file 02:02:36 <xuzhuang> ok, Got it 02:03:10 <zhiyuan> network/security_groups.py already inherit securitygroups_db.SecurityGroupDbMixin, no new definition means that the base function is used 02:03:29 <zhiyuan> you can create new SEG via tricircle 02:04:47 <xuzhuang> ok, when deleting security group should i delete the rules belonged this sg firstly? 02:05:48 <zhiyuan> for this, you can check if deleting a SEG will delete all the rules under it in Neutron first 02:06:04 <zhiyuan> if so, you just delete the SEG 02:06:11 <xuzhuang> ok, Got it 02:07:15 <zhiyuan> so much for today, thanks for attending 02:07:24 <zhiyuan> #endmeeting