)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":24872,"name":"YumengBao","email":"yumeng_bao@yahoo.com","username":"Yumeng_Bao"},"change_message_id":"a95b8c7bd9c4f6fe474c7f3668601e00d72ab52e","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add Inspur FPGA driver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Please see the test report in"},{"line_number":10,"context_line":"https://etherpad.opendev.org/p/inspur-fpga-driver-test-report."},{"line_number":11,"context_line":"This patch implemented Inspur FPGA driver in Cyborg. The spec is already"},{"line_number":12,"context_line":"merged."},{"line_number":13,"context_line":"Please see:"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"9f560f44_a0e7f2ab","line":10,"range":{"start_line":10,"start_character":0,"end_line":10,"end_character":62},"updated":"2020-08-27 07:43:19.000000000","message":"thanks, wenping, quite good test report.\npls update to wiki as we discussed in today\u0027s IRC meeting.","commit_id":"a1ab5986d8bd264e97a4bbf19cfe9b76124339dd"},{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"2c9f22720047ff748f9df25edbfe527839bb3757","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add Inspur FPGA driver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Please see the test report in"},{"line_number":10,"context_line":"https://etherpad.opendev.org/p/inspur-fpga-driver-test-report."},{"line_number":11,"context_line":"This patch implemented Inspur FPGA driver in Cyborg. The spec is already"},{"line_number":12,"context_line":"merged."},{"line_number":13,"context_line":"Please see:"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"9f560f44_2e74319c","line":10,"range":{"start_line":10,"start_character":0,"end_line":10,"end_character":62},"in_reply_to":"9f560f44_a0e7f2ab","updated":"2020-09-01 06:39:04.000000000","message":"Done","commit_id":"a1ab5986d8bd264e97a4bbf19cfe9b76124339dd"}],"cyborg/accelerator/drivers/fpga/base.py":[{"author":{"_account_id":28748,"name":"chenker","email":"chen.ke14@zte.com.cn","username":"chenke"},"change_message_id":"1e867765d75585b11948e2def94d30b01dd0b1f4","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"VENDOR_MAPS \u003d {\"0x8086\": \"intel\","},{"line_number":24,"context_line":"               \"1bd4\": \u0027inspur\u0027}"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"class FPGADriver(object):"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f560f44_d9466221","line":24,"range":{"start_line":24,"start_character":15,"end_line":24,"end_character":23},"updated":"2020-08-27 01:36:57.000000000","message":"maybe like this: \"0x1bd4\"?","commit_id":"a1ab5986d8bd264e97a4bbf19cfe9b76124339dd"},{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"b55c1f3d5624aa4ab667af1beb984750242ac3be","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"VENDOR_MAPS \u003d {\"0x8086\": \"intel\","},{"line_number":24,"context_line":"               \"1bd4\": \u0027inspur\u0027}"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"class FPGADriver(object):"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f560f44_9d3855ee","line":24,"range":{"start_line":24,"start_character":15,"end_line":24,"end_character":23},"in_reply_to":"9f560f44_d9466221","updated":"2020-08-27 05:57:41.000000000","message":"As talked in IRC, the vendor_id from `lspci` command output is right like this.","commit_id":"a1ab5986d8bd264e97a4bbf19cfe9b76124339dd"}],"cyborg/accelerator/drivers/fpga/inspur/sysinfo.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"c642f293eaff1f655bd8b8f728f9568e568fc02b","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"import re"},{"line_number":22,"context_line":"from oslo_concurrency import processutils"},{"line_number":23,"context_line":"from oslo_serialization import jsonutils"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"from cyborg.accelerator.common import utils"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_fc43573d","line":22,"updated":"2020-05-21 07:43:50.000000000","message":"pep8: H306: imports not in alphabetical order (re, oslo_concurrency.processutils)","commit_id":"55d0b7fa63e24c9019ca2ba692e1776a2da16e58"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"c642f293eaff1f655bd8b8f728f9568e568fc02b","unresolved":false,"context_lines":[{"line_number":32,"context_line":"import cyborg.privsep"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"INSPUR_FPGA_FLAGS \u003d [\"Inspur Electronic Information Industry Co., Ltd.\", \"Processing accelerators\"]"},{"line_number":36,"context_line":"INSPUR_FPGA_INFO_PATTERN \u003d re.compile("},{"line_number":37,"context_line":"    r\"(?P\u003cdevices\u003e[0-9a-fA-F]{4}:[0-9a-fA-F]{2}:\""},{"line_number":38,"context_line":"    r\"[0-9a-fA-F]{2}\\.[0-9a-fA-F]) \""}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_5c78838e","line":35,"updated":"2020-05-21 07:43:50.000000000","message":"pep8: E501 line too long (99 \u003e 79 characters)","commit_id":"55d0b7fa63e24c9019ca2ba692e1776a2da16e58"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"c642f293eaff1f655bd8b8f728f9568e568fc02b","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        if m:"},{"line_number":83,"context_line":"            fpga_dict \u003d m.groupdict()"},{"line_number":84,"context_line":"            # generate traits info"},{"line_number":85,"context_line":"            traits \u003d get_traits(fpga_dict[\"vendor_id\"], fpga_dict[\"product_id\"])"},{"line_number":86,"context_line":"            fpga_dict[\"rc\"] \u003d constants.RESOURCES[\"FPGA\"]"},{"line_number":87,"context_line":"            fpga_dict.update(traits)"},{"line_number":88,"context_line":"            fpga_list.append(_generate_driver_device(fpga_dict))"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_3c7b0f8c","line":85,"updated":"2020-05-21 07:43:50.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"55d0b7fa63e24c9019ca2ba692e1776a2da16e58"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"c642f293eaff1f655bd8b8f728f9568e568fc02b","unresolved":false,"context_lines":[{"line_number":95,"context_line":"    driver_device_obj.model \u003d fpga.get(\u0027model\u0027, \u0027miss model info\u0027)"},{"line_number":96,"context_line":"    std_board_info \u003d {\u0027product_id\u0027: fpga.get(\u0027product_id\u0027, None),"},{"line_number":97,"context_line":"                      \u0027controller\u0027: fpga.get(\u0027controller\u0027, None)}"},{"line_number":98,"context_line":"    vendor_board_info \u003d {\u0027vendor_info\u0027: fpga.get(\u0027vendor_info\u0027, \u0027fpga_vb_info\u0027)}"},{"line_number":99,"context_line":"    driver_device_obj.std_board_info \u003d jsonutils.dumps(std_board_info)"},{"line_number":100,"context_line":"    driver_device_obj.vendor_board_info \u003d jsonutils.dumps(vendor_board_info)"},{"line_number":101,"context_line":"    driver_device_obj.type \u003d constants.DEVICE_FPGA"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_9c6e9bc6","line":98,"updated":"2020-05-21 07:43:50.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"55d0b7fa63e24c9019ca2ba692e1776a2da16e58"},{"author":{"_account_id":24872,"name":"YumengBao","email":"yumeng_bao@yahoo.com","username":"Yumeng_Bao"},"change_message_id":"a95b8c7bd9c4f6fe474c7f3668601e00d72ab52e","unresolved":false,"context_lines":[{"line_number":119,"context_line":"    driver_dep \u003d driver_deployable.DriverDeployable()"},{"line_number":120,"context_line":"    driver_dep.attribute_list \u003d _generate_attribute_list(fpga)"},{"line_number":121,"context_line":"    driver_dep.attach_handle_list \u003d []"},{"line_number":122,"context_line":"    driver_dep.name \u003d fpga.get(\u0027name\u0027, \u0027\u0027) + \u0027_\u0027 + fpga[\"devices\"]"},{"line_number":123,"context_line":"    driver_dep.driver_name \u003d VENDOR_MAPS.get(fpga[\"vendor_id\"]).upper()"},{"line_number":124,"context_line":"    driver_dep.num_accelerators \u003d 1"},{"line_number":125,"context_line":"    driver_dep.attach_handle_list \u003d [_generate_attach_handle(fpga)]"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f560f44_006fbe27","line":122,"range":{"start_line":122,"start_character":0,"end_line":122,"end_character":66},"updated":"2020-08-27 07:43:19.000000000","message":"deployable_name should be unique because it will be reported to placement as the resource_provider_name(which is required by placement to be unique) So I would recommend generating the deployable_name like \u003ccompute_node_name\u003e_\u003cfpga[\"devices\"]\u003e.\n\nThis patch[1] fixes the non-unique problem in GPU driver, things here would be similar. [1]https://review.opendev.org/#/c/748366/","commit_id":"a1ab5986d8bd264e97a4bbf19cfe9b76124339dd"},{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"7728ad3de7cd6080e8495692ebe63b74b70f27f5","unresolved":false,"context_lines":[{"line_number":119,"context_line":"    driver_dep \u003d driver_deployable.DriverDeployable()"},{"line_number":120,"context_line":"    driver_dep.attribute_list \u003d _generate_attribute_list(fpga)"},{"line_number":121,"context_line":"    driver_dep.attach_handle_list \u003d []"},{"line_number":122,"context_line":"    driver_dep.name \u003d fpga.get(\u0027name\u0027, \u0027\u0027) + \u0027_\u0027 + fpga[\"devices\"]"},{"line_number":123,"context_line":"    driver_dep.driver_name \u003d VENDOR_MAPS.get(fpga[\"vendor_id\"]).upper()"},{"line_number":124,"context_line":"    driver_dep.num_accelerators \u003d 1"},{"line_number":125,"context_line":"    driver_dep.attach_handle_list \u003d [_generate_attach_handle(fpga)]"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f560f44_ede5d1a5","line":122,"range":{"start_line":122,"start_character":0,"end_line":122,"end_character":66},"in_reply_to":"9f560f44_006fbe27","updated":"2020-09-05 02:38:59.000000000","message":"Please review follow up:https://review.opendev.org/#/c/750061/","commit_id":"a1ab5986d8bd264e97a4bbf19cfe9b76124339dd"},{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"2c9f22720047ff748f9df25edbfe527839bb3757","unresolved":false,"context_lines":[{"line_number":119,"context_line":"    driver_dep \u003d driver_deployable.DriverDeployable()"},{"line_number":120,"context_line":"    driver_dep.attribute_list \u003d _generate_attribute_list(fpga)"},{"line_number":121,"context_line":"    driver_dep.attach_handle_list \u003d []"},{"line_number":122,"context_line":"    driver_dep.name \u003d fpga.get(\u0027name\u0027, \u0027\u0027) + \u0027_\u0027 + fpga[\"devices\"]"},{"line_number":123,"context_line":"    driver_dep.driver_name \u003d VENDOR_MAPS.get(fpga[\"vendor_id\"]).upper()"},{"line_number":124,"context_line":"    driver_dep.num_accelerators \u003d 1"},{"line_number":125,"context_line":"    driver_dep.attach_handle_list \u003d [_generate_attach_handle(fpga)]"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f560f44_a83e79b6","line":122,"range":{"start_line":122,"start_character":0,"end_line":122,"end_character":66},"in_reply_to":"9f560f44_006fbe27","updated":"2020-09-01 06:39:04.000000000","message":"Will do a follow up patch once we set a final strategy.","commit_id":"a1ab5986d8bd264e97a4bbf19cfe9b76124339dd"},{"author":{"_account_id":24872,"name":"YumengBao","email":"yumeng_bao@yahoo.com","username":"Yumeng_Bao"},"change_message_id":"a95b8c7bd9c4f6fe474c7f3668601e00d72ab52e","unresolved":false,"context_lines":[{"line_number":121,"context_line":"    driver_dep.attach_handle_list \u003d []"},{"line_number":122,"context_line":"    driver_dep.name \u003d fpga.get(\u0027name\u0027, \u0027\u0027) + \u0027_\u0027 + fpga[\"devices\"]"},{"line_number":123,"context_line":"    driver_dep.driver_name \u003d VENDOR_MAPS.get(fpga[\"vendor_id\"]).upper()"},{"line_number":124,"context_line":"    driver_dep.num_accelerators \u003d 1"},{"line_number":125,"context_line":"    driver_dep.attach_handle_list \u003d [_generate_attach_handle(fpga)]"},{"line_number":126,"context_line":"    dep_list.append(driver_dep)"},{"line_number":127,"context_line":"    return dep_list"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f560f44_60c83a21","line":124,"range":{"start_line":124,"start_character":4,"end_line":124,"end_character":35},"updated":"2020-08-27 07:43:19.000000000","message":"is this device planed to be used as a pass-through device?","commit_id":"a1ab5986d8bd264e97a4bbf19cfe9b76124339dd"},{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"2c9f22720047ff748f9df25edbfe527839bb3757","unresolved":false,"context_lines":[{"line_number":121,"context_line":"    driver_dep.attach_handle_list \u003d []"},{"line_number":122,"context_line":"    driver_dep.name \u003d fpga.get(\u0027name\u0027, \u0027\u0027) + \u0027_\u0027 + fpga[\"devices\"]"},{"line_number":123,"context_line":"    driver_dep.driver_name \u003d VENDOR_MAPS.get(fpga[\"vendor_id\"]).upper()"},{"line_number":124,"context_line":"    driver_dep.num_accelerators \u003d 1"},{"line_number":125,"context_line":"    driver_dep.attach_handle_list \u003d [_generate_attach_handle(fpga)]"},{"line_number":126,"context_line":"    dep_list.append(driver_dep)"},{"line_number":127,"context_line":"    return dep_list"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f560f44_2874299c","line":124,"range":{"start_line":124,"start_character":4,"end_line":124,"end_character":35},"in_reply_to":"9f560f44_60c83a21","updated":"2020-09-01 06:39:04.000000000","message":"Yeah, as the test report record.","commit_id":"a1ab5986d8bd264e97a4bbf19cfe9b76124339dd"},{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"cfb893cda966e6796133821e33f175f1208f97a6","unresolved":false,"context_lines":[{"line_number":69,"context_line":"    {traits:[\"CUSTOM_FPGA_INSPUR\", \"CUSTOM_FPGA_PRODUCT_ID_1EB8\"]}"},{"line_number":70,"context_line":"    \"\"\""},{"line_number":71,"context_line":"    traits \u003d []"},{"line_number":72,"context_line":"    traits.append(\"CUSTOM_FPGA_\" + VENDOR_MAPS.get(vendor_id, \"\").upper())"},{"line_number":73,"context_line":"    traits.append(\"CUSTOM_FPGA_PRODUCT_ID_\" + product_id.upper())"},{"line_number":74,"context_line":"    return {\"traits\": traits}"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"def fpga_tree():"}],"source_content_type":"text/x-python","patch_set":7,"id":"9f560f44_fb6450bb","line":74,"range":{"start_line":72,"start_character":0,"end_line":74,"end_character":29},"updated":"2020-09-08 09:59:59.000000000","message":"We should get the function name of id which is programed in this card here which seems like BSP in your spec.","commit_id":"bccc1d95f4a0a1158eefe277e9c7580815151a3c"},{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"81ac07ddc7f2eb221cb9764110ed621aea129ec6","unresolved":false,"context_lines":[{"line_number":69,"context_line":"    {traits:[\"CUSTOM_FPGA_INSPUR\", \"CUSTOM_FPGA_PRODUCT_ID_1EB8\"]}"},{"line_number":70,"context_line":"    \"\"\""},{"line_number":71,"context_line":"    traits \u003d []"},{"line_number":72,"context_line":"    traits.append(\"CUSTOM_FPGA_\" + VENDOR_MAPS.get(vendor_id, \"\").upper())"},{"line_number":73,"context_line":"    traits.append(\"CUSTOM_FPGA_PRODUCT_ID_\" + product_id.upper())"},{"line_number":74,"context_line":"    return {\"traits\": traits}"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"def fpga_tree():"}],"source_content_type":"text/x-python","patch_set":7,"id":"9f560f44_f12f51f3","line":74,"range":{"start_line":72,"start_character":0,"end_line":74,"end_character":29},"in_reply_to":"9f560f44_fb6450bb","updated":"2020-09-08 12:20:14.000000000","message":"Currently we dont support program. the BSP reported is not used now. Added todo for BSP program.","commit_id":"bccc1d95f4a0a1158eefe277e9c7580815151a3c"}],"cyborg/tests/unit/accelerator/drivers/fpga/inspur/test_driver.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"8c20f78d25be801555b75abcf2fc1b62f26e50d5","unresolved":false,"context_lines":[{"line_number":67,"context_line":"            \u0027vendor\u0027: \u00271bd4\u0027,"},{"line_number":68,"context_line":"            \u0027type\u0027: \u0027FPGA\u0027,"},{"line_number":69,"context_line":"            \u0027std_board_info\u0027:"},{"line_number":70,"context_line":"                {\"controller\": \"Processing accelerators\", \"product_id\": \"a115\"},"},{"line_number":71,"context_line":"            \u0027vendor_board_info\u0027: {\"vendor_info\": \"fpga_vb_info\"},"},{"line_number":72,"context_line":"            \u0027deployable_list\u0027:"},{"line_number":73,"context_line":"                ["}],"source_content_type":"text/x-python","patch_set":2,"id":"ff570b3c_0d3213a8","line":70,"updated":"2020-05-26 11:31:38.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"c943f3cdab534697f0bdcb8aaa3d18bba6372b90"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"1e0babdf9d1d7df59968eeb8de213e9bda7ff9f2","unresolved":false,"context_lines":[{"line_number":13,"context_line":"# under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import mock"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from oslo_serialization import jsonutils"},{"line_number":19,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_8e1b59c8","line":16,"updated":"2020-08-21 10:42:26.000000000","message":"pep8: N366: You must explicitly import python\u0027s mock: ``from unittest import mock``","commit_id":"7bf5e7d1c03435a9c3c93cfdf3d79137abd8009a"}]}
