03:02:29 #startmeeting openstack-cyborg 03:02:30 Meeting started Wed Jun 12 03:02:29 2019 UTC and is due to finish in 60 minutes. The chair is Sundar. Information about MeetBot at http://wiki.debian.org/MeetBot. 03:02:31 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 03:02:34 The meeting name has been set to 'openstack_cyborg' 03:02:51 #topic Roll call and agenda 03:02:51 Hi all 03:02:58 #info Sundar 03:03:06 #info wangzhh 03:03:10 #info Biwei 03:03:12 #info ikuo_o 03:03:34 #info yikun 03:03:41 Agenda: https://wiki.openstack.org/wiki/Meetings/CyborgTeamMeeting#Agenda 03:03:43 #info xinranwang 03:03:54 Anything to add to agenda? 03:04:27 #topic Cyborg CI 03:05:02 As we have said, we need two things to merge Nova patches: Nova functional test with fake Cyborg API, and tempest CI with fake driver 03:05:37 Taking the tempest one first, xinranwang and Biwei are working on the general framework and plugins. 03:06:13 For the fake driver, yikun has kindly agreed. But he needs help. I'll help as much as I know. 03:06:23 It would be great if others can also help him out. 03:06:43 yikun, please feel free to ask questions. 03:07:03 ANy comments or questions on fake driver and/or tempest? 03:07:18 #info Li_Liu 03:07:25 Thanks Yikun. 03:07:29 I still don't know what is the real requirement of fake driver. I assume it's just a driver that will return empty or just pass 03:07:55 Biwei and I are working on the tempest test case and general framework. We will test them in real env, once the fake driver is implemented, yikun can use these testcases. 03:08:26 and also, we should merge these two patch, :) https://review.opendev.org/#/c/658986 https://review.opendev.org/#/c/658987 03:08:38 and then I can append the patch base on these two 03:08:42 real env means an openstack env with fpga 03:08:49 yikun: The fake driver ill be a derivative of the generic driver, which will return some pre-defined driver OVO for discover() 03:09:52 Sundar: ok, will summit a patch this week, and any detail comments can be happened in the patch 03:09:56 It can return success or NULL for other APIs. 03:10:21 yikun: Great, thanks. Please ensure the fake driver is added to the tempest repo. 03:10:25 Sundar: got it 03:10:46 Now, for the Nova functional test 03:11:03 Can somebody take that up? 03:11:35 It will just mock the Cyborg APIs called by Nova -- get device profile, post/patch/delete ARQs 03:12:19 “Please ensure the fake driver is added to the tempest repo.” not sure why it is tempest repo? 03:12:33 I thought it should be in cyborg repo 03:13:22 yikun, there's a cyborg-tempest-plugin repo, living outside of the cyborg repo 03:14:12 The tempest plugins are going to call that fake driver. 03:14:22 Sundar: what should fake driver return exactly, the info returned by this fake driver will be used in nova to boot vm, right ? 03:15:19 xinranwang: Yes. Its discover() API should return a pre-defined device OVO object 03:15:26 Biwei: OK, https://github.com/openstack/cyborg-tempest-plugin 03:15:43 Sundar: tempest has api test and scenario test, those 2 types only interact with API layers, I don't think tempest should call driver directly. 03:15:44 It could define a device with soem fake controlpath-IDs, 1 deployable and an attach handle, all with fake PCI addresses 03:15:51 Biwei: what do you think? 03:16:17 Sundar: yes, but what info stored in this OVO, like pci address 03:16:29 tempest will not call driver directly 03:17:26 Can be totally bogus PCI addresses. The VM may not boot up without the hardware. 03:17:51 To quote Eric Fried: "It should be sufficient to wait for the instance to go ACTIVE (according to Nova) (which will happen even if the guest OS boot pukes) and scrape its domain XML to assert that the correct PCI devices are present." 03:18:56 Biwei: how to call driver directly, shouldn't it call cyborg api and cyborg api call the fake driver 03:19:00 Biwei Yes. Not sure if the CYborg agent will call driver API in tempest env, as it happens in real env 03:20:19 Sundar in tempest test, we only need to call the cyborg restful APIs. 03:20:25 The API invocation need not even call the driver -- as long as the driver has reported the device(s). 03:21:03 Biwei: "Sundar in tempest test, we only need to call the cyborg restful APIs." < Yes, so the fake driver should be in cyborg repo, right? 03:21:27 and tempest should do something config the cyborg to use the fake dirver 03:21:58 Biwei, if there were some way to set up the Cyborg database in tempest env, like I did with initial_setup.sh in pilot code, we may not even need a fake driver perhaps 03:22:27 Have you seen if tempest can run some script to set up the env? 03:22:37 I have some discussion with others like Alex, Shaohe. We are not sure if the status will switch to active in that case. I test in local with fake device, it failed. 03:22:57 I haven't figured that out yet. I have done the steps including creating flavor and update the flavor with device and all working so far 03:23:39 but not sure how to do the database set up 03:24:44 tempest run in an installed openstack env where already have cybrog db, every thing same as a real env 03:24:54 xinranwang: True, I think it goes to error state. However, if we can do 'virsh dumpxml' equivalent and look for the hostdev device, that should be good enough 03:26:20 Sundar: yes, I agree, but nova api will return error directly to tempest. where should we got the xml from virt driver. 03:26:47 Can you run a comand like 'virsh dumpxml'? 03:27:04 you mean in tempest? 03:27:08 Yes 03:28:49 I am not sure if libvirt will really boot it, I wonder that libvirt may do pci 03:29:17 I am not sure if libvirt will really boot it, I wonder that libvirt may do pci check first before boot a vm 03:29:48 I have tried to launch a VM inside a development VM. It will error out but the VM exists in error state as shown by 'openstack server list' 03:30:00 Then we can look at Nova logs 03:31:00 You are right, the instance won't launch -- so can't do 'virsh dumpxml' 03:31:02 tonybrad proposed openstack/cyborg master: Move to releases.openstack.org https://review.opendev.org/664774 03:31:24 I know, the xml file is generate before calling libvirt. Have you run virsh list to see if the instance exists. 03:32:43 The 'virsh list' won't show the instance -- so we should scrap that idea. I used to look at Nova logs. But I also modify the LOG statement in Nova virt driver to dump the xml all the time 03:33:35 We should probably ask other projects that use hardware. I'll get back on this. 03:34:58 Ok, we should find another way. 03:35:04 Even if it fails in a predictable way, we can look for that specific error in n-cpu logs and declare success. 03:35:36 OK, let's table it for now. 03:35:47 #topic Python 3 migration 03:35:48 Yes, of course. I agree with you. That was what I did when I don't have devices lol 03:36:26 ikuo_o and all: are there any questions or comments on Py3 migration? 03:36:33 The fake driver in my mind it's that: we implement a fake driver in *Cyborg driver*, and tempest set the CONF.agent.enabled_drivers to this fakedriver when test setup. 03:36:33 And the tempest can test the case which the fake driver can complete, such as some cyborg API, but for Nova-cyborg intergration test, we should run in real env. 03:36:33 [1] https://github.com/openstack/cyborg/blob/master/cyborg/agent/resource_tracker.py#L57 03:37:44 We just fixed stable/stein cord. 03:38:04 and will throw patches in some days. 03:38:16 ikuo_o: Great. Was that much work? 03:39:15 Will look for the patches. 03:39:30 #topic Cyborg client migration 03:39:42 Not so much, but we should fix continuously because new patches will come out. 03:40:16 ikuo_o: Can you please let us know where this stands? Do you need any help? 03:41:09 I will tell you If I post patchs, off cource, I ask you help if needed. 03:41:39 sorry, "this" means cyborg client migration? 03:41:44 Yes 03:42:10 We are discussing how to break down tasks. 03:42:36 OK. Good. 03:42:45 I think the tasks would be: 1) implement object open via API eg, device_profile, arq 03:42:53 #topic Cyborg specs and patches 03:42:59 2) implement operation (CRUD) open via API 03:43:07 3)implement call point from library users 03:43:13 4)all the functional tests (toX) 03:43:29 any advices welcome! 03:43:34 ikuo_o: I would think the first step is to adopt openstack-sdk? 03:44:15 yes, It include adopting openstacksdk. 03:44:32 ok 03:44:46 we are preparing write storyboard, pls wait. 03:44:51 Re. Cyborg patches, I approved the generic driver and got it merged. Thanks, yikun 03:45:14 Also, approved a bunch of small patches on fixing opendev URL or email addresses 03:46:11 Sundar: thanks, but we should first https://review.opendev.org/#/c/658986 first, :) 03:46:39 I have partial fixes for the pilot code comments. Unfortunately, I could not dedicate a few days to get this done completely. 03:47:37 yikun: Agreed. Missed that 03:48:14 Will refresh the pilot code this week with whatever I have. 03:48:33 @all, please do review the specs 03:48:59 Can we aim to get one set of reviews by this week? 03:49:36 #link https://review.opendev.org/#/q/status:open+project:openstack/cyborg-specs+owner:Sundar 03:50:56 wangzhh, Li_Liu, yikun, xinranwang, all: Can we aim to get one set of reviews for the specs by this week? 03:51:59 sorry, poor connection 03:52:25 NP, ikuo_o. I was asking if we can get the specs reviewed by this week. 03:53:04 ok, I will check logs. 03:53:21 #topic AoB 03:53:43 I think we can skip the Zoom call tomorrow, and use that time to get the specs reviewed 03:54:41 all right, thank you Sundar. 03:55:07 Thanks, ikuo_o and all. Have a good day. Bye. 03:55:10 #endmeeting