)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"ebbe17b596a775e57576e29b6c97ea0e854ed750","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     willthecox \u003calexwilcox06@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2021-02-18 00:19:04 -0600"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"This is the Host Extension Resource, for capstone."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I68956431b804ab8d464d530e3ffd7c5f7776eb42"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"853ba1c5_d321c892","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":50},"updated":"2021-02-18 16:22:11.000000000","message":"I would suggest a summary line like: \n\nAdding Host Extention Resource in Block Storage\n\nAnd then having other details in the body. \n\nThen you will want to link to the task like James did in his patch :)","commit_id":"692efdb6e9b993a7767b7a45f48879e3fc0b34e2"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ddb7d477832f93c4e862cb3293cbcb96f6976428","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     willthecox \u003calexwilcox06@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2021-02-18 00:19:04 -0600"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"This is the Host Extension Resource, for capstone."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I68956431b804ab8d464d530e3ffd7c5f7776eb42"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3e2abd27_bcf86c65","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":50},"in_reply_to":"853ba1c5_d321c892","updated":"2021-02-24 10:14:01.000000000","message":"Except you should write in present tense ;)\n\nhttps://stackoverflow.com/a/3580764/613428","commit_id":"692efdb6e9b993a7767b7a45f48879e3fc0b34e2"}],"openstack/block_storage/v3/_proxy.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"bf97d77768ed2e74b38d0cde4f89fe6f893d1c9e","unresolved":false,"context_lines":[{"line_number":27,"context_line":"        \"\"\"Retrieves host"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"        :returns: A Host object"},{"line_number":30,"context_line":"        :rtype: :class:`~openstack.block_storage.v3.host_extension.HostExtension`"},{"line_number":31,"context_line":"        \"\"\""},{"line_number":32,"context_line":"        return self._get(_host_extension.HostExtension, requires_id\u003dFalse)"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"ef8002fa_e57ed3fe","line":30,"in_reply_to":"b60f3403_fb74ff11","updated":"2021-03-30 13:51:06.000000000","message":"Done","commit_id":"26cfa8976a9c682656441def19d11f000ad01448"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"bf97d77768ed2e74b38d0cde4f89fe6f893d1c9e","unresolved":false,"context_lines":[{"line_number":29,"context_line":"        :returns: A Host object"},{"line_number":30,"context_line":"        :rtype: :class:`~openstack.block_storage.v3.host_extension.HostExtension`"},{"line_number":31,"context_line":"        \"\"\""},{"line_number":32,"context_line":"        return self._get(_host_extension.HostExtension, requires_id\u003dFalse)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def get_snapshot(self, snapshot):"},{"line_number":35,"context_line":"        \"\"\"Get a single snapshot"}],"source_content_type":"text/x-python","patch_set":8,"id":"18475bca_7b042f4a","line":32,"in_reply_to":"bea69565_6fabeb8e","updated":"2021-03-30 13:51:06.000000000","message":"Done","commit_id":"26cfa8976a9c682656441def19d11f000ad01448"}],"openstack/block_storage/v3/host_extension.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"73036385a0f04e2e8cb6a19a7712fa2b2e65c157","unresolved":true,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"class HostExtension(resource.Resource):"},{"line_number":18,"context_line":"    \"\"\"Host Extenstion\"\"\""},{"line_number":19,"context_line":"    resource_key \u003d \"host_extensions\""},{"line_number":20,"context_line":"    resources_key \u003d \"host_extensions\""},{"line_number":21,"context_line":"    base_path \u003d \"/host_extension\""},{"line_number":22,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"07a34f23_4ac56bb0","line":19,"range":{"start_line":19,"start_character":20,"end_line":19,"end_character":35},"updated":"2021-02-24 10:12:53.000000000","message":"Are you sure? The API says the top-level key \u0027host\u0027 for the detail route [*] and \u0027hosts\u0027 for the list route, not \u0027host_extensions\u0027 for both as you\u0027ve done here\n\nTip: In REST terminology, a list operation is typically defined as e.g. \u0027GET /resources\u0027, i.e. you\u0027re listing multiple resources. A fetch operation (a.k.a. show or detail) is typically defined as e.g. \u0027GET /resources/{id}\u0027, i.e. you\u0027re showing an individual resource whose identifier corresponds to \u0027{id}\u0027.\n\n[1] https://docs.openstack.org/api-ref/block-storage/v3/?expanded\u003dshow-host-details-for-a-project-detail#hosts-extension-os-hosts\n[2] https://docs.openstack.org/api-ref/block-storage/v3/?expanded\u003dlist-all-hosts-for-a-project-detail#hosts-extension-os-hosts","commit_id":"692efdb6e9b993a7767b7a45f48879e3fc0b34e2"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"73036385a0f04e2e8cb6a19a7712fa2b2e65c157","unresolved":true,"context_lines":[{"line_number":18,"context_line":"    \"\"\"Host Extenstion\"\"\""},{"line_number":19,"context_line":"    resource_key \u003d \"host_extensions\""},{"line_number":20,"context_line":"    resources_key \u003d \"host_extensions\""},{"line_number":21,"context_line":"    base_path \u003d \"/host_extension\""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    allow_fetch \u003d True"},{"line_number":24,"context_line":"    allow_list \u003d True"}],"source_content_type":"text/x-python","patch_set":1,"id":"01ddd52f_b9f241e8","line":21,"updated":"2021-02-24 10:12:53.000000000","message":"This says that you should make your requests to \u0027/v3/{project_id}/host_extension\u0027 (the \u0027/v3/{project_id}\u0027 piece is derived from higher up the stack - you can ignore it for now). Are you sure?","commit_id":"692efdb6e9b993a7767b7a45f48879e3fc0b34e2"},{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"fb064bac4c320fc624716f24e8dccec6b34040f4","unresolved":true,"context_lines":[{"line_number":23,"context_line":"    allow_fetch \u003d True"},{"line_number":24,"context_line":"    allow_list \u003d True"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    hosts \u003d resource.Body(\"hosts\", type\u003dobject)"},{"line_number":27,"context_line":"    service_status \u003d resource.Body(\"service-status\", type \u003d str)"},{"line_number":28,"context_line":"    service \u003d resource.Body(\"service\", type \u003d str)"},{"line_number":29,"context_line":"    zone \u003d resource.Body(\"zone\",type \u003d str)"}],"source_content_type":"text/x-python","patch_set":1,"id":"02649fd6_33e8ceea","line":26,"updated":"2021-02-25 14:29:09.000000000","message":"Please also sort attributes in alphabetical order. We also miss some comments to each attribute (\"#: Service status attribute\"). Since this comments are used in the doc generation those would not be having any description.","commit_id":"692efdb6e9b993a7767b7a45f48879e3fc0b34e2"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"73036385a0f04e2e8cb6a19a7712fa2b2e65c157","unresolved":true,"context_lines":[{"line_number":23,"context_line":"    allow_fetch \u003d True"},{"line_number":24,"context_line":"    allow_list \u003d True"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    hosts \u003d resource.Body(\"hosts\", type\u003dobject)"},{"line_number":27,"context_line":"    service_status \u003d resource.Body(\"service-status\", type \u003d str)"},{"line_number":28,"context_line":"    service \u003d resource.Body(\"service\", type \u003d str)"},{"line_number":29,"context_line":"    zone \u003d resource.Body(\"zone\",type \u003d str)"}],"source_content_type":"text/x-python","patch_set":1,"id":"df7de739_cda394f4","line":26,"updated":"2021-02-24 10:12:53.000000000","message":"This isn\u0027t necessary. openstacksdk will automatically \"unpack\" the response for you if you set the \u0027resource_key\u0027 (for detail operations) and \u0027resources_key\u0027 (for list operations) attributes.","commit_id":"692efdb6e9b993a7767b7a45f48879e3fc0b34e2"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"73036385a0f04e2e8cb6a19a7712fa2b2e65c157","unresolved":true,"context_lines":[{"line_number":24,"context_line":"    allow_list \u003d True"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    hosts \u003d resource.Body(\"hosts\", type\u003dobject)"},{"line_number":27,"context_line":"    service_status \u003d resource.Body(\"service-status\", type \u003d str)"},{"line_number":28,"context_line":"    service \u003d resource.Body(\"service\", type \u003d str)"},{"line_number":29,"context_line":"    zone \u003d resource.Body(\"zone\",type \u003d str)"},{"line_number":30,"context_line":"    service_state \u003d resource.Body(\"service-state\", stype \u003d str)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7891390d_ab732a7f","line":27,"in_reply_to":"0bd8d2e1_8ab28115","updated":"2021-02-24 10:12:53.000000000","message":"\u003e pep8: E251 unexpected spaces around keyword / parameter equals\n\nFYI pep8 doesn\u0027t expect string around keyword arguments, i.e.\n\n  BAD: x \u003d foo(bar \u003d baz)\n  OK: x \u003d foo(bar\u003dbaz)","commit_id":"692efdb6e9b993a7767b7a45f48879e3fc0b34e2"},{"author":{"_account_id":33037,"name":"Alexander Wilcox","email":"alexwilcox06@gmail.com","username":"vNexus"},"change_message_id":"88a6afc97041d2805bd006b2cdbb490db8d2f3b9","unresolved":true,"context_lines":[{"line_number":24,"context_line":"    allow_list \u003d True"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    hosts \u003d resource.Body(\"hosts\", type\u003dobject)"},{"line_number":27,"context_line":"    service_status \u003d resource.Body(\"service-status\", type \u003d str)"},{"line_number":28,"context_line":"    service \u003d resource.Body(\"service\", type \u003d str)"},{"line_number":29,"context_line":"    zone \u003d resource.Body(\"zone\",type \u003d str)"},{"line_number":30,"context_line":"    service_state \u003d resource.Body(\"service-state\", stype \u003d str)"}],"source_content_type":"text/x-python","patch_set":1,"id":"b66c5493_40471248","line":27,"in_reply_to":"0bd8d2e1_8ab28115","updated":"2021-04-01 03:34:54.000000000","message":"\u003e pep8: E251 unexpected spaces around keyword / parameter equals\n\nPlease fix.","commit_id":"692efdb6e9b993a7767b7a45f48879e3fc0b34e2"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"bf97d77768ed2e74b38d0cde4f89fe6f893d1c9e","unresolved":false,"context_lines":[{"line_number":52,"context_line":"    snapshot_count \u003d resource.Body(\"snapshot_count\", type\u003dstr)"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"class HostName(resource.Resource): # I wasn\u0027t sure how to do this so I just put something down"},{"line_number":56,"context_line":"    \"\"\"Host Extension Snapshot Info\"\"\""},{"line_number":57,"context_line":"    resource_key \u003d \"host\""},{"line_number":58,"context_line":"    resources_key \u003d \"hosts\""}],"source_content_type":"text/x-python","patch_set":8,"id":"a34c251e_ff2b6ae7","line":55,"in_reply_to":"12673d93_c16584bc","updated":"2021-03-30 13:51:06.000000000","message":"Done","commit_id":"26cfa8976a9c682656441def19d11f000ad01448"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"bf97d77768ed2e74b38d0cde4f89fe6f893d1c9e","unresolved":false,"context_lines":[{"line_number":52,"context_line":"    snapshot_count \u003d resource.Body(\"snapshot_count\", type\u003dstr)"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"class HostName(resource.Resource): # I wasn\u0027t sure how to do this so I just put something down"},{"line_number":56,"context_line":"    \"\"\"Host Extension Snapshot Info\"\"\""},{"line_number":57,"context_line":"    resource_key \u003d \"host\""},{"line_number":58,"context_line":"    resources_key \u003d \"hosts\""}],"source_content_type":"text/x-python","patch_set":8,"id":"1f786948_6eb276aa","line":55,"in_reply_to":"1ab400df_dc0b4ee8","updated":"2021-03-30 13:51:06.000000000","message":"Done","commit_id":"26cfa8976a9c682656441def19d11f000ad01448"}],"openstack/block_storage/v3/test_host_extension.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"73036385a0f04e2e8cb6a19a7712fa2b2e65c157","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"03c3abd8_24a8284d","updated":"2021-02-24 10:12:53.000000000","message":"Said this on our call last week, but this is in the wrong place. Unit tests go in \u0027openstack/tests/unit\u0027, so this should be in \u0027openstack/tests/unit/block_storage/v3/test_host_extension.py\u0027 or similar","commit_id":"692efdb6e9b993a7767b7a45f48879e3fc0b34e2"}]}
