Friday, 2016-11-18

liushengzhenguo: sorry, I cames of work early yestoday01:08
zhenguoliusheng: no problem, hah01:29
*** yuntongjin has joined #openstack-nimble01:32
*** yuntongjin has quit IRC01:39
*** luyao has joined #openstack-nimble01:49
openstackgerritZhong Luyao proposed openstack/nimble: bug fix: delete instance correctly  https://review.openstack.org/39830601:58
openstackgerritZhong Luyao proposed openstack/nimble: bug fix: delete instance correctly  https://review.openstack.org/39830602:07
*** kevinz has quit IRC02:23
*** kevin__ has joined #openstack-nimble02:23
*** kevinz has joined #openstack-nimble02:24
*** zly_ has joined #openstack-nimble02:27
*** luyao has left #openstack-nimble02:27
*** zly_ has quit IRC02:28
*** zhongluyao has joined #openstack-nimble02:33
zhenguoshaohe_feng, liusheng: do you find there's an api.py file in compute directory which is used by nova api?02:54
liushengzhenguo: you mean nova/compute/api.py ?02:55
zhenguoshaohe_feng: not via rpc call02:55
zhenguoliusheng: yes,02:55
liushengzhenguo: yes02:55
zhenguoliusheng: not through rpc call02:55
liushengzhenguo: that is a part of nova-api's code02:55
zhenguoliusheng: which handles all requests related to compute resources02:55
zhenguoliusheng: yes, but why it is placed to compute directory02:56
zhenguoliusheng: should we add such a file which handle compute resouces like networking, storate, quotas?02:57
liushengzhenguo: hmm, I guess the Nova guys may thought the nova/compute/ is just a plugin of Nova process, so the api.py in compute/ is just an impletment with *this type* of nova-compuge02:59
liushengs/nova-compuge/nova-compute02:59
zhenguoliusheng: seems correct03:00
zhenguoliusheng: there's an API class for interacting with the compute manager03:02
liushengthe process in nova/api will init a nova_api variable wichi is nova.API(), the nova.API() is in the nova/compute/api.py. but if we want to implement our private nova-compute, the nova_api can be assigned ourself nova-compte03:02
zhenguoliusheng: yes, I would like to add an api.py file in engine directory, which is responsible to interact with engine manger through rpc, wdyt?03:04
zhenguoliusheng: we can move some networking or image related check there, and maybe add quotas check there before we issue an rpc call to engine03:04
zhenguoliusheng: seems it's better to keep api/controllers clean with only post/put/delete method03:05
liushengzhenguo: so that will be nimble-engine's api, not the Nimble's api03:06
zhenguoliusheng: yes03:06
zhenguoliusheng: oh, yes it's nimble engine's api, do you think we need that?03:07
liushengzhenguo: I think it doesn't matter where we put the code in03:09
zhenguoliusheng: agree03:10
liushengzhenguo: for the code structure clear, we can add an api.py03:10
liushengzhenguo: looks keystone, there is only an keystone-all, lol03:10
zhenguoliusheng: haha03:10
zhenguoliusheng: oh, I can understand why we need an api file in compute03:11
zhenguoliusheng: that's because not only api but also conductor may interact with compute, right?03:11
zhenguoliusheng: I mean in nova03:12
liushengzhenguo: why need api.py in compuge/ when conductor interacting with compuge ? hah03:13
liushengzhenguo: I don't think it is the reason03:13
zhenguoliusheng: oh, but why it's there?03:14
zhenguoliusheng: because that would be more clear? no rpc call directly from other components?03:14
zhenguoliusheng: no rpc call in code, I mean03:14
liushengzhenguo:the api.py does not include rpc server, it only invoke the rpc client03:18
liushengzhenguo: it will not be used by conductor03:18
zhenguoliusheng: oh, so only api will used that API class?03:19
liushengzhenguo: yes03:20
zhenguoliusheng: hah, seems there's also an api.py file in conductor03:20
zhenguoliusheng: which wrapped the rpc call03:21
zhenguoliusheng: cinder also copied this way03:26
liushengzhenguo: the api.py in conductor is also used by conductor's caller03:26
liushengzhenguo: yes03:26
zhenguoliusheng: we can also work like this03:27
liushengzhenguo: yeah, I am ok with that :)03:27
zhenguoliusheng: thanks :)03:28
zhenguoliusheng: and I just find currently users can't list availability zones from nimble :(  really many things to do...03:29
liushengzhenguo: the az in Nimble need to be configured in config file ?03:29
zhenguoliusheng: yes, I think we can work like cinder03:30
liushengzhenguo: I remembered cinder is write this in config file03:32
zhenguoliusheng: yes, we can just copy from cinder03:32
liushengzhenguo: cool :)03:33
zhenguoliusheng: lol03:33
* zhenguo brb03:34
openstackgerritMerged openstack/nimble: Use ironic cached_client instead of constructing every time  https://review.openstack.org/39892403:43
shaohe_fengzhenguo: liusheng what's the command  "tox -ecover"?  Is it for testcase coverage?04:49
zhenguoshaohe_feng: seems it is,04:59
zhenguoshaohe_feng: by running that command, we can get a cover directory04:59
shaohe_fengzhenguo: yes.05:00
shaohe_fengzhenguo: How to check the coverage?05:00
zhenguoshaohe_feng: maybe we need to setup a http server for that05:00
zhenguoshaohe_feng: all generated files are html05:00
shaohe_fengzhenguo: yes. many html in that file.05:01
zhenguoshaohe_feng: including all files in nimble tree05:01
shaohe_fengzhenguo: OK, let me check it.05:01
zhenguoshaohe_feng: ok, thanks05:01
shaohe_fengzhenguo: Coverage report: 60%05:03
zhenguoshaohe_feng: oh, not that bad :P05:03
shaohe_fengzhenguo: Yesterday, I check the principle of neutron testcase05:06
shaohe_fengzhenguo: The unit testcase is more,  functional fewer, and ful-stack more fewer.05:07
shaohe_fengzhenguo: unit testcase should cover edge case. that full-stack do not care.05:08
shaohe_fengzhenguo: full-stack is used for interactive of components.05:08
zhenguoshaohe_feng: yes, seems reasonable05:08
shaohe_fengzhenguo: we can follow the same way.05:11
zhenguoshaohe_feng: yes, so full-stack equals to tempest, right?05:11
shaohe_fengzhenguo: and we may need similor testcase mechenical like neutron full-stack05:11
shaohe_fengzhenguo: no, it is not equals to tempest.05:12
shaohe_fengzhenguo: it is lighter thant tempest.05:12
shaohe_fengzhenguo: for example, do not use nova, use fake vm05:12
shaohe_fengzhenguo: and it can run multi-node test on one host, and still use mysql and rabbitmq.05:13
zhenguoshaohe_feng: oh, sounds interesting, so we need to introduce a new test type?05:14
shaohe_fengzhenguo: if we have, this maybe useful.,05:14
shaohe_fengzhenguo: Full stack testing can simulate multi node testing by starting an agent multiple times.05:15
zhenguoshaohe_feng: yes, more tests are usually helpful, the more the better05:15
shaohe_fengzhenguo: Segmentation at the database layer is guaranteed by creating a database per test. The messaging layer achieves segmentation by utilizing a RabbitMQ feature called ‘vhosts’. In short, just like a MySQL server serve multiple databases, so can a RabbitMQ server serve multiple messaging domains. Exchanges and queues in one ‘vhost’ are segmented from those in another ‘vhost’.05:15
shaohe_fengzhenguo: you can see, full-stack seems powerful. :P05:16
shaohe_fengzhenguo: http://docs.openstack.org/developer/neutron/devref/development.environment.html#fullstack-tests05:16
shaohe_fengzhenguo: this is the introduce of their full stack.05:16
zhenguoshaohe_feng: thanks for the link05:17
zhenguoshaohe_feng: but, should full-stack be a high priority feature for us05:17
zhenguoshaohe_feng: ?05:17
shaohe_fengzhenguo: maybe liusheng can read it.05:17
shaohe_fengzhenguo: I think maybe not at present.05:18
zhenguoshaohe_feng: yes, but it's really a helpful thing05:18
zhenguoshaohe_feng: we can introduce later05:19
shaohe_fengzhenguo: Yes. The instance_create maybe higher priority. for it is the fundamental function of nimble.05:20
zhenguoshaohe_feng: yes, I would like to add a api.py in engine dir which include interfaces to interact with engine manager05:20
zhenguoshaohe_feng: which maybe is the first step for our refactor05:21
zhenguoshaohe_feng: like nova and cinder's way, the api file wrapped real rpc call and contain many checks like quotas, but which will be run on api side05:22
zhenguoshaohe_feng: as we only have two components, after api issued a rpc cast to engine, it just returned05:23
zhenguoshaohe_feng: so, I would like to move all checks to api, engine only do other time consuming things05:23
shaohe_fengzhenguo: yes. great. Now the rpc call are in engine/baremetal/ironic.py05:24
shaohe_fengzhenguo: It is good in a api.py.05:24
zhenguoshaohe_feng: no, that's http call in ironic.py05:24
zhenguoshaohe_feng: I mean internal components nimble-api to nimble-engine05:25
shaohe_fengzhenguo: Got it.05:25
shaohe_fengzhenguo: ironic is service, http.05:25
zhenguoshaohe_feng: yes, hah05:25
shaohe_fengzhenguo: about instance_create rpc call?05:27
zhenguoshaohe_feng: yes,05:27
shaohe_fengzhenguo: it is cast.05:27
zhenguoshaohe_feng: yes, it's cast :(05:27
zhenguoshaohe_feng: so I would like to move all check works before the rpc cast05:28
shaohe_fengzhenguo: yes. It is better do check before rpc05:29
zhenguoshaohe_feng: yes,05:29
zhenguoshaohe_feng: will draft a patch this afternoon05:29
zhenguoshahe_feng: please help to review then05:29
shaohe_fengzhenguo: Great.05:29
shaohe_fengzhenguo: so is there some way to let nimble-api catch nimble-engine, if instance_create failed?05:30
zhenguoshaohe_feng: no05:30
zhenguoshaohe_feng: so I would like to do more things before that05:30
shaohe_fengzhenguo: yes.05:31
shaohe_fengzhenguo: so I think only an error status of instance is not enough.05:31
zhenguoshaohe_feng: yes, should also save with the real exception messge for debugging, right?05:32
shaohe_fengzhenguo: error is too general05:32
shaohe_fengzhenguo: maybe this is one way.05:32
zhenguoshaohe_feng: yes, but I think we don't need to show more errors to end users05:33
zhenguoshaohe_feng: maybe the error message should only be seen by admin or operators05:33
shaohe_fengzhenguo: yes, maybe a new attribute for instance, but not expose to user.05:34
shaohe_fengzhenguo: message is OK.05:34
zhenguoshaohe_feng: yes05:34
shaohe_fengzhenguo: but there is another problem.05:34
shaohe_fengzhenguo: we maybe create failed during different phase05:35
shaohe_fengzhenguo: when we delete the instance, it should be an rollback.05:36
zhenguoshaohe_feng: yes, so maybe we need to introduce a workflow tool like cinder05:37
shaohe_fengzhenguo: if the resouce allocate, we need to free them.  if not, do not need to handle the resource.05:37
shaohe_fengzhenguo: seems workflow is a solution.05:38
zhenguoshaohe_feng: yes, cinder's create process is better than nova's05:38
zhenguoshaohe_feng: sorry, I have to be away for a while, ttyl05:39
* zhenguo away05:40
shaohe_fengzhenguo: we all know nova is the first porject,  developers have no many  experience.05:40
shaohe_fengzhenguo: so other project overcome nove's weakness. :P05:41
shaohe_fengzhenguo: so maybe you can list items for instance_create.05:43
shaohe_feng1. rpcapi refator05:44
shaohe_feng2. message attribute for instance, this is a hiden attribute for end user.05:45
shaohe_feng3. a similar rollback mechanical, such as workflow for instance resouce handle, for instance_create may failed during different creating phase.05:48
shaohe_fengzhenguo: you need to enrich the items after you back, and doc them. :P05:49
zhenguoshaohe_feng: I'm back06:06
zhenguoshaohe_feng: thanks for summarize that06:08
shaohe_fengzhenguo: Also, will be more phase for instance_create?  such as raid config?06:19
zhenguoshaohe_feng: yes, we need to think more, maybe I can just draft the first patch, then we can discuss there?06:21
shaohe_fengzhenguo: sure. That's great.06:23
zhenguoshaohe_feng: thanks06:23
*** yuntongjin has joined #openstack-nimble06:24
*** openstackgerrit has quit IRC08:03
*** openstackgerrit has joined #openstack-nimble08:04
zhongluyaoI have a glance over the taskflow library.In taskflow ,a task has "execute" and "revert"08:34
zhongluyaoWe can build a task flow using taskflow-lib.I want take over this work.08:34
zhongluyaoSomething useful in taskflow:08:34
zhongluyao1.the flow: be used to build a flow08:34
zhongluyao"linear_flow.Flow":sequential execution and sequential sequential revert08:34
zhongluyao"unordered_flow" and "gragh_flow"08:34
zhongluyao2.the engine: be used to load a flow08:34
zhongluyao"worker-based" engine in taskflow: task will be scheduled to another worker(a process),08:34
zhongluyaothe worker may run in other remote hosts, which communicates with AMQP08:34
zhenguozhongluyao: thanks08:35
zhenguozhongluyao: we really need introduce taskflow to our create process08:35
*** yuntongjin has quit IRC08:50
shaohe_fengzhongluyao: great.08:56
zhongluyaozhenguo, shaohe_feng : :)08:58
shaohe_fengzhenguo: we have one volunteer to improve the create process with you.08:58
zhenguoshaohe_feng: hah, so I won't be alone09:00
shaohe_fengzhenguo: yes.  still need more developers join us.09:01
zhenguoshaohe_feng: yes09:01
zhenguoshaohe_feng: do you thing it's better to replace instance.extra with instance.metadata09:11
zhenguoshaohe_feng: seems metadata is more friendly to users09:12
zhenguoliusheng, zhongluyao: what do you think?09:14
liushengzhenguo: I just want to ask, do we support "extra" parameter when creating instance ?09:16
zhenguoliusheng: nova has a metadata field for instance09:16
zhenguoliusheng: users can specify some metadata key/value pairs there,09:17
liushengzhenguo: yes, but I don't found the paremeter in api-ref and api_samples09:17
zhenguoliusheng: oh, seems I have updated api-ref, not sure09:17
liushengzhenguo: it is only in the creating instance schema09:18
zhenguoliusheng: yes, and within get/list details09:18
liushengzhenguo: is the extra parameter from instance_type's extra_spec ?09:20
zhongluyaozhenguo: what is differents between extra and metadata, I don't understand09:20
zhenguoliusheng: no, not from instance_type09:21
zhenguozhongluyao: it's same, I just want to rename it from extra to metadata, as extra seems not easy to understand or not meaningful09:22
liushengzhenguo: got it09:22
liushengmay metadata is a more general usage09:22
zhongluyaozhenguo: Oh ,I see ,thank you09:22
zhenguoliusheng: yes, I think so09:23
zhenguozhongluyao: np09:23
shaohe_fengzhenguo: yes, metadata sounds better. but I'm not a english native speaker. :P09:26
zhenguoshaohe_feng: lol09:26
* zhenguo brb09:28
openstackgerritZhenguo Niu proposed openstack/nimble: Add engine api interfaces  https://review.openstack.org/39947609:44
*** kevinz has quit IRC09:50
* zhenguo away10:01
zhenguoThanks God it's Friday, happy weekend!10:01
*** liusheng has quit IRC14:20
*** liusheng has joined #openstack-nimble14:21
*** zhongluyao has quit IRC22:46

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