liusheng | zhenguo: sorry, I cames of work early yestoday | 01:08 |
---|---|---|
zhenguo | liusheng: no problem, hah | 01:29 |
*** yuntongjin has joined #openstack-nimble | 01:32 | |
*** yuntongjin has quit IRC | 01:39 | |
*** luyao has joined #openstack-nimble | 01:49 | |
openstackgerrit | Zhong Luyao proposed openstack/nimble: bug fix: delete instance correctly https://review.openstack.org/398306 | 01:58 |
openstackgerrit | Zhong Luyao proposed openstack/nimble: bug fix: delete instance correctly https://review.openstack.org/398306 | 02:07 |
*** kevinz has quit IRC | 02:23 | |
*** kevin__ has joined #openstack-nimble | 02:23 | |
*** kevinz has joined #openstack-nimble | 02:24 | |
*** zly_ has joined #openstack-nimble | 02:27 | |
*** luyao has left #openstack-nimble | 02:27 | |
*** zly_ has quit IRC | 02:28 | |
*** zhongluyao has joined #openstack-nimble | 02:33 | |
zhenguo | shaohe_feng, liusheng: do you find there's an api.py file in compute directory which is used by nova api? | 02:54 |
liusheng | zhenguo: you mean nova/compute/api.py ? | 02:55 |
zhenguo | shaohe_feng: not via rpc call | 02:55 |
zhenguo | liusheng: yes, | 02:55 |
liusheng | zhenguo: yes | 02:55 |
zhenguo | liusheng: not through rpc call | 02:55 |
liusheng | zhenguo: that is a part of nova-api's code | 02:55 |
zhenguo | liusheng: which handles all requests related to compute resources | 02:55 |
zhenguo | liusheng: yes, but why it is placed to compute directory | 02:56 |
zhenguo | liusheng: should we add such a file which handle compute resouces like networking, storate, quotas? | 02:57 |
liusheng | zhenguo: 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-compuge | 02:59 |
liusheng | s/nova-compuge/nova-compute | 02:59 |
zhenguo | liusheng: seems correct | 03:00 |
zhenguo | liusheng: there's an API class for interacting with the compute manager | 03:02 |
liusheng | the 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-compte | 03:02 |
zhenguo | liusheng: 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 |
zhenguo | liusheng: we can move some networking or image related check there, and maybe add quotas check there before we issue an rpc call to engine | 03:04 |
zhenguo | liusheng: seems it's better to keep api/controllers clean with only post/put/delete method | 03:05 |
liusheng | zhenguo: so that will be nimble-engine's api, not the Nimble's api | 03:06 |
zhenguo | liusheng: yes | 03:06 |
zhenguo | liusheng: oh, yes it's nimble engine's api, do you think we need that? | 03:07 |
liusheng | zhenguo: I think it doesn't matter where we put the code in | 03:09 |
zhenguo | liusheng: agree | 03:10 |
liusheng | zhenguo: for the code structure clear, we can add an api.py | 03:10 |
liusheng | zhenguo: looks keystone, there is only an keystone-all, lol | 03:10 |
zhenguo | liusheng: haha | 03:10 |
zhenguo | liusheng: oh, I can understand why we need an api file in compute | 03:11 |
zhenguo | liusheng: that's because not only api but also conductor may interact with compute, right? | 03:11 |
zhenguo | liusheng: I mean in nova | 03:12 |
liusheng | zhenguo: why need api.py in compuge/ when conductor interacting with compuge ? hah | 03:13 |
liusheng | zhenguo: I don't think it is the reason | 03:13 |
zhenguo | liusheng: oh, but why it's there? | 03:14 |
zhenguo | liusheng: because that would be more clear? no rpc call directly from other components? | 03:14 |
zhenguo | liusheng: no rpc call in code, I mean | 03:14 |
liusheng | zhenguo:the api.py does not include rpc server, it only invoke the rpc client | 03:18 |
liusheng | zhenguo: it will not be used by conductor | 03:18 |
zhenguo | liusheng: oh, so only api will used that API class? | 03:19 |
liusheng | zhenguo: yes | 03:20 |
zhenguo | liusheng: hah, seems there's also an api.py file in conductor | 03:20 |
zhenguo | liusheng: which wrapped the rpc call | 03:21 |
zhenguo | liusheng: cinder also copied this way | 03:26 |
liusheng | zhenguo: the api.py in conductor is also used by conductor's caller | 03:26 |
liusheng | zhenguo: yes | 03:26 |
zhenguo | liusheng: we can also work like this | 03:27 |
liusheng | zhenguo: yeah, I am ok with that :) | 03:27 |
zhenguo | liusheng: thanks :) | 03:28 |
zhenguo | liusheng: and I just find currently users can't list availability zones from nimble :( really many things to do... | 03:29 |
liusheng | zhenguo: the az in Nimble need to be configured in config file ? | 03:29 |
zhenguo | liusheng: yes, I think we can work like cinder | 03:30 |
liusheng | zhenguo: I remembered cinder is write this in config file | 03:32 |
zhenguo | liusheng: yes, we can just copy from cinder | 03:32 |
liusheng | zhenguo: cool :) | 03:33 |
zhenguo | liusheng: lol | 03:33 |
* zhenguo brb | 03:34 | |
openstackgerrit | Merged openstack/nimble: Use ironic cached_client instead of constructing every time https://review.openstack.org/398924 | 03:43 |
shaohe_feng | zhenguo: liusheng what's the command "tox -ecover"? Is it for testcase coverage? | 04:49 |
zhenguo | shaohe_feng: seems it is, | 04:59 |
zhenguo | shaohe_feng: by running that command, we can get a cover directory | 04:59 |
shaohe_feng | zhenguo: yes. | 05:00 |
shaohe_feng | zhenguo: How to check the coverage? | 05:00 |
zhenguo | shaohe_feng: maybe we need to setup a http server for that | 05:00 |
zhenguo | shaohe_feng: all generated files are html | 05:00 |
shaohe_feng | zhenguo: yes. many html in that file. | 05:01 |
zhenguo | shaohe_feng: including all files in nimble tree | 05:01 |
shaohe_feng | zhenguo: OK, let me check it. | 05:01 |
zhenguo | shaohe_feng: ok, thanks | 05:01 |
shaohe_feng | zhenguo: Coverage report: 60% | 05:03 |
zhenguo | shaohe_feng: oh, not that bad :P | 05:03 |
shaohe_feng | zhenguo: Yesterday, I check the principle of neutron testcase | 05:06 |
shaohe_feng | zhenguo: The unit testcase is more, functional fewer, and ful-stack more fewer. | 05:07 |
shaohe_feng | zhenguo: unit testcase should cover edge case. that full-stack do not care. | 05:08 |
shaohe_feng | zhenguo: full-stack is used for interactive of components. | 05:08 |
zhenguo | shaohe_feng: yes, seems reasonable | 05:08 |
shaohe_feng | zhenguo: we can follow the same way. | 05:11 |
zhenguo | shaohe_feng: yes, so full-stack equals to tempest, right? | 05:11 |
shaohe_feng | zhenguo: and we may need similor testcase mechenical like neutron full-stack | 05:11 |
shaohe_feng | zhenguo: no, it is not equals to tempest. | 05:12 |
shaohe_feng | zhenguo: it is lighter thant tempest. | 05:12 |
shaohe_feng | zhenguo: for example, do not use nova, use fake vm | 05:12 |
shaohe_feng | zhenguo: and it can run multi-node test on one host, and still use mysql and rabbitmq. | 05:13 |
zhenguo | shaohe_feng: oh, sounds interesting, so we need to introduce a new test type? | 05:14 |
shaohe_feng | zhenguo: if we have, this maybe useful., | 05:14 |
shaohe_feng | zhenguo: Full stack testing can simulate multi node testing by starting an agent multiple times. | 05:15 |
zhenguo | shaohe_feng: yes, more tests are usually helpful, the more the better | 05:15 |
shaohe_feng | zhenguo: 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_feng | zhenguo: you can see, full-stack seems powerful. :P | 05:16 |
shaohe_feng | zhenguo: http://docs.openstack.org/developer/neutron/devref/development.environment.html#fullstack-tests | 05:16 |
shaohe_feng | zhenguo: this is the introduce of their full stack. | 05:16 |
zhenguo | shaohe_feng: thanks for the link | 05:17 |
zhenguo | shaohe_feng: but, should full-stack be a high priority feature for us | 05:17 |
zhenguo | shaohe_feng: ? | 05:17 |
shaohe_feng | zhenguo: maybe liusheng can read it. | 05:17 |
shaohe_feng | zhenguo: I think maybe not at present. | 05:18 |
zhenguo | shaohe_feng: yes, but it's really a helpful thing | 05:18 |
zhenguo | shaohe_feng: we can introduce later | 05:19 |
shaohe_feng | zhenguo: Yes. The instance_create maybe higher priority. for it is the fundamental function of nimble. | 05:20 |
zhenguo | shaohe_feng: yes, I would like to add a api.py in engine dir which include interfaces to interact with engine manager | 05:20 |
zhenguo | shaohe_feng: which maybe is the first step for our refactor | 05:21 |
zhenguo | shaohe_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 side | 05:22 |
zhenguo | shaohe_feng: as we only have two components, after api issued a rpc cast to engine, it just returned | 05:23 |
zhenguo | shaohe_feng: so, I would like to move all checks to api, engine only do other time consuming things | 05:23 |
shaohe_feng | zhenguo: yes. great. Now the rpc call are in engine/baremetal/ironic.py | 05:24 |
shaohe_feng | zhenguo: It is good in a api.py. | 05:24 |
zhenguo | shaohe_feng: no, that's http call in ironic.py | 05:24 |
zhenguo | shaohe_feng: I mean internal components nimble-api to nimble-engine | 05:25 |
shaohe_feng | zhenguo: Got it. | 05:25 |
shaohe_feng | zhenguo: ironic is service, http. | 05:25 |
zhenguo | shaohe_feng: yes, hah | 05:25 |
shaohe_feng | zhenguo: about instance_create rpc call? | 05:27 |
zhenguo | shaohe_feng: yes, | 05:27 |
shaohe_feng | zhenguo: it is cast. | 05:27 |
zhenguo | shaohe_feng: yes, it's cast :( | 05:27 |
zhenguo | shaohe_feng: so I would like to move all check works before the rpc cast | 05:28 |
shaohe_feng | zhenguo: yes. It is better do check before rpc | 05:29 |
zhenguo | shaohe_feng: yes, | 05:29 |
zhenguo | shaohe_feng: will draft a patch this afternoon | 05:29 |
zhenguo | shahe_feng: please help to review then | 05:29 |
shaohe_feng | zhenguo: Great. | 05:29 |
shaohe_feng | zhenguo: so is there some way to let nimble-api catch nimble-engine, if instance_create failed? | 05:30 |
zhenguo | shaohe_feng: no | 05:30 |
zhenguo | shaohe_feng: so I would like to do more things before that | 05:30 |
shaohe_feng | zhenguo: yes. | 05:31 |
shaohe_feng | zhenguo: so I think only an error status of instance is not enough. | 05:31 |
zhenguo | shaohe_feng: yes, should also save with the real exception messge for debugging, right? | 05:32 |
shaohe_feng | zhenguo: error is too general | 05:32 |
shaohe_feng | zhenguo: maybe this is one way. | 05:32 |
zhenguo | shaohe_feng: yes, but I think we don't need to show more errors to end users | 05:33 |
zhenguo | shaohe_feng: maybe the error message should only be seen by admin or operators | 05:33 |
shaohe_feng | zhenguo: yes, maybe a new attribute for instance, but not expose to user. | 05:34 |
shaohe_feng | zhenguo: message is OK. | 05:34 |
zhenguo | shaohe_feng: yes | 05:34 |
shaohe_feng | zhenguo: but there is another problem. | 05:34 |
shaohe_feng | zhenguo: we maybe create failed during different phase | 05:35 |
shaohe_feng | zhenguo: when we delete the instance, it should be an rollback. | 05:36 |
zhenguo | shaohe_feng: yes, so maybe we need to introduce a workflow tool like cinder | 05:37 |
shaohe_feng | zhenguo: if the resouce allocate, we need to free them. if not, do not need to handle the resource. | 05:37 |
shaohe_feng | zhenguo: seems workflow is a solution. | 05:38 |
zhenguo | shaohe_feng: yes, cinder's create process is better than nova's | 05:38 |
zhenguo | shaohe_feng: sorry, I have to be away for a while, ttyl | 05:39 |
* zhenguo away | 05:40 | |
shaohe_feng | zhenguo: we all know nova is the first porject, developers have no many experience. | 05:40 |
shaohe_feng | zhenguo: so other project overcome nove's weakness. :P | 05:41 |
shaohe_feng | zhenguo: so maybe you can list items for instance_create. | 05:43 |
shaohe_feng | 1. rpcapi refator | 05:44 |
shaohe_feng | 2. message attribute for instance, this is a hiden attribute for end user. | 05:45 |
shaohe_feng | 3. a similar rollback mechanical, such as workflow for instance resouce handle, for instance_create may failed during different creating phase. | 05:48 |
shaohe_feng | zhenguo: you need to enrich the items after you back, and doc them. :P | 05:49 |
zhenguo | shaohe_feng: I'm back | 06:06 |
zhenguo | shaohe_feng: thanks for summarize that | 06:08 |
shaohe_feng | zhenguo: Also, will be more phase for instance_create? such as raid config? | 06:19 |
zhenguo | shaohe_feng: yes, we need to think more, maybe I can just draft the first patch, then we can discuss there? | 06:21 |
shaohe_feng | zhenguo: sure. That's great. | 06:23 |
zhenguo | shaohe_feng: thanks | 06:23 |
*** yuntongjin has joined #openstack-nimble | 06:24 | |
*** openstackgerrit has quit IRC | 08:03 | |
*** openstackgerrit has joined #openstack-nimble | 08:04 | |
zhongluyao | I have a glance over the taskflow library.In taskflow ,a task has "execute" and "revert" | 08:34 |
zhongluyao | We can build a task flow using taskflow-lib.I want take over this work. | 08:34 |
zhongluyao | Something useful in taskflow: | 08:34 |
zhongluyao | 1.the flow: be used to build a flow | 08:34 |
zhongluyao | "linear_flow.Flow":sequential execution and sequential sequential revert | 08:34 |
zhongluyao | "unordered_flow" and "gragh_flow" | 08:34 |
zhongluyao | 2.the engine: be used to load a flow | 08:34 |
zhongluyao | "worker-based" engine in taskflow: task will be scheduled to another worker(a process), | 08:34 |
zhongluyao | the worker may run in other remote hosts, which communicates with AMQP | 08:34 |
zhenguo | zhongluyao: thanks | 08:35 |
zhenguo | zhongluyao: we really need introduce taskflow to our create process | 08:35 |
*** yuntongjin has quit IRC | 08:50 | |
shaohe_feng | zhongluyao: great. | 08:56 |
zhongluyao | zhenguo, shaohe_feng : :) | 08:58 |
shaohe_feng | zhenguo: we have one volunteer to improve the create process with you. | 08:58 |
zhenguo | shaohe_feng: hah, so I won't be alone | 09:00 |
shaohe_feng | zhenguo: yes. still need more developers join us. | 09:01 |
zhenguo | shaohe_feng: yes | 09:01 |
zhenguo | shaohe_feng: do you thing it's better to replace instance.extra with instance.metadata | 09:11 |
zhenguo | shaohe_feng: seems metadata is more friendly to users | 09:12 |
zhenguo | liusheng, zhongluyao: what do you think? | 09:14 |
liusheng | zhenguo: I just want to ask, do we support "extra" parameter when creating instance ? | 09:16 |
zhenguo | liusheng: nova has a metadata field for instance | 09:16 |
zhenguo | liusheng: users can specify some metadata key/value pairs there, | 09:17 |
liusheng | zhenguo: yes, but I don't found the paremeter in api-ref and api_samples | 09:17 |
zhenguo | liusheng: oh, seems I have updated api-ref, not sure | 09:17 |
liusheng | zhenguo: it is only in the creating instance schema | 09:18 |
zhenguo | liusheng: yes, and within get/list details | 09:18 |
liusheng | zhenguo: is the extra parameter from instance_type's extra_spec ? | 09:20 |
zhongluyao | zhenguo: what is differents between extra and metadata, I don't understand | 09:20 |
zhenguo | liusheng: no, not from instance_type | 09:21 |
zhenguo | zhongluyao: it's same, I just want to rename it from extra to metadata, as extra seems not easy to understand or not meaningful | 09:22 |
liusheng | zhenguo: got it | 09:22 |
liusheng | may metadata is a more general usage | 09:22 |
zhongluyao | zhenguo: Oh ,I see ,thank you | 09:22 |
zhenguo | liusheng: yes, I think so | 09:23 |
zhenguo | zhongluyao: np | 09:23 |
shaohe_feng | zhenguo: yes, metadata sounds better. but I'm not a english native speaker. :P | 09:26 |
zhenguo | shaohe_feng: lol | 09:26 |
* zhenguo brb | 09:28 | |
openstackgerrit | Zhenguo Niu proposed openstack/nimble: Add engine api interfaces https://review.openstack.org/399476 | 09:44 |
*** kevinz has quit IRC | 09:50 | |
* zhenguo away | 10:01 | |
zhenguo | Thanks God it's Friday, happy weekend! | 10:01 |
*** liusheng has quit IRC | 14:20 | |
*** liusheng has joined #openstack-nimble | 14:21 | |
*** zhongluyao has quit IRC | 22:46 |
Generated by irclog2html.py 2.14.0 by Marius Gedminas - find it at mg.pov.lt!