Wednesday, 2016-12-07

*** devlaps has quit IRC00:37
*** devlaps has joined #openstack-nimble00:38
*** yuntongjin has joined #openstack-nimble00:51
*** kevinz has joined #openstack-nimble01:28
zhenguomorning nimble01:46
*** yuntongjin has quit IRC01:49
*** yuntongjin has joined #openstack-nimble01:58
yuntongjinmorning01:59
*** yuntongjin has quit IRC02:05
liushengmorning nimblers :)02:11
zhenguoshaohe_feng, liusheng: doyou remember this https://github.com/openstack/nimble/blob/master/doc/source/api.rst ?02:39
zhenguoI would like to change the verb of update instance from PATCH to PUT.02:45
liushengzhenguo: what is the difference of PATCH and PUT ?02:50
zhenguoliusheng: https://laracasts.com/discuss/channels/general-discussion/whats-the-differences-between-put-and-patch?page=102:51
liushengzhenguo: you may need to ask Kevin_Zheng, I rememberd he implemented this and he has talked with Chenrui02:52
zhenguoliusheng: no, we haven't implemented instance update yet02:52
zhenguoliusheng: only instance type update02:53
liushengzhenguo: oh, I am wrong02:53
zhenguoliusheng: this may be more clear http://restcookbook.com/HTTP%20Methods/patch/02:53
liushengzhenguo: I prefer PUT, just because it like others projects' implemetaion, hah02:54
zhenguoliusheng: that api file is just a draft of APIs we want to support, most of them are not implemented yet02:54
zhenguoliusheng: haha02:54
liushengzhenguo: 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 logs02:57
zhenguoliusheng: yes, I'm also confused about that02:58
zhenguoliusheng: I find you add a wait_instance_status method, does that just returned after post?02:59
liushengzhenguo: no it will wait until the instance's status becoming 'active' or becoming 'error' and the test fail03:01
zhenguoliusheng: ok, and the ironic node satus is 'available', which means it not deployed at all03:01
liushengit_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 fail03:02
liusheng2016-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.145s03:02
liusheng2016-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.291s03:02
liushengthe interval of these two lines of log is about 30s03:03
zhenguoliusheng: can we get some clues from ironic logs?03:03
liusheng2016-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.057613803:03
liushengthere is only this log error, but it is because the DELETE action of test's tearDown03:04
zhenguoliusheng: but we should have set_instance_info and validate node logs03:04
liushengzhenguo: there should be another "PUT /states/provision" request, but I cannot find03:04
zhenguoliusheng: let me check the log first03:05
liushengdef do_node_deploy(ironicclient, node_uuid):03:05
liusheng    # trigger the node deploy03:05
liusheng    ironicclient.call("node.set_provision_state", node_uuid,03:05
liusheng                      ironic_states.ACTIVE)03:05
liushengthese lines of code will also pass a "PUT /states/provisio" request to ironic api03:05
liushengthe above log is because:03:06
liushengdef destroy_node(ironicclient, node_uuid):03:06
liusheng    # trigger the node destroy03:06
liusheng    ironicclient.call("node.set_provision_state", node_uuid,03:06
liusheng                      ironic_states.DELETED)03:06
openstackgerritchenyingnan proposed openstack/nimble: Replace six.iteritems() with .items()  https://review.openstack.org/40782403:06
zhenguoliusheng: yes, before we issue do_node_deploy to ironic, there are two other method: set_instance_info and validate03:09
zhenguohttps://www.irccloud.com/pastebin/CEs9b3Sb/ironic-api03:10
liushengzhenguo: I want to add to temporary log statements in the two places where it set the 'error' state03:10
zhenguoliusheng: can you see this paste file with your irc client?03:10
zhenguoliusheng: yes, please03:11
liushengzhenguo: :( cannot03:11
zhenguoliusheng: hah, I will stop using irccloud pastebin file03:12
openstackgerritliusheng proposed openstack/nimble: Add tempest tests for instance creation(WIP)  https://review.openstack.org/40455203:21
zhenguoliusheng: I find it will get ports from ironic, maybe we failed in neutron when creating port03:23
zhenguoliusheng: according the logs of the new patch set, it fails in build_networks, and I think we should add the logs not only for tests03:52
* zhenguo away03:52
*** devlaps has quit IRC03:58
zhenguoshaohe_feng, liusheng: I read the ironic patch methods, they need a json body like '[{"path": "/name", "value": "node1", "op": "replace"}]'04:53
zhenguoseems it's useful to update fields like instance extra, we can add, replace, remove something in the field04:54
zhenguobut in our update instance method, which fields shoud supported, name, description, extra?04:55
zhenguoso let's keep the verb of instance update this way.04:59
*** zhenguo_ has joined #openstack-nimble05:14
*** zhenguo has quit IRC05:15
*** zhenguo_ is now known as zhenguo05:15
openstackgerritliusheng proposed openstack/nimble: Add tempest tests for instance creation(WIP)  https://review.openstack.org/40455206:12
*** luyao has quit IRC06:30
*** luyao has joined #openstack-nimble06:31
zhenguoliusheng: should the node name be mandatory or we can create a instance name without name, seems this like what we talked in the Bug Smash06:43
liushengI think the name should be mandatory06:44
liushengzhenguo: why we need to create a instance without name ?06:45
zhenguoliusheng: not sure, just curious about whether it's allowed to update the instance to remove name filed06:46
liushengzhenguo: :( that looks weird06:47
zhenguoliusheng: agree, hah06: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 type06:48
liusheng                if vif.get('port_type') == pif.extra.get('port_type'):06:48
liushengzhenguo: it is reasonable that the if condition is True because "None == None" ?06:48
zhenguoliusheng: yes, they could be None06:49
zhenguoliusheng: as we don't always specify port type when creating instance06:50
zhenguoliusheng: 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 hints06:51
zhenguoliusheng: we suspect that the instance_type description contains the ports information, and the admin has added it to ironic node correctly06:52
zhenguomaybe we need a mandatory check for this or we need to add it as a scheduler filter06:52
openstackgerritZhenguo Niu proposed openstack/nimble: [WIP] Add update instance support  https://review.openstack.org/40791207:48
openstackgerritliusheng proposed openstack/nimble: Add tempest tests for instance creation(WIP)  https://review.openstack.org/40455208:19
liushengzhenguo: do you know how to delete the association of a node and an instance by ironic command ?08:21
liushengzhenguo: I see08:23
liushengzhenguo: but it stucked in 'clean wait' state :(08:26
zhenguoliusheng: you need to remove instance_uuid and instance_info08:26
zhenguoliusheng: you mean in tempest gate or in you own env?08:27
liushengironic node-set-provision-state aabcac7c-4230-423d-97bf-2029387900d5 deleted08:27
liushengzhenguo: I have re-install my devstack, but It cannot create nimble instance08:27
liushengzhenguo: it stucked in 'building' state, when I retry, the scheduler cannot select a node08:28
zhenguoliusheng: you manually delete the error instance, right?08:28
liushengzhenguo: yes08:28
zhenguoliusheng: how long does it in building state08:28
zhenguoliusheng: it really takes time to build an ironic node08:29
liushengzhenguo: about 10 mins08:29
liushengzhenguo: it is reasonable ?08:29
zhenguoliusheng: yes, you can find the loopingcall logs in nimble-engine08:29
zhenguoliusheng: we have a wait_for_active looping call, which will print the ironic status08:30
liushengzhenguo: hmm, so if there is a way I can restore the ironic node ?08:30
zhenguoliusheng: now, I think you need to manually update the node in ironic db, clean instance_uuid, instance_info and set the status to available08:31
zhenguoliusheng: and you need to clean the port extra field08:31
liushengzhenguo: ok, let me try08:31
zhenguoliusheng: and maybe there's a port in neutron with your ironic port mac address now, please check with that08:31
zhenguoliusheng: it's too complex, haha!  you need to be careful and wait for a while after issue a create instance request08:32
liushengzhenguo: :(((08:33
zhenguoliusheng: but 10 mins it's too long, doesn't that reach the timeout in our loopingcall?08:34
liushengzhenguo: I am not sure, so how it should be ?08:34
zhenguoliusheng: you can clean up the node first, and recreate again to see why that happened08:35
zhenguoliusheng: and do you setup the env by following our guide?08:36
liushengzhenguo: yes08:36
zhenguoliusheng: ok08:36
liushengzhenguo: I have installed my devestack according the guide08:36
zhenguoliusheng: I can confirm that it works08:36
*** shaohe_feng has quit IRC08:41
*** luyao has quit IRC08:41
*** luyao has joined #openstack-nimble08:45
*** shaohe_feng has joined #openstack-nimble08:52
*** shihanzhang has joined #openstack-nimble09:13
*** luyao has quit IRC09:16
*** luyao has joined #openstack-nimble09:30
*** kong_ has quit IRC10:58
*** kong_ has joined #openstack-nimble10:59
*** luyao has quit IRC11:19
*** openstackgerrit has quit IRC11:32
*** kevinz has quit IRC12:59
*** kevinz has joined #openstack-nimble13:28
*** luyao has joined #openstack-nimble13:34
*** openstackgerrit has joined #openstack-nimble13:35
*** kevinz has quit IRC15:55
*** devlaps has joined #openstack-nimble16:43
*** Kevin_Zheng has quit IRC17:07
*** liusheng has quit IRC18:49
*** liusheng has joined #openstack-nimble18:50

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