)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"efa200daf6ef11ab4dd354ef9c10ddf7d084ee6f","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     Sergey Drozdov \u003csergey.drozdov.dev@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2022-10-06 17:33:38 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add tempest api tests for shared zones"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Author: Igor Malinovskiy \u003cu.glide@gmail.com\u003e"},{"line_number":10,"context_line":"Co-Authored-By: Sergey Drozdov \u003csergey.drozdov.dev@gmail.com, sergey.drozdov93@thehutgroup.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"090e4cce_b11e64a9","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":38},"updated":"2023-01-10 14:33:11.000000000","message":"In addition to API testing this patch is also covers some Scenario testing. I\u0027d recommend providing a bit more information about this patch in commit message.","commit_id":"ee37abd331eeff8244dff1122948510aa8c17357"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"01a7209fe257409742b4fe407b145fbbeb82f8a3","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Sergey Drozdov \u003csergey.drozdov.dev@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2022-10-06 17:33:38 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add tempest api tests for shared zones"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Author: Igor Malinovskiy \u003cu.glide@gmail.com\u003e"},{"line_number":10,"context_line":"Co-Authored-By: Sergey Drozdov \u003csergey.drozdov.dev@gmail.com, sergey.drozdov93@thehutgroup.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"f8de45d9_5ba82c10","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":38},"in_reply_to":"090e4cce_b11e64a9","updated":"2023-02-10 23:37:26.000000000","message":"Done","commit_id":"ee37abd331eeff8244dff1122948510aa8c17357"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":5572,"name":"Don Kehn","display_name":"DEKehn","email":"dekehn@gmail.com","username":"dekehn"},"change_message_id":"ab207394774678e6afd7c227a7a7439db7fc7a4a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"bfd3c0c0_c896c994","updated":"2022-09-29 21:33:20.000000000","message":"If your just working though this you might set the WIP (Work In Progress). Because its failing the tox -e pep8:\nFlake8 Results\n+-----------------------------------------------------------------+------+--------+------------+----------------------------------------+----------------------------------------------------------------+\n| File                                                            | Line | Column | Error Code | Error Message                          | Code                                                           |\n+-----------------------------------------------------------------+------+--------+------------+----------------------------------------+----------------------------------------------------------------+\n| designate_tempest_plugin/clients.py                             |  42  |   31   |    F821    | undefined name \u0027DomainsClient\u0027         | self.domains_client \u003d DomainsClient(**params)                  |\n| designate_tempest_plugin/clients.py                             |  43  |   31   |    F821    | undefined name \u0027RecordsClient\u0027         | self.records_client \u003d RecordsClient(**params)                  |\n| designate_tempest_plugin/clients.py                             |  44  |   31   |    F821    | undefined name \u0027ServersClient\u0027         | self.servers_client \u003d ServersClient(**params)                  |\n| designate_tempest_plugin/clients.py                             |  67  |   36   |    F821    | undefined name \u0027ZoneImportsClient\u0027     | self.zone_imports_client \u003d ZoneImportsClient(**params)         |\n| designate_tempest_plugin/clients.py                             |  69  |   30   |    F821    | undefined name \u0027QuotasClient\u0027          | self.quotas_client \u003d QuotasClient(**params)                    |\n| designate_tempest_plugin/clients.py                             |  70  |   36   |    F821    | undefined name \u0027ZoneExportsClient\u0027     | self.zone_exports_client \u003d ZoneExportsClient(**params)         |\n| designate_tempest_plugin/clients.py                             |  74  |   40   |    F821    | undefined name \u0027TransferRequestClient\u0027 | self.transfer_request_client \u003d TransferRequestClient(**params) |\n| designate_tempest_plugin/clients.py                             |  75  |   39   |    F821    | undefined name \u0027TransferAcceptClient\u0027  | self.transfer_accept_client \u003d TransferAcceptClient(**params)   |\n| designate_tempest_plugin/clients.py                             |  76  |   31   |    F821    | undefined name \u0027TsigkeyClient\u0027         | self.tsigkey_client \u003d TsigkeyClient(**params)                  |\n| designate_tempest_plugin/clients.py                             |  79  |   29   |    F821    | undefined name \u0027QueryClient\u0027           | self.query_client \u003d QueryClient(                               |\n| designate_tempest_plugin/clients.py                             | 106  |   30   |    F821    | undefined name \u0027AdminQuotaClient\u0027      | self.quotas_client \u003d AdminQuotaClient(**params)                |\n| designate_tempest_plugin/tests/scenario/v2/test_zones_export.py |  59  |   5    |    E303    | too many blank lines (2)               | def _create_zone_export(self, test_name):                      |\n| designate_tempest_plugin/tests/scenario/v2/test_zones_export.py |  74  |   5    |    E303    | too many blank lines (2)               | def _zone_export_test(self, zone, client\u003dNone):                |\n| designate_tempest_plugin/tests/scenario/v2/test_zones_export.py |  84  |   9    |    E303    | too many blank lines (2)               | self.assertEqual(const.PENDING, zone_export[\u0027status\u0027])         |\n| designate_tempest_plugin/tests/scenario/v2/test_zones_export.py | 109  |   5    |    E303    | too many blank lines (2)               | @decorators.attr(type\u003d\u0027slow\u0027)                                  |\n| designate_tempest_plugin/tests/scenario/v2/test_zones_export.py | 270  |   73   |    W292    | no newline at end of file              | f\"Failed, missing record: {r} in zone file\")                   |\n+-----------------------------------------------------------------+------+--------+------------+----------------------------------------+----------------------------------------------------------------+\nERROR: InvocationError for command /usr/bin/sh tools/pretty_flake8.sh (exited with code 1)\n\n\nAnd the tempest test :\n[stack@ospr1-069 tempest] (master) \u003e tox -r -v -e all-plugin -- designate_tempest_plugin.tests.scenario.v2.test_zones_export\n\u003d\u003d\u003d\u003d\u003d\u003d\nTotals\n\u003d\u003d\u003d\u003d\u003d\u003d\nRan: 7 tests in 158.9057 sec.\n - Passed: 5\n - Skipped: 0\n - Expected Fail: 0\n - Unexpected Success: 0\n - Failed: 2\nSum of execute time for each test: 158.8836 sec.\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nWorker Balance\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n - Worker 0 (7 tests) \u003d\u003e 0:02:38.905670\n\n{0} designate_tempest_plugin.tests.scenario.v2.test_zones_export.ZonesExportTest.test_create_shared_zone_export_and_show_exported_zonefile [0.231369s] ... FAILED\n......","commit_id":"90271d1c96bcc51f7b4ce7e16d1d81d802577123"},{"author":{"_account_id":5572,"name":"Don Kehn","display_name":"DEKehn","email":"dekehn@gmail.com","username":"dekehn"},"change_message_id":"a3e0a62c6dd4c6540a6318a0d5361d7007486f8b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"1884196f_bc65055a","updated":"2022-09-29 22:04:11.000000000","message":"Missed the https://review.opendev.org/c/openstack/designate/+/726334, requirement.","commit_id":"90271d1c96bcc51f7b4ce7e16d1d81d802577123"},{"author":{"_account_id":5572,"name":"Don Kehn","display_name":"DEKehn","email":"dekehn@gmail.com","username":"dekehn"},"change_message_id":"ccb1712e6352bf527f91ad146e51de411f998e09","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"9708363a_640256ff","updated":"2022-09-29 22:26:42.000000000","message":"see previous tox errors","commit_id":"90271d1c96bcc51f7b4ce7e16d1d81d802577123"},{"author":{"_account_id":35041,"name":"Sergey Drozdov","email":"sergey.drozdov.dev@gmail.com","username":"drozdov"},"change_message_id":"b84f44d0e03e79c538fc1f20721b9ae4b2d53771","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"63ab8bf7_28bb3a5c","updated":"2022-10-02 01:34:27.000000000","message":"I don\u0027t think I can set it to WIP as I am not the owner; correct me if I can please. \nIve resolved all of the previous concerns; I would appreciate it if you have any others. In the mean time I\u0027ll continue working on this to make the rest of the tests pass! Thank you in advance !","commit_id":"d7b187e143e56ad93ba2c90f96580cd79bc9b8ea"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"626fffc0d151d90ea560151758032ce51eb2b329","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"04c26bb8_38885a2a","updated":"2022-10-04 18:05:44.000000000","message":"I think we have some work to do here, but a good start.","commit_id":"d7b187e143e56ad93ba2c90f96580cd79bc9b8ea"},{"author":{"_account_id":35041,"name":"Sergey Drozdov","email":"sergey.drozdov.dev@gmail.com","username":"drozdov"},"change_message_id":"78cf260b10a4774aa965b09aa7df4116b748bf58","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"600e35b1_33bd4a2d","updated":"2022-10-06 16:35:04.000000000","message":"First 13 fixed. Need to prepare a better testing environment to finish the others.","commit_id":"ee37abd331eeff8244dff1122948510aa8c17357"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"efa200daf6ef11ab4dd354ef9c10ddf7d084ee6f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"7a14b82d_c89e85ee","updated":"2023-01-10 14:33:11.000000000","message":"Hi Igor!\n\nIt\u0027s a great patch!\nAdditional work needs to be done to get it merged.\n\nThanks! ","commit_id":"ee37abd331eeff8244dff1122948510aa8c17357"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"fccd4a1e70555d81805754b113c6abee0d220dc1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"cca3c344_704c5bc2","updated":"2023-02-07 18:22:55.000000000","message":"This needs work","commit_id":"69498fc07d65ef1f0ff410c488d932f57d087231"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"33ea2c603b45b25be5b1bd2b95166e62ee835609","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"a3a8148c_892a029b","updated":"2023-02-08 23:57:37.000000000","message":"Still a lot of work left to do here.\nBasic API tests should now be good.","commit_id":"8ecc0501941b878099cd9997b31fe779907e88ea"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"49a960b28989309d2a601cdc183061a253b24ef5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"0605d588_af3b7e50","updated":"2023-02-10 23:38:14.000000000","message":"We still need to add some scenario tests here.","commit_id":"596250195e3a07e8f97a88d7cd4cafe09f8ee4fa"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"ff0361d351dc0beb045c816436e75d535d0099b8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"7a917bdd_8160611d","updated":"2023-02-14 01:55:13.000000000","message":"recheck\nfound typo in main patch","commit_id":"2116d79d052401656c0a8eb8cbc87e7189aeb6d3"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"f2ce6315729720bf3d9755d77e7193fd4f3a604a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"56fc8d57_c6d7293d","updated":"2023-02-20 07:35:00.000000000","message":"recheck","commit_id":"24908b7841bff294f267abaac173e974d89d79c7"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"f2825819a437dd492d4897cebd26e251836ec44e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"a689f0fb_2658a794","updated":"2023-02-19 10:07:42.000000000","message":"recheck\n\nRecheck the result, not so clear why we got: \n\"AttributeError: \u0027ZonesTest\u0027 object has no attribute \u0027client\"\nfor zone update, especially when the same client was used to create a zone in a few lines above the update :-( \n","commit_id":"24908b7841bff294f267abaac173e974d89d79c7"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"ca111ebee848cccdd1d1c023ff85a2fef1321cf9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"c6d9d8be_eb3076b2","updated":"2023-02-19 18:17:29.000000000","message":"recheck\n\nRecheck the results after fixing some \"missing clients\" issues in: \"Add API version check capabilities\" patch.","commit_id":"24908b7841bff294f267abaac173e974d89d79c7"},{"author":{"_account_id":5572,"name":"Don Kehn","display_name":"DEKehn","email":"dekehn@gmail.com","username":"dekehn"},"change_message_id":"1a3f66093ee0e7f29de5ef7103ac907ec3551076","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"f708cd5c_fffb74f9","updated":"2023-02-22 18:58:35.000000000","message":"LGTM - not sure what to add , but a lot of good work here.","commit_id":"46bd9589f85a303dc0aa02979f09805b8ce5413f"},{"author":{"_account_id":19298,"name":"Nicolas Bock","email":"nicolas.bock@canonical.com","username":"nicolasbock"},"change_message_id":"fbebd841dbe22d1980dce079ae8c6f74cc332467","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"118a4a93_772a3592","updated":"2023-02-22 00:41:38.000000000","message":"LGTM. Just found one spelling issue.","commit_id":"46bd9589f85a303dc0aa02979f09805b8ce5413f"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"3d3239f860657b0d1656650e878f8bd5993b4d8c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"53ad2c1c_5ad9417c","updated":"2023-02-23 09:15:03.000000000","message":"We are missing workflow flag to get this patch merged 😊","commit_id":"46bd9589f85a303dc0aa02979f09805b8ce5413f"},{"author":{"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"},"change_message_id":"c4c4afafc77313fa5405e85eb80472b07739e9f5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"d378a49e_09dca405","updated":"2023-02-23 20:24:10.000000000","message":"recheck DesignatePtrRecord","commit_id":"a84e3194adf72fb2eb87f0c563065bb089b0d192"}],"designate_tempest_plugin/clients.py":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"626fffc0d151d90ea560151758032ce51eb2b329","unresolved":true,"context_lines":[{"line_number":15,"context_line":"from tempest import config"},{"line_number":16,"context_line":"from tempest.lib import auth"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from designate_tempest_plugin.services.dns.admin.json.quotas_client \\"},{"line_number":19,"context_line":"    import QuotasClient as AdminQuotaClient"},{"line_number":20,"context_line":"from designate_tempest_plugin.services.dns.v2.json.blacklists_client \\"},{"line_number":21,"context_line":"    import BlacklistsClient"}],"source_content_type":"text/x-python","patch_set":8,"id":"d885d67b_6cd6f964","line":18,"updated":"2022-10-04 18:05:44.000000000","message":"This looks like a bad rebase. Much of this was removed to instead use the tempest framework for client access[1].\n[1] https://review.opendev.org/c/openstack/designate-tempest-plugin/+/800280","commit_id":"d7b187e143e56ad93ba2c90f96580cd79bc9b8ea"},{"author":{"_account_id":35041,"name":"Sergey Drozdov","email":"sergey.drozdov.dev@gmail.com","username":"drozdov"},"change_message_id":"78cf260b10a4774aa965b09aa7df4116b748bf58","unresolved":false,"context_lines":[{"line_number":15,"context_line":"from tempest import config"},{"line_number":16,"context_line":"from tempest.lib import auth"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from designate_tempest_plugin.services.dns.admin.json.quotas_client \\"},{"line_number":19,"context_line":"    import QuotasClient as AdminQuotaClient"},{"line_number":20,"context_line":"from designate_tempest_plugin.services.dns.v2.json.blacklists_client \\"},{"line_number":21,"context_line":"    import BlacklistsClient"}],"source_content_type":"text/x-python","patch_set":8,"id":"86d44dfc_1a3c824a","line":18,"in_reply_to":"d885d67b_6cd6f964","updated":"2022-10-06 16:35:04.000000000","message":"Done","commit_id":"d7b187e143e56ad93ba2c90f96580cd79bc9b8ea"}],"designate_tempest_plugin/common/models.py":[{"author":{"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"},"change_message_id":"838d0c5046094a3d76eee01c9cafdc84223eb338","unresolved":false,"context_lines":[{"line_number":83,"context_line":"        # assumes no parentheses in the record, all on a single line."},{"line_number":84,"context_line":"        parts \u003d [x for x in text.split(\u0027 \u0027, 4) if x.strip()]"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"        # NOTE(imalinovskiy): remove TTL if any"},{"line_number":87,"context_line":"        if len(parts) \u003e 4:"},{"line_number":88,"context_line":"            parts.pop(1)"},{"line_number":89,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_a65b7852","line":86,"updated":"2020-07-24 20:35:24.000000000","message":"What is the reason for this?","commit_id":"4f6a8b0a24c38769c19daca188fd2c793bd2ac60"}],"designate_tempest_plugin/services/dns/v2/json/shared_zones_client.py":[{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"efa200daf6ef11ab4dd354ef9c10ddf7d084ee6f","unresolved":true,"context_lines":[{"line_number":18,"context_line":"class SharedZonesClient(base.DnsClientV2Base):"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"    @base.handle_errors"},{"line_number":21,"context_line":"    def share_zone(self, zone_id, target_project_id):"},{"line_number":22,"context_line":"        \"\"\""},{"line_number":23,"context_line":"        :param zone_id: Zone UUID to share"},{"line_number":24,"context_line":"        :param target_project_id: Project ID that will gain access to specified"}],"source_content_type":"text/x-python","patch_set":9,"id":"af6e2236_11fbc7d5","line":21,"range":{"start_line":21,"start_character":8,"end_line":21,"end_character":18},"updated":"2023-01-10 14:33:11.000000000","message":"Let\u0027s change it to \"create_shared_zone\" just like all other APIs that are having: Create, Show, Update and Delete.","commit_id":"ee37abd331eeff8244dff1122948510aa8c17357"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"33ea2c603b45b25be5b1bd2b95166e62ee835609","unresolved":false,"context_lines":[{"line_number":18,"context_line":"class SharedZonesClient(base.DnsClientV2Base):"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"    @base.handle_errors"},{"line_number":21,"context_line":"    def share_zone(self, zone_id, target_project_id):"},{"line_number":22,"context_line":"        \"\"\""},{"line_number":23,"context_line":"        :param zone_id: Zone UUID to share"},{"line_number":24,"context_line":"        :param target_project_id: Project ID that will gain access to specified"}],"source_content_type":"text/x-python","patch_set":9,"id":"8b3f9531_b25cf547","line":21,"range":{"start_line":21,"start_character":8,"end_line":21,"end_character":18},"in_reply_to":"af6e2236_11fbc7d5","updated":"2023-02-08 23:57:37.000000000","message":"Done","commit_id":"ee37abd331eeff8244dff1122948510aa8c17357"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"efa200daf6ef11ab4dd354ef9c10ddf7d084ee6f","unresolved":true,"context_lines":[{"line_number":20,"context_line":"    @base.handle_errors"},{"line_number":21,"context_line":"    def share_zone(self, zone_id, target_project_id):"},{"line_number":22,"context_line":"        \"\"\""},{"line_number":23,"context_line":"        :param zone_id: Zone UUID to share"},{"line_number":24,"context_line":"        :param target_project_id: Project ID that will gain access to specified"},{"line_number":25,"context_line":"               zone"},{"line_number":26,"context_line":"        :return: Zone dict"},{"line_number":27,"context_line":"        \"\"\""},{"line_number":28,"context_line":"        resp, body \u003d self._create_request("},{"line_number":29,"context_line":"            \u0027zones/share\u0027, data\u003d{"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f75dafd_e64c9865","line":26,"range":{"start_line":23,"start_character":0,"end_line":26,"end_character":26},"updated":"2023-01-10 14:33:11.000000000","message":"This Doc string (unlike: List, Show and Delete) starts with param and it\u0027s missing some basic description that could be something like: \"Create shared zone for target project\"","commit_id":"ee37abd331eeff8244dff1122948510aa8c17357"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"33ea2c603b45b25be5b1bd2b95166e62ee835609","unresolved":false,"context_lines":[{"line_number":20,"context_line":"    @base.handle_errors"},{"line_number":21,"context_line":"    def share_zone(self, zone_id, target_project_id):"},{"line_number":22,"context_line":"        \"\"\""},{"line_number":23,"context_line":"        :param zone_id: Zone UUID to share"},{"line_number":24,"context_line":"        :param target_project_id: Project ID that will gain access to specified"},{"line_number":25,"context_line":"               zone"},{"line_number":26,"context_line":"        :return: Zone dict"},{"line_number":27,"context_line":"        \"\"\""},{"line_number":28,"context_line":"        resp, body \u003d self._create_request("},{"line_number":29,"context_line":"            \u0027zones/share\u0027, data\u003d{"}],"source_content_type":"text/x-python","patch_set":9,"id":"abd8faef_268788f5","line":26,"range":{"start_line":23,"start_character":0,"end_line":26,"end_character":26},"in_reply_to":"3f75dafd_e64c9865","updated":"2023-02-08 23:57:37.000000000","message":"Done","commit_id":"ee37abd331eeff8244dff1122948510aa8c17357"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"efa200daf6ef11ab4dd354ef9c10ddf7d084ee6f","unresolved":true,"context_lines":[{"line_number":56,"context_line":"        return self._list_request(\u0027zones/share\u0027, params\u003dparams)"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    @base.handle_errors"},{"line_number":59,"context_line":"    def unshare_zone(self, uuid):"},{"line_number":60,"context_line":"        \"\"\"Deletes the shared zone with the specified UUID."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        :param uuid: The unique identifier of the shared zone."}],"source_content_type":"text/x-python","patch_set":9,"id":"615742ee_2f1c9282","line":59,"range":{"start_line":59,"start_character":8,"end_line":59,"end_character":20},"updated":"2023-01-10 14:33:11.000000000","message":"\"delete_shared_zone\", same reason as in L21","commit_id":"ee37abd331eeff8244dff1122948510aa8c17357"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"33ea2c603b45b25be5b1bd2b95166e62ee835609","unresolved":false,"context_lines":[{"line_number":56,"context_line":"        return self._list_request(\u0027zones/share\u0027, params\u003dparams)"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    @base.handle_errors"},{"line_number":59,"context_line":"    def unshare_zone(self, uuid):"},{"line_number":60,"context_line":"        \"\"\"Deletes the shared zone with the specified UUID."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        :param uuid: The unique identifier of the shared zone."}],"source_content_type":"text/x-python","patch_set":9,"id":"d2c712a3_0b365e75","line":59,"range":{"start_line":59,"start_character":8,"end_line":59,"end_character":20},"in_reply_to":"615742ee_2f1c9282","updated":"2023-02-08 23:57:37.000000000","message":"Done","commit_id":"ee37abd331eeff8244dff1122948510aa8c17357"},{"author":{"_account_id":19298,"name":"Nicolas Bock","email":"nicolas.bock@canonical.com","username":"nicolasbock"},"change_message_id":"fbebd841dbe22d1980dce079ae8c6f74cc332467","unresolved":true,"context_lines":[{"line_number":51,"context_line":"        \"\"\"List zone shares"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"        :param zone_id: Zone UUID to query for the shares"},{"line_number":54,"context_line":"        :param params: A Python dict that represents the query paramaters to"},{"line_number":55,"context_line":"                       include in the request URI."},{"line_number":56,"context_line":"        :return: Zone shares list."},{"line_number":57,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":16,"id":"422123df_a864ff31","line":54,"range":{"start_line":54,"start_character":63,"end_line":54,"end_character":73},"updated":"2023-02-22 00:41:38.000000000","message":"Spelling: s/paramaters/parameters/","commit_id":"46bd9589f85a303dc0aa02979f09805b8ce5413f"}],"designate_tempest_plugin/tests/api/v2/test_shared_zones.py":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"626fffc0d151d90ea560151758032ce51eb2b329","unresolved":true,"context_lines":[{"line_number":52,"context_line":"        cls.zone_client \u003d cls.os_primary.zones_client"},{"line_number":53,"context_line":"        cls.recordset_client \u003d cls.os_primary.recordset_client"},{"line_number":54,"context_line":"        cls.client \u003d cls.os_primary.shared_zones_client"},{"line_number":55,"context_line":"        cls.target_client \u003d cls.os_alt.shared_zones_client"},{"line_number":56,"context_line":"        cls.target_zone_client \u003d cls.os_alt.zones_client"},{"line_number":57,"context_line":"        cls.target_recordset_client \u003d cls.os_alt.recordset_client"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"5efa93bb_ef20db4f","line":55,"updated":"2022-10-04 18:05:44.000000000","message":"target_client is inconsistent with the owner_client from the other test changes.\nI would recommend we align on using the tempest credential \"alt\" as the prefix here, just so it is clear which project is being used.","commit_id":"d7b187e143e56ad93ba2c90f96580cd79bc9b8ea"},{"author":{"_account_id":35041,"name":"Sergey Drozdov","email":"sergey.drozdov.dev@gmail.com","username":"drozdov"},"change_message_id":"78cf260b10a4774aa965b09aa7df4116b748bf58","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        cls.zone_client \u003d cls.os_primary.zones_client"},{"line_number":53,"context_line":"        cls.recordset_client \u003d cls.os_primary.recordset_client"},{"line_number":54,"context_line":"        cls.client \u003d cls.os_primary.shared_zones_client"},{"line_number":55,"context_line":"        cls.target_client \u003d cls.os_alt.shared_zones_client"},{"line_number":56,"context_line":"        cls.target_zone_client \u003d cls.os_alt.zones_client"},{"line_number":57,"context_line":"        cls.target_recordset_client \u003d cls.os_alt.recordset_client"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"0f85c8a1_1f458629","line":55,"in_reply_to":"5efa93bb_ef20db4f","updated":"2022-10-06 16:35:04.000000000","message":"Done","commit_id":"d7b187e143e56ad93ba2c90f96580cd79bc9b8ea"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"626fffc0d151d90ea560151758032ce51eb2b329","unresolved":true,"context_lines":[{"line_number":59,"context_line":"    def _share_zone(self, cleanup\u003dTrue):"},{"line_number":60,"context_line":"        LOG.info(\u0027Create a shared zone\u0027)"},{"line_number":61,"context_line":"        _, shared_zone \u003d self.client.share_zone("},{"line_number":62,"context_line":"            self.zone[\u0027id\u0027], self.target_zone_client.tenant_id"},{"line_number":63,"context_line":"        )"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        if cleanup:"}],"source_content_type":"text/x-python","patch_set":8,"id":"846d2ffe_edb47f18","line":62,"updated":"2022-10-04 18:05:44.000000000","message":"tenant_id -\u003e project_id","commit_id":"d7b187e143e56ad93ba2c90f96580cd79bc9b8ea"},{"author":{"_account_id":35041,"name":"Sergey Drozdov","email":"sergey.drozdov.dev@gmail.com","username":"drozdov"},"change_message_id":"78cf260b10a4774aa965b09aa7df4116b748bf58","unresolved":false,"context_lines":[{"line_number":59,"context_line":"    def _share_zone(self, cleanup\u003dTrue):"},{"line_number":60,"context_line":"        LOG.info(\u0027Create a shared zone\u0027)"},{"line_number":61,"context_line":"        _, shared_zone \u003d self.client.share_zone("},{"line_number":62,"context_line":"            self.zone[\u0027id\u0027], self.target_zone_client.tenant_id"},{"line_number":63,"context_line":"        )"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        if cleanup:"}],"source_content_type":"text/x-python","patch_set":8,"id":"d70b7a85_8a6a438d","line":62,"in_reply_to":"846d2ffe_edb47f18","updated":"2022-10-06 16:35:04.000000000","message":"Done","commit_id":"d7b187e143e56ad93ba2c90f96580cd79bc9b8ea"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"626fffc0d151d90ea560151758032ce51eb2b329","unresolved":true,"context_lines":[{"line_number":63,"context_line":"        )"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        if cleanup:"},{"line_number":66,"context_line":"            self.addCleanup(self.client.unshare_zone, shared_zone[\u0027id\u0027])"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        return shared_zone"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"ac4f2e4b_2fb3be40","line":66,"updated":"2022-10-04 18:05:44.000000000","message":"We really should always have a cleanup hook. In case the tests fails for some reason prior to the \"unshare_zone\" call.\nWe can handle this by adding an option to the unshare_zone client that indicates if it is ok for the zone to already be unshared or if it should be an error.\nThat is if the API raises an error instead of silently ignore extra \"unshare_zone\" calls.","commit_id":"d7b187e143e56ad93ba2c90f96580cd79bc9b8ea"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"01a7209fe257409742b4fe407b145fbbeb82f8a3","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        )"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        if cleanup:"},{"line_number":66,"context_line":"            self.addCleanup(self.client.unshare_zone, shared_zone[\u0027id\u0027])"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        return shared_zone"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"fc28d17c_e554f7be","line":66,"in_reply_to":"ac4f2e4b_2fb3be40","updated":"2023-02-10 23:37:26.000000000","message":"Done","commit_id":"d7b187e143e56ad93ba2c90f96580cd79bc9b8ea"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"626fffc0d151d90ea560151758032ce51eb2b329","unresolved":true,"context_lines":[{"line_number":93,"context_line":"        self._share_zone()"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"        # Create recordset from guest tenant"},{"line_number":96,"context_line":"        self._create_recordset(self.target_recordset_client)"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"        LOG.info(\u0027Ensure target tenant has access to shared zone\u0027)"},{"line_number":99,"context_line":"        _, zone \u003d self.target_zone_client.show_zone(self.zone[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":8,"id":"445759ef_4cdd564a","line":96,"updated":"2022-10-04 18:05:44.000000000","message":"guest/target/alt we should be consistent in the naming for clarity.","commit_id":"d7b187e143e56ad93ba2c90f96580cd79bc9b8ea"},{"author":{"_account_id":35041,"name":"Sergey Drozdov","email":"sergey.drozdov.dev@gmail.com","username":"drozdov"},"change_message_id":"78cf260b10a4774aa965b09aa7df4116b748bf58","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        self._share_zone()"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"        # Create recordset from guest tenant"},{"line_number":96,"context_line":"        self._create_recordset(self.target_recordset_client)"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"        LOG.info(\u0027Ensure target tenant has access to shared zone\u0027)"},{"line_number":99,"context_line":"        _, zone \u003d self.target_zone_client.show_zone(self.zone[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":8,"id":"1e3d168a_4df26b82","line":96,"in_reply_to":"445759ef_4cdd564a","updated":"2022-10-06 16:35:04.000000000","message":"Done","commit_id":"d7b187e143e56ad93ba2c90f96580cd79bc9b8ea"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"626fffc0d151d90ea560151758032ce51eb2b329","unresolved":true,"context_lines":[{"line_number":99,"context_line":"        _, zone \u003d self.target_zone_client.show_zone(self.zone[\u0027id\u0027])"},{"line_number":100,"context_line":"        self.assertTrue(zone.get(\u0027shared\u0027))"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"        _, body \u003d self.target_zone_client.list_zones()"},{"line_number":103,"context_line":"        self.assertEqual(1, len(body[\u0027zones\u0027]))"},{"line_number":104,"context_line":"        shared_zone_from_list \u003d body[\u0027zones\u0027][0]"},{"line_number":105,"context_line":"        self.assertTrue(shared_zone_from_list.get(\u0027shared\u0027))"}],"source_content_type":"text/x-python","patch_set":8,"id":"b6c05dbe_c5d953fc","line":102,"updated":"2022-10-04 18:05:44.000000000","message":"This is getting a bit like a scenario test instead of just an API test.\nIt might be better to narrow the scope of testing here to the API actions themselves and basic validation, then iterate through the various target project scenarios in a scenario test.","commit_id":"d7b187e143e56ad93ba2c90f96580cd79bc9b8ea"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"01a7209fe257409742b4fe407b145fbbeb82f8a3","unresolved":false,"context_lines":[{"line_number":99,"context_line":"        _, zone \u003d self.target_zone_client.show_zone(self.zone[\u0027id\u0027])"},{"line_number":100,"context_line":"        self.assertTrue(zone.get(\u0027shared\u0027))"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"        _, body \u003d self.target_zone_client.list_zones()"},{"line_number":103,"context_line":"        self.assertEqual(1, len(body[\u0027zones\u0027]))"},{"line_number":104,"context_line":"        shared_zone_from_list \u003d body[\u0027zones\u0027][0]"},{"line_number":105,"context_line":"        self.assertTrue(shared_zone_from_list.get(\u0027shared\u0027))"}],"source_content_type":"text/x-python","patch_set":8,"id":"aa554530_a5ee9b45","line":102,"in_reply_to":"b6c05dbe_c5d953fc","updated":"2023-02-10 23:37:26.000000000","message":"Done","commit_id":"d7b187e143e56ad93ba2c90f96580cd79bc9b8ea"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"626fffc0d151d90ea560151758032ce51eb2b329","unresolved":true,"context_lines":[{"line_number":120,"context_line":"                 \u0027recordsets owned by target tenant\u0027)"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"        _, body \u003d self.target_recordset_client.list_zones_recordsets()"},{"line_number":123,"context_line":"        self.assertEqual(1, len(body[\u0027recordsets\u0027]))"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"        LOG.info(\u0027Ensure that recordsets from shared zone are shown to target \u0027"},{"line_number":126,"context_line":"                 \u0027tenant\u0027)"}],"source_content_type":"text/x-python","patch_set":8,"id":"acc27c28_d544251f","line":123,"updated":"2022-10-04 18:05:44.000000000","message":"I am a bit confused here, line 91 creates a recordset, as does line 96. Shouldn\u0027t this be len of 2?","commit_id":"d7b187e143e56ad93ba2c90f96580cd79bc9b8ea"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"01a7209fe257409742b4fe407b145fbbeb82f8a3","unresolved":false,"context_lines":[{"line_number":120,"context_line":"                 \u0027recordsets owned by target tenant\u0027)"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"        _, body \u003d self.target_recordset_client.list_zones_recordsets()"},{"line_number":123,"context_line":"        self.assertEqual(1, len(body[\u0027recordsets\u0027]))"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"        LOG.info(\u0027Ensure that recordsets from shared zone are shown to target \u0027"},{"line_number":126,"context_line":"                 \u0027tenant\u0027)"}],"source_content_type":"text/x-python","patch_set":8,"id":"e1916210_91bc82ea","line":123,"in_reply_to":"0d2e4c0b_67b0d301","updated":"2023-02-10 23:37:26.000000000","message":"Done","commit_id":"d7b187e143e56ad93ba2c90f96580cd79bc9b8ea"},{"author":{"_account_id":35041,"name":"Sergey Drozdov","email":"sergey.drozdov.dev@gmail.com","username":"drozdov"},"change_message_id":"78cf260b10a4774aa965b09aa7df4116b748bf58","unresolved":true,"context_lines":[{"line_number":120,"context_line":"                 \u0027recordsets owned by target tenant\u0027)"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"        _, body \u003d self.target_recordset_client.list_zones_recordsets()"},{"line_number":123,"context_line":"        self.assertEqual(1, len(body[\u0027recordsets\u0027]))"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"        LOG.info(\u0027Ensure that recordsets from shared zone are shown to target \u0027"},{"line_number":126,"context_line":"                 \u0027tenant\u0027)"}],"source_content_type":"text/x-python","patch_set":8,"id":"0d2e4c0b_67b0d301","line":123,"in_reply_to":"acc27c28_d544251f","updated":"2022-10-06 16:35:04.000000000","message":"Given my understanding, which could be limited, since the recordsets were created with different clients, only one recordset should appear when the line in question is executed.","commit_id":"d7b187e143e56ad93ba2c90f96580cd79bc9b8ea"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"626fffc0d151d90ea560151758032ce51eb2b329","unresolved":true,"context_lines":[{"line_number":132,"context_line":""},{"line_number":133,"context_line":"    @decorators.idempotent_id(\u00270edecb9b-4890-433c-8195-0935271efc9a\u0027)"},{"line_number":134,"context_line":"    def test_show_shared_zone(self):"},{"line_number":135,"context_line":"        shared_zone \u003d self._share_zone()"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"        LOG.info(\u0027Re-Fetch the shared zone\u0027)"},{"line_number":138,"context_line":"        _, body \u003d self.client.show_shared_zone(shared_zone[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":8,"id":"dbd675a5_502a15ca","line":135,"updated":"2022-10-04 18:05:44.000000000","message":"This would share the zone again since the test above also shared it.\nThis can\u0027t be removed because each test should run on independent of the other tests, but is it expected that the API will silently ignore sharing to the same project more than once?","commit_id":"d7b187e143e56ad93ba2c90f96580cd79bc9b8ea"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"01a7209fe257409742b4fe407b145fbbeb82f8a3","unresolved":false,"context_lines":[{"line_number":132,"context_line":""},{"line_number":133,"context_line":"    @decorators.idempotent_id(\u00270edecb9b-4890-433c-8195-0935271efc9a\u0027)"},{"line_number":134,"context_line":"    def test_show_shared_zone(self):"},{"line_number":135,"context_line":"        shared_zone \u003d self._share_zone()"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"        LOG.info(\u0027Re-Fetch the shared zone\u0027)"},{"line_number":138,"context_line":"        _, body \u003d self.client.show_shared_zone(shared_zone[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":8,"id":"98a68bdb_79246bc5","line":135,"in_reply_to":"dbd675a5_502a15ca","updated":"2023-02-10 23:37:26.000000000","message":"Done","commit_id":"d7b187e143e56ad93ba2c90f96580cd79bc9b8ea"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"626fffc0d151d90ea560151758032ce51eb2b329","unresolved":true,"context_lines":[{"line_number":149,"context_line":""},{"line_number":150,"context_line":"        LOG.info(\u0027Ensure the zone was unshared\u0027)"},{"line_number":151,"context_line":"        self.assertRaises(lib_exc.NotFound,"},{"line_number":152,"context_line":"            lambda: self.client.show_shared_zone(shared_zone[\u0027id\u0027]))"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"    @decorators.idempotent_id(\u0027707bfa4f-f15b-4486-ba5c-0e5991f0f3a5\u0027)"},{"line_number":155,"context_line":"    def test_list_shared_zones(self):"}],"source_content_type":"text/x-python","patch_set":8,"id":"8cc847ca_94fef75d","line":152,"updated":"2022-10-04 18:05:44.000000000","message":"lambda is not needed here.\n\n       self.assertRaises(lib_exc.NotFound,\n            self.client.show_shared_zone, shared_zone[\u0027id\u0027])","commit_id":"d7b187e143e56ad93ba2c90f96580cd79bc9b8ea"},{"author":{"_account_id":35041,"name":"Sergey Drozdov","email":"sergey.drozdov.dev@gmail.com","username":"drozdov"},"change_message_id":"78cf260b10a4774aa965b09aa7df4116b748bf58","unresolved":false,"context_lines":[{"line_number":149,"context_line":""},{"line_number":150,"context_line":"        LOG.info(\u0027Ensure the zone was unshared\u0027)"},{"line_number":151,"context_line":"        self.assertRaises(lib_exc.NotFound,"},{"line_number":152,"context_line":"            lambda: self.client.show_shared_zone(shared_zone[\u0027id\u0027]))"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"    @decorators.idempotent_id(\u0027707bfa4f-f15b-4486-ba5c-0e5991f0f3a5\u0027)"},{"line_number":155,"context_line":"    def test_list_shared_zones(self):"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f345ed4_cfca7411","line":152,"in_reply_to":"8cc847ca_94fef75d","updated":"2022-10-06 16:35:04.000000000","message":"Done","commit_id":"d7b187e143e56ad93ba2c90f96580cd79bc9b8ea"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"626fffc0d151d90ea560151758032ce51eb2b329","unresolved":true,"context_lines":[{"line_number":158,"context_line":"        LOG.info(\u0027List zone exports\u0027)"},{"line_number":159,"context_line":"        _, body \u003d self.client.list_shared_zones()"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        self.assertGreater(len(body[\u0027shared_zones\u0027]), 0)"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"class NegativeSharedZonesTest(BaseSharedZoneTest):"}],"source_content_type":"text/x-python","patch_set":8,"id":"862ec03e_9fe772ca","line":161,"updated":"2022-10-04 18:05:44.000000000","message":"It would be nice to check that the expected shared_zone is in the list.","commit_id":"d7b187e143e56ad93ba2c90f96580cd79bc9b8ea"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"704527fd5c7a04d1603812a038516858b1df131a","unresolved":false,"context_lines":[{"line_number":158,"context_line":"        LOG.info(\u0027List zone exports\u0027)"},{"line_number":159,"context_line":"        _, body \u003d self.client.list_shared_zones()"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        self.assertGreater(len(body[\u0027shared_zones\u0027]), 0)"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"class NegativeSharedZonesTest(BaseSharedZoneTest):"}],"source_content_type":"text/x-python","patch_set":8,"id":"805a7171_ad92634e","line":161,"in_reply_to":"862ec03e_9fe772ca","updated":"2023-02-09 00:00:56.000000000","message":"Done","commit_id":"d7b187e143e56ad93ba2c90f96580cd79bc9b8ea"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"626fffc0d151d90ea560151758032ce51eb2b329","unresolved":true,"context_lines":[{"line_number":173,"context_line":"    def test_target_tenant_permissions(self):"},{"line_number":174,"context_line":"        self._share_zone()"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"        LOG.info(\u0027Ensure target tenant cannot delete zone\u0027)"},{"line_number":177,"context_line":"        self.assertRaises("},{"line_number":178,"context_line":"            lib_exc.Forbidden,"},{"line_number":179,"context_line":"            self.target_zone_client.delete_zone,"}],"source_content_type":"text/x-python","patch_set":8,"id":"bb02d8c1_15a655b3","line":176,"updated":"2022-10-04 18:05:44.000000000","message":"These two should be split into separate tests for reporting clarity.","commit_id":"d7b187e143e56ad93ba2c90f96580cd79bc9b8ea"},{"author":{"_account_id":35041,"name":"Sergey Drozdov","email":"sergey.drozdov.dev@gmail.com","username":"drozdov"},"change_message_id":"78cf260b10a4774aa965b09aa7df4116b748bf58","unresolved":false,"context_lines":[{"line_number":173,"context_line":"    def test_target_tenant_permissions(self):"},{"line_number":174,"context_line":"        self._share_zone()"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"        LOG.info(\u0027Ensure target tenant cannot delete zone\u0027)"},{"line_number":177,"context_line":"        self.assertRaises("},{"line_number":178,"context_line":"            lib_exc.Forbidden,"},{"line_number":179,"context_line":"            self.target_zone_client.delete_zone,"}],"source_content_type":"text/x-python","patch_set":8,"id":"9595c8eb_116d24b3","line":176,"in_reply_to":"bb02d8c1_15a655b3","updated":"2022-10-06 16:35:04.000000000","message":"Done","commit_id":"d7b187e143e56ad93ba2c90f96580cd79bc9b8ea"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"626fffc0d151d90ea560151758032ce51eb2b329","unresolved":true,"context_lines":[{"line_number":196,"context_line":""},{"line_number":197,"context_line":"        LOG.info(\u0027Ensure owner cannot unshare zone\u0027)"},{"line_number":198,"context_line":"        self.assertRaises("},{"line_number":199,"context_line":"            lib_exc.BadRequest,"},{"line_number":200,"context_line":"            self.client.unshare_zone,"},{"line_number":201,"context_line":"            shared_zone[\u0027id\u0027]"},{"line_number":202,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":8,"id":"5fd8ca5a_1037d9ee","line":199,"updated":"2022-10-04 18:05:44.000000000","message":"Shouldn\u0027t this be Conflict instead of BadRequest?","commit_id":"d7b187e143e56ad93ba2c90f96580cd79bc9b8ea"},{"author":{"_account_id":35041,"name":"Sergey Drozdov","email":"sergey.drozdov.dev@gmail.com","username":"drozdov"},"change_message_id":"78cf260b10a4774aa965b09aa7df4116b748bf58","unresolved":false,"context_lines":[{"line_number":196,"context_line":""},{"line_number":197,"context_line":"        LOG.info(\u0027Ensure owner cannot unshare zone\u0027)"},{"line_number":198,"context_line":"        self.assertRaises("},{"line_number":199,"context_line":"            lib_exc.BadRequest,"},{"line_number":200,"context_line":"            self.client.unshare_zone,"},{"line_number":201,"context_line":"            shared_zone[\u0027id\u0027]"},{"line_number":202,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":8,"id":"989fe70e_3729630a","line":199,"in_reply_to":"5fd8ca5a_1037d9ee","updated":"2022-10-06 16:35:04.000000000","message":"Done","commit_id":"d7b187e143e56ad93ba2c90f96580cd79bc9b8ea"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"efa200daf6ef11ab4dd354ef9c10ddf7d084ee6f","unresolved":true,"context_lines":[{"line_number":57,"context_line":"        cls.alt_zone_client \u003d cls.os_alt.zones_client"},{"line_number":58,"context_line":"        cls.alt_recordset_client \u003d cls.os_alt.recordset_client"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    def _share_zone(self, cleanup\u003dTrue):"},{"line_number":61,"context_line":"        LOG.info(\u0027Create a shared zone\u0027)"},{"line_number":62,"context_line":"        shared_zone \u003d self.client.share_zone("},{"line_number":63,"context_line":"            self.zone[\u0027id\u0027], self.alt_zone_client.project_id"},{"line_number":64,"context_line":"        )[1]"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"        if cleanup:"},{"line_number":67,"context_line":"            self.addCleanup(self.client.unshare_zone, shared_zone[\u0027id\u0027])"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"        return shared_zone"},{"line_number":70,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"1e68b77c_ef64e861","line":67,"range":{"start_line":60,"start_character":0,"end_line":67,"end_character":72},"updated":"2023-01-10 14:33:11.000000000","message":"Do we really need this help function? \nMost of the tests (except Delete) are always require 2 lines of code:\n1) create shared zone\n2) add to cleanup\nand this makes the test piece of code more readable.\nIn addition the share is done by \"Primary\" client and it also may confuse while reviewing the tests.","commit_id":"ee37abd331eeff8244dff1122948510aa8c17357"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"704527fd5c7a04d1603812a038516858b1df131a","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        cls.alt_zone_client \u003d cls.os_alt.zones_client"},{"line_number":58,"context_line":"        cls.alt_recordset_client \u003d cls.os_alt.recordset_client"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    def _share_zone(self, cleanup\u003dTrue):"},{"line_number":61,"context_line":"        LOG.info(\u0027Create a shared zone\u0027)"},{"line_number":62,"context_line":"        shared_zone \u003d self.client.share_zone("},{"line_number":63,"context_line":"            self.zone[\u0027id\u0027], self.alt_zone_client.project_id"},{"line_number":64,"context_line":"        )[1]"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"        if cleanup:"},{"line_number":67,"context_line":"            self.addCleanup(self.client.unshare_zone, shared_zone[\u0027id\u0027])"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"        return shared_zone"},{"line_number":70,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"89243246_36065b98","line":67,"range":{"start_line":60,"start_character":0,"end_line":67,"end_character":72},"in_reply_to":"1e68b77c_ef64e861","updated":"2023-02-09 00:00:56.000000000","message":"Done","commit_id":"ee37abd331eeff8244dff1122948510aa8c17357"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"efa200daf6ef11ab4dd354ef9c10ddf7d084ee6f","unresolved":true,"context_lines":[{"line_number":88,"context_line":"        super(SharedZonesTest, cls).setup_credentials()"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    @decorators.idempotent_id(\u0027982a7780-a460-4c13-97df-b4855bf19c7b\u0027)"},{"line_number":91,"context_line":"    def test_share_zone(self):"},{"line_number":92,"context_line":"        recordset \u003d self._create_recordset(self.recordset_client)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"        self._share_zone()"}],"source_content_type":"text/x-python","patch_set":9,"id":"afff86c9_3041cf47","line":91,"range":{"start_line":91,"start_character":8,"end_line":91,"end_character":23},"updated":"2023-01-10 14:33:11.000000000","message":"I\u0027d recommend making some refactoring here,\"test_share_zone\" covers: create, list, ownership (based on recordset)... therefore it makes it a bit complicated and confusing. This test should only check \"Create\" API.\nAll the rest is correct, relevant and really appreciated, but we just have to place it correctly, I mean in dedicated/separated tests, for example:\n\nclass SharedZonesTest\n1) test_create_share_zone (API succeed only)\n2) test_show_shared_zone\n3) test_list_shared_zones\n4) test_delete_shared_zone\n...\n\nAdding a new class\nclass SharedZonesOwnershipTests\n1) Test - Ensure target (alt) tenant has access to zone recordsets\n2) Test - Ensure that shared zone recordsets is not listed in recordsets owned by target (alt) tenant\n3) Maybe some tests for Admin? \n...","commit_id":"ee37abd331eeff8244dff1122948510aa8c17357"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"01a7209fe257409742b4fe407b145fbbeb82f8a3","unresolved":false,"context_lines":[{"line_number":88,"context_line":"        super(SharedZonesTest, cls).setup_credentials()"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    @decorators.idempotent_id(\u0027982a7780-a460-4c13-97df-b4855bf19c7b\u0027)"},{"line_number":91,"context_line":"    def test_share_zone(self):"},{"line_number":92,"context_line":"        recordset \u003d self._create_recordset(self.recordset_client)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"        self._share_zone()"}],"source_content_type":"text/x-python","patch_set":9,"id":"7b18e239_e1169a40","line":91,"range":{"start_line":91,"start_character":8,"end_line":91,"end_character":23},"in_reply_to":"afff86c9_3041cf47","updated":"2023-02-10 23:37:26.000000000","message":"Done","commit_id":"ee37abd331eeff8244dff1122948510aa8c17357"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"efa200daf6ef11ab4dd354ef9c10ddf7d084ee6f","unresolved":true,"context_lines":[{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        LOG.info(\u0027Ensure target (alt) tenant has access to shared zone\u0027)"},{"line_number":100,"context_line":"        zone \u003d self.alt_zone_client.show_zone(self.zone[\u0027id\u0027])[1]"},{"line_number":101,"context_line":"        self.assertTrue(zone.get(\u0027shared\u0027))"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"        body \u003d self.alt_zone_client.list_zones()[1]"},{"line_number":104,"context_line":"        self.assertEqual(1, len(body[\u0027zones\u0027]))"}],"source_content_type":"text/x-python","patch_set":9,"id":"5ae97047_12cd0f95","line":101,"range":{"start_line":101,"start_character":0,"end_line":101,"end_character":43},"updated":"2023-01-10 14:33:11.000000000","message":"Nit.\nOnce fails, it would be nice having an assertion message here, I mean adding the assertion msg, something like:\nself.assertTrue(zone.get(\u0027shared\u0027), \u0027Failed, Alt has no access to ...\u0027)","commit_id":"ee37abd331eeff8244dff1122948510aa8c17357"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"704527fd5c7a04d1603812a038516858b1df131a","unresolved":false,"context_lines":[{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        LOG.info(\u0027Ensure target (alt) tenant has access to shared zone\u0027)"},{"line_number":100,"context_line":"        zone \u003d self.alt_zone_client.show_zone(self.zone[\u0027id\u0027])[1]"},{"line_number":101,"context_line":"        self.assertTrue(zone.get(\u0027shared\u0027))"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"        body \u003d self.alt_zone_client.list_zones()[1]"},{"line_number":104,"context_line":"        self.assertEqual(1, len(body[\u0027zones\u0027]))"}],"source_content_type":"text/x-python","patch_set":9,"id":"430f6fbe_3e09e8e9","line":101,"range":{"start_line":101,"start_character":0,"end_line":101,"end_character":43},"in_reply_to":"5ae97047_12cd0f95","updated":"2023-02-09 00:00:56.000000000","message":"Done","commit_id":"ee37abd331eeff8244dff1122948510aa8c17357"}],"designate_tempest_plugin/tests/scenario/v2/test_zones_export.py":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"626fffc0d151d90ea560151758032ce51eb2b329","unresolved":true,"context_lines":[{"line_number":19,"context_line":"from tempest import config"},{"line_number":20,"context_line":"from tempest.lib import decorators"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from designate_tempest_plugin.common import constants as const"},{"line_number":24,"context_line":"from designate_tempest_plugin import data_utils"},{"line_number":25,"context_line":"from designate_tempest_plugin.common import waiters"}],"source_content_type":"text/x-python","patch_set":8,"id":"554e5ddb_6e2736cf","line":22,"updated":"2022-10-04 18:05:44.000000000","message":"This extra line should be removed.","commit_id":"d7b187e143e56ad93ba2c90f96580cd79bc9b8ea"},{"author":{"_account_id":35041,"name":"Sergey Drozdov","email":"sergey.drozdov.dev@gmail.com","username":"drozdov"},"change_message_id":"78cf260b10a4774aa965b09aa7df4116b748bf58","unresolved":false,"context_lines":[{"line_number":19,"context_line":"from tempest import config"},{"line_number":20,"context_line":"from tempest.lib import decorators"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from designate_tempest_plugin.common import constants as const"},{"line_number":24,"context_line":"from designate_tempest_plugin import data_utils"},{"line_number":25,"context_line":"from designate_tempest_plugin.common import waiters"}],"source_content_type":"text/x-python","patch_set":8,"id":"ee99cc26_8e8cdae5","line":22,"in_reply_to":"554e5ddb_6e2736cf","updated":"2022-10-06 16:35:04.000000000","message":"Done","commit_id":"d7b187e143e56ad93ba2c90f96580cd79bc9b8ea"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"626fffc0d151d90ea560151758032ce51eb2b329","unresolved":true,"context_lines":[{"line_number":50,"context_line":"        cls.client \u003d cls.os_primary.dns_v2.ZoneExportsClient()"},{"line_number":51,"context_line":"        cls.zones_client \u003d cls.os_primary.dns_v2.ZonesClient()"},{"line_number":52,"context_line":"        cls.recordset_client \u003d cls.os_primary.dns_v2.RecordsetClient()"},{"line_number":53,"context_line":"        cls.owner_zone_client \u003d cls.os_alt.dns_v2.ZonesClient()"},{"line_number":54,"context_line":"        cls.owner_shared_zone_client \u003d cls.os_alt.dns_v2.SharedZonesClient()"},{"line_number":55,"context_line":"        cls.owner_recordset_client \u003d cls.os_alt.dns_v2.RecordsetClient()"},{"line_number":56,"context_line":"        cls.owner_client \u003d cls.os_alt.dns_v2.ZoneExportsClient()"}],"source_content_type":"text/x-python","patch_set":8,"id":"8cb5bba0_193b9681","line":53,"updated":"2022-10-04 18:05:44.000000000","message":"It would make the tests easier to read if we called these clients \"alt_zone_client\" to align with the \"alt\" tempest credential.","commit_id":"d7b187e143e56ad93ba2c90f96580cd79bc9b8ea"},{"author":{"_account_id":35041,"name":"Sergey Drozdov","email":"sergey.drozdov.dev@gmail.com","username":"drozdov"},"change_message_id":"78cf260b10a4774aa965b09aa7df4116b748bf58","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        cls.client \u003d cls.os_primary.dns_v2.ZoneExportsClient()"},{"line_number":51,"context_line":"        cls.zones_client \u003d cls.os_primary.dns_v2.ZonesClient()"},{"line_number":52,"context_line":"        cls.recordset_client \u003d cls.os_primary.dns_v2.RecordsetClient()"},{"line_number":53,"context_line":"        cls.owner_zone_client \u003d cls.os_alt.dns_v2.ZonesClient()"},{"line_number":54,"context_line":"        cls.owner_shared_zone_client \u003d cls.os_alt.dns_v2.SharedZonesClient()"},{"line_number":55,"context_line":"        cls.owner_recordset_client \u003d cls.os_alt.dns_v2.RecordsetClient()"},{"line_number":56,"context_line":"        cls.owner_client \u003d cls.os_alt.dns_v2.ZoneExportsClient()"}],"source_content_type":"text/x-python","patch_set":8,"id":"ecaba610_c77f77d0","line":53,"in_reply_to":"8cb5bba0_193b9681","updated":"2022-10-06 16:35:04.000000000","message":"Done","commit_id":"d7b187e143e56ad93ba2c90f96580cd79bc9b8ea"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"626fffc0d151d90ea560151758032ce51eb2b329","unresolved":true,"context_lines":[{"line_number":75,"context_line":"            client \u003d self.client"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"        LOG.info(\u0027Create a zone export\u0027)"},{"line_number":78,"context_line":"        _, zone_export \u003d client.create_zone_export(zone[\u0027id\u0027])"},{"line_number":79,"context_line":"        self.addCleanup(client.delete_zone_export, zone_export[\u0027id\u0027])"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        self.assertEqual(const.PENDING, zone_export[\u0027status\u0027])"}],"source_content_type":"text/x-python","patch_set":8,"id":"bc16c8ea_87418c67","line":78,"updated":"2022-10-04 18:05:44.000000000","message":"We are trying to change the code style away from using underscore as a dummy variable. We are preferring to use the [1] index on the call.","commit_id":"d7b187e143e56ad93ba2c90f96580cd79bc9b8ea"},{"author":{"_account_id":35041,"name":"Sergey Drozdov","email":"sergey.drozdov.dev@gmail.com","username":"drozdov"},"change_message_id":"78cf260b10a4774aa965b09aa7df4116b748bf58","unresolved":false,"context_lines":[{"line_number":75,"context_line":"            client \u003d self.client"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"        LOG.info(\u0027Create a zone export\u0027)"},{"line_number":78,"context_line":"        _, zone_export \u003d client.create_zone_export(zone[\u0027id\u0027])"},{"line_number":79,"context_line":"        self.addCleanup(client.delete_zone_export, zone_export[\u0027id\u0027])"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        self.assertEqual(const.PENDING, zone_export[\u0027status\u0027])"}],"source_content_type":"text/x-python","patch_set":8,"id":"793d1c35_10be8757","line":78,"in_reply_to":"bc16c8ea_87418c67","updated":"2022-10-06 16:35:04.000000000","message":"Done","commit_id":"d7b187e143e56ad93ba2c90f96580cd79bc9b8ea"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"626fffc0d151d90ea560151758032ce51eb2b329","unresolved":true,"context_lines":[{"line_number":76,"context_line":""},{"line_number":77,"context_line":"        LOG.info(\u0027Create a zone export\u0027)"},{"line_number":78,"context_line":"        _, zone_export \u003d client.create_zone_export(zone[\u0027id\u0027])"},{"line_number":79,"context_line":"        self.addCleanup(client.delete_zone_export, zone_export[\u0027id\u0027])"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        self.assertEqual(const.PENDING, zone_export[\u0027status\u0027])"},{"line_number":82,"context_line":"        self.assertEqual(zone[\u0027id\u0027], zone_export[\u0027zone_id\u0027])"}],"source_content_type":"text/x-python","patch_set":8,"id":"a6dcc494_80a181cb","line":79,"updated":"2022-10-04 18:05:44.000000000","message":"This is duplicate to line 68 right?","commit_id":"d7b187e143e56ad93ba2c90f96580cd79bc9b8ea"},{"author":{"_account_id":35041,"name":"Sergey Drozdov","email":"sergey.drozdov.dev@gmail.com","username":"drozdov"},"change_message_id":"78cf260b10a4774aa965b09aa7df4116b748bf58","unresolved":true,"context_lines":[{"line_number":76,"context_line":""},{"line_number":77,"context_line":"        LOG.info(\u0027Create a zone export\u0027)"},{"line_number":78,"context_line":"        _, zone_export \u003d client.create_zone_export(zone[\u0027id\u0027])"},{"line_number":79,"context_line":"        self.addCleanup(client.delete_zone_export, zone_export[\u0027id\u0027])"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        self.assertEqual(const.PENDING, zone_export[\u0027status\u0027])"},{"line_number":82,"context_line":"        self.assertEqual(zone[\u0027id\u0027], zone_export[\u0027zone_id\u0027])"}],"source_content_type":"text/x-python","patch_set":8,"id":"ea71bab9_24e9fd02","line":79,"in_reply_to":"a6dcc494_80a181cb","updated":"2022-10-06 16:35:04.000000000","message":"_create_zone_export is dependant upon by other tests. Since it does not have a client parameter the two tests were separated.\n_zone_export_test in turn is a dependency of many other test.\n\nI hope I understood the comment correctly. Do let me know if you\u0027d like me to proceed in any specific fashion in regards to this comment.","commit_id":"d7b187e143e56ad93ba2c90f96580cd79bc9b8ea"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"626fffc0d151d90ea560151758032ce51eb2b329","unresolved":true,"context_lines":[{"line_number":134,"context_line":""},{"line_number":135,"context_line":"        LOG.info(\u0027Share zone to guest tenant\u0027)"},{"line_number":136,"context_line":"        _, shared_zone \u003d self.owner_shared_zone_client.share_zone("},{"line_number":137,"context_line":"            zone[\u0027id\u0027], self.zones_client.tenant_id"},{"line_number":138,"context_line":"        )"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"        self.addCleanup("}],"source_content_type":"text/x-python","patch_set":8,"id":"210da990_caa95736","line":137,"updated":"2022-10-04 18:05:44.000000000","message":"We should use project_id here instead of the deprecated tenant_id.","commit_id":"d7b187e143e56ad93ba2c90f96580cd79bc9b8ea"},{"author":{"_account_id":35041,"name":"Sergey Drozdov","email":"sergey.drozdov.dev@gmail.com","username":"drozdov"},"change_message_id":"78cf260b10a4774aa965b09aa7df4116b748bf58","unresolved":false,"context_lines":[{"line_number":134,"context_line":""},{"line_number":135,"context_line":"        LOG.info(\u0027Share zone to guest tenant\u0027)"},{"line_number":136,"context_line":"        _, shared_zone \u003d self.owner_shared_zone_client.share_zone("},{"line_number":137,"context_line":"            zone[\u0027id\u0027], self.zones_client.tenant_id"},{"line_number":138,"context_line":"        )"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"        self.addCleanup("}],"source_content_type":"text/x-python","patch_set":8,"id":"4deeef89_f1730049","line":137,"in_reply_to":"210da990_caa95736","updated":"2022-10-06 16:35:04.000000000","message":"Done","commit_id":"d7b187e143e56ad93ba2c90f96580cd79bc9b8ea"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"efa200daf6ef11ab4dd354ef9c10ddf7d084ee6f","unresolved":true,"context_lines":[{"line_number":68,"context_line":""},{"line_number":69,"context_line":"        return zone, zone_export"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    def _zone_export_test(self, zone, client\u003dNone):"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"        if client is None:"},{"line_number":74,"context_line":"            client \u003d self.client"}],"source_content_type":"text/x-python","patch_set":9,"id":"5189df77_f2223a0c","line":71,"range":{"start_line":71,"start_character":8,"end_line":71,"end_character":25},"updated":"2023-01-10 14:33:11.000000000","message":"Maybe \"_create_and_check_zone_export\" + adding some Doc string with the explanation.","commit_id":"ee37abd331eeff8244dff1122948510aa8c17357"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"efa200daf6ef11ab4dd354ef9c10ddf7d084ee6f","unresolved":true,"context_lines":[{"line_number":110,"context_line":""},{"line_number":111,"context_line":"        self._zone_export_test(zone)"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    def _create_recordset(self, client, zone):"},{"line_number":114,"context_line":"        LOG.info(\u0027Create a recordset in the shared zone\u0027)"},{"line_number":115,"context_line":"        rs_data \u003d data_utils.rand_recordset_data("},{"line_number":116,"context_line":"            record_type\u003d\u0027A\u0027, zone_name\u003dzone[\u0027name\u0027])"}],"source_content_type":"text/x-python","patch_set":9,"id":"29239955_a2e39bc8","line":113,"range":{"start_line":113,"start_character":8,"end_line":113,"end_character":25},"updated":"2023-01-10 14:33:11.000000000","message":"Nit.\nThis function is hardcoded to create A type recordset only.\nI think it makes sense to:\n1) Changing the name to: \"_create_a_type_recordset\"\nor\n2) Parameterize this function with recordset_type that is \"A\" by default.","commit_id":"ee37abd331eeff8244dff1122948510aa8c17357"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"efa200daf6ef11ab4dd354ef9c10ddf7d084ee6f","unresolved":true,"context_lines":[{"line_number":111,"context_line":"        self._zone_export_test(zone)"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    def _create_recordset(self, client, zone):"},{"line_number":114,"context_line":"        LOG.info(\u0027Create a recordset in the shared zone\u0027)"},{"line_number":115,"context_line":"        rs_data \u003d data_utils.rand_recordset_data("},{"line_number":116,"context_line":"            record_type\u003d\u0027A\u0027, zone_name\u003dzone[\u0027name\u0027])"},{"line_number":117,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"bd2a4a61_1447e264","line":114,"range":{"start_line":114,"start_character":44,"end_line":114,"end_character":51},"updated":"2023-01-10 14:33:11.000000000","message":"This function creates recordset and it doesn\u0027t really matter if the zone is snared or not.\nIn addition I\u0027d suggest moving it up to L104 where other help functions are located.","commit_id":"ee37abd331eeff8244dff1122948510aa8c17357"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"efa200daf6ef11ab4dd354ef9c10ddf7d084ee6f","unresolved":true,"context_lines":[{"line_number":143,"context_line":""},{"line_number":144,"context_line":"        self._create_recordset(self.alt_recordset_client, zone)"},{"line_number":145,"context_line":"        self._create_recordset(self.recordset_client, zone)"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"        zonefile_guest \u003d self._zone_export_test(zone)"},{"line_number":148,"context_line":"        zonefile_owner \u003d self._zone_export_test("},{"line_number":149,"context_line":"            zone, client\u003dself.alt_client"}],"source_content_type":"text/x-python","patch_set":9,"id":"10eaba04_f2c021a0","line":146,"updated":"2023-01-10 14:33:11.000000000","message":"What if for some reason, previously created A type recordset is missing in exported zone file data?\nI think that adding the check for \"A type recordset\" presents in exported zone file, will make sense.","commit_id":"ee37abd331eeff8244dff1122948510aa8c17357"}]}
