*** devlaps has quit IRC | 00:37 | |
*** devlaps has joined #openstack-nimble | 00:38 | |
*** yuntongjin has joined #openstack-nimble | 00:51 | |
*** kevinz has joined #openstack-nimble | 01:28 | |
zhenguo | morning nimble | 01:46 |
---|---|---|
*** yuntongjin has quit IRC | 01:49 | |
*** yuntongjin has joined #openstack-nimble | 01:58 | |
yuntongjin | morning | 01:59 |
*** yuntongjin has quit IRC | 02:05 | |
liusheng | morning nimblers :) | 02:11 |
zhenguo | shaohe_feng, liusheng: doyou remember this https://github.com/openstack/nimble/blob/master/doc/source/api.rst ? | 02:39 |
zhenguo | I would like to change the verb of update instance from PATCH to PUT. | 02:45 |
liusheng | zhenguo: what is the difference of PATCH and PUT ? | 02:50 |
zhenguo | liusheng: https://laracasts.com/discuss/channels/general-discussion/whats-the-differences-between-put-and-patch?page=1 | 02:51 |
liusheng | zhenguo: you may need to ask Kevin_Zheng, I rememberd he implemented this and he has talked with Chenrui | 02:52 |
zhenguo | liusheng: no, we haven't implemented instance update yet | 02:52 |
zhenguo | liusheng: only instance type update | 02:53 |
liusheng | zhenguo: oh, I am wrong | 02:53 |
zhenguo | liusheng: this may be more clear http://restcookbook.com/HTTP%20Methods/patch/ | 02:53 |
liusheng | zhenguo: I prefer PUT, just because it like others projects' implemetaion, hah | 02:54 |
zhenguo | liusheng: that api file is just a draft of APIs we want to support, most of them are not implemented yet | 02:54 |
zhenguo | liusheng: haha | 02:54 |
liusheng | zhenguo: for tempest test of instance creation, I am confused, it reuturn the status "error", when I check the code, there are two places can set the status to 'error', but it will raise an exception meanwhile. but I cannot find the exception in the logs | 02:57 |
zhenguo | liusheng: yes, I'm also confused about that | 02:58 |
zhenguo | liusheng: I find you add a wait_instance_status method, does that just returned after post? | 02:59 |
liusheng | zhenguo: no it will wait until the instance's status becoming 'active' or becoming 'error' and the test fail | 03:01 |
zhenguo | liusheng: ok, and the ironic node satus is 'available', which means it not deployed at all | 03:01 |
liusheng | it_instance_status method, does that just returned after post? | 03:02 |
liusheng | <liusheng> zhenguo: no it will wait until the instance's status becoming 'active' or becoming 'error' and the test fail | 03:02 |
liusheng | 2016-12-06 13:02:39.450 27269 INFO tempest.lib.common.rest_client [-] Request (BaremetalComputeAPIInstancesTest:test_instance_post): 201 POST http://198.72.124.223:6688/v1/instances 0.145s | 03:02 |
liusheng | 2016-12-06 13:03:09.774 27269 INFO tempest.lib.common.rest_client [-] Request (BaremetalComputeAPIInstancesTest:test_instance_post): 200 GET http://198.72.124.223:6688/v1/instances/99639933-2437-40b3-b443-df9030a6847e 0.291s | 03:02 |
liusheng | the interval of these two lines of log is about 30s | 03:03 |
zhenguo | liusheng: can we get some clues from ironic logs? | 03:03 |
liusheng | 2016-12-06 13:03:09.937 19757 INFO eventlet.wsgi.server [req-779cb626-1457-481b-8e53-3699d8e9fa2d 8b83adabae2f45738883261971918ea2 4f4b59a216ca4a318c2e75fc2873d2d2 - default default] 198.72.124.223 "PUT /v1/nodes/27945c99-9b7c-4a91-b160-de17d5263eca/states/provision HTTP/1.1" status: 400 len: 577 time: 0.0576138 | 03:03 |
liusheng | there is only this log error, but it is because the DELETE action of test's tearDown | 03:04 |
zhenguo | liusheng: but we should have set_instance_info and validate node logs | 03:04 |
liusheng | zhenguo: there should be another "PUT /states/provision" request, but I cannot find | 03:04 |
zhenguo | liusheng: let me check the log first | 03:05 |
liusheng | def do_node_deploy(ironicclient, node_uuid): | 03:05 |
liusheng | # trigger the node deploy | 03:05 |
liusheng | ironicclient.call("node.set_provision_state", node_uuid, | 03:05 |
liusheng | ironic_states.ACTIVE) | 03:05 |
liusheng | these lines of code will also pass a "PUT /states/provisio" request to ironic api | 03:05 |
liusheng | the above log is because: | 03:06 |
liusheng | def destroy_node(ironicclient, node_uuid): | 03:06 |
liusheng | # trigger the node destroy | 03:06 |
liusheng | ironicclient.call("node.set_provision_state", node_uuid, | 03:06 |
liusheng | ironic_states.DELETED) | 03:06 |
openstackgerrit | chenyingnan proposed openstack/nimble: Replace six.iteritems() with .items() https://review.openstack.org/407824 | 03:06 |
zhenguo | liusheng: yes, before we issue do_node_deploy to ironic, there are two other method: set_instance_info and validate | 03:09 |
zhenguo | https://www.irccloud.com/pastebin/CEs9b3Sb/ironic-api | 03:10 |
liusheng | zhenguo: I want to add to temporary log statements in the two places where it set the 'error' state | 03:10 |
zhenguo | liusheng: can you see this paste file with your irc client? | 03:10 |
zhenguo | liusheng: yes, please | 03:11 |
liusheng | zhenguo: :( cannot | 03:11 |
zhenguo | liusheng: hah, I will stop using irccloud pastebin file | 03:12 |
openstackgerrit | liusheng proposed openstack/nimble: Add tempest tests for instance creation(WIP) https://review.openstack.org/404552 | 03:21 |
zhenguo | liusheng: I find it will get ports from ironic, maybe we failed in neutron when creating port | 03:23 |
zhenguo | liusheng: according the logs of the new patch set, it fails in build_networks, and I think we should add the logs not only for tests | 03:52 |
* zhenguo away | 03:52 | |
*** devlaps has quit IRC | 03:58 | |
zhenguo | shaohe_feng, liusheng: I read the ironic patch methods, they need a json body like '[{"path": "/name", "value": "node1", "op": "replace"}]' | 04:53 |
zhenguo | seems it's useful to update fields like instance extra, we can add, replace, remove something in the field | 04:54 |
zhenguo | but in our update instance method, which fields shoud supported, name, description, extra? | 04:55 |
zhenguo | so let's keep the verb of instance update this way. | 04:59 |
*** zhenguo_ has joined #openstack-nimble | 05:14 | |
*** zhenguo has quit IRC | 05:15 | |
*** zhenguo_ is now known as zhenguo | 05:15 | |
openstackgerrit | liusheng proposed openstack/nimble: Add tempest tests for instance creation(WIP) https://review.openstack.org/404552 | 06:12 |
*** luyao has quit IRC | 06:30 | |
*** luyao has joined #openstack-nimble | 06:31 | |
zhenguo | liusheng: should the node name be mandatory or we can create a instance name without name, seems this like what we talked in the Bug Smash | 06:43 |
liusheng | I think the name should be mandatory | 06:44 |
liusheng | zhenguo: why we need to create a instance without name ? | 06:45 |
zhenguo | liusheng: not sure, just curious about whether it's allowed to update the instance to remove name filed | 06:46 |
liusheng | zhenguo: :( that looks weird | 06:47 |
zhenguo | liusheng: agree, hah | 06:47 |
liusheng | for vif in requested_networks: | 06:48 |
liusheng | for pif in ironic_ports: | 06:48 |
liusheng | # Match the specified port type with physical interface type | 06:48 |
liusheng | if vif.get('port_type') == pif.extra.get('port_type'): | 06:48 |
liusheng | zhenguo: it is reasonable that the if condition is True because "None == None" ? | 06:48 |
zhenguo | liusheng: yes, they could be None | 06:49 |
zhenguo | liusheng: as we don't always specify port type when creating instance | 06:50 |
zhenguo | liusheng: but there's a problem that we don't have a mechnism to schedule a node with the desired port type, as we only have instance_type for scheduler hints | 06:51 |
zhenguo | liusheng: we suspect that the instance_type description contains the ports information, and the admin has added it to ironic node correctly | 06:52 |
zhenguo | maybe we need a mandatory check for this or we need to add it as a scheduler filter | 06:52 |
openstackgerrit | Zhenguo Niu proposed openstack/nimble: [WIP] Add update instance support https://review.openstack.org/407912 | 07:48 |
openstackgerrit | liusheng proposed openstack/nimble: Add tempest tests for instance creation(WIP) https://review.openstack.org/404552 | 08:19 |
liusheng | zhenguo: do you know how to delete the association of a node and an instance by ironic command ? | 08:21 |
liusheng | zhenguo: I see | 08:23 |
liusheng | zhenguo: but it stucked in 'clean wait' state :( | 08:26 |
zhenguo | liusheng: you need to remove instance_uuid and instance_info | 08:26 |
zhenguo | liusheng: you mean in tempest gate or in you own env? | 08:27 |
liusheng | ironic node-set-provision-state aabcac7c-4230-423d-97bf-2029387900d5 deleted | 08:27 |
liusheng | zhenguo: I have re-install my devstack, but It cannot create nimble instance | 08:27 |
liusheng | zhenguo: it stucked in 'building' state, when I retry, the scheduler cannot select a node | 08:28 |
zhenguo | liusheng: you manually delete the error instance, right? | 08:28 |
liusheng | zhenguo: yes | 08:28 |
zhenguo | liusheng: how long does it in building state | 08:28 |
zhenguo | liusheng: it really takes time to build an ironic node | 08:29 |
liusheng | zhenguo: about 10 mins | 08:29 |
liusheng | zhenguo: it is reasonable ? | 08:29 |
zhenguo | liusheng: yes, you can find the loopingcall logs in nimble-engine | 08:29 |
zhenguo | liusheng: we have a wait_for_active looping call, which will print the ironic status | 08:30 |
liusheng | zhenguo: hmm, so if there is a way I can restore the ironic node ? | 08:30 |
zhenguo | liusheng: now, I think you need to manually update the node in ironic db, clean instance_uuid, instance_info and set the status to available | 08:31 |
zhenguo | liusheng: and you need to clean the port extra field | 08:31 |
liusheng | zhenguo: ok, let me try | 08:31 |
zhenguo | liusheng: and maybe there's a port in neutron with your ironic port mac address now, please check with that | 08:31 |
zhenguo | liusheng: it's too complex, haha! you need to be careful and wait for a while after issue a create instance request | 08:32 |
liusheng | zhenguo: :((( | 08:33 |
zhenguo | liusheng: but 10 mins it's too long, doesn't that reach the timeout in our loopingcall? | 08:34 |
liusheng | zhenguo: I am not sure, so how it should be ? | 08:34 |
zhenguo | liusheng: you can clean up the node first, and recreate again to see why that happened | 08:35 |
zhenguo | liusheng: and do you setup the env by following our guide? | 08:36 |
liusheng | zhenguo: yes | 08:36 |
zhenguo | liusheng: ok | 08:36 |
liusheng | zhenguo: I have installed my devestack according the guide | 08:36 |
zhenguo | liusheng: I can confirm that it works | 08:36 |
*** shaohe_feng has quit IRC | 08:41 | |
*** luyao has quit IRC | 08:41 | |
*** luyao has joined #openstack-nimble | 08:45 | |
*** shaohe_feng has joined #openstack-nimble | 08:52 | |
*** shihanzhang has joined #openstack-nimble | 09:13 | |
*** luyao has quit IRC | 09:16 | |
*** luyao has joined #openstack-nimble | 09:30 | |
*** kong_ has quit IRC | 10:58 | |
*** kong_ has joined #openstack-nimble | 10:59 | |
*** luyao has quit IRC | 11:19 | |
*** openstackgerrit has quit IRC | 11:32 | |
*** kevinz has quit IRC | 12:59 | |
*** kevinz has joined #openstack-nimble | 13:28 | |
*** luyao has joined #openstack-nimble | 13:34 | |
*** openstackgerrit has joined #openstack-nimble | 13:35 | |
*** kevinz has quit IRC | 15:55 | |
*** devlaps has joined #openstack-nimble | 16:43 | |
*** Kevin_Zheng has quit IRC | 17:07 | |
*** liusheng has quit IRC | 18:49 | |
*** liusheng has joined #openstack-nimble | 18:50 |
Generated by irclog2html.py 2.14.0 by Marius Gedminas - find it at mg.pov.lt!