)]}'
{"doc/source/specs/index.rst":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b5563f699416f55777a349ab6586de6e68299b00","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"   template"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Stein"},{"line_number":12,"context_line":"-----"},{"line_number":13,"context_line":"This section has a list of specs for the Stein release."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":".. toctree::"},{"line_number":16,"context_line":"   :maxdepth: 1"},{"line_number":17,"context_line":"   :glob:"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"   stein/*"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Rocky"},{"line_number":22,"context_line":"-----"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_2d44171b","line":19,"range":{"start_line":11,"start_character":0,"end_line":19,"end_character":10},"updated":"2018-08-30 07:01:13.000000000","message":"this is an unrelated change.\nthis should be in a seperate patch","commit_id":"442c86f0b18e42ce064ea8225e08ff80dd86468f"}],"doc/source/specs/stein/allocate-deallocate-api.rst":[{"author":{"_account_id":17813,"name":"wangzhh","email":"wzh_1993@126.com","username":"wangzhh"},"change_message_id":"62fdce7e5ea02fbc81b472b49e6eab1a28eb81a6","unresolved":false,"context_lines":[{"line_number":18,"context_line":"\u0027instance_uuid\u0027 field when one accelerator is allocated or deallocated."},{"line_number":19,"context_line":"In this way, we can only allocate/deallocate one acclerator during one"},{"line_number":20,"context_line":"invocation of this API. And batch allocation is not supported by"},{"line_number":21,"context_line":"this method."},{"line_number":22,"context_line":"This specs aims at implementing an understandable allocation/deallocation API"},{"line_number":23,"context_line":"in Cyborg which can support batch allocation and avoid using PATCH method in"},{"line_number":24,"context_line":"Deployable. And let other service like nova call it directly."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_8a6bd183","line":21,"updated":"2018-08-30 06:10:41.000000000","message":"Maybe not just this problem, IMHO, the more important problem is to make \u0027filter query\u0027 and \u0027allocate\u0027 as a transaction so that we can avoid some race conditions.","commit_id":"442c86f0b18e42ce064ea8225e08ff80dd86468f"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b5563f699416f55777a349ab6586de6e68299b00","unresolved":false,"context_lines":[{"line_number":17,"context_line":"At present, Cyborg provides a PATCH method in Deployable in order to update"},{"line_number":18,"context_line":"\u0027instance_uuid\u0027 field when one accelerator is allocated or deallocated."},{"line_number":19,"context_line":"In this way, we can only allocate/deallocate one acclerator during one"},{"line_number":20,"context_line":"invocation of this API. And batch allocation is not supported by"},{"line_number":21,"context_line":"this method."},{"line_number":22,"context_line":"This specs aims at implementing an understandable allocation/deallocation API"},{"line_number":23,"context_line":"in Cyborg which can support batch allocation and avoid using PATCH method in"},{"line_number":24,"context_line":"Deployable. And let other service like nova call it directly."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_0db4bbf1","line":21,"range":{"start_line":20,"start_character":25,"end_line":21,"end_character":12},"updated":"2018-08-30 07:01:13.000000000","message":"this is redundant. the previous sentance said only one allocation can be made per invocation of the api.\ni would delete this statement.","commit_id":"442c86f0b18e42ce064ea8225e08ff80dd86468f"},{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"38d7d9e247fa0853963a811d70305dbedcf0383c","unresolved":false,"context_lines":[{"line_number":18,"context_line":"\u0027instance_uuid\u0027 field when one accelerator is allocated or deallocated."},{"line_number":19,"context_line":"In this way, we can only allocate/deallocate one acclerator during one"},{"line_number":20,"context_line":"invocation of this API. And batch allocation is not supported by"},{"line_number":21,"context_line":"this method."},{"line_number":22,"context_line":"This specs aims at implementing an understandable allocation/deallocation API"},{"line_number":23,"context_line":"in Cyborg which can support batch allocation and avoid using PATCH method in"},{"line_number":24,"context_line":"Deployable. And let other service like nova call it directly."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_0aa9018f","line":21,"in_reply_to":"3f79a3b5_8a6bd183","updated":"2018-08-30 06:17:27.000000000","message":"Yes, I have mentioned it in alternative section.","commit_id":"442c86f0b18e42ce064ea8225e08ff80dd86468f"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b5563f699416f55777a349ab6586de6e68299b00","unresolved":false,"context_lines":[{"line_number":19,"context_line":"In this way, we can only allocate/deallocate one acclerator during one"},{"line_number":20,"context_line":"invocation of this API. And batch allocation is not supported by"},{"line_number":21,"context_line":"this method."},{"line_number":22,"context_line":"This specs aims at implementing an understandable allocation/deallocation API"},{"line_number":23,"context_line":"in Cyborg which can support batch allocation and avoid using PATCH method in"},{"line_number":24,"context_line":"Deployable. And let other service like nova call it directly."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Use cases"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_ad1ca7c1","line":24,"range":{"start_line":22,"start_character":1,"end_line":24,"end_character":61},"updated":"2018-08-30 07:01:13.000000000","message":"would this api allow the allocation of a specific acclerator on a speficic host or just create a db entery that say the consumer of this api has requested an acclerator fo type X which will be assigned when an instance is created that contains an identifier corresponding to this request.\n\nif its the former this will not work with the proposed nova integration model unless this is invoked by the nova-compute agent and not the end user.","commit_id":"442c86f0b18e42ce064ea8225e08ff80dd86468f"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b5563f699416f55777a349ab6586de6e68299b00","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"She has specified the type of GPU cards she want to use in flavor and send a"},{"line_number":34,"context_line":"VM creation request to nova. In this use case, nova need to call cyborg to"},{"line_number":35,"context_line":"allocate a GPU card for Alice\u0027s VM. Cyborg need provides the API to let nova"},{"line_number":36,"context_line":"invoke it."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Proposed change"},{"line_number":39,"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":1,"id":"3f79a3b5_8d052b17","line":36,"range":{"start_line":35,"start_character":36,"end_line":36,"end_character":10},"updated":"2018-08-30 07:01:13.000000000","message":"ok so this seams to answer my question on line 24.\nthis api will be invoked by nova to allocate the GPUs on a speficic host after then nova scheduler has selected the compute node on which it will launch the vm. this should be ok.","commit_id":"442c86f0b18e42ce064ea8225e08ff80dd86468f"},{"author":{"_account_id":17813,"name":"wangzhh","email":"wzh_1993@126.com","username":"wangzhh"},"change_message_id":"62fdce7e5ea02fbc81b472b49e6eab1a28eb81a6","unresolved":false,"context_lines":[{"line_number":54,"context_line":"    ["},{"line_number":55,"context_line":"    {"},{"line_number":56,"context_line":"    \"vendor\": \"8086\","},{"line_number":57,"context_line":"    \"parent_uuid\": null,"},{"line_number":58,"context_line":"    \"interface_type\": \"pci\""},{"line_number":59,"context_line":"    },"},{"line_number":60,"context_line":"    {"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_2acf1db1","line":57,"updated":"2018-08-30 06:10:41.000000000","message":"What\u0027s the usage of parent_uuid?","commit_id":"442c86f0b18e42ce064ea8225e08ff80dd86468f"},{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"38d7d9e247fa0853963a811d70305dbedcf0383c","unresolved":false,"context_lines":[{"line_number":54,"context_line":"    ["},{"line_number":55,"context_line":"    {"},{"line_number":56,"context_line":"    \"vendor\": \"8086\","},{"line_number":57,"context_line":"    \"parent_uuid\": null,"},{"line_number":58,"context_line":"    \"interface_type\": \"pci\""},{"line_number":59,"context_line":"    },"},{"line_number":60,"context_line":"    {"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_ea78452c","line":57,"in_reply_to":"3f79a3b5_2acf1db1","updated":"2018-08-30 06:17:27.000000000","message":"for example, there are two vfs and one pf in one card, vf[parant_uuid] \u003d pf.","commit_id":"442c86f0b18e42ce064ea8225e08ff80dd86468f"},{"author":{"_account_id":17813,"name":"wangzhh","email":"wzh_1993@126.com","username":"wangzhh"},"change_message_id":"f6d462db775e0a1d041c4d5f358741d7f060d54a","unresolved":false,"context_lines":[{"line_number":54,"context_line":"    ["},{"line_number":55,"context_line":"    {"},{"line_number":56,"context_line":"    \"vendor\": \"8086\","},{"line_number":57,"context_line":"    \"parent_uuid\": null,"},{"line_number":58,"context_line":"    \"interface_type\": \"pci\""},{"line_number":59,"context_line":"    },"},{"line_number":60,"context_line":"    {"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_39b695de","line":57,"in_reply_to":"3f79a3b5_ea78452c","updated":"2018-08-30 09:03:13.000000000","message":"I mean why we need a parant_uuid here? Does the allocate api need it? If so, could u give me an example. Thx.","commit_id":"442c86f0b18e42ce064ea8225e08ff80dd86468f"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b5563f699416f55777a349ab6586de6e68299b00","unresolved":false,"context_lines":[{"line_number":57,"context_line":"    \"parent_uuid\": null,"},{"line_number":58,"context_line":"    \"interface_type\": \"pci\""},{"line_number":59,"context_line":"    },"},{"line_number":60,"context_line":"    {"},{"line_number":61,"context_line":"    \"vendor\": \"8086\","},{"line_number":62,"context_line":"    \"parent_uuid\": null,"},{"line_number":63,"context_line":"    \"interface_type\": \"pci\""},{"line_number":64,"context_line":"    }"},{"line_number":65,"context_line":"    ],"},{"line_number":66,"context_line":"    \"GPU\":"},{"line_number":67,"context_line":"    ["}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_10fe0e6b","line":64,"range":{"start_line":60,"start_character":3,"end_line":64,"end_character":5},"updated":"2018-08-30 07:01:13.000000000","message":"nova will not have this level of detail.\nthe only thing nova will know about the acclerator device will be the placement resouce provider it should be allocated from and the placement resource class.\n\n\nthe request should simply be somting like this\n{ \naccelerators: [\n{\"provider_uuid\":\"uuid\",\"resource_class\":\"rc_uuid\",amount:1},],\nhost: \"host1\",\nconsumer_uuid:\"instance_uuid\"\n}\n\ni have used consumer_uuid instaed of instance_uuid to allow for other services in the future that are not nova to consume devices. for example in the future the neutron l3 agent could consume a fpga on the host to provide carrier grade nat or routing without requireing a nova instance. similarly the vpn as a service project could use it for vpn endpoint offload in which case the consuemr would also not be an instance it would be the vpn connection/router.","commit_id":"442c86f0b18e42ce064ea8225e08ff80dd86468f"},{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"26755deee14220fa64d392767986a0c509a7374d","unresolved":false,"context_lines":[{"line_number":57,"context_line":"    \"parent_uuid\": null,"},{"line_number":58,"context_line":"    \"interface_type\": \"pci\""},{"line_number":59,"context_line":"    },"},{"line_number":60,"context_line":"    {"},{"line_number":61,"context_line":"    \"vendor\": \"8086\","},{"line_number":62,"context_line":"    \"parent_uuid\": null,"},{"line_number":63,"context_line":"    \"interface_type\": \"pci\""},{"line_number":64,"context_line":"    }"},{"line_number":65,"context_line":"    ],"},{"line_number":66,"context_line":"    \"GPU\":"},{"line_number":67,"context_line":"    ["}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_3efaa9b9","line":64,"range":{"start_line":60,"start_character":3,"end_line":64,"end_character":5},"in_reply_to":"3f79a3b5_10fe0e6b","updated":"2018-09-17 06:44:46.000000000","message":"yes, i agree with you, we should replace instance by consumer in case of other services consumes the acceleration devices. \nIn term of the format of request coming in, I still think the vendor info should be passed to this API, maybe not nova to parse the placement info, it should to os-acc to provide a function to parse the placement info(trait, resource class etc to vendor info, interface_type, device type etc).","commit_id":"442c86f0b18e42ce064ea8225e08ff80dd86468f"},{"author":{"_account_id":17813,"name":"wangzhh","email":"wzh_1993@126.com","username":"wangzhh"},"change_message_id":"62fdce7e5ea02fbc81b472b49e6eab1a28eb81a6","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"* The second one is the deallocation API which allows caller to deallocate an"},{"line_number":79,"context_line":"  accelerator by instance_uuid or by deployable_uuid. It also support batch"},{"line_number":80,"context_line":"  operationi."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"  The input parameter will be instance_uuid or deployable_uuid or both of"},{"line_number":83,"context_line":"  them."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_caf6a9d9","line":80,"updated":"2018-08-30 06:10:41.000000000","message":"operation","commit_id":"442c86f0b18e42ce064ea8225e08ff80dd86468f"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b5563f699416f55777a349ab6586de6e68299b00","unresolved":false,"context_lines":[{"line_number":104,"context_line":"None"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"REST API impact"},{"line_number":108,"context_line":"---------------"},{"line_number":109,"context_line":"2 new API will be added: AllocationController and DeallocationController."},{"line_number":110,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_3086aadd","line":107,"range":{"start_line":107,"start_character":0,"end_line":107,"end_character":15},"updated":"2018-08-30 07:01:13.000000000","message":"should this be a new REST API or should this be an RPC api.\nmy understanding is that nova should only interact with cyborg via os-acc in the future. os-acc was intended to interact with cyborg via an RPC api over the rabbitmq message bus not via the rest api.\n\nos-acc could use the rest api instead but there are perfromace implication of that choice. using the message bus also has implication in terms of acess control so it may be preferable to use the rest api even if the performace is worse.","commit_id":"442c86f0b18e42ce064ea8225e08ff80dd86468f"},{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"26755deee14220fa64d392767986a0c509a7374d","unresolved":false,"context_lines":[{"line_number":104,"context_line":"None"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"REST API impact"},{"line_number":108,"context_line":"---------------"},{"line_number":109,"context_line":"2 new API will be added: AllocationController and DeallocationController."},{"line_number":110,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_de9ff562","line":107,"range":{"start_line":107,"start_character":0,"end_line":107,"end_character":15},"in_reply_to":"3f79a3b5_3086aadd","updated":"2018-09-17 06:44:46.000000000","message":"yes, i agreed with you. It should be a REST API since it is the invocation between different services.","commit_id":"442c86f0b18e42ce064ea8225e08ff80dd86468f"},{"author":{"_account_id":17813,"name":"wangzhh","email":"wzh_1993@126.com","username":"wangzhh"},"change_message_id":"62fdce7e5ea02fbc81b472b49e6eab1a28eb81a6","unresolved":false,"context_lines":[{"line_number":106,"context_line":""},{"line_number":107,"context_line":"REST API impact"},{"line_number":108,"context_line":"---------------"},{"line_number":109,"context_line":"2 new API will be added: AllocationController and DeallocationController."},{"line_number":110,"context_line":""},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"Security impact"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_6ad6752a","line":109,"updated":"2018-08-30 06:10:41.000000000","message":"I think we just need two new apis. Not two Controllers.","commit_id":"442c86f0b18e42ce064ea8225e08ff80dd86468f"},{"author":{"_account_id":17813,"name":"wangzhh","email":"wzh_1993@126.com","username":"wangzhh"},"change_message_id":"f6d462db775e0a1d041c4d5f358741d7f060d54a","unresolved":false,"context_lines":[{"line_number":106,"context_line":""},{"line_number":107,"context_line":"REST API impact"},{"line_number":108,"context_line":"---------------"},{"line_number":109,"context_line":"2 new API will be added: AllocationController and DeallocationController."},{"line_number":110,"context_line":""},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"Security impact"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_b9ce2559","line":109,"in_reply_to":"3f79a3b5_4ab619df","updated":"2018-08-30 09:03:13.000000000","message":"Of course, Plz see https://media.readthedocs.org/pdf/pecan/latest/pecan.pdf\nchapter 1.7.3","commit_id":"442c86f0b18e42ce064ea8225e08ff80dd86468f"},{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"38d7d9e247fa0853963a811d70305dbedcf0383c","unresolved":false,"context_lines":[{"line_number":106,"context_line":""},{"line_number":107,"context_line":"REST API impact"},{"line_number":108,"context_line":"---------------"},{"line_number":109,"context_line":"2 new API will be added: AllocationController and DeallocationController."},{"line_number":110,"context_line":""},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"Security impact"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_4ab619df","line":109,"in_reply_to":"3f79a3b5_6ad6752a","updated":"2018-08-30 06:17:27.000000000","message":"does pecan support two post method in one controller?","commit_id":"442c86f0b18e42ce064ea8225e08ff80dd86468f"},{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"26755deee14220fa64d392767986a0c509a7374d","unresolved":false,"context_lines":[{"line_number":106,"context_line":""},{"line_number":107,"context_line":"REST API impact"},{"line_number":108,"context_line":"---------------"},{"line_number":109,"context_line":"2 new API will be added: AllocationController and DeallocationController."},{"line_number":110,"context_line":""},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"Security impact"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_beaa3981","line":109,"in_reply_to":"3f79a3b5_b9ce2559","updated":"2018-09-17 06:44:46.000000000","message":"ok, thanks, i will improve it.","commit_id":"442c86f0b18e42ce064ea8225e08ff80dd86468f"}]}
