)]}'
{"specs/ussuri/approved/cyborg-api.rst":[{"author":{"_account_id":21672,"name":"Sundar Nadathur","email":"sundar.nadathur@intel.com","username":"nsundar"},"change_message_id":"04afb557360d64d7cbab39788ab3ce6555058473","unresolved":false,"context_lines":[{"line_number":299,"context_line":"* type: type of devices. For example, we call get all FPGA devices by"},{"line_number":300,"context_line":"  add \"FPGA\" as the query parameter."},{"line_number":301,"context_line":""},{"line_number":302,"context_line":"* vendor: vendor ID of devices. For example, we call get all Intel devices"},{"line_number":303,"context_line":"  by add \"0x8086\" as the query parameter."},{"line_number":304,"context_line":""},{"line_number":305,"context_line":"Proposed JSON response::"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_a3d5bbe7","line":302,"updated":"2019-11-26 04:40:17.000000000","message":"We should also have \u0027device ID\u0027, \u0027vendor name\u0027, substring of model name, etc. But they could be implemented over multiple patches if needed.","commit_id":"d779ee1ba8a8e8c5225ba5cd247549703ab5a244"},{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"df6715cbc35951235c84e05d5c17b6a2e9453f31","unresolved":false,"context_lines":[{"line_number":299,"context_line":"* type: type of devices. For example, we call get all FPGA devices by"},{"line_number":300,"context_line":"  add \"FPGA\" as the query parameter."},{"line_number":301,"context_line":""},{"line_number":302,"context_line":"* vendor: vendor ID of devices. For example, we call get all Intel devices"},{"line_number":303,"context_line":"  by add \"0x8086\" as the query parameter."},{"line_number":304,"context_line":""},{"line_number":305,"context_line":"Proposed JSON response::"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_53f00bdb","line":302,"in_reply_to":"3fa7e38b_a3d5bbe7","updated":"2019-12-02 14:09:13.000000000","message":"We can apply filter only with the field defined in Device table,and Device object. Otherwise, we should manage a mapping relation between the input like vendor_name to vendor ID, or substring of mode name to model.","commit_id":"d779ee1ba8a8e8c5225ba5cd247549703ab5a244"},{"author":{"_account_id":14107,"name":"zhurong","email":"aaronzhu1121@gmail.com","username":"zhurong"},"change_message_id":"0e597fb3c89e229d94cacedbb94921691073d36a","unresolved":false,"context_lines":[{"line_number":315,"context_line":""},{"line_number":316,"context_line":"METHOD: ``GET``"},{"line_number":317,"context_line":""},{"line_number":318,"context_line":"ROLE: Admin or any tenant"},{"line_number":319,"context_line":""},{"line_number":320,"context_line":"Proposed JSON response::"},{"line_number":321,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_7e2af87d","line":318,"range":{"start_line":318,"start_character":15,"end_line":318,"end_character":25},"updated":"2019-11-26 05:44:45.000000000","message":"any tenenat?","commit_id":"d779ee1ba8a8e8c5225ba5cd247549703ab5a244"},{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"df6715cbc35951235c84e05d5c17b6a2e9453f31","unresolved":false,"context_lines":[{"line_number":315,"context_line":""},{"line_number":316,"context_line":"METHOD: ``GET``"},{"line_number":317,"context_line":""},{"line_number":318,"context_line":"ROLE: Admin or any tenant"},{"line_number":319,"context_line":""},{"line_number":320,"context_line":"Proposed JSON response::"},{"line_number":321,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_f3fed7ad","line":318,"range":{"start_line":318,"start_character":15,"end_line":318,"end_character":25},"in_reply_to":"3fa7e38b_7e2af87d","updated":"2019-12-02 14:09:13.000000000","message":"Done","commit_id":"d779ee1ba8a8e8c5225ba5cd247549703ab5a244"},{"author":{"_account_id":21672,"name":"Sundar Nadathur","email":"sundar.nadathur@intel.com","username":"nsundar"},"change_message_id":"04afb557360d64d7cbab39788ab3ce6555058473","unresolved":false,"context_lines":[{"line_number":379,"context_line":""},{"line_number":380,"context_line":"URL: ``/accelerator/v2/devices/{uuid}/enabled``"},{"line_number":381,"context_line":""},{"line_number":382,"context_line":"METHOD: ``PUT``"},{"line_number":383,"context_line":""},{"line_number":384,"context_line":"ROLE: Admin or any tenant with RBAC authorization."},{"line_number":385,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_c3e9d7aa","line":382,"updated":"2019-11-26 04:40:17.000000000","message":"Why is this not a PATCH on \u0027enabled\u0027 field? We then don\u0027t need enabled and disabled forms.","commit_id":"d779ee1ba8a8e8c5225ba5cd247549703ab5a244"},{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"df6715cbc35951235c84e05d5c17b6a2e9453f31","unresolved":false,"context_lines":[{"line_number":379,"context_line":""},{"line_number":380,"context_line":"URL: ``/accelerator/v2/devices/{uuid}/enabled``"},{"line_number":381,"context_line":""},{"line_number":382,"context_line":"METHOD: ``PUT``"},{"line_number":383,"context_line":""},{"line_number":384,"context_line":"ROLE: Admin or any tenant with RBAC authorization."},{"line_number":385,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_b32a9f2c","line":382,"in_reply_to":"3fa7e38b_c3e9d7aa","updated":"2019-12-02 14:09:13.000000000","message":"Done","commit_id":"d779ee1ba8a8e8c5225ba5cd247549703ab5a244"},{"author":{"_account_id":14107,"name":"zhurong","email":"aaronzhu1121@gmail.com","username":"zhurong"},"change_message_id":"0e597fb3c89e229d94cacedbb94921691073d36a","unresolved":false,"context_lines":[{"line_number":383,"context_line":""},{"line_number":384,"context_line":"ROLE: Admin or any tenant with RBAC authorization."},{"line_number":385,"context_line":""},{"line_number":386,"context_line":"Action: Update the device status as ``enabled``. This request will invoke"},{"line_number":387,"context_line":"placement API to set all resource provider under this device to available."},{"line_number":388,"context_line":""},{"line_number":389,"context_line":"Proposed JSON response: None."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_5e27fcb6","line":386,"range":{"start_line":386,"start_character":26,"end_line":386,"end_character":32},"updated":"2019-11-26 05:44:45.000000000","message":"also, since we need a status for the device, do we need add a status column in the device database table?","commit_id":"d779ee1ba8a8e8c5225ba5cd247549703ab5a244"},{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"df6715cbc35951235c84e05d5c17b6a2e9453f31","unresolved":false,"context_lines":[{"line_number":383,"context_line":""},{"line_number":384,"context_line":"ROLE: Admin or any tenant with RBAC authorization."},{"line_number":385,"context_line":""},{"line_number":386,"context_line":"Action: Update the device status as ``enabled``. This request will invoke"},{"line_number":387,"context_line":"placement API to set all resource provider under this device to available."},{"line_number":388,"context_line":""},{"line_number":389,"context_line":"Proposed JSON response: None."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_d32ddb45","line":386,"range":{"start_line":386,"start_character":26,"end_line":386,"end_character":32},"in_reply_to":"3fa7e38b_5e27fcb6","updated":"2019-12-02 14:09:13.000000000","message":"Done","commit_id":"d779ee1ba8a8e8c5225ba5cd247549703ab5a244"},{"author":{"_account_id":14107,"name":"zhurong","email":"aaronzhu1121@gmail.com","username":"zhurong"},"change_message_id":"0e597fb3c89e229d94cacedbb94921691073d36a","unresolved":false,"context_lines":[{"line_number":388,"context_line":""},{"line_number":389,"context_line":"Proposed JSON response: None."},{"line_number":390,"context_line":""},{"line_number":391,"context_line":"URL: ``/accelerator/v2/devices/{uuid}/disable``"},{"line_number":392,"context_line":""},{"line_number":393,"context_line":"METHOD: ``PUT``"},{"line_number":394,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_7e867867","line":391,"range":{"start_line":391,"start_character":8,"end_line":391,"end_character":19},"updated":"2019-11-26 05:44:45.000000000","message":"just a suggestion for all this spec, I don\u0027t think we should add accelerator in the api url. here accelerator is just a url path not include in the api path. so /v2/devices/ is more suitable.","commit_id":"d779ee1ba8a8e8c5225ba5cd247549703ab5a244"},{"author":{"_account_id":30759,"name":"Shogo Saito","email":"shogo.saito.ac@hco.ntt.co.jp","username":"s.shogo"},"change_message_id":"abedfc2ba2f89313d4f233e24b4e941b0efda11e","unresolved":false,"context_lines":[{"line_number":106,"context_line":"However, we need to add a ``bitstream`` field to ``deployables`` table in the"},{"line_number":107,"context_line":"database, which can serve as a target in the JSON patch for reprogramming."},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"Besides, we need to add a ``status`` field to ``device`` table in the"},{"line_number":110,"context_line":"database, which can indicate whether the device is enabled or disabled."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"REST API impact"},{"line_number":113,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3fa7e38b_8d2ad78e","line":110,"range":{"start_line":109,"start_character":0,"end_line":110,"end_character":71},"updated":"2019-12-03 08:43:31.000000000","message":"I have concern with a problem related to a possibility of unsynchronization between the Cyborg\u0027s DB(status) and the Placement\u0027s DB(reserved).\n\nThere is an another way to realize enable/disable API, using reserved field in placement as the only one original data, IMO.\n\nThis is simple way because that doesn\u0027t effect current cyborg DB scheme, and doesn\u0027t cause a unsynchronize problem.\n\nBut, on the other hand,your way has a pros, can add \"maintenance_reason\", like models.py in ironic[1].\nWhat is your opinion about this?","commit_id":"6af30685e7ce5a21bc4d034f1ab82eabfd768158"},{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"804b7e6a7864a821728ed2d2172bca4a183e24f9","unresolved":false,"context_lines":[{"line_number":106,"context_line":"However, we need to add a ``bitstream`` field to ``deployables`` table in the"},{"line_number":107,"context_line":"database, which can serve as a target in the JSON patch for reprogramming."},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"Besides, we need to add a ``status`` field to ``device`` table in the"},{"line_number":110,"context_line":"database, which can indicate whether the device is enabled or disabled."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"REST API impact"},{"line_number":113,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3fa7e38b_f8354744","line":110,"range":{"start_line":109,"start_character":0,"end_line":110,"end_character":71},"in_reply_to":"3fa7e38b_8d2ad78e","updated":"2019-12-03 09:23:43.000000000","message":"I was thinking that operator should be able to see the devices\u0027 status. If we don\u0027t have this field, we should invoke placement API to see if the device is enabled or not, which may cause latency.  \nFor the unsync issue you mention above, could you pls give an example? I was thinking that we can update \u0027status\u0027 field and call placement API in same Device API call.","commit_id":"6af30685e7ce5a21bc4d034f1ab82eabfd768158"},{"author":{"_account_id":30759,"name":"Shogo Saito","email":"shogo.saito.ac@hco.ntt.co.jp","username":"s.shogo"},"change_message_id":"9d88400de665241bdd5c6b80058e85b7e37b48c6","unresolved":false,"context_lines":[{"line_number":106,"context_line":"However, we need to add a ``bitstream`` field to ``deployables`` table in the"},{"line_number":107,"context_line":"database, which can serve as a target in the JSON patch for reprogramming."},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"Besides, we need to add a ``status`` field to ``device`` table in the"},{"line_number":110,"context_line":"database, which can indicate whether the device is enabled or disabled."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"REST API impact"},{"line_number":113,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3fa7e38b_e5ea7f9e","line":110,"range":{"start_line":109,"start_character":0,"end_line":110,"end_character":71},"in_reply_to":"3fa7e38b_f8354744","updated":"2019-12-03 11:24:45.000000000","message":"Your concern about latency is right, that is cons of the simple way.\nIn performance sensitive case, operators need to access Placement DB directly.\n\nThe consistency between Cyborg and Placement could be kept in normal scenario.\nMy concern, inconsistency, will be happen in exception scenario, e.g. cyborg invokes Placement API and will down before receiving the result.\nIn this case, Cyborg\u0027s db is not updated, but Placement\u0027s DB is updated.\nTo avoid this, like 2-phase commit is a way, but it may be little overdoing in this purpose.\n\nI think both methods has each pros/cons, and to decide this, we should think a priority, between performance and simplicity.","commit_id":"6af30685e7ce5a21bc4d034f1ab82eabfd768158"},{"author":{"_account_id":14107,"name":"zhurong","email":"aaronzhu1121@gmail.com","username":"zhurong"},"change_message_id":"13bfd026461a845801dd06d3a8982ade3ac59f37","unresolved":false,"context_lines":[{"line_number":297,"context_line":"METHOD: ``GET``"},{"line_number":298,"context_line":""},{"line_number":299,"context_line":"Query Parameters:"},{"line_number":300,"context_line":"* hostname: hosename of the compute node where devices are located."},{"line_number":301,"context_line":""},{"line_number":302,"context_line":"* type: type of devices. For example, we call get all FPGA devices by"},{"line_number":303,"context_line":"  add \"FPGA\" as the query parameter."}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_863538aa","line":300,"range":{"start_line":300,"start_character":12,"end_line":300,"end_character":20},"updated":"2019-12-13 08:15:30.000000000","message":"hostname","commit_id":"a446617c0e4d0cd4265b25a7c84d98fbcf2f0cfd"},{"author":{"_account_id":14107,"name":"zhurong","email":"aaronzhu1121@gmail.com","username":"zhurong"},"change_message_id":"13bfd026461a845801dd06d3a8982ade3ac59f37","unresolved":false,"context_lines":[{"line_number":351,"context_line":""},{"line_number":352,"context_line":" {"},{"line_number":353,"context_line":"   ["},{"line_number":354,"context_line":"      { \"path\": \"/status\", \"op\": \"add\", \"value\": \"enabled\", \"reason\": \"reason(optional)\" },"},{"line_number":355,"context_line":"   ]"},{"line_number":356,"context_line":" }"},{"line_number":357,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_6696fc3f","line":354,"range":{"start_line":354,"start_character":34,"end_line":354,"end_character":37},"updated":"2019-12-13 08:15:30.000000000","message":"maybe use replace?","commit_id":"a446617c0e4d0cd4265b25a7c84d98fbcf2f0cfd"},{"author":{"_account_id":14107,"name":"zhurong","email":"aaronzhu1121@gmail.com","username":"zhurong"},"change_message_id":"13bfd026461a845801dd06d3a8982ade3ac59f37","unresolved":false,"context_lines":[{"line_number":371,"context_line":""},{"line_number":372,"context_line":" {"},{"line_number":373,"context_line":"   ["},{"line_number":374,"context_line":"      { \"path\": \"/status\", \"op\": \"add\", \"value\": \"disabled\", \"reason\": \"reason(optional)\" },"},{"line_number":375,"context_line":"   ]"},{"line_number":376,"context_line":" }"},{"line_number":377,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_a6907443","line":374,"range":{"start_line":374,"start_character":34,"end_line":374,"end_character":37},"updated":"2019-12-13 08:15:30.000000000","message":"maybe use replace?","commit_id":"a446617c0e4d0cd4265b25a7c84d98fbcf2f0cfd"},{"author":{"_account_id":28748,"name":"chenker","email":"chen.ke14@zte.com.cn","username":"chenke"},"change_message_id":"b326d762aaa2963ba4bee443d132ba2ddccb8bf7","unresolved":false,"context_lines":[{"line_number":375,"context_line":"   ]"},{"line_number":376,"context_line":" }"},{"line_number":377,"context_line":""},{"line_number":378,"context_line":"Action: Update the device status as ``disable``. This request will invoke"},{"line_number":379,"context_line":"placement API to update the ``reserved`` field of inventories of all resource"},{"line_number":380,"context_line":"providers under this device to disable this devices from the point of view of"},{"line_number":381,"context_line":"end-users."}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_aa92b2fa","line":378,"range":{"start_line":378,"start_character":38,"end_line":378,"end_character":45},"updated":"2019-12-10 08:53:25.000000000","message":"disabled?","commit_id":"a446617c0e4d0cd4265b25a7c84d98fbcf2f0cfd"}]}
