)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11878,"name":"Rushil Chugh","email":"rushil.chugh@gmail.com","username":"rushil"},"change_message_id":"c30f6efa53c0939bb75517c2cbd5e266366b5257","unresolved":false,"context_lines":[{"line_number":18,"context_line":"in implementation it should be aligned with resource provider"},{"line_number":19,"context_line":"db schema as much as possible."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"APIImpact"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Change-Id: I98c74df91f4548ecef42d2e3f96facf9023a346a"},{"line_number":24,"context_line":"Signed-off-by: zhipengh \u003chuangzhipeng@huawei.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"7f231b9d_4e02f00b","line":21,"range":{"start_line":21,"start_character":0,"end_line":21,"end_character":9},"updated":"2017-06-16 14:13:41.000000000","message":"API Impact","commit_id":"210cf24ef25a10b44bf8bd0e57d0d6a57636baa9"}],"specs/pike/proposal/cyborg-api-proposal.rst":[{"author":{"_account_id":11878,"name":"Rushil Chugh","email":"rushil.chugh@gmail.com","username":"rushil"},"change_message_id":"9c1430aff15d09fa03aeef5b6acedd9d3a728147","unresolved":false,"context_lines":[{"line_number":16,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Cyborg as a common management framework for dedicated devices (hardware/"},{"line_number":19,"context_line":"software accelerators, high-speed storage, ...) needs api to expose the"},{"line_number":20,"context_line":"basic functionalities. "},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Use Cases"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a1ff146_6aaa0f72","line":19,"range":{"start_line":19,"start_character":43,"end_line":19,"end_character":47},"updated":"2017-03-16 14:47:02.000000000","message":"Remove the dots and replace them with etc.","commit_id":"0d0a7ec8037fcc30c3836c1934686bd7fe89ed3a"},{"author":{"_account_id":13629,"name":"Zhipeng","email":"huangzhipeng@huawei.com","username":"zhipengh"},"change_message_id":"5fd16317ac837507c874fab5e1846327d4f86b67","unresolved":false,"context_lines":[{"line_number":16,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Cyborg as a common management framework for dedicated devices (hardware/"},{"line_number":19,"context_line":"software accelerators, high-speed storage, ...) needs api to expose the"},{"line_number":20,"context_line":"basic functionalities. "},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Use Cases"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a1ced50_72132f5d","line":19,"range":{"start_line":19,"start_character":43,"end_line":19,"end_character":47},"in_reply_to":"3a1ff146_6aaa0f72","updated":"2017-03-17 09:28:20.000000000","message":"Done","commit_id":"0d0a7ec8037fcc30c3836c1934686bd7fe89ed3a"},{"author":{"_account_id":13404,"name":"Alberto Planas","email":"aplanas@gmail.com","username":"aplanas"},"change_message_id":"868f7a8c772c91f7fbf721a2bb0df1c8b16cf41a","unresolved":false,"context_lines":[{"line_number":18,"context_line":"Cyborg as a common management framework for dedicated devices (hardware/"},{"line_number":19,"context_line":"software accelerators, high-speed storage, ...) needs api to expose the"},{"line_number":20,"context_line":"basic functionalities. "},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Use Cases"},{"line_number":23,"context_line":"---------"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a1ff146_dd378be1","line":21,"updated":"2017-03-15 09:28:58.000000000","message":"Yeah, extra space here","commit_id":"0d0a7ec8037fcc30c3836c1934686bd7fe89ed3a"},{"author":{"_account_id":11878,"name":"Rushil Chugh","email":"rushil.chugh@gmail.com","username":"rushil"},"change_message_id":"9c1430aff15d09fa03aeef5b6acedd9d3a728147","unresolved":false,"context_lines":[{"line_number":18,"context_line":"Cyborg as a common management framework for dedicated devices (hardware/"},{"line_number":19,"context_line":"software accelerators, high-speed storage, ...) needs api to expose the"},{"line_number":20,"context_line":"basic functionalities. "},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Use Cases"},{"line_number":23,"context_line":"---------"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a1ff146_2ace575a","line":21,"in_reply_to":"3a1ff146_1fad5b31","updated":"2017-03-16 14:47:02.000000000","message":"+1 to being explicit as to what APIs are going to be used","commit_id":"0d0a7ec8037fcc30c3836c1934686bd7fe89ed3a"},{"author":{"_account_id":13629,"name":"Zhipeng","email":"huangzhipeng@huawei.com","username":"zhipengh"},"change_message_id":"5fd16317ac837507c874fab5e1846327d4f86b67","unresolved":false,"context_lines":[{"line_number":18,"context_line":"Cyborg as a common management framework for dedicated devices (hardware/"},{"line_number":19,"context_line":"software accelerators, high-speed storage, ...) needs api to expose the"},{"line_number":20,"context_line":"basic functionalities. "},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Use Cases"},{"line_number":23,"context_line":"---------"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a1ced50_d21a236e","line":21,"in_reply_to":"3a1ff146_1fad5b31","updated":"2017-03-17 09:28:20.000000000","message":"Done","commit_id":"0d0a7ec8037fcc30c3836c1934686bd7fe89ed3a"},{"author":{"_account_id":13629,"name":"Zhipeng","email":"huangzhipeng@huawei.com","username":"zhipengh"},"change_message_id":"5fd16317ac837507c874fab5e1846327d4f86b67","unresolved":false,"context_lines":[{"line_number":18,"context_line":"Cyborg as a common management framework for dedicated devices (hardware/"},{"line_number":19,"context_line":"software accelerators, high-speed storage, ...) needs api to expose the"},{"line_number":20,"context_line":"basic functionalities. "},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Use Cases"},{"line_number":23,"context_line":"---------"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a1ced50_f2255fae","line":21,"in_reply_to":"3a1ff146_2ace575a","updated":"2017-03-17 09:28:20.000000000","message":"Done","commit_id":"0d0a7ec8037fcc30c3836c1934686bd7fe89ed3a"},{"author":{"_account_id":13629,"name":"Zhipeng","email":"huangzhipeng@huawei.com","username":"zhipengh"},"change_message_id":"5fd16317ac837507c874fab5e1846327d4f86b67","unresolved":false,"context_lines":[{"line_number":18,"context_line":"Cyborg as a common management framework for dedicated devices (hardware/"},{"line_number":19,"context_line":"software accelerators, high-speed storage, ...) needs api to expose the"},{"line_number":20,"context_line":"basic functionalities. "},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Use Cases"},{"line_number":23,"context_line":"---------"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a1ced50_b21da768","line":21,"in_reply_to":"3a1ff146_dd378be1","updated":"2017-03-17 09:28:20.000000000","message":"Done","commit_id":"0d0a7ec8037fcc30c3836c1934686bd7fe89ed3a"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"8d4dc6df296ce3c5baa7ecf6746bce96757e61e7","unresolved":false,"context_lines":[{"line_number":18,"context_line":"Cyborg as a common management framework for dedicated devices (hardware/"},{"line_number":19,"context_line":"software accelerators, high-speed storage, ...) needs api to expose the"},{"line_number":20,"context_line":"basic functionalities. "},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Use Cases"},{"line_number":23,"context_line":"---------"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a1ff146_1fad5b31","line":21,"in_reply_to":"3a1ff146_dd378be1","updated":"2017-03-16 14:36:51.000000000","message":"How about being explicit on what kind of API is this blueprint about? There is no clue if there will be HTTP transport used, or messaging system (via oslo.messaging for example).","commit_id":"0d0a7ec8037fcc30c3836c1934686bd7fe89ed3a"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"8d4dc6df296ce3c5baa7ecf6746bce96757e61e7","unresolved":false,"context_lines":[{"line_number":22,"context_line":"Use Cases"},{"line_number":23,"context_line":"---------"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"When user wants to create a VM instance that has a specific FPGA support,"},{"line_number":26,"context_line":"nova should be able to call cyborg api to perform all the FPGA related"},{"line_number":27,"context_line":"operations."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Proposed change"},{"line_number":30,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a1ff146_bfac47a1","line":27,"range":{"start_line":25,"start_character":0,"end_line":27,"end_character":10},"updated":"2017-03-16 14:36:51.000000000","message":"I guess, that\u0027s more than just attaching some FPGA accelerated functions. How about:\n\n- As an user I want to be able to spawn VM with dedicated hardware, so that I can utilize provided hardware\n- As a compute service I need to know how requested resource should be attached to the VM\n- As a scheduler service I\u0027d like to know on which resource provider requested resource can be found","commit_id":"0d0a7ec8037fcc30c3836c1934686bd7fe89ed3a"},{"author":{"_account_id":13629,"name":"Zhipeng","email":"huangzhipeng@huawei.com","username":"zhipengh"},"change_message_id":"5fd16317ac837507c874fab5e1846327d4f86b67","unresolved":false,"context_lines":[{"line_number":22,"context_line":"Use Cases"},{"line_number":23,"context_line":"---------"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"When user wants to create a VM instance that has a specific FPGA support,"},{"line_number":26,"context_line":"nova should be able to call cyborg api to perform all the FPGA related"},{"line_number":27,"context_line":"operations."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Proposed change"},{"line_number":30,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a1ced50_122bdb83","line":27,"range":{"start_line":25,"start_character":0,"end_line":27,"end_character":10},"in_reply_to":"3a1ff146_bfac47a1","updated":"2017-03-17 09:28:20.000000000","message":"Done","commit_id":"0d0a7ec8037fcc30c3836c1934686bd7fe89ed3a"},{"author":{"_account_id":13404,"name":"Alberto Planas","email":"aplanas@gmail.com","username":"aplanas"},"change_message_id":"868f7a8c772c91f7fbf721a2bb0df1c8b16cf41a","unresolved":false,"context_lines":[{"line_number":29,"context_line":"Proposed change"},{"line_number":30,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"* Develope the basic apis that support CRUD operations for Cyborg"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a1ff146_7d577702","line":32,"updated":"2017-03-15 09:28:58.000000000","message":"Develop?","commit_id":"0d0a7ec8037fcc30c3836c1934686bd7fe89ed3a"},{"author":{"_account_id":13629,"name":"Zhipeng","email":"huangzhipeng@huawei.com","username":"zhipengh"},"change_message_id":"5fd16317ac837507c874fab5e1846327d4f86b67","unresolved":false,"context_lines":[{"line_number":29,"context_line":"Proposed change"},{"line_number":30,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"* Develope the basic apis that support CRUD operations for Cyborg"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a1ced50_522553a9","line":32,"in_reply_to":"3a1ff146_7d577702","updated":"2017-03-17 09:28:20.000000000","message":"Done","commit_id":"0d0a7ec8037fcc30c3836c1934686bd7fe89ed3a"},{"author":{"_account_id":13404,"name":"Alberto Planas","email":"aplanas@gmail.com","username":"aplanas"},"change_message_id":"868f7a8c772c91f7fbf721a2bb0df1c8b16cf41a","unresolved":false,"context_lines":[{"line_number":45,"context_line":"REST API impact"},{"line_number":46,"context_line":"---------------"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"TBD"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a1ff146_1d492360","line":48,"updated":"2017-03-15 09:28:58.000000000","message":"extra line here","commit_id":"0d0a7ec8037fcc30c3836c1934686bd7fe89ed3a"},{"author":{"_account_id":13629,"name":"Zhipeng","email":"huangzhipeng@huawei.com","username":"zhipengh"},"change_message_id":"5fd16317ac837507c874fab5e1846327d4f86b67","unresolved":false,"context_lines":[{"line_number":45,"context_line":"REST API impact"},{"line_number":46,"context_line":"---------------"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"TBD"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a1ced50_723a4fcf","line":48,"in_reply_to":"3a1ff146_1d492360","updated":"2017-03-17 09:28:20.000000000","message":"Done","commit_id":"0d0a7ec8037fcc30c3836c1934686bd7fe89ed3a"},{"author":{"_account_id":13404,"name":"Alberto Planas","email":"aplanas@gmail.com","username":"aplanas"},"change_message_id":"868f7a8c772c91f7fbf721a2bb0df1c8b16cf41a","unresolved":false,"context_lines":[{"line_number":96,"context_line":"* detach: detaching existing physical accelerators or deallocating virtual functions for the VM"},{"line_number":97,"context_line":"* list: list all the attached accelerators"},{"line_number":98,"context_line":"* update: make modification to the accelerators (either the state or the device itself)"},{"line_number":99,"context_line":"* admin: for certain configurations that does not related to the resource centric CRUD operations "},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"Dependencies"},{"line_number":102,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a1ff146_9d7353b1","line":99,"updated":"2017-03-15 09:28:58.000000000","message":"extra space","commit_id":"0d0a7ec8037fcc30c3836c1934686bd7fe89ed3a"},{"author":{"_account_id":13629,"name":"Zhipeng","email":"huangzhipeng@huawei.com","username":"zhipengh"},"change_message_id":"5fd16317ac837507c874fab5e1846327d4f86b67","unresolved":false,"context_lines":[{"line_number":96,"context_line":"* detach: detaching existing physical accelerators or deallocating virtual functions for the VM"},{"line_number":97,"context_line":"* list: list all the attached accelerators"},{"line_number":98,"context_line":"* update: make modification to the accelerators (either the state or the device itself)"},{"line_number":99,"context_line":"* admin: for certain configurations that does not related to the resource centric CRUD operations "},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"Dependencies"},{"line_number":102,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a1ced50_d23143ee","line":99,"in_reply_to":"3a1ff146_9d7353b1","updated":"2017-03-17 09:28:20.000000000","message":"Done","commit_id":"0d0a7ec8037fcc30c3836c1934686bd7fe89ed3a"},{"author":{"_account_id":11878,"name":"Rushil Chugh","email":"rushil.chugh@gmail.com","username":"rushil"},"change_message_id":"a776f06c9694261ffa3c9f2b31a9bc8977f34db8","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/openstack-cyborg/+spec/cyborg-api"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This spec proposes to provide the initial api design for Cyborg."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Problem description"},{"line_number":16,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a1ced50_b4680e89","line":13,"range":{"start_line":13,"start_character":42,"end_line":13,"end_character":45},"updated":"2017-03-19 06:34:34.000000000","message":"API","commit_id":"f35b1c31caf9aebf7911d0a655afba328e782943"},{"author":{"_account_id":13629,"name":"Zhipeng","email":"huangzhipeng@huawei.com","username":"zhipengh"},"change_message_id":"2351e69adab5b7be0f197af6bdbadaf86a0417ef","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/openstack-cyborg/+spec/cyborg-api"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This spec proposes to provide the initial api design for Cyborg."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Problem description"},{"line_number":16,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a1ced50_5fe8d3e2","line":13,"range":{"start_line":13,"start_character":42,"end_line":13,"end_character":45},"in_reply_to":"1a1ced50_b4680e89","updated":"2017-03-19 09:04:42.000000000","message":"Done","commit_id":"f35b1c31caf9aebf7911d0a655afba328e782943"},{"author":{"_account_id":11878,"name":"Rushil Chugh","email":"rushil.chugh@gmail.com","username":"rushil"},"change_message_id":"a776f06c9694261ffa3c9f2b31a9bc8977f34db8","unresolved":false,"context_lines":[{"line_number":16,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Cyborg as a common management framework for dedicated devices (hardware/"},{"line_number":19,"context_line":"software accelerators, high-speed storage, etc) needs api to expose the"},{"line_number":20,"context_line":"basic functionalities. The api degined in this spec will be RESTful api."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Use Cases"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a1ced50_d4058ac2","line":19,"range":{"start_line":19,"start_character":54,"end_line":19,"end_character":57},"updated":"2017-03-19 06:34:34.000000000","message":"s/api/a RESTful API","commit_id":"f35b1c31caf9aebf7911d0a655afba328e782943"},{"author":{"_account_id":13629,"name":"Zhipeng","email":"huangzhipeng@huawei.com","username":"zhipengh"},"change_message_id":"2351e69adab5b7be0f197af6bdbadaf86a0417ef","unresolved":false,"context_lines":[{"line_number":16,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Cyborg as a common management framework for dedicated devices (hardware/"},{"line_number":19,"context_line":"software accelerators, high-speed storage, etc) needs api to expose the"},{"line_number":20,"context_line":"basic functionalities. The api degined in this spec will be RESTful api."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Use Cases"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a1ced50_9ff24bd1","line":19,"range":{"start_line":19,"start_character":54,"end_line":19,"end_character":57},"in_reply_to":"1a1ced50_d4058ac2","updated":"2017-03-19 09:04:42.000000000","message":"Done","commit_id":"f35b1c31caf9aebf7911d0a655afba328e782943"},{"author":{"_account_id":11878,"name":"Rushil Chugh","email":"rushil.chugh@gmail.com","username":"rushil"},"change_message_id":"a776f06c9694261ffa3c9f2b31a9bc8977f34db8","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Cyborg as a common management framework for dedicated devices (hardware/"},{"line_number":19,"context_line":"software accelerators, high-speed storage, etc) needs api to expose the"},{"line_number":20,"context_line":"basic functionalities. The api degined in this spec will be RESTful api."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Use Cases"},{"line_number":23,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a1ced50_f408c6db","line":20,"range":{"start_line":20,"start_character":23,"end_line":20,"end_character":72},"updated":"2017-03-19 06:34:34.000000000","message":"This sentence is redundant after the modifications I am suggesting in the previous sentence.","commit_id":"f35b1c31caf9aebf7911d0a655afba328e782943"},{"author":{"_account_id":13629,"name":"Zhipeng","email":"huangzhipeng@huawei.com","username":"zhipengh"},"change_message_id":"2351e69adab5b7be0f197af6bdbadaf86a0417ef","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Cyborg as a common management framework for dedicated devices (hardware/"},{"line_number":19,"context_line":"software accelerators, high-speed storage, etc) needs api to expose the"},{"line_number":20,"context_line":"basic functionalities. The api degined in this spec will be RESTful api."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Use Cases"},{"line_number":23,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a1ced50_bfed47f1","line":20,"range":{"start_line":20,"start_character":23,"end_line":20,"end_character":72},"in_reply_to":"1a1ced50_f408c6db","updated":"2017-03-19 09:04:42.000000000","message":"Done","commit_id":"f35b1c31caf9aebf7911d0a655afba328e782943"},{"author":{"_account_id":11878,"name":"Rushil Chugh","email":"rushil.chugh@gmail.com","username":"rushil"},"change_message_id":"a776f06c9694261ffa3c9f2b31a9bc8977f34db8","unresolved":false,"context_lines":[{"line_number":22,"context_line":"Use Cases"},{"line_number":23,"context_line":"---------"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"* As an user I want to be able to spawn VM with dedicated hardware, so"},{"line_number":26,"context_line":"that I can utilize provided hardware."},{"line_number":27,"context_line":"* As a compute service I need to know how requested resource should be"},{"line_number":28,"context_line":"attached to the VM."}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a1ced50_34725eae","line":25,"range":{"start_line":25,"start_character":5,"end_line":25,"end_character":8},"updated":"2017-03-19 06:34:34.000000000","message":"s/an/a","commit_id":"f35b1c31caf9aebf7911d0a655afba328e782943"},{"author":{"_account_id":13629,"name":"Zhipeng","email":"huangzhipeng@huawei.com","username":"zhipengh"},"change_message_id":"2351e69adab5b7be0f197af6bdbadaf86a0417ef","unresolved":false,"context_lines":[{"line_number":22,"context_line":"Use Cases"},{"line_number":23,"context_line":"---------"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"* As an user I want to be able to spawn VM with dedicated hardware, so"},{"line_number":26,"context_line":"that I can utilize provided hardware."},{"line_number":27,"context_line":"* As a compute service I need to know how requested resource should be"},{"line_number":28,"context_line":"attached to the VM."}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a1ced50_dfba03e1","line":25,"range":{"start_line":25,"start_character":5,"end_line":25,"end_character":8},"in_reply_to":"1a1ced50_34725eae","updated":"2017-03-19 09:04:42.000000000","message":"Done","commit_id":"f35b1c31caf9aebf7911d0a655afba328e782943"},{"author":{"_account_id":11878,"name":"Rushil Chugh","email":"rushil.chugh@gmail.com","username":"rushil"},"change_message_id":"a776f06c9694261ffa3c9f2b31a9bc8977f34db8","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"* As an user I want to be able to spawn VM with dedicated hardware, so"},{"line_number":26,"context_line":"that I can utilize provided hardware."},{"line_number":27,"context_line":"* As a compute service I need to know how requested resource should be"},{"line_number":28,"context_line":"attached to the VM."},{"line_number":29,"context_line":"* As a scheduler service I\u0027d like to know on which resource provider"},{"line_number":30,"context_line":"requested resource can be found."},{"line_number":31,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a1ced50_d45e6ae8","line":28,"range":{"start_line":27,"start_character":0,"end_line":28,"end_character":19},"updated":"2017-03-19 06:34:34.000000000","message":"This is not part of the API service\u0027s responsibility","commit_id":"f35b1c31caf9aebf7911d0a655afba328e782943"},{"author":{"_account_id":13629,"name":"Zhipeng","email":"huangzhipeng@huawei.com","username":"zhipengh"},"change_message_id":"2351e69adab5b7be0f197af6bdbadaf86a0417ef","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"* As an user I want to be able to spawn VM with dedicated hardware, so"},{"line_number":26,"context_line":"that I can utilize provided hardware."},{"line_number":27,"context_line":"* As a compute service I need to know how requested resource should be"},{"line_number":28,"context_line":"attached to the VM."},{"line_number":29,"context_line":"* As a scheduler service I\u0027d like to know on which resource provider"},{"line_number":30,"context_line":"requested resource can be found."},{"line_number":31,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a1ced50_3faf9795","line":28,"range":{"start_line":27,"start_character":0,"end_line":28,"end_character":19},"in_reply_to":"1a1ced50_d45e6ae8","updated":"2017-03-19 09:04:42.000000000","message":"I think what Roman meant is that Nova needs Cyborg API to get the knowledge of the accelerator resources","commit_id":"f35b1c31caf9aebf7911d0a655afba328e782943"},{"author":{"_account_id":11878,"name":"Rushil Chugh","email":"rushil.chugh@gmail.com","username":"rushil"},"change_message_id":"a776f06c9694261ffa3c9f2b31a9bc8977f34db8","unresolved":false,"context_lines":[{"line_number":32,"context_line":"Proposed change"},{"line_number":33,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"* Develop the basic apis that support CRUD operations for Cyborg"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a1ced50_146f22c6","line":35,"range":{"start_line":35,"start_character":20,"end_line":35,"end_character":24},"updated":"2017-03-19 06:34:34.000000000","message":"s/apis/APIs","commit_id":"f35b1c31caf9aebf7911d0a655afba328e782943"},{"author":{"_account_id":13629,"name":"Zhipeng","email":"huangzhipeng@huawei.com","username":"zhipengh"},"change_message_id":"2351e69adab5b7be0f197af6bdbadaf86a0417ef","unresolved":false,"context_lines":[{"line_number":32,"context_line":"Proposed change"},{"line_number":33,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"* Develop the basic apis that support CRUD operations for Cyborg"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a1ced50_5f96134d","line":35,"range":{"start_line":35,"start_character":20,"end_line":35,"end_character":24},"in_reply_to":"1a1ced50_146f22c6","updated":"2017-03-19 09:04:42.000000000","message":"Done","commit_id":"f35b1c31caf9aebf7911d0a655afba328e782943"},{"author":{"_account_id":11878,"name":"Rushil Chugh","email":"rushil.chugh@gmail.com","username":"rushil"},"change_message_id":"a776f06c9694261ffa3c9f2b31a9bc8977f34db8","unresolved":false,"context_lines":[{"line_number":105,"context_line":"Developer impact"},{"line_number":106,"context_line":"----------------"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"None"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"Implementation"},{"line_number":111,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a1ced50_f461a6a9","line":108,"range":{"start_line":108,"start_character":0,"end_line":108,"end_character":4},"updated":"2017-03-19 06:34:34.000000000","message":"There will be developer impact as developers can use this REST API after it has been implemented","commit_id":"f35b1c31caf9aebf7911d0a655afba328e782943"},{"author":{"_account_id":13629,"name":"Zhipeng","email":"huangzhipeng@huawei.com","username":"zhipengh"},"change_message_id":"2351e69adab5b7be0f197af6bdbadaf86a0417ef","unresolved":false,"context_lines":[{"line_number":105,"context_line":"Developer impact"},{"line_number":106,"context_line":"----------------"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"None"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"Implementation"},{"line_number":111,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a1ced50_7f910f52","line":108,"range":{"start_line":108,"start_character":0,"end_line":108,"end_character":4},"in_reply_to":"1a1ced50_f461a6a9","updated":"2017-03-19 09:04:42.000000000","message":"Done","commit_id":"f35b1c31caf9aebf7911d0a655afba328e782943"},{"author":{"_account_id":11878,"name":"Rushil Chugh","email":"rushil.chugh@gmail.com","username":"rushil"},"change_message_id":"a776f06c9694261ffa3c9f2b31a9bc8977f34db8","unresolved":false,"context_lines":[{"line_number":119,"context_line":"Work Items"},{"line_number":120,"context_line":"----------"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"Add the following apis for Cyborg:"},{"line_number":123,"context_line":"* attach: either attaching existing physical accelerators or creating new"},{"line_number":124,"context_line":"virtual functions and then allocating to the VM."},{"line_number":125,"context_line":"* detach: detaching existing physical accelerators or deallocating virtual"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a1ced50_1459e2fe","line":122,"range":{"start_line":122,"start_character":0,"end_line":122,"end_character":3},"updated":"2017-03-19 06:34:34.000000000","message":"Adds the following APIs for Cyborg","commit_id":"f35b1c31caf9aebf7911d0a655afba328e782943"},{"author":{"_account_id":13629,"name":"Zhipeng","email":"huangzhipeng@huawei.com","username":"zhipengh"},"change_message_id":"2351e69adab5b7be0f197af6bdbadaf86a0417ef","unresolved":false,"context_lines":[{"line_number":119,"context_line":"Work Items"},{"line_number":120,"context_line":"----------"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"Add the following apis for Cyborg:"},{"line_number":123,"context_line":"* attach: either attaching existing physical accelerators or creating new"},{"line_number":124,"context_line":"virtual functions and then allocating to the VM."},{"line_number":125,"context_line":"* detach: detaching existing physical accelerators or deallocating virtual"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a1ced50_9fa08ba1","line":122,"range":{"start_line":122,"start_character":0,"end_line":122,"end_character":3},"in_reply_to":"1a1ced50_1459e2fe","updated":"2017-03-19 09:04:42.000000000","message":"Done","commit_id":"f35b1c31caf9aebf7911d0a655afba328e782943"},{"author":{"_account_id":11878,"name":"Rushil Chugh","email":"rushil.chugh@gmail.com","username":"rushil"},"change_message_id":"a776f06c9694261ffa3c9f2b31a9bc8977f34db8","unresolved":false,"context_lines":[{"line_number":121,"context_line":""},{"line_number":122,"context_line":"Add the following apis for Cyborg:"},{"line_number":123,"context_line":"* attach: either attaching existing physical accelerators or creating new"},{"line_number":124,"context_line":"virtual functions and then allocating to the VM."},{"line_number":125,"context_line":"* detach: detaching existing physical accelerators or deallocating virtual"},{"line_number":126,"context_line":"functions for the VM."},{"line_number":127,"context_line":"* list: list all the attached accelerators"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a1ced50_345c1eed","line":124,"range":{"start_line":124,"start_character":0,"end_line":124,"end_character":17},"updated":"2017-03-19 06:34:34.000000000","message":"What do you mean by virtual functions? Do you mean virtual connections?","commit_id":"f35b1c31caf9aebf7911d0a655afba328e782943"},{"author":{"_account_id":13629,"name":"Zhipeng","email":"huangzhipeng@huawei.com","username":"zhipengh"},"change_message_id":"2351e69adab5b7be0f197af6bdbadaf86a0417ef","unresolved":false,"context_lines":[{"line_number":121,"context_line":""},{"line_number":122,"context_line":"Add the following apis for Cyborg:"},{"line_number":123,"context_line":"* attach: either attaching existing physical accelerators or creating new"},{"line_number":124,"context_line":"virtual functions and then allocating to the VM."},{"line_number":125,"context_line":"* detach: detaching existing physical accelerators or deallocating virtual"},{"line_number":126,"context_line":"functions for the VM."},{"line_number":127,"context_line":"* list: list all the attached accelerators"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a1ced50_1f9adb63","line":124,"range":{"start_line":124,"start_character":0,"end_line":124,"end_character":17},"in_reply_to":"1a1ced50_345c1eed","updated":"2017-03-19 09:04:42.000000000","message":"virtual functions means for accelerators that supports virtualization. For example NVMe support multiple VFs on one driver. FPGA devices usually support dynamic partitions as VFs as well, as far as I understand","commit_id":"f35b1c31caf9aebf7911d0a655afba328e782943"},{"author":{"_account_id":11878,"name":"Rushil Chugh","email":"rushil.chugh@gmail.com","username":"rushil"},"change_message_id":"a776f06c9694261ffa3c9f2b31a9bc8977f34db8","unresolved":false,"context_lines":[{"line_number":127,"context_line":"* list: list all the attached accelerators"},{"line_number":128,"context_line":"* update: make modification to the accelerators (either the state or the"},{"line_number":129,"context_line":"device itself)."},{"line_number":130,"context_line":"* admin: for certain configurations that does not related to the resource"},{"line_number":131,"context_line":"centric CRUD operations."},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a1ced50_946dd29a","line":130,"range":{"start_line":130,"start_character":50,"end_line":130,"end_character":57},"updated":"2017-03-19 06:34:34.000000000","message":"relate","commit_id":"f35b1c31caf9aebf7911d0a655afba328e782943"},{"author":{"_account_id":13629,"name":"Zhipeng","email":"huangzhipeng@huawei.com","username":"zhipengh"},"change_message_id":"2351e69adab5b7be0f197af6bdbadaf86a0417ef","unresolved":false,"context_lines":[{"line_number":127,"context_line":"* list: list all the attached accelerators"},{"line_number":128,"context_line":"* update: make modification to the accelerators (either the state or the"},{"line_number":129,"context_line":"device itself)."},{"line_number":130,"context_line":"* admin: for certain configurations that does not related to the resource"},{"line_number":131,"context_line":"centric CRUD operations."},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a1ced50_bf9b8771","line":130,"range":{"start_line":130,"start_character":50,"end_line":130,"end_character":57},"in_reply_to":"1a1ced50_946dd29a","updated":"2017-03-19 09:04:42.000000000","message":"Done","commit_id":"f35b1c31caf9aebf7911d0a655afba328e782943"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"3852f2ae4e7b9c7eb19d1ad883f03f4af6580614","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"The following new REST API call will be created:"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"PUT /accelerator"},{"line_number":54,"context_line":"GET /accelerator"},{"line_number":55,"context_line":"POST /accelerator"},{"line_number":56,"context_line":"DELETE /accelerator"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"Examplary message body for PUT operation:"},{"line_number":59,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"ffe62b97_1a2f0aa2","line":56,"range":{"start_line":53,"start_character":0,"end_line":56,"end_character":19},"updated":"2017-03-26 10:55:32.000000000","message":"I guess, that all of the calls should be well-defined, with information what is the payload for each method, what should be the response, what type of the response, how response will look like in a case of errors and so on. Here is an example how it might be described: https://specs.openstack.org/openstack/nova-specs/specs/newton/implemented/generic-resource-pools.html#rest-api-impact","commit_id":"ba31e5b6672ce06e19db3c81daf3551a18fc072c"},{"author":{"_account_id":13629,"name":"Zhipeng","email":"huangzhipeng@huawei.com","username":"zhipengh"},"change_message_id":"8a826c4d5c8d756ab6fb11f1d530d9bdd588ad50","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"The following new REST API call will be created:"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"PUT /accelerator"},{"line_number":54,"context_line":"GET /accelerator"},{"line_number":55,"context_line":"POST /accelerator"},{"line_number":56,"context_line":"DELETE /accelerator"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"Examplary message body for PUT operation:"},{"line_number":59,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"5ff73747_bcb9aa79","line":56,"range":{"start_line":53,"start_character":0,"end_line":56,"end_character":19},"in_reply_to":"ffe62b97_1a2f0aa2","updated":"2017-04-29 15:31:46.000000000","message":"Done","commit_id":"ba31e5b6672ce06e19db3c81daf3551a18fc072c"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"3852f2ae4e7b9c7eb19d1ad883f03f4af6580614","unresolved":false,"context_lines":[{"line_number":55,"context_line":"POST /accelerator"},{"line_number":56,"context_line":"DELETE /accelerator"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"Examplary message body for PUT operation:"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"{"},{"line_number":61,"context_line":"   \"accelerator\":{"}],"source_content_type":"text/x-rst","patch_set":6,"id":"ffe62b97_7a497689","line":58,"range":{"start_line":58,"start_character":0,"end_line":58,"end_character":9},"updated":"2017-03-26 10:55:32.000000000","message":"Example?","commit_id":"ba31e5b6672ce06e19db3c81daf3551a18fc072c"},{"author":{"_account_id":13629,"name":"Zhipeng","email":"huangzhipeng@huawei.com","username":"zhipengh"},"change_message_id":"8a826c4d5c8d756ab6fb11f1d530d9bdd588ad50","unresolved":false,"context_lines":[{"line_number":55,"context_line":"POST /accelerator"},{"line_number":56,"context_line":"DELETE /accelerator"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"Examplary message body for PUT operation:"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"{"},{"line_number":61,"context_line":"   \"accelerator\":{"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5ff73747_9cb4ae81","line":58,"range":{"start_line":58,"start_character":0,"end_line":58,"end_character":9},"in_reply_to":"ffe62b97_7a497689","updated":"2017-04-29 15:31:46.000000000","message":"Done","commit_id":"ba31e5b6672ce06e19db3c81daf3551a18fc072c"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"9f96e7ab9f72a2612389d2ec1001b2d8d0fadfb8","unresolved":false,"context_lines":[{"line_number":22,"context_line":"Use Cases"},{"line_number":23,"context_line":"---------"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"* As an user I want to be able to spawn VM with dedicated hardware, so"},{"line_number":26,"context_line":"that I can utilize provided hardware."},{"line_number":27,"context_line":"* As a compute service I need to know how requested resource should be"},{"line_number":28,"context_line":"attached to the VM."}],"source_content_type":"text/x-rst","patch_set":7,"id":"5ff73747_9ddfe3d5","line":25,"updated":"2017-05-02 11:22:40.000000000","message":"I know the rule is confusing but in this case it is \"a user\" not \"an user\".","commit_id":"57da202bb5925f49dd7676c8e827fae8c6fa7ecb"},{"author":{"_account_id":13629,"name":"Zhipeng","email":"huangzhipeng@huawei.com","username":"zhipengh"},"change_message_id":"ec1c84c65136ae4a5280e39006d6323d967d91a9","unresolved":false,"context_lines":[{"line_number":22,"context_line":"Use Cases"},{"line_number":23,"context_line":"---------"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"* As an user I want to be able to spawn VM with dedicated hardware, so"},{"line_number":26,"context_line":"that I can utilize provided hardware."},{"line_number":27,"context_line":"* As a compute service I need to know how requested resource should be"},{"line_number":28,"context_line":"attached to the VM."}],"source_content_type":"text/x-rst","patch_set":7,"id":"5ff73747_513944f0","line":25,"in_reply_to":"5ff73747_9ddfe3d5","updated":"2017-05-02 13:44:44.000000000","message":"Done","commit_id":"57da202bb5925f49dd7676c8e827fae8c6fa7ecb"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"9f96e7ab9f72a2612389d2ec1001b2d8d0fadfb8","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"{"},{"line_number":71,"context_line":"   \"accelerator\":{"},{"line_number":72,"context_line":"          \"server_uuid\":\"8e45a2ea-5364-4b0d-a252-bf8becaa606e\","},{"line_number":73,"context_line":"          \"acc_specs\":{"},{"line_number":74,"context_line":"                 \"remote\":0,"},{"line_number":75,"context_line":"                 \"num\":1,"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5ff73747_fdaf0729","line":72,"updated":"2017-05-02 11:22:40.000000000","message":"What is a \"server\" in this case? Is it the physical hardware that contains this accelerator? I ask because the term \"server\" is used in so many different ways in the openstack world its good to be clear which one this is.","commit_id":"57da202bb5925f49dd7676c8e827fae8c6fa7ecb"},{"author":{"_account_id":13629,"name":"Zhipeng","email":"huangzhipeng@huawei.com","username":"zhipengh"},"change_message_id":"ec1c84c65136ae4a5280e39006d6323d967d91a9","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"{"},{"line_number":71,"context_line":"   \"accelerator\":{"},{"line_number":72,"context_line":"          \"server_uuid\":\"8e45a2ea-5364-4b0d-a252-bf8becaa606e\","},{"line_number":73,"context_line":"          \"acc_specs\":{"},{"line_number":74,"context_line":"                 \"remote\":0,"},{"line_number":75,"context_line":"                 \"num\":1,"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5ff73747_8cfd6f0a","line":72,"in_reply_to":"5ff73747_fdaf0729","updated":"2017-05-02 13:44:44.000000000","message":"I think this is a misnomer in this case, I fixed it in the next patch","commit_id":"57da202bb5925f49dd7676c8e827fae8c6fa7ecb"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"9f96e7ab9f72a2612389d2ec1001b2d8d0fadfb8","unresolved":false,"context_lines":[{"line_number":73,"context_line":"          \"acc_specs\":{"},{"line_number":74,"context_line":"                 \"remote\":0,"},{"line_number":75,"context_line":"                 \"num\":1,"},{"line_number":76,"context_line":"                 \"device_type\":\"CRYPTO\""},{"line_number":77,"context_line":"                 \"acc_capability\":{"},{"line_number":78,"context_line":"                          \"num\":2"},{"line_number":79,"context_line":"                          \"ipsec\":{"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5ff73747_bda97f25","line":76,"updated":"2017-05-02 11:22:40.000000000","message":"Who or what defines the list of available types?","commit_id":"57da202bb5925f49dd7676c8e827fae8c6fa7ecb"},{"author":{"_account_id":13629,"name":"Zhipeng","email":"huangzhipeng@huawei.com","username":"zhipengh"},"change_message_id":"ec1c84c65136ae4a5280e39006d6323d967d91a9","unresolved":false,"context_lines":[{"line_number":73,"context_line":"          \"acc_specs\":{"},{"line_number":74,"context_line":"                 \"remote\":0,"},{"line_number":75,"context_line":"                 \"num\":1,"},{"line_number":76,"context_line":"                 \"device_type\":\"CRYPTO\""},{"line_number":77,"context_line":"                 \"acc_capability\":{"},{"line_number":78,"context_line":"                          \"num\":2"},{"line_number":79,"context_line":"                          \"ipsec\":{"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5ff73747_2c5adb29","line":76,"in_reply_to":"5ff73747_bda97f25","updated":"2017-05-02 13:44:44.000000000","message":"The proposal here is to just have an entrance called device_type in cyborg db, and the value of the viable is up to the user to describe it. There are just so many kinds of accelerators that I don\u0027t think we could enumerate all of them.","commit_id":"57da202bb5925f49dd7676c8e827fae8c6fa7ecb"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"9f96e7ab9f72a2612389d2ec1001b2d8d0fadfb8","unresolved":false,"context_lines":[{"line_number":125,"context_line":"pointing to the created accelerator resource::"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"    201 Created"},{"line_number":128,"context_line":"    Location: /accelerators/8e45a2ea-5364-4b0d-a252-bf8becaa606e"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"A `409 Conflict` response code will be returned if another accelerator"},{"line_number":131,"context_line":"exists with the provided name."}],"source_content_type":"text/x-rst","patch_set":7,"id":"5ff73747_fd74a7d2","line":128,"updated":"2017-05-02 11:22:40.000000000","message":"Is the uuid the identifier of the accelerator or the server or are they the same thing? It is confusion here because you\u0027re using the same uuid in two places but it is not clear if that is intentional or not.","commit_id":"57da202bb5925f49dd7676c8e827fae8c6fa7ecb"},{"author":{"_account_id":13629,"name":"Zhipeng","email":"huangzhipeng@huawei.com","username":"zhipengh"},"change_message_id":"ec1c84c65136ae4a5280e39006d6323d967d91a9","unresolved":false,"context_lines":[{"line_number":125,"context_line":"pointing to the created accelerator resource::"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"    201 Created"},{"line_number":128,"context_line":"    Location: /accelerators/8e45a2ea-5364-4b0d-a252-bf8becaa606e"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"A `409 Conflict` response code will be returned if another accelerator"},{"line_number":131,"context_line":"exists with the provided name."}],"source_content_type":"text/x-rst","patch_set":7,"id":"5ff73747_4c6e47ca","line":128,"in_reply_to":"5ff73747_fd74a7d2","updated":"2017-05-02 13:44:44.000000000","message":"As commented above, it is the accelerator id. server_id is a misnomer :)","commit_id":"57da202bb5925f49dd7676c8e827fae8c6fa7ecb"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"9f96e7ab9f72a2612389d2ec1001b2d8d0fadfb8","unresolved":false,"context_lines":[{"line_number":169,"context_line":"* `404 Not Found` if the accelerator identified by `{uuid}` was"},{"line_number":170,"context_line":"  not found."},{"line_number":171,"context_line":"* `409 Conflict` if there exist allocations records for any of the"},{"line_number":172,"context_line":"  accelerator resource that would be deleted as a result of removing the accelerator."},{"line_number":173,"context_line":""},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"Security impact"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5ff73747_7d2f77a7","line":172,"updated":"2017-05-02 11:22:40.000000000","message":"Who or what is making allocations? And do you mean allocations in terms of those used by the placement API or something else?","commit_id":"57da202bb5925f49dd7676c8e827fae8c6fa7ecb"},{"author":{"_account_id":13629,"name":"Zhipeng","email":"huangzhipeng@huawei.com","username":"zhipengh"},"change_message_id":"ec1c84c65136ae4a5280e39006d6323d967d91a9","unresolved":false,"context_lines":[{"line_number":169,"context_line":"* `404 Not Found` if the accelerator identified by `{uuid}` was"},{"line_number":170,"context_line":"  not found."},{"line_number":171,"context_line":"* `409 Conflict` if there exist allocations records for any of the"},{"line_number":172,"context_line":"  accelerator resource that would be deleted as a result of removing the accelerator."},{"line_number":173,"context_line":""},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"Security impact"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5ff73747_acfdcbb2","line":172,"in_reply_to":"5ff73747_7d2f77a7","updated":"2017-05-02 13:44:44.000000000","message":"I will make another reply to your question in general, but in here yes my thinking is that allocation (and the specific attach/detach actions) are done through nova-compute, whereas scheduling was done through cyborg-agent calling placement api. Roman described the interaction in https://review.openstack.org/#/c/448228/ . Basically Cyborg will be like Cinder for accelerators","commit_id":"57da202bb5925f49dd7676c8e827fae8c6fa7ecb"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"24392d27abf1602f01f3291e9decabec77448ce7","unresolved":false,"context_lines":[{"line_number":84,"context_line":"      \"uuid\":\"8e45a2ea-5364-4b0d-a252-bf8becaa606e\","},{"line_number":85,"context_line":"      \"acc_specs\":"},{"line_number":86,"context_line":"      {"},{"line_number":87,"context_line":"\t \"remote\":0,"},{"line_number":88,"context_line":"\t \"num\":1,"},{"line_number":89,"context_line":"\t \"device_type\":\"CRYPTO\""},{"line_number":90,"context_line":"\t \"acc_capability\":"}],"source_content_type":"text/x-rst","patch_set":9,"id":"ff0f0b1f_2ece8359","line":87,"updated":"2017-05-24 19:09:57.000000000","message":"you probably don\u0027t want to mix tabs and spaces","commit_id":"4202612c9d62c3c07f90155c09e9471879805d8c"},{"author":{"_account_id":13629,"name":"Zhipeng","email":"huangzhipeng@huawei.com","username":"zhipengh"},"change_message_id":"0093523c147403c2a46debe2000f9497816c2ce2","unresolved":false,"context_lines":[{"line_number":84,"context_line":"      \"uuid\":\"8e45a2ea-5364-4b0d-a252-bf8becaa606e\","},{"line_number":85,"context_line":"      \"acc_specs\":"},{"line_number":86,"context_line":"      {"},{"line_number":87,"context_line":"\t \"remote\":0,"},{"line_number":88,"context_line":"\t \"num\":1,"},{"line_number":89,"context_line":"\t \"device_type\":\"CRYPTO\""},{"line_number":90,"context_line":"\t \"acc_capability\":"}],"source_content_type":"text/x-rst","patch_set":9,"id":"ff0f0b1f_69158a48","line":87,"in_reply_to":"ff0f0b1f_2ece8359","updated":"2017-05-25 02:56:53.000000000","message":"ah ya forget to fix these :P will update later","commit_id":"4202612c9d62c3c07f90155c09e9471879805d8c"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"24392d27abf1602f01f3291e9decabec77448ce7","unresolved":false,"context_lines":[{"line_number":87,"context_line":"\t \"remote\":0,"},{"line_number":88,"context_line":"\t \"num\":1,"},{"line_number":89,"context_line":"\t \"device_type\":\"CRYPTO\""},{"line_number":90,"context_line":"\t \"acc_capability\":"},{"line_number":91,"context_line":"\t {"},{"line_number":92,"context_line":"\t    \"num\":2"},{"line_number":93,"context_line":"\t    \"ipsec\":"}],"source_content_type":"text/x-rst","patch_set":9,"id":"ff0f0b1f_ce2dc7fe","line":90,"updated":"2017-05-24 19:09:57.000000000","message":"Is there any relationship between the capabilities and the idea of \"traits\" being used in the placement service:\n\nhttp://specs.openstack.org/openstack/nova-specs/specs/pike/approved/resource-provider-traits.html\n\nThis looks similar but not quite the same, but also has some over lap with custom resource classes too (a \"CRYPTO\" sounds like a resource class). Might be a combo.","commit_id":"4202612c9d62c3c07f90155c09e9471879805d8c"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"df158bfb78091d880a508b5ce424c31ec09aa055","unresolved":false,"context_lines":[{"line_number":87,"context_line":"\t \"remote\":0,"},{"line_number":88,"context_line":"\t \"num\":1,"},{"line_number":89,"context_line":"\t \"device_type\":\"CRYPTO\""},{"line_number":90,"context_line":"\t \"acc_capability\":"},{"line_number":91,"context_line":"\t {"},{"line_number":92,"context_line":"\t    \"num\":2"},{"line_number":93,"context_line":"\t    \"ipsec\":"}],"source_content_type":"text/x-rst","patch_set":9,"id":"df140735_666b491f","line":90,"in_reply_to":"df140735_06500dd4","updated":"2017-06-07 09:40:58.000000000","message":"I\u0027m not understanding your first question.\n\nSince traits are associated with resource providers you can have traits on one, some or all of the resource providers in a tree of nested resource providers. It really depends on how things are structured.\n\nHowever, as I understand things, when making a request for resources, the traits will be expressed as required traits, not associated with anything.","commit_id":"4202612c9d62c3c07f90155c09e9471879805d8c"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"70fd03a2dc6c7add895f55a31ee3da449a7e5de7","unresolved":false,"context_lines":[{"line_number":87,"context_line":"\t \"remote\":0,"},{"line_number":88,"context_line":"\t \"num\":1,"},{"line_number":89,"context_line":"\t \"device_type\":\"CRYPTO\""},{"line_number":90,"context_line":"\t \"acc_capability\":"},{"line_number":91,"context_line":"\t {"},{"line_number":92,"context_line":"\t    \"num\":2"},{"line_number":93,"context_line":"\t    \"ipsec\":"}],"source_content_type":"text/x-rst","patch_set":9,"id":"ff0f0b1f_71e208d7","line":90,"in_reply_to":"ff0f0b1f_44150b3f","updated":"2017-05-25 10:18:24.000000000","message":"traits are qualitative aspects of the resource provider, not the class\n\nSo in this case you\u0027d have something like a resource provider with uuid of \u00278e45a2ea-5364-4b0d-a252-bf8becaa606e\u0027, with an inventory of resource class \u0027CUSTOM_CRYPTO_ACCELERATOR\u0027 with an amount (I can\u0027t tell from this if is one or two) and a trait that describes what sort of crypto is does.\n\nThere\u0027s been some discussion how traits being on providers instead of inventories is a bit confusing, especially in the case where a provider can have multiple classes of inventory, but it is the situation we have.","commit_id":"4202612c9d62c3c07f90155c09e9471879805d8c"},{"author":{"_account_id":13629,"name":"Zhipeng","email":"huangzhipeng@huawei.com","username":"zhipengh"},"change_message_id":"de48048e0815aba417ead37c6bafc5ff1b75ad7f","unresolved":false,"context_lines":[{"line_number":87,"context_line":"\t \"remote\":0,"},{"line_number":88,"context_line":"\t \"num\":1,"},{"line_number":89,"context_line":"\t \"device_type\":\"CRYPTO\""},{"line_number":90,"context_line":"\t \"acc_capability\":"},{"line_number":91,"context_line":"\t {"},{"line_number":92,"context_line":"\t    \"num\":2"},{"line_number":93,"context_line":"\t    \"ipsec\":"}],"source_content_type":"text/x-rst","patch_set":9,"id":"df140735_06500dd4","line":90,"in_reply_to":"ff0f0b1f_71e208d7","updated":"2017-06-07 09:29:01.000000000","message":"I\u0027m a bit confused here. If the traits are qualitative description of the resource provider, then the acc_capability here should not describe only what CRYPTO got, right ? Another question is that does trait allows nested trait features ?","commit_id":"4202612c9d62c3c07f90155c09e9471879805d8c"},{"author":{"_account_id":13629,"name":"Zhipeng","email":"huangzhipeng@huawei.com","username":"zhipengh"},"change_message_id":"0093523c147403c2a46debe2000f9497816c2ce2","unresolved":false,"context_lines":[{"line_number":87,"context_line":"\t \"remote\":0,"},{"line_number":88,"context_line":"\t \"num\":1,"},{"line_number":89,"context_line":"\t \"device_type\":\"CRYPTO\""},{"line_number":90,"context_line":"\t \"acc_capability\":"},{"line_number":91,"context_line":"\t {"},{"line_number":92,"context_line":"\t    \"num\":2"},{"line_number":93,"context_line":"\t    \"ipsec\":"}],"source_content_type":"text/x-rst","patch_set":9,"id":"ff0f0b1f_44150b3f","line":90,"in_reply_to":"ff0f0b1f_ce2dc7fe","updated":"2017-05-25 02:56:53.000000000","message":"i discussed with Jay last week when he was at the bugsmash, i think the capabilities defined here will be reflected as a trait. Traits are qualitative aspects of the resource class ?","commit_id":"4202612c9d62c3c07f90155c09e9471879805d8c"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"24392d27abf1602f01f3291e9decabec77448ce7","unresolved":false,"context_lines":[{"line_number":228,"context_line":"         }"},{"line_number":229,"context_line":"    }"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"he returned HTTP response code will be one of the following:"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"* `200 OK` if the spec is successfully updated"},{"line_number":234,"context_line":"* `404 Not Found` if the accelerator identified by `{uuid}` was"}],"source_content_type":"text/x-rst","patch_set":9,"id":"ff0f0b1f_6eb35bea","line":231,"updated":"2017-05-24 19:09:57.000000000","message":"The","commit_id":"4202612c9d62c3c07f90155c09e9471879805d8c"},{"author":{"_account_id":13629,"name":"Zhipeng","email":"huangzhipeng@huawei.com","username":"zhipengh"},"change_message_id":"0093523c147403c2a46debe2000f9497816c2ce2","unresolved":false,"context_lines":[{"line_number":228,"context_line":"         }"},{"line_number":229,"context_line":"    }"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"he returned HTTP response code will be one of the following:"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"* `200 OK` if the spec is successfully updated"},{"line_number":234,"context_line":"* `404 Not Found` if the accelerator identified by `{uuid}` was"}],"source_content_type":"text/x-rst","patch_set":9,"id":"ff0f0b1f_64236fa8","line":231,"in_reply_to":"ff0f0b1f_6eb35bea","updated":"2017-05-25 02:56:53.000000000","message":"update in the next patch","commit_id":"4202612c9d62c3c07f90155c09e9471879805d8c"},{"author":{"_account_id":11878,"name":"Rushil Chugh","email":"rushil.chugh@gmail.com","username":"rushil"},"change_message_id":"c30f6efa53c0939bb75517c2cbd5e266366b5257","unresolved":false,"context_lines":[{"line_number":38,"context_line":"Life Cycle Management Phases"},{"line_number":39,"context_line":"----------------------------"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"For cycborg, LCM phases include typical create, retrieve, update, delete operations."},{"line_number":42,"context_line":"One thing should be noted that deprovisioning mainly refers to detach(delete) operation"},{"line_number":43,"context_line":"which deactivate an acceleration capability but preserve the resource itself"},{"line_number":44,"context_line":"for future usage. For Cyborg, from functional point of view, the LCM includes provision,"}],"source_content_type":"text/x-rst","patch_set":12,"id":"7f231b9d_4b98a21a","line":41,"range":{"start_line":41,"start_character":4,"end_line":41,"end_character":11},"updated":"2017-06-16 14:13:41.000000000","message":"*cyborg","commit_id":"210cf24ef25a10b44bf8bd0e57d0d6a57636baa9"},{"author":{"_account_id":25847,"name":"zhuli","email":"zhuli2317@gmail.com","username":"zhuli"},"change_message_id":"31339d17c17544aeef149dfda33d195ed11b1fa1","unresolved":false,"context_lines":[{"line_number":179,"context_line":"\u0027GET /accelerators/{uuid}\u0027"},{"line_number":180,"context_line":"*************************"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"Retrieve a certain accelerator info indetified by \u0027{uuid}\u0027"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"Example GET Request::"},{"line_number":185,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"7f231b9d_ad1dc374","line":182,"range":{"start_line":182,"start_character":36,"end_line":182,"end_character":46},"updated":"2017-06-20 08:40:51.000000000","message":"identified","commit_id":"210cf24ef25a10b44bf8bd0e57d0d6a57636baa9"},{"author":{"_account_id":22306,"name":"Justin Kilpatrick","email":"jkilpatr@redhat.com","username":"jkilpatr"},"change_message_id":"03846384fca62fcfc003319944d0565d080f9183","unresolved":false,"context_lines":[{"line_number":43,"context_line":"which deactivate an acceleration capability but preserve the resource itself"},{"line_number":44,"context_line":"for future usage. For Cyborg, from functional point of view, the LCM includes provision,"},{"line_number":45,"context_line":"attach,update,list, and detach. There is no notion of deprovisioning for Cyborg API"},{"line_number":46,"context_line":"in a sense that we decomission or disconnect an entire accelerator device from"},{"line_number":47,"context_line":"the bus."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Difference between Provision and Attach/Detach"},{"line_number":50,"context_line":"----------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3f1d235d_0a9f0451","line":47,"range":{"start_line":46,"start_character":0,"end_line":47,"end_character":8},"updated":"2017-06-29 11:59:03.000000000","message":"so the idea here is that to remove an accelerator a user physically removes it, we run discovery and then remove it from our db when we don\u0027t find it again?","commit_id":"b8669f18e647a1909ca2bb49da35f8a2fc0079ec"}],"specs/template.rst":[{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"fc01ba15590953b5f960446dd386ed479aab4de1","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Include the URL of your launchpad blueprint:"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"https://blueprints.launchpad.net/mogan/+spec/example"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Introduction paragraph -- why are we doing anything? A single paragraph of"},{"line_number":16,"context_line":"prose that operators can understand. The title and this first paragraph"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a1ced50_afd2b432","line":13,"range":{"start_line":13,"start_character":0,"end_line":13,"end_character":52},"updated":"2017-03-16 19:53:56.000000000","message":"Mogan. Mogan everywhere :)","commit_id":"0d0a7ec8037fcc30c3836c1934686bd7fe89ed3a"}]}
