)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"c167f1c3a9f59012972a1c797b39bb5dd3bf76fe","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"1b81075f_8094010e","updated":"2021-10-26 07:54:40.000000000","message":"thanks zhaosen for update.","commit_id":"e0fe2b1fab5eef26a41af4ab63f648b943c0ecf7"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"516e4df6ab927bb8ee6b049367460ce222b484d9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"518e3c77_801be85f","updated":"2021-10-28 09:00:43.000000000","message":"Thanks update, LGTM.","commit_id":"ade1972fc37c2d6ba9a80c4a86749f4af4c05d48"},{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"a5d0082afdf151d42cd1db340885fc2dca232520","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"7aaa949c_02ab6c62","updated":"2021-10-26 08:56:25.000000000","message":"good job","commit_id":"ade1972fc37c2d6ba9a80c4a86749f4af4c05d48"}],"doc/source/admin/index.rst":[{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"c167f1c3a9f59012972a1c797b39bb5dd3bf76fe","unresolved":true,"context_lines":[{"line_number":4,"context_line":""},{"line_number":5,"context_line":"The OpenStack Cyborg is running as an acceleration service that allows you to"},{"line_number":6,"context_line":"manage the lifecycle of accelerating for an instance in cloud computing"},{"line_number":7,"context_line":"platform. It gives you control over accelerators attached to instances, easily."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Cyborg is an auxiliary module to Compute(Nova). thus there are many"},{"line_number":10,"context_line":"interactions between Cyborg and Nova(as well as Placement), which can be"}],"source_content_type":"text/x-rst","patch_set":3,"id":"fea65708_4e5d6f5c","line":7,"range":{"start_line":7,"start_character":70,"end_line":7,"end_character":71},"updated":"2021-10-26 07:54:40.000000000","message":"nit","commit_id":"3f687e88a5e5166ee1b10b3065328f2e17b9f5c0"},{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"9cb593c94456c04a71bc289534887145cb1ff2aa","unresolved":true,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Overview"},{"line_number":10,"context_line":"--------"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"To effectively administer acceleration service, operators should understand how"},{"line_number":13,"context_line":"Cyborg interacting with Nova and Placement."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":".. image:: ../figures/cyborg-nova-interaction.png"}],"source_content_type":"text/x-rst","patch_set":8,"id":"49d013e5_481dab66","line":12,"range":{"start_line":11,"start_character":0,"end_line":12,"end_character":47},"updated":"2021-07-08 06:55:50.000000000","message":"please restruct this phrase, I didn\u0027t get the point","commit_id":"d4899275ae3df1bad5b45b783d972d97b0a5ac4c"},{"author":{"_account_id":30395,"name":"Arthur Dayne","display_name":"Arthur Dayne","email":"palagend@foxmail.com","username":"acewit"},"change_message_id":"9f6547fa9e53d81fd1bed79bee882871f719b7c2","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Overview"},{"line_number":10,"context_line":"--------"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"To effectively administer acceleration service, operators should understand how"},{"line_number":13,"context_line":"Cyborg interacting with Nova and Placement."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":".. image:: ../figures/cyborg-nova-interaction.png"}],"source_content_type":"text/x-rst","patch_set":8,"id":"0053f7e2_a777571d","line":12,"range":{"start_line":11,"start_character":0,"end_line":12,"end_character":47},"in_reply_to":"49d013e5_481dab66","updated":"2021-07-13 06:34:08.000000000","message":"Done","commit_id":"d4899275ae3df1bad5b45b783d972d97b0a5ac4c"},{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"9cb593c94456c04a71bc289534887145cb1ff2aa","unresolved":true,"context_lines":[{"line_number":10,"context_line":"--------"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"To effectively administer acceleration service, operators should understand how"},{"line_number":13,"context_line":"Cyborg interacting with Nova and Placement."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":".. image:: ../figures/cyborg-nova-interaction.png"},{"line_number":16,"context_line":"    :width: 700 px"}],"source_content_type":"text/x-rst","patch_set":8,"id":"8762309a_728fda63","line":13,"range":{"start_line":13,"start_character":7,"end_line":13,"end_character":18},"updated":"2021-07-08 06:55:50.000000000","message":"interacts","commit_id":"d4899275ae3df1bad5b45b783d972d97b0a5ac4c"},{"author":{"_account_id":30395,"name":"Arthur Dayne","display_name":"Arthur Dayne","email":"palagend@foxmail.com","username":"acewit"},"change_message_id":"9f6547fa9e53d81fd1bed79bee882871f719b7c2","unresolved":false,"context_lines":[{"line_number":10,"context_line":"--------"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"To effectively administer acceleration service, operators should understand how"},{"line_number":13,"context_line":"Cyborg interacting with Nova and Placement."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":".. image:: ../figures/cyborg-nova-interaction.png"},{"line_number":16,"context_line":"    :width: 700 px"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7acc2d21_dac7a89f","line":13,"range":{"start_line":13,"start_character":7,"end_line":13,"end_character":18},"in_reply_to":"8762309a_728fda63","updated":"2021-07-13 06:34:08.000000000","message":"Done","commit_id":"d4899275ae3df1bad5b45b783d972d97b0a5ac4c"},{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"9cb593c94456c04a71bc289534887145cb1ff2aa","unresolved":true,"context_lines":[{"line_number":20,"context_line":"Coexistence with PCI whitelists"},{"line_number":21,"context_line":"-------------------------------"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"The operator tells Nova which PCI devices to claim and use by configuring the"},{"line_number":24,"context_line":"PCI Whitelists mechanism. In addition, the operator installs Cyborg drivers in"},{"line_number":25,"context_line":"compute nodes and configures/enables them. Those drivers may then discover and"},{"line_number":26,"context_line":"report some PCI devices. The operator must ensure that both configurations are"}],"source_content_type":"text/x-rst","patch_set":8,"id":"3b11ef9e_1344e440","line":23,"range":{"start_line":23,"start_character":55,"end_line":23,"end_character":59},"updated":"2021-07-08 06:55:50.000000000","message":"to be used","commit_id":"d4899275ae3df1bad5b45b783d972d97b0a5ac4c"},{"author":{"_account_id":30395,"name":"Arthur Dayne","display_name":"Arthur Dayne","email":"palagend@foxmail.com","username":"acewit"},"change_message_id":"9f6547fa9e53d81fd1bed79bee882871f719b7c2","unresolved":false,"context_lines":[{"line_number":20,"context_line":"Coexistence with PCI whitelists"},{"line_number":21,"context_line":"-------------------------------"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"The operator tells Nova which PCI devices to claim and use by configuring the"},{"line_number":24,"context_line":"PCI Whitelists mechanism. In addition, the operator installs Cyborg drivers in"},{"line_number":25,"context_line":"compute nodes and configures/enables them. Those drivers may then discover and"},{"line_number":26,"context_line":"report some PCI devices. The operator must ensure that both configurations are"}],"source_content_type":"text/x-rst","patch_set":8,"id":"b0643f12_af707f63","line":23,"range":{"start_line":23,"start_character":55,"end_line":23,"end_character":59},"in_reply_to":"3b11ef9e_1344e440","updated":"2021-07-13 06:34:08.000000000","message":"Done","commit_id":"d4899275ae3df1bad5b45b783d972d97b0a5ac4c"},{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"9cb593c94456c04a71bc289534887145cb1ff2aa","unresolved":true,"context_lines":[{"line_number":26,"context_line":"report some PCI devices. The operator must ensure that both configurations are"},{"line_number":27,"context_line":"compatible."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Ideally, there is a single way for the operator to identify which PCI"},{"line_number":30,"context_line":"devices should be claimed by Nova and which by Cyborg. Until that is figured"},{"line_number":31,"context_line":"out, the operator shall use Cyborg’s configuration file to specify which Cyborg"},{"line_number":32,"context_line":"drivers are enabled. Since each driver claims specific PCI IDs, the operator"},{"line_number":33,"context_line":"can and must ensure that none of these PCI IDs are included in Nova’s PCI"},{"line_number":34,"context_line":"whitelist."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"Placement update"},{"line_number":37,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"8dc068f8_258b595b","line":34,"range":{"start_line":29,"start_character":1,"end_line":34,"end_character":10},"updated":"2021-07-08 06:55:50.000000000","message":"+1 for this.","commit_id":"d4899275ae3df1bad5b45b783d972d97b0a5ac4c"},{"author":{"_account_id":30395,"name":"Arthur Dayne","display_name":"Arthur Dayne","email":"palagend@foxmail.com","username":"acewit"},"change_message_id":"9f6547fa9e53d81fd1bed79bee882871f719b7c2","unresolved":false,"context_lines":[{"line_number":26,"context_line":"report some PCI devices. The operator must ensure that both configurations are"},{"line_number":27,"context_line":"compatible."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Ideally, there is a single way for the operator to identify which PCI"},{"line_number":30,"context_line":"devices should be claimed by Nova and which by Cyborg. Until that is figured"},{"line_number":31,"context_line":"out, the operator shall use Cyborg’s configuration file to specify which Cyborg"},{"line_number":32,"context_line":"drivers are enabled. Since each driver claims specific PCI IDs, the operator"},{"line_number":33,"context_line":"can and must ensure that none of these PCI IDs are included in Nova’s PCI"},{"line_number":34,"context_line":"whitelist."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"Placement update"},{"line_number":37,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"8a614e0e_23c31c8d","line":34,"range":{"start_line":29,"start_character":1,"end_line":34,"end_character":10},"in_reply_to":"8dc068f8_258b595b","updated":"2021-07-13 06:34:08.000000000","message":"Ack","commit_id":"d4899275ae3df1bad5b45b783d972d97b0a5ac4c"},{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"9cb593c94456c04a71bc289534887145cb1ff2aa","unresolved":true,"context_lines":[{"line_number":77,"context_line":"-------------------------"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"When the user submits a request to create an instance, as described in Section"},{"line_number":80,"context_line":"User Requests, Nova needs to call a Cyborg API, to get back the resource"},{"line_number":81,"context_line":"request groups in the device profile and merge them into the request spec."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"This call, like all the others that Nova would make to Cyborg APIs, is done"},{"line_number":84,"context_line":"through a Keystone-based adapter that would locate the Cyborg service, similar"}],"source_content_type":"text/x-rst","patch_set":8,"id":"bf34ac7e_ea33e92c","line":81,"range":{"start_line":80,"start_character":48,"end_line":81,"end_character":74},"updated":"2021-07-08 06:55:50.000000000","message":"I think we\u0027d better explain what the device profile looks like in previous section so that we can explain the request spec without suprise.","commit_id":"d4899275ae3df1bad5b45b783d972d97b0a5ac4c"},{"author":{"_account_id":30395,"name":"Arthur Dayne","display_name":"Arthur Dayne","email":"palagend@foxmail.com","username":"acewit"},"change_message_id":"9f6547fa9e53d81fd1bed79bee882871f719b7c2","unresolved":false,"context_lines":[{"line_number":77,"context_line":"-------------------------"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"When the user submits a request to create an instance, as described in Section"},{"line_number":80,"context_line":"User Requests, Nova needs to call a Cyborg API, to get back the resource"},{"line_number":81,"context_line":"request groups in the device profile and merge them into the request spec."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"This call, like all the others that Nova would make to Cyborg APIs, is done"},{"line_number":84,"context_line":"through a Keystone-based adapter that would locate the Cyborg service, similar"}],"source_content_type":"text/x-rst","patch_set":8,"id":"099b33b1_67d7877d","line":81,"range":{"start_line":80,"start_character":48,"end_line":81,"end_character":74},"in_reply_to":"bf34ac7e_ea33e92c","updated":"2021-07-13 06:34:08.000000000","message":"Ack","commit_id":"d4899275ae3df1bad5b45b783d972d97b0a5ac4c"},{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"9cb593c94456c04a71bc289534887145cb1ff2aa","unresolved":true,"context_lines":[{"line_number":85,"context_line":"to the way Nova calls Placement. A Cyborg client module  added to Nova, will"},{"line_number":86,"context_line":"encapsulate such calls."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"VM images in Glance may be associated with image properties (other than image"},{"line_number":89,"context_line":"traits), such as bitstream/function IDs needed for that image. So, Nova should"},{"line_number":90,"context_line":"pass the VM image UUID from the request spec to Cyborg."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"The groups in the device profile are numbered by Cyborg. The request groups"},{"line_number":93,"context_line":"that are merged into the request spec are numbered by Nova. These numberings"}],"source_content_type":"text/x-rst","patch_set":8,"id":"41723897_43901ffd","line":90,"range":{"start_line":88,"start_character":0,"end_line":90,"end_character":55},"updated":"2021-07-08 06:55:50.000000000","message":"this is specific for fpga device, we\u0027d better mention this. also, please explain more about fpga programming configurations(an example of device profile) before cyborg-glance interaction section","commit_id":"d4899275ae3df1bad5b45b783d972d97b0a5ac4c"},{"author":{"_account_id":30395,"name":"Arthur Dayne","display_name":"Arthur Dayne","email":"palagend@foxmail.com","username":"acewit"},"change_message_id":"9f6547fa9e53d81fd1bed79bee882871f719b7c2","unresolved":true,"context_lines":[{"line_number":85,"context_line":"to the way Nova calls Placement. A Cyborg client module  added to Nova, will"},{"line_number":86,"context_line":"encapsulate such calls."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"VM images in Glance may be associated with image properties (other than image"},{"line_number":89,"context_line":"traits), such as bitstream/function IDs needed for that image. So, Nova should"},{"line_number":90,"context_line":"pass the VM image UUID from the request spec to Cyborg."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"The groups in the device profile are numbered by Cyborg. The request groups"},{"line_number":93,"context_line":"that are merged into the request spec are numbered by Nova. These numberings"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7e34c9ff_25fc3c59","line":90,"range":{"start_line":88,"start_character":0,"end_line":90,"end_character":55},"in_reply_to":"41723897_43901ffd","updated":"2021-07-13 06:34:08.000000000","message":"do you mean adding a new section about device_profile before this section?","commit_id":"d4899275ae3df1bad5b45b783d972d97b0a5ac4c"},{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"9cb593c94456c04a71bc289534887145cb1ff2aa","unresolved":true,"context_lines":[{"line_number":89,"context_line":"traits), such as bitstream/function IDs needed for that image. So, Nova should"},{"line_number":90,"context_line":"pass the VM image UUID from the request spec to Cyborg."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"The groups in the device profile are numbered by Cyborg. The request groups"},{"line_number":93,"context_line":"that are merged into the request spec are numbered by Nova. These numberings"},{"line_number":94,"context_line":"would not be the same in general, i.e., the N-th device profile group may not"},{"line_number":95,"context_line":"correspond to the N-th request group in the request spec."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"When the device profile request groups are added to other request groups in the"},{"line_number":98,"context_line":"flavor, the group_policy of the flavor shall govern the overall semantics of"},{"line_number":99,"context_line":"all request groups."}],"source_content_type":"text/x-rst","patch_set":8,"id":"813ee463_14f9f409","line":96,"range":{"start_line":92,"start_character":0,"end_line":96,"end_character":0},"updated":"2021-07-08 06:55:50.000000000","message":"OPEN:\nthis is a good, detailed explaination. I\u0027m thinking wheather we should dive into such nova\u0027s details in cyborg\u0027s doc. it is an open. let\u0027s see what\u0027s other\u0027s opinion","commit_id":"d4899275ae3df1bad5b45b783d972d97b0a5ac4c"},{"author":{"_account_id":30395,"name":"Arthur Dayne","display_name":"Arthur Dayne","email":"palagend@foxmail.com","username":"acewit"},"change_message_id":"9f6547fa9e53d81fd1bed79bee882871f719b7c2","unresolved":false,"context_lines":[{"line_number":89,"context_line":"traits), such as bitstream/function IDs needed for that image. So, Nova should"},{"line_number":90,"context_line":"pass the VM image UUID from the request spec to Cyborg."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"The groups in the device profile are numbered by Cyborg. The request groups"},{"line_number":93,"context_line":"that are merged into the request spec are numbered by Nova. These numberings"},{"line_number":94,"context_line":"would not be the same in general, i.e., the N-th device profile group may not"},{"line_number":95,"context_line":"correspond to the N-th request group in the request spec."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"When the device profile request groups are added to other request groups in the"},{"line_number":98,"context_line":"flavor, the group_policy of the flavor shall govern the overall semantics of"},{"line_number":99,"context_line":"all request groups."}],"source_content_type":"text/x-rst","patch_set":8,"id":"154dd67a_ac988db4","line":96,"range":{"start_line":92,"start_character":0,"end_line":96,"end_character":0},"in_reply_to":"813ee463_14f9f409","updated":"2021-07-13 06:34:08.000000000","message":"Ack","commit_id":"d4899275ae3df1bad5b45b783d972d97b0a5ac4c"},{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"9cb593c94456c04a71bc289534887145cb1ff2aa","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":8,"id":"3c689bf2_c0556f2f","line":210,"updated":"2021-07-08 06:55:50.000000000","message":"at the end, I am rethinking about the sections structure. is it better to add one more section about the configuration step or admin and user to use acclerator-attached VM. so that we can make it clear in previous section without mentioned the command, the device profiles details etc.","commit_id":"d4899275ae3df1bad5b45b783d972d97b0a5ac4c"},{"author":{"_account_id":30395,"name":"Arthur Dayne","display_name":"Arthur Dayne","email":"palagend@foxmail.com","username":"acewit"},"change_message_id":"9f6547fa9e53d81fd1bed79bee882871f719b7c2","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":8,"id":"774e8dd4_3d4e6036","line":210,"in_reply_to":"3c689bf2_c0556f2f","updated":"2021-07-13 06:34:08.000000000","message":"How about refining it in the future with a new patch and the device profile details infomation being reserved here temporarily? In a new patch these details can be extracted to a new section.","commit_id":"d4899275ae3df1bad5b45b783d972d97b0a5ac4c"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"b812e8611bb68839fb9d01280ea9a0a432945e07","unresolved":true,"context_lines":[{"line_number":9,"context_line":"Overview"},{"line_number":10,"context_line":"--------"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"A good understand on how Cyborg interacts with Nova and Placement helps"},{"line_number":13,"context_line":"operators manage the acceleration service more effectively."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":".. image:: ../figures/cyborg-nova-interaction.png"}],"source_content_type":"text/x-rst","patch_set":10,"id":"febc91d8_e2bce05e","line":12,"range":{"start_line":12,"start_character":66,"end_line":12,"end_character":71},"updated":"2021-08-20 01:01:44.000000000","message":"nit: help","commit_id":"d8bb9aa92fc0c2e3af5dbdb41e89508b5eeed9ad"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"b812e8611bb68839fb9d01280ea9a0a432945e07","unresolved":true,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"* Update RP inventory."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Cyborg shall not modify the RPs created by any other component,such as Nova"},{"line_number":51,"context_line":"virt drivers."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"User Requests"}],"source_content_type":"text/x-rst","patch_set":10,"id":"5eb779bd_f4d522ac","line":50,"range":{"start_line":50,"start_character":62,"end_line":50,"end_character":67},"updated":"2021-08-20 01:01:44.000000000","message":"need a blank space.","commit_id":"d8bb9aa92fc0c2e3af5dbdb41e89508b5eeed9ad"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"b812e8611bb68839fb9d01280ea9a0a432945e07","unresolved":true,"context_lines":[{"line_number":56,"context_line":"The user request for accelerators is encapsulated in a device profile ,"},{"line_number":57,"context_line":"which is created and managed by the admin via the Cyborg API."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"The structure overview of a device_profile is like this:"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":".. code:: json"},{"line_number":62,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"c8b36ffc_e43305bb","line":59,"range":{"start_line":59,"start_character":28,"end_line":59,"end_character":43},"updated":"2021-08-20 01:01:44.000000000","message":"``device_profile``","commit_id":"d8bb9aa92fc0c2e3af5dbdb41e89508b5eeed9ad"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"b812e8611bb68839fb9d01280ea9a0a432945e07","unresolved":true,"context_lines":[{"line_number":60,"context_line":""},{"line_number":61,"context_line":".. code:: json"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"  {"},{"line_number":64,"context_line":"      \"name\":\"fpga-dp1\","},{"line_number":65,"context_line":"      \"uuid\":\"5518a925-1c2c-49a2-a8bf-0927d9456f3e\","},{"line_number":66,"context_line":"      \"description\": \"\","},{"line_number":67,"context_line":"      \"groups\":["},{"line_number":68,"context_line":"        {"},{"line_number":69,"context_line":"            \"trait:CUSTOM_CHENKE_TRAITS\":\"required\","},{"line_number":70,"context_line":"            \"resources:FPGA\":\"1\","},{"line_number":71,"context_line":"            \"accel:bitstream_id\":\"d5ca2f11-3108-4426-a11c-a959987565df\""},{"line_number":72,"context_line":"        }"},{"line_number":73,"context_line":"      ],"},{"line_number":74,"context_line":"      \"created_at\": \"2020-03-10 03:52:15+00:00\","},{"line_number":75,"context_line":"      \"updated_at\": null,"},{"line_number":76,"context_line":"      \"links\":["},{"line_number":77,"context_line":"        {"},{"line_number":78,"context_line":"            \"href\":\"http://192.168.32.217/accelerator/v2/device_profiles/5518a925-1c2c-49a2-a8bf-0927d9456f3e\","},{"line_number":79,"context_line":"            \"rel\":\"self\""},{"line_number":80,"context_line":"        }"},{"line_number":81,"context_line":"      ]"},{"line_number":82,"context_line":"  }"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"The device profile is folded into the flavor as an extra spec by the operator,"},{"line_number":85,"context_line":"as below:"}],"source_content_type":"text/x-rst","patch_set":10,"id":"d1b4595e_b0eb97af","line":82,"range":{"start_line":63,"start_character":0,"end_line":82,"end_character":3},"updated":"2021-08-20 01:01:44.000000000","message":"It would be better to show as this format, you can refer the API docs: https://docs.openstack.org/api-ref/accelerator/v2/index.html?expanded\u003dlist-device-profiles-detail#list-device-profiles\n\n{\n  \"device_profiles\":[\n    {\n        \"name\":\"fpga-dp1\",\n        \"uuid\":\"5518a925-1c2c-49a2-a8bf-0927d9456f3e\",\n        \"description\": \"\",\n        \"groups\":[\n          {\n              \"trait:CUSTOM_CHENKE_TRAITS\":\"required\",\n              \"resources:FPGA\":\"1\",\n              \"accel:bitstream_id\":\"d5ca2f11-3108-4426-a11c-a959987565df\"\n          }\n        ],\n        \"created_at\": \"2020-03-10 03:52:15+00:00\",\n        \"updated_at\": null,\n        \"links\":[\n          {\n              \"href\":\"http://192.168.32.217/accelerator/v2/device_profiles/5518a925-1c2c-49a2-a8bf-0927d9456f3e\",\n              \"rel\":\"self\"\n          }\n        ]\n    }\n  ]\n}","commit_id":"d8bb9aa92fc0c2e3af5dbdb41e89508b5eeed9ad"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"b812e8611bb68839fb9d01280ea9a0a432945e07","unresolved":true,"context_lines":[{"line_number":107,"context_line":""},{"line_number":108,"context_line":"This call, like all the others that Nova would make to Cyborg APIs, is done"},{"line_number":109,"context_line":"through a Keystone-based adapter that would locate the Cyborg service, similar"},{"line_number":110,"context_line":"to the way Nova calls Placement. A Cyborg client module  added to Nova, will"},{"line_number":111,"context_line":"encapsulate such calls."},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"VM images in Glance may be associated with image properties (other than image"}],"source_content_type":"text/x-rst","patch_set":10,"id":"10df1800_fefac89e","line":110,"range":{"start_line":110,"start_character":56,"end_line":110,"end_character":57},"updated":"2021-08-20 01:01:44.000000000","message":"redundant","commit_id":"d8bb9aa92fc0c2e3af5dbdb41e89508b5eeed9ad"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"b812e8611bb68839fb9d01280ea9a0a432945e07","unresolved":true,"context_lines":[{"line_number":131,"context_line":"management of ARQs are handled by Cyborg, and ARQs are persisted in Cyborg"},{"line_number":132,"context_line":"database."},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"An ARQ, by definition, represents a request for a single accelerator. The"},{"line_number":135,"context_line":"device profile in the user request may have N request groups, each asking for M"},{"line_number":136,"context_line":"accelerators; then N * M ARQs will be created for that device profile."},{"line_number":137,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"bf2c3062_9173e7f2","line":134,"range":{"start_line":134,"start_character":0,"end_line":134,"end_character":70},"updated":"2021-08-20 01:01:44.000000000","message":"An ARQ represents a request for a single accelerator by definition.","commit_id":"d8bb9aa92fc0c2e3af5dbdb41e89508b5eeed9ad"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"b812e8611bb68839fb9d01280ea9a0a432945e07","unresolved":true,"context_lines":[{"line_number":133,"context_line":""},{"line_number":134,"context_line":"An ARQ, by definition, represents a request for a single accelerator. The"},{"line_number":135,"context_line":"device profile in the user request may have N request groups, each asking for M"},{"line_number":136,"context_line":"accelerators; then N * M ARQs will be created for that device profile."},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"When an ARQ is initially created by Cyborg, it is not yet associated with a"},{"line_number":139,"context_line":"specific host name or a device resource provider. So it is said to be in an"}],"source_content_type":"text/x-rst","patch_set":10,"id":"cd7b1094_5658fd1e","line":136,"range":{"start_line":136,"start_character":12,"end_line":136,"end_character":14},"updated":"2021-08-20 01:01:44.000000000","message":"s/,/;","commit_id":"d8bb9aa92fc0c2e3af5dbdb41e89508b5eeed9ad"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"b812e8611bb68839fb9d01280ea9a0a432945e07","unresolved":true,"context_lines":[{"line_number":146,"context_line":"that Nova has chosen, before the ARQ is bound. The current Nova code maps"},{"line_number":147,"context_line":"request groups to RPs, while the Cyborg client module in Nova"},{"line_number":148,"context_line":"(cyborg-client-module) matches ARQs to request groups. The matching is done"},{"line_number":149,"context_line":"using the requester_id field in the RequestGroup object as below:"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"* The order of request groups in a device profile is not significant, but it is"},{"line_number":152,"context_line":"  preserved by Cyborg. Thus, each device profile request group has a unique"}],"source_content_type":"text/x-rst","patch_set":10,"id":"1956f09d_9b82691d","line":149,"range":{"start_line":149,"start_character":10,"end_line":149,"end_character":23},"updated":"2021-08-20 01:01:44.000000000","message":"request_id","commit_id":"d8bb9aa92fc0c2e3af5dbdb41e89508b5eeed9ad"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"b812e8611bb68839fb9d01280ea9a0a432945e07","unresolved":true,"context_lines":[{"line_number":153,"context_line":"  index."},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"* When the device profile request groups returned by Cyborg are added to the"},{"line_number":156,"context_line":"  request spec, the requester_id field is set to ‘device_profile_\u003cN\u003e’ for the"},{"line_number":157,"context_line":"  N-th device profile request group (starting from zero). The device profile"},{"line_number":158,"context_line":"  name need not be included here because there is only one device profile per"},{"line_number":159,"context_line":"  request spec."}],"source_content_type":"text/x-rst","patch_set":10,"id":"c5b12874_a4b8221d","line":156,"range":{"start_line":156,"start_character":20,"end_line":156,"end_character":33},"updated":"2021-08-20 01:01:44.000000000","message":"request_id","commit_id":"d8bb9aa92fc0c2e3af5dbdb41e89508b5eeed9ad"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"b812e8611bb68839fb9d01280ea9a0a432945e07","unresolved":true,"context_lines":[{"line_number":164,"context_line":"* The matching is done in two steps:"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"  * Each ARQ is mapped to a specific request group in the request spec using"},{"line_number":167,"context_line":"    the requester_id field."},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"  * Each request group is mapped to a specific RP using the same logic as the"},{"line_number":170,"context_line":"    Neutron bandwidth provider."}],"source_content_type":"text/x-rst","patch_set":10,"id":"4e97c4d5_47c2468d","line":167,"range":{"start_line":167,"start_character":8,"end_line":167,"end_character":21},"updated":"2021-08-20 01:01:44.000000000","message":"request_id","commit_id":"d8bb9aa92fc0c2e3af5dbdb41e89508b5eeed9ad"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"b812e8611bb68839fb9d01280ea9a0a432945e07","unresolved":true,"context_lines":[{"line_number":169,"context_line":"  * Each request group is mapped to a specific RP using the same logic as the"},{"line_number":170,"context_line":"    Neutron bandwidth provider."},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"Workflow"},{"line_number":173,"context_line":"--------"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"A Cyborg client module is added to nova (cyborg-client-module). All Cyborg API"}],"source_content_type":"text/x-rst","patch_set":10,"id":"0b757242_b8085701","line":172,"range":{"start_line":172,"start_character":0,"end_line":172,"end_character":8},"updated":"2021-08-20 01:01:44.000000000","message":"IMO, we can rename as \"Cyborg and Nova interaction workflow\", i.e.:\n\nCyborg and Nova interaction workflow\n------------------------------------","commit_id":"d8bb9aa92fc0c2e3af5dbdb41e89508b5eeed9ad"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"b812e8611bb68839fb9d01280ea9a0a432945e07","unresolved":true,"context_lines":[{"line_number":175,"context_line":"A Cyborg client module is added to nova (cyborg-client-module). All Cyborg API"},{"line_number":176,"context_line":"calls are routed through that."},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"1. The Nova API server receives a POST /servers API request with a flavor that"},{"line_number":179,"context_line":"   includes a device profile name."},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"2. The Nova API server calls the Cyborg API GET"}],"source_content_type":"text/x-rst","patch_set":10,"id":"54329681_e331b54d","line":178,"range":{"start_line":178,"start_character":34,"end_line":178,"end_character":47},"updated":"2021-08-20 01:01:44.000000000","message":"``POST /servers``","commit_id":"d8bb9aa92fc0c2e3af5dbdb41e89508b5eeed9ad"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"b812e8611bb68839fb9d01280ea9a0a432945e07","unresolved":true,"context_lines":[{"line_number":178,"context_line":"1. The Nova API server receives a POST /servers API request with a flavor that"},{"line_number":179,"context_line":"   includes a device profile name."},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"2. The Nova API server calls the Cyborg API GET"},{"line_number":182,"context_line":"   /v2/device_profiles?name\u003d$device_profile_name and gets back the device"},{"line_number":183,"context_line":"   profile. The request groups in that device profile are added to the request"},{"line_number":184,"context_line":"   spec."},{"line_number":185,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"41a9f4e5_53815631","line":182,"range":{"start_line":181,"start_character":44,"end_line":182,"end_character":48},"updated":"2021-08-20 01:01:44.000000000","message":"`GET /v2/device_profiles?name\u003d$device_profile_name`","commit_id":"d8bb9aa92fc0c2e3af5dbdb41e89508b5eeed9ad"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"10568e852ed37c4b545a3a4978f4df79c5343b5e","unresolved":true,"context_lines":[{"line_number":178,"context_line":"1. The Nova API server receives a POST /servers API request with a flavor that"},{"line_number":179,"context_line":"   includes a device profile name."},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"2. The Nova API server calls the Cyborg API GET"},{"line_number":182,"context_line":"   /v2/device_profiles?name\u003d$device_profile_name and gets back the device"},{"line_number":183,"context_line":"   profile. The request groups in that device profile are added to the request"},{"line_number":184,"context_line":"   spec."},{"line_number":185,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"d363ae50_dcce70e2","line":182,"range":{"start_line":181,"start_character":44,"end_line":182,"end_character":48},"in_reply_to":"41a9f4e5_53815631","updated":"2021-08-20 01:04:25.000000000","message":"It was used `` to involve the url, e.g. \"`GET /v2/device_profiles?name\u003d$device_profile_name`\"","commit_id":"d8bb9aa92fc0c2e3af5dbdb41e89508b5eeed9ad"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"b812e8611bb68839fb9d01280ea9a0a432945e07","unresolved":true,"context_lines":[{"line_number":188,"context_line":"   Placement. The Nova conductor then sends a RPC message"},{"line_number":189,"context_line":"   build_and_run_instances to the Nova compute manager."},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"4. Nova compute manager calls the Cyborg API POST /v2/accelerator_requests with"},{"line_number":192,"context_line":"   the device profile name. Cyborg creates a set of unbound ARQs for that"},{"line_number":193,"context_line":"   device profile and returns them to Nova. (The call may originate from Nova"},{"line_number":194,"context_line":"   conductor or the compute manager; that will be settled in code review.)"}],"source_content_type":"text/x-rst","patch_set":10,"id":"14468090_23edb9b1","line":191,"range":{"start_line":191,"start_character":45,"end_line":191,"end_character":74},"updated":"2021-08-20 01:01:44.000000000","message":"``POST /v2/accelerator_requests``","commit_id":"d8bb9aa92fc0c2e3af5dbdb41e89508b5eeed9ad"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"b812e8611bb68839fb9d01280ea9a0a432945e07","unresolved":true,"context_lines":[{"line_number":191,"context_line":"4. Nova compute manager calls the Cyborg API POST /v2/accelerator_requests with"},{"line_number":192,"context_line":"   the device profile name. Cyborg creates a set of unbound ARQs for that"},{"line_number":193,"context_line":"   device profile and returns them to Nova. (The call may originate from Nova"},{"line_number":194,"context_line":"   conductor or the compute manager; that will be settled in code review.)"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"5. The Cyborg client in Nova matches each ARQ to the resource provider picked"},{"line_number":197,"context_line":"   for that accelerator. See match-rp."}],"source_content_type":"text/x-rst","patch_set":10,"id":"2139bc14_7bcba4e7","line":194,"range":{"start_line":194,"start_character":35,"end_line":194,"end_character":36},"updated":"2021-08-20 01:01:44.000000000","message":",","commit_id":"d8bb9aa92fc0c2e3af5dbdb41e89508b5eeed9ad"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"b812e8611bb68839fb9d01280ea9a0a432945e07","unresolved":true,"context_lines":[{"line_number":196,"context_line":"5. The Cyborg client in Nova matches each ARQ to the resource provider picked"},{"line_number":197,"context_line":"   for that accelerator. See match-rp."},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"6. The Nova compute manager calls the Cyborg API PATCH /v2/accelerator_requests"},{"line_number":200,"context_line":"   to bind the ARQ with the host name, device’s RP UUID and instance UUID. This"},{"line_number":201,"context_line":"   is an asynchronous call which prepares or reconfigures the device in the"},{"line_number":202,"context_line":"   background."}],"source_content_type":"text/x-rst","patch_set":10,"id":"9a26d50a_b7c57588","line":199,"range":{"start_line":199,"start_character":49,"end_line":199,"end_character":79},"updated":"2021-08-20 01:01:44.000000000","message":"`PATCH /v2/accelerator_requests`","commit_id":"d8bb9aa92fc0c2e3af5dbdb41e89508b5eeed9ad"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"b812e8611bb68839fb9d01280ea9a0a432945e07","unresolved":true,"context_lines":[{"line_number":202,"context_line":"   background."},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"7. Cyborg, on completion of the bindings (successfully or otherwise),"},{"line_number":205,"context_line":"   calls Nova’s POST /os-server-external-events API with:"},{"line_number":206,"context_line":""},{"line_number":207,"context_line":".. code::"},{"line_number":208,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"a95fe3ed_ae964346","line":205,"range":{"start_line":205,"start_character":16,"end_line":205,"end_character":47},"updated":"2021-08-20 01:01:44.000000000","message":"`POST /os-server-external-events`","commit_id":"d8bb9aa92fc0c2e3af5dbdb41e89508b5eeed9ad"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"b812e8611bb68839fb9d01280ea9a0a432945e07","unresolved":true,"context_lines":[{"line_number":219,"context_line":""},{"line_number":220,"context_line":"8. The Nova compute manager waits for the notification, subject to the timeout"},{"line_number":221,"context_line":"   mentioned in Section Other deployer impact. It then calls the Cyborg REST"},{"line_number":222,"context_line":"   API GET /v2/accelerator_requests?instance\u003d\u003cuuid\u003e\u0026bind_state\u003dresolved."},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"9. The Nova virt driver uses the attach handles returned from the Cyborg call"},{"line_number":225,"context_line":"   to compose PCI passthrough devices into the VM’s definition."}],"source_content_type":"text/x-rst","patch_set":10,"id":"18a32786_94a73e9a","line":222,"range":{"start_line":222,"start_character":7,"end_line":222,"end_character":71},"updated":"2021-08-20 01:01:44.000000000","message":"`GET /v2/accelerator_requests?instance\u003d\u003cuuid\u003e\u0026bind_state\u003dresolved`","commit_id":"d8bb9aa92fc0c2e3af5dbdb41e89508b5eeed9ad"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"b812e8611bb68839fb9d01280ea9a0a432945e07","unresolved":true,"context_lines":[{"line_number":228,"context_line":"    the relevant ARQs by calling Cyborg API. It may then retry on another host"},{"line_number":229,"context_line":"    or delete the (unbound) ARQs for the instance."},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"This flow is captured by the following sequence diagram, in which the Nova"},{"line_number":232,"context_line":"conductor and scheduler are together represented as the Nova controller."},{"line_number":233,"context_line":""},{"line_number":234,"context_line":".. image:: ../figures/workflow.svg"}],"source_content_type":"text/x-rst","patch_set":10,"id":"0352e22c_097b3308","line":234,"range":{"start_line":231,"start_character":0,"end_line":234,"end_character":34},"updated":"2021-08-20 01:01:44.000000000","message":"Move this to picture to Line177, and I would like to rename the \u0027workflow.svg\u0027 to \u0027cyborg-nova-interaction-workflow.svg\u0027","commit_id":"d8bb9aa92fc0c2e3af5dbdb41e89508b5eeed9ad"},{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"c167f1c3a9f59012972a1c797b39bb5dd3bf76fe","unresolved":true,"context_lines":[{"line_number":53,"context_line":"User Requests"},{"line_number":54,"context_line":"-------------"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"The user request for accelerators is encapsulated in a device profile ,"},{"line_number":57,"context_line":"which is created and managed by the admin via the Cyborg API."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"The structure overview of a `device_profile` is like this:"}],"source_content_type":"text/x-rst","patch_set":14,"id":"e50f6d72_4a1594a3","line":56,"range":{"start_line":56,"start_character":69,"end_line":56,"end_character":70},"updated":"2021-10-26 07:54:40.000000000","message":"redundant space","commit_id":"e0fe2b1fab5eef26a41af4ab63f648b943c0ecf7"},{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"c167f1c3a9f59012972a1c797b39bb5dd3bf76fe","unresolved":true,"context_lines":[{"line_number":68,"context_line":"            \"description\": \"\","},{"line_number":69,"context_line":"            \"groups\":["},{"line_number":70,"context_line":"              {"},{"line_number":71,"context_line":"                \"trait:CUSTOM_CHENKE_TRAITS\":\"required\","},{"line_number":72,"context_line":"                \"resources:FPGA\":\"1\","},{"line_number":73,"context_line":"                \"accel:bitstream_id\":\"d5ca2f11-3108-4426-a11c-a959987565df\""},{"line_number":74,"context_line":"              }"}],"source_content_type":"text/x-rst","patch_set":14,"id":"0e9c7a23_ea5f0d84","line":71,"range":{"start_line":71,"start_character":30,"end_line":71,"end_character":36},"updated":"2021-10-26 07:54:40.000000000","message":"replace the user name.","commit_id":"e0fe2b1fab5eef26a41af4ab63f648b943c0ecf7"},{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"c167f1c3a9f59012972a1c797b39bb5dd3bf76fe","unresolved":true,"context_lines":[{"line_number":143,"context_line":"specific host name or a device resource provider. So it is said to be in an"},{"line_number":144,"context_line":"unbound state. Subsequently, Nova calls Cyborg to bind the ARQ to a host name,"},{"line_number":145,"context_line":"a device RP UUID and an instance UUID. If the instance fails to spawn, Nova"},{"line_number":146,"context_line":"would unbind the ARQ without deleting it. On instance termination, Nova would"},{"line_number":147,"context_line":"delete the ARQs after unbinding them."},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"Each ARQ needs to be matched to the specific RP in the allocation candidate"}],"source_content_type":"text/x-rst","patch_set":14,"id":"903b48d5_ce81bf3b","line":146,"range":{"start_line":146,"start_character":21,"end_line":146,"end_character":40},"updated":"2021-10-26 07:54:40.000000000","message":"Now we delete arq if the instance fails to spawn.","commit_id":"e0fe2b1fab5eef26a41af4ab63f648b943c0ecf7"},{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"c167f1c3a9f59012972a1c797b39bb5dd3bf76fe","unresolved":true,"context_lines":[{"line_number":197,"context_line":"   Placement. The Nova conductor then sends a RPC message"},{"line_number":198,"context_line":"   build_and_run_instances to the Nova compute manager."},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"4. Nova compute manager calls the Cyborg API `POST /v2/accelerator_requests`"},{"line_number":201,"context_line":"   with the device profile name. Cyborg creates a set of unbound ARQs for that"},{"line_number":202,"context_line":"   device profile and returns them to Nova. (The call may originate from Nova"},{"line_number":203,"context_line":"   conductor or the compute manager, that will be settled in code review.)"}],"source_content_type":"text/x-rst","patch_set":14,"id":"c1444721_b4419b91","line":200,"range":{"start_line":200,"start_character":8,"end_line":200,"end_character":16},"updated":"2021-10-26 07:54:40.000000000","message":"conductor","commit_id":"e0fe2b1fab5eef26a41af4ab63f648b943c0ecf7"},{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"c167f1c3a9f59012972a1c797b39bb5dd3bf76fe","unresolved":true,"context_lines":[{"line_number":199,"context_line":""},{"line_number":200,"context_line":"4. Nova compute manager calls the Cyborg API `POST /v2/accelerator_requests`"},{"line_number":201,"context_line":"   with the device profile name. Cyborg creates a set of unbound ARQs for that"},{"line_number":202,"context_line":"   device profile and returns them to Nova. (The call may originate from Nova"},{"line_number":203,"context_line":"   conductor or the compute manager, that will be settled in code review.)"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"5. The Cyborg client in Nova matches each ARQ to the resource provider picked"},{"line_number":206,"context_line":"   for that accelerator. See match-rp."}],"source_content_type":"text/x-rst","patch_set":14,"id":"d1b2406d_374afaa5","line":203,"range":{"start_line":202,"start_character":44,"end_line":203,"end_character":74},"updated":"2021-10-26 07:54:40.000000000","message":"nova condcutor is now call cyborg create unbound arq. remove this sentence.","commit_id":"e0fe2b1fab5eef26a41af4ab63f648b943c0ecf7"},{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"c167f1c3a9f59012972a1c797b39bb5dd3bf76fe","unresolved":true,"context_lines":[{"line_number":203,"context_line":"   conductor or the compute manager, that will be settled in code review.)"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"5. The Cyborg client in Nova matches each ARQ to the resource provider picked"},{"line_number":206,"context_line":"   for that accelerator. See match-rp."},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"6. The Nova compute manager calls the Cyborg API"},{"line_number":209,"context_line":"   `PATCH /v2/accelerator_requests` to bind the ARQ with the host name,"}],"source_content_type":"text/x-rst","patch_set":14,"id":"8c20c8f4_ac05c497","line":206,"range":{"start_line":206,"start_character":29,"end_line":206,"end_character":37},"updated":"2021-10-26 07:54:40.000000000","message":"where is the match-rp?","commit_id":"e0fe2b1fab5eef26a41af4ab63f648b943c0ecf7"},{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"c167f1c3a9f59012972a1c797b39bb5dd3bf76fe","unresolved":true,"context_lines":[{"line_number":217,"context_line":""},{"line_number":218,"context_line":"    {"},{"line_number":219,"context_line":"        \"events\": ["},{"line_number":220,"context_line":"            { \"name\": \"accelerator-requests-bound\","},{"line_number":221,"context_line":"                \"tag\": $device_profile_name,"},{"line_number":222,"context_line":"                \"server_uuid\": $instance_uuid,"},{"line_number":223,"context_line":"                \"status\": \"completed\" # or \"failed\""}],"source_content_type":"text/x-rst","patch_set":14,"id":"44937ebe_e24e1c7f","line":220,"range":{"start_line":220,"start_character":23,"end_line":220,"end_character":49},"updated":"2021-10-26 07:54:40.000000000","message":"this name have changed to accelerator-request-bound.","commit_id":"e0fe2b1fab5eef26a41af4ab63f648b943c0ecf7"}]}
