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