)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":10115,"name":"Mitsuhiro Tanino","email":"mitsuhiro.tanino@lycorp.co.jp","username":"mtanino"},"change_message_id":"ae1b11958cd7f38442305dd13c06d7dd73eb620e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"b82a5e11_2a151657","updated":"2023-06-14 13:41:16.000000000","message":"Hi, Julia. Thank you for giving the quick review for our proposal. I\u0027d appreciate for your help.","commit_id":"e630fcf831b4d8e8cbc9f185a5afd00317575c34"},{"author":{"_account_id":10115,"name":"Mitsuhiro Tanino","email":"mitsuhiro.tanino@lycorp.co.jp","username":"mtanino"},"change_message_id":"175f81771d207ea37d4586483cfd954c528fe769","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"663a1426_027180da","updated":"2023-06-14 17:26:45.000000000","message":"Let me add answers for some questions.","commit_id":"e630fcf831b4d8e8cbc9f185a5afd00317575c34"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"31a25a830287d1ee28514b40c070555955569c9e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"4094a27d_1cc500fe","updated":"2023-06-10 15:42:58.000000000","message":"Overall, very informative. I think some clarification and maybe details on what might be required from projects to adopt the driver.","commit_id":"e630fcf831b4d8e8cbc9f185a5afd00317575c34"},{"author":{"_account_id":10115,"name":"Mitsuhiro Tanino","email":"mitsuhiro.tanino@lycorp.co.jp","username":"mtanino"},"change_message_id":"e7e756fb13879b408a58d9783ed3ce111ce28376","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"8befab17_264c641a","updated":"2023-06-26 12:57:57.000000000","message":"Added comments to some questions. Please take a look. Thank you.","commit_id":"67cc07b837c4611ed69d4ae8d69d84942608b656"},{"author":{"_account_id":10115,"name":"Mitsuhiro Tanino","email":"mitsuhiro.tanino@lycorp.co.jp","username":"mtanino"},"change_message_id":"2befb6736a847aac9dfafef78fdd2371d5d8170e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"14abd93e_cdbe51e7","updated":"2023-06-26 10:38:03.000000000","message":"Stephen, Takashi,\nThank you for your review and sorry for the late reply. I have addressed some comments.\n\n\u003eIt would be helpful to give a concrete example of how these would map to service of an openstack service like nova, ironic etc.\n\nFor this comment, I will take screenshot of our test Consul cluster and upload image which shows service information registered in Consul.","commit_id":"67cc07b837c4611ed69d4ae8d69d84942608b656"},{"author":{"_account_id":10115,"name":"Mitsuhiro Tanino","email":"mitsuhiro.tanino@lycorp.co.jp","username":"mtanino"},"change_message_id":"17bd115f61d4ee02fe23c5e23790375fe80c1acc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"270b65c7_e1039c25","updated":"2023-06-28 01:16:29.000000000","message":"Hi, Stephen, Julia and Takashi,\nI have addressed all of review comments. Please review again whenever you have chance.","commit_id":"6b6cf05012eac0c6950f52ac393439e01f204df5"},{"author":{"_account_id":10115,"name":"Mitsuhiro Tanino","email":"mitsuhiro.tanino@lycorp.co.jp","username":"mtanino"},"change_message_id":"b2c2251abfdca3394561830c0fb6709202ffb8d1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"90cc40e4_c9c8c0e4","updated":"2023-06-29 01:21:13.000000000","message":"Hi JayF,\nThank you for the quick review. Here is my thought for port_range option.","commit_id":"4404912cea192f4bc439c13147fd856a89528d7d"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"4c9e5d0601154ecf47acc7b96fca2467211c2f42","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"2a146acd_73f0576e","updated":"2023-06-28 17:50:20.000000000","message":"Just some thoughts.","commit_id":"4404912cea192f4bc439c13147fd856a89528d7d"},{"author":{"_account_id":10115,"name":"Mitsuhiro Tanino","email":"mitsuhiro.tanino@lycorp.co.jp","username":"mtanino"},"change_message_id":"b89787f2fae86d7ad1c725c3ffa791125d7c11a5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"dfc192c3_ad0bbb0c","updated":"2023-06-29 04:53:55.000000000","message":"Replying to some comments. Please check comments inline.","commit_id":"4404912cea192f4bc439c13147fd856a89528d7d"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"ee55b51763e18bda3a09305c98215385c56e6981","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"fac88e9b_692c599f","updated":"2023-07-26 09:51:34.000000000","message":"As promised I\u0027m merging this now.","commit_id":"b440f3dccd2edf6e55a5384b0364be69a291a8a2"},{"author":{"_account_id":20865,"name":"Gökhan","email":"gokhan.isik@tubitak.gov.tr","username":"gokhan.isik"},"change_message_id":"64d91feec38b02a24016e6d1427e1b42ed70edf6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"87b706d5_b604a90e","updated":"2023-10-04 14:37:09.000000000","message":"Hi Mitsuhiro, when will you plan to implement this spec ?\nThanks.","commit_id":"b440f3dccd2edf6e55a5384b0364be69a291a8a2"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"82f3695a17deca8ea4a565c17d56232e68842013","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"2938b803_a34327fe","updated":"2023-07-19 08:19:37.000000000","message":"I\u0027d probably propose a few modifications to make the sentences clear but that can be done as a follow-up.\nThe points we discussed at Vancouver were addressed so I\u0027m ok with merging this version so that we can start working on it.\n\nI\u0027ll hold +A now in case anyone else has last minute words but will merge the spec this week.","commit_id":"b440f3dccd2edf6e55a5384b0364be69a291a8a2"},{"author":{"_account_id":10115,"name":"Mitsuhiro Tanino","email":"mitsuhiro.tanino@lycorp.co.jp","username":"mtanino"},"change_message_id":"e1124ff06b3daccd38d84ea1479e66c78feaf3c3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"19ddaa00_599abe2d","updated":"2023-06-29 14:45:53.000000000","message":"Spec was updated based on previous review comments.","commit_id":"b440f3dccd2edf6e55a5384b0364be69a291a8a2"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3a3afb1b15a6e8f7ef0dca669fe4b05c5ca345f0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"00f641d8_c08dbf7e","updated":"2023-07-18 17:27:57.000000000","message":"There are still a few opens here but I think there\u0027s broad agreement that this is a sensible thing to do and we should look to get this in","commit_id":"b440f3dccd2edf6e55a5384b0364be69a291a8a2"},{"author":{"_account_id":10115,"name":"Mitsuhiro Tanino","email":"mitsuhiro.tanino@lycorp.co.jp","username":"mtanino"},"change_message_id":"22e95d052cdf76f7b8ad5c37893ca8ff970933d8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"7878977e_2378c765","in_reply_to":"87b706d5_b604a90e","updated":"2023-10-16 23:46:25.000000000","message":"Hi, Gökhan,\nThank you for the comment.\nHopefully, we can start code contribution from late November.","commit_id":"b440f3dccd2edf6e55a5384b0364be69a291a8a2"}],"specs/bobcat/http-driver.rst":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"31a25a830287d1ee28514b40c070555955569c9e","unresolved":true,"context_lines":[{"line_number":85,"context_line":"Main points to be improved by the architecture"},{"line_number":86,"context_line":"----------------------------------------------"},{"line_number":87,"context_line":"* Separate control plane from data plane"},{"line_number":88,"context_line":"* Allow direct API call without SPOF"},{"line_number":89,"context_line":"* Reduce RPC communication between multiple availability zones"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Responsibility of each components like followings."}],"source_content_type":"text/x-rst","patch_set":1,"id":"cfd35534_ace80942","line":88,"range":{"start_line":88,"start_character":32,"end_line":88,"end_character":36},"updated":"2023-06-10 15:42:58.000000000","message":"nit: s/SPOF/a single point of failure/","commit_id":"e630fcf831b4d8e8cbc9f185a5afd00317575c34"},{"author":{"_account_id":10115,"name":"Mitsuhiro Tanino","email":"mitsuhiro.tanino@lycorp.co.jp","username":"mtanino"},"change_message_id":"2befb6736a847aac9dfafef78fdd2371d5d8170e","unresolved":false,"context_lines":[{"line_number":85,"context_line":"Main points to be improved by the architecture"},{"line_number":86,"context_line":"----------------------------------------------"},{"line_number":87,"context_line":"* Separate control plane from data plane"},{"line_number":88,"context_line":"* Allow direct API call without SPOF"},{"line_number":89,"context_line":"* Reduce RPC communication between multiple availability zones"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Responsibility of each components like followings."}],"source_content_type":"text/x-rst","patch_set":1,"id":"d1bbdb54_00b2d394","line":88,"range":{"start_line":88,"start_character":32,"end_line":88,"end_character":36},"in_reply_to":"a1b74221_a3516d25","updated":"2023-06-26 10:38:03.000000000","message":"Done","commit_id":"e630fcf831b4d8e8cbc9f185a5afd00317575c34"},{"author":{"_account_id":10115,"name":"Mitsuhiro Tanino","email":"mitsuhiro.tanino@lycorp.co.jp","username":"mtanino"},"change_message_id":"ae1b11958cd7f38442305dd13c06d7dd73eb620e","unresolved":true,"context_lines":[{"line_number":85,"context_line":"Main points to be improved by the architecture"},{"line_number":86,"context_line":"----------------------------------------------"},{"line_number":87,"context_line":"* Separate control plane from data plane"},{"line_number":88,"context_line":"* Allow direct API call without SPOF"},{"line_number":89,"context_line":"* Reduce RPC communication between multiple availability zones"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Responsibility of each components like followings."}],"source_content_type":"text/x-rst","patch_set":1,"id":"a1b74221_a3516d25","line":88,"range":{"start_line":88,"start_character":32,"end_line":88,"end_character":36},"in_reply_to":"cfd35534_ace80942","updated":"2023-06-14 13:41:16.000000000","message":"I will update this part in next change.","commit_id":"e630fcf831b4d8e8cbc9f185a5afd00317575c34"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"67fa571b1a7606f87f3cffef71c75bef47360fc1","unresolved":true,"context_lines":[{"line_number":88,"context_line":"* Allow direct API call without SPOF"},{"line_number":89,"context_line":"* Reduce RPC communication between multiple availability zones"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Responsibility of each components like followings."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"RPC Client"},{"line_number":94,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f28761e_82d6866e","line":91,"updated":"2023-06-15 18:16:20.000000000","message":"It would be helpful to give a concrete example of how these would map to service of an openstack service like nova, ironic etc.","commit_id":"e630fcf831b4d8e8cbc9f185a5afd00317575c34"},{"author":{"_account_id":10115,"name":"Mitsuhiro Tanino","email":"mitsuhiro.tanino@lycorp.co.jp","username":"mtanino"},"change_message_id":"2befb6736a847aac9dfafef78fdd2371d5d8170e","unresolved":true,"context_lines":[{"line_number":88,"context_line":"* Allow direct API call without SPOF"},{"line_number":89,"context_line":"* Reduce RPC communication between multiple availability zones"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Responsibility of each components like followings."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"RPC Client"},{"line_number":94,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"700f9bea_4e24b6b3","line":91,"in_reply_to":"1f28761e_82d6866e","updated":"2023-06-26 10:38:03.000000000","message":"Thank you for the comment. I will update our Consul cluster\u0027s Screen shot to understand the mapping information of OpenStack service.","commit_id":"e630fcf831b4d8e8cbc9f185a5afd00317575c34"},{"author":{"_account_id":10115,"name":"Mitsuhiro Tanino","email":"mitsuhiro.tanino@lycorp.co.jp","username":"mtanino"},"change_message_id":"17bd115f61d4ee02fe23c5e23790375fe80c1acc","unresolved":false,"context_lines":[{"line_number":88,"context_line":"* Allow direct API call without SPOF"},{"line_number":89,"context_line":"* Reduce RPC communication between multiple availability zones"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Responsibility of each components like followings."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"RPC Client"},{"line_number":94,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"cc9ef619_04f4ce4e","line":91,"in_reply_to":"700f9bea_4e24b6b3","updated":"2023-06-28 01:16:29.000000000","message":"Done. Please check latest commit.","commit_id":"e630fcf831b4d8e8cbc9f185a5afd00317575c34"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"67fa571b1a7606f87f3cffef71c75bef47360fc1","unresolved":true,"context_lines":[{"line_number":103,"context_line":""},{"line_number":104,"context_line":"When the RPC server starts, the server registers its RPC server"},{"line_number":105,"context_line":"information to Consul cluster as Consul\u0027s \"service\"."},{"line_number":106,"context_line":"Also the PRC Server works as ``Push Style``, not polly style."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"For RPC client/server communication over HTTP with RESTful API, OpenAPI"},{"line_number":109,"context_line":"allows us to define formatted RESTful API definition easily. Once API"}],"source_content_type":"text/x-rst","patch_set":1,"id":"a13b16aa_3cde0168","line":106,"range":{"start_line":106,"start_character":49,"end_line":106,"end_character":54},"updated":"2023-06-15 18:16:20.000000000","message":"poll ?","commit_id":"e630fcf831b4d8e8cbc9f185a5afd00317575c34"},{"author":{"_account_id":10115,"name":"Mitsuhiro Tanino","email":"mitsuhiro.tanino@lycorp.co.jp","username":"mtanino"},"change_message_id":"2befb6736a847aac9dfafef78fdd2371d5d8170e","unresolved":false,"context_lines":[{"line_number":103,"context_line":""},{"line_number":104,"context_line":"When the RPC server starts, the server registers its RPC server"},{"line_number":105,"context_line":"information to Consul cluster as Consul\u0027s \"service\"."},{"line_number":106,"context_line":"Also the PRC Server works as ``Push Style``, not polly style."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"For RPC client/server communication over HTTP with RESTful API, OpenAPI"},{"line_number":109,"context_line":"allows us to define formatted RESTful API definition easily. Once API"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fd6d47f3_1c5bc7d5","line":106,"range":{"start_line":106,"start_character":49,"end_line":106,"end_character":54},"in_reply_to":"a13b16aa_3cde0168","updated":"2023-06-26 10:38:03.000000000","message":"Done","commit_id":"e630fcf831b4d8e8cbc9f185a5afd00317575c34"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"31a25a830287d1ee28514b40c070555955569c9e","unresolved":true,"context_lines":[{"line_number":105,"context_line":"information to Consul cluster as Consul\u0027s \"service\"."},{"line_number":106,"context_line":"Also the PRC Server works as ``Push Style``, not polly style."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"For RPC client/server communication over HTTP with RESTful API, OpenAPI"},{"line_number":109,"context_line":"allows us to define formatted RESTful API definition easily. Once API"},{"line_number":110,"context_line":"definition is generated, it can be launched as http server using"},{"line_number":111,"context_line":"Web framework and WSGI server. For example, they are candidate for Web"}],"source_content_type":"text/x-rst","patch_set":1,"id":"075fe05c_552f88c4","line":108,"range":{"start_line":108,"start_character":64,"end_line":108,"end_character":71},"updated":"2023-06-10 15:42:58.000000000","message":"So would the OpenAPI interface just be a generic payload wrapper, or would projects need to define their RPC commands/methods/interactions/versions in OpenAPI? I ask because it seems like it could be a substantial barrier to entry and we do want to keep the barrier to adoption/use a minimum.","commit_id":"e630fcf831b4d8e8cbc9f185a5afd00317575c34"},{"author":{"_account_id":10115,"name":"Mitsuhiro Tanino","email":"mitsuhiro.tanino@lycorp.co.jp","username":"mtanino"},"change_message_id":"ae1b11958cd7f38442305dd13c06d7dd73eb620e","unresolved":true,"context_lines":[{"line_number":105,"context_line":"information to Consul cluster as Consul\u0027s \"service\"."},{"line_number":106,"context_line":"Also the PRC Server works as ``Push Style``, not polly style."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"For RPC client/server communication over HTTP with RESTful API, OpenAPI"},{"line_number":109,"context_line":"allows us to define formatted RESTful API definition easily. Once API"},{"line_number":110,"context_line":"definition is generated, it can be launched as http server using"},{"line_number":111,"context_line":"Web framework and WSGI server. For example, they are candidate for Web"}],"source_content_type":"text/x-rst","patch_set":1,"id":"de362a92_c8de559d","line":108,"range":{"start_line":108,"start_character":64,"end_line":108,"end_character":71},"in_reply_to":"075fe05c_552f88c4","updated":"2023-06-14 13:41:16.000000000","message":"\u003e would the OpenAPI interface just be a generic payload wrapper,\n\nYes, this is correct. For RPC communication, OpenStack supports these 3 type of RPCs, then we needed to implement these 3 methods with some argument by using OpenAPI or any other API schema definition.\n(1) Call\n(2) Cast\n(3) Cast fanout\n\nEven though each project enables oslo-http driver, user project side of oslo.messaging functionality such as Ironic, Nova, Neutron etc does not need to modify RPC request logic. Just run cctxt.call, cctxt.cast same as in previous.","commit_id":"e630fcf831b4d8e8cbc9f185a5afd00317575c34"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"67fa571b1a7606f87f3cffef71c75bef47360fc1","unresolved":true,"context_lines":[{"line_number":111,"context_line":"Web framework and WSGI server. For example, they are candidate for Web"},{"line_number":112,"context_line":"framework and WSGI server to enable HTTP client and server."},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"* Web famework: connexion"},{"line_number":115,"context_line":"* WSGI server: eventlet"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"Consul"}],"source_content_type":"text/x-rst","patch_set":1,"id":"f97a6eef_3f84de06","line":114,"range":{"start_line":114,"start_character":16,"end_line":114,"end_character":25},"updated":"2023-06-15 18:16:20.000000000","message":"Can you link to https://connexion.readthedocs.io/en/latest/","commit_id":"e630fcf831b4d8e8cbc9f185a5afd00317575c34"},{"author":{"_account_id":10115,"name":"Mitsuhiro Tanino","email":"mitsuhiro.tanino@lycorp.co.jp","username":"mtanino"},"change_message_id":"2befb6736a847aac9dfafef78fdd2371d5d8170e","unresolved":false,"context_lines":[{"line_number":111,"context_line":"Web framework and WSGI server. For example, they are candidate for Web"},{"line_number":112,"context_line":"framework and WSGI server to enable HTTP client and server."},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"* Web famework: connexion"},{"line_number":115,"context_line":"* WSGI server: eventlet"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"Consul"}],"source_content_type":"text/x-rst","patch_set":1,"id":"f4169d05_9d51975d","line":114,"range":{"start_line":114,"start_character":16,"end_line":114,"end_character":25},"in_reply_to":"f97a6eef_3f84de06","updated":"2023-06-26 10:38:03.000000000","message":"Done","commit_id":"e630fcf831b4d8e8cbc9f185a5afd00317575c34"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"67fa571b1a7606f87f3cffef71c75bef47360fc1","unresolved":true,"context_lines":[{"line_number":114,"context_line":"* Web famework: connexion"},{"line_number":115,"context_line":"* WSGI server: eventlet"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"Consul"},{"line_number":118,"context_line":"------"},{"line_number":119,"context_line":"Store the RPC server information"},{"line_number":120,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"0b03acf3_1fdfc339","line":117,"range":{"start_line":117,"start_character":0,"end_line":117,"end_character":6},"updated":"2023-06-15 18:16:20.000000000","message":"To be clear, you\u0027re referring to Hashicorp Consul, yes? https://developer.hashicorp.com/consul/api-docs","commit_id":"e630fcf831b4d8e8cbc9f185a5afd00317575c34"},{"author":{"_account_id":10115,"name":"Mitsuhiro Tanino","email":"mitsuhiro.tanino@lycorp.co.jp","username":"mtanino"},"change_message_id":"2befb6736a847aac9dfafef78fdd2371d5d8170e","unresolved":false,"context_lines":[{"line_number":114,"context_line":"* Web famework: connexion"},{"line_number":115,"context_line":"* WSGI server: eventlet"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"Consul"},{"line_number":118,"context_line":"------"},{"line_number":119,"context_line":"Store the RPC server information"},{"line_number":120,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"b1fbcf60_7e4b71b7","line":117,"range":{"start_line":117,"start_character":0,"end_line":117,"end_character":6},"in_reply_to":"0b03acf3_1fdfc339","updated":"2023-06-26 10:38:03.000000000","message":"Done","commit_id":"e630fcf831b4d8e8cbc9f185a5afd00317575c34"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"31a25a830287d1ee28514b40c070555955569c9e","unresolved":true,"context_lines":[{"line_number":120,"context_line":""},{"line_number":121,"context_line":"The server information includes following items."},{"line_number":122,"context_line":"oslo.messaging layer information(exchange, topic and server)"},{"line_number":123,"context_line":"RPC server information (IP address, port and etc)."},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"HTTP Broadcaster"},{"line_number":126,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"6fa6449a_fd04c638","line":123,"updated":"2023-06-10 15:42:58.000000000","message":"If I\u0027m understanding this correctly, to use we would need this component and it would superscede \"services\" tables? Or at least perform the needful mapping. In ironic\u0027s case, we just store it in our conductor\u0027s table and we use that as our starting point, however we\u0027re explicitly not supporting some of the use models available with message buses with our JSON-RPC usage. I guess I\u0027m just worried we\u0027re creating another Single Point of Failure with additional complexity.","commit_id":"e630fcf831b4d8e8cbc9f185a5afd00317575c34"},{"author":{"_account_id":10115,"name":"Mitsuhiro Tanino","email":"mitsuhiro.tanino@lycorp.co.jp","username":"mtanino"},"change_message_id":"ae1b11958cd7f38442305dd13c06d7dd73eb620e","unresolved":true,"context_lines":[{"line_number":120,"context_line":""},{"line_number":121,"context_line":"The server information includes following items."},{"line_number":122,"context_line":"oslo.messaging layer information(exchange, topic and server)"},{"line_number":123,"context_line":"RPC server information (IP address, port and etc)."},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"HTTP Broadcaster"},{"line_number":126,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"d5b51a13_c58c0e39","line":123,"in_reply_to":"6fa6449a_fd04c638","updated":"2023-06-14 13:41:16.000000000","message":"\u003e Or at least perform the needful mapping. \n\nI think this matches the purpose of Consul.\n\nLet me explain using Nova\u0027s case.\nFor example, if the new nova-compute starts up, it registers nova-compute (hypervisor) information to Nova\u0027s database. IIUC, this data is \"services\" tables information.\nThe \"services\" tables information is higher priority than information stored inside Consul.\n\nIn our current architecture, when a RPC server starts up, the service like nova-compute register own information into \"services\" table same as current situation, and also oslo-http driver registers endpoint information like hostname and port number for nova-compute\u0027s RPC communication into Consul.\n\nAfter that when a new instance creation happens, nova-schedule decides the target hypervisor from \"services\" table, then nova-conductor tries to send a call RPC message to lunch new instance by fetching nova-compute endpoint information from Consul, and use it for call RPC.\nSo I suppose endpoint information stored in Consul is used with mapping \"services\" table and actual endpoint URL.","commit_id":"e630fcf831b4d8e8cbc9f185a5afd00317575c34"},{"author":{"_account_id":10115,"name":"Mitsuhiro Tanino","email":"mitsuhiro.tanino@lycorp.co.jp","username":"mtanino"},"change_message_id":"b89787f2fae86d7ad1c725c3ffa791125d7c11a5","unresolved":true,"context_lines":[{"line_number":120,"context_line":""},{"line_number":121,"context_line":"The server information includes following items."},{"line_number":122,"context_line":"oslo.messaging layer information(exchange, topic and server)"},{"line_number":123,"context_line":"RPC server information (IP address, port and etc)."},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"HTTP Broadcaster"},{"line_number":126,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fd29ac00_39113da0","line":123,"in_reply_to":"b821d590_ae0f0a84","updated":"2023-06-29 04:53:55.000000000","message":"I will add reply to the second thread.\nhttps://review.opendev.org/c/openstack/oslo-specs/+/885809/comment/6bbdecf2_840361e0/","commit_id":"e630fcf831b4d8e8cbc9f185a5afd00317575c34"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"4c9e5d0601154ecf47acc7b96fca2467211c2f42","unresolved":true,"context_lines":[{"line_number":120,"context_line":""},{"line_number":121,"context_line":"The server information includes following items."},{"line_number":122,"context_line":"oslo.messaging layer information(exchange, topic and server)"},{"line_number":123,"context_line":"RPC server information (IP address, port and etc)."},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"HTTP Broadcaster"},{"line_number":126,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"b821d590_ae0f0a84","line":123,"in_reply_to":"d5b51a13_c58c0e39","updated":"2023-06-28 17:50:20.000000000","message":"This added dependency will really limit the value of this integration. If we can find an alternate solution that doesn\u0027t add an additional service it\u0027d be extremely beneficial.","commit_id":"e630fcf831b4d8e8cbc9f185a5afd00317575c34"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"31a25a830287d1ee28514b40c070555955569c9e","unresolved":true,"context_lines":[{"line_number":124,"context_line":""},{"line_number":125,"context_line":"HTTP Broadcaster"},{"line_number":126,"context_line":"----------------"},{"line_number":127,"context_line":"An amplifier for an HTTP request"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"HTTP protocol doesn\u0027t have broadcast mechanism though the oslo"},{"line_number":130,"context_line":"RPC has Cast Fanout RPC."},{"line_number":131,"context_line":"The Broadcaster sends an in-coming RPC to all target RPC servers."},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"Alternatives"},{"line_number":134,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a4411aa_9ab2ecbc","line":131,"range":{"start_line":127,"start_character":0,"end_line":131,"end_character":65},"updated":"2023-06-10 15:42:58.000000000","message":"Question not for the authors, but reviewers: Do we actually have code which requires fanout calls?","commit_id":"e630fcf831b4d8e8cbc9f185a5afd00317575c34"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"c47445f98732b1ad798fbefddf40f253d0ce1b69","unresolved":true,"context_lines":[{"line_number":124,"context_line":""},{"line_number":125,"context_line":"HTTP Broadcaster"},{"line_number":126,"context_line":"----------------"},{"line_number":127,"context_line":"An amplifier for an HTTP request"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"HTTP protocol doesn\u0027t have broadcast mechanism though the oslo"},{"line_number":130,"context_line":"RPC has Cast Fanout RPC."},{"line_number":131,"context_line":"The Broadcaster sends an in-coming RPC to all target RPC servers."},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"Alternatives"},{"line_number":134,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab363b9_ec57eefe","line":131,"range":{"start_line":127,"start_character":0,"end_line":131,"end_character":65},"in_reply_to":"7a4411aa_9ab2ecbc","updated":"2023-06-15 18:07:55.000000000","message":"AFAIK Neutorn are heavily relying on it. For example in ml2+ovs fanount is used to broad cast the message so that all agents set up vxlan tunneling.\n\nIt seems nova has a few fanout calls to trigger update in all schedulers at once.\n\nhttps://github.com/openstack/nova/blob/308633f93aef5823ba0e03cb5284ed8f647af7e8/nova/scheduler/rpcapi.py#L162-L185","commit_id":"e630fcf831b4d8e8cbc9f185a5afd00317575c34"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"31a25a830287d1ee28514b40c070555955569c9e","unresolved":true,"context_lines":[{"line_number":137,"context_line":"-----------------------------------"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"In above architecture, Consul is chosen because it supports healthcheck"},{"line_number":140,"context_line":"mechanism and multi DC federation so that these features enable user to"},{"line_number":141,"context_line":"monitor RPC server status easily, and scale out easily to support large"},{"line_number":142,"context_line":"scale OpenStack. But alternatively, managing service endpoint using DNS"},{"line_number":143,"context_line":"or registering data into Redis cluster similar to ZeroMQ are another"}],"source_content_type":"text/x-rst","patch_set":1,"id":"34f62151_8c5ab242","line":140,"range":{"start_line":140,"start_character":14,"end_line":140,"end_character":33},"updated":"2023-06-10 15:42:58.000000000","message":"Do any OpenStack services actually leverage such style of calls?","commit_id":"e630fcf831b4d8e8cbc9f185a5afd00317575c34"},{"author":{"_account_id":10115,"name":"Mitsuhiro Tanino","email":"mitsuhiro.tanino@lycorp.co.jp","username":"mtanino"},"change_message_id":"e7e756fb13879b408a58d9783ed3ce111ce28376","unresolved":true,"context_lines":[{"line_number":137,"context_line":"-----------------------------------"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"In above architecture, Consul is chosen because it supports healthcheck"},{"line_number":140,"context_line":"mechanism and multi DC federation so that these features enable user to"},{"line_number":141,"context_line":"monitor RPC server status easily, and scale out easily to support large"},{"line_number":142,"context_line":"scale OpenStack. But alternatively, managing service endpoint using DNS"},{"line_number":143,"context_line":"or registering data into Redis cluster similar to ZeroMQ are another"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9a59d995_824d7215","line":140,"range":{"start_line":140,"start_character":14,"end_line":140,"end_character":33},"in_reply_to":"34f62151_8c5ab242","updated":"2023-06-26 12:57:57.000000000","message":"For example, Nova\u0027s Availability Zones is a feature to partition cloud using location such as country, datacenter, rack or network layer etc.\nIn such case, Consul\u0027s multi DC federation matches to federate multiple datacenter\u0027s information into one large Consul cluster.\n\nThis is just a sample of usage of Consul.","commit_id":"e630fcf831b4d8e8cbc9f185a5afd00317575c34"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"31a25a830287d1ee28514b40c070555955569c9e","unresolved":true,"context_lines":[{"line_number":140,"context_line":"mechanism and multi DC federation so that these features enable user to"},{"line_number":141,"context_line":"monitor RPC server status easily, and scale out easily to support large"},{"line_number":142,"context_line":"scale OpenStack. But alternatively, managing service endpoint using DNS"},{"line_number":143,"context_line":"or registering data into Redis cluster similar to ZeroMQ are another"},{"line_number":144,"context_line":"choices."},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"Cast Fanout support design"},{"line_number":147,"context_line":"--------------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"6bbdecf2_840361e0","line":144,"range":{"start_line":143,"start_character":3,"end_line":144,"end_character":8},"updated":"2023-06-10 15:42:58.000000000","message":"I\u0027m not precisely sure about this, but internally most services may already have this data today minus ports. It could be a logical barrier to entry to support.","commit_id":"e630fcf831b4d8e8cbc9f185a5afd00317575c34"},{"author":{"_account_id":10115,"name":"Mitsuhiro Tanino","email":"mitsuhiro.tanino@lycorp.co.jp","username":"mtanino"},"change_message_id":"b89787f2fae86d7ad1c725c3ffa791125d7c11a5","unresolved":true,"context_lines":[{"line_number":140,"context_line":"mechanism and multi DC federation so that these features enable user to"},{"line_number":141,"context_line":"monitor RPC server status easily, and scale out easily to support large"},{"line_number":142,"context_line":"scale OpenStack. But alternatively, managing service endpoint using DNS"},{"line_number":143,"context_line":"or registering data into Redis cluster similar to ZeroMQ are another"},{"line_number":144,"context_line":"choices."},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"Cast Fanout support design"},{"line_number":147,"context_line":"--------------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"a022cadb_a242aa54","line":144,"range":{"start_line":143,"start_character":3,"end_line":144,"end_character":8},"in_reply_to":"3bb94d8a_ebbec496","updated":"2023-06-29 04:53:55.000000000","message":"Yes, using the Consul will introduces another middleware dependency instead of RabbitMQ. The main proposal of this spec is to propose a new oslo.messaging driver which separates service discovery feature and real RPC data transfer protocol.\n\nAs we wrote it in the Alternative section and you mentioned, the service discovery feature can be implemented by DNS or Keystone catalog instead of the Consul. Each middleware has different advantages and dis-advantages.\n\nIn case of using Keystone catalog, one of advantage is no extra dependency but one of disadvantage is the service catalog list becomes so big in case of 1,000 hypervisors deployment. In case of the Consul, one clear advantage is Consul has health check feature but it introduces package dependency.\n\nWe can develop the service discovery feature code with backend selection-able implementation. Let me update this spec to mention the backend select-ability.","commit_id":"e630fcf831b4d8e8cbc9f185a5afd00317575c34"},{"author":{"_account_id":10115,"name":"Mitsuhiro Tanino","email":"mitsuhiro.tanino@lycorp.co.jp","username":"mtanino"},"change_message_id":"e7e756fb13879b408a58d9783ed3ce111ce28376","unresolved":true,"context_lines":[{"line_number":140,"context_line":"mechanism and multi DC federation so that these features enable user to"},{"line_number":141,"context_line":"monitor RPC server status easily, and scale out easily to support large"},{"line_number":142,"context_line":"scale OpenStack. But alternatively, managing service endpoint using DNS"},{"line_number":143,"context_line":"or registering data into Redis cluster similar to ZeroMQ are another"},{"line_number":144,"context_line":"choices."},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"Cast Fanout support design"},{"line_number":147,"context_line":"--------------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"92aac781_d303899e","line":144,"range":{"start_line":143,"start_character":3,"end_line":144,"end_character":8},"in_reply_to":"6bbdecf2_840361e0","updated":"2023-06-26 12:57:57.000000000","message":"When using RabbitMQ cluster, queue with specific name used by RPC client and server is stored in RabbitMQ automatically. For RPC communication additional information such as queue or destination host and port are required.\nZeroMQ(deprecated) case, seems Redis was used for mach maker data store for RPC client and server.\nhttps://docs.openstack.org/oslo.messaging/ocata/zmq_driver.html\n\nIn our case, we chose to store RPC server information into Consul instead of modifying DB schema to of each OpenStack services.","commit_id":"e630fcf831b4d8e8cbc9f185a5afd00317575c34"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"4c9e5d0601154ecf47acc7b96fca2467211c2f42","unresolved":true,"context_lines":[{"line_number":140,"context_line":"mechanism and multi DC federation so that these features enable user to"},{"line_number":141,"context_line":"monitor RPC server status easily, and scale out easily to support large"},{"line_number":142,"context_line":"scale OpenStack. But alternatively, managing service endpoint using DNS"},{"line_number":143,"context_line":"or registering data into Redis cluster similar to ZeroMQ are another"},{"line_number":144,"context_line":"choices."},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"Cast Fanout support design"},{"line_number":147,"context_line":"--------------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3bb94d8a_ebbec496","line":144,"range":{"start_line":143,"start_character":3,"end_line":144,"end_character":8},"in_reply_to":"92aac781_d303899e","updated":"2023-06-28 17:50:20.000000000","message":"Working out this dependency is the key to this being successful and getting operational uptake.\n\nThis may be worth thinking about with a slightly wider scope: in an OpenStack installation using a keystonemiddleware talking to OIDC with no keystone service; where will the service catalog live? There\u0027s some synergy here. (Honestly, we could even consider putting this registry in keystone as an option; but I think we\u0027d prefer not to)","commit_id":"e630fcf831b4d8e8cbc9f185a5afd00317575c34"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"31a25a830287d1ee28514b40c070555955569c9e","unresolved":true,"context_lines":[{"line_number":202,"context_line":"Security impact"},{"line_number":203,"context_line":"---------------"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"* None."},{"line_number":206,"context_line":"* OpenAPI supports SSL based communication between client and server."},{"line_number":207,"context_line":"  This enables secure RPC communication same as other messaging drivers."},{"line_number":208,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"1af1d3cc_c5e7a6bd","line":205,"range":{"start_line":205,"start_character":0,"end_line":205,"end_character":7},"updated":"2023-06-10 15:42:58.000000000","message":"I would remove this line :)","commit_id":"e630fcf831b4d8e8cbc9f185a5afd00317575c34"},{"author":{"_account_id":10115,"name":"Mitsuhiro Tanino","email":"mitsuhiro.tanino@lycorp.co.jp","username":"mtanino"},"change_message_id":"ae1b11958cd7f38442305dd13c06d7dd73eb620e","unresolved":true,"context_lines":[{"line_number":202,"context_line":"Security impact"},{"line_number":203,"context_line":"---------------"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"* None."},{"line_number":206,"context_line":"* OpenAPI supports SSL based communication between client and server."},{"line_number":207,"context_line":"  This enables secure RPC communication same as other messaging drivers."},{"line_number":208,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"a86202d5_5463b246","line":205,"range":{"start_line":205,"start_character":0,"end_line":205,"end_character":7},"in_reply_to":"1af1d3cc_c5e7a6bd","updated":"2023-06-14 13:41:16.000000000","message":"Ack","commit_id":"e630fcf831b4d8e8cbc9f185a5afd00317575c34"},{"author":{"_account_id":10115,"name":"Mitsuhiro Tanino","email":"mitsuhiro.tanino@lycorp.co.jp","username":"mtanino"},"change_message_id":"2befb6736a847aac9dfafef78fdd2371d5d8170e","unresolved":false,"context_lines":[{"line_number":202,"context_line":"Security impact"},{"line_number":203,"context_line":"---------------"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"* None."},{"line_number":206,"context_line":"* OpenAPI supports SSL based communication between client and server."},{"line_number":207,"context_line":"  This enables secure RPC communication same as other messaging drivers."},{"line_number":208,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"842e3600_bf457735","line":205,"range":{"start_line":205,"start_character":0,"end_line":205,"end_character":7},"in_reply_to":"a86202d5_5463b246","updated":"2023-06-26 10:38:03.000000000","message":"Done","commit_id":"e630fcf831b4d8e8cbc9f185a5afd00317575c34"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"31a25a830287d1ee28514b40c070555955569c9e","unresolved":true,"context_lines":[{"line_number":222,"context_line":".. code-block:: ini"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"  [oslo_messaging_http]"},{"line_number":225,"context_line":"  port_range\u003d20000:20100"},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"  [consul]"},{"line_number":228,"context_line":"  port \u003d 8500"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ed79b153_1369cfc0","line":225,"updated":"2023-06-10 15:42:58.000000000","message":"Would it be possible to get some description of what the configuration represents? Specifically, I\u0027m wondering why a range is even required.","commit_id":"e630fcf831b4d8e8cbc9f185a5afd00317575c34"},{"author":{"_account_id":10115,"name":"Mitsuhiro Tanino","email":"mitsuhiro.tanino@lycorp.co.jp","username":"mtanino"},"change_message_id":"b2c2251abfdca3394561830c0fb6709202ffb8d1","unresolved":true,"context_lines":[{"line_number":222,"context_line":".. code-block:: ini"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"  [oslo_messaging_http]"},{"line_number":225,"context_line":"  port_range\u003d20000:20100"},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"  [consul]"},{"line_number":228,"context_line":"  port \u003d 8500"}],"source_content_type":"text/x-rst","patch_set":1,"id":"b3ad7281_44b721c8","line":225,"in_reply_to":"35a98874_5b5795ed","updated":"2023-06-29 01:21:13.000000000","message":"For port_range, I\u0027d suggest following spec to reduce complexity of this option.\n\n1. If the port_range is not defined, unused ephemeral port is chosen randomly.\n   For most of user case, this satisfies the requirement.\n2. If the port_range is defined, RPC server pick port from the specified range during service launch.\n\n\u003eIs it not possible to limit these connections to a single dest port on each host?\n\nLet me explain the background of this option.\nFor example, Nova has \"conductor.workers\" config parameter and Neutron-server has \"rpc_workers\" config parameter. By specifying more than \"1\" for these configs, multiple RPC workers are launched on single host.\nTherefore, from RPC client-server communication perspective, each RPC worker must have individual destination port number to launch it on a host.\n\nAnd purpose of port_range is to support secure cloud environment which strictly manages network communication using dest/source port at firewall, it would be better that default behavior is random choice from unused ephemeral port.","commit_id":"e630fcf831b4d8e8cbc9f185a5afd00317575c34"},{"author":{"_account_id":10115,"name":"Mitsuhiro Tanino","email":"mitsuhiro.tanino@lycorp.co.jp","username":"mtanino"},"change_message_id":"e1124ff06b3daccd38d84ea1479e66c78feaf3c3","unresolved":false,"context_lines":[{"line_number":222,"context_line":".. code-block:: ini"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"  [oslo_messaging_http]"},{"line_number":225,"context_line":"  port_range\u003d20000:20100"},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"  [consul]"},{"line_number":228,"context_line":"  port \u003d 8500"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7910ec3b_c2d83c0f","line":225,"in_reply_to":"61e3e15c_a37e9cff","updated":"2023-06-29 14:45:53.000000000","message":"Done","commit_id":"e630fcf831b4d8e8cbc9f185a5afd00317575c34"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"4c9e5d0601154ecf47acc7b96fca2467211c2f42","unresolved":true,"context_lines":[{"line_number":222,"context_line":".. code-block:: ini"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"  [oslo_messaging_http]"},{"line_number":225,"context_line":"  port_range\u003d20000:20100"},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"  [consul]"},{"line_number":228,"context_line":"  port \u003d 8500"}],"source_content_type":"text/x-rst","patch_set":1,"id":"35a98874_5b5795ed","line":225,"in_reply_to":"9c429a3f_02867258","updated":"2023-06-28 17:50:20.000000000","message":"Is it not possible to limit these connections to a single dest port on each host? If we\u0027re requiring bidirectional RPC access be opened between services that may lead to more installation complexity.","commit_id":"e630fcf831b4d8e8cbc9f185a5afd00317575c34"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"4d1d458bfd5fe423c8be94adcc76858cc5e9b0dd","unresolved":true,"context_lines":[{"line_number":222,"context_line":".. code-block:: ini"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"  [oslo_messaging_http]"},{"line_number":225,"context_line":"  port_range\u003d20000:20100"},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"  [consul]"},{"line_number":228,"context_line":"  port \u003d 8500"}],"source_content_type":"text/x-rst","patch_set":1,"id":"f13eae89_a1bf3d34","line":225,"in_reply_to":"b3ad7281_44b721c8","updated":"2023-06-29 03:29:32.000000000","message":"Okay, this makes a lot more sense now. Can we put all of that information, especially the nova example, into the spec? We should also ensure to be extra-verbose when documenting these configuration options so it\u0027s clear what\u0027s going on.","commit_id":"e630fcf831b4d8e8cbc9f185a5afd00317575c34"},{"author":{"_account_id":10115,"name":"Mitsuhiro Tanino","email":"mitsuhiro.tanino@lycorp.co.jp","username":"mtanino"},"change_message_id":"175f81771d207ea37d4586483cfd954c528fe769","unresolved":true,"context_lines":[{"line_number":222,"context_line":".. code-block:: ini"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"  [oslo_messaging_http]"},{"line_number":225,"context_line":"  port_range\u003d20000:20100"},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"  [consul]"},{"line_number":228,"context_line":"  port \u003d 8500"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9c429a3f_02867258","line":225,"in_reply_to":"ed79b153_1369cfc0","updated":"2023-06-14 17:26:45.000000000","message":"The port_range is used to launch RPC server which is used to access from RPC client with hostname like \u003chsotname\u003e:\u003cport\u003e style.\n\nLimiting port_range is introduced for security reason to support precise access control from RPC client access. But I suppose this is optional feature.","commit_id":"e630fcf831b4d8e8cbc9f185a5afd00317575c34"},{"author":{"_account_id":10115,"name":"Mitsuhiro Tanino","email":"mitsuhiro.tanino@lycorp.co.jp","username":"mtanino"},"change_message_id":"b89787f2fae86d7ad1c725c3ffa791125d7c11a5","unresolved":true,"context_lines":[{"line_number":222,"context_line":".. code-block:: ini"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"  [oslo_messaging_http]"},{"line_number":225,"context_line":"  port_range\u003d20000:20100"},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"  [consul]"},{"line_number":228,"context_line":"  port \u003d 8500"}],"source_content_type":"text/x-rst","patch_set":1,"id":"61e3e15c_a37e9cff","line":225,"in_reply_to":"f13eae89_a1bf3d34","updated":"2023-06-29 04:53:55.000000000","message":"Yes. I\u0027ll add these comments into spec.","commit_id":"e630fcf831b4d8e8cbc9f185a5afd00317575c34"},{"author":{"_account_id":10115,"name":"Mitsuhiro Tanino","email":"mitsuhiro.tanino@lycorp.co.jp","username":"mtanino"},"change_message_id":"175f81771d207ea37d4586483cfd954c528fe769","unresolved":true,"context_lines":[{"line_number":230,"context_line":"  token \u003d \u003cConsul token\u003e"},{"line_number":231,"context_line":"  check_timeout \u003d 60s"},{"line_number":232,"context_line":"  check_deregister \u003d 30m"},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"  [http_driver]"},{"line_number":235,"context_line":"  http_token \u003d \u003cToken to access OpenAPI server\u003e"},{"line_number":236,"context_line":"  http_api_config_file \u003d \u003cOpenAPI definition\u003e"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba06bfa8_f1752440","line":233,"updated":"2023-06-14 17:26:45.000000000","message":"Parameters in [consul] section are used for access to Consul or health check from Consul.\n\nport: Consul\u0027s port number which is used to fetch endpoint information from RPC client or register RPC information from RPC server.\n\ncheck_timeout: Health check configuration from Consul cluster to RPC server.\nOnce this timeout is passed without health check response, endpoint is automatically marked as down status and client can not get this endpoint from list.\n\ncheck_deregister: If the RPC server does not respond health check more than this time, the endpoint is removed automatically from Consul.","commit_id":"e630fcf831b4d8e8cbc9f185a5afd00317575c34"},{"author":{"_account_id":10115,"name":"Mitsuhiro Tanino","email":"mitsuhiro.tanino@lycorp.co.jp","username":"mtanino"},"change_message_id":"e1124ff06b3daccd38d84ea1479e66c78feaf3c3","unresolved":false,"context_lines":[{"line_number":230,"context_line":"  token \u003d \u003cConsul token\u003e"},{"line_number":231,"context_line":"  check_timeout \u003d 60s"},{"line_number":232,"context_line":"  check_deregister \u003d 30m"},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"  [http_driver]"},{"line_number":235,"context_line":"  http_token \u003d \u003cToken to access OpenAPI server\u003e"},{"line_number":236,"context_line":"  http_api_config_file \u003d \u003cOpenAPI definition\u003e"}],"source_content_type":"text/x-rst","patch_set":1,"id":"6d1e96bf_cc2850ac","line":233,"in_reply_to":"ba06bfa8_f1752440","updated":"2023-06-29 14:45:53.000000000","message":"Done","commit_id":"e630fcf831b4d8e8cbc9f185a5afd00317575c34"},{"author":{"_account_id":10115,"name":"Mitsuhiro Tanino","email":"mitsuhiro.tanino@lycorp.co.jp","username":"mtanino"},"change_message_id":"175f81771d207ea37d4586483cfd954c528fe769","unresolved":true,"context_lines":[{"line_number":238,"context_line":"  ssl_certfile \u003d \u003cPath for SSL Cert file\u003e"},{"line_number":239,"context_line":"  ssl_keyfile \u003d  \u003cPath for SSL Key file\u003e"},{"line_number":240,"context_line":"  listen_timeout \u003d 60"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"Developer Impact"},{"line_number":244,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a81d925_f38b50f8","line":241,"updated":"2023-06-14 17:26:45.000000000","message":"Parameters in [http_driver] section is used for launching RPC server using OpenAPI.\n\nlisten_timeout: OpenAPI server\u0027s listen timeout until callback function for RPC request returns the execution result.","commit_id":"e630fcf831b4d8e8cbc9f185a5afd00317575c34"},{"author":{"_account_id":10115,"name":"Mitsuhiro Tanino","email":"mitsuhiro.tanino@lycorp.co.jp","username":"mtanino"},"change_message_id":"e1124ff06b3daccd38d84ea1479e66c78feaf3c3","unresolved":false,"context_lines":[{"line_number":238,"context_line":"  ssl_certfile \u003d \u003cPath for SSL Cert file\u003e"},{"line_number":239,"context_line":"  ssl_keyfile \u003d  \u003cPath for SSL Key file\u003e"},{"line_number":240,"context_line":"  listen_timeout \u003d 60"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"Developer Impact"},{"line_number":244,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"85e11706_3efb5795","line":241,"in_reply_to":"1a81d925_f38b50f8","updated":"2023-06-29 14:45:53.000000000","message":"Done","commit_id":"e630fcf831b4d8e8cbc9f185a5afd00317575c34"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"9bff77047b258b90b27e372f136e9355ed9a6781","unresolved":true,"context_lines":[{"line_number":250,"context_line":"Testing Impact"},{"line_number":251,"context_line":"--------------"},{"line_number":252,"context_line":""},{"line_number":253,"context_line":"Basic unit test and functional test will be implemented."},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"Implementation"},{"line_number":256,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"47da4af5_0795233b","line":253,"range":{"start_line":253,"start_character":20,"end_line":253,"end_character":30},"updated":"2023-06-15 18:37:31.000000000","message":"integration test (using DevStack)","commit_id":"e630fcf831b4d8e8cbc9f185a5afd00317575c34"},{"author":{"_account_id":10115,"name":"Mitsuhiro Tanino","email":"mitsuhiro.tanino@lycorp.co.jp","username":"mtanino"},"change_message_id":"2befb6736a847aac9dfafef78fdd2371d5d8170e","unresolved":false,"context_lines":[{"line_number":250,"context_line":"Testing Impact"},{"line_number":251,"context_line":"--------------"},{"line_number":252,"context_line":""},{"line_number":253,"context_line":"Basic unit test and functional test will be implemented."},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"Implementation"},{"line_number":256,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"f5166785_8d336c31","line":253,"range":{"start_line":253,"start_character":20,"end_line":253,"end_character":30},"in_reply_to":"47da4af5_0795233b","updated":"2023-06-26 10:38:03.000000000","message":"Done","commit_id":"e630fcf831b4d8e8cbc9f185a5afd00317575c34"}]}
