*** brinzhang has joined #openstack-cyborg | 00:12 | |
*** swp20 has joined #openstack-cyborg | 00:12 | |
*** songwenping_ has quit IRC | 00:14 | |
*** brinzhang_ has quit IRC | 00:14 | |
*** songwenping_ has joined #openstack-cyborg | 00:28 | |
*** swp20 has quit IRC | 00:32 | |
*** songwenping__ has joined #openstack-cyborg | 00:38 | |
*** songwenping_ has quit IRC | 00:42 | |
*** brinzhang has quit IRC | 00:42 | |
*** songwenping_ has joined #openstack-cyborg | 01:08 | |
*** songwenping__ has quit IRC | 01:11 | |
*** songwenping__ has joined #openstack-cyborg | 02:12 | |
*** songwenping_ has quit IRC | 02:15 | |
*** songwenping_ has joined #openstack-cyborg | 02:32 | |
*** songwenping__ has quit IRC | 02:35 | |
*** xinranwang has joined #openstack-cyborg | 02:55 | |
*** Sundar has joined #openstack-cyborg | 02:58 | |
*** s_shogo has joined #openstack-cyborg | 02:58 | |
*** brinzhang has joined #openstack-cyborg | 02:59 | |
Sundar | Hi all | 03:01 |
---|---|---|
Sundar | #startmeeting openstack-cyborg | 03:01 |
openstack | Meeting started Thu Apr 23 03:01:58 2020 UTC and is due to finish in 60 minutes. The chair is Sundar. Information about MeetBot at http://wiki.debian.org/MeetBot. | 03:01 |
openstack | Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. | 03:02 |
*** openstack changes topic to " (Meeting topic: openstack-cyborg)" | 03:02 | |
openstack | The meeting name has been set to 'openstack_cyborg' | 03:02 |
s_shogo | Hi all | 03:02 |
songwenping_ | Hi all | 03:02 |
xinranwang | Hi all | 03:02 |
*** Yumeng has joined #openstack-cyborg | 03:03 | |
*** chenke has joined #openstack-cyborg | 03:03 | |
Yumeng | #info Yumeng | 03:03 |
brinzhang | hi all | 03:03 |
Yumeng | hi all | 03:03 |
Sundar | Good, we have a quorum. | 03:03 |
Sundar | Does anybody have a specific thing to discuss? | 03:04 |
Sundar | *any | 03:04 |
chenke | hi all | 03:04 |
chenke | #info chenke | 03:04 |
xinranwang | #info xinranwang | 03:04 |
s_shogo | #info s_shogo | 03:04 |
brinzhang | #info brinzhang | 03:05 |
*** shaohe_feng has joined #openstack-cyborg | 03:05 | |
Yumeng | hi all, pls help to review and merge https://review.opendev.org/#/q/topic:fix-bandit-check-failures+(status:open+OR+status:merged) | 03:06 |
brinzhang | I have some summary work in my company, so there few work take here in this meeting, I am sorry | 03:06 |
brinzhang | Yumeng: I reviewed the first patch, I hope you can add the test case to cover your changes | 03:06 |
Sundar | Looking at https://review.opendev.org/#/q/status:open+project:openstack/cyborg+branch:master | 03:06 |
Yumeng | brinzhang: I just replied your comments: https://review.opendev.org/#/c/720143/4/cyborg/agent/manager.py | 03:06 |
Sundar | Agree with Yumeng -- bandit fixes are important | 03:06 |
*** haibin-huang has joined #openstack-cyborg | 03:07 | |
Sundar | I'll review them after this meeting | 03:07 |
brinzhang | Yumeng: I mean, you should add test case to test https://review.opendev.org/#/c/720143/4/cyborg/agent/manager.py@52 | 03:07 |
Yumeng | Sundar: Thanks! | 03:07 |
brinzhang | the fpga_program_v2() | 03:07 |
brinzhang | We can’t give up adding new use cases because they do n’t affect existing use cases, can we? | 03:08 |
Sundar | Also, I'd say the functional tests patch https://review.opendev.org/#/c/702863/ is important | 03:08 |
Yumeng | brinzhang: I know. fpga_program_v2() here just made a temp file and downloaded the image, then removed the file. it's more like a file operation. If we add unit test for fpga_program_v2(), they are all by mock. | 03:09 |
brinzhang | Sundar, there is an issue, that cannot work successful in my local, and I havenot found the reason now | 03:09 |
Yumeng | brinzhang: that's why at the beginnig , we didn't add unit test for this func | 03:09 |
brinzhang | if anyone good at functional test, please give some help ^, thanks | 03:10 |
Sundar | brinzhang: Are you saying the functional tests do not run in your local env, or they run but do not pass? | 03:10 |
brinzhang | Sundar, that why I am confusing, so I give -1 in this patch | 03:10 |
brinzhang | you can run tox -e functional in you local env, and test. The test cannot cover the functional dir too. | 03:11 |
xinranwang | I looked into brinzhang's functional test issue, It seems that all funtional tests code are not loaded successfully. | 03:11 |
brinzhang | xinranwang: right | 03:11 |
brinzhang | Yumeng: I understand, the UT mainly keep the function work fine, mock data is enough, I think | 03:12 |
shaohe_feng | the problem is: str + UUID ? | 03:12 |
brinzhang | shaohe_feng: yes, I reviewed your comments in PS3, and left some comments in latest patch | 03:14 |
shaohe_feng | Yumeng have check the type of uuid? seems chenke has checked it, already str format. | 03:14 |
chenke | I had alerady check it. str format. | 03:15 |
chenke | But functional test may be some error about this type. | 03:15 |
shaohe_feng | strangely. | 03:16 |
*** tetsuro has joined #openstack-cyborg | 03:16 | |
*** tetsuro has quit IRC | 03:16 | |
chenke | From the logical point of view of the code, when calling the method, uuid is read from the device profile, which is itself str, and we do not need to do conversion. | 03:16 |
Yumeng | shaohe_feng: yes, uuid. shogo has helped check this patch in his real FPGA env. | 03:16 |
shaohe_feng | maybe not the source code error | 03:17 |
shaohe_feng | something wrong it the functional test code. | 03:17 |
brinzhang | chenke: we also should keep the UT can works fine | 03:17 |
chenke | @brin . Did you encounter the problem when running the fun test? | 03:17 |
shaohe_feng | s/something wrong it the functional test code. | 03:17 |
Yumeng | if not uuid, it should have raised an error | 03:17 |
chenke | I guess. | 03:18 |
brinzhang | chenke: I paste my test step, you can review again | 03:18 |
*** Sundar has quit IRC | 03:18 | |
chenke | ok. | 03:19 |
*** Sundar has joined #openstack-cyborg | 03:19 | |
brinzhang | Yumeng: so, there will be negative and active scenario need to be test, if the bitstream_uuid is str, or not str | 03:19 |
Sundar | Got disconnected when I logged into my VPN | 03:19 |
s_shogo | I also check the test test of brin. | 03:19 |
s_shogo | s/test test/test step | 03:19 |
Yumeng | brinzhang: I think the mian difference is this step of your test step: bitstream_uuid=uuid.uuid1(). this step manually set the bitstream_uuid type to uuid object | 03:22 |
Sundar | Yumeng: In https://review.opendev.org/720475, do we want to run bash with some unknown variable as argument? That can be insecure too. | 03:22 |
brinzhang | if there is a UT, that we can see clear their different | 03:22 |
chenke | actually. UT for this method, only can verify the logic of method. The UT will not ensure the type of uuid. We can not expect UT and do everything for us. It can help our code more strongly. | 03:25 |
chenke | s/and/can/ | 03:26 |
Sundar | To check if a value is a UUID, we can do: try: | 03:27 |
Sundar | There must be some oslo check for it too. Checking now ... | 03:27 |
Yumeng | Sundar: emmm.. seems in spdk start_server() function, we cannot avoid the server_name (unkown variable) as argument , but without shell=True is much better than before | 03:27 |
brinzhang | Sundar: what do your consider? I am not very familiar with bandit | 03:28 |
Sundar | For UUID: oslo_utils.uuidutils.is_uuid_like(val) | 03:28 |
chenke | As we often hear, practice is the only criterion for testing truth. I think your test is very good. If necessary, I think we can add a uuid type check. If it doesn’t pass, throw an exception. Do you think this is a good idea? | 03:28 |
Yumeng | Sundar: I will talk to Li Liu, and see if he has better suggestion. I will sync you later. | 03:29 |
brinzhang | Sundar: yes, this just only check the parameter is a uuid, not determine it's type | 03:29 |
shaohe_feng | can we double check to make make the uuid is srting | 03:29 |
shaohe_feng | string | 03:29 |
Sundar | self.assertTrue( oslo_utils.uuidutils.is_uuid_like(val) ) | 03:29 |
brinzhang | so add UT to cover this change, do you agree? | 03:29 |
songwenping_ | Just looking at this patch. Brin's error occurred in _os.path.join(dir, pre + name + suf). Should we check the name type? | 03:30 |
shaohe_feng | in | 03:30 |
shaohe_feng | format again str(uuid) | 03:31 |
chenke | agree and a type check about uuid. and add a test to cover this check situation. | 03:31 |
shaohe_feng | IMHO, a good function should can handle both UUID or str type both | 03:32 |
songwenping_ | should we add try...except at download_path generate? | 03:32 |
brinzhang | add str() just only ensure the parameter is right, of course, that also need to add UT | 03:32 |
Sundar | Yumeng: Re. SPDK, it was added early on, but I don't know if anybody has checked that it works. Sure, please check. SInce tomorrow is the deadline for RC1 for Ussuri, I think we can aim to close other bandit patches except this one. | 03:33 |
brinzhang | Sundar, Yumeng: add the UT, that can accept before the deadline of RC1, otherwise, I would rather postpone, we cannot merge the ERROR logical | 03:35 |
xinranwang | s_shogo: do you want talk about program API? | 03:36 |
shaohe_feng | any way, str(uuid) is not bad. | 03:37 |
Sundar | brinzhang: of course, others need to be fixed and reviewed. | 03:37 |
shaohe_feng | yes, how is the process of program API? | 03:37 |
Yumeng | Sundar: Re SPDK. I will sync with Li today, I can make a quick update today. anyway, current change should be at least better than now. IMHO, also safe to merge. | 03:38 |
Sundar | Yumeng, the bandit patches do not seem to form a series? Enabling bandit as voting job depends only on the SPDK patch https://review.opendev.org/#/c/720475/3 | 03:38 |
Yumeng | Sundar: Enabling bandit as voting job depends on the series actually. the four patches | 03:38 |
Yumeng | https://review.opendev.org/#/c/720479/3//COMMIT_MSG | 03:39 |
Yumeng | but the four patches are independet. | 03:39 |
Yumeng | are mutually independet. | 03:40 |
brinzhang | Yumeng: https://review.opendev.org/#/c/720475/ this one is enough, your patches alread have a rebase logical | 03:40 |
s_shogo | @xinranwang Thanks for your mention, related to program API, as you commented, I would like to discuss how to select the command, like "fpgaconf" or "fpgasupdate" from OPAE version. | 03:41 |
Sundar | Yumeng: I see. Usually, we don;t use Depends-On for patches within the same project. But I see what you are trying to do. | 03:41 |
Sundar | I gave +2 with the understanding that other patches need to merge first | 03:42 |
Yumeng | Sundar, brinzhang: Yes. at first,I didn't use Depends-On for patches within our project. later I got some question, so just add this for more clarification for others to quickly review. | 03:44 |
Sundar | @s_shogo xinranwang: Ideally, we shouldn't hardcode the command name fpgasupdate or fpgaconf. One possible approach is to have metadata with the bitstream image that identifies its type, and use that type to identify the command. | 03:44 |
xinranwang | it is also depends on which version of OPAE we installed, right ? | 03:45 |
Yumeng | Sundar, brinzhang and all: agree with double check uuid to make sure it's a str, and I will double check the unittest | 03:45 |
s_shogo | I tried get OPAE version from "fpgainfo fme", but that format seems to have difference between some OPAE version | 03:45 |
shaohe_feng | we can push OPAE team to provide a unify API for program | 03:45 |
brinzhang | The depend-on, just only ensure the latest patch cannot merged earlier than the base patach, so it can add in the same project, in nova there is a common case | 03:45 |
Sundar | I had once thought of using the image suffix, whether it is ".gbs" or not, to indeitfy the command. However, AFAIK, the bitstreams that need fpgaconf or fpgasupdate may both have the same suffix | 03:45 |
shaohe_feng | Let's them distinguish to different bitstream format and call the right cmd | 03:46 |
shaohe_feng | In my former demo, I did not change any cyborg code. | 03:47 |
Sundar | xinranwang: Yes, it depends on OPAE version too. However, if we let the operator install OPAE libraries and we remove that OPAE version setting from devstack -- which would be a good thing -- we would not be able to use the version. | 03:47 |
Sundar | May be this can be a goal for Victoria release :) | 03:47 |
shaohe_feng | I just write a shell wrap to call fpgasupdate or fpgaconf. | 03:48 |
shaohe_feng | I can do, OPAE team can also distinguish them=D | 03:48 |
Sundar | shaohe_feng: In a production env, with different types of FPGAs from different vendors, we would need a better mechanism. | 03:48 |
Sundar | It is not just OPAE -- but hopefully other vendors too | 03:48 |
shaohe_feng | Yes, but that's hard. No now know all vendors product well. So different vendors maintainer their special code :') | 03:50 |
Sundar | The special code must be inside their resp. FPGA drivers. The image file need only have metadata that indicates the image type, maybe 'accel:bitstream_type=gbs' in Glance metadata. | 03:51 |
shaohe_feng | For image upload, it is necessary to call the vendors special tools to parser the metadata of their image | 03:52 |
shaohe_feng | and format glance metadata | 03:53 |
shaohe_feng | we are tying to do it. This can make user more easy to user cyborg | 03:53 |
shaohe_feng | and avoid error prone | 03:53 |
Sundar | shaohe_feng: That would be useful. Nova/Glance developers told me that it is better if Cyborg does not call Glance API for that. Whoever does the image upload should just add the metadata, and Cyborg can check whether it is present. | 03:54 |
xinranwang | It is better to let operator choose the right version, and configure it in conf file, cyborg just need to read this file and choose the right commands. | 03:55 |
shaohe_feng | Sundar, agree. I'm make the planing to improve it. | 03:55 |
Sundar | xinranwang: The conf file approach is fine too, as long as there are not too many image types. Right now, there is only 1, so no problem :) | 03:56 |
s_shogo | (IMO, multiple OPAE in single env is little difficult to operate.) | 03:57 |
Sundar | s_shogo: Agreed. However, unfortunately, different FPGA cards require different versions of OPAE today. If you need to use more than one in the same cluster, maybe you can put them in different compute nodes, so that each node has only 1 OPAE version. | 03:58 |
xinranwang | shaohe_feng Sundar does OPAE team plan to unify a set of API for different cards? | 04:00 |
s_shogo | Sundar, Thanks, I missed that possibility.that's right. | 04:00 |
shaohe_feng | xinranwang let us feedback to them and push them -_- | 04:00 |
shaohe_feng | I guess no. we can user, but they are not. | 04:02 |
Sundar | xinranwang: I can explain that offline, because we are hitting the top of the hour. | 04:02 |
shaohe_feng | so they do not know the pain-point | 04:02 |
Sundar | Any other topic for today? | 04:03 |
Sundar | Tomorrow is the last day for RC release. We may not be able to merge any patches for Ussuri after that. | 04:04 |
Sundar | Thanks a lot to all of you. Have a good day. Bye. | 04:04 |
Sundar | #endmeeting | 04:05 |
*** openstack changes topic to "Pending patches (Meeting topic: openstack-cyborg)" | 04:05 | |
xinranwang | Sundar: ok | 04:05 |
openstack | Meeting ended Thu Apr 23 04:05:00 2020 UTC. Information about MeetBot at http://wiki.debian.org/MeetBot . (v 0.1.4) | 04:05 |
xinranwang | byebye | 04:05 |
openstack | Minutes: http://eavesdrop.openstack.org/meetings/openstack_cyborg/2020/openstack_cyborg.2020-04-23-03.01.html | 04:05 |
openstack | Minutes (text): http://eavesdrop.openstack.org/meetings/openstack_cyborg/2020/openstack_cyborg.2020-04-23-03.01.txt | 04:05 |
openstack | Log: http://eavesdrop.openstack.org/meetings/openstack_cyborg/2020/openstack_cyborg.2020-04-23-03.01.log.html | 04:05 |
s_shogo | bye | 04:05 |
shaohe_feng | do we still need to refactor the accelerator driver | 04:05 |
*** tetsuro has joined #openstack-cyborg | 04:11 | |
*** s_shogo has quit IRC | 04:18 | |
*** Sundar has quit IRC | 04:40 | |
*** brinzhang_ has joined #openstack-cyborg | 04:44 | |
*** brinzhang has quit IRC | 04:47 | |
*** shaohe_feng has quit IRC | 05:34 | |
*** chenke has quit IRC | 06:03 | |
*** links has joined #openstack-cyborg | 08:11 | |
*** igordc has quit IRC | 08:13 | |
openstackgerrit | YumengBao proposed openstack/cyborg master: Fix bandit error: [B108:hardcoded_tmp_directory] https://review.opendev.org/720143 | 08:20 |
openstackgerrit | YumengBao proposed openstack/cyborg master: Fix bandit error: [B108:hardcoded_tmp_directory] https://review.opendev.org/720143 | 08:20 |
openstackgerrit | YumengBao proposed openstack/cyborg master: Fix bandit error: [B108:hardcoded_tmp_directory] https://review.opendev.org/720143 | 08:47 |
openstackgerrit | YumengBao proposed openstack/cyborg master: Fix bandit error: [B108:hardcoded_tmp_directory] https://review.opendev.org/720143 | 08:50 |
*** tetsuro has quit IRC | 09:24 | |
openstackgerrit | Merged openstack/cyborg master: Fix bandit error: [B108:hardcoded_tmp_directory] https://review.opendev.org/720143 | 10:19 |
*** links has quit IRC | 10:52 | |
*** links has joined #openstack-cyborg | 11:02 | |
openstackgerrit | zhurong proposed openstack/cyborg master: Fix bandit error: Ascend driver:[B602:subprocess_popen_with_shell_equals_true] https://review.opendev.org/720456 | 11:34 |
openstackgerrit | zhurong proposed openstack/cyborg master: Fix bandit error: [B104:hardcoded_bind_all_interfaces] https://review.opendev.org/720149 | 11:36 |
openstackgerrit | YumengBao proposed openstack/cyborg master: Fix bandit error: Ascend driver:[B602:subprocess_popen_with_shell_equals_true] https://review.opendev.org/720456 | 11:39 |
*** jraju__ has joined #openstack-cyborg | 12:41 | |
*** links has quit IRC | 12:41 | |
*** haibin-huang has quit IRC | 12:43 | |
openstackgerrit | Merged openstack/cyborg master: Fix bandit error: [B104:hardcoded_bind_all_interfaces] https://review.opendev.org/720149 | 12:55 |
*** igordc has joined #openstack-cyborg | 13:07 | |
*** xinranwang has quit IRC | 13:24 | |
*** jraju__ has quit IRC | 17:14 | |
*** igordc has quit IRC | 19:39 | |
*** igordc has joined #openstack-cyborg | 20:32 | |
*** igordc has quit IRC | 21:51 | |
*** igordc has joined #openstack-cyborg | 22:26 | |
*** igordc has quit IRC | 23:05 |
Generated by irclog2html.py 2.15.3 by Marius Gedminas - find it at mg.pov.lt!