Tuesday, 2016-12-13

*** hujie has quit IRC00:06
*** rajivk has quit IRC00:37
*** rajivk has joined #openstack-dragonflow00:50
*** gongysh has joined #openstack-dragonflow02:35
*** rajivk has quit IRC02:50
openstackgerritMerged openstack/dragonflow: [TrivialFix]File *.rst fix typo error  https://review.openstack.org/40962102:58
*** rajivk has joined #openstack-dragonflow03:02
openstackgerritrajiv proposed openstack/dragonflow: Correction in df-db dump command  https://review.openstack.org/40953703:03
openstackgerritHong Hui Xiao proposed openstack/dragonflow: Support qos in network  https://review.openstack.org/40357703:07
openstackgerritMerged openstack/dragonflow: Add close function on publishers  https://review.openstack.org/40754103:29
*** gongysh has quit IRC03:39
openstackgerrithujie proposed openstack/dragonflow: uniform resource method name in df_local_controller  https://review.openstack.org/40945003:43
*** gongysh has joined #openstack-dragonflow03:54
openstackgerrithujie proposed openstack/dragonflow: refactor db consistent and object refresher(step1)  https://review.openstack.org/40859104:18
openstackgerrithujie proposed openstack/dragonflow: refactor db consistent and object refresher(step1)  https://review.openstack.org/40859104:19
*** rajivk has quit IRC05:07
*** rajivk has joined #openstack-dragonflow05:20
*** rajivk has quit IRC05:29
*** irenab_ has joined #openstack-dragonflow05:38
*** rajivk has joined #openstack-dragonflow05:42
*** rajivk has quit IRC05:49
*** rajivk has joined #openstack-dragonflow06:01
*** rajivk has quit IRC06:27
*** rajivk has joined #openstack-dragonflow06:39
*** saggi has joined #openstack-dragonflow06:53
*** saggi has quit IRC07:17
*** zenoway has joined #openstack-dragonflow07:34
*** yamamoto has quit IRC07:55
*** yuval has joined #openstack-dragonflow08:05
*** yuval has quit IRC08:11
*** oanson has joined #openstack-dragonflow08:11
*** duankebo has joined #openstack-dragonflow08:15
oansonduankebo, hi08:15
oansonThe deployement patch is here: https://review.openstack.org/#/c/391524/08:16
oansonYou can test it either by cloning openstack-ansible-os_neutron to a VM, and running 'tox -e dragonflow',08:16
oansonOr by using openstack ansible overlay, spacifically this branch: https://github.com/Logan2211/openstack-ansible-overlay/tree/dragonflow08:17
oansonThe overlay project has usage documentation08:17
duankeboOK08:18
duankebodoes it include the deployment of redis cluster?08:19
oansonCurrently no. Only etcd.08:19
oansonIf redis is already deployed, it can be linked via configuration08:19
oansonBut deploying the actual Redis cluster is not yet covered08:19
duankeboare you planing to do some PoC also?08:21
oansonDepends on your meaning of PoC. There is a tox environment, and there is the overlay project configuration08:22
oansonDoes that qualify, or did you mean something else?08:22
duankebowe are looking for appropriate projects to put dragonflow into practice.08:22
*** dimak has joined #openstack-dragonflow08:23
oansonThat's great!08:23
*** saggi has joined #openstack-dragonflow08:23
duankebono only deployment. I means testing the entire networking function together with customer.08:24
saggidinak, dragnflow is 🐲+🙋08:24
saggidimak ^^08:24
oansonduankebo, what did you have in mind?08:25
duankeboHi gal!08:25
oansonduankebo, that's saggi, the Karbor PTL08:25
duankebooh, sorry! looks so similar to gal's name!08:26
duankeboHi saggi!08:26
oansonYeah. Caused a lot of confusion in the past :)08:28
duankeboIn fact, there are many PoC projects, but we need to find out one fitting for dragonflow.08:28
oansonObviously, I'd be happy to assist in any way I can08:28
duankebo^o^, thank you!08:29
oansonnp08:31
*** yamamoto has joined #openstack-dragonflow08:32
*** yamamoto_ has joined #openstack-dragonflow08:33
duankeboThis website is unreachable!08:34
duankebohttps://logan.protiumit.com/2016/07/31/openstack-ansible-overlay.html08:34
duankeboCan you?08:34
*** yamamoto has quit IRC08:37
*** lihi has joined #openstack-dragonflow08:40
*** yuval has joined #openstack-dragonflow08:40
dimak#join ✈08:41
openstackgerritHong Hui Xiao proposed openstack/dragonflow: Refactor test case for ml2 mech driver(qos)  https://review.openstack.org/39375008:54
oansonduankebo, sorry I only saw this now. I found the source : https://github.com/Logan2211/logan2211.github.io/blob/master/_posts/2016-07-31-openstack-ansible-overlay.markdown09:12
oansonwhich should be accessible09:13
duankeboYes, it's accessible!09:27
openstackgerritMerged openstack/dragonflow: Refactor DHCP app for code reusage  https://review.openstack.org/27452809:29
*** gongysh has quit IRC09:36
oansondimak, ping09:40
*** rajivk has quit IRC09:40
dimakoanson, hey09:40
oansonI commented on patch 209:41
oansonAdded to the discussion with xiaohhui09:41
oansonI think I have a compromise for what I don't like about the change in 109:41
dimakoanson, thanks, reading09:45
*** xiaohhui has joined #openstack-dragonflow09:45
oansonxiaohhui, hi09:46
xiaohhuihello09:46
oansondimak, xiaohhui, maybe we'll continue the discussion here?09:46
*** yamamoto_ has quit IRC09:46
xiaohhuiyeah, let me check your comment first09:46
dimakoanson, xiaohhui hey09:46
oansonnp09:46
dimakoanson, did you get to read the comments on line 971?09:47
oansonNo. 1 sec09:47
*** yamamoto has joined #openstack-dragonflow09:47
oansonYes I see09:49
oansonI think of it more as Mixins than tool classes. You have a mixin to support unique keys. And a mixin to support CRUD09:49
oansonAnd later mixins to support other things (if that ever comes up)09:49
oansonLike maybe subelements (subnets, router ports)09:50
dimakI wouldn't call it a mixin though09:50
xiaohhuiWhat about change from  nb_api.create_lport to  nb_api.create(models.Lport), instead of nb_api.lport.create. It is more nature to semantic.09:50
xiaohhuihttps://thepasteb.in/p/xGhmn9mL642fM09:51
xiaohhuiand the method in nb_api can be organized this way09:51
dimakxiaohhui, I don't think passing around table_name is better than passing the model itself09:52
xiaohhuiIt just feel strange to me to change the initialize method everytime we add a resource to nb db09:53
*** rajivk has joined #openstack-dragonflow09:53
oansonxiaohhui, I agree. Maybe as a next step we can have resources automatically register themselves?09:53
irenab_xiaohhui, dimak , just add model registration method, so every new model will add itself09:53
xiaohhuiWhy you need model, only the table_name will be used09:53
dimakI think its convenient09:53
oansonActually, if you have the model, you can get more info from it09:54
oansone.g. which CRUDHelper to use. Which features are supported.09:54
dimakxiaohhui, model is more useful, e.g. in nb_api.get(table_name, id)09:54
oansonIn an implementation where models register themselves, you don't have this info in advance09:54
dimakwith model you can just model(db_driver.get_key(model.table_name, key))09:54
xiaohhuiYou can put model in crudhelper, but the user of nb_api don't need to know the model, right?09:55
dimakbut for table_name I still have to through the model:09:56
dimakmodels.Lport.table_name09:56
openstackgerritWangJian proposed openstack/dragonflow: Refactor port-status-update NB API  https://review.openstack.org/39691509:56
xiaohhuiit is just a const to me, when I added them09:56
dimakunless I get it from the db update, then we can add a lookup in models module09:57
oansonor in the module registration mechanism09:58
dimakirenab_, I can add model registration09:58
dimakBut NB api will have to know which crud helper to use with it09:58
oansondimak, that can be provided during registration (e.g. by the model itself)09:59
irenab_oanson, +109:59
xiaohhuior we can just hide the attributes of nb_api(like chassis, lswitch in current patch), and just manage them under the hood.09:59
xiaohhuiwe added them staticly, not expose every handler to user10:00
xiaohhuijust let user to tell which resource he/she wants to create/update/delete/get10:00
xiaohhuiwhich resource name10:00
xiaohhuiand nb_api itself chose the handler under the hood10:01
xiaohhuiand do the job10:01
irenab_I think that who ever uses nB api should get REST like experience10:01
irenab_NB API will dispach the request to the proper resource Handler10:02
xiaohhuiyeah, that is my point,10:02
xiaohhuiso nb_api will only to provide CRUD methods all the time10:02
xiaohhuiThere is a similar change here,   https://review.openstack.org/#/c/409669/2/dragonflow/db/db_store.py10:04
xiaohhuiwhich I think we should also prevent it.10:05
dimakI think parameter is less convenient than binding it internally and providing a method10:05
xiaohhuiIf we write code this way, we are losing the convenience of const.10:05
dimakWhat do you mean?10:05
xiaohhuiUser has to know which handler/attribute is mapped to the actual resource10:06
dimakthe member we we don't even have to import models module10:06
*** rajivk has quit IRC10:06
xiaohhuiImport could be less, but as I said, I think the table_name is a const. The const module is nature to be imported everywhere.10:07
oansonWe could allow both APIs, but I suspect that would be too cumbersome10:07
oansondimak, in your solution, how do you solve automatic registration?10:08
oansonIn xiaohhui10:08
oansonIn xiaohhui 's solution, this is handled almost automatically10:08
dimakoanson, no but I will try to add it10:09
oansonSo far this is a great advantage to xiaohhui 's solution, and the only major difference I see10:09
dimakWe're going for lunch I'll try to see if I can add autoregistration10:09
dimakI agree10:09
oansonSince I don't mind if we get the model using a a getter or a property10:09
oansonxiaohhui, you're willing to wait to see what dimak comes up with, and take it from there (tomorrow, if it's too late for you?)10:10
xiaohhuiIn my mind, I think the user(just the developer ourself), only need to know which resource to operate, and which module(db_store, nb_api) to use. And just tell the db_store or nb_api, which action he/she want to perform on which resource.10:11
xiaohhuihe/she may not want to know the details of db_store and nb_api, they just needs to do their own job10:11
oansonxiaohhui, yes. But if the resource name is an attribute on nbapi/dbstore, or retrieved using a getter, I don't think it makes a lot of difference10:12
oansonExcept maybe namespace pollution on nb_api10:12
oanson(which is also an issue with dimak's solution, as we saw in patch 1)10:13
xiaohhuiSo, if it is me, I don't want to checkout which handler in nb_api I should pick. I don't even want to open the file of nb_api.10:13
*** yamamoto has quit IRC10:14
xiaohhuiI want just call nb_api.create(resource_name)10:14
oansonI see. Using your solution, this is trivial. Using dimak 's solution, we have to manually maintain some form of convention10:14
oansonxiaohhui, or nb_api.get(resource_name).create(...)10:15
oanson('get' may need to be a better name)10:15
*** yamamoto has joined #openstack-dragonflow10:15
oansoncreate/update/delete/get can be syntactic sugars in this case. e.g. create(<resoiurce>, ...) calls get_resource(<resource>).create(...)10:15
oansonSince we may want to allow other methods for specific resources, and we may want the resource to provide them, without changing nb_api10:16
oanson(dynamic registration scenario, REST API)10:16
*** lihi has quit IRC10:17
xiaohhuiThat is ok, too. I think we can do dynamic registration work latter. But this convenience is what I want to see10:17
xiaohhuiFor that scenario, your proposal is better than mine10:17
oansonI just want to make sure we see the whole picture, so we won't have to revisit this decision10:18
*** rajivk has joined #openstack-dragonflow10:18
oansonI'll pick up the discussion with dimak. I feel his solution is too syntax-friendly, and not extensible enough10:19
oanson(As a result of this discussion)10:19
oansonxiaohhui, thanks for your help10:20
xiaohhuiOK, we may not have a perfect solution here, but discussion is always good10:20
xiaohhuinp10:20
oansonagreed10:21
oansonrajivk, ping10:23
rajivkoanson, hi10:24
oansonHi. Do you still have a free hand?10:24
xiaohhuihave a good lunch oanson, bye10:24
oansonI am looking for a carrier for data-plane performance tests, e.g. browbeat and its modules10:24
oansonxiaohhui, thanks. Have a good dinner.10:24
oansonrajivk, are you interested?10:25
*** yamamoto has quit IRC10:26
*** yamamoto has joined #openstack-dragonflow10:27
*** rajivk has quit IRC10:28
*** dimak has quit IRC10:32
*** rajivk has joined #openstack-dragonflow10:40
*** yamamoto has quit IRC10:41
*** dimak has joined #openstack-dragonflow10:45
openstackgerritYuli proposed openstack/dragonflow: Fix lock timeout issue Closes-bug: #1649548  https://review.openstack.org/41016010:45
openstackbug 1649548 in DragonFlow "High delay in create_network" [High,New] https://launchpad.net/bugs/1649548 - Assigned to Yuli (stremovsky)10:45
openstackgerritYuli proposed openstack/dragonflow: Fix lock timeout issue  https://review.openstack.org/41016010:45
*** yamamoto has joined #openstack-dragonflow10:46
*** rajivk has quit IRC11:06
*** yamamoto has quit IRC11:08
*** rajivk has joined #openstack-dragonflow11:18
*** yamamoto has joined #openstack-dragonflow11:21
*** yamamoto has quit IRC11:22
*** rajivk has quit IRC11:24
*** zenoway has quit IRC11:25
*** yamamoto has joined #openstack-dragonflow11:26
*** zenoway has joined #openstack-dragonflow11:26
*** zenoway has quit IRC11:30
*** rajivk has joined #openstack-dragonflow11:36
*** dimak has quit IRC11:37
*** dimak has joined #openstack-dragonflow11:50
*** lihi has joined #openstack-dragonflow12:01
openstackgerritWangJian proposed openstack/dragonflow: Refactor port-status-update NB API  https://review.openstack.org/39691512:10
*** hujie has joined #openstack-dragonflow12:12
oansonhujie, hi12:16
hujieHi12:16
oansonThe discussion was fairly long, but mostly dimak wanted to add an attribute per model to nb api, and have the crud methods on the returned object12:17
oansonxiaohhui wanted this to be done in the same manner as in db store12:17
hujieadd crud class into db store?12:18
oansonI think the direction we'll take in the end is: {nb_api|db_store}.get_resource(<resource>).<action>(...)12:18
oansonWe will want to make the two classes uniform12:18
oansonin the API level, at least12:18
dimakoanson, hujie hey, I'm taking a look at db_store patch for a minute12:19
oansonThis way, registering a new model would be easiest.12:19
oansonIn future, we'll want to add a dynamic/automatic model registration and REST (like) API support12:20
hujieyes, many methods in db store just have one line of code and they could be uniform12:20
hujiebut have some exceptions12:21
hujiefor example, set_port and delete_port12:21
hujieit will manipulate two dif tables12:21
dimakyes,not all models behave the same12:21
hujieand also we got the similar method, for example: get_ports_by_chassis12:22
hujiethe method is different from other methods12:22
oansonYes. We would want to support methods like that, preferably without needing to know about them in advance12:23
dimakalso db_store handles things that are not models, like local_port12:23
oansone.g. get_ports_by_chassis is provided by lport upon registration12:23
oansondimak, that is on the same level as get_ports_by_chassis12:24
oansonlport has a distinction between local and remote ports, and provides functionality to take advantage of that distinction12:24
dimakI think this autoregistration overcomplicates things12:24
oansondimak, but it will be needed12:24
oansonIf we want the NB api to be updated with new features (e.g. fwaas, tapaas, vpnaas, or anything that adds new models), this will be the best solution in the long run12:25
dimakOne of the issues with registration is that code is less navigatable12:25
oansonChanges should be as modular as possible. If for every feature NB api, db store, and df controller have to be modified, we need to find a way to simplify that12:25
hujieyes that's our aim12:26
oansondimak, that can be mitigated with correct code structure and documentation12:26
oansonNot the best solution, I agree12:26
oansonBut you can't have your kayak  and heat it12:26
oansonI mean you can't have your cake and eat it12:27
dimak🎂🔥12:27
oansonOf course, if you have an idea that answers all the requirements, I'd be more than happy to hear it :)12:27
dimakI just wonder what should be the relation between a model, nb_api, and the code that handles model over nb api (crud helper)12:28
oansonLet's see... nb api should manage writing to the database. But should be model oriented. A model registers itself at the nb api, possibly with additional functions12:30
oansonThe client developer takes the model and nb api, and calls the relevant operations.12:30
oansonThe same is true with db store, but similar, not identical12:31
oansonSince db store is a cache, additional features may be wanted, e.g. searching or indexing according specific fields (topic, chassis, local/remote)12:31
hujiemaybe I need more thinking to uniform all the methods which have different structure :)12:32
*** lihi has quit IRC12:32
oansonI think we all do12:32
oansonIt's not as easy as it looked yesterday :)12:32
*** yamamoto has quit IRC12:33
hujieyes :)12:33
oansonWhy don't I try writing a spec and pour my initial thoughts into it.  That way we have a general idea of what we are trying to achieve, including requirements, and a possible solution12:33
oansonI'll take our discussions today into account12:34
dimakoanson, hujie I agree. Maybe if we start using the models in a more uniform way, we use same code for all models12:34
oansonNote the different alternatives, with their pros and cons12:34
oansonI think that's the plan. Then we just register the model, and everything else should be automatic for the common case12:34
hujieok, we could record the solution into spec12:35
dimakI think we should take extra care in avoiding uncommon cases12:35
dimakif we have just one "crud-helper" code per dbstore / apinb, and no need to specialize them12:37
hujieok, let's have more thinking about the issue.12:39
*** yamamoto has joined #openstack-dragonflow12:54
*** yamamoto has quit IRC13:10
*** yamamoto has joined #openstack-dragonflow13:11
*** lihi has joined #openstack-dragonflow13:13
*** yamamoto has quit IRC13:16
*** gongysh has joined #openstack-dragonflow13:33
*** gongysh has quit IRC13:36
*** rajivk has quit IRC13:53
*** rajivk has joined #openstack-dragonflow14:05
*** yamamoto has joined #openstack-dragonflow14:14
*** rajivk has quit IRC14:15
*** yamamoto has quit IRC14:26
*** irenab_ has quit IRC14:35
*** gsagie has joined #openstack-dragonflow14:48
*** saggi1 has joined #openstack-dragonflow15:01
*** saggi has quit IRC15:01
*** saggi1 is now known as saggi15:01
*** saggi1 has joined #openstack-dragonflow15:02
*** gsagie has quit IRC15:03
*** yuval has quit IRC15:34
*** saggi has quit IRC15:37
*** lihi has quit IRC15:39
*** dimak has quit IRC15:39
openstackgerritOmer Anson proposed openstack/dragonflow: North Bound Code Refactor  https://review.openstack.org/41029816:24
oansonxiaohhui, hujie, dimak, irenab ^^^^^16:28
*** saggi1 has quit IRC19:01
openstackgerritSteve Kipp proposed openstack/dragonflow: Add unit tests to dhcp_app  https://review.openstack.org/40984421:27
*** yamamoto has joined #openstack-dragonflow22:28

Generated by irclog2html.py 2.14.0 by Marius Gedminas - find it at mg.pov.lt!